
zephyr.elf:     file format elf32-littlearm


Disassembly of section rom_start:

0000c200 <_vector_start>:
    c200:	200054c0 	.word	0x200054c0
    c204:	0001fbb5 	.word	0x0001fbb5
    c208:	0003585f 	.word	0x0003585f
    c20c:	0001fb6d 	.word	0x0001fb6d
    c210:	0001fb6d 	.word	0x0001fb6d
    c214:	0001fb6d 	.word	0x0001fb6d
    c218:	0001fb6d 	.word	0x0001fb6d
	...
    c22c:	0001f531 	.word	0x0001f531
    c230:	0001fb6d 	.word	0x0001fb6d
    c234:	00000000 	.word	0x00000000
    c238:	0001f4d9 	.word	0x0001f4d9
    c23c:	0002b369 	.word	0x0002b369

0000c240 <_irq_vector_table>:
    c240:	0001f61d 0003a011 0001f61d 0001f61d     ................
    c250:	0001f61d 0001f61d 0001f61d 0001f61d     ................
    c260:	00039fd9 0001f61d 0001f61d 00039ff7     ................
    c270:	0001f61d 0001f61d 0001f61d 0001f61d     ................
    c280:	0001f61d 0001f61d 0001f61d 0001f61d     ................
    c290:	0001f61d 0001f61d 0001f61d 0001f61d     ................
    c2a0:	0001f61d 0001f61d 0001f61d 0001f61d     ................
    c2b0:	0001f61d 0001f61d 0001f61d 0001f61d     ................
    c2c0:	0001f61d 0001f61d 0001f61d 0001f61d     ................
    c2d0:	0001f61d 0001f61d 0001f61d 0001f61d     ................
    c2e0:	0001f61d 0001f61d 0001f61d 0001f61d     ................
    c2f0:	0001f61d 0001f61d 0001f61d 0001f61d     ................

Disassembly of section text:

0000c300 <__aeabi_uldivmod>:
    c300:	b953      	cbnz	r3, c318 <__aeabi_uldivmod+0x18>
    c302:	b94a      	cbnz	r2, c318 <__aeabi_uldivmod+0x18>
    c304:	2900      	cmp	r1, #0
    c306:	bf08      	it	eq
    c308:	2800      	cmpeq	r0, #0
    c30a:	bf1c      	itt	ne
    c30c:	f04f 31ff 	movne.w	r1, #4294967295
    c310:	f04f 30ff 	movne.w	r0, #4294967295
    c314:	f000 b96c 	b.w	c5f0 <__aeabi_idiv0>
    c318:	f1ad 0c08 	sub.w	ip, sp, #8
    c31c:	e96d ce04 	strd	ip, lr, [sp, #-16]!
    c320:	f000 f806 	bl	c330 <__udivmoddi4>
    c324:	f8dd e004 	ldr.w	lr, [sp, #4]
    c328:	e9dd 2302 	ldrd	r2, r3, [sp, #8]
    c32c:	b004      	add	sp, #16
    c32e:	4770      	bx	lr

0000c330 <__udivmoddi4>:
    c330:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
    c334:	9e08      	ldr	r6, [sp, #32]
    c336:	460d      	mov	r5, r1
    c338:	4604      	mov	r4, r0
    c33a:	468e      	mov	lr, r1
    c33c:	2b00      	cmp	r3, #0
    c33e:	f040 8082 	bne.w	c446 <__udivmoddi4+0x116>
    c342:	428a      	cmp	r2, r1
    c344:	4617      	mov	r7, r2
    c346:	d946      	bls.n	c3d6 <__udivmoddi4+0xa6>
    c348:	fab2 f282 	clz	r2, r2
    c34c:	b14a      	cbz	r2, c362 <__udivmoddi4+0x32>
    c34e:	f1c2 0120 	rsb	r1, r2, #32
    c352:	fa05 f302 	lsl.w	r3, r5, r2
    c356:	fa20 f101 	lsr.w	r1, r0, r1
    c35a:	4097      	lsls	r7, r2
    c35c:	ea41 0e03 	orr.w	lr, r1, r3
    c360:	4094      	lsls	r4, r2
    c362:	ea4f 4817 	mov.w	r8, r7, lsr #16
    c366:	0c23      	lsrs	r3, r4, #16
    c368:	fbbe fcf8 	udiv	ip, lr, r8
    c36c:	b2b9      	uxth	r1, r7
    c36e:	fb08 ee1c 	mls	lr, r8, ip, lr
    c372:	ea43 430e 	orr.w	r3, r3, lr, lsl #16
    c376:	fb0c f001 	mul.w	r0, ip, r1
    c37a:	4298      	cmp	r0, r3
    c37c:	d90a      	bls.n	c394 <__udivmoddi4+0x64>
    c37e:	18fb      	adds	r3, r7, r3
    c380:	f10c 35ff 	add.w	r5, ip, #4294967295
    c384:	f080 8116 	bcs.w	c5b4 <__udivmoddi4+0x284>
    c388:	4298      	cmp	r0, r3
    c38a:	f240 8113 	bls.w	c5b4 <__udivmoddi4+0x284>
    c38e:	f1ac 0c02 	sub.w	ip, ip, #2
    c392:	443b      	add	r3, r7
    c394:	1a1b      	subs	r3, r3, r0
    c396:	b2a4      	uxth	r4, r4
    c398:	fbb3 f0f8 	udiv	r0, r3, r8
    c39c:	fb08 3310 	mls	r3, r8, r0, r3
    c3a0:	ea44 4403 	orr.w	r4, r4, r3, lsl #16
    c3a4:	fb00 f101 	mul.w	r1, r0, r1
    c3a8:	42a1      	cmp	r1, r4
    c3aa:	d909      	bls.n	c3c0 <__udivmoddi4+0x90>
    c3ac:	193c      	adds	r4, r7, r4
    c3ae:	f100 33ff 	add.w	r3, r0, #4294967295
    c3b2:	f080 8101 	bcs.w	c5b8 <__udivmoddi4+0x288>
    c3b6:	42a1      	cmp	r1, r4
    c3b8:	f240 80fe 	bls.w	c5b8 <__udivmoddi4+0x288>
    c3bc:	3802      	subs	r0, #2
    c3be:	443c      	add	r4, r7
    c3c0:	1a64      	subs	r4, r4, r1
    c3c2:	ea40 400c 	orr.w	r0, r0, ip, lsl #16
    c3c6:	2100      	movs	r1, #0
    c3c8:	b11e      	cbz	r6, c3d2 <__udivmoddi4+0xa2>
    c3ca:	40d4      	lsrs	r4, r2
    c3cc:	2300      	movs	r3, #0
    c3ce:	e9c6 4300 	strd	r4, r3, [r6]
    c3d2:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
    c3d6:	b902      	cbnz	r2, c3da <__udivmoddi4+0xaa>
    c3d8:	deff      	udf	#255	; 0xff
    c3da:	fab2 f282 	clz	r2, r2
    c3de:	2a00      	cmp	r2, #0
    c3e0:	d14f      	bne.n	c482 <__udivmoddi4+0x152>
    c3e2:	1bcb      	subs	r3, r1, r7
    c3e4:	ea4f 4e17 	mov.w	lr, r7, lsr #16
    c3e8:	fa1f f887 	uxth.w	r8, r7
    c3ec:	2101      	movs	r1, #1
    c3ee:	fbb3 fcfe 	udiv	ip, r3, lr
    c3f2:	0c25      	lsrs	r5, r4, #16
    c3f4:	fb0e 331c 	mls	r3, lr, ip, r3
    c3f8:	ea45 4503 	orr.w	r5, r5, r3, lsl #16
    c3fc:	fb08 f30c 	mul.w	r3, r8, ip
    c400:	42ab      	cmp	r3, r5
    c402:	d907      	bls.n	c414 <__udivmoddi4+0xe4>
    c404:	197d      	adds	r5, r7, r5
    c406:	f10c 30ff 	add.w	r0, ip, #4294967295
    c40a:	d202      	bcs.n	c412 <__udivmoddi4+0xe2>
    c40c:	42ab      	cmp	r3, r5
    c40e:	f200 80e7 	bhi.w	c5e0 <__udivmoddi4+0x2b0>
    c412:	4684      	mov	ip, r0
    c414:	1aed      	subs	r5, r5, r3
    c416:	b2a3      	uxth	r3, r4
    c418:	fbb5 f0fe 	udiv	r0, r5, lr
    c41c:	fb0e 5510 	mls	r5, lr, r0, r5
    c420:	ea43 4405 	orr.w	r4, r3, r5, lsl #16
    c424:	fb08 f800 	mul.w	r8, r8, r0
    c428:	45a0      	cmp	r8, r4
    c42a:	d907      	bls.n	c43c <__udivmoddi4+0x10c>
    c42c:	193c      	adds	r4, r7, r4
    c42e:	f100 33ff 	add.w	r3, r0, #4294967295
    c432:	d202      	bcs.n	c43a <__udivmoddi4+0x10a>
    c434:	45a0      	cmp	r8, r4
    c436:	f200 80d7 	bhi.w	c5e8 <__udivmoddi4+0x2b8>
    c43a:	4618      	mov	r0, r3
    c43c:	eba4 0408 	sub.w	r4, r4, r8
    c440:	ea40 400c 	orr.w	r0, r0, ip, lsl #16
    c444:	e7c0      	b.n	c3c8 <__udivmoddi4+0x98>
    c446:	428b      	cmp	r3, r1
    c448:	d908      	bls.n	c45c <__udivmoddi4+0x12c>
    c44a:	2e00      	cmp	r6, #0
    c44c:	f000 80af 	beq.w	c5ae <__udivmoddi4+0x27e>
    c450:	2100      	movs	r1, #0
    c452:	e9c6 0500 	strd	r0, r5, [r6]
    c456:	4608      	mov	r0, r1
    c458:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
    c45c:	fab3 f183 	clz	r1, r3
    c460:	2900      	cmp	r1, #0
    c462:	d14b      	bne.n	c4fc <__udivmoddi4+0x1cc>
    c464:	42ab      	cmp	r3, r5
    c466:	d302      	bcc.n	c46e <__udivmoddi4+0x13e>
    c468:	4282      	cmp	r2, r0
    c46a:	f200 80b7 	bhi.w	c5dc <__udivmoddi4+0x2ac>
    c46e:	1a84      	subs	r4, r0, r2
    c470:	eb65 0303 	sbc.w	r3, r5, r3
    c474:	2001      	movs	r0, #1
    c476:	469e      	mov	lr, r3
    c478:	2e00      	cmp	r6, #0
    c47a:	d0aa      	beq.n	c3d2 <__udivmoddi4+0xa2>
    c47c:	e9c6 4e00 	strd	r4, lr, [r6]
    c480:	e7a7      	b.n	c3d2 <__udivmoddi4+0xa2>
    c482:	f1c2 0c20 	rsb	ip, r2, #32
    c486:	fa01 f302 	lsl.w	r3, r1, r2
    c48a:	4097      	lsls	r7, r2
    c48c:	fa20 f00c 	lsr.w	r0, r0, ip
    c490:	ea4f 4e17 	mov.w	lr, r7, lsr #16
    c494:	fa21 fc0c 	lsr.w	ip, r1, ip
    c498:	4318      	orrs	r0, r3
    c49a:	fbbc f1fe 	udiv	r1, ip, lr
    c49e:	0c05      	lsrs	r5, r0, #16
    c4a0:	fb0e cc11 	mls	ip, lr, r1, ip
    c4a4:	fa1f f887 	uxth.w	r8, r7
    c4a8:	ea45 450c 	orr.w	r5, r5, ip, lsl #16
    c4ac:	fb01 f308 	mul.w	r3, r1, r8
    c4b0:	42ab      	cmp	r3, r5
    c4b2:	fa04 f402 	lsl.w	r4, r4, r2
    c4b6:	d909      	bls.n	c4cc <__udivmoddi4+0x19c>
    c4b8:	197d      	adds	r5, r7, r5
    c4ba:	f101 3cff 	add.w	ip, r1, #4294967295
    c4be:	f080 808b 	bcs.w	c5d8 <__udivmoddi4+0x2a8>
    c4c2:	42ab      	cmp	r3, r5
    c4c4:	f240 8088 	bls.w	c5d8 <__udivmoddi4+0x2a8>
    c4c8:	3902      	subs	r1, #2
    c4ca:	443d      	add	r5, r7
    c4cc:	1aeb      	subs	r3, r5, r3
    c4ce:	b285      	uxth	r5, r0
    c4d0:	fbb3 f0fe 	udiv	r0, r3, lr
    c4d4:	fb0e 3310 	mls	r3, lr, r0, r3
    c4d8:	ea45 4503 	orr.w	r5, r5, r3, lsl #16
    c4dc:	fb00 f308 	mul.w	r3, r0, r8
    c4e0:	42ab      	cmp	r3, r5
    c4e2:	d907      	bls.n	c4f4 <__udivmoddi4+0x1c4>
    c4e4:	197d      	adds	r5, r7, r5
    c4e6:	f100 3cff 	add.w	ip, r0, #4294967295
    c4ea:	d271      	bcs.n	c5d0 <__udivmoddi4+0x2a0>
    c4ec:	42ab      	cmp	r3, r5
    c4ee:	d96f      	bls.n	c5d0 <__udivmoddi4+0x2a0>
    c4f0:	3802      	subs	r0, #2
    c4f2:	443d      	add	r5, r7
    c4f4:	1aeb      	subs	r3, r5, r3
    c4f6:	ea40 4101 	orr.w	r1, r0, r1, lsl #16
    c4fa:	e778      	b.n	c3ee <__udivmoddi4+0xbe>
    c4fc:	f1c1 0c20 	rsb	ip, r1, #32
    c500:	408b      	lsls	r3, r1
    c502:	fa22 f70c 	lsr.w	r7, r2, ip
    c506:	431f      	orrs	r7, r3
    c508:	fa20 f40c 	lsr.w	r4, r0, ip
    c50c:	fa05 f301 	lsl.w	r3, r5, r1
    c510:	ea4f 4e17 	mov.w	lr, r7, lsr #16
    c514:	fa25 f50c 	lsr.w	r5, r5, ip
    c518:	431c      	orrs	r4, r3
    c51a:	0c23      	lsrs	r3, r4, #16
    c51c:	fbb5 f9fe 	udiv	r9, r5, lr
    c520:	fa1f f887 	uxth.w	r8, r7
    c524:	fb0e 5519 	mls	r5, lr, r9, r5
    c528:	ea43 4505 	orr.w	r5, r3, r5, lsl #16
    c52c:	fb09 fa08 	mul.w	sl, r9, r8
    c530:	45aa      	cmp	sl, r5
    c532:	fa02 f201 	lsl.w	r2, r2, r1
    c536:	fa00 f301 	lsl.w	r3, r0, r1
    c53a:	d908      	bls.n	c54e <__udivmoddi4+0x21e>
    c53c:	197d      	adds	r5, r7, r5
    c53e:	f109 30ff 	add.w	r0, r9, #4294967295
    c542:	d247      	bcs.n	c5d4 <__udivmoddi4+0x2a4>
    c544:	45aa      	cmp	sl, r5
    c546:	d945      	bls.n	c5d4 <__udivmoddi4+0x2a4>
    c548:	f1a9 0902 	sub.w	r9, r9, #2
    c54c:	443d      	add	r5, r7
    c54e:	eba5 050a 	sub.w	r5, r5, sl
    c552:	b2a4      	uxth	r4, r4
    c554:	fbb5 f0fe 	udiv	r0, r5, lr
    c558:	fb0e 5510 	mls	r5, lr, r0, r5
    c55c:	ea44 4405 	orr.w	r4, r4, r5, lsl #16
    c560:	fb00 f808 	mul.w	r8, r0, r8
    c564:	45a0      	cmp	r8, r4
    c566:	d907      	bls.n	c578 <__udivmoddi4+0x248>
    c568:	193c      	adds	r4, r7, r4
    c56a:	f100 35ff 	add.w	r5, r0, #4294967295
    c56e:	d22d      	bcs.n	c5cc <__udivmoddi4+0x29c>
    c570:	45a0      	cmp	r8, r4
    c572:	d92b      	bls.n	c5cc <__udivmoddi4+0x29c>
    c574:	3802      	subs	r0, #2
    c576:	443c      	add	r4, r7
    c578:	ea40 4009 	orr.w	r0, r0, r9, lsl #16
    c57c:	eba4 0408 	sub.w	r4, r4, r8
    c580:	fba0 8902 	umull	r8, r9, r0, r2
    c584:	454c      	cmp	r4, r9
    c586:	46c6      	mov	lr, r8
    c588:	464d      	mov	r5, r9
    c58a:	d319      	bcc.n	c5c0 <__udivmoddi4+0x290>
    c58c:	d016      	beq.n	c5bc <__udivmoddi4+0x28c>
    c58e:	b15e      	cbz	r6, c5a8 <__udivmoddi4+0x278>
    c590:	ebb3 020e 	subs.w	r2, r3, lr
    c594:	eb64 0405 	sbc.w	r4, r4, r5
    c598:	fa04 fc0c 	lsl.w	ip, r4, ip
    c59c:	40ca      	lsrs	r2, r1
    c59e:	ea4c 0202 	orr.w	r2, ip, r2
    c5a2:	40cc      	lsrs	r4, r1
    c5a4:	e9c6 2400 	strd	r2, r4, [r6]
    c5a8:	2100      	movs	r1, #0
    c5aa:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
    c5ae:	4631      	mov	r1, r6
    c5b0:	4630      	mov	r0, r6
    c5b2:	e70e      	b.n	c3d2 <__udivmoddi4+0xa2>
    c5b4:	46ac      	mov	ip, r5
    c5b6:	e6ed      	b.n	c394 <__udivmoddi4+0x64>
    c5b8:	4618      	mov	r0, r3
    c5ba:	e701      	b.n	c3c0 <__udivmoddi4+0x90>
    c5bc:	4543      	cmp	r3, r8
    c5be:	d2e6      	bcs.n	c58e <__udivmoddi4+0x25e>
    c5c0:	ebb8 0e02 	subs.w	lr, r8, r2
    c5c4:	eb69 0507 	sbc.w	r5, r9, r7
    c5c8:	3801      	subs	r0, #1
    c5ca:	e7e0      	b.n	c58e <__udivmoddi4+0x25e>
    c5cc:	4628      	mov	r0, r5
    c5ce:	e7d3      	b.n	c578 <__udivmoddi4+0x248>
    c5d0:	4660      	mov	r0, ip
    c5d2:	e78f      	b.n	c4f4 <__udivmoddi4+0x1c4>
    c5d4:	4681      	mov	r9, r0
    c5d6:	e7ba      	b.n	c54e <__udivmoddi4+0x21e>
    c5d8:	4661      	mov	r1, ip
    c5da:	e777      	b.n	c4cc <__udivmoddi4+0x19c>
    c5dc:	4608      	mov	r0, r1
    c5de:	e74b      	b.n	c478 <__udivmoddi4+0x148>
    c5e0:	f1ac 0c02 	sub.w	ip, ip, #2
    c5e4:	443d      	add	r5, r7
    c5e6:	e715      	b.n	c414 <__udivmoddi4+0xe4>
    c5e8:	3802      	subs	r0, #2
    c5ea:	443c      	add	r4, r7
    c5ec:	e726      	b.n	c43c <__udivmoddi4+0x10c>
    c5ee:	bf00      	nop

0000c5f0 <__aeabi_idiv0>:
    c5f0:	4770      	bx	lr
    c5f2:	bf00      	nop

0000c5f4 <sym_QV6CME4HLWJA6KQZ7HE7ECNT7UGKOYHKNHH6E7I>:
    c5f4:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
    c5f6:	4615      	mov	r5, r2
    c5f8:	4a0a      	ldr	r2, [pc, #40]	; (c624 <sym_QV6CME4HLWJA6KQZ7HE7ECNT7UGKOYHKNHH6E7I+0x30>)
    c5fa:	461c      	mov	r4, r3
    c5fc:	6856      	ldr	r6, [r2, #4]
    c5fe:	b12e      	cbz	r6, c60c <sym_QV6CME4HLWJA6KQZ7HE7ECNT7UGKOYHKNHH6E7I+0x18>
    c600:	b001      	add	sp, #4
    c602:	462a      	mov	r2, r5
    c604:	46b4      	mov	ip, r6
    c606:	e8bd 40f0 	ldmia.w	sp!, {r4, r5, r6, r7, lr}
    c60a:	4760      	bx	ip
    c60c:	2000      	movs	r0, #0
    c60e:	f88d 0000 	strb.w	r0, [sp]
    c612:	4668      	mov	r0, sp
    c614:	f00b f9ae 	bl	17974 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY>
    c618:	f89d 0000 	ldrb.w	r0, [sp]
    c61c:	1a28      	subs	r0, r5, r0
    c61e:	7020      	strb	r0, [r4, #0]
    c620:	2000      	movs	r0, #0
    c622:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
    c624:	20000000 	.word	0x20000000
    c628:	2800      	cmp	r0, #0
    c62a:	d019      	beq.n	c660 <sym_QV6CME4HLWJA6KQZ7HE7ECNT7UGKOYHKNHH6E7I+0x6c>
    c62c:	7803      	ldrb	r3, [r0, #0]
    c62e:	4913      	ldr	r1, [pc, #76]	; (c67c <sym_QV6CME4HLWJA6KQZ7HE7ECNT7UGKOYHKNHH6E7I+0x88>)
    c630:	4a13      	ldr	r2, [pc, #76]	; (c680 <sym_QV6CME4HLWJA6KQZ7HE7ECNT7UGKOYHKNHH6E7I+0x8c>)
    c632:	b113      	cbz	r3, c63a <sym_QV6CME4HLWJA6KQZ7HE7ECNT7UGKOYHKNHH6E7I+0x46>
    c634:	2b01      	cmp	r3, #1
    c636:	d00e      	beq.n	c656 <sym_QV6CME4HLWJA6KQZ7HE7ECNT7UGKOYHKNHH6E7I+0x62>
    c638:	e011      	b.n	c65e <sym_QV6CME4HLWJA6KQZ7HE7ECNT7UGKOYHKNHH6E7I+0x6a>
    c63a:	7903      	ldrb	r3, [r0, #4]
    c63c:	2b01      	cmp	r3, #1
    c63e:	d000      	beq.n	c642 <sym_QV6CME4HLWJA6KQZ7HE7ECNT7UGKOYHKNHH6E7I+0x4e>
    c640:	b96b      	cbnz	r3, c65e <sym_QV6CME4HLWJA6KQZ7HE7ECNT7UGKOYHKNHH6E7I+0x6a>
    c642:	7943      	ldrb	r3, [r0, #5]
    c644:	b10b      	cbz	r3, c64a <sym_QV6CME4HLWJA6KQZ7HE7ECNT7UGKOYHKNHH6E7I+0x56>
    c646:	2b01      	cmp	r3, #1
    c648:	d109      	bne.n	c65e <sym_QV6CME4HLWJA6KQZ7HE7ECNT7UGKOYHKNHH6E7I+0x6a>
    c64a:	6883      	ldr	r3, [r0, #8]
    c64c:	3b64      	subs	r3, #100	; 0x64
    c64e:	428b      	cmp	r3, r1
    c650:	d205      	bcs.n	c65e <sym_QV6CME4HLWJA6KQZ7HE7ECNT7UGKOYHKNHH6E7I+0x6a>
    c652:	68c0      	ldr	r0, [r0, #12]
    c654:	e00e      	b.n	c674 <sym_QV6CME4HLWJA6KQZ7HE7ECNT7UGKOYHKNHH6E7I+0x80>
    c656:	7903      	ldrb	r3, [r0, #4]
    c658:	2b01      	cmp	r3, #1
    c65a:	d002      	beq.n	c662 <sym_QV6CME4HLWJA6KQZ7HE7ECNT7UGKOYHKNHH6E7I+0x6e>
    c65c:	b10b      	cbz	r3, c662 <sym_QV6CME4HLWJA6KQZ7HE7ECNT7UGKOYHKNHH6E7I+0x6e>
    c65e:	2000      	movs	r0, #0
    c660:	4770      	bx	lr
    c662:	7943      	ldrb	r3, [r0, #5]
    c664:	b10b      	cbz	r3, c66a <sym_QV6CME4HLWJA6KQZ7HE7ECNT7UGKOYHKNHH6E7I+0x76>
    c666:	2b01      	cmp	r3, #1
    c668:	d1f9      	bne.n	c65e <sym_QV6CME4HLWJA6KQZ7HE7ECNT7UGKOYHKNHH6E7I+0x6a>
    c66a:	68c3      	ldr	r3, [r0, #12]
    c66c:	3b64      	subs	r3, #100	; 0x64
    c66e:	428b      	cmp	r3, r1
    c670:	d2f5      	bcs.n	c65e <sym_QV6CME4HLWJA6KQZ7HE7ECNT7UGKOYHKNHH6E7I+0x6a>
    c672:	6880      	ldr	r0, [r0, #8]
    c674:	4290      	cmp	r0, r2
    c676:	d8f2      	bhi.n	c65e <sym_QV6CME4HLWJA6KQZ7HE7ECNT7UGKOYHKNHH6E7I+0x6a>
    c678:	2001      	movs	r0, #1
    c67a:	4770      	bx	lr
    c67c:	0001863d 	.word	0x0001863d
    c680:	07a11fff 	.word	0x07a11fff
    c684:	b510      	push	{r4, lr}
    c686:	4c05      	ldr	r4, [pc, #20]	; (c69c <sym_QV6CME4HLWJA6KQZ7HE7ECNT7UGKOYHKNHH6E7I+0xa8>)
    c688:	6820      	ldr	r0, [r4, #0]
    c68a:	b110      	cbz	r0, c692 <sym_QV6CME4HLWJA6KQZ7HE7ECNT7UGKOYHKNHH6E7I+0x9e>
    c68c:	4780      	blx	r0
    c68e:	2000      	movs	r0, #0
    c690:	6020      	str	r0, [r4, #0]
    c692:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
    c696:	f001 bfdb 	b.w	e650 <sym_SFR5TVV24PZRIRC5QGOHL2X436PUHKRY2QWKP5Y>
    c69a:	0000      	.short	0x0000
    c69c:	20000008 	.word	0x20000008

0000c6a0 <mpsl_timeslot_session_open>:
    c6a0:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
    c6a4:	460e      	mov	r6, r1
    c6a6:	0005      	movs	r5, r0
    c6a8:	d004      	beq.n	c6b4 <mpsl_timeslot_session_open+0x14>
    c6aa:	f000 f845 	bl	c738 <sym_SKFSQME5SGNPYLL7B75KY7PHXFYWSRI2HSTT45A>
    c6ae:	4607      	mov	r7, r0
    c6b0:	2400      	movs	r4, #0
    c6b2:	e00a      	b.n	c6ca <mpsl_timeslot_session_open+0x2a>
    c6b4:	f06f 0015 	mvn.w	r0, #21
    c6b8:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
    c6bc:	4620      	mov	r0, r4
    c6be:	f000 f841 	bl	c744 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ>
    c6c2:	7880      	ldrb	r0, [r0, #2]
    c6c4:	b138      	cbz	r0, c6d6 <mpsl_timeslot_session_open+0x36>
    c6c6:	1c64      	adds	r4, r4, #1
    c6c8:	b2e4      	uxtb	r4, r4
    c6ca:	42bc      	cmp	r4, r7
    c6cc:	d3f6      	bcc.n	c6bc <mpsl_timeslot_session_open+0x1c>
    c6ce:	bf00      	nop
    c6d0:	f06f 000b 	mvn.w	r0, #11
    c6d4:	e7f0      	b.n	c6b8 <mpsl_timeslot_session_open+0x18>
    c6d6:	4627      	mov	r7, r4
    c6d8:	2cff      	cmp	r4, #255	; 0xff
    c6da:	d0f9      	beq.n	c6d0 <mpsl_timeslot_session_open+0x30>
    c6dc:	4620      	mov	r0, r4
    c6de:	f000 f831 	bl	c744 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ>
    c6e2:	4604      	mov	r4, r0
    c6e4:	f00b fae1 	bl	17caa <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x336>
    c6e8:	7127      	strb	r7, [r4, #4]
    c6ea:	4621      	mov	r1, r4
    c6ec:	4807      	ldr	r0, [pc, #28]	; (c70c <mpsl_timeslot_session_open+0x6c>)
    c6ee:	f001 ff87 	bl	e600 <sym_RPHL2J7CVNKM6GKLDIFI4NVAPZE2FHTYW4VJSJI>
    c6f2:	70e0      	strb	r0, [r4, #3]
    c6f4:	2820      	cmp	r0, #32
    c6f6:	d005      	beq.n	c704 <mpsl_timeslot_session_open+0x64>
    c6f8:	2001      	movs	r0, #1
    c6fa:	60a5      	str	r5, [r4, #8]
    c6fc:	70a0      	strb	r0, [r4, #2]
    c6fe:	7037      	strb	r7, [r6, #0]
    c700:	2000      	movs	r0, #0
    c702:	e7d9      	b.n	c6b8 <mpsl_timeslot_session_open+0x18>
    c704:	f06f 0022 	mvn.w	r0, #34	; 0x22
    c708:	e7d6      	b.n	c6b8 <mpsl_timeslot_session_open+0x18>
    c70a:	0000      	.short	0x0000
    c70c:	00017a1b 	.word	0x00017a1b

0000c710 <sym_WTOZYVN52TSAPXLTHQQLG45KSAFDDSBJMHMFM6Q>:
    c710:	b510      	push	{r4, lr}
    c712:	0782      	lsls	r2, r0, #30
    c714:	d002      	beq.n	c71c <sym_WTOZYVN52TSAPXLTHQQLG45KSAFDDSBJMHMFM6Q+0xc>
    c716:	f06f 000d 	mvn.w	r0, #13
    c71a:	bd10      	pop	{r4, pc}
    c71c:	4a05      	ldr	r2, [pc, #20]	; (c734 <sym_WTOZYVN52TSAPXLTHQQLG45KSAFDDSBJMHMFM6Q+0x24>)
    c71e:	7011      	strb	r1, [r2, #0]
    c720:	6050      	str	r0, [r2, #4]
    c722:	b128      	cbz	r0, c730 <sym_WTOZYVN52TSAPXLTHQQLG45KSAFDDSBJMHMFM6Q+0x20>
    c724:	eb01 01c1 	add.w	r1, r1, r1, lsl #3
    c728:	008a      	lsls	r2, r1, #2
    c72a:	2100      	movs	r1, #0
    c72c:	f00b fd43 	bl	181b6 <sym_VSILKYHVQ5DVF6LG5MG267DQVA3A2XZQ6FSCLXA>
    c730:	2000      	movs	r0, #0
    c732:	bd10      	pop	{r4, pc}
    c734:	2000000c 	.word	0x2000000c

0000c738 <sym_SKFSQME5SGNPYLL7B75KY7PHXFYWSRI2HSTT45A>:
    c738:	4801      	ldr	r0, [pc, #4]	; (c740 <sym_SKFSQME5SGNPYLL7B75KY7PHXFYWSRI2HSTT45A+0x8>)
    c73a:	7800      	ldrb	r0, [r0, #0]
    c73c:	4770      	bx	lr
    c73e:	0000      	.short	0x0000
    c740:	2000000c 	.word	0x2000000c

0000c744 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ>:
    c744:	4905      	ldr	r1, [pc, #20]	; (c75c <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x18>)
    c746:	780a      	ldrb	r2, [r1, #0]
    c748:	4290      	cmp	r0, r2
    c74a:	d301      	bcc.n	c750 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xc>
    c74c:	2000      	movs	r0, #0
    c74e:	4770      	bx	lr
    c750:	6849      	ldr	r1, [r1, #4]
    c752:	eb00 00c0 	add.w	r0, r0, r0, lsl #3
    c756:	eb01 0080 	add.w	r0, r1, r0, lsl #2
    c75a:	4770      	bx	lr
    c75c:	2000000c 	.word	0x2000000c
    c760:	b570      	push	{r4, r5, r6, lr}
    c762:	4605      	mov	r5, r0
    c764:	2a20      	cmp	r2, #32
    c766:	d027      	beq.n	c7b8 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x74>
    c768:	4819      	ldr	r0, [pc, #100]	; (c7d0 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x8c>)
    c76a:	4c1a      	ldr	r4, [pc, #104]	; (c7d4 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x90>)
    c76c:	eb00 1c83 	add.w	ip, r0, r3, lsl #6
    c770:	eb0c 0042 	add.w	r0, ip, r2, lsl #1
    c774:	eb04 0383 	add.w	r3, r4, r3, lsl #2
    c778:	2920      	cmp	r1, #32
    c77a:	d022      	beq.n	c7c2 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x7e>
    c77c:	eb0c 0141 	add.w	r1, ip, r1, lsl #1
    c780:	7840      	ldrb	r0, [r0, #1]
    c782:	784c      	ldrb	r4, [r1, #1]
    c784:	7048      	strb	r0, [r1, #1]
    c786:	4620      	mov	r0, r4
    c788:	4601      	mov	r1, r0
    c78a:	eb0c 0041 	add.w	r0, ip, r1, lsl #1
    c78e:	4291      	cmp	r1, r2
    c790:	7005      	strb	r5, [r0, #0]
    c792:	7840      	ldrb	r0, [r0, #1]
    c794:	d1f8      	bne.n	c788 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x44>
    c796:	f893 2022 	ldrb.w	r2, [r3, #34]	; 0x22
    c79a:	2a20      	cmp	r2, #32
    c79c:	bf1a      	itte	ne
    c79e:	eb0c 0242 	addne.w	r2, ip, r2, lsl #1
    c7a2:	7054      	strbne	r4, [r2, #1]
    c7a4:	f883 4021 	strbeq.w	r4, [r3, #33]	; 0x21
    c7a8:	2220      	movs	r2, #32
    c7aa:	eb0c 0c41 	add.w	ip, ip, r1, lsl #1
    c7ae:	f88c 2001 	strb.w	r2, [ip, #1]
    c7b2:	f883 1022 	strb.w	r1, [r3, #34]	; 0x22
    c7b6:	bd70      	pop	{r4, r5, r6, pc}
    c7b8:	f240 217e 	movw	r1, #638	; 0x27e
    c7bc:	2070      	movs	r0, #112	; 0x70
    c7be:	f003 f969 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    c7c2:	f893 4020 	ldrb.w	r4, [r3, #32]
    c7c6:	7840      	ldrb	r0, [r0, #1]
    c7c8:	f883 0020 	strb.w	r0, [r3, #32]
    c7cc:	e7db      	b.n	c786 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x42>
    c7ce:	0000      	.short	0x0000
    c7d0:	20000e74 	.word	0x20000e74
    c7d4:	20000ef4 	.word	0x20000ef4
    c7d8:	e92d 4fff 	stmdb	sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
    c7dc:	b085      	sub	sp, #20
    c7de:	4615      	mov	r5, r2
    c7e0:	460c      	mov	r4, r1
    c7e2:	f002 f8f5 	bl	e9d0 <sym_PITJNQC6YSCEFAH23N5QRORZDKCSKOAUGBUS6GA>
    c7e6:	4428      	add	r0, r5
    c7e8:	f020 407f 	bic.w	r0, r0, #4278190080	; 0xff000000
    c7ec:	9002      	str	r0, [sp, #8]
    c7ee:	6821      	ldr	r1, [r4, #0]
    c7f0:	1a08      	subs	r0, r1, r0
    c7f2:	0200      	lsls	r0, r0, #8
    c7f4:	17c1      	asrs	r1, r0, #31
    c7f6:	eb00 6011 	add.w	r0, r0, r1, lsr #24
    c7fa:	1200      	asrs	r0, r0, #8
    c7fc:	2800      	cmp	r0, #0
    c7fe:	f300 80d5 	bgt.w	c9ac <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x268>
    c802:	48ac      	ldr	r0, [pc, #688]	; (cab4 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x370>)
    c804:	9f08      	ldr	r7, [sp, #32]
    c806:	4eac      	ldr	r6, [pc, #688]	; (cab8 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x374>)
    c808:	eb00 0087 	add.w	r0, r0, r7, lsl #2
    c80c:	9003      	str	r0, [sp, #12]
    c80e:	f890 5020 	ldrb.w	r5, [r0, #32]
    c812:	2020      	movs	r0, #32
    c814:	46e9      	mov	r9, sp
    c816:	f10d 0804 	add.w	r8, sp, #4
    c81a:	f88d 0000 	strb.w	r0, [sp]
    c81e:	f506 7a40 	add.w	sl, r6, #768	; 0x300
    c822:	2d20      	cmp	r5, #32
    c824:	bf18      	it	ne
    c826:	eb0a 1b87 	addne.w	fp, sl, r7, lsl #6
    c82a:	d025      	beq.n	c878 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x134>
    c82c:	eb05 0045 	add.w	r0, r5, r5, lsl #1
    c830:	eb06 00c0 	add.w	r0, r6, r0, lsl #3
    c834:	6822      	ldr	r2, [r4, #0]
    c836:	68c1      	ldr	r1, [r0, #12]
    c838:	1a51      	subs	r1, r2, r1
    c83a:	0209      	lsls	r1, r1, #8
    c83c:	17ca      	asrs	r2, r1, #31
    c83e:	eb01 6112 	add.w	r1, r1, r2, lsr #24
    c842:	3008      	adds	r0, #8
    c844:	1209      	asrs	r1, r1, #8
    c846:	d417      	bmi.n	c878 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x134>
    c848:	8961      	ldrh	r1, [r4, #10]
    c84a:	b171      	cbz	r1, c86a <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x126>
    c84c:	8941      	ldrh	r1, [r0, #10]
    c84e:	b961      	cbnz	r1, c86a <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x126>
    c850:	f000 fdba 	bl	d3c8 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xc84>
    c854:	f002 f8bc 	bl	e9d0 <sym_PITJNQC6YSCEFAH23N5QRORZDKCSKOAUGBUS6GA>
    c858:	6821      	ldr	r1, [r4, #0]
    c85a:	1a08      	subs	r0, r1, r0
    c85c:	0200      	lsls	r0, r0, #8
    c85e:	17c1      	asrs	r1, r0, #31
    c860:	eb00 6011 	add.w	r0, r0, r1, lsr #24
    c864:	1200      	asrs	r0, r0, #8
    c866:	2833      	cmp	r0, #51	; 0x33
    c868:	db06      	blt.n	c878 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x134>
    c86a:	eb0b 0045 	add.w	r0, fp, r5, lsl #1
    c86e:	f889 5000 	strb.w	r5, [r9]
    c872:	7845      	ldrb	r5, [r0, #1]
    c874:	2d20      	cmp	r5, #32
    c876:	d1d9      	bne.n	c82c <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xe8>
    c878:	f899 0000 	ldrb.w	r0, [r9]
    c87c:	f888 0000 	strb.w	r0, [r8]
    c880:	46a1      	mov	r9, r4
    c882:	2d20      	cmp	r5, #32
    c884:	bf1c      	itt	ne
    c886:	488d      	ldrne	r0, [pc, #564]	; (cabc <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x378>)
    c888:	eb00 1b87 	addne.w	fp, r0, r7, lsl #6
    c88c:	f000 810e 	beq.w	caac <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x368>
    c890:	eb05 0145 	add.w	r1, r5, r5, lsl #1
    c894:	eb06 0ac1 	add.w	sl, r6, r1, lsl #3
    c898:	f8d9 2004 	ldr.w	r2, [r9, #4]
    c89c:	f8da 1008 	ldr.w	r1, [sl, #8]
    c8a0:	4648      	mov	r0, r9
    c8a2:	1a89      	subs	r1, r1, r2
    c8a4:	0209      	lsls	r1, r1, #8
    c8a6:	17ca      	asrs	r2, r1, #31
    c8a8:	eb01 6112 	add.w	r1, r1, r2, lsr #24
    c8ac:	f10a 0708 	add.w	r7, sl, #8
    c8b0:	1209      	asrs	r1, r1, #8
    c8b2:	d415      	bmi.n	c8e0 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x19c>
    c8b4:	8979      	ldrh	r1, [r7, #10]
    c8b6:	2900      	cmp	r1, #0
    c8b8:	f000 80f8 	beq.w	caac <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x368>
    c8bc:	8941      	ldrh	r1, [r0, #10]
    c8be:	2900      	cmp	r1, #0
    c8c0:	f040 80f4 	bne.w	caac <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x368>
    c8c4:	f000 fd80 	bl	d3c8 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xc84>
    c8c8:	f002 f882 	bl	e9d0 <sym_PITJNQC6YSCEFAH23N5QRORZDKCSKOAUGBUS6GA>
    c8cc:	6839      	ldr	r1, [r7, #0]
    c8ce:	1a08      	subs	r0, r1, r0
    c8d0:	0200      	lsls	r0, r0, #8
    c8d2:	17c1      	asrs	r1, r0, #31
    c8d4:	eb00 6011 	add.w	r0, r0, r1, lsr #24
    c8d8:	1200      	asrs	r0, r0, #8
    c8da:	2833      	cmp	r0, #51	; 0x33
    c8dc:	f280 80e6 	bge.w	caac <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x368>
    c8e0:	f888 5000 	strb.w	r5, [r8]
    c8e4:	f89a 1014 	ldrb.w	r1, [sl, #20]
    c8e8:	f899 000c 	ldrb.w	r0, [r9, #12]
    c8ec:	4281      	cmp	r1, r0
    c8ee:	d906      	bls.n	c8fe <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x1ba>
    c8f0:	eb0b 0045 	add.w	r0, fp, r5, lsl #1
    c8f4:	7845      	ldrb	r5, [r0, #1]
    c8f6:	2d20      	cmp	r5, #32
    c8f8:	d1ca      	bne.n	c890 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x14c>
    c8fa:	f000 b8d7 	b.w	caac <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x368>
    c8fe:	f89d 0004 	ldrb.w	r0, [sp, #4]
    c902:	eb00 0040 	add.w	r0, r0, r0, lsl #1
    c906:	eb06 05c0 	add.w	r5, r6, r0, lsl #3
    c90a:	8a68      	ldrh	r0, [r5, #18]
    c90c:	68ef      	ldr	r7, [r5, #12]
    c90e:	2800      	cmp	r0, #0
    c910:	d143      	bne.n	c99a <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x256>
    c912:	8960      	ldrh	r0, [r4, #10]
    c914:	b3e8      	cbz	r0, c992 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x24e>
    c916:	68a8      	ldr	r0, [r5, #8]
    c918:	f00b fa65 	bl	17de6 <sym_XYQTP7YX2XFVREW5KFDH2NNPGRIPEHKIO2RURYI>
    c91c:	8a69      	ldrh	r1, [r5, #18]
    c91e:	7c2a      	ldrb	r2, [r5, #16]
    c920:	4b67      	ldr	r3, [pc, #412]	; (cac0 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x37c>)
    c922:	4411      	add	r1, r2
    c924:	1c49      	adds	r1, r1, #1
    c926:	1842      	adds	r2, r0, r1
    c928:	4298      	cmp	r0, r3
    c92a:	d904      	bls.n	c936 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x1f2>
    c92c:	f240 6109 	movw	r1, #1545	; 0x609
    c930:	2070      	movs	r0, #112	; 0x70
    c932:	f003 f8af 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    c936:	4863      	ldr	r0, [pc, #396]	; (cac4 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x380>)
    c938:	4281      	cmp	r1, r0
    c93a:	dd04      	ble.n	c946 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x202>
    c93c:	f240 610a 	movw	r1, #1546	; 0x60a
    c940:	2070      	movs	r0, #112	; 0x70
    c942:	f003 f8a7 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    c946:	4860      	ldr	r0, [pc, #384]	; (cac8 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x384>)
    c948:	4281      	cmp	r1, r0
    c94a:	da04      	bge.n	c956 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x212>
    c94c:	f240 610b 	movw	r1, #1547	; 0x60b
    c950:	2070      	movs	r0, #112	; 0x70
    c952:	f003 f89f 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    c956:	485d      	ldr	r0, [pc, #372]	; (cacc <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x388>)
    c958:	4290      	cmp	r0, r2
    c95a:	bfdc      	itt	le
    c95c:	f502 02f7 	addle.w	r2, r2, #8093696	; 0x7b8000
    c960:	f1a2 52f8 	suble.w	r2, r2, #520093696	; 0x1f000000
    c964:	dd05      	ble.n	c972 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x22e>
    c966:	2a00      	cmp	r2, #0
    c968:	bfbc      	itt	lt
    c96a:	f5a2 02f7 	sublt.w	r2, r2, #8093696	; 0x7b8000
    c96e:	f102 52f8 	addlt.w	r2, r2, #520093696	; 0x1f000000
    c972:	4610      	mov	r0, r2
    c974:	f002 f82c 	bl	e9d0 <sym_PITJNQC6YSCEFAH23N5QRORZDKCSKOAUGBUS6GA>
    c978:	f020 417f 	bic.w	r1, r0, #4278190080	; 0xff000000
    c97c:	1a78      	subs	r0, r7, r1
    c97e:	0200      	lsls	r0, r0, #8
    c980:	17c2      	asrs	r2, r0, #31
    c982:	eb00 6012 	add.w	r0, r0, r2, lsr #24
    c986:	1200      	asrs	r0, r0, #8
    c988:	2833      	cmp	r0, #51	; 0x33
    c98a:	bfb8      	it	lt
    c98c:	f101 0033 	addlt.w	r0, r1, #51	; 0x33
    c990:	e000      	b.n	c994 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x250>
    c992:	e002      	b.n	c99a <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x256>
    c994:	bfb8      	it	lt
    c996:	f020 477f 	biclt.w	r7, r0, #4278190080	; 0xff000000
    c99a:	9802      	ldr	r0, [sp, #8]
    c99c:	1a38      	subs	r0, r7, r0
    c99e:	0200      	lsls	r0, r0, #8
    c9a0:	17c1      	asrs	r1, r0, #31
    c9a2:	eb00 6011 	add.w	r0, r0, r1, lsr #24
    c9a6:	1200      	asrs	r0, r0, #8
    c9a8:	2800      	cmp	r0, #0
    c9aa:	dd03      	ble.n	c9b4 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x270>
    c9ac:	b009      	add	sp, #36	; 0x24
    c9ae:	2000      	movs	r0, #0
    c9b0:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
    c9b4:	e9d4 1000 	ldrd	r1, r0, [r4]
    c9b8:	1a40      	subs	r0, r0, r1
    c9ba:	4438      	add	r0, r7
    c9bc:	f027 417f 	bic.w	r1, r7, #4278190080	; 0xff000000
    c9c0:	f020 407f 	bic.w	r0, r0, #4278190080	; 0xff000000
    c9c4:	e9c4 1000 	strd	r1, r0, [r4]
    c9c8:	9803      	ldr	r0, [sp, #12]
    c9ca:	f8dd 8020 	ldr.w	r8, [sp, #32]
    c9ce:	466f      	mov	r7, sp
    c9d0:	f890 5020 	ldrb.w	r5, [r0, #32]
    c9d4:	2020      	movs	r0, #32
    c9d6:	f10d 0a04 	add.w	sl, sp, #4
    c9da:	f88d 0000 	strb.w	r0, [sp]
    c9de:	2d20      	cmp	r5, #32
    c9e0:	bf1c      	itt	ne
    c9e2:	4836      	ldrne	r0, [pc, #216]	; (cabc <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x378>)
    c9e4:	eb00 1988 	addne.w	r9, r0, r8, lsl #6
    c9e8:	d025      	beq.n	ca36 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x2f2>
    c9ea:	bf00      	nop
    c9ec:	eb05 0045 	add.w	r0, r5, r5, lsl #1
    c9f0:	eb06 00c0 	add.w	r0, r6, r0, lsl #3
    c9f4:	6822      	ldr	r2, [r4, #0]
    c9f6:	68c1      	ldr	r1, [r0, #12]
    c9f8:	1a51      	subs	r1, r2, r1
    c9fa:	0209      	lsls	r1, r1, #8
    c9fc:	17ca      	asrs	r2, r1, #31
    c9fe:	eb01 6112 	add.w	r1, r1, r2, lsr #24
    ca02:	3008      	adds	r0, #8
    ca04:	1209      	asrs	r1, r1, #8
    ca06:	d416      	bmi.n	ca36 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x2f2>
    ca08:	8961      	ldrh	r1, [r4, #10]
    ca0a:	b171      	cbz	r1, ca2a <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x2e6>
    ca0c:	8941      	ldrh	r1, [r0, #10]
    ca0e:	b961      	cbnz	r1, ca2a <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x2e6>
    ca10:	f000 fcda 	bl	d3c8 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xc84>
    ca14:	f001 ffdc 	bl	e9d0 <sym_PITJNQC6YSCEFAH23N5QRORZDKCSKOAUGBUS6GA>
    ca18:	6821      	ldr	r1, [r4, #0]
    ca1a:	1a08      	subs	r0, r1, r0
    ca1c:	0200      	lsls	r0, r0, #8
    ca1e:	17c1      	asrs	r1, r0, #31
    ca20:	eb00 6011 	add.w	r0, r0, r1, lsr #24
    ca24:	1200      	asrs	r0, r0, #8
    ca26:	2833      	cmp	r0, #51	; 0x33
    ca28:	db05      	blt.n	ca36 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x2f2>
    ca2a:	eb09 0045 	add.w	r0, r9, r5, lsl #1
    ca2e:	703d      	strb	r5, [r7, #0]
    ca30:	7845      	ldrb	r5, [r0, #1]
    ca32:	2d20      	cmp	r5, #32
    ca34:	d1da      	bne.n	c9ec <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x2a8>
    ca36:	7838      	ldrb	r0, [r7, #0]
    ca38:	f88a 0000 	strb.w	r0, [sl]
    ca3c:	4627      	mov	r7, r4
    ca3e:	2d20      	cmp	r5, #32
    ca40:	bf1c      	itt	ne
    ca42:	481e      	ldrne	r0, [pc, #120]	; (cabc <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x378>)
    ca44:	eb00 1b88 	addne.w	fp, r0, r8, lsl #6
    ca48:	d030      	beq.n	caac <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x368>
    ca4a:	eb05 0145 	add.w	r1, r5, r5, lsl #1
    ca4e:	eb06 09c1 	add.w	r9, r6, r1, lsl #3
    ca52:	6879      	ldr	r1, [r7, #4]
    ca54:	f8d9 2008 	ldr.w	r2, [r9, #8]
    ca58:	4638      	mov	r0, r7
    ca5a:	1a51      	subs	r1, r2, r1
    ca5c:	0209      	lsls	r1, r1, #8
    ca5e:	17ca      	asrs	r2, r1, #31
    ca60:	eb01 6112 	add.w	r1, r1, r2, lsr #24
    ca64:	f109 0808 	add.w	r8, r9, #8
    ca68:	1209      	asrs	r1, r1, #8
    ca6a:	d412      	bmi.n	ca92 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x34e>
    ca6c:	f8b8 100a 	ldrh.w	r1, [r8, #10]
    ca70:	b1e1      	cbz	r1, caac <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x368>
    ca72:	8941      	ldrh	r1, [r0, #10]
    ca74:	b9d1      	cbnz	r1, caac <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x368>
    ca76:	f000 fca7 	bl	d3c8 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xc84>
    ca7a:	f001 ffa9 	bl	e9d0 <sym_PITJNQC6YSCEFAH23N5QRORZDKCSKOAUGBUS6GA>
    ca7e:	f8d8 1000 	ldr.w	r1, [r8]
    ca82:	1a08      	subs	r0, r1, r0
    ca84:	0200      	lsls	r0, r0, #8
    ca86:	17c1      	asrs	r1, r0, #31
    ca88:	eb00 6011 	add.w	r0, r0, r1, lsr #24
    ca8c:	1200      	asrs	r0, r0, #8
    ca8e:	2833      	cmp	r0, #51	; 0x33
    ca90:	da0c      	bge.n	caac <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x368>
    ca92:	f88a 5000 	strb.w	r5, [sl]
    ca96:	f899 0014 	ldrb.w	r0, [r9, #20]
    ca9a:	7b39      	ldrb	r1, [r7, #12]
    ca9c:	4288      	cmp	r0, r1
    ca9e:	f67f af2e 	bls.w	c8fe <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x1ba>
    caa2:	eb0b 0045 	add.w	r0, fp, r5, lsl #1
    caa6:	7845      	ldrb	r5, [r0, #1]
    caa8:	2d20      	cmp	r5, #32
    caaa:	d1ce      	bne.n	ca4a <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x306>
    caac:	b009      	add	sp, #36	; 0x24
    caae:	2001      	movs	r0, #1
    cab0:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
    cab4:	20000ef4 	.word	0x20000ef4
    cab8:	20000b74 	.word	0x20000b74
    cabc:	20000e74 	.word	0x20000e74
    cac0:	1e847fff 	.word	0x1e847fff
    cac4:	07a12000 	.word	0x07a12000
    cac8:	f85ee000 	.word	0xf85ee000
    cacc:	1e848000 	.word	0x1e848000
    cad0:	e92d 5ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, ip, lr}
    cad4:	4604      	mov	r4, r0
    cad6:	483c      	ldr	r0, [pc, #240]	; (cbc8 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x484>)
    cad8:	460e      	mov	r6, r1
    cada:	eb00 0086 	add.w	r0, r0, r6, lsl #2
    cade:	4f3b      	ldr	r7, [pc, #236]	; (cbcc <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x488>)
    cae0:	f890 5020 	ldrb.w	r5, [r0, #32]
    cae4:	2020      	movs	r0, #32
    cae6:	4698      	mov	r8, r3
    cae8:	4692      	mov	sl, r2
    caea:	7010      	strb	r0, [r2, #0]
    caec:	f507 7940 	add.w	r9, r7, #768	; 0x300
    caf0:	2d20      	cmp	r5, #32
    caf2:	bf18      	it	ne
    caf4:	eb09 1b86 	addne.w	fp, r9, r6, lsl #6
    caf8:	d028      	beq.n	cb4c <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x408>
    cafa:	bf00      	nop
    cafc:	eb05 0045 	add.w	r0, r5, r5, lsl #1
    cb00:	eb07 00c0 	add.w	r0, r7, r0, lsl #3
    cb04:	f100 0108 	add.w	r1, r0, #8
    cb08:	68c0      	ldr	r0, [r0, #12]
    cb0a:	6822      	ldr	r2, [r4, #0]
    cb0c:	1a10      	subs	r0, r2, r0
    cb0e:	0200      	lsls	r0, r0, #8
    cb10:	17c2      	asrs	r2, r0, #31
    cb12:	eb00 6012 	add.w	r0, r0, r2, lsr #24
    cb16:	1200      	asrs	r0, r0, #8
    cb18:	d418      	bmi.n	cb4c <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x408>
    cb1a:	8960      	ldrh	r0, [r4, #10]
    cb1c:	b178      	cbz	r0, cb3e <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x3fa>
    cb1e:	8948      	ldrh	r0, [r1, #10]
    cb20:	b968      	cbnz	r0, cb3e <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x3fa>
    cb22:	4608      	mov	r0, r1
    cb24:	f000 fc50 	bl	d3c8 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xc84>
    cb28:	f001 ff52 	bl	e9d0 <sym_PITJNQC6YSCEFAH23N5QRORZDKCSKOAUGBUS6GA>
    cb2c:	6821      	ldr	r1, [r4, #0]
    cb2e:	1a08      	subs	r0, r1, r0
    cb30:	0200      	lsls	r0, r0, #8
    cb32:	17c1      	asrs	r1, r0, #31
    cb34:	eb00 6011 	add.w	r0, r0, r1, lsr #24
    cb38:	1200      	asrs	r0, r0, #8
    cb3a:	2833      	cmp	r0, #51	; 0x33
    cb3c:	db06      	blt.n	cb4c <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x408>
    cb3e:	eb0b 0045 	add.w	r0, fp, r5, lsl #1
    cb42:	f88a 5000 	strb.w	r5, [sl]
    cb46:	7845      	ldrb	r5, [r0, #1]
    cb48:	2d20      	cmp	r5, #32
    cb4a:	d1d7      	bne.n	cafc <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x3b8>
    cb4c:	f89a 0000 	ldrb.w	r0, [sl]
    cb50:	f888 0000 	strb.w	r0, [r8]
    cb54:	2d20      	cmp	r5, #32
    cb56:	bf18      	it	ne
    cb58:	eb09 1a86 	addne.w	sl, r9, r6, lsl #6
    cb5c:	d030      	beq.n	cbc0 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x47c>
    cb5e:	eb05 0145 	add.w	r1, r5, r5, lsl #1
    cb62:	eb07 09c1 	add.w	r9, r7, r1, lsl #3
    cb66:	6861      	ldr	r1, [r4, #4]
    cb68:	f8d9 2008 	ldr.w	r2, [r9, #8]
    cb6c:	4620      	mov	r0, r4
    cb6e:	1a51      	subs	r1, r2, r1
    cb70:	0209      	lsls	r1, r1, #8
    cb72:	17ca      	asrs	r2, r1, #31
    cb74:	eb01 6112 	add.w	r1, r1, r2, lsr #24
    cb78:	f109 0608 	add.w	r6, r9, #8
    cb7c:	1209      	asrs	r1, r1, #8
    cb7e:	d410      	bmi.n	cba2 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x45e>
    cb80:	8971      	ldrh	r1, [r6, #10]
    cb82:	b1e9      	cbz	r1, cbc0 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x47c>
    cb84:	8941      	ldrh	r1, [r0, #10]
    cb86:	b9d9      	cbnz	r1, cbc0 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x47c>
    cb88:	f000 fc1e 	bl	d3c8 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xc84>
    cb8c:	f001 ff20 	bl	e9d0 <sym_PITJNQC6YSCEFAH23N5QRORZDKCSKOAUGBUS6GA>
    cb90:	6831      	ldr	r1, [r6, #0]
    cb92:	1a08      	subs	r0, r1, r0
    cb94:	0200      	lsls	r0, r0, #8
    cb96:	17c1      	asrs	r1, r0, #31
    cb98:	eb00 6011 	add.w	r0, r0, r1, lsr #24
    cb9c:	1200      	asrs	r0, r0, #8
    cb9e:	2833      	cmp	r0, #51	; 0x33
    cba0:	da0e      	bge.n	cbc0 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x47c>
    cba2:	f888 5000 	strb.w	r5, [r8]
    cba6:	f899 0014 	ldrb.w	r0, [r9, #20]
    cbaa:	7b21      	ldrb	r1, [r4, #12]
    cbac:	4288      	cmp	r0, r1
    cbae:	d802      	bhi.n	cbb6 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x472>
    cbb0:	2000      	movs	r0, #0
    cbb2:	e8bd 9ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, ip, pc}
    cbb6:	eb0a 0045 	add.w	r0, sl, r5, lsl #1
    cbba:	7845      	ldrb	r5, [r0, #1]
    cbbc:	2d20      	cmp	r5, #32
    cbbe:	d1ce      	bne.n	cb5e <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x41a>
    cbc0:	2001      	movs	r0, #1
    cbc2:	e8bd 9ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, ip, pc}
    cbc6:	0000      	.short	0x0000
    cbc8:	20000ef4 	.word	0x20000ef4
    cbcc:	20000b74 	.word	0x20000b74
    cbd0:	e92d 4ff7 	stmdb	sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr}
    cbd4:	f04f 0800 	mov.w	r8, #0
    cbd8:	b098      	sub	sp, #96	; 0x60
    cbda:	4616      	mov	r6, r2
    cbdc:	460d      	mov	r5, r1
    cbde:	46c3      	mov	fp, r8
    cbe0:	f002 f96e 	bl	eec0 <sym_RUQO26WM5KVVEW7O3OHCXPO7LLLXRBDPIPSWIWY>
    cbe4:	4604      	mov	r4, r0
    cbe6:	2d01      	cmp	r5, #1
    cbe8:	bf18      	it	ne
    cbea:	2d02      	cmpne	r5, #2
    cbec:	d005      	beq.n	cbfa <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x4b6>
    cbee:	f640 1194 	movw	r1, #2452	; 0x994
    cbf2:	f04f 0070 	mov.w	r0, #112	; 0x70
    cbf6:	f002 ff4d 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    cbfa:	49fd      	ldr	r1, [pc, #1012]	; (cff0 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x8ac>)
    cbfc:	2001      	movs	r0, #1
    cbfe:	6008      	str	r0, [r1, #0]
    cc00:	49fc      	ldr	r1, [pc, #1008]	; (cff4 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x8b0>)
    cc02:	6889      	ldr	r1, [r1, #8]
    cc04:	6008      	str	r0, [r1, #0]
    cc06:	2000      	movs	r0, #0
    cc08:	900c      	str	r0, [sp, #48]	; 0x30
    cc0a:	1e40      	subs	r0, r0, #1
    cc0c:	900e      	str	r0, [sp, #56]	; 0x38
    cc0e:	49fa      	ldr	r1, [pc, #1000]	; (cff8 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x8b4>)
    cc10:	eb06 0046 	add.w	r0, r6, r6, lsl #1
    cc14:	eb01 03c0 	add.w	r3, r1, r0, lsl #3
    cc18:	3308      	adds	r3, #8
    cc1a:	af0f      	add	r7, sp, #60	; 0x3c
    cc1c:	cb0f      	ldmia	r3, {r0, r1, r2, r3}
    cc1e:	e887 000f 	stmia.w	r7, {r0, r1, r2, r3}
    cc22:	a80f      	add	r0, sp, #60	; 0x3c
    cc24:	f000 fbd0 	bl	d3c8 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xc84>
    cc28:	900d      	str	r0, [sp, #52]	; 0x34
    cc2a:	48f3      	ldr	r0, [pc, #972]	; (cff8 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x8b4>)
    cc2c:	f8bd 9046 	ldrh.w	r9, [sp, #70]	; 0x46
    cc30:	f8b0 039c 	ldrh.w	r0, [r0, #924]	; 0x39c
    cc34:	f8ad 004c 	strh.w	r0, [sp, #76]	; 0x4c
    cc38:	f1b9 0f00 	cmp.w	r9, #0
    cc3c:	bf14      	ite	ne
    cc3e:	f04f 0a01 	movne.w	sl, #1
    cc42:	f04f 0a00 	moveq.w	sl, #0
    cc46:	980f      	ldr	r0, [sp, #60]	; 0x3c
    cc48:	9014      	str	r0, [sp, #80]	; 0x50
    cc4a:	f1ba 0f00 	cmp.w	sl, #0
    cc4e:	d009      	beq.n	cc64 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x520>
    cc50:	48ea      	ldr	r0, [pc, #936]	; (cffc <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x8b8>)
    cc52:	f890 002c 	ldrb.w	r0, [r0, #44]	; 0x2c
    cc56:	b928      	cbnz	r0, cc64 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x520>
    cc58:	f002 feb8 	bl	f9cc <sym_LIY23QT3GHIV7NCGJ6ZW6LB2ZUSI56CIFCL6HUY>
    cc5c:	2800      	cmp	r0, #0
    cc5e:	bf08      	it	eq
    cc60:	2701      	moveq	r7, #1
    cc62:	d000      	beq.n	cc66 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x522>
    cc64:	2700      	movs	r7, #0
    cc66:	48e6      	ldr	r0, [pc, #920]	; (d000 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x8bc>)
    cc68:	2200      	movs	r2, #0
    cc6a:	9215      	str	r2, [sp, #84]	; 0x54
    cc6c:	7800      	ldrb	r0, [r0, #0]
    cc6e:	4616      	mov	r6, r2
    cc70:	2801      	cmp	r0, #1
    cc72:	bf18      	it	ne
    cc74:	2803      	cmpne	r0, #3
    cc76:	d140      	bne.n	ccfa <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x5b6>
    cc78:	48e1      	ldr	r0, [pc, #900]	; (d000 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x8bc>)
    cc7a:	f8b0 8002 	ldrh.w	r8, [r0, #2]
    cc7e:	eba8 0009 	sub.w	r0, r8, r9
    cc82:	9015      	str	r0, [sp, #84]	; 0x54
    cc84:	45c8      	cmp	r8, r9
    cc86:	d938      	bls.n	ccfa <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x5b6>
    cc88:	9b0d      	ldr	r3, [sp, #52]	; 0x34
    cc8a:	ea6f 0108 	mvn.w	r1, r8
    cc8e:	f8df e374 	ldr.w	lr, [pc, #884]	; d004 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x8c0>
    cc92:	1858      	adds	r0, r3, r1
    cc94:	f10d 0c0c 	add.w	ip, sp, #12
    cc98:	aa17      	add	r2, sp, #92	; 0x5c
    cc9a:	4573      	cmp	r3, lr
    cc9c:	d904      	bls.n	cca8 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x564>
    cc9e:	f240 6109 	movw	r1, #1545	; 0x609
    cca2:	2070      	movs	r0, #112	; 0x70
    cca4:	f002 fef6 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    cca8:	4bd7      	ldr	r3, [pc, #860]	; (d008 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x8c4>)
    ccaa:	4299      	cmp	r1, r3
    ccac:	dd04      	ble.n	ccb8 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x574>
    ccae:	f240 610a 	movw	r1, #1546	; 0x60a
    ccb2:	2070      	movs	r0, #112	; 0x70
    ccb4:	f002 feee 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    ccb8:	4bd4      	ldr	r3, [pc, #848]	; (d00c <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x8c8>)
    ccba:	4299      	cmp	r1, r3
    ccbc:	da04      	bge.n	ccc8 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x584>
    ccbe:	f240 610b 	movw	r1, #1547	; 0x60b
    ccc2:	2070      	movs	r0, #112	; 0x70
    ccc4:	f002 fee6 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    ccc8:	49d1      	ldr	r1, [pc, #836]	; (d010 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x8cc>)
    ccca:	4281      	cmp	r1, r0
    cccc:	bfdc      	itt	le
    ccce:	f500 00f7 	addle.w	r0, r0, #8093696	; 0x7b8000
    ccd2:	f1a0 50f8 	suble.w	r0, r0, #520093696	; 0x1f000000
    ccd6:	dd05      	ble.n	cce4 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x5a0>
    ccd8:	2800      	cmp	r0, #0
    ccda:	bfbc      	itt	lt
    ccdc:	f5a0 00f7 	sublt.w	r0, r0, #8093696	; 0x7b8000
    cce0:	f100 50f8 	addlt.w	r0, r0, #520093696	; 0x1f000000
    cce4:	4661      	mov	r1, ip
    cce6:	f001 fe8f 	bl	ea08 <sym_AOU55ZK756JLPLCLZ5TZSSVKOAWWFUNQZATBXUI>
    ccea:	9803      	ldr	r0, [sp, #12]
    ccec:	990f      	ldr	r1, [sp, #60]	; 0x3c
    ccee:	f020 407f 	bic.w	r0, r0, #4278190080	; 0xff000000
    ccf2:	9003      	str	r0, [sp, #12]
    ccf4:	1a08      	subs	r0, r1, r0
    ccf6:	f020 427f 	bic.w	r2, r0, #4278190080	; 0xff000000
    ccfa:	2f00      	cmp	r7, #0
    ccfc:	bf18      	it	ne
    ccfe:	2632      	movne	r6, #50	; 0x32
    cd00:	d104      	bne.n	cd0c <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x5c8>
    cd02:	f89d 004c 	ldrb.w	r0, [sp, #76]	; 0x4c
    cd06:	2800      	cmp	r0, #0
    cd08:	bf18      	it	ne
    cd0a:	2602      	movne	r6, #2
    cd0c:	f1b4 7f80 	cmp.w	r4, #16777216	; 0x1000000
    cd10:	d008      	beq.n	cd24 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x5e0>
    cd12:	980f      	ldr	r0, [sp, #60]	; 0x3c
    cd14:	1b00      	subs	r0, r0, r4
    cd16:	0200      	lsls	r0, r0, #8
    cd18:	17c1      	asrs	r1, r0, #31
    cd1a:	eb00 6011 	add.w	r0, r0, r1, lsr #24
    cd1e:	1200      	asrs	r0, r0, #8
    cd20:	2801      	cmp	r0, #1
    cd22:	da02      	bge.n	cd2a <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x5e6>
    cd24:	2104      	movs	r1, #4
    cd26:	9818      	ldr	r0, [sp, #96]	; 0x60
    cd28:	e00b      	b.n	cd42 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x5fe>
    cd2a:	b147      	cbz	r7, cd3e <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x5fa>
    cd2c:	48b3      	ldr	r0, [pc, #716]	; (cffc <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x8b8>)
    cd2e:	f890 002d 	ldrb.w	r0, [r0, #45]	; 0x2d
    cd32:	b120      	cbz	r0, cd3e <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x5fa>
    cd34:	f89d 004c 	ldrb.w	r0, [sp, #76]	; 0x4c
    cd38:	1c06      	adds	r6, r0, #0
    cd3a:	bf18      	it	ne
    cd3c:	2602      	movne	r6, #2
    cd3e:	4620      	mov	r0, r4
    cd40:	2101      	movs	r1, #1
    cd42:	f1b9 0f00 	cmp.w	r9, #0
    cd46:	d002      	beq.n	cd4e <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x60a>
    cd48:	9b15      	ldr	r3, [sp, #84]	; 0x54
    cd4a:	2b1e      	cmp	r3, #30
    cd4c:	da02      	bge.n	cd54 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x610>
    cd4e:	f89d 304c 	ldrb.w	r3, [sp, #76]	; 0x4c
    cd52:	b113      	cbz	r3, cd5a <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x616>
    cd54:	f04f 0b01 	mov.w	fp, #1
    cd58:	1e49      	subs	r1, r1, #1
    cd5a:	198b      	adds	r3, r1, r6
    cd5c:	49a8      	ldr	r1, [pc, #672]	; (d000 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x8bc>)
    cd5e:	f89d e04d 	ldrb.w	lr, [sp, #77]	; 0x4d
    cd62:	7809      	ldrb	r1, [r1, #0]
    cd64:	9115      	str	r1, [sp, #84]	; 0x54
    cd66:	990f      	ldr	r1, [sp, #60]	; 0x3c
    cd68:	1a89      	subs	r1, r1, r2
    cd6a:	f021 4c7f 	bic.w	ip, r1, #4278190080	; 0xff000000
    cd6e:	ebac 0100 	sub.w	r1, ip, r0
    cd72:	0209      	lsls	r1, r1, #8
    cd74:	17ce      	asrs	r6, r1, #31
    cd76:	eb01 6116 	add.w	r1, r1, r6, lsr #24
    cd7a:	1209      	asrs	r1, r1, #8
    cd7c:	4299      	cmp	r1, r3
    cd7e:	db18      	blt.n	cdb2 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x66e>
    cd80:	2a00      	cmp	r2, #0
    cd82:	bf18      	it	ne
    cd84:	f8cd c03c 	strne.w	ip, [sp, #60]	; 0x3c
    cd88:	9e0f      	ldr	r6, [sp, #60]	; 0x3c
    cd8a:	9705      	str	r7, [sp, #20]
    cd8c:	2700      	movs	r7, #0
    cd8e:	f001 ff91 	bl	ecb4 <sym_M4DIQOXJAE3BNHQBIUCZXAABSM24CWUEJOCU7DY>
    cd92:	1a30      	subs	r0, r6, r0
    cd94:	0200      	lsls	r0, r0, #8
    cd96:	17c1      	asrs	r1, r0, #31
    cd98:	eb00 6011 	add.w	r0, r0, r1, lsr #24
    cd9c:	1200      	asrs	r0, r0, #8
    cd9e:	283e      	cmp	r0, #62	; 0x3e
    cda0:	da3f      	bge.n	ce22 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x6de>
    cda2:	2d01      	cmp	r5, #1
    cda4:	d020      	beq.n	cde8 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x6a4>
    cda6:	1e70      	subs	r0, r6, #1
    cda8:	9905      	ldr	r1, [sp, #20]
    cdaa:	f020 407f 	bic.w	r0, r0, #4278190080	; 0xff000000
    cdae:	b319      	cbz	r1, cdf8 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x6b4>
    cdb0:	e02d      	b.n	ce0e <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x6ca>
    cdb2:	b182      	cbz	r2, cdd6 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x692>
    cdb4:	f1be 0f00 	cmp.w	lr, #0
    cdb8:	bf04      	itt	eq
    cdba:	9915      	ldreq	r1, [sp, #84]	; 0x54
    cdbc:	2903      	cmpeq	r1, #3
    cdbe:	d00a      	beq.n	cdd6 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x692>
    cdc0:	b927      	cbnz	r7, cdcc <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x688>
    cdc2:	f89d 104c 	ldrb.w	r1, [sp, #76]	; 0x4c
    cdc6:	2900      	cmp	r1, #0
    cdc8:	bf18      	it	ne
    cdca:	1e9b      	subne	r3, r3, #2
    cdcc:	2200      	movs	r2, #0
    cdce:	f88d 204c 	strb.w	r2, [sp, #76]	; 0x4c
    cdd2:	4690      	mov	r8, r2
    cdd4:	e7c7      	b.n	cd66 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x622>
    cdd6:	bb07      	cbnz	r7, ce1a <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x6d6>
    cdd8:	f89d 104c 	ldrb.w	r1, [sp, #76]	; 0x4c
    cddc:	b1e9      	cbz	r1, ce1a <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x6d6>
    cdde:	2100      	movs	r1, #0
    cde0:	f88d 104c 	strb.w	r1, [sp, #76]	; 0x4c
    cde4:	1e9b      	subs	r3, r3, #2
    cde6:	e7be      	b.n	cd66 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x622>
    cde8:	f1b4 7f80 	cmp.w	r4, #16777216	; 0x1000000
    cdec:	d120      	bne.n	ce30 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x6ec>
    cdee:	f640 110d 	movw	r1, #2317	; 0x90d
    cdf2:	2070      	movs	r0, #112	; 0x70
    cdf4:	f002 fe4e 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    cdf8:	f1b4 7f80 	cmp.w	r4, #16777216	; 0x1000000
    cdfc:	d007      	beq.n	ce0e <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x6ca>
    cdfe:	1a21      	subs	r1, r4, r0
    ce00:	0209      	lsls	r1, r1, #8
    ce02:	17ca      	asrs	r2, r1, #31
    ce04:	eb01 6112 	add.w	r1, r1, r2, lsr #24
    ce08:	1209      	asrs	r1, r1, #8
    ce0a:	2904      	cmp	r1, #4
    ce0c:	dd03      	ble.n	ce16 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x6d2>
    ce0e:	4604      	mov	r4, r0
    ce10:	f001 ff56 	bl	ecc0 <sym_2ZDZA75WOMRNSQ6XL7IZWAQKYFFSRJOGBGKPTIQ>
    ce14:	e00c      	b.n	ce30 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x6ec>
    ce16:	2900      	cmp	r1, #0
    ce18:	dd0a      	ble.n	ce30 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x6ec>
    ce1a:	b01b      	add	sp, #108	; 0x6c
    ce1c:	2000      	movs	r0, #0
    ce1e:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
    ce22:	1e70      	subs	r0, r6, #1
    ce24:	f020 447f 	bic.w	r4, r0, #4278190080	; 0xff000000
    ce28:	4620      	mov	r0, r4
    ce2a:	f001 ff49 	bl	ecc0 <sym_2ZDZA75WOMRNSQ6XL7IZWAQKYFFSRJOGBGKPTIQ>
    ce2e:	4657      	mov	r7, sl
    ce30:	f1b4 7f80 	cmp.w	r4, #16777216	; 0x1000000
    ce34:	d028      	beq.n	ce88 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x744>
    ce36:	980f      	ldr	r0, [sp, #60]	; 0x3c
    ce38:	f8dd c040 	ldr.w	ip, [sp, #64]	; 0x40
    ce3c:	1b00      	subs	r0, r0, r4
    ce3e:	f08b 0301 	eor.w	r3, fp, #1
    ce42:	4a74      	ldr	r2, [pc, #464]	; (d014 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x8d0>)
    ce44:	f020 407f 	bic.w	r0, r0, #4278190080	; 0xff000000
    ce48:	ebac 0c04 	sub.w	ip, ip, r4
    ce4c:	f02c 4c7f 	bic.w	ip, ip, #4278190080	; 0xff000000
    ce50:	4283      	cmp	r3, r0
    ce52:	bf98      	it	ls
    ce54:	f5b0 0f80 	cmpls.w	r0, #4194304	; 0x400000
    ce58:	d2df      	bcs.n	ce1a <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x6d6>
    ce5a:	4562      	cmp	r2, ip
    ce5c:	d3dd      	bcc.n	ce1a <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x6d6>
    ce5e:	4620      	mov	r0, r4
    ce60:	f00a ffc1 	bl	17de6 <sym_XYQTP7YX2XFVREW5KFDH2NNPGRIPEHKIO2RURYI>
    ce64:	4967      	ldr	r1, [pc, #412]	; (d004 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x8c0>)
    ce66:	9a0d      	ldr	r2, [sp, #52]	; 0x34
    ce68:	1c4b      	adds	r3, r1, #1
    ce6a:	1a16      	subs	r6, r2, r0
    ce6c:	ebb6 0f93 	cmp.w	r6, r3, lsr #2
    ce70:	bf24      	itt	cs
    ce72:	eba0 0c02 	subcs.w	ip, r0, r2
    ce76:	ebbc 0f93 	cmpcs.w	ip, r3, lsr #2
    ce7a:	d310      	bcc.n	ce9e <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x75a>
    ce7c:	42b1      	cmp	r1, r6
    ce7e:	d208      	bcs.n	ce92 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x74e>
    ce80:	1a08      	subs	r0, r1, r0
    ce82:	4410      	add	r0, r2
    ce84:	1c46      	adds	r6, r0, #1
    ce86:	e00a      	b.n	ce9e <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x75a>
    ce88:	f640 212c 	movw	r1, #2604	; 0xa2c
    ce8c:	2070      	movs	r0, #112	; 0x70
    ce8e:	f002 fe01 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    ce92:	4561      	cmp	r1, ip
    ce94:	d22c      	bcs.n	cef0 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x7ac>
    ce96:	1a89      	subs	r1, r1, r2
    ce98:	4408      	add	r0, r1
    ce9a:	1c40      	adds	r0, r0, #1
    ce9c:	4246      	negs	r6, r0
    ce9e:	4857      	ldr	r0, [pc, #348]	; (cffc <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x8b8>)
    cea0:	7f80      	ldrb	r0, [r0, #30]
    cea2:	b350      	cbz	r0, cefa <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x7b6>
    cea4:	4628      	mov	r0, r5
    cea6:	4645      	mov	r5, r8
    cea8:	f04f 0b00 	mov.w	fp, #0
    ceac:	46d8      	mov	r8, fp
    ceae:	2801      	cmp	r0, #1
    ceb0:	d005      	beq.n	cebe <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x77a>
    ceb2:	2002      	movs	r0, #2
    ceb4:	f002 f94c 	bl	f150 <sym_TSYEIN5CZPQE3YK6VECZD5C2M4LMXKKH6O7LNAY>
    ceb8:	2001      	movs	r0, #1
    ceba:	f002 f949 	bl	f150 <sym_TSYEIN5CZPQE3YK6VECZD5C2M4LMXKKH6O7LNAY>
    cebe:	45a9      	cmp	r9, r5
    cec0:	d22c      	bcs.n	cf1c <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x7d8>
    cec2:	eba6 0105 	sub.w	r1, r6, r5
    cec6:	f04f 0301 	mov.w	r3, #1
    ceca:	f04f 0203 	mov.w	r2, #3
    cece:	f04f 0002 	mov.w	r0, #2
    ced2:	f002 f875 	bl	efc0 <sym_X2K67YH6UCW6TFK6NTLPZZFGWYHTTPZYK5PXHNQ>
    ced6:	2800      	cmp	r0, #0
    ced8:	bf08      	it	eq
    ceda:	f04f 0801 	moveq.w	r8, #1
    cede:	f1b9 0f00 	cmp.w	r9, #0
    cee2:	d035      	beq.n	cf50 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x80c>
    cee4:	2301      	movs	r3, #1
    cee6:	eba6 0109 	sub.w	r1, r6, r9
    ceea:	2203      	movs	r2, #3
    ceec:	4618      	mov	r0, r3
    ceee:	e023      	b.n	cf38 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x7f4>
    cef0:	f640 310c 	movw	r1, #2828	; 0xb0c
    cef4:	2070      	movs	r0, #112	; 0x70
    cef6:	f002 fdcd 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    cefa:	45c1      	cmp	r9, r8
    cefc:	bf34      	ite	cc
    cefe:	4640      	movcc	r0, r8
    cf00:	4648      	movcs	r0, r9
    cf02:	f1bb 0f00 	cmp.w	fp, #0
    cf06:	bf14      	ite	ne
    cf08:	2100      	movne	r1, #0
    cf0a:	211e      	moveq	r1, #30
    cf0c:	4408      	add	r0, r1
    cf0e:	42b0      	cmp	r0, r6
    cf10:	dbc8      	blt.n	cea4 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x760>
    cf12:	f640 213f 	movw	r1, #2623	; 0xa3f
    cf16:	2070      	movs	r0, #112	; 0x70
    cf18:	f002 fdbc 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    cf1c:	d910      	bls.n	cf40 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x7fc>
    cf1e:	2301      	movs	r3, #1
    cf20:	eba6 0109 	sub.w	r1, r6, r9
    cf24:	2203      	movs	r2, #3
    cf26:	4618      	mov	r0, r3
    cf28:	f002 f84a 	bl	efc0 <sym_X2K67YH6UCW6TFK6NTLPZZFGWYHTTPZYK5PXHNQ>
    cf2c:	b328      	cbz	r0, cf7a <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x836>
    cf2e:	b17d      	cbz	r5, cf50 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x80c>
    cf30:	1b71      	subs	r1, r6, r5
    cf32:	2301      	movs	r3, #1
    cf34:	2203      	movs	r2, #3
    cf36:	2002      	movs	r0, #2
    cf38:	f002 f842 	bl	efc0 <sym_X2K67YH6UCW6TFK6NTLPZZFGWYHTTPZYK5PXHNQ>
    cf3c:	b1e8      	cbz	r0, cf7a <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x836>
    cf3e:	e007      	b.n	cf50 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x80c>
    cf40:	ea55 0009 	orrs.w	r0, r5, r9
    cf44:	d004      	beq.n	cf50 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x80c>
    cf46:	f640 1177 	movw	r1, #2423	; 0x977
    cf4a:	2070      	movs	r0, #112	; 0x70
    cf4c:	f002 fda2 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    cf50:	2301      	movs	r3, #1
    cf52:	2203      	movs	r2, #3
    cf54:	4631      	mov	r1, r6
    cf56:	2000      	movs	r0, #0
    cf58:	f002 f832 	bl	efc0 <sym_X2K67YH6UCW6TFK6NTLPZZFGWYHTTPZYK5PXHNQ>
    cf5c:	b168      	cbz	r0, cf7a <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x836>
    cf5e:	2501      	movs	r5, #1
    cf60:	f1b8 0f00 	cmp.w	r8, #0
    cf64:	d003      	beq.n	cf6e <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x82a>
    cf66:	9814      	ldr	r0, [sp, #80]	; 0x50
    cf68:	900f      	str	r0, [sp, #60]	; 0x3c
    cf6a:	f88d b04c 	strb.w	fp, [sp, #76]	; 0x4c
    cf6e:	f8df 80a8 	ldr.w	r8, [pc, #168]	; d018 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x8d4>
    cf72:	f1ba 0f00 	cmp.w	sl, #0
    cf76:	d10e      	bne.n	cf96 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x852>
    cf78:	e009      	b.n	cf8e <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x84a>
    cf7a:	2002      	movs	r0, #2
    cf7c:	f002 f8e8 	bl	f150 <sym_TSYEIN5CZPQE3YK6VECZD5C2M4LMXKKH6O7LNAY>
    cf80:	2001      	movs	r0, #1
    cf82:	f002 f8e5 	bl	f150 <sym_TSYEIN5CZPQE3YK6VECZD5C2M4LMXKKH6O7LNAY>
    cf86:	b01b      	add	sp, #108	; 0x6c
    cf88:	2000      	movs	r0, #0
    cf8a:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
    cf8e:	481b      	ldr	r0, [pc, #108]	; (cffc <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x8b8>)
    cf90:	f890 002d 	ldrb.w	r0, [r0, #45]	; 0x2d
    cf94:	b100      	cbz	r0, cf98 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x854>
    cf96:	b34f      	cbz	r7, cfec <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x8a8>
    cf98:	f8df a060 	ldr.w	sl, [pc, #96]	; cffc <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x8b8>
    cf9c:	f89a 002c 	ldrb.w	r0, [sl, #44]	; 0x2c
    cfa0:	b118      	cbz	r0, cfaa <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x866>
    cfa2:	f002 fbbd 	bl	f720 <sym_AF5XKA2WT4DMFZTLKHOBWE7E2EZAMLDDFPQGGTQ>
    cfa6:	f88a b02c 	strb.w	fp, [sl, #44]	; 0x2c
    cfaa:	b307      	cbz	r7, cfee <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x8aa>
    cfac:	f1a4 0032 	sub.w	r0, r4, #50	; 0x32
    cfb0:	f020 417f 	bic.w	r1, r0, #4278190080	; 0xff000000
    cfb4:	f44f 2000 	mov.w	r0, #524288	; 0x80000
    cfb8:	f8c8 0000 	str.w	r0, [r8]
    cfbc:	2300      	movs	r3, #0
    cfbe:	2203      	movs	r2, #3
    cfc0:	2005      	movs	r0, #5
    cfc2:	f001 fffd 	bl	efc0 <sym_X2K67YH6UCW6TFK6NTLPZZFGWYHTTPZYK5PXHNQ>
    cfc6:	b368      	cbz	r0, d024 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x8e0>
    cfc8:	f04f 4480 	mov.w	r4, #1073741824	; 0x40000000
    cfcc:	2005      	movs	r0, #5
    cfce:	f002 f99f 	bl	f310 <sym_CQWZ455IMTLTPY5LEEZHXHRRNX223B3HTDD45HA>
    cfd2:	4912      	ldr	r1, [pc, #72]	; (d01c <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x8d8>)
    cfd4:	f8c1 0510 	str.w	r0, [r1, #1296]	; 0x510
    cfd8:	f8c1 4514 	str.w	r4, [r1, #1300]	; 0x514
    cfdc:	4910      	ldr	r1, [pc, #64]	; (d020 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x8dc>)
    cfde:	12e0      	asrs	r0, r4, #11
    cfe0:	6008      	str	r0, [r1, #0]
    cfe2:	4c06      	ldr	r4, [pc, #24]	; (cffc <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x8b8>)
    cfe4:	f894 002d 	ldrb.w	r0, [r4, #45]	; 0x2d
    cfe8:	b3f0      	cbz	r0, d068 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x924>
    cfea:	e05b      	b.n	d0a4 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x960>
    cfec:	e01b      	b.n	d026 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x8e2>
    cfee:	e01f      	b.n	d030 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x8ec>
    cff0:	40000508 	.word	0x40000508
    cff4:	20000014 	.word	0x20000014
    cff8:	20000b74 	.word	0x20000b74
    cffc:	20000ef4 	.word	0x20000ef4
    d000:	20000016 	.word	0x20000016
    d004:	1e847fff 	.word	0x1e847fff
    d008:	07a12000 	.word	0x07a12000
    d00c:	f85ee000 	.word	0xf85ee000
    d010:	1e848000 	.word	0x1e848000
    d014:	003fffff 	.word	0x003fffff
    d018:	4001f508 	.word	0x4001f508
    d01c:	4001f098 	.word	0x4001f098
    d020:	4001f504 	.word	0x4001f504
    d024:	e035      	b.n	d092 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x94e>
    d026:	f8df a0b8 	ldr.w	sl, [pc, #184]	; d0e0 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x99c>
    d02a:	f89a 002c 	ldrb.w	r0, [sl, #44]	; 0x2c
    d02e:	b358      	cbz	r0, d088 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x944>
    d030:	4c2b      	ldr	r4, [pc, #172]	; (d0e0 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x99c>)
    d032:	f894 002d 	ldrb.w	r0, [r4, #45]	; 0x2d
    d036:	b150      	cbz	r0, d04e <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x90a>
    d038:	f44f 2000 	mov.w	r0, #524288	; 0x80000
    d03c:	f8c8 0000 	str.w	r0, [r8]
    d040:	2005      	movs	r0, #5
    d042:	f002 f885 	bl	f150 <sym_TSYEIN5CZPQE3YK6VECZD5C2M4LMXKKH6O7LNAY>
    d046:	f002 fbd3 	bl	f7f0 <sym_UZOVMIXHY2SDZSVAWFRK4RKQPHXNS37P2CLQ57A>
    d04a:	f884 b02d 	strb.w	fp, [r4, #45]	; 0x2d
    d04e:	ac0c      	add	r4, sp, #48	; 0x30
    d050:	4824      	ldr	r0, [pc, #144]	; (d0e4 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x9a0>)
    d052:	e894 100e 	ldmia.w	r4, {r1, r2, r3, ip}
    d056:	f8c0 1380 	str.w	r1, [r0, #896]	; 0x380
    d05a:	f8c0 2384 	str.w	r2, [r0, #900]	; 0x384
    d05e:	f8c0 3388 	str.w	r3, [r0, #904]	; 0x388
    d062:	f8c0 c38c 	str.w	ip, [r0, #908]	; 0x38c
    d066:	e000      	b.n	d06a <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x926>
    d068:	e018      	b.n	d09c <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x958>
    d06a:	ac10      	add	r4, sp, #64	; 0x40
    d06c:	e894 100e 	ldmia.w	r4, {r1, r2, r3, ip}
    d070:	f8c0 1390 	str.w	r1, [r0, #912]	; 0x390
    d074:	f8c0 2394 	str.w	r2, [r0, #916]	; 0x394
    d078:	f8c0 3398 	str.w	r3, [r0, #920]	; 0x398
    d07c:	f8c0 c39c 	str.w	ip, [r0, #924]	; 0x39c
    d080:	b01b      	add	sp, #108	; 0x6c
    d082:	2001      	movs	r0, #1
    d084:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
    d088:	f002 fb66 	bl	f758 <sym_PEUB6CZG5CWXXD4M2S6OVBXZGDFOG4XII7USUDQ>
    d08c:	f88a 502c 	strb.w	r5, [sl, #44]	; 0x2c
    d090:	e78b      	b.n	cfaa <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x866>
    d092:	f240 313e 	movw	r1, #830	; 0x33e
    d096:	2070      	movs	r0, #112	; 0x70
    d098:	f002 fcfc 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    d09c:	f002 fb9a 	bl	f7d4 <sym_MXEZOAVPP5LXUOZ6LJGDWJ57JEG5BZ5YB7LCG7Y>
    d0a0:	f884 502d 	strb.w	r5, [r4, #45]	; 0x2d
    d0a4:	eba6 0009 	sub.w	r0, r6, r9
    d0a8:	f1a0 0119 	sub.w	r1, r0, #25
    d0ac:	2900      	cmp	r1, #0
    d0ae:	dc04      	bgt.n	d0ba <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x976>
    d0b0:	f640 2169 	movw	r1, #2665	; 0xa69
    d0b4:	2070      	movs	r0, #112	; 0x70
    d0b6:	f002 fced 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    d0ba:	2203      	movs	r2, #3
    d0bc:	2301      	movs	r3, #1
    d0be:	4610      	mov	r0, r2
    d0c0:	f001 ff7e 	bl	efc0 <sym_X2K67YH6UCW6TFK6NTLPZZFGWYHTTPZYK5PXHNQ>
    d0c4:	b138      	cbz	r0, d0d6 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x992>
    d0c6:	4808      	ldr	r0, [pc, #32]	; (d0e8 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x9a4>)
    d0c8:	6880      	ldr	r0, [r0, #8]
    d0ca:	f8c0 b000 	str.w	fp, [r0]
    d0ce:	4807      	ldr	r0, [pc, #28]	; (d0ec <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x9a8>)
    d0d0:	f8c0 b000 	str.w	fp, [r0]
    d0d4:	e7bb      	b.n	d04e <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x90a>
    d0d6:	f640 2174 	movw	r1, #2676	; 0xa74
    d0da:	2070      	movs	r0, #112	; 0x70
    d0dc:	f002 fcda 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    d0e0:	20000ef4 	.word	0x20000ef4
    d0e4:	20000b74 	.word	0x20000b74
    d0e8:	20000014 	.word	0x20000014
    d0ec:	40000508 	.word	0x40000508
    d0f0:	e92d 43f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, lr}
    d0f4:	4606      	mov	r6, r0
    d0f6:	b083      	sub	sp, #12
    d0f8:	7808      	ldrb	r0, [r1, #0]
    d0fa:	7390      	strb	r0, [r2, #14]
    d0fc:	7acf      	ldrb	r7, [r1, #11]
    d0fe:	7357      	strb	r7, [r2, #13]
    d100:	7a88      	ldrb	r0, [r1, #10]
    d102:	7310      	strb	r0, [r2, #12]
    d104:	8908      	ldrh	r0, [r1, #8]
    d106:	4614      	mov	r4, r2
    d108:	8150      	strh	r0, [r2, #10]
    d10a:	460d      	mov	r5, r1
    d10c:	780a      	ldrb	r2, [r1, #0]
    d10e:	495f      	ldr	r1, [pc, #380]	; (d28c <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xb48>)
    d110:	4699      	mov	r9, r3
    d112:	ea4f 0c81 	mov.w	ip, r1, lsl #2
    d116:	424b      	negs	r3, r1
    d118:	f1ac 0801 	sub.w	r8, ip, #1
    d11c:	b15a      	cbz	r2, d136 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x9f2>
    d11e:	43c0      	mvns	r0, r0
    d120:	f8d5 8004 	ldr.w	r8, [r5, #4]
    d124:	f104 0208 	add.w	r2, r4, #8
    d128:	4288      	cmp	r0, r1
    d12a:	dd3d      	ble.n	d1a8 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xa64>
    d12c:	f240 610a 	movw	r1, #1546	; 0x60a
    d130:	2070      	movs	r0, #112	; 0x70
    d132:	f002 fcaf 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    d136:	68ee      	ldr	r6, [r5, #12]
    d138:	686d      	ldr	r5, [r5, #4]
    d13a:	ea6f 0900 	mvn.w	r9, r0
    d13e:	f104 0208 	add.w	r2, r4, #8
    d142:	eb06 0009 	add.w	r0, r6, r9
    d146:	4546      	cmp	r6, r8
    d148:	d904      	bls.n	d154 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xa10>
    d14a:	f240 6109 	movw	r1, #1545	; 0x609
    d14e:	2070      	movs	r0, #112	; 0x70
    d150:	f002 fca0 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    d154:	4589      	cmp	r9, r1
    d156:	dce9      	bgt.n	d12c <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x9e8>
    d158:	4599      	cmp	r9, r3
    d15a:	db28      	blt.n	d1ae <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xa6a>
    d15c:	4584      	cmp	ip, r0
    d15e:	bfdc      	itt	le
    d160:	f500 00f7 	addle.w	r0, r0, #8093696	; 0x7b8000
    d164:	f1a0 50f8 	suble.w	r0, r0, #520093696	; 0x1f000000
    d168:	dd05      	ble.n	d176 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xa32>
    d16a:	2800      	cmp	r0, #0
    d16c:	bfbc      	itt	lt
    d16e:	f5a0 00f7 	sublt.w	r0, r0, #8093696	; 0x7b8000
    d172:	f100 50f8 	addlt.w	r0, r0, #520093696	; 0x1f000000
    d176:	4621      	mov	r1, r4
    d178:	f001 fc46 	bl	ea08 <sym_AOU55ZK756JLPLCLZ5TZSSVKOAWWFUNQZATBXUI>
    d17c:	6820      	ldr	r0, [r4, #0]
    d17e:	f020 417f 	bic.w	r1, r0, #4278190080	; 0xff000000
    d182:	1970      	adds	r0, r6, r5
    d184:	1c40      	adds	r0, r0, #1
    d186:	6021      	str	r1, [r4, #0]
    d188:	2f00      	cmp	r7, #0
    d18a:	bf08      	it	eq
    d18c:	307a      	addeq	r0, #122	; 0x7a
    d18e:	d003      	beq.n	d198 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xa54>
    d190:	2f01      	cmp	r7, #1
    d192:	bf08      	it	eq
    d194:	3044      	addeq	r0, #68	; 0x44
    d196:	d12d      	bne.n	d1f4 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xab0>
    d198:	f001 fc1a 	bl	e9d0 <sym_PITJNQC6YSCEFAH23N5QRORZDKCSKOAUGBUS6GA>
    d19c:	f020 407f 	bic.w	r0, r0, #4278190080	; 0xff000000
    d1a0:	6060      	str	r0, [r4, #4]
    d1a2:	b003      	add	sp, #12
    d1a4:	e8bd 83f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, pc}
    d1a8:	4601      	mov	r1, r0
    d1aa:	4298      	cmp	r0, r3
    d1ac:	da04      	bge.n	d1b8 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xa74>
    d1ae:	f240 610b 	movw	r1, #1547	; 0x60b
    d1b2:	2070      	movs	r0, #112	; 0x70
    d1b4:	f002 fc6e 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    d1b8:	4584      	cmp	ip, r0
    d1ba:	bfdc      	itt	le
    d1bc:	f1a1 50f4 	suble.w	r0, r1, #511705088	; 0x1e800000
    d1c0:	f5a0 2090 	suble.w	r0, r0, #294912	; 0x48000
    d1c4:	dd05      	ble.n	d1d2 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xa8e>
    d1c6:	2800      	cmp	r0, #0
    d1c8:	bfbc      	itt	lt
    d1ca:	f101 50f4 	addlt.w	r0, r1, #511705088	; 0x1e800000
    d1ce:	f500 2090 	addlt.w	r0, r0, #294912	; 0x48000
    d1d2:	4621      	mov	r1, r4
    d1d4:	f001 fc18 	bl	ea08 <sym_AOU55ZK756JLPLCLZ5TZSSVKOAWWFUNQZATBXUI>
    d1d8:	6820      	ldr	r0, [r4, #0]
    d1da:	2f00      	cmp	r7, #0
    d1dc:	f020 417f 	bic.w	r1, r0, #4278190080	; 0xff000000
    d1e0:	f108 0001 	add.w	r0, r8, #1
    d1e4:	6021      	str	r1, [r4, #0]
    d1e6:	bf08      	it	eq
    d1e8:	307a      	addeq	r0, #122	; 0x7a
    d1ea:	d008      	beq.n	d1fe <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xaba>
    d1ec:	2f01      	cmp	r7, #1
    d1ee:	bf08      	it	eq
    d1f0:	3044      	addeq	r0, #68	; 0x44
    d1f2:	d004      	beq.n	d1fe <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xaba>
    d1f4:	f240 61b1 	movw	r1, #1713	; 0x6b1
    d1f8:	2070      	movs	r0, #112	; 0x70
    d1fa:	f002 fc4b 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    d1fe:	f001 fbe7 	bl	e9d0 <sym_PITJNQC6YSCEFAH23N5QRORZDKCSKOAUGBUS6GA>
    d202:	f020 417f 	bic.w	r1, r0, #4278190080	; 0xff000000
    d206:	6061      	str	r1, [r4, #4]
    d208:	8960      	ldrh	r0, [r4, #10]
    d20a:	aa01      	add	r2, sp, #4
    d20c:	4669      	mov	r1, sp
    d20e:	f001 fbfb 	bl	ea08 <sym_AOU55ZK756JLPLCLZ5TZSSVKOAWWFUNQZATBXUI>
    d212:	481f      	ldr	r0, [pc, #124]	; (d290 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xb4c>)
    d214:	f890 102f 	ldrb.w	r1, [r0, #47]	; 0x2f
    d218:	2920      	cmp	r1, #32
    d21a:	d023      	beq.n	d264 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xb20>
    d21c:	6900      	ldr	r0, [r0, #16]
    d21e:	1d40      	adds	r0, r0, #5
    d220:	f020 407f 	bic.w	r0, r0, #4278190080	; 0xff000000
    d224:	e9d4 2100 	ldrd	r2, r1, [r4]
    d228:	1a89      	subs	r1, r1, r2
    d22a:	6020      	str	r0, [r4, #0]
    d22c:	4408      	add	r0, r1
    d22e:	f020 407f 	bic.w	r0, r0, #4278190080	; 0xff000000
    d232:	6060      	str	r0, [r4, #4]
    d234:	464b      	mov	r3, r9
    d236:	4632      	mov	r2, r6
    d238:	4621      	mov	r1, r4
    d23a:	68e8      	ldr	r0, [r5, #12]
    d23c:	f7ff facc 	bl	c7d8 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x94>
    d240:	2800      	cmp	r0, #0
    d242:	bf1c      	itt	ne
    d244:	b003      	addne	sp, #12
    d246:	e8bd 83f0 	ldmiane.w	sp!, {r4, r5, r6, r7, r8, r9, pc}
    d24a:	e9d4 1000 	ldrd	r1, r0, [r4]
    d24e:	1a40      	subs	r0, r0, r1
    d250:	4430      	add	r0, r6
    d252:	f026 417f 	bic.w	r1, r6, #4278190080	; 0xff000000
    d256:	f020 407f 	bic.w	r0, r0, #4278190080	; 0xff000000
    d25a:	e9c4 1000 	strd	r1, r0, [r4]
    d25e:	b003      	add	sp, #12
    d260:	e8bd 83f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, pc}
    d264:	8960      	ldrh	r0, [r4, #10]
    d266:	f106 0709 	add.w	r7, r6, #9
    d26a:	b120      	cbz	r0, d276 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xb32>
    d26c:	f002 fbae 	bl	f9cc <sym_LIY23QT3GHIV7NCGJ6ZW6LB2ZUSI56CIFCL6HUY>
    d270:	2800      	cmp	r0, #0
    d272:	bf08      	it	eq
    d274:	3732      	addeq	r7, #50	; 0x32
    d276:	4807      	ldr	r0, [pc, #28]	; (d294 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xb50>)
    d278:	7841      	ldrb	r1, [r0, #1]
    d27a:	9800      	ldr	r0, [sp, #0]
    d27c:	4281      	cmp	r1, r0
    d27e:	bf84      	itt	hi
    d280:	1a08      	subhi	r0, r1, r0
    d282:	4407      	addhi	r7, r0
    d284:	f027 407f 	bic.w	r0, r7, #4278190080	; 0xff000000
    d288:	e7cc      	b.n	d224 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xae0>
    d28a:	0000      	.short	0x0000
    d28c:	07a12000 	.word	0x07a12000
    d290:	20000ef4 	.word	0x20000ef4
    d294:	20000016 	.word	0x20000016
    d298:	b510      	push	{r4, lr}
    d29a:	4c15      	ldr	r4, [pc, #84]	; (d2f0 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xbac>)
    d29c:	f894 002f 	ldrb.w	r0, [r4, #47]	; 0x2f
    d2a0:	2820      	cmp	r0, #32
    d2a2:	bf18      	it	ne
    d2a4:	bd10      	popne	{r4, pc}
    d2a6:	f894 202e 	ldrb.w	r2, [r4, #46]	; 0x2e
    d2aa:	eb04 0082 	add.w	r0, r4, r2, lsl #2
    d2ae:	f890 1020 	ldrb.w	r1, [r0, #32]
    d2b2:	2920      	cmp	r1, #32
    d2b4:	d017      	beq.n	d2e6 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xba2>
    d2b6:	f8df c03c 	ldr.w	ip, [pc, #60]	; d2f4 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xbb0>
    d2ba:	eb0c 1382 	add.w	r3, ip, r2, lsl #6
    d2be:	eb03 0341 	add.w	r3, r3, r1, lsl #1
    d2c2:	785b      	ldrb	r3, [r3, #1]
    d2c4:	f880 3020 	strb.w	r3, [r0, #32]
    d2c8:	2301      	movs	r3, #1
    d2ca:	f880 3023 	strb.w	r3, [r0, #35]	; 0x23
    d2ce:	f884 302b 	strb.w	r3, [r4, #43]	; 0x2b
    d2d2:	f884 102f 	strb.w	r1, [r4, #47]	; 0x2f
    d2d6:	2002      	movs	r0, #2
    d2d8:	f000 f8b0 	bl	d43c <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xcf8>
    d2dc:	2000      	movs	r0, #0
    d2de:	f884 002a 	strb.w	r0, [r4, #42]	; 0x2a
    d2e2:	77a0      	strb	r0, [r4, #30]
    d2e4:	bd10      	pop	{r4, pc}
    d2e6:	f240 318b 	movw	r1, #907	; 0x38b
    d2ea:	2070      	movs	r0, #112	; 0x70
    d2ec:	f002 fbd2 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    d2f0:	20000ef4 	.word	0x20000ef4
    d2f4:	20000e74 	.word	0x20000e74
    d2f8:	e92d 5ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, ip, lr}
    d2fc:	f8df 80b8 	ldr.w	r8, [pc, #184]	; d3b8 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xc74>
    d300:	f898 502e 	ldrb.w	r5, [r8, #46]	; 0x2e
    d304:	eb08 0085 	add.w	r0, r8, r5, lsl #2
    d308:	f890 4021 	ldrb.w	r4, [r0, #33]	; 0x21
    d30c:	2c20      	cmp	r4, #32
    d30e:	bf08      	it	eq
    d310:	e8bd 9ff0 	ldmiaeq.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, ip, pc}
    d314:	f8df b0a4 	ldr.w	fp, [pc, #164]	; d3bc <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xc78>
    d318:	f8df a0a4 	ldr.w	sl, [pc, #164]	; d3c0 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xc7c>
    d31c:	f5aa 7940 	sub.w	r9, sl, #768	; 0x300
    d320:	eb0a 1785 	add.w	r7, sl, r5, lsl #6
    d324:	2607      	movs	r6, #7
    d326:	f817 0014 	ldrb.w	r0, [r7, r4, lsl #1]
    d32a:	2801      	cmp	r0, #1
    d32c:	d00e      	beq.n	d34c <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xc08>
    d32e:	2804      	cmp	r0, #4
    d330:	bf08      	it	eq
    d332:	2602      	moveq	r6, #2
    d334:	d00a      	beq.n	d34c <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xc08>
    d336:	2805      	cmp	r0, #5
    d338:	bf0c      	ite	eq
    d33a:	2603      	moveq	r6, #3
    d33c:	2806      	cmpne	r0, #6
    d33e:	d005      	beq.n	d34c <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xc08>
    d340:	f640 01d9 	movw	r1, #2265	; 0x8d9
    d344:	f04f 0070 	mov.w	r0, #112	; 0x70
    d348:	f002 fba4 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    d34c:	f1bb 0f00 	cmp.w	fp, #0
    d350:	bf18      	it	ne
    d352:	f3af 8000 	nopne.w
    d356:	f3ef 8010 	mrs	r0, PRIMASK
    d35a:	b672      	cpsid	i
    d35c:	eb07 0144 	add.w	r1, r7, r4, lsl #1
    d360:	784a      	ldrb	r2, [r1, #1]
    d362:	eb08 0185 	add.w	r1, r8, r5, lsl #2
    d366:	f881 2021 	strb.w	r2, [r1, #33]	; 0x21
    d36a:	f891 2022 	ldrb.w	r2, [r1, #34]	; 0x22
    d36e:	42a2      	cmp	r2, r4
    d370:	bf04      	itt	eq
    d372:	2220      	moveq	r2, #32
    d374:	f881 2022 	strbeq.w	r2, [r1, #34]	; 0x22
    d378:	b1b8      	cbz	r0, d3aa <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xc66>
    d37a:	462a      	mov	r2, r5
    d37c:	4621      	mov	r1, r4
    d37e:	2001      	movs	r0, #1
    d380:	f000 f85c 	bl	d43c <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xcf8>
    d384:	eb04 0144 	add.w	r1, r4, r4, lsl #1
    d388:	eb09 00c1 	add.w	r0, r9, r1, lsl #3
    d38c:	f859 2031 	ldr.w	r2, [r9, r1, lsl #3]
    d390:	6840      	ldr	r0, [r0, #4]
    d392:	4631      	mov	r1, r6
    d394:	4790      	blx	r2
    d396:	f898 502e 	ldrb.w	r5, [r8, #46]	; 0x2e
    d39a:	eb08 0085 	add.w	r0, r8, r5, lsl #2
    d39e:	f890 4021 	ldrb.w	r4, [r0, #33]	; 0x21
    d3a2:	2c20      	cmp	r4, #32
    d3a4:	d1bc      	bne.n	d320 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xbdc>
    d3a6:	e8bd 9ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, ip, pc}
    d3aa:	4806      	ldr	r0, [pc, #24]	; (d3c4 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xc80>)
    d3ac:	2800      	cmp	r0, #0
    d3ae:	bf18      	it	ne
    d3b0:	f3af 8000 	nopne.w
    d3b4:	b662      	cpsie	i
    d3b6:	e7e0      	b.n	d37a <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xc36>
    d3b8:	20000ef4 	.word	0x20000ef4
    d3bc:	00000000 	.word	0x00000000
    d3c0:	20000e74 	.word	0x20000e74
    d3c4:	00000000 	.word	0x00000000
    d3c8:	b510      	push	{r4, lr}
    d3ca:	4604      	mov	r4, r0
    d3cc:	6800      	ldr	r0, [r0, #0]
    d3ce:	f00a fd0a 	bl	17de6 <sym_XYQTP7YX2XFVREW5KFDH2NNPGRIPEHKIO2RURYI>
    d3d2:	4602      	mov	r2, r0
    d3d4:	8960      	ldrh	r0, [r4, #10]
    d3d6:	7a21      	ldrb	r1, [r4, #8]
    d3d8:	4b14      	ldr	r3, [pc, #80]	; (d42c <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xce8>)
    d3da:	4408      	add	r0, r1
    d3dc:	1c41      	adds	r1, r0, #1
    d3de:	1850      	adds	r0, r2, r1
    d3e0:	429a      	cmp	r2, r3
    d3e2:	d904      	bls.n	d3ee <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xcaa>
    d3e4:	f240 6109 	movw	r1, #1545	; 0x609
    d3e8:	2070      	movs	r0, #112	; 0x70
    d3ea:	f002 fb53 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    d3ee:	4a10      	ldr	r2, [pc, #64]	; (d430 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xcec>)
    d3f0:	4291      	cmp	r1, r2
    d3f2:	dd04      	ble.n	d3fe <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xcba>
    d3f4:	f240 610a 	movw	r1, #1546	; 0x60a
    d3f8:	2070      	movs	r0, #112	; 0x70
    d3fa:	f002 fb4b 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    d3fe:	4a0d      	ldr	r2, [pc, #52]	; (d434 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xcf0>)
    d400:	4291      	cmp	r1, r2
    d402:	da04      	bge.n	d40e <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xcca>
    d404:	f240 610b 	movw	r1, #1547	; 0x60b
    d408:	2070      	movs	r0, #112	; 0x70
    d40a:	f002 fb43 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    d40e:	490a      	ldr	r1, [pc, #40]	; (d438 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xcf4>)
    d410:	4281      	cmp	r1, r0
    d412:	bfde      	ittt	le
    d414:	f500 00f7 	addle.w	r0, r0, #8093696	; 0x7b8000
    d418:	f1a0 50f8 	suble.w	r0, r0, #520093696	; 0x1f000000
    d41c:	bd10      	pople	{r4, pc}
    d41e:	2800      	cmp	r0, #0
    d420:	bfbc      	itt	lt
    d422:	f5a0 00f7 	sublt.w	r0, r0, #8093696	; 0x7b8000
    d426:	f100 50f8 	addlt.w	r0, r0, #520093696	; 0x1f000000
    d42a:	bd10      	pop	{r4, pc}
    d42c:	1e847fff 	.word	0x1e847fff
    d430:	07a12000 	.word	0x07a12000
    d434:	f85ee000 	.word	0xf85ee000
    d438:	1e848000 	.word	0x1e848000
    d43c:	f8df c054 	ldr.w	ip, [pc, #84]	; d494 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xd50>
    d440:	b510      	push	{r4, lr}
    d442:	2300      	movs	r3, #0
    d444:	eb0c 1c82 	add.w	ip, ip, r2, lsl #6
    d448:	2807      	cmp	r0, #7
    d44a:	d21e      	bcs.n	d48a <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xd46>
    d44c:	e8df f000 	tbb	[pc, r0]
    d450:	05050505 	.word	0x05050505
    d454:	00040404 	.word	0x00040404
    d458:	2301      	movs	r3, #1
    d45a:	f80c 0011 	strb.w	r0, [ip, r1, lsl #1]
    d45e:	2b00      	cmp	r3, #0
    d460:	bf08      	it	eq
    d462:	bd10      	popeq	{r4, pc}
    d464:	480c      	ldr	r0, [pc, #48]	; (d498 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xd54>)
    d466:	eb00 0282 	add.w	r2, r0, r2, lsl #2
    d46a:	f892 0022 	ldrb.w	r0, [r2, #34]	; 0x22
    d46e:	2820      	cmp	r0, #32
    d470:	bf0e      	itee	eq
    d472:	f882 1021 	strbeq.w	r1, [r2, #33]	; 0x21
    d476:	eb0c 0040 	addne.w	r0, ip, r0, lsl #1
    d47a:	7041      	strbne	r1, [r0, #1]
    d47c:	2020      	movs	r0, #32
    d47e:	eb0c 0341 	add.w	r3, ip, r1, lsl #1
    d482:	7058      	strb	r0, [r3, #1]
    d484:	f882 1022 	strb.w	r1, [r2, #34]	; 0x22
    d488:	bd10      	pop	{r4, pc}
    d48a:	f44f 7115 	mov.w	r1, #596	; 0x254
    d48e:	2070      	movs	r0, #112	; 0x70
    d490:	f002 fb00 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    d494:	20000e74 	.word	0x20000e74
    d498:	20000ef4 	.word	0x20000ef4
    d49c:	e92d 4ff3 	stmdb	sp!, {r0, r1, r4, r5, r6, r7, r8, r9, sl, fp, lr}
    d4a0:	b083      	sub	sp, #12
    d4a2:	485c      	ldr	r0, [pc, #368]	; (d614 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xed0>)
    d4a4:	9904      	ldr	r1, [sp, #16]
    d4a6:	eb00 0081 	add.w	r0, r0, r1, lsl #2
    d4aa:	9001      	str	r0, [sp, #4]
    d4ac:	f890 4020 	ldrb.w	r4, [r0, #32]
    d4b0:	9803      	ldr	r0, [sp, #12]
    d4b2:	4625      	mov	r5, r4
    d4b4:	2801      	cmp	r0, #1
    d4b6:	bf18      	it	ne
    d4b8:	2802      	cmpne	r0, #2
    d4ba:	d005      	beq.n	d4c8 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xd84>
    d4bc:	f44f 612b 	mov.w	r1, #2736	; 0xab0
    d4c0:	f04f 0070 	mov.w	r0, #112	; 0x70
    d4c4:	f002 fae6 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    d4c8:	2700      	movs	r7, #0
    d4ca:	2d20      	cmp	r5, #32
    d4cc:	d04a      	beq.n	d564 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xe20>
    d4ce:	4851      	ldr	r0, [pc, #324]	; (d614 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xed0>)
    d4d0:	9100      	str	r1, [sp, #0]
    d4d2:	2600      	movs	r6, #0
    d4d4:	7f80      	ldrb	r0, [r0, #30]
    d4d6:	2800      	cmp	r0, #0
    d4d8:	bf08      	it	eq
    d4da:	2602      	moveq	r6, #2
    d4dc:	f001 fbea 	bl	ecb4 <sym_M4DIQOXJAE3BNHQBIUCZXAABSM24CWUEJOCU7DY>
    d4e0:	f8df a138 	ldr.w	sl, [pc, #312]	; d61c <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xed8>
    d4e4:	eb04 0144 	add.w	r1, r4, r4, lsl #1
    d4e8:	eb0a 01c1 	add.w	r1, sl, r1, lsl #3
    d4ec:	f8df 9128 	ldr.w	r9, [pc, #296]	; d618 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xed4>
    d4f0:	688a      	ldr	r2, [r1, #8]
    d4f2:	68c9      	ldr	r1, [r1, #12]
    d4f4:	1a12      	subs	r2, r2, r0
    d4f6:	1a09      	subs	r1, r1, r0
    d4f8:	f022 427f 	bic.w	r2, r2, #4278190080	; 0xff000000
    d4fc:	f021 417f 	bic.w	r1, r1, #4278190080	; 0xff000000
    d500:	4296      	cmp	r6, r2
    d502:	bf98      	it	ls
    d504:	f5b2 0f80 	cmpls.w	r2, #4194304	; 0x400000
    d508:	d201      	bcs.n	d50e <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xdca>
    d50a:	4589      	cmp	r9, r1
    d50c:	d228      	bcs.n	d560 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xe1c>
    d50e:	4a44      	ldr	r2, [pc, #272]	; (d620 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xedc>)
    d510:	9900      	ldr	r1, [sp, #0]
    d512:	eb02 1b81 	add.w	fp, r2, r1, lsl #6
    d516:	4622      	mov	r2, r4
    d518:	eb0b 0142 	add.w	r1, fp, r2, lsl #1
    d51c:	784c      	ldrb	r4, [r1, #1]
    d51e:	2c20      	cmp	r4, #32
    d520:	d016      	beq.n	d550 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xe0c>
    d522:	eb04 0144 	add.w	r1, r4, r4, lsl #1
    d526:	eb0a 0cc1 	add.w	ip, sl, r1, lsl #3
    d52a:	f8dc 8008 	ldr.w	r8, [ip, #8]
    d52e:	f8dc c00c 	ldr.w	ip, [ip, #12]
    d532:	eba8 0800 	sub.w	r8, r8, r0
    d536:	f028 487f 	bic.w	r8, r8, #4278190080	; 0xff000000
    d53a:	ebac 0100 	sub.w	r1, ip, r0
    d53e:	f021 417f 	bic.w	r1, r1, #4278190080	; 0xff000000
    d542:	4546      	cmp	r6, r8
    d544:	bf98      	it	ls
    d546:	f5b8 0f80 	cmpls.w	r8, #4194304	; 0x400000
    d54a:	d2e4      	bcs.n	d516 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xdd2>
    d54c:	4589      	cmp	r9, r1
    d54e:	d3e2      	bcc.n	d516 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xdd2>
    d550:	2a20      	cmp	r2, #32
    d552:	d005      	beq.n	d560 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xe1c>
    d554:	2120      	movs	r1, #32
    d556:	2004      	movs	r0, #4
    d558:	9b00      	ldr	r3, [sp, #0]
    d55a:	f7ff f901 	bl	c760 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x1c>
    d55e:	4604      	mov	r4, r0
    d560:	42ac      	cmp	r4, r5
    d562:	d115      	bne.n	d590 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xe4c>
    d564:	482f      	ldr	r0, [pc, #188]	; (d624 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xee0>)
    d566:	2800      	cmp	r0, #0
    d568:	bf18      	it	ne
    d56a:	f3af 8000 	nopne.w
    d56e:	f001 fba1 	bl	ecb4 <sym_M4DIQOXJAE3BNHQBIUCZXAABSM24CWUEJOCU7DY>
    d572:	4c28      	ldr	r4, [pc, #160]	; (d614 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xed0>)
    d574:	f894 1030 	ldrb.w	r1, [r4, #48]	; 0x30
    d578:	2920      	cmp	r1, #32
    d57a:	d00d      	beq.n	d598 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xe54>
    d57c:	68e1      	ldr	r1, [r4, #12]
    d57e:	1c82      	adds	r2, r0, #2
    d580:	1a51      	subs	r1, r2, r1
    d582:	0209      	lsls	r1, r1, #8
    d584:	17ca      	asrs	r2, r1, #31
    d586:	eb01 6112 	add.w	r1, r1, r2, lsr #24
    d58a:	1209      	asrs	r1, r1, #8
    d58c:	2900      	cmp	r1, #0
    d58e:	dd03      	ble.n	d598 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xe54>
    d590:	b005      	add	sp, #20
    d592:	2000      	movs	r0, #0
    d594:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
    d598:	2d20      	cmp	r5, #32
    d59a:	d00d      	beq.n	d5b8 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xe74>
    d59c:	462a      	mov	r2, r5
    d59e:	9903      	ldr	r1, [sp, #12]
    d5a0:	f7ff fb16 	bl	cbd0 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x48c>
    d5a4:	b358      	cbz	r0, d5fe <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xeba>
    d5a6:	9801      	ldr	r0, [sp, #4]
    d5a8:	f880 7023 	strb.w	r7, [r0, #35]	; 0x23
    d5ac:	f884 5030 	strb.w	r5, [r4, #48]	; 0x30
    d5b0:	b005      	add	sp, #20
    d5b2:	2001      	movs	r0, #1
    d5b4:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
    d5b8:	f894 002c 	ldrb.w	r0, [r4, #44]	; 0x2c
    d5bc:	b118      	cbz	r0, d5c6 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xe82>
    d5be:	f002 f8af 	bl	f720 <sym_AF5XKA2WT4DMFZTLKHOBWE7E2EZAMLDDFPQGGTQ>
    d5c2:	f884 702c 	strb.w	r7, [r4, #44]	; 0x2c
    d5c6:	f894 002d 	ldrb.w	r0, [r4, #45]	; 0x2d
    d5ca:	b150      	cbz	r0, d5e2 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xe9e>
    d5cc:	4916      	ldr	r1, [pc, #88]	; (d628 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xee4>)
    d5ce:	f44f 2000 	mov.w	r0, #524288	; 0x80000
    d5d2:	6008      	str	r0, [r1, #0]
    d5d4:	2005      	movs	r0, #5
    d5d6:	f001 fdbb 	bl	f150 <sym_TSYEIN5CZPQE3YK6VECZD5C2M4LMXKKH6O7LNAY>
    d5da:	f002 f909 	bl	f7f0 <sym_UZOVMIXHY2SDZSVAWFRK4RKQPHXNS37P2CLQ57A>
    d5de:	f884 702d 	strb.w	r7, [r4, #45]	; 0x2d
    d5e2:	2004      	movs	r0, #4
    d5e4:	f001 fdb4 	bl	f150 <sym_TSYEIN5CZPQE3YK6VECZD5C2M4LMXKKH6O7LNAY>
    d5e8:	f001 fe1a 	bl	f220 <sym_OLTN5HGCU3P74AJAQRGNYBUXASUKWF3RI2Q3H5Q>
    d5ec:	2020      	movs	r0, #32
    d5ee:	f884 0030 	strb.w	r0, [r4, #48]	; 0x30
    d5f2:	480e      	ldr	r0, [pc, #56]	; (d62c <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xee8>)
    d5f4:	6880      	ldr	r0, [r0, #8]
    d5f6:	6007      	str	r7, [r0, #0]
    d5f8:	480d      	ldr	r0, [pc, #52]	; (d630 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xeec>)
    d5fa:	6007      	str	r7, [r0, #0]
    d5fc:	e7d8      	b.n	d5b0 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xe6c>
    d5fe:	462a      	mov	r2, r5
    d600:	2120      	movs	r1, #32
    d602:	2004      	movs	r0, #4
    d604:	9b04      	ldr	r3, [sp, #16]
    d606:	f7ff f8ab 	bl	c760 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x1c>
    d60a:	b005      	add	sp, #20
    d60c:	2000      	movs	r0, #0
    d60e:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
    d612:	0000      	.short	0x0000
    d614:	20000ef4 	.word	0x20000ef4
    d618:	003fffff 	.word	0x003fffff
    d61c:	20000b74 	.word	0x20000b74
    d620:	20000e74 	.word	0x20000e74
    d624:	00000000 	.word	0x00000000
    d628:	4001f508 	.word	0x4001f508
    d62c:	20000014 	.word	0x20000014
    d630:	40000508 	.word	0x40000508

0000d634 <sym_RWBLK2534FJMTER76IYUPZQ3YF74JEALZ2OBIDI>:
    d634:	4906      	ldr	r1, [pc, #24]	; (d650 <sym_RWBLK2534FJMTER76IYUPZQ3YF74JEALZ2OBIDI+0x1c>)
    d636:	b510      	push	{r4, lr}
    d638:	f891 202f 	ldrb.w	r2, [r1, #47]	; 0x2f
    d63c:	2a20      	cmp	r2, #32
    d63e:	bf1c      	itt	ne
    d640:	7788      	strbne	r0, [r1, #30]
    d642:	bd10      	popne	{r4, pc}
    d644:	f240 31ea 	movw	r1, #1002	; 0x3ea
    d648:	2070      	movs	r0, #112	; 0x70
    d64a:	f002 fa23 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    d64e:	0000      	.short	0x0000
    d650:	20000ef4 	.word	0x20000ef4

0000d654 <sym_QWOE5H22ZADGJX5JSROW7BOI32Z6PPEEJCISNOQ>:
    d654:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
    d658:	4e5b      	ldr	r6, [pc, #364]	; (d7c8 <sym_QWOE5H22ZADGJX5JSROW7BOI32Z6PPEEJCISNOQ+0x174>)
    d65a:	4681      	mov	r9, r0
    d65c:	b085      	sub	sp, #20
    d65e:	f896 002f 	ldrb.w	r0, [r6, #47]	; 0x2f
    d662:	468a      	mov	sl, r1
    d664:	2820      	cmp	r0, #32
    d666:	d04d      	beq.n	d704 <sym_QWOE5H22ZADGJX5JSROW7BOI32Z6PPEEJCISNOQ+0xb0>
    d668:	f896 002f 	ldrb.w	r0, [r6, #47]	; 0x2f
    d66c:	f106 040c 	add.w	r4, r6, #12
    d670:	eb00 0040 	add.w	r0, r0, r0, lsl #1
    d674:	f5a6 7860 	sub.w	r8, r6, #896	; 0x380
    d678:	eb08 07c0 	add.w	r7, r8, r0, lsl #3
    d67c:	2020      	movs	r0, #32
    d67e:	f88d 0000 	strb.w	r0, [sp]
    d682:	f896 002e 	ldrb.w	r0, [r6, #46]	; 0x2e
    d686:	aa03      	add	r2, sp, #12
    d688:	eb06 0080 	add.w	r0, r6, r0, lsl #2
    d68c:	a901      	add	r1, sp, #4
    d68e:	f890 5020 	ldrb.w	r5, [r0, #32]
    d692:	6930      	ldr	r0, [r6, #16]
    d694:	9002      	str	r0, [sp, #8]
    d696:	6830      	ldr	r0, [r6, #0]
    d698:	4448      	add	r0, r9
    d69a:	f001 f9b5 	bl	ea08 <sym_AOU55ZK756JLPLCLZ5TZSSVKOAWWFUNQZATBXUI>
    d69e:	68f8      	ldr	r0, [r7, #12]
    d6a0:	9901      	ldr	r1, [sp, #4]
    d6a2:	4a4a      	ldr	r2, [pc, #296]	; (d7cc <sym_QWOE5H22ZADGJX5JSROW7BOI32Z6PPEEJCISNOQ+0x178>)
    d6a4:	4408      	add	r0, r1
    d6a6:	f1a9 0164 	sub.w	r1, r9, #100	; 0x64
    d6aa:	4291      	cmp	r1, r2
    d6ac:	d82f      	bhi.n	d70e <sym_QWOE5H22ZADGJX5JSROW7BOI32Z6PPEEJCISNOQ+0xba>
    d6ae:	68b9      	ldr	r1, [r7, #8]
    d6b0:	1a41      	subs	r1, r0, r1
    d6b2:	f021 417f 	bic.w	r1, r1, #4278190080	; 0xff000000
    d6b6:	f5b1 0f80 	cmp.w	r1, #4194304	; 0x400000
    d6ba:	d228      	bcs.n	d70e <sym_QWOE5H22ZADGJX5JSROW7BOI32Z6PPEEJCISNOQ+0xba>
    d6bc:	f020 407f 	bic.w	r0, r0, #4278190080	; 0xff000000
    d6c0:	6060      	str	r0, [r4, #4]
    d6c2:	4630      	mov	r0, r6
    d6c4:	f884 a00c 	strb.w	sl, [r4, #12]
    d6c8:	f890 002e 	ldrb.w	r0, [r0, #46]	; 0x2e
    d6cc:	46ea      	mov	sl, sp
    d6ce:	2d20      	cmp	r5, #32
    d6d0:	bf1c      	itt	ne
    d6d2:	493f      	ldrne	r1, [pc, #252]	; (d7d0 <sym_QWOE5H22ZADGJX5JSROW7BOI32Z6PPEEJCISNOQ+0x17c>)
    d6d4:	eb01 1b80 	addne.w	fp, r1, r0, lsl #6
    d6d8:	d03c      	beq.n	d754 <sym_QWOE5H22ZADGJX5JSROW7BOI32Z6PPEEJCISNOQ+0x100>
    d6da:	eb05 0045 	add.w	r0, r5, r5, lsl #1
    d6de:	eb08 07c0 	add.w	r7, r8, r0, lsl #3
    d6e2:	6860      	ldr	r0, [r4, #4]
    d6e4:	68ba      	ldr	r2, [r7, #8]
    d6e6:	4621      	mov	r1, r4
    d6e8:	1a10      	subs	r0, r2, r0
    d6ea:	0200      	lsls	r0, r0, #8
    d6ec:	17c2      	asrs	r2, r0, #31
    d6ee:	eb00 6012 	add.w	r0, r0, r2, lsr #24
    d6f2:	f107 0608 	add.w	r6, r7, #8
    d6f6:	1200      	asrs	r0, r0, #8
    d6f8:	d41b      	bmi.n	d732 <sym_QWOE5H22ZADGJX5JSROW7BOI32Z6PPEEJCISNOQ+0xde>
    d6fa:	8970      	ldrh	r0, [r6, #10]
    d6fc:	b350      	cbz	r0, d754 <sym_QWOE5H22ZADGJX5JSROW7BOI32Z6PPEEJCISNOQ+0x100>
    d6fe:	8948      	ldrh	r0, [r1, #10]
    d700:	b148      	cbz	r0, d716 <sym_QWOE5H22ZADGJX5JSROW7BOI32Z6PPEEJCISNOQ+0xc2>
    d702:	e027      	b.n	d754 <sym_QWOE5H22ZADGJX5JSROW7BOI32Z6PPEEJCISNOQ+0x100>
    d704:	f640 317b 	movw	r1, #2939	; 0xb7b
    d708:	2070      	movs	r0, #112	; 0x70
    d70a:	f002 f9c3 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    d70e:	b005      	add	sp, #20
    d710:	2001      	movs	r0, #1
    d712:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
    d716:	4620      	mov	r0, r4
    d718:	f7ff fe56 	bl	d3c8 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xc84>
    d71c:	f001 f958 	bl	e9d0 <sym_PITJNQC6YSCEFAH23N5QRORZDKCSKOAUGBUS6GA>
    d720:	6831      	ldr	r1, [r6, #0]
    d722:	1a08      	subs	r0, r1, r0
    d724:	0200      	lsls	r0, r0, #8
    d726:	17c1      	asrs	r1, r0, #31
    d728:	eb00 6011 	add.w	r0, r0, r1, lsr #24
    d72c:	1200      	asrs	r0, r0, #8
    d72e:	2833      	cmp	r0, #51	; 0x33
    d730:	da10      	bge.n	d754 <sym_QWOE5H22ZADGJX5JSROW7BOI32Z6PPEEJCISNOQ+0x100>
    d732:	f88a 5000 	strb.w	r5, [sl]
    d736:	7d39      	ldrb	r1, [r7, #20]
    d738:	7b20      	ldrb	r0, [r4, #12]
    d73a:	4281      	cmp	r1, r0
    d73c:	d805      	bhi.n	d74a <sym_QWOE5H22ZADGJX5JSROW7BOI32Z6PPEEJCISNOQ+0xf6>
    d73e:	9802      	ldr	r0, [sp, #8]
    d740:	6060      	str	r0, [r4, #4]
    d742:	b005      	add	sp, #20
    d744:	2002      	movs	r0, #2
    d746:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
    d74a:	eb0b 0045 	add.w	r0, fp, r5, lsl #1
    d74e:	7845      	ldrb	r5, [r0, #1]
    d750:	2d20      	cmp	r5, #32
    d752:	d1c2      	bne.n	d6da <sym_QWOE5H22ZADGJX5JSROW7BOI32Z6PPEEJCISNOQ+0x86>
    d754:	2005      	movs	r0, #5
    d756:	f001 fcfb 	bl	f150 <sym_TSYEIN5CZPQE3YK6VECZD5C2M4LMXKKH6O7LNAY>
    d75a:	4c1b      	ldr	r4, [pc, #108]	; (d7c8 <sym_QWOE5H22ZADGJX5JSROW7BOI32Z6PPEEJCISNOQ+0x174>)
    d75c:	f04f 30ff 	mov.w	r0, #4294967295
    d760:	60a0      	str	r0, [r4, #8]
    d762:	f894 302e 	ldrb.w	r3, [r4, #46]	; 0x2e
    d766:	f89d 2000 	ldrb.w	r2, [sp]
    d76a:	2120      	movs	r1, #32
    d76c:	2a20      	cmp	r2, #32
    d76e:	bf13      	iteet	ne
    d770:	2005      	movne	r0, #5
    d772:	eb04 0083 	addeq.w	r0, r4, r3, lsl #2
    d776:	f890 0020 	ldrbeq.w	r0, [r0, #32]
    d77a:	f7fe fff1 	blne	c760 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x1c>
    d77e:	f894 202e 	ldrb.w	r2, [r4, #46]	; 0x2e
    d782:	4913      	ldr	r1, [pc, #76]	; (d7d0 <sym_QWOE5H22ZADGJX5JSROW7BOI32Z6PPEEJCISNOQ+0x17c>)
    d784:	eb01 1182 	add.w	r1, r1, r2, lsl #6
    d788:	f894 202f 	ldrb.w	r2, [r4, #47]	; 0x2f
    d78c:	eb01 0142 	add.w	r1, r1, r2, lsl #1
    d790:	7048      	strb	r0, [r1, #1]
    d792:	6820      	ldr	r0, [r4, #0]
    d794:	4448      	add	r0, r9
    d796:	6020      	str	r0, [r4, #0]
    d798:	2001      	movs	r0, #1
    d79a:	f884 002b 	strb.w	r0, [r4, #43]	; 0x2b
    d79e:	7e60      	ldrb	r0, [r4, #25]
    d7a0:	2801      	cmp	r0, #1
    d7a2:	d105      	bne.n	d7b0 <sym_QWOE5H22ZADGJX5JSROW7BOI32Z6PPEEJCISNOQ+0x15c>
    d7a4:	6920      	ldr	r0, [r4, #16]
    d7a6:	1e40      	subs	r0, r0, #1
    d7a8:	f020 407f 	bic.w	r0, r0, #4278190080	; 0xff000000
    d7ac:	f001 fb22 	bl	edf4 <sym_UGOJA475OXR5HR5WFINUK27HP5BRGNWCZXQLKDI>
    d7b0:	f89d 0000 	ldrb.w	r0, [sp]
    d7b4:	2820      	cmp	r0, #32
    d7b6:	d003      	beq.n	d7c0 <sym_QWOE5H22ZADGJX5JSROW7BOI32Z6PPEEJCISNOQ+0x16c>
    d7b8:	4806      	ldr	r0, [pc, #24]	; (d7d4 <sym_QWOE5H22ZADGJX5JSROW7BOI32Z6PPEEJCISNOQ+0x180>)
    d7ba:	7840      	ldrb	r0, [r0, #1]
    d7bc:	f002 fa3a 	bl	fc34 <sym_GURZ3AH6X65RGSKYMYNWZVP6HM56LA5MRAQWT6Q>
    d7c0:	b005      	add	sp, #20
    d7c2:	2000      	movs	r0, #0
    d7c4:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
    d7c8:	20000ef4 	.word	0x20000ef4
    d7cc:	07a11f9c 	.word	0x07a11f9c
    d7d0:	20000e74 	.word	0x20000e74
    d7d4:	20000014 	.word	0x20000014

0000d7d8 <sym_HVFGTYCGAECGUJHOFSPMGUV2G4PTWWUYTJVAPNA>:
    d7d8:	4806      	ldr	r0, [pc, #24]	; (d7f4 <sym_HVFGTYCGAECGUJHOFSPMGUV2G4PTWWUYTJVAPNA+0x1c>)
    d7da:	b510      	push	{r4, lr}
    d7dc:	f890 102f 	ldrb.w	r1, [r0, #47]	; 0x2f
    d7e0:	2920      	cmp	r1, #32
    d7e2:	bf1c      	itt	ne
    d7e4:	7e00      	ldrbne	r0, [r0, #24]
    d7e6:	bd10      	popne	{r4, pc}
    d7e8:	f640 3174 	movw	r1, #2932	; 0xb74
    d7ec:	2070      	movs	r0, #112	; 0x70
    d7ee:	f002 f951 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    d7f2:	0000      	.short	0x0000
    d7f4:	20000ef4 	.word	0x20000ef4

0000d7f8 <sym_2O2USXABBLL6KC7E5NJFOHR6JLZMSV4AU5ZYH3Q>:
    d7f8:	4602      	mov	r2, r0
    d7fa:	4b14      	ldr	r3, [pc, #80]	; (d84c <sym_2O2USXABBLL6KC7E5NJFOHR6JLZMSV4AU5ZYH3Q+0x54>)
    d7fc:	b510      	push	{r4, lr}
    d7fe:	4408      	add	r0, r1
    d800:	429a      	cmp	r2, r3
    d802:	d904      	bls.n	d80e <sym_2O2USXABBLL6KC7E5NJFOHR6JLZMSV4AU5ZYH3Q+0x16>
    d804:	f240 6109 	movw	r1, #1545	; 0x609
    d808:	2070      	movs	r0, #112	; 0x70
    d80a:	f002 f943 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    d80e:	4a10      	ldr	r2, [pc, #64]	; (d850 <sym_2O2USXABBLL6KC7E5NJFOHR6JLZMSV4AU5ZYH3Q+0x58>)
    d810:	4291      	cmp	r1, r2
    d812:	dd04      	ble.n	d81e <sym_2O2USXABBLL6KC7E5NJFOHR6JLZMSV4AU5ZYH3Q+0x26>
    d814:	f240 610a 	movw	r1, #1546	; 0x60a
    d818:	2070      	movs	r0, #112	; 0x70
    d81a:	f002 f93b 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    d81e:	4a0d      	ldr	r2, [pc, #52]	; (d854 <sym_2O2USXABBLL6KC7E5NJFOHR6JLZMSV4AU5ZYH3Q+0x5c>)
    d820:	4291      	cmp	r1, r2
    d822:	da04      	bge.n	d82e <sym_2O2USXABBLL6KC7E5NJFOHR6JLZMSV4AU5ZYH3Q+0x36>
    d824:	f240 610b 	movw	r1, #1547	; 0x60b
    d828:	2070      	movs	r0, #112	; 0x70
    d82a:	f002 f933 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    d82e:	490a      	ldr	r1, [pc, #40]	; (d858 <sym_2O2USXABBLL6KC7E5NJFOHR6JLZMSV4AU5ZYH3Q+0x60>)
    d830:	4281      	cmp	r1, r0
    d832:	bfde      	ittt	le
    d834:	f500 00f7 	addle.w	r0, r0, #8093696	; 0x7b8000
    d838:	f1a0 50f8 	suble.w	r0, r0, #520093696	; 0x1f000000
    d83c:	bd10      	pople	{r4, pc}
    d83e:	2800      	cmp	r0, #0
    d840:	bfbc      	itt	lt
    d842:	f5a0 00f7 	sublt.w	r0, r0, #8093696	; 0x7b8000
    d846:	f100 50f8 	addlt.w	r0, r0, #520093696	; 0x1f000000
    d84a:	bd10      	pop	{r4, pc}
    d84c:	1e847fff 	.word	0x1e847fff
    d850:	07a12000 	.word	0x07a12000
    d854:	f85ee000 	.word	0xf85ee000
    d858:	1e848000 	.word	0x1e848000

0000d85c <sym_VDVM4QLBTRUPEGCBUXIK25LH2KVQWBZXHRBYEFY>:
    d85c:	4a10      	ldr	r2, [pc, #64]	; (d8a0 <sym_VDVM4QLBTRUPEGCBUXIK25LH2KVQWBZXHRBYEFY+0x44>)
    d85e:	1a0b      	subs	r3, r1, r0
    d860:	f102 0c01 	add.w	ip, r2, #1
    d864:	ebb3 0f9c 	cmp.w	r3, ip, lsr #2
    d868:	bf3c      	itt	cc
    d86a:	4618      	movcc	r0, r3
    d86c:	4770      	bxcc	lr
    d86e:	b510      	push	{r4, lr}
    d870:	1a44      	subs	r4, r0, r1
    d872:	ebb4 0f9c 	cmp.w	r4, ip, lsr #2
    d876:	bf3c      	itt	cc
    d878:	4618      	movcc	r0, r3
    d87a:	bd10      	popcc	{r4, pc}
    d87c:	429a      	cmp	r2, r3
    d87e:	d203      	bcs.n	d888 <sym_VDVM4QLBTRUPEGCBUXIK25LH2KVQWBZXHRBYEFY+0x2c>
    d880:	1a10      	subs	r0, r2, r0
    d882:	4408      	add	r0, r1
    d884:	1c40      	adds	r0, r0, #1
    d886:	bd10      	pop	{r4, pc}
    d888:	42a2      	cmp	r2, r4
    d88a:	d204      	bcs.n	d896 <sym_VDVM4QLBTRUPEGCBUXIK25LH2KVQWBZXHRBYEFY+0x3a>
    d88c:	1a51      	subs	r1, r2, r1
    d88e:	4408      	add	r0, r1
    d890:	1c40      	adds	r0, r0, #1
    d892:	4240      	negs	r0, r0
    d894:	bd10      	pop	{r4, pc}
    d896:	f640 310c 	movw	r1, #2828	; 0xb0c
    d89a:	2070      	movs	r0, #112	; 0x70
    d89c:	f002 f8fa 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    d8a0:	1e847fff 	.word	0x1e847fff

0000d8a4 <sym_W447CEMR6K6QRW3N63PRPIR7NK6ENOSBFXLCPRQ>:
    d8a4:	4907      	ldr	r1, [pc, #28]	; (d8c4 <sym_W447CEMR6K6QRW3N63PRPIR7NK6ENOSBFXLCPRQ+0x20>)
    d8a6:	f891 2030 	ldrb.w	r2, [r1, #48]	; 0x30
    d8aa:	4282      	cmp	r2, r0
    d8ac:	bf04      	itt	eq
    d8ae:	6848      	ldreq	r0, [r1, #4]
    d8b0:	4770      	bxeq	lr
    d8b2:	eb00 0040 	add.w	r0, r0, r0, lsl #1
    d8b6:	4904      	ldr	r1, [pc, #16]	; (d8c8 <sym_W447CEMR6K6QRW3N63PRPIR7NK6ENOSBFXLCPRQ+0x24>)
    d8b8:	eb01 00c0 	add.w	r0, r1, r0, lsl #3
    d8bc:	3008      	adds	r0, #8
    d8be:	f7ff bd83 	b.w	d3c8 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xc84>
    d8c2:	0000      	.short	0x0000
    d8c4:	20000ef4 	.word	0x20000ef4
    d8c8:	20000b74 	.word	0x20000b74

0000d8cc <sym_UY2NI5OOASY6266A2A7GY3XEUA5M2CDE2WTVEIY>:
    d8cc:	490e      	ldr	r1, [pc, #56]	; (d908 <sym_UY2NI5OOASY6266A2A7GY3XEUA5M2CDE2WTVEIY+0x3c>)
    d8ce:	b510      	push	{r4, lr}
    d8d0:	f891 002f 	ldrb.w	r0, [r1, #47]	; 0x2f
    d8d4:	2820      	cmp	r0, #32
    d8d6:	d012      	beq.n	d8fe <sym_UY2NI5OOASY6266A2A7GY3XEUA5M2CDE2WTVEIY+0x32>
    d8d8:	f891 002f 	ldrb.w	r0, [r1, #47]	; 0x2f
    d8dc:	f5a1 7260 	sub.w	r2, r1, #896	; 0x380
    d8e0:	eb00 0040 	add.w	r0, r0, r0, lsl #1
    d8e4:	eb02 00c0 	add.w	r0, r2, r0, lsl #3
    d8e8:	f891 102f 	ldrb.w	r1, [r1, #47]	; 0x2f
    d8ec:	6840      	ldr	r0, [r0, #4]
    d8ee:	eb01 0141 	add.w	r1, r1, r1, lsl #1
    d8f2:	f852 2031 	ldr.w	r2, [r2, r1, lsl #3]
    d8f6:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
    d8fa:	2104      	movs	r1, #4
    d8fc:	4710      	bx	r2
    d8fe:	f640 01bc 	movw	r1, #2236	; 0x8bc
    d902:	2070      	movs	r0, #112	; 0x70
    d904:	f002 f8c6 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    d908:	20000ef4 	.word	0x20000ef4

0000d90c <sym_J5F7QGRFPKMLWRNSXZXS5YI7BM4DUTISCOASCOA>:
    d90c:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
    d90e:	4d6d      	ldr	r5, [pc, #436]	; (dac4 <sym_J5F7QGRFPKMLWRNSXZXS5YI7BM4DUTISCOASCOA+0x1b8>)
    d910:	496d      	ldr	r1, [pc, #436]	; (dac8 <sym_J5F7QGRFPKMLWRNSXZXS5YI7BM4DUTISCOASCOA+0x1bc>)
    d912:	2601      	movs	r6, #1
    d914:	f505 7460 	add.w	r4, r5, #896	; 0x380
    d918:	2808      	cmp	r0, #8
    d91a:	d273      	bcs.n	da04 <sym_J5F7QGRFPKMLWRNSXZXS5YI7BM4DUTISCOASCOA+0xf8>
    d91c:	e8df f000 	tbb	[pc, r0]
    d920:	af9d6704 	.word	0xaf9d6704
    d924:	b9b444cd 	.word	0xb9b444cd
    d928:	f894 002c 	ldrb.w	r0, [r4, #44]	; 0x2c
    d92c:	b918      	cbnz	r0, d936 <sym_J5F7QGRFPKMLWRNSXZXS5YI7BM4DUTISCOASCOA+0x2a>
    d92e:	f001 ff13 	bl	f758 <sym_PEUB6CZG5CWXXD4M2S6OVBXZGDFOG4XII7USUDQ>
    d932:	f884 602c 	strb.w	r6, [r4, #44]	; 0x2c
    d936:	8ae0      	ldrh	r0, [r4, #22]
    d938:	b110      	cbz	r0, d940 <sym_J5F7QGRFPKMLWRNSXZXS5YI7BM4DUTISCOASCOA+0x34>
    d93a:	f002 f847 	bl	f9cc <sym_LIY23QT3GHIV7NCGJ6ZW6LB2ZUSI56CIFCL6HUY>
    d93e:	b188      	cbz	r0, d964 <sym_J5F7QGRFPKMLWRNSXZXS5YI7BM4DUTISCOASCOA+0x58>
    d940:	f7ff fcaa 	bl	d298 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xb54>
    d944:	f884 6029 	strb.w	r6, [r4, #41]	; 0x29
    d948:	68a1      	ldr	r1, [r4, #8]
    d94a:	f1b1 3fff 	cmp.w	r1, #4294967295
    d94e:	d005      	beq.n	d95c <sym_J5F7QGRFPKMLWRNSXZXS5YI7BM4DUTISCOASCOA+0x50>
    d950:	2301      	movs	r3, #1
    d952:	2203      	movs	r2, #3
    d954:	2005      	movs	r0, #5
    d956:	f001 fb33 	bl	efc0 <sym_X2K67YH6UCW6TFK6NTLPZZFGWYHTTPZYK5PXHNQ>
    d95a:	b140      	cbz	r0, d96e <sym_J5F7QGRFPKMLWRNSXZXS5YI7BM4DUTISCOASCOA+0x62>
    d95c:	7e60      	ldrb	r0, [r4, #25]
    d95e:	2801      	cmp	r0, #1
    d960:	d110      	bne.n	d984 <sym_J5F7QGRFPKMLWRNSXZXS5YI7BM4DUTISCOASCOA+0x78>
    d962:	e009      	b.n	d978 <sym_J5F7QGRFPKMLWRNSXZXS5YI7BM4DUTISCOASCOA+0x6c>
    d964:	f44f 6107 	mov.w	r1, #2160	; 0x870
    d968:	2070      	movs	r0, #112	; 0x70
    d96a:	f002 f893 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    d96e:	f640 0175 	movw	r1, #2165	; 0x875
    d972:	2070      	movs	r0, #112	; 0x70
    d974:	f002 f88e 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    d978:	6920      	ldr	r0, [r4, #16]
    d97a:	1e40      	subs	r0, r0, #1
    d97c:	f020 407f 	bic.w	r0, r0, #4278190080	; 0xff000000
    d980:	f001 fa38 	bl	edf4 <sym_UGOJA475OXR5HR5WFINUK27HP5BRGNWCZXQLKDI>
    d984:	f894 002f 	ldrb.w	r0, [r4, #47]	; 0x2f
    d988:	f894 102f 	ldrb.w	r1, [r4, #47]	; 0x2f
    d98c:	eb00 0040 	add.w	r0, r0, r0, lsl #1
    d990:	eb05 00c0 	add.w	r0, r5, r0, lsl #3
    d994:	6840      	ldr	r0, [r0, #4]
    d996:	eb01 0141 	add.w	r1, r1, r1, lsl #1
    d99a:	f855 2031 	ldr.w	r2, [r5, r1, lsl #3]
    d99e:	b001      	add	sp, #4
    d9a0:	2101      	movs	r1, #1
    d9a2:	e8bd 40f0 	ldmia.w	sp!, {r4, r5, r6, r7, lr}
    d9a6:	4710      	bx	r2
    d9a8:	f7ff fc76 	bl	d298 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xb54>
    d9ac:	f04f 30ff 	mov.w	r0, #4294967295
    d9b0:	60a0      	str	r0, [r4, #8]
    d9b2:	f894 0029 	ldrb.w	r0, [r4, #41]	; 0x29
    d9b6:	f88d 0000 	strb.w	r0, [sp]
    d9ba:	f89d 0000 	ldrb.w	r0, [sp]
    d9be:	b188      	cbz	r0, d9e4 <sym_J5F7QGRFPKMLWRNSXZXS5YI7BM4DUTISCOASCOA+0xd8>
    d9c0:	f894 002f 	ldrb.w	r0, [r4, #47]	; 0x2f
    d9c4:	f894 102f 	ldrb.w	r1, [r4, #47]	; 0x2f
    d9c8:	eb00 0040 	add.w	r0, r0, r0, lsl #1
    d9cc:	eb05 00c0 	add.w	r0, r5, r0, lsl #3
    d9d0:	6840      	ldr	r0, [r0, #4]
    d9d2:	eb01 0141 	add.w	r1, r1, r1, lsl #1
    d9d6:	f855 2031 	ldr.w	r2, [r5, r1, lsl #3]
    d9da:	b001      	add	sp, #4
    d9dc:	2106      	movs	r1, #6
    d9de:	e8bd 40f0 	ldmia.w	sp!, {r4, r5, r6, r7, lr}
    d9e2:	4710      	bx	r2
    d9e4:	f640 0186 	movw	r1, #2182	; 0x886
    d9e8:	2070      	movs	r0, #112	; 0x70
    d9ea:	f002 f853 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    d9ee:	f7ff fc53 	bl	d298 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xb54>
    d9f2:	f884 6028 	strb.w	r6, [r4, #40]	; 0x28
    d9f6:	f001 ffe9 	bl	f9cc <sym_LIY23QT3GHIV7NCGJ6ZW6LB2ZUSI56CIFCL6HUY>
    d9fa:	b120      	cbz	r0, da06 <sym_J5F7QGRFPKMLWRNSXZXS5YI7BM4DUTISCOASCOA+0xfa>
    d9fc:	f894 002c 	ldrb.w	r0, [r4, #44]	; 0x2c
    da00:	b130      	cbz	r0, da10 <sym_J5F7QGRFPKMLWRNSXZXS5YI7BM4DUTISCOASCOA+0x104>
    da02:	e009      	b.n	da18 <sym_J5F7QGRFPKMLWRNSXZXS5YI7BM4DUTISCOASCOA+0x10c>
    da04:	e059      	b.n	daba <sym_J5F7QGRFPKMLWRNSXZXS5YI7BM4DUTISCOASCOA+0x1ae>
    da06:	f640 0196 	movw	r1, #2198	; 0x896
    da0a:	2070      	movs	r0, #112	; 0x70
    da0c:	f002 f842 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    da10:	f001 fea2 	bl	f758 <sym_PEUB6CZG5CWXXD4M2S6OVBXZGDFOG4XII7USUDQ>
    da14:	f884 602c 	strb.w	r6, [r4, #44]	; 0x2c
    da18:	f894 002d 	ldrb.w	r0, [r4, #45]	; 0x2d
    da1c:	b158      	cbz	r0, da36 <sym_J5F7QGRFPKMLWRNSXZXS5YI7BM4DUTISCOASCOA+0x12a>
    da1e:	492b      	ldr	r1, [pc, #172]	; (dacc <sym_J5F7QGRFPKMLWRNSXZXS5YI7BM4DUTISCOASCOA+0x1c0>)
    da20:	f44f 2000 	mov.w	r0, #524288	; 0x80000
    da24:	6008      	str	r0, [r1, #0]
    da26:	2005      	movs	r0, #5
    da28:	f001 fb92 	bl	f150 <sym_TSYEIN5CZPQE3YK6VECZD5C2M4LMXKKH6O7LNAY>
    da2c:	f001 fee0 	bl	f7f0 <sym_UZOVMIXHY2SDZSVAWFRK4RKQPHXNS37P2CLQ57A>
    da30:	2000      	movs	r0, #0
    da32:	f884 002d 	strb.w	r0, [r4, #45]	; 0x2d
    da36:	f894 002f 	ldrb.w	r0, [r4, #47]	; 0x2f
    da3a:	f894 102f 	ldrb.w	r1, [r4, #47]	; 0x2f
    da3e:	eb00 0040 	add.w	r0, r0, r0, lsl #1
    da42:	eb05 00c0 	add.w	r0, r5, r0, lsl #3
    da46:	6840      	ldr	r0, [r0, #4]
    da48:	eb01 0141 	add.w	r1, r1, r1, lsl #1
    da4c:	f855 2031 	ldr.w	r2, [r5, r1, lsl #3]
    da50:	b001      	add	sp, #4
    da52:	2100      	movs	r1, #0
    da54:	e8bd 40f0 	ldmia.w	sp!, {r4, r5, r6, r7, lr}
    da58:	4710      	bx	r2
    da5a:	f001 fc2b 	bl	f2b4 <sym_CPXNCG66C5WXYS4GOKTR2JEIS45ZVRZUCBYX34I>
    da5e:	8ae0      	ldrh	r0, [r4, #22]
    da60:	b110      	cbz	r0, da68 <sym_J5F7QGRFPKMLWRNSXZXS5YI7BM4DUTISCOASCOA+0x15c>
    da62:	f001 ffb3 	bl	f9cc <sym_LIY23QT3GHIV7NCGJ6ZW6LB2ZUSI56CIFCL6HUY>
    da66:	b128      	cbz	r0, da74 <sym_J5F7QGRFPKMLWRNSXZXS5YI7BM4DUTISCOASCOA+0x168>
    da68:	4819      	ldr	r0, [pc, #100]	; (dad0 <sym_J5F7QGRFPKMLWRNSXZXS5YI7BM4DUTISCOASCOA+0x1c4>)
    da6a:	7800      	ldrb	r0, [r0, #0]
    da6c:	2803      	cmp	r0, #3
    da6e:	bf08      	it	eq
    da70:	7766      	strbeq	r6, [r4, #29]
    da72:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
    da74:	f640 01a1 	movw	r1, #2209	; 0x8a1
    da78:	2070      	movs	r0, #112	; 0x70
    da7a:	f002 f80b 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    da7e:	4815      	ldr	r0, [pc, #84]	; (dad4 <sym_J5F7QGRFPKMLWRNSXZXS5YI7BM4DUTISCOASCOA+0x1c8>)
    da80:	6006      	str	r6, [r0, #0]
    da82:	6888      	ldr	r0, [r1, #8]
    da84:	6006      	str	r6, [r0, #0]
    da86:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
    da88:	7808      	ldrb	r0, [r1, #0]
    da8a:	e8bd 40f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, lr}
    da8e:	f002 b8d1 	b.w	fc34 <sym_GURZ3AH6X65RGSKYMYNWZVP6HM56LA5MRAQWT6Q>
    da92:	f7ff fc01 	bl	d298 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xb54>
    da96:	f894 002f 	ldrb.w	r0, [r4, #47]	; 0x2f
    da9a:	f894 102f 	ldrb.w	r1, [r4, #47]	; 0x2f
    da9e:	eb00 0040 	add.w	r0, r0, r0, lsl #1
    daa2:	eb05 00c0 	add.w	r0, r5, r0, lsl #3
    daa6:	6840      	ldr	r0, [r0, #4]
    daa8:	eb01 0141 	add.w	r1, r1, r1, lsl #1
    daac:	f855 2031 	ldr.w	r2, [r5, r1, lsl #3]
    dab0:	b001      	add	sp, #4
    dab2:	2105      	movs	r1, #5
    dab4:	e8bd 40f0 	ldmia.w	sp!, {r4, r5, r6, r7, lr}
    dab8:	4710      	bx	r2
    daba:	f640 01b4 	movw	r1, #2228	; 0x8b4
    dabe:	2070      	movs	r0, #112	; 0x70
    dac0:	f001 ffe8 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    dac4:	20000b74 	.word	0x20000b74
    dac8:	20000014 	.word	0x20000014
    dacc:	4001f508 	.word	0x4001f508
    dad0:	20000016 	.word	0x20000016
    dad4:	40000508 	.word	0x40000508

0000dad8 <sym_MGCUANL7Q2CUPWKYBFLWSWSNXIEEYBPZTHT2VZI>:
    dad8:	4803      	ldr	r0, [pc, #12]	; (dae8 <sym_MGCUANL7Q2CUPWKYBFLWSWSNXIEEYBPZTHT2VZI+0x10>)
    dada:	b510      	push	{r4, lr}
    dadc:	7840      	ldrb	r0, [r0, #1]
    dade:	f00a f982 	bl	17de6 <sym_XYQTP7YX2XFVREW5KFDH2NNPGRIPEHKIO2RURYI>
    dae2:	b280      	uxth	r0, r0
    dae4:	bd10      	pop	{r4, pc}
    dae6:	0000      	.short	0x0000
    dae8:	20000016 	.word	0x20000016

0000daec <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY>:
    daec:	e92d 4ff3 	stmdb	sp!, {r0, r1, r4, r5, r6, r7, r8, r9, sl, fp, lr}
    daf0:	4682      	mov	sl, r0
    daf2:	48dc      	ldr	r0, [pc, #880]	; (de64 <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0x378>)
    daf4:	b08b      	sub	sp, #44	; 0x2c
    daf6:	6800      	ldr	r0, [r0, #0]
    daf8:	4ddb      	ldr	r5, [pc, #876]	; (de68 <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0x37c>)
    dafa:	05c0      	lsls	r0, r0, #23
    dafc:	0dc0      	lsrs	r0, r0, #23
    dafe:	d00e      	beq.n	db1e <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0x32>
    db00:	3810      	subs	r0, #16
    db02:	b240      	sxtb	r0, r0
    db04:	2800      	cmp	r0, #0
    db06:	bfb8      	it	lt
    db08:	f000 000f 	andlt.w	r0, r0, #15
    db0c:	f100 20e0 	add.w	r0, r0, #3758153728	; 0xe000e000
    db10:	bfac      	ite	ge
    db12:	f890 0400 	ldrbge.w	r0, [r0, #1024]	; 0x400
    db16:	f890 0d14 	ldrblt.w	r0, [r0, #3348]	; 0xd14
    db1a:	0940      	lsrs	r0, r0, #5
    db1c:	d00d      	beq.n	db3a <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0x4e>
    db1e:	980c      	ldr	r0, [sp, #48]	; 0x30
    db20:	f04f 0b00 	mov.w	fp, #0
    db24:	7800      	ldrb	r0, [r0, #0]
    db26:	2800      	cmp	r0, #0
    db28:	bf18      	it	ne
    db2a:	2801      	cmpne	r0, #1
    db2c:	d018      	beq.n	db60 <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0x74>
    db2e:	f240 714f 	movw	r1, #1871	; 0x74f
    db32:	f04f 0070 	mov.w	r0, #112	; 0x70
    db36:	f001 ffad 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    db3a:	f895 002f 	ldrb.w	r0, [r5, #47]	; 0x2f
    db3e:	f04f 0b01 	mov.w	fp, #1
    db42:	2820      	cmp	r0, #32
    db44:	d007      	beq.n	db56 <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0x6a>
    db46:	980c      	ldr	r0, [sp, #48]	; 0x30
    db48:	7800      	ldrb	r0, [r0, #0]
    db4a:	b148      	cbz	r0, db60 <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0x74>
    db4c:	f240 714b 	movw	r1, #1867	; 0x74b
    db50:	2070      	movs	r0, #112	; 0x70
    db52:	f001 ff9f 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    db56:	f44f 61e9 	mov.w	r1, #1864	; 0x748
    db5a:	2070      	movs	r0, #112	; 0x70
    db5c:	f001 ff9a 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    db60:	4cc2      	ldr	r4, [pc, #776]	; (de6c <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0x380>)
    db62:	b124      	cbz	r4, db6e <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0x82>
    db64:	2100      	movs	r1, #0
    db66:	f240 7052 	movw	r0, #1874	; 0x752
    db6a:	f3af 8000 	nop.w
    db6e:	49c0      	ldr	r1, [pc, #768]	; (de70 <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0x384>)
    db70:	eb0a 004a 	add.w	r0, sl, sl, lsl #1
    db74:	eb01 00c0 	add.w	r0, r1, r0, lsl #3
    db78:	f04f 0801 	mov.w	r8, #1
    db7c:	9000      	str	r0, [sp, #0]
    db7e:	b124      	cbz	r4, db8a <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0x9e>
    db80:	2100      	movs	r1, #0
    db82:	f240 705a 	movw	r0, #1882	; 0x75a
    db86:	f3af 8000 	nop.w
    db8a:	f1b8 0f00 	cmp.w	r8, #0
    db8e:	d009      	beq.n	dba4 <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0xb8>
    db90:	f895 602e 	ldrb.w	r6, [r5, #46]	; 0x2e
    db94:	f04f 0900 	mov.w	r9, #0
    db98:	f885 902b 	strb.w	r9, [r5, #43]	; 0x2b
    db9c:	f1bb 0f00 	cmp.w	fp, #0
    dba0:	d007      	beq.n	dbb2 <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0xc6>
    dba2:	e032      	b.n	dc0a <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0x11e>
    dba4:	48b3      	ldr	r0, [pc, #716]	; (de74 <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0x388>)
    dba6:	2800      	cmp	r0, #0
    dba8:	bf18      	it	ne
    dbaa:	f3af 8000 	nopne.w
    dbae:	b662      	cpsie	i
    dbb0:	e7ee      	b.n	db90 <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0xa4>
    dbb2:	4637      	mov	r7, r6
    dbb4:	2001      	movs	r0, #1
    dbb6:	ea20 0607 	bic.w	r6, r0, r7
    dbba:	48af      	ldr	r0, [pc, #700]	; (de78 <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0x38c>)
    dbbc:	2240      	movs	r2, #64	; 0x40
    dbbe:	eb00 1187 	add.w	r1, r0, r7, lsl #6
    dbc2:	eb00 1086 	add.w	r0, r0, r6, lsl #6
    dbc6:	f00a fa7c 	bl	180c2 <sym_DQONLUECJTIEYFOFJXXAPJO4POIAJKJNKBGVN5A>
    dbca:	b124      	cbz	r4, dbd6 <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0xea>
    dbcc:	2100      	movs	r1, #0
    dbce:	f240 50cd 	movw	r0, #1485	; 0x5cd
    dbd2:	f3af 8000 	nop.w
    dbd6:	eb05 0187 	add.w	r1, r5, r7, lsl #2
    dbda:	eb05 0086 	add.w	r0, r5, r6, lsl #2
    dbde:	6a09      	ldr	r1, [r1, #32]
    dbe0:	6201      	str	r1, [r0, #32]
    dbe2:	b124      	cbz	r4, dbee <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0x102>
    dbe4:	2100      	movs	r1, #0
    dbe6:	f240 50d1 	movw	r0, #1489	; 0x5d1
    dbea:	f3af 8000 	nop.w
    dbee:	b124      	cbz	r4, dbfa <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0x10e>
    dbf0:	2100      	movs	r1, #0
    dbf2:	f240 7064 	movw	r0, #1892	; 0x764
    dbf6:	f3af 8000 	nop.w
    dbfa:	f895 002b 	ldrb.w	r0, [r5, #43]	; 0x2b
    dbfe:	f88d 0004 	strb.w	r0, [sp, #4]
    dc02:	f89d 0004 	ldrb.w	r0, [sp, #4]
    dc06:	2800      	cmp	r0, #0
    dc08:	d1b9      	bne.n	db7e <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0x92>
    dc0a:	b124      	cbz	r4, dc16 <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0x12a>
    dc0c:	2100      	movs	r1, #0
    dc0e:	f240 706e 	movw	r0, #1902	; 0x76e
    dc12:	f3af 8000 	nop.w
    dc16:	f001 f84d 	bl	ecb4 <sym_M4DIQOXJAE3BNHQBIUCZXAABSM24CWUEJOCU7DY>
    dc1a:	4680      	mov	r8, r0
    dc1c:	4633      	mov	r3, r6
    dc1e:	aa06      	add	r2, sp, #24
    dc20:	990c      	ldr	r1, [sp, #48]	; 0x30
    dc22:	f7ff fa65 	bl	d0f0 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x9ac>
    dc26:	b124      	cbz	r4, dc32 <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0x146>
    dc28:	2100      	movs	r1, #0
    dc2a:	f240 7075 	movw	r0, #1909	; 0x775
    dc2e:	f3af 8000 	nop.w
    dc32:	4991      	ldr	r1, [pc, #580]	; (de78 <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0x38c>)
    dc34:	a806      	add	r0, sp, #24
    dc36:	eb01 1786 	add.w	r7, r1, r6, lsl #6
    dc3a:	f817 101a 	ldrb.w	r1, [r7, sl, lsl #1]
    dc3e:	2901      	cmp	r1, #1
    dc40:	bf18      	it	ne
    dc42:	2902      	cmpne	r1, #2
    dc44:	d13c      	bne.n	dcc0 <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0x1d4>
    dc46:	9906      	ldr	r1, [sp, #24]
    dc48:	9b07      	ldr	r3, [sp, #28]
    dc4a:	eba1 0108 	sub.w	r1, r1, r8
    dc4e:	4a8b      	ldr	r2, [pc, #556]	; (de7c <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0x390>)
    dc50:	f021 417f 	bic.w	r1, r1, #4278190080	; 0xff000000
    dc54:	eba3 0308 	sub.w	r3, r3, r8
    dc58:	f023 437f 	bic.w	r3, r3, #4278190080	; 0xff000000
    dc5c:	2902      	cmp	r1, #2
    dc5e:	d371      	bcc.n	dd44 <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0x258>
    dc60:	f5b1 0f80 	cmp.w	r1, #4194304	; 0x400000
    dc64:	d26e      	bcs.n	dd44 <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0x258>
    dc66:	429a      	cmp	r2, r3
    dc68:	d36c      	bcc.n	dd44 <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0x258>
    dc6a:	f04f 0901 	mov.w	r9, #1
    dc6e:	ab01      	add	r3, sp, #4
    dc70:	aa05      	add	r2, sp, #20
    dc72:	4631      	mov	r1, r6
    dc74:	f7fe ff2c 	bl	cad0 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x38c>
    dc78:	2800      	cmp	r0, #0
    dc7a:	d06b      	beq.n	dd54 <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0x268>
    dc7c:	f89d 1014 	ldrb.w	r1, [sp, #20]
    dc80:	f89d 2004 	ldrb.w	r2, [sp, #4]
    dc84:	4633      	mov	r3, r6
    dc86:	428a      	cmp	r2, r1
    dc88:	d068      	beq.n	dd5c <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0x270>
    dc8a:	2005      	movs	r0, #5
    dc8c:	f7fe fd68 	bl	c760 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x1c>
    dc90:	eb07 014a 	add.w	r1, r7, sl, lsl #1
    dc94:	7048      	strb	r0, [r1, #1]
    dc96:	f89d 0014 	ldrb.w	r0, [sp, #20]
    dc9a:	2820      	cmp	r0, #32
    dc9c:	bf03      	ittte	eq
    dc9e:	eb05 0086 	addeq.w	r0, r5, r6, lsl #2
    dca2:	f880 a020 	strbeq.w	sl, [r0, #32]
    dca6:	f880 9023 	strbeq.w	r9, [r0, #35]	; 0x23
    dcaa:	eb07 0040 	addne.w	r0, r7, r0, lsl #1
    dcae:	bf18      	it	ne
    dcb0:	f880 a001 	strbne.w	sl, [r0, #1]
    dcb4:	4632      	mov	r2, r6
    dcb6:	4651      	mov	r1, sl
    dcb8:	f05f 0003 	movs.w	r0, #3
    dcbc:	f7ff fbbe 	bl	d43c <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xcf8>
    dcc0:	eb05 0086 	add.w	r0, r5, r6, lsl #2
    dcc4:	f890 0023 	ldrb.w	r0, [r0, #35]	; 0x23
    dcc8:	f88d 0004 	strb.w	r0, [sp, #4]
    dccc:	f89d 7004 	ldrb.w	r7, [sp, #4]
    dcd0:	b124      	cbz	r4, dcdc <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0x1f0>
    dcd2:	2100      	movs	r1, #0
    dcd4:	f240 707c 	movw	r0, #1916	; 0x77c
    dcd8:	f3af 8000 	nop.w
    dcdc:	4868      	ldr	r0, [pc, #416]	; (de80 <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0x394>)
    dcde:	2800      	cmp	r0, #0
    dce0:	bf18      	it	ne
    dce2:	f3af 8000 	nopne.w
    dce6:	f3ef 8810 	mrs	r8, PRIMASK
    dcea:	b672      	cpsid	i
    dcec:	b124      	cbz	r4, dcf8 <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0x20c>
    dcee:	2100      	movs	r1, #0
    dcf0:	f240 7082 	movw	r0, #1922	; 0x782
    dcf4:	f3af 8000 	nop.w
    dcf8:	f895 002b 	ldrb.w	r0, [r5, #43]	; 0x2b
    dcfc:	f88d 0004 	strb.w	r0, [sp, #4]
    dd00:	f89d 0004 	ldrb.w	r0, [sp, #4]
    dd04:	2800      	cmp	r0, #0
    dd06:	f47f af3a 	bne.w	db7e <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0x92>
    dd0a:	b124      	cbz	r4, dd16 <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0x22a>
    dd0c:	2100      	movs	r1, #0
    dd0e:	f240 708a 	movw	r0, #1930	; 0x78a
    dd12:	f3af 8000 	nop.w
    dd16:	f10d 0e18 	add.w	lr, sp, #24
    dd1a:	9800      	ldr	r0, [sp, #0]
    dd1c:	e89e 100e 	ldmia.w	lr, {r1, r2, r3, ip}
    dd20:	f100 0008 	add.w	r0, r0, #8
    dd24:	f1b9 0f00 	cmp.w	r9, #0
    dd28:	e880 100e 	stmia.w	r0, {r1, r2, r3, ip}
    dd2c:	d044      	beq.n	ddb8 <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0x2cc>
    dd2e:	b124      	cbz	r4, dd3a <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0x24e>
    dd30:	2100      	movs	r1, #0
    dd32:	f240 7097 	movw	r0, #1943	; 0x797
    dd36:	f3af 8000 	nop.w
    dd3a:	f1bb 0f00 	cmp.w	fp, #0
    dd3e:	d12c      	bne.n	dd9a <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0x2ae>
    dd40:	e016      	b.n	dd70 <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0x284>
    dd42:	e7ff      	b.n	dd44 <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0x258>
    dd44:	4632      	mov	r2, r6
    dd46:	4651      	mov	r1, sl
    dd48:	2004      	movs	r0, #4
    dd4a:	f7ff fb77 	bl	d43c <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xcf8>
    dd4e:	f04f 0901 	mov.w	r9, #1
    dd52:	e7b5      	b.n	dcc0 <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0x1d4>
    dd54:	4632      	mov	r2, r6
    dd56:	4651      	mov	r1, sl
    dd58:	2004      	movs	r0, #4
    dd5a:	e7af      	b.n	dcbc <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0x1d0>
    dd5c:	2920      	cmp	r1, #32
    dd5e:	bf19      	ittee	ne
    dd60:	eb07 0041 	addne.w	r0, r7, r1, lsl #1
    dd64:	7840      	ldrbne	r0, [r0, #1]
    dd66:	eb05 0086 	addeq.w	r0, r5, r6, lsl #2
    dd6a:	f890 0020 	ldrbeq.w	r0, [r0, #32]
    dd6e:	e78f      	b.n	dc90 <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0x1a4>
    dd70:	b19f      	cbz	r7, dd9a <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0x2ae>
    dd72:	f895 002f 	ldrb.w	r0, [r5, #47]	; 0x2f
    dd76:	2820      	cmp	r0, #32
    dd78:	d10f      	bne.n	dd9a <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0x2ae>
    dd7a:	b124      	cbz	r4, dd86 <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0x29a>
    dd7c:	2100      	movs	r1, #0
    dd7e:	f240 709c 	movw	r0, #1948	; 0x79c
    dd82:	f3af 8000 	nop.w
    dd86:	4631      	mov	r1, r6
    dd88:	2002      	movs	r0, #2
    dd8a:	f7ff fb87 	bl	d49c <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xd58>
    dd8e:	b920      	cbnz	r0, dd9a <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0x2ae>
    dd90:	980c      	ldr	r0, [sp, #48]	; 0x30
    dd92:	7800      	ldrb	r0, [r0, #0]
    dd94:	b3f0      	cbz	r0, de14 <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0x328>
    dd96:	2801      	cmp	r0, #1
    dd98:	d04c      	beq.n	de34 <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0x348>
    dd9a:	b124      	cbz	r4, dda6 <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0x2ba>
    dd9c:	2100      	movs	r1, #0
    dd9e:	f240 70b9 	movw	r0, #1977	; 0x7b9
    dda2:	f3af 8000 	nop.w
    dda6:	f1bb 0f00 	cmp.w	fp, #0
    ddaa:	bf18      	it	ne
    ddac:	2001      	movne	r0, #1
    ddae:	d04a      	beq.n	de46 <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0x35a>
    ddb0:	f885 002b 	strb.w	r0, [r5, #43]	; 0x2b
    ddb4:	f04f 0901 	mov.w	r9, #1
    ddb8:	b124      	cbz	r4, ddc4 <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0x2d8>
    ddba:	2100      	movs	r1, #0
    ddbc:	f240 70ca 	movw	r0, #1994	; 0x7ca
    ddc0:	f3af 8000 	nop.w
    ddc4:	f1b8 0f00 	cmp.w	r8, #0
    ddc8:	d045      	beq.n	de56 <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0x36a>
    ddca:	b124      	cbz	r4, ddd6 <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0x2ea>
    ddcc:	2100      	movs	r1, #0
    ddce:	f240 70ce 	movw	r0, #1998	; 0x7ce
    ddd2:	f3af 8000 	nop.w
    ddd6:	f1b9 0f00 	cmp.w	r9, #0
    ddda:	d011      	beq.n	de00 <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0x314>
    dddc:	f895 002e 	ldrb.w	r0, [r5, #46]	; 0x2e
    dde0:	eb05 0080 	add.w	r0, r5, r0, lsl #2
    dde4:	f890 0021 	ldrb.w	r0, [r0, #33]	; 0x21
    dde8:	2820      	cmp	r0, #32
    ddea:	d009      	beq.n	de00 <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0x314>
    ddec:	b124      	cbz	r4, ddf8 <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0x30c>
    ddee:	2100      	movs	r1, #0
    ddf0:	f240 70d5 	movw	r0, #2005	; 0x7d5
    ddf4:	f3af 8000 	nop.w
    ddf8:	4822      	ldr	r0, [pc, #136]	; (de84 <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0x398>)
    ddfa:	7840      	ldrb	r0, [r0, #1]
    ddfc:	f001 ff1a 	bl	fc34 <sym_GURZ3AH6X65RGSKYMYNWZVP6HM56LA5MRAQWT6Q>
    de00:	b124      	cbz	r4, de0c <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0x320>
    de02:	2100      	movs	r1, #0
    de04:	f240 70da 	movw	r0, #2010	; 0x7da
    de08:	f3af 8000 	nop.w
    de0c:	b00d      	add	sp, #52	; 0x34
    de0e:	4648      	mov	r0, r9
    de10:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
    de14:	e7ff      	b.n	de16 <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0x32a>
    de16:	b124      	cbz	r4, de22 <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0x336>
    de18:	2100      	movs	r1, #0
    de1a:	f240 70a4 	movw	r0, #1956	; 0x7a4
    de1e:	f3af 8000 	nop.w
    de22:	f895 202e 	ldrb.w	r2, [r5, #46]	; 0x2e
    de26:	4651      	mov	r1, sl
    de28:	2004      	movs	r0, #4
    de2a:	f7ff fb07 	bl	d43c <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xcf8>
    de2e:	f04f 0901 	mov.w	r9, #1
    de32:	e7c1      	b.n	ddb8 <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0x2cc>
    de34:	2c00      	cmp	r4, #0
    de36:	f43f aea2 	beq.w	db7e <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0x92>
    de3a:	2100      	movs	r1, #0
    de3c:	f240 70af 	movw	r0, #1967	; 0x7af
    de40:	f3af 8000 	nop.w
    de44:	e69b      	b.n	db7e <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0x92>
    de46:	f895 102e 	ldrb.w	r1, [r5, #46]	; 0x2e
    de4a:	2001      	movs	r0, #1
    de4c:	ea20 0101 	bic.w	r1, r0, r1
    de50:	f885 102e 	strb.w	r1, [r5, #46]	; 0x2e
    de54:	e7ac      	b.n	ddb0 <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0x2c4>
    de56:	4807      	ldr	r0, [pc, #28]	; (de74 <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0x388>)
    de58:	2800      	cmp	r0, #0
    de5a:	bf18      	it	ne
    de5c:	f3af 8000 	nopne.w
    de60:	b662      	cpsie	i
    de62:	e7b2      	b.n	ddca <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY+0x2de>
    de64:	e000ed04 	.word	0xe000ed04
    de68:	20000ef4 	.word	0x20000ef4
    de6c:	00000000 	.word	0x00000000
    de70:	20000b74 	.word	0x20000b74
    de74:	00000000 	.word	0x00000000
    de78:	20000e74 	.word	0x20000e74
    de7c:	003fffff 	.word	0x003fffff
    de80:	00000000 	.word	0x00000000
    de84:	20000014 	.word	0x20000014

0000de88 <sym_CVH6S6LMSFPC2RM6I6LYWFRVOJUD3A6OCMG7AAI>:
    de88:	e92d 4ff1 	stmdb	sp!, {r0, r4, r5, r6, r7, r8, r9, sl, fp, lr}
    de8c:	48a5      	ldr	r0, [pc, #660]	; (e124 <sym_CVH6S6LMSFPC2RM6I6LYWFRVOJUD3A6OCMG7AAI+0x29c>)
    de8e:	b08c      	sub	sp, #48	; 0x30
    de90:	6800      	ldr	r0, [r0, #0]
    de92:	05c0      	lsls	r0, r0, #23
    de94:	0dc0      	lsrs	r0, r0, #23
    de96:	d011      	beq.n	debc <sym_CVH6S6LMSFPC2RM6I6LYWFRVOJUD3A6OCMG7AAI+0x34>
    de98:	3810      	subs	r0, #16
    de9a:	b240      	sxtb	r0, r0
    de9c:	2800      	cmp	r0, #0
    de9e:	bfb8      	it	lt
    dea0:	f000 000f 	andlt.w	r0, r0, #15
    dea4:	f100 20e0 	add.w	r0, r0, #3758153728	; 0xe000e000
    dea8:	bfac      	ite	ge
    deaa:	f890 0400 	ldrbge.w	r0, [r0, #1024]	; 0x400
    deae:	f890 0d14 	ldrblt.w	r0, [r0, #3348]	; 0xd14
    deb2:	0940      	lsrs	r0, r0, #5
    deb4:	bf08      	it	eq
    deb6:	f04f 0901 	moveq.w	r9, #1
    deba:	d001      	beq.n	dec0 <sym_CVH6S6LMSFPC2RM6I6LYWFRVOJUD3A6OCMG7AAI+0x38>
    debc:	f04f 0900 	mov.w	r9, #0
    dec0:	980c      	ldr	r0, [sp, #48]	; 0x30
    dec2:	7800      	ldrb	r0, [r0, #0]
    dec4:	2800      	cmp	r0, #0
    dec6:	f04f 0000 	mov.w	r0, #0
    deca:	bf1c      	itt	ne
    decc:	b00d      	addne	sp, #52	; 0x34
    dece:	e8bd 8ff0 	ldmiane.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
    ded2:	f8df a254 	ldr.w	sl, [pc, #596]	; e128 <sym_CVH6S6LMSFPC2RM6I6LYWFRVOJUD3A6OCMG7AAI+0x2a0>
    ded6:	4d95      	ldr	r5, [pc, #596]	; (e12c <sym_CVH6S6LMSFPC2RM6I6LYWFRVOJUD3A6OCMG7AAI+0x2a4>)
    ded8:	4c95      	ldr	r4, [pc, #596]	; (e130 <sym_CVH6S6LMSFPC2RM6I6LYWFRVOJUD3A6OCMG7AAI+0x2a8>)
    deda:	f04f 0b00 	mov.w	fp, #0
    dede:	900b      	str	r0, [sp, #44]	; 0x2c
    dee0:	b125      	cbz	r5, deec <sym_CVH6S6LMSFPC2RM6I6LYWFRVOJUD3A6OCMG7AAI+0x64>
    dee2:	2100      	movs	r1, #0
    dee4:	f44f 60cb 	mov.w	r0, #1624	; 0x658
    dee8:	f3af 8000 	nop.w
    deec:	f894 602e 	ldrb.w	r6, [r4, #46]	; 0x2e
    def0:	f884 b02b 	strb.w	fp, [r4, #43]	; 0x2b
    def4:	f04f 0800 	mov.w	r8, #0
    def8:	b125      	cbz	r5, df04 <sym_CVH6S6LMSFPC2RM6I6LYWFRVOJUD3A6OCMG7AAI+0x7c>
    defa:	2100      	movs	r1, #0
    defc:	f240 605d 	movw	r0, #1629	; 0x65d
    df00:	f3af 8000 	nop.w
    df04:	f1b9 0f00 	cmp.w	r9, #0
    df08:	d11d      	bne.n	df46 <sym_CVH6S6LMSFPC2RM6I6LYWFRVOJUD3A6OCMG7AAI+0xbe>
    df0a:	4637      	mov	r7, r6
    df0c:	2001      	movs	r0, #1
    df0e:	ea20 0607 	bic.w	r6, r0, r7
    df12:	4888      	ldr	r0, [pc, #544]	; (e134 <sym_CVH6S6LMSFPC2RM6I6LYWFRVOJUD3A6OCMG7AAI+0x2ac>)
    df14:	2240      	movs	r2, #64	; 0x40
    df16:	eb00 1187 	add.w	r1, r0, r7, lsl #6
    df1a:	eb00 1086 	add.w	r0, r0, r6, lsl #6
    df1e:	f00a f8d0 	bl	180c2 <sym_DQONLUECJTIEYFOFJXXAPJO4POIAJKJNKBGVN5A>
    df22:	b125      	cbz	r5, df2e <sym_CVH6S6LMSFPC2RM6I6LYWFRVOJUD3A6OCMG7AAI+0xa6>
    df24:	2100      	movs	r1, #0
    df26:	f240 50cd 	movw	r0, #1485	; 0x5cd
    df2a:	f3af 8000 	nop.w
    df2e:	eb04 0187 	add.w	r1, r4, r7, lsl #2
    df32:	eb04 0086 	add.w	r0, r4, r6, lsl #2
    df36:	6a09      	ldr	r1, [r1, #32]
    df38:	6201      	str	r1, [r0, #32]
    df3a:	b125      	cbz	r5, df46 <sym_CVH6S6LMSFPC2RM6I6LYWFRVOJUD3A6OCMG7AAI+0xbe>
    df3c:	2100      	movs	r1, #0
    df3e:	f240 50d1 	movw	r0, #1489	; 0x5d1
    df42:	f3af 8000 	nop.w
    df46:	b125      	cbz	r5, df52 <sym_CVH6S6LMSFPC2RM6I6LYWFRVOJUD3A6OCMG7AAI+0xca>
    df48:	2100      	movs	r1, #0
    df4a:	f240 6065 	movw	r0, #1637	; 0x665
    df4e:	f3af 8000 	nop.w
    df52:	f000 feaf 	bl	ecb4 <sym_M4DIQOXJAE3BNHQBIUCZXAABSM24CWUEJOCU7DY>
    df56:	4607      	mov	r7, r0
    df58:	4633      	mov	r3, r6
    df5a:	466a      	mov	r2, sp
    df5c:	990c      	ldr	r1, [sp, #48]	; 0x30
    df5e:	f7ff f8c7 	bl	d0f0 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x9ac>
    df62:	b125      	cbz	r5, df6e <sym_CVH6S6LMSFPC2RM6I6LYWFRVOJUD3A6OCMG7AAI+0xe6>
    df64:	2100      	movs	r1, #0
    df66:	f240 606b 	movw	r0, #1643	; 0x66b
    df6a:	f3af 8000 	nop.w
    df6e:	f894 002f 	ldrb.w	r0, [r4, #47]	; 0x2f
    df72:	2820      	cmp	r0, #32
    df74:	d014      	beq.n	dfa0 <sym_CVH6S6LMSFPC2RM6I6LYWFRVOJUD3A6OCMG7AAI+0x118>
    df76:	6920      	ldr	r0, [r4, #16]
    df78:	9900      	ldr	r1, [sp, #0]
    df7a:	1a09      	subs	r1, r1, r0
    df7c:	0209      	lsls	r1, r1, #8
    df7e:	17ca      	asrs	r2, r1, #31
    df80:	eb01 6112 	add.w	r1, r1, r2, lsr #24
    df84:	1209      	asrs	r1, r1, #8
    df86:	d50b      	bpl.n	dfa0 <sym_CVH6S6LMSFPC2RM6I6LYWFRVOJUD3A6OCMG7AAI+0x118>
    df88:	e9dd 2100 	ldrd	r2, r1, [sp]
    df8c:	1a89      	subs	r1, r1, r2
    df8e:	f020 427f 	bic.w	r2, r0, #4278190080	; 0xff000000
    df92:	4408      	add	r0, r1
    df94:	f020 407f 	bic.w	r0, r0, #4278190080	; 0xff000000
    df98:	e9cd 2000 	strd	r2, r0, [sp]
    df9c:	f04f 0801 	mov.w	r8, #1
    dfa0:	b14d      	cbz	r5, dfb6 <sym_CVH6S6LMSFPC2RM6I6LYWFRVOJUD3A6OCMG7AAI+0x12e>
    dfa2:	2100      	movs	r1, #0
    dfa4:	f240 6075 	movw	r0, #1653	; 0x675
    dfa8:	f3af 8000 	nop.w
    dfac:	2100      	movs	r1, #0
    dfae:	f240 607b 	movw	r0, #1659	; 0x67b
    dfb2:	f3af 8000 	nop.w
    dfb6:	9800      	ldr	r0, [sp, #0]
    dfb8:	9901      	ldr	r1, [sp, #4]
    dfba:	1bc0      	subs	r0, r0, r7
    dfbc:	1bc9      	subs	r1, r1, r7
    dfbe:	f020 407f 	bic.w	r0, r0, #4278190080	; 0xff000000
    dfc2:	f021 417f 	bic.w	r1, r1, #4278190080	; 0xff000000
    dfc6:	f5b0 0f80 	cmp.w	r0, #4194304	; 0x400000
    dfca:	d205      	bcs.n	dfd8 <sym_CVH6S6LMSFPC2RM6I6LYWFRVOJUD3A6OCMG7AAI+0x150>
    dfcc:	458a      	cmp	sl, r1
    dfce:	d303      	bcc.n	dfd8 <sym_CVH6S6LMSFPC2RM6I6LYWFRVOJUD3A6OCMG7AAI+0x150>
    dfd0:	f1b9 0f00 	cmp.w	r9, #0
    dfd4:	d10c      	bne.n	dff0 <sym_CVH6S6LMSFPC2RM6I6LYWFRVOJUD3A6OCMG7AAI+0x168>
    dfd6:	e003      	b.n	dfe0 <sym_CVH6S6LMSFPC2RM6I6LYWFRVOJUD3A6OCMG7AAI+0x158>
    dfd8:	f1b9 0f00 	cmp.w	r9, #0
    dfdc:	d038      	beq.n	e050 <sym_CVH6S6LMSFPC2RM6I6LYWFRVOJUD3A6OCMG7AAI+0x1c8>
    dfde:	e094      	b.n	e10a <sym_CVH6S6LMSFPC2RM6I6LYWFRVOJUD3A6OCMG7AAI+0x282>
    dfe0:	4633      	mov	r3, r6
    dfe2:	463a      	mov	r2, r7
    dfe4:	4669      	mov	r1, sp
    dfe6:	4854      	ldr	r0, [pc, #336]	; (e138 <sym_CVH6S6LMSFPC2RM6I6LYWFRVOJUD3A6OCMG7AAI+0x2b0>)
    dfe8:	f7fe fbf6 	bl	c7d8 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0x94>
    dfec:	ea48 0800 	orr.w	r8, r8, r0
    dff0:	f1b8 0f00 	cmp.w	r8, #0
    dff4:	d022      	beq.n	e03c <sym_CVH6S6LMSFPC2RM6I6LYWFRVOJUD3A6OCMG7AAI+0x1b4>
    dff6:	9800      	ldr	r0, [sp, #0]
    dff8:	f009 fef5 	bl	17de6 <sym_XYQTP7YX2XFVREW5KFDH2NNPGRIPEHKIO2RURYI>
    dffc:	f8bd 100a 	ldrh.w	r1, [sp, #10]
    e000:	f89d 2008 	ldrb.w	r2, [sp, #8]
    e004:	4b4d      	ldr	r3, [pc, #308]	; (e13c <sym_CVH6S6LMSFPC2RM6I6LYWFRVOJUD3A6OCMG7AAI+0x2b4>)
    e006:	4411      	add	r1, r2
    e008:	1c49      	adds	r1, r1, #1
    e00a:	1842      	adds	r2, r0, r1
    e00c:	4298      	cmp	r0, r3
    e00e:	d841      	bhi.n	e094 <sym_CVH6S6LMSFPC2RM6I6LYWFRVOJUD3A6OCMG7AAI+0x20c>
    e010:	4849      	ldr	r0, [pc, #292]	; (e138 <sym_CVH6S6LMSFPC2RM6I6LYWFRVOJUD3A6OCMG7AAI+0x2b0>)
    e012:	4281      	cmp	r1, r0
    e014:	dc5a      	bgt.n	e0cc <sym_CVH6S6LMSFPC2RM6I6LYWFRVOJUD3A6OCMG7AAI+0x244>
    e016:	4240      	negs	r0, r0
    e018:	4281      	cmp	r1, r0
    e01a:	db5f      	blt.n	e0dc <sym_CVH6S6LMSFPC2RM6I6LYWFRVOJUD3A6OCMG7AAI+0x254>
    e01c:	1c58      	adds	r0, r3, #1
    e01e:	4290      	cmp	r0, r2
    e020:	bfdc      	itt	le
    e022:	f502 02f7 	addle.w	r2, r2, #8093696	; 0x7b8000
    e026:	f1a2 52f8 	suble.w	r2, r2, #520093696	; 0x1f000000
    e02a:	dd05      	ble.n	e038 <sym_CVH6S6LMSFPC2RM6I6LYWFRVOJUD3A6OCMG7AAI+0x1b0>
    e02c:	2a00      	cmp	r2, #0
    e02e:	bfbc      	itt	lt
    e030:	f5a2 02f7 	sublt.w	r2, r2, #8093696	; 0x7b8000
    e034:	f102 52f8 	addlt.w	r2, r2, #520093696	; 0x1f000000
    e038:	980c      	ldr	r0, [sp, #48]	; 0x30
    e03a:	60c2      	str	r2, [r0, #12]
    e03c:	2001      	movs	r0, #1
    e03e:	900b      	str	r0, [sp, #44]	; 0x2c
    e040:	2d00      	cmp	r5, #0
    e042:	d062      	beq.n	e10a <sym_CVH6S6LMSFPC2RM6I6LYWFRVOJUD3A6OCMG7AAI+0x282>
    e044:	2100      	movs	r1, #0
    e046:	f240 608e 	movw	r0, #1678	; 0x68e
    e04a:	f3af 8000 	nop.w
    e04e:	e05c      	b.n	e10a <sym_CVH6S6LMSFPC2RM6I6LYWFRVOJUD3A6OCMG7AAI+0x282>
    e050:	f8bd 000a 	ldrh.w	r0, [sp, #10]
    e054:	aa08      	add	r2, sp, #32
    e056:	a907      	add	r1, sp, #28
    e058:	f000 fcd6 	bl	ea08 <sym_AOU55ZK756JLPLCLZ5TZSSVKOAWWFUNQZATBXUI>
    e05c:	f894 002f 	ldrb.w	r0, [r4, #47]	; 0x2f
    e060:	2820      	cmp	r0, #32
    e062:	d01c      	beq.n	e09e <sym_CVH6S6LMSFPC2RM6I6LYWFRVOJUD3A6OCMG7AAI+0x216>
    e064:	6920      	ldr	r0, [r4, #16]
    e066:	1d40      	adds	r0, r0, #5
    e068:	f020 407f 	bic.w	r0, r0, #4278190080	; 0xff000000
    e06c:	e9dd 2100 	ldrd	r2, r1, [sp]
    e070:	1a89      	subs	r1, r1, r2
    e072:	4401      	add	r1, r0
    e074:	f021 417f 	bic.w	r1, r1, #4278190080	; 0xff000000
    e078:	e9cd 0100 	strd	r0, r1, [sp]
    e07c:	f009 feb3 	bl	17de6 <sym_XYQTP7YX2XFVREW5KFDH2NNPGRIPEHKIO2RURYI>
    e080:	f8bd 100a 	ldrh.w	r1, [sp, #10]
    e084:	f89d 2008 	ldrb.w	r2, [sp, #8]
    e088:	4b2c      	ldr	r3, [pc, #176]	; (e13c <sym_CVH6S6LMSFPC2RM6I6LYWFRVOJUD3A6OCMG7AAI+0x2b4>)
    e08a:	4411      	add	r1, r2
    e08c:	1c4a      	adds	r2, r1, #1
    e08e:	1881      	adds	r1, r0, r2
    e090:	4298      	cmp	r0, r3
    e092:	d918      	bls.n	e0c6 <sym_CVH6S6LMSFPC2RM6I6LYWFRVOJUD3A6OCMG7AAI+0x23e>
    e094:	f240 6109 	movw	r1, #1545	; 0x609
    e098:	2070      	movs	r0, #112	; 0x70
    e09a:	f001 fcfb 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    e09e:	f8bd 000a 	ldrh.w	r0, [sp, #10]
    e0a2:	f107 0609 	add.w	r6, r7, #9
    e0a6:	b120      	cbz	r0, e0b2 <sym_CVH6S6LMSFPC2RM6I6LYWFRVOJUD3A6OCMG7AAI+0x22a>
    e0a8:	f001 fc90 	bl	f9cc <sym_LIY23QT3GHIV7NCGJ6ZW6LB2ZUSI56CIFCL6HUY>
    e0ac:	2800      	cmp	r0, #0
    e0ae:	bf08      	it	eq
    e0b0:	3632      	addeq	r6, #50	; 0x32
    e0b2:	4823      	ldr	r0, [pc, #140]	; (e140 <sym_CVH6S6LMSFPC2RM6I6LYWFRVOJUD3A6OCMG7AAI+0x2b8>)
    e0b4:	7841      	ldrb	r1, [r0, #1]
    e0b6:	9807      	ldr	r0, [sp, #28]
    e0b8:	4281      	cmp	r1, r0
    e0ba:	bf84      	itt	hi
    e0bc:	1a08      	subhi	r0, r1, r0
    e0be:	4406      	addhi	r6, r0
    e0c0:	f026 407f 	bic.w	r0, r6, #4278190080	; 0xff000000
    e0c4:	e7d2      	b.n	e06c <sym_CVH6S6LMSFPC2RM6I6LYWFRVOJUD3A6OCMG7AAI+0x1e4>
    e0c6:	481c      	ldr	r0, [pc, #112]	; (e138 <sym_CVH6S6LMSFPC2RM6I6LYWFRVOJUD3A6OCMG7AAI+0x2b0>)
    e0c8:	4282      	cmp	r2, r0
    e0ca:	dd04      	ble.n	e0d6 <sym_CVH6S6LMSFPC2RM6I6LYWFRVOJUD3A6OCMG7AAI+0x24e>
    e0cc:	f240 610a 	movw	r1, #1546	; 0x60a
    e0d0:	2070      	movs	r0, #112	; 0x70
    e0d2:	f001 fcdf 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    e0d6:	481b      	ldr	r0, [pc, #108]	; (e144 <sym_CVH6S6LMSFPC2RM6I6LYWFRVOJUD3A6OCMG7AAI+0x2bc>)
    e0d8:	4282      	cmp	r2, r0
    e0da:	da04      	bge.n	e0e6 <sym_CVH6S6LMSFPC2RM6I6LYWFRVOJUD3A6OCMG7AAI+0x25e>
    e0dc:	f240 610b 	movw	r1, #1547	; 0x60b
    e0e0:	2070      	movs	r0, #112	; 0x70
    e0e2:	f001 fcd7 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    e0e6:	4818      	ldr	r0, [pc, #96]	; (e148 <sym_CVH6S6LMSFPC2RM6I6LYWFRVOJUD3A6OCMG7AAI+0x2c0>)
    e0e8:	4288      	cmp	r0, r1
    e0ea:	bfdc      	itt	le
    e0ec:	f501 01f7 	addle.w	r1, r1, #8093696	; 0x7b8000
    e0f0:	f1a1 51f8 	suble.w	r1, r1, #520093696	; 0x1f000000
    e0f4:	dd05      	ble.n	e102 <sym_CVH6S6LMSFPC2RM6I6LYWFRVOJUD3A6OCMG7AAI+0x27a>
    e0f6:	2900      	cmp	r1, #0
    e0f8:	bfbc      	itt	lt
    e0fa:	f5a1 01f7 	sublt.w	r1, r1, #8093696	; 0x7b8000
    e0fe:	f101 51f8 	addlt.w	r1, r1, #520093696	; 0x1f000000
    e102:	980c      	ldr	r0, [sp, #48]	; 0x30
    e104:	60c1      	str	r1, [r0, #12]
    e106:	2001      	movs	r0, #1
    e108:	900b      	str	r0, [sp, #44]	; 0x2c
    e10a:	f894 002b 	ldrb.w	r0, [r4, #43]	; 0x2b
    e10e:	f88d 0010 	strb.w	r0, [sp, #16]
    e112:	f89d 0010 	ldrb.w	r0, [sp, #16]
    e116:	2800      	cmp	r0, #0
    e118:	f47f aee2 	bne.w	dee0 <sym_CVH6S6LMSFPC2RM6I6LYWFRVOJUD3A6OCMG7AAI+0x58>
    e11c:	980b      	ldr	r0, [sp, #44]	; 0x2c
    e11e:	b00d      	add	sp, #52	; 0x34
    e120:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
    e124:	e000ed04 	.word	0xe000ed04
    e128:	003fffff 	.word	0x003fffff
    e12c:	00000000 	.word	0x00000000
    e130:	20000ef4 	.word	0x20000ef4
    e134:	20000e74 	.word	0x20000e74
    e138:	07a12000 	.word	0x07a12000
    e13c:	1e847fff 	.word	0x1e847fff
    e140:	20000016 	.word	0x20000016
    e144:	f85ee000 	.word	0xf85ee000
    e148:	1e848000 	.word	0x1e848000

0000e14c <sym_R4Y3KWNYX4PGGLE5X2L7DXMWMJUY3DOXD7LSUKY>:
    e14c:	e92d 4ff1 	stmdb	sp!, {r0, r4, r5, r6, r7, r8, r9, sl, fp, lr}
    e150:	4d88      	ldr	r5, [pc, #544]	; (e374 <sym_R4Y3KWNYX4PGGLE5X2L7DXMWMJUY3DOXD7LSUKY+0x228>)
    e152:	b08c      	sub	sp, #48	; 0x30
    e154:	f895 002e 	ldrb.w	r0, [r5, #46]	; 0x2e
    e158:	2000      	movs	r0, #0
    e15a:	9009      	str	r0, [sp, #36]	; 0x24
    e15c:	2001      	movs	r0, #1
    e15e:	4c86      	ldr	r4, [pc, #536]	; (e378 <sym_R4Y3KWNYX4PGGLE5X2L7DXMWMJUY3DOXD7LSUKY+0x22c>)
    e160:	f04f 0900 	mov.w	r9, #0
    e164:	f1a5 0780 	sub.w	r7, r5, #128	; 0x80
    e168:	4680      	mov	r8, r0
    e16a:	9008      	str	r0, [sp, #32]
    e16c:	b124      	cbz	r4, e178 <sym_R4Y3KWNYX4PGGLE5X2L7DXMWMJUY3DOXD7LSUKY+0x2c>
    e16e:	2100      	movs	r1, #0
    e170:	f240 70e9 	movw	r0, #2025	; 0x7e9
    e174:	f3af 8000 	nop.w
    e178:	9808      	ldr	r0, [sp, #32]
    e17a:	2800      	cmp	r0, #0
    e17c:	d037      	beq.n	e1ee <sym_R4Y3KWNYX4PGGLE5X2L7DXMWMJUY3DOXD7LSUKY+0xa2>
    e17e:	bf00      	nop
    e180:	f885 902b 	strb.w	r9, [r5, #43]	; 0x2b
    e184:	b124      	cbz	r4, e190 <sym_R4Y3KWNYX4PGGLE5X2L7DXMWMJUY3DOXD7LSUKY+0x44>
    e186:	2100      	movs	r1, #0
    e188:	f240 70ee 	movw	r0, #2030	; 0x7ee
    e18c:	f3af 8000 	nop.w
    e190:	f895 a02e 	ldrb.w	sl, [r5, #46]	; 0x2e
    e194:	2240      	movs	r2, #64	; 0x40
    e196:	ea28 060a 	bic.w	r6, r8, sl
    e19a:	eb07 1086 	add.w	r0, r7, r6, lsl #6
    e19e:	eb07 118a 	add.w	r1, r7, sl, lsl #6
    e1a2:	4683      	mov	fp, r0
    e1a4:	f009 ff8d 	bl	180c2 <sym_DQONLUECJTIEYFOFJXXAPJO4POIAJKJNKBGVN5A>
    e1a8:	b124      	cbz	r4, e1b4 <sym_R4Y3KWNYX4PGGLE5X2L7DXMWMJUY3DOXD7LSUKY+0x68>
    e1aa:	2100      	movs	r1, #0
    e1ac:	f240 50cd 	movw	r0, #1485	; 0x5cd
    e1b0:	f3af 8000 	nop.w
    e1b4:	eb05 0086 	add.w	r0, r5, r6, lsl #2
    e1b8:	eb05 018a 	add.w	r1, r5, sl, lsl #2
    e1bc:	9000      	str	r0, [sp, #0]
    e1be:	6a09      	ldr	r1, [r1, #32]
    e1c0:	6201      	str	r1, [r0, #32]
    e1c2:	b124      	cbz	r4, e1ce <sym_R4Y3KWNYX4PGGLE5X2L7DXMWMJUY3DOXD7LSUKY+0x82>
    e1c4:	2100      	movs	r1, #0
    e1c6:	f240 50d1 	movw	r0, #1489	; 0x5d1
    e1ca:	f3af 8000 	nop.w
    e1ce:	f895 002b 	ldrb.w	r0, [r5, #43]	; 0x2b
    e1d2:	f88d 0008 	strb.w	r0, [sp, #8]
    e1d6:	f89d 0008 	ldrb.w	r0, [sp, #8]
    e1da:	b178      	cbz	r0, e1fc <sym_R4Y3KWNYX4PGGLE5X2L7DXMWMJUY3DOXD7LSUKY+0xb0>
    e1dc:	2c00      	cmp	r4, #0
    e1de:	bf1c      	itt	ne
    e1e0:	2100      	movne	r1, #0
    e1e2:	f240 70f4 	movwne	r0, #2036	; 0x7f4
    e1e6:	d0c1      	beq.n	e16c <sym_R4Y3KWNYX4PGGLE5X2L7DXMWMJUY3DOXD7LSUKY+0x20>
    e1e8:	f3af 8000 	nop.w
    e1ec:	e7be      	b.n	e16c <sym_R4Y3KWNYX4PGGLE5X2L7DXMWMJUY3DOXD7LSUKY+0x20>
    e1ee:	4863      	ldr	r0, [pc, #396]	; (e37c <sym_R4Y3KWNYX4PGGLE5X2L7DXMWMJUY3DOXD7LSUKY+0x230>)
    e1f0:	2800      	cmp	r0, #0
    e1f2:	bf18      	it	ne
    e1f4:	f3af 8000 	nopne.w
    e1f8:	b662      	cpsie	i
    e1fa:	e7c1      	b.n	e180 <sym_R4Y3KWNYX4PGGLE5X2L7DXMWMJUY3DOXD7LSUKY+0x34>
    e1fc:	b124      	cbz	r4, e208 <sym_R4Y3KWNYX4PGGLE5X2L7DXMWMJUY3DOXD7LSUKY+0xbc>
    e1fe:	2100      	movs	r1, #0
    e200:	f44f 60ff 	mov.w	r0, #2040	; 0x7f8
    e204:	f3af 8000 	nop.w
    e208:	980c      	ldr	r0, [sp, #48]	; 0x30
    e20a:	f81b 0010 	ldrb.w	r0, [fp, r0, lsl #1]
    e20e:	2803      	cmp	r0, #3
    e210:	d172      	bne.n	e2f8 <sym_R4Y3KWNYX4PGGLE5X2L7DXMWMJUY3DOXD7LSUKY+0x1ac>
    e212:	f8dd a000 	ldr.w	sl, [sp]
    e216:	f8cd a018 	str.w	sl, [sp, #24]
    e21a:	990c      	ldr	r1, [sp, #48]	; 0x30
    e21c:	f89a 0020 	ldrb.w	r0, [sl, #32]
    e220:	4288      	cmp	r0, r1
    e222:	bf14      	ite	ne
    e224:	f04f 0b00 	movne.w	fp, #0
    e228:	f04f 0b01 	moveq.w	fp, #1
    e22c:	f10a 0c20 	add.w	ip, sl, #32
    e230:	4686      	mov	lr, r0
    e232:	2220      	movs	r2, #32
    e234:	eb07 1386 	add.w	r3, r7, r6, lsl #6
    e238:	e003      	b.n	e242 <sym_R4Y3KWNYX4PGGLE5X2L7DXMWMJUY3DOXD7LSUKY+0xf6>
    e23a:	4602      	mov	r2, r0
    e23c:	eb03 0042 	add.w	r0, r3, r2, lsl #1
    e240:	7840      	ldrb	r0, [r0, #1]
    e242:	4288      	cmp	r0, r1
    e244:	d002      	beq.n	e24c <sym_R4Y3KWNYX4PGGLE5X2L7DXMWMJUY3DOXD7LSUKY+0x100>
    e246:	2820      	cmp	r0, #32
    e248:	d00a      	beq.n	e260 <sym_R4Y3KWNYX4PGGLE5X2L7DXMWMJUY3DOXD7LSUKY+0x114>
    e24a:	e7f6      	b.n	e23a <sym_R4Y3KWNYX4PGGLE5X2L7DXMWMJUY3DOXD7LSUKY+0xee>
    e24c:	2820      	cmp	r0, #32
    e24e:	d007      	beq.n	e260 <sym_R4Y3KWNYX4PGGLE5X2L7DXMWMJUY3DOXD7LSUKY+0x114>
    e250:	4586      	cmp	lr, r0
    e252:	d107      	bne.n	e264 <sym_R4Y3KWNYX4PGGLE5X2L7DXMWMJUY3DOXD7LSUKY+0x118>
    e254:	eb03 004e 	add.w	r0, r3, lr, lsl #1
    e258:	7840      	ldrb	r0, [r0, #1]
    e25a:	f88c 0000 	strb.w	r0, [ip]
    e25e:	e007      	b.n	e270 <sym_R4Y3KWNYX4PGGLE5X2L7DXMWMJUY3DOXD7LSUKY+0x124>
    e260:	4648      	mov	r0, r9
    e262:	e00c      	b.n	e27e <sym_R4Y3KWNYX4PGGLE5X2L7DXMWMJUY3DOXD7LSUKY+0x132>
    e264:	eb03 0040 	add.w	r0, r3, r0, lsl #1
    e268:	eb03 0142 	add.w	r1, r3, r2, lsl #1
    e26c:	7840      	ldrb	r0, [r0, #1]
    e26e:	7048      	strb	r0, [r1, #1]
    e270:	b124      	cbz	r4, e27c <sym_R4Y3KWNYX4PGGLE5X2L7DXMWMJUY3DOXD7LSUKY+0x130>
    e272:	2100      	movs	r1, #0
    e274:	f240 5037 	movw	r0, #1335	; 0x537
    e278:	f3af 8000 	nop.w
    e27c:	4640      	mov	r0, r8
    e27e:	ea10 0f0b 	tst.w	r0, fp
    e282:	bf18      	it	ne
    e284:	f88a 8023 	strbne.w	r8, [sl, #35]	; 0x23
    e288:	2800      	cmp	r0, #0
    e28a:	d052      	beq.n	e332 <sym_R4Y3KWNYX4PGGLE5X2L7DXMWMJUY3DOXD7LSUKY+0x1e6>
    e28c:	b124      	cbz	r4, e298 <sym_R4Y3KWNYX4PGGLE5X2L7DXMWMJUY3DOXD7LSUKY+0x14c>
    e28e:	2100      	movs	r1, #0
    e290:	f240 70fd 	movw	r0, #2045	; 0x7fd
    e294:	f3af 8000 	nop.w
    e298:	4632      	mov	r2, r6
    e29a:	2001      	movs	r0, #1
    e29c:	990c      	ldr	r1, [sp, #48]	; 0x30
    e29e:	f7ff f8cd 	bl	d43c <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xcf8>
    e2a2:	9806      	ldr	r0, [sp, #24]
    e2a4:	f890 0023 	ldrb.w	r0, [r0, #35]	; 0x23
    e2a8:	f88d 0008 	strb.w	r0, [sp, #8]
    e2ac:	f89d a008 	ldrb.w	sl, [sp, #8]
    e2b0:	b124      	cbz	r4, e2bc <sym_R4Y3KWNYX4PGGLE5X2L7DXMWMJUY3DOXD7LSUKY+0x170>
    e2b2:	2100      	movs	r1, #0
    e2b4:	f640 0008 	movw	r0, #2056	; 0x808
    e2b8:	f3af 8000 	nop.w
    e2bc:	4830      	ldr	r0, [pc, #192]	; (e380 <sym_R4Y3KWNYX4PGGLE5X2L7DXMWMJUY3DOXD7LSUKY+0x234>)
    e2be:	2800      	cmp	r0, #0
    e2c0:	bf18      	it	ne
    e2c2:	f3af 8000 	nopne.w
    e2c6:	f3ef 8010 	mrs	r0, PRIMASK
    e2ca:	b672      	cpsid	i
    e2cc:	9008      	str	r0, [sp, #32]
    e2ce:	b124      	cbz	r4, e2da <sym_R4Y3KWNYX4PGGLE5X2L7DXMWMJUY3DOXD7LSUKY+0x18e>
    e2d0:	2100      	movs	r1, #0
    e2d2:	f640 000d 	movw	r0, #2061	; 0x80d
    e2d6:	f3af 8000 	nop.w
    e2da:	f895 002b 	ldrb.w	r0, [r5, #43]	; 0x2b
    e2de:	f88d 0008 	strb.w	r0, [sp, #8]
    e2e2:	f89d 0008 	ldrb.w	r0, [sp, #8]
    e2e6:	b140      	cbz	r0, e2fa <sym_R4Y3KWNYX4PGGLE5X2L7DXMWMJUY3DOXD7LSUKY+0x1ae>
    e2e8:	2c00      	cmp	r4, #0
    e2ea:	bf1c      	itt	ne
    e2ec:	2100      	movne	r1, #0
    e2ee:	f640 0011 	movwne	r0, #2065	; 0x811
    e2f2:	f43f af3b 	beq.w	e16c <sym_R4Y3KWNYX4PGGLE5X2L7DXMWMJUY3DOXD7LSUKY+0x20>
    e2f6:	e777      	b.n	e1e8 <sym_R4Y3KWNYX4PGGLE5X2L7DXMWMJUY3DOXD7LSUKY+0x9c>
    e2f8:	e01b      	b.n	e332 <sym_R4Y3KWNYX4PGGLE5X2L7DXMWMJUY3DOXD7LSUKY+0x1e6>
    e2fa:	f1ba 0f00 	cmp.w	sl, #0
    e2fe:	d008      	beq.n	e312 <sym_R4Y3KWNYX4PGGLE5X2L7DXMWMJUY3DOXD7LSUKY+0x1c6>
    e300:	f895 002f 	ldrb.w	r0, [r5, #47]	; 0x2f
    e304:	2820      	cmp	r0, #32
    e306:	d104      	bne.n	e312 <sym_R4Y3KWNYX4PGGLE5X2L7DXMWMJUY3DOXD7LSUKY+0x1c6>
    e308:	4631      	mov	r1, r6
    e30a:	2002      	movs	r0, #2
    e30c:	f7ff f8c6 	bl	d49c <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xd58>
    e310:	b308      	cbz	r0, e356 <sym_R4Y3KWNYX4PGGLE5X2L7DXMWMJUY3DOXD7LSUKY+0x20a>
    e312:	b124      	cbz	r4, e31e <sym_R4Y3KWNYX4PGGLE5X2L7DXMWMJUY3DOXD7LSUKY+0x1d2>
    e314:	2100      	movs	r1, #0
    e316:	f640 0025 	movw	r0, #2085	; 0x825
    e31a:	f3af 8000 	nop.w
    e31e:	f895 002e 	ldrb.w	r0, [r5, #46]	; 0x2e
    e322:	ea28 0000 	bic.w	r0, r8, r0
    e326:	f885 002e 	strb.w	r0, [r5, #46]	; 0x2e
    e32a:	f885 802b 	strb.w	r8, [r5, #43]	; 0x2b
    e32e:	2001      	movs	r0, #1
    e330:	9009      	str	r0, [sp, #36]	; 0x24
    e332:	b124      	cbz	r4, e33e <sym_R4Y3KWNYX4PGGLE5X2L7DXMWMJUY3DOXD7LSUKY+0x1f2>
    e334:	2100      	movs	r1, #0
    e336:	f640 002e 	movw	r0, #2094	; 0x82e
    e33a:	f3af 8000 	nop.w
    e33e:	9808      	ldr	r0, [sp, #32]
    e340:	b188      	cbz	r0, e366 <sym_R4Y3KWNYX4PGGLE5X2L7DXMWMJUY3DOXD7LSUKY+0x21a>
    e342:	b124      	cbz	r4, e34e <sym_R4Y3KWNYX4PGGLE5X2L7DXMWMJUY3DOXD7LSUKY+0x202>
    e344:	2100      	movs	r1, #0
    e346:	f640 0032 	movw	r0, #2098	; 0x832
    e34a:	f3af 8000 	nop.w
    e34e:	9809      	ldr	r0, [sp, #36]	; 0x24
    e350:	b00d      	add	sp, #52	; 0x34
    e352:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
    e356:	2c00      	cmp	r4, #0
    e358:	d0f1      	beq.n	e33e <sym_R4Y3KWNYX4PGGLE5X2L7DXMWMJUY3DOXD7LSUKY+0x1f2>
    e35a:	2100      	movs	r1, #0
    e35c:	f44f 6002 	mov.w	r0, #2080	; 0x820
    e360:	f3af 8000 	nop.w
    e364:	e7e6      	b.n	e334 <sym_R4Y3KWNYX4PGGLE5X2L7DXMWMJUY3DOXD7LSUKY+0x1e8>
    e366:	4805      	ldr	r0, [pc, #20]	; (e37c <sym_R4Y3KWNYX4PGGLE5X2L7DXMWMJUY3DOXD7LSUKY+0x230>)
    e368:	2800      	cmp	r0, #0
    e36a:	bf18      	it	ne
    e36c:	f3af 8000 	nopne.w
    e370:	b662      	cpsie	i
    e372:	e7e6      	b.n	e342 <sym_R4Y3KWNYX4PGGLE5X2L7DXMWMJUY3DOXD7LSUKY+0x1f6>
    e374:	20000ef4 	.word	0x20000ef4
	...

0000e384 <sym_MLZNDMDYRI6WNTNQ4RIQGPD423CK7RT4YVI5CAI>:
    e384:	2820      	cmp	r0, #32
    e386:	bf24      	itt	cs
    e388:	2000      	movcs	r0, #0
    e38a:	4770      	bxcs	lr
    e38c:	eb00 0040 	add.w	r0, r0, r0, lsl #1
    e390:	4b03      	ldr	r3, [pc, #12]	; (e3a0 <sym_MLZNDMDYRI6WNTNQ4RIQGPD423CK7RT4YVI5CAI+0x1c>)
    e392:	f843 1030 	str.w	r1, [r3, r0, lsl #3]
    e396:	eb03 00c0 	add.w	r0, r3, r0, lsl #3
    e39a:	6042      	str	r2, [r0, #4]
    e39c:	2001      	movs	r0, #1
    e39e:	4770      	bx	lr
    e3a0:	20000b74 	.word	0x20000b74

0000e3a4 <sym_CFZK3G6ZC4ONUAYO2UALWQ4CBO7A6ADNAS2FS7Y>:
    e3a4:	b510      	push	{r4, lr}
    e3a6:	2820      	cmp	r0, #32
    e3a8:	d211      	bcs.n	e3ce <sym_CFZK3G6ZC4ONUAYO2UALWQ4CBO7A6ADNAS2FS7Y+0x2a>
    e3aa:	490e      	ldr	r1, [pc, #56]	; (e3e4 <sym_CFZK3G6ZC4ONUAYO2UALWQ4CBO7A6ADNAS2FS7Y+0x40>)
    e3ac:	f891 302e 	ldrb.w	r3, [r1, #46]	; 0x2e
    e3b0:	f1a1 0280 	sub.w	r2, r1, #128	; 0x80
    e3b4:	eb02 1c83 	add.w	ip, r2, r3, lsl #6
    e3b8:	f81c 3010 	ldrb.w	r3, [ip, r0, lsl #1]
    e3bc:	b13b      	cbz	r3, e3ce <sym_CFZK3G6ZC4ONUAYO2UALWQ4CBO7A6ADNAS2FS7Y+0x2a>
    e3be:	f891 302e 	ldrb.w	r3, [r1, #46]	; 0x2e
    e3c2:	eb02 1283 	add.w	r2, r2, r3, lsl #6
    e3c6:	f812 2010 	ldrb.w	r2, [r2, r0, lsl #1]
    e3ca:	2a01      	cmp	r2, #1
    e3cc:	d001      	beq.n	e3d2 <sym_CFZK3G6ZC4ONUAYO2UALWQ4CBO7A6ADNAS2FS7Y+0x2e>
    e3ce:	2000      	movs	r0, #0
    e3d0:	bd10      	pop	{r4, pc}
    e3d2:	f891 202e 	ldrb.w	r2, [r1, #46]	; 0x2e
    e3d6:	4601      	mov	r1, r0
    e3d8:	2000      	movs	r0, #0
    e3da:	f7ff f82f 	bl	d43c <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xcf8>
    e3de:	2001      	movs	r0, #1
    e3e0:	bd10      	pop	{r4, pc}
    e3e2:	0000      	.short	0x0000
    e3e4:	20000ef4 	.word	0x20000ef4

0000e3e8 <sym_DQFOGVCNU4NTOMWSL3IYDNCMIXT2LT7SZHL5IHI>:
    e3e8:	e92d 4ff8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
    e3ec:	4e80      	ldr	r6, [pc, #512]	; (e5f0 <sym_DQFOGVCNU4NTOMWSL3IYDNCMIXT2LT7SZHL5IHI+0x208>)
    e3ee:	4680      	mov	r8, r0
    e3f0:	f896 002e 	ldrb.w	r0, [r6, #46]	; 0x2e
    e3f4:	f1a6 0780 	sub.w	r7, r6, #128	; 0x80
    e3f8:	eb07 1080 	add.w	r0, r7, r0, lsl #6
    e3fc:	f810 0018 	ldrb.w	r0, [r0, r8, lsl #1]
    e400:	2800      	cmp	r0, #0
    e402:	d068      	beq.n	e4d6 <sym_DQFOGVCNU4NTOMWSL3IYDNCMIXT2LT7SZHL5IHI+0xee>
    e404:	f896 902e 	ldrb.w	r9, [r6, #46]	; 0x2e
    e408:	4d7a      	ldr	r5, [pc, #488]	; (e5f4 <sym_DQFOGVCNU4NTOMWSL3IYDNCMIXT2LT7SZHL5IHI+0x20c>)
    e40a:	b125      	cbz	r5, e416 <sym_DQFOGVCNU4NTOMWSL3IYDNCMIXT2LT7SZHL5IHI+0x2e>
    e40c:	2100      	movs	r1, #0
    e40e:	f640 30c1 	movw	r0, #3009	; 0xbc1
    e412:	f3af 8000 	nop.w
    e416:	eb07 1489 	add.w	r4, r7, r9, lsl #6
    e41a:	f814 0018 	ldrb.w	r0, [r4, r8, lsl #1]
    e41e:	2801      	cmp	r0, #1
    e420:	d018      	beq.n	e454 <sym_DQFOGVCNU4NTOMWSL3IYDNCMIXT2LT7SZHL5IHI+0x6c>
    e422:	b2c0      	uxtb	r0, r0
    e424:	2804      	cmp	r0, #4
    e426:	bf1c      	itt	ne
    e428:	2805      	cmpne	r0, #5
    e42a:	2806      	cmpne	r0, #6
    e42c:	d058      	beq.n	e4e0 <sym_DQFOGVCNU4NTOMWSL3IYDNCMIXT2LT7SZHL5IHI+0xf8>
    e42e:	b12d      	cbz	r5, e43c <sym_DQFOGVCNU4NTOMWSL3IYDNCMIXT2LT7SZHL5IHI+0x54>
    e430:	f04f 0100 	mov.w	r1, #0
    e434:	f640 30cd 	movw	r0, #3021	; 0xbcd
    e438:	f3af 8000 	nop.w
    e43c:	f001 fc50 	bl	fce0 <sym_PAD7XREQQORPXRJMXMW2EYVS4S43S42A5D43SBA>
    e440:	b125      	cbz	r5, e44c <sym_DQFOGVCNU4NTOMWSL3IYDNCMIXT2LT7SZHL5IHI+0x64>
    e442:	2100      	movs	r1, #0
    e444:	f640 30d1 	movw	r0, #3025	; 0xbd1
    e448:	f3af 8000 	nop.w
    e44c:	f814 0018 	ldrb.w	r0, [r4, r8, lsl #1]
    e450:	2801      	cmp	r0, #1
    e452:	d1e6      	bne.n	e422 <sym_DQFOGVCNU4NTOMWSL3IYDNCMIXT2LT7SZHL5IHI+0x3a>
    e454:	2401      	movs	r4, #1
    e456:	b125      	cbz	r5, e462 <sym_DQFOGVCNU4NTOMWSL3IYDNCMIXT2LT7SZHL5IHI+0x7a>
    e458:	2100      	movs	r1, #0
    e45a:	f640 30d8 	movw	r0, #3032	; 0xbd8
    e45e:	f3af 8000 	nop.w
    e462:	2c00      	cmp	r4, #0
    e464:	d042      	beq.n	e4ec <sym_DQFOGVCNU4NTOMWSL3IYDNCMIXT2LT7SZHL5IHI+0x104>
    e466:	2000      	movs	r0, #0
    e468:	f886 002b 	strb.w	r0, [r6, #43]	; 0x2b
    e46c:	b125      	cbz	r5, e478 <sym_DQFOGVCNU4NTOMWSL3IYDNCMIXT2LT7SZHL5IHI+0x90>
    e46e:	2100      	movs	r1, #0
    e470:	f640 30dd 	movw	r0, #3037	; 0xbdd
    e474:	f3af 8000 	nop.w
    e478:	f896 b02e 	ldrb.w	fp, [r6, #46]	; 0x2e
    e47c:	2001      	movs	r0, #1
    e47e:	ea20 090b 	bic.w	r9, r0, fp
    e482:	eb07 118b 	add.w	r1, r7, fp, lsl #6
    e486:	eb07 1089 	add.w	r0, r7, r9, lsl #6
    e48a:	2240      	movs	r2, #64	; 0x40
    e48c:	f009 fe19 	bl	180c2 <sym_DQONLUECJTIEYFOFJXXAPJO4POIAJKJNKBGVN5A>
    e490:	b125      	cbz	r5, e49c <sym_DQFOGVCNU4NTOMWSL3IYDNCMIXT2LT7SZHL5IHI+0xb4>
    e492:	2100      	movs	r1, #0
    e494:	f240 50cd 	movw	r0, #1485	; 0x5cd
    e498:	f3af 8000 	nop.w
    e49c:	eb06 008b 	add.w	r0, r6, fp, lsl #2
    e4a0:	eb06 0a89 	add.w	sl, r6, r9, lsl #2
    e4a4:	6a00      	ldr	r0, [r0, #32]
    e4a6:	f8ca 0020 	str.w	r0, [sl, #32]
    e4aa:	b125      	cbz	r5, e4b6 <sym_DQFOGVCNU4NTOMWSL3IYDNCMIXT2LT7SZHL5IHI+0xce>
    e4ac:	2100      	movs	r1, #0
    e4ae:	f240 50d1 	movw	r0, #1489	; 0x5d1
    e4b2:	f3af 8000 	nop.w
    e4b6:	f896 002b 	ldrb.w	r0, [r6, #43]	; 0x2b
    e4ba:	f88d 0000 	strb.w	r0, [sp]
    e4be:	f89d 0000 	ldrb.w	r0, [sp]
    e4c2:	b1d0      	cbz	r0, e4fa <sym_DQFOGVCNU4NTOMWSL3IYDNCMIXT2LT7SZHL5IHI+0x112>
    e4c4:	2d00      	cmp	r5, #0
    e4c6:	bf1c      	itt	ne
    e4c8:	2100      	movne	r1, #0
    e4ca:	f640 30e3 	movwne	r0, #3043	; 0xbe3
    e4ce:	d0c2      	beq.n	e456 <sym_DQFOGVCNU4NTOMWSL3IYDNCMIXT2LT7SZHL5IHI+0x6e>
    e4d0:	f3af 8000 	nop.w
    e4d4:	e7bf      	b.n	e456 <sym_DQFOGVCNU4NTOMWSL3IYDNCMIXT2LT7SZHL5IHI+0x6e>
    e4d6:	f640 31b8 	movw	r1, #3000	; 0xbb8
    e4da:	2070      	movs	r0, #112	; 0x70
    e4dc:	f001 fada 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    e4e0:	464a      	mov	r2, r9
    e4e2:	4641      	mov	r1, r8
    e4e4:	2001      	movs	r0, #1
    e4e6:	f7fe ffa9 	bl	d43c <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xcf8>
    e4ea:	e7a9      	b.n	e440 <sym_DQFOGVCNU4NTOMWSL3IYDNCMIXT2LT7SZHL5IHI+0x58>
    e4ec:	4842      	ldr	r0, [pc, #264]	; (e5f8 <sym_DQFOGVCNU4NTOMWSL3IYDNCMIXT2LT7SZHL5IHI+0x210>)
    e4ee:	2800      	cmp	r0, #0
    e4f0:	bf18      	it	ne
    e4f2:	f3af 8000 	nopne.w
    e4f6:	b662      	cpsie	i
    e4f8:	e7b5      	b.n	e466 <sym_DQFOGVCNU4NTOMWSL3IYDNCMIXT2LT7SZHL5IHI+0x7e>
    e4fa:	b125      	cbz	r5, e506 <sym_DQFOGVCNU4NTOMWSL3IYDNCMIXT2LT7SZHL5IHI+0x11e>
    e4fc:	2100      	movs	r1, #0
    e4fe:	f640 30e7 	movw	r0, #3047	; 0xbe7
    e502:	f3af 8000 	nop.w
    e506:	f89a 2021 	ldrb.w	r2, [sl, #33]	; 0x21
    e50a:	f10a 0121 	add.w	r1, sl, #33	; 0x21
    e50e:	4614      	mov	r4, r2
    e510:	f04f 0b20 	mov.w	fp, #32
    e514:	eb07 1089 	add.w	r0, r7, r9, lsl #6
    e518:	f10a 0a22 	add.w	sl, sl, #34	; 0x22
    e51c:	e003      	b.n	e526 <sym_DQFOGVCNU4NTOMWSL3IYDNCMIXT2LT7SZHL5IHI+0x13e>
    e51e:	46a3      	mov	fp, r4
    e520:	eb00 034b 	add.w	r3, r0, fp, lsl #1
    e524:	785c      	ldrb	r4, [r3, #1]
    e526:	4544      	cmp	r4, r8
    e528:	d002      	beq.n	e530 <sym_DQFOGVCNU4NTOMWSL3IYDNCMIXT2LT7SZHL5IHI+0x148>
    e52a:	2c20      	cmp	r4, #32
    e52c:	d02b      	beq.n	e586 <sym_DQFOGVCNU4NTOMWSL3IYDNCMIXT2LT7SZHL5IHI+0x19e>
    e52e:	e7f6      	b.n	e51e <sym_DQFOGVCNU4NTOMWSL3IYDNCMIXT2LT7SZHL5IHI+0x136>
    e530:	2c20      	cmp	r4, #32
    e532:	d028      	beq.n	e586 <sym_DQFOGVCNU4NTOMWSL3IYDNCMIXT2LT7SZHL5IHI+0x19e>
    e534:	42a2      	cmp	r2, r4
    e536:	d104      	bne.n	e542 <sym_DQFOGVCNU4NTOMWSL3IYDNCMIXT2LT7SZHL5IHI+0x15a>
    e538:	eb00 0042 	add.w	r0, r0, r2, lsl #1
    e53c:	7840      	ldrb	r0, [r0, #1]
    e53e:	7008      	strb	r0, [r1, #0]
    e540:	e005      	b.n	e54e <sym_DQFOGVCNU4NTOMWSL3IYDNCMIXT2LT7SZHL5IHI+0x166>
    e542:	eb00 0144 	add.w	r1, r0, r4, lsl #1
    e546:	eb00 004b 	add.w	r0, r0, fp, lsl #1
    e54a:	7849      	ldrb	r1, [r1, #1]
    e54c:	7041      	strb	r1, [r0, #1]
    e54e:	f1ba 0f00 	cmp.w	sl, #0
    e552:	d011      	beq.n	e578 <sym_DQFOGVCNU4NTOMWSL3IYDNCMIXT2LT7SZHL5IHI+0x190>
    e554:	b125      	cbz	r5, e560 <sym_DQFOGVCNU4NTOMWSL3IYDNCMIXT2LT7SZHL5IHI+0x178>
    e556:	2100      	movs	r1, #0
    e558:	f240 502f 	movw	r0, #1327	; 0x52f
    e55c:	f3af 8000 	nop.w
    e560:	f89a 0000 	ldrb.w	r0, [sl]
    e564:	42a0      	cmp	r0, r4
    e566:	d107      	bne.n	e578 <sym_DQFOGVCNU4NTOMWSL3IYDNCMIXT2LT7SZHL5IHI+0x190>
    e568:	b125      	cbz	r5, e574 <sym_DQFOGVCNU4NTOMWSL3IYDNCMIXT2LT7SZHL5IHI+0x18c>
    e56a:	2100      	movs	r1, #0
    e56c:	f240 5032 	movw	r0, #1330	; 0x532
    e570:	f3af 8000 	nop.w
    e574:	f88a b000 	strb.w	fp, [sl]
    e578:	b15d      	cbz	r5, e592 <sym_DQFOGVCNU4NTOMWSL3IYDNCMIXT2LT7SZHL5IHI+0x1aa>
    e57a:	2100      	movs	r1, #0
    e57c:	f240 5037 	movw	r0, #1335	; 0x537
    e580:	f3af 8000 	nop.w
    e584:	e000      	b.n	e588 <sym_DQFOGVCNU4NTOMWSL3IYDNCMIXT2LT7SZHL5IHI+0x1a0>
    e586:	b125      	cbz	r5, e592 <sym_DQFOGVCNU4NTOMWSL3IYDNCMIXT2LT7SZHL5IHI+0x1aa>
    e588:	2100      	movs	r1, #0
    e58a:	f640 30eb 	movw	r0, #3051	; 0xbeb
    e58e:	f3af 8000 	nop.w
    e592:	481a      	ldr	r0, [pc, #104]	; (e5fc <sym_DQFOGVCNU4NTOMWSL3IYDNCMIXT2LT7SZHL5IHI+0x214>)
    e594:	2800      	cmp	r0, #0
    e596:	bf18      	it	ne
    e598:	f3af 8000 	nopne.w
    e59c:	f3ef 8410 	mrs	r4, PRIMASK
    e5a0:	b672      	cpsid	i
    e5a2:	f896 002b 	ldrb.w	r0, [r6, #43]	; 0x2b
    e5a6:	f88d 0000 	strb.w	r0, [sp]
    e5aa:	f89d 0000 	ldrb.w	r0, [sp]
    e5ae:	b138      	cbz	r0, e5c0 <sym_DQFOGVCNU4NTOMWSL3IYDNCMIXT2LT7SZHL5IHI+0x1d8>
    e5b0:	2d00      	cmp	r5, #0
    e5b2:	bf1c      	itt	ne
    e5b4:	2100      	movne	r1, #0
    e5b6:	f640 30f1 	movwne	r0, #3057	; 0xbf1
    e5ba:	f43f af4c 	beq.w	e456 <sym_DQFOGVCNU4NTOMWSL3IYDNCMIXT2LT7SZHL5IHI+0x6e>
    e5be:	e787      	b.n	e4d0 <sym_DQFOGVCNU4NTOMWSL3IYDNCMIXT2LT7SZHL5IHI+0xe8>
    e5c0:	f886 902e 	strb.w	r9, [r6, #46]	; 0x2e
    e5c4:	2001      	movs	r0, #1
    e5c6:	f886 002b 	strb.w	r0, [r6, #43]	; 0x2b
    e5ca:	b154      	cbz	r4, e5e2 <sym_DQFOGVCNU4NTOMWSL3IYDNCMIXT2LT7SZHL5IHI+0x1fa>
    e5cc:	2d00      	cmp	r5, #0
    e5ce:	bf08      	it	eq
    e5d0:	e8bd 8ff8 	ldmiaeq.w	sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
    e5d4:	2100      	movs	r1, #0
    e5d6:	f640 30fe 	movw	r0, #3070	; 0xbfe
    e5da:	f3af 8000 	nop.w
    e5de:	e8bd 8ff8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
    e5e2:	4805      	ldr	r0, [pc, #20]	; (e5f8 <sym_DQFOGVCNU4NTOMWSL3IYDNCMIXT2LT7SZHL5IHI+0x210>)
    e5e4:	2800      	cmp	r0, #0
    e5e6:	bf18      	it	ne
    e5e8:	f3af 8000 	nopne.w
    e5ec:	b662      	cpsie	i
    e5ee:	e7ed      	b.n	e5cc <sym_DQFOGVCNU4NTOMWSL3IYDNCMIXT2LT7SZHL5IHI+0x1e4>
    e5f0:	20000ef4 	.word	0x20000ef4
	...

0000e600 <sym_RPHL2J7CVNKM6GKLDIFI4NVAPZE2FHTYW4VJSJI>:
    e600:	b570      	push	{r4, r5, r6, lr}
    e602:	460d      	mov	r5, r1
    e604:	4606      	mov	r6, r0
    e606:	f001 f9cf 	bl	f9a8 <sym_4PX37LW4KIUYQZ73JWLPH5GAGIRWAKTV3E6F62Q>
    e60a:	480f      	ldr	r0, [pc, #60]	; (e648 <sym_RPHL2J7CVNKM6GKLDIFI4NVAPZE2FHTYW4VJSJI+0x48>)
    e60c:	f890 202e 	ldrb.w	r2, [r0, #46]	; 0x2e
    e610:	2400      	movs	r4, #0
    e612:	3880      	subs	r0, #128	; 0x80
    e614:	eb00 1082 	add.w	r0, r0, r2, lsl #6
    e618:	f810 1014 	ldrb.w	r1, [r0, r4, lsl #1]
    e61c:	b129      	cbz	r1, e62a <sym_RPHL2J7CVNKM6GKLDIFI4NVAPZE2FHTYW4VJSJI+0x2a>
    e61e:	1c61      	adds	r1, r4, #1
    e620:	b2cc      	uxtb	r4, r1
    e622:	2c20      	cmp	r4, #32
    e624:	d3f8      	bcc.n	e618 <sym_RPHL2J7CVNKM6GKLDIFI4NVAPZE2FHTYW4VJSJI+0x18>
    e626:	2020      	movs	r0, #32
    e628:	bd70      	pop	{r4, r5, r6, pc}
    e62a:	4808      	ldr	r0, [pc, #32]	; (e64c <sym_RPHL2J7CVNKM6GKLDIFI4NVAPZE2FHTYW4VJSJI+0x4c>)
    e62c:	eb04 0144 	add.w	r1, r4, r4, lsl #1
    e630:	f840 6031 	str.w	r6, [r0, r1, lsl #3]
    e634:	eb00 00c1 	add.w	r0, r0, r1, lsl #3
    e638:	4621      	mov	r1, r4
    e63a:	6045      	str	r5, [r0, #4]
    e63c:	2001      	movs	r0, #1
    e63e:	f7fe fefd 	bl	d43c <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xcf8>
    e642:	4620      	mov	r0, r4
    e644:	bd70      	pop	{r4, r5, r6, pc}
    e646:	0000      	.short	0x0000
    e648:	20000ef4 	.word	0x20000ef4
    e64c:	20000b74 	.word	0x20000b74

0000e650 <sym_SFR5TVV24PZRIRC5QGOHL2X436PUHKRY2QWKP5Y>:
    e650:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
    e654:	b083      	sub	sp, #12
    e656:	f000 fb2d 	bl	ecb4 <sym_M4DIQOXJAE3BNHQBIUCZXAABSM24CWUEJOCU7DY>
    e65a:	4605      	mov	r5, r0
    e65c:	f000 fde0 	bl	f220 <sym_OLTN5HGCU3P74AJAQRGNYBUXASUKWF3RI2Q3H5Q>
    e660:	4c67      	ldr	r4, [pc, #412]	; (e800 <sym_SFR5TVV24PZRIRC5QGOHL2X436PUHKRY2QWKP5Y+0x1b0>)
    e662:	68a0      	ldr	r0, [r4, #8]
    e664:	f1b0 3fff 	cmp.w	r0, #4294967295
    e668:	bf1c      	itt	ne
    e66a:	f04f 30ff 	movne.w	r0, #4294967295
    e66e:	60a0      	strne	r0, [r4, #8]
    e670:	7fa0      	ldrb	r0, [r4, #30]
    e672:	f8df b190 	ldr.w	fp, [pc, #400]	; e804 <sym_SFR5TVV24PZRIRC5QGOHL2X436PUHKRY2QWKP5Y+0x1b4>
    e676:	b9a8      	cbnz	r0, e6a4 <sym_SFR5TVV24PZRIRC5QGOHL2X436PUHKRY2QWKP5Y+0x54>
    e678:	e9d4 0103 	ldrd	r0, r1, [r4, #12]
    e67c:	1a08      	subs	r0, r1, r0
    e67e:	0200      	lsls	r0, r0, #8
    e680:	17c1      	asrs	r1, r0, #31
    e682:	eb00 6011 	add.w	r0, r0, r1, lsr #24
    e686:	1200      	asrs	r0, r0, #8
    e688:	f44f 710c 	mov.w	r1, #560	; 0x230
    e68c:	f009 fbd8 	bl	17e40 <sym_XEJLNUQGS5P4R5IXDJFF6NE6C2FZWRZYDQOGMPI>
    e690:	6921      	ldr	r1, [r4, #16]
    e692:	4408      	add	r0, r1
    e694:	1a28      	subs	r0, r5, r0
    e696:	0200      	lsls	r0, r0, #8
    e698:	17c1      	asrs	r1, r0, #31
    e69a:	eb00 6011 	add.w	r0, r0, r1, lsr #24
    e69e:	1200      	asrs	r0, r0, #8
    e6a0:	0fc0      	lsrs	r0, r0, #31
    e6a2:	d013      	beq.n	e6cc <sym_SFR5TVV24PZRIRC5QGOHL2X436PUHKRY2QWKP5Y+0x7c>
    e6a4:	7e60      	ldrb	r0, [r4, #25]
    e6a6:	b328      	cbz	r0, e6f4 <sym_SFR5TVV24PZRIRC5QGOHL2X436PUHKRY2QWKP5Y+0xa4>
    e6a8:	f894 0029 	ldrb.w	r0, [r4, #41]	; 0x29
    e6ac:	f88d 0000 	strb.w	r0, [sp]
    e6b0:	f89d 0000 	ldrb.w	r0, [sp]
    e6b4:	b1f0      	cbz	r0, e6f4 <sym_SFR5TVV24PZRIRC5QGOHL2X436PUHKRY2QWKP5Y+0xa4>
    e6b6:	f000 fc09 	bl	eecc <sym_QUBGY7RMPG7R5F6DVNURH4AVGDAWMK46YXU4DRA>
    e6ba:	bf00      	nop
    e6bc:	f894 002a 	ldrb.w	r0, [r4, #42]	; 0x2a
    e6c0:	b1f0      	cbz	r0, e700 <sym_SFR5TVV24PZRIRC5QGOHL2X436PUHKRY2QWKP5Y+0xb0>
    e6c2:	f240 4147 	movw	r1, #1095	; 0x447
    e6c6:	2070      	movs	r0, #112	; 0x70
    e6c8:	f001 f9e4 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    e6cc:	f894 002f 	ldrb.w	r0, [r4, #47]	; 0x2f
    e6d0:	f894 102f 	ldrb.w	r1, [r4, #47]	; 0x2f
    e6d4:	eb00 0040 	add.w	r0, r0, r0, lsl #1
    e6d8:	eb0b 00c0 	add.w	r0, fp, r0, lsl #3
    e6dc:	6840      	ldr	r0, [r0, #4]
    e6de:	eb01 0141 	add.w	r1, r1, r1, lsl #1
    e6e2:	f85b 2031 	ldr.w	r2, [fp, r1, lsl #3]
    e6e6:	2108      	movs	r1, #8
    e6e8:	4790      	blx	r2
    e6ea:	f44f 6186 	mov.w	r1, #1072	; 0x430
    e6ee:	2070      	movs	r0, #112	; 0x70
    e6f0:	f001 f9d0 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    e6f4:	1ce8      	adds	r0, r5, #3
    e6f6:	f020 407f 	bic.w	r0, r0, #4278190080	; 0xff000000
    e6fa:	f000 fae1 	bl	ecc0 <sym_2ZDZA75WOMRNSQ6XL7IZWAQKYFFSRJOGBGKPTIQ>
    e6fe:	e7dd      	b.n	e6bc <sym_SFR5TVV24PZRIRC5QGOHL2X436PUHKRY2QWKP5Y+0x6c>
    e700:	f04f 0a01 	mov.w	sl, #1
    e704:	f884 a02a 	strb.w	sl, [r4, #42]	; 0x2a
    e708:	f894 002f 	ldrb.w	r0, [r4, #47]	; 0x2f
    e70c:	2820      	cmp	r0, #32
    e70e:	d024      	beq.n	e75a <sym_SFR5TVV24PZRIRC5QGOHL2X436PUHKRY2QWKP5Y+0x10a>
    e710:	f894 802f 	ldrb.w	r8, [r4, #47]	; 0x2f
    e714:	2020      	movs	r0, #32
    e716:	f884 002f 	strb.w	r0, [r4, #47]	; 0x2f
    e71a:	f884 0030 	strb.w	r0, [r4, #48]	; 0x30
    e71e:	2600      	movs	r6, #0
    e720:	f884 6028 	strb.w	r6, [r4, #40]	; 0x28
    e724:	f884 6029 	strb.w	r6, [r4, #41]	; 0x29
    e728:	4837      	ldr	r0, [pc, #220]	; (e808 <sym_SFR5TVV24PZRIRC5QGOHL2X436PUHKRY2QWKP5Y+0x1b8>)
    e72a:	6026      	str	r6, [r4, #0]
    e72c:	7800      	ldrb	r0, [r0, #0]
    e72e:	2802      	cmp	r0, #2
    e730:	bf16      	itet	ne
    e732:	2803      	cmpne	r0, #3
    e734:	2001      	moveq	r0, #1
    e736:	2000      	movne	r0, #0
    e738:	7720      	strb	r0, [r4, #28]
    e73a:	f894 702e 	ldrb.w	r7, [r4, #46]	; 0x2e
    e73e:	eb04 0987 	add.w	r9, r4, r7, lsl #2
    e742:	f899 0020 	ldrb.w	r0, [r9, #32]
    e746:	2820      	cmp	r0, #32
    e748:	d031      	beq.n	e7ae <sym_SFR5TVV24PZRIRC5QGOHL2X436PUHKRY2QWKP5Y+0x15e>
    e74a:	eb00 0040 	add.w	r0, r0, r0, lsl #1
    e74e:	eb0b 00c0 	add.w	r0, fp, r0, lsl #3
    e752:	7d81      	ldrb	r1, [r0, #22]
    e754:	2901      	cmp	r1, #1
    e756:	d005      	beq.n	e764 <sym_SFR5TVV24PZRIRC5QGOHL2X436PUHKRY2QWKP5Y+0x114>
    e758:	e029      	b.n	e7ae <sym_SFR5TVV24PZRIRC5QGOHL2X436PUHKRY2QWKP5Y+0x15e>
    e75a:	f240 414a 	movw	r1, #1098	; 0x44a
    e75e:	2070      	movs	r0, #112	; 0x70
    e760:	f001 f998 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    e764:	46ab      	mov	fp, r5
    e766:	f100 0508 	add.w	r5, r0, #8
    e76a:	8a40      	ldrh	r0, [r0, #18]
    e76c:	aa01      	add	r2, sp, #4
    e76e:	4669      	mov	r1, sp
    e770:	f000 f94a 	bl	ea08 <sym_AOU55ZK756JLPLCLZ5TZSSVKOAWWFUNQZATBXUI>
    e774:	f894 002f 	ldrb.w	r0, [r4, #47]	; 0x2f
    e778:	2820      	cmp	r0, #32
    e77a:	d004      	beq.n	e786 <sym_SFR5TVV24PZRIRC5QGOHL2X436PUHKRY2QWKP5Y+0x136>
    e77c:	6920      	ldr	r0, [r4, #16]
    e77e:	1d40      	adds	r0, r0, #5
    e780:	f020 407f 	bic.w	r0, r0, #4278190080	; 0xff000000
    e784:	e00b      	b.n	e79e <sym_SFR5TVV24PZRIRC5QGOHL2X436PUHKRY2QWKP5Y+0x14e>
    e786:	8968      	ldrh	r0, [r5, #10]
    e788:	f10b 0b09 	add.w	fp, fp, #9
    e78c:	b128      	cbz	r0, e79a <sym_SFR5TVV24PZRIRC5QGOHL2X436PUHKRY2QWKP5Y+0x14a>
    e78e:	f001 f91d 	bl	f9cc <sym_LIY23QT3GHIV7NCGJ6ZW6LB2ZUSI56CIFCL6HUY>
    e792:	2800      	cmp	r0, #0
    e794:	bf08      	it	eq
    e796:	f10b 0b32 	addeq.w	fp, fp, #50	; 0x32
    e79a:	f02b 407f 	bic.w	r0, fp, #4278190080	; 0xff000000
    e79e:	e9d5 2100 	ldrd	r2, r1, [r5]
    e7a2:	1a89      	subs	r1, r1, r2
    e7a4:	6028      	str	r0, [r5, #0]
    e7a6:	4408      	add	r0, r1
    e7a8:	f020 407f 	bic.w	r0, r0, #4278190080	; 0xff000000
    e7ac:	6068      	str	r0, [r5, #4]
    e7ae:	4639      	mov	r1, r7
    e7b0:	2001      	movs	r0, #1
    e7b2:	f7fe fe73 	bl	d49c <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xd58>
    e7b6:	2800      	cmp	r0, #0
    e7b8:	d0f9      	beq.n	e7ae <sym_SFR5TVV24PZRIRC5QGOHL2X436PUHKRY2QWKP5Y+0x15e>
    e7ba:	4814      	ldr	r0, [pc, #80]	; (e80c <sym_SFR5TVV24PZRIRC5QGOHL2X436PUHKRY2QWKP5Y+0x1bc>)
    e7bc:	eb00 1087 	add.w	r0, r0, r7, lsl #6
    e7c0:	f810 0018 	ldrb.w	r0, [r0, r8, lsl #1]
    e7c4:	2802      	cmp	r0, #2
    e7c6:	d104      	bne.n	e7d2 <sym_SFR5TVV24PZRIRC5QGOHL2X436PUHKRY2QWKP5Y+0x182>
    e7c8:	463a      	mov	r2, r7
    e7ca:	4641      	mov	r1, r8
    e7cc:	2006      	movs	r0, #6
    e7ce:	f7fe fe35 	bl	d43c <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ+0xcf8>
    e7d2:	f884 a02b 	strb.w	sl, [r4, #43]	; 0x2b
    e7d6:	f899 0021 	ldrb.w	r0, [r9, #33]	; 0x21
    e7da:	2820      	cmp	r0, #32
    e7dc:	d003      	beq.n	e7e6 <sym_SFR5TVV24PZRIRC5QGOHL2X436PUHKRY2QWKP5Y+0x196>
    e7de:	480c      	ldr	r0, [pc, #48]	; (e810 <sym_SFR5TVV24PZRIRC5QGOHL2X436PUHKRY2QWKP5Y+0x1c0>)
    e7e0:	7840      	ldrb	r0, [r0, #1]
    e7e2:	f001 fa27 	bl	fc34 <sym_GURZ3AH6X65RGSKYMYNWZVP6HM56LA5MRAQWT6Q>
    e7e6:	7f20      	ldrb	r0, [r4, #28]
    e7e8:	2800      	cmp	r0, #0
    e7ea:	bf04      	itt	eq
    e7ec:	b003      	addeq	sp, #12
    e7ee:	e8bd 8ff0 	ldmiaeq.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
    e7f2:	f000 fd5f 	bl	f2b4 <sym_CPXNCG66C5WXYS4GOKTR2JEIS45ZVRZUCBYX34I>
    e7f6:	7726      	strb	r6, [r4, #28]
    e7f8:	7766      	strb	r6, [r4, #29]
    e7fa:	b003      	add	sp, #12
    e7fc:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
    e800:	20000ef4 	.word	0x20000ef4
    e804:	20000b74 	.word	0x20000b74
    e808:	20000016 	.word	0x20000016
    e80c:	20000e74 	.word	0x20000e74
    e810:	20000014 	.word	0x20000014

0000e814 <sym_URFU24FFGR2HYB6CCPIPKPNZNMTWHKDYOATUJNY>:
    e814:	b510      	push	{r4, lr}
    e816:	4c32      	ldr	r4, [pc, #200]	; (e8e0 <sym_URFU24FFGR2HYB6CCPIPKPNZNMTWHKDYOATUJNY+0xcc>)
    e818:	b082      	sub	sp, #8
    e81a:	f894 102f 	ldrb.w	r1, [r4, #47]	; 0x2f
    e81e:	2920      	cmp	r1, #32
    e820:	d008      	beq.n	e834 <sym_URFU24FFGR2HYB6CCPIPKPNZNMTWHKDYOATUJNY+0x20>
    e822:	68a1      	ldr	r1, [r4, #8]
    e824:	f1b1 3fff 	cmp.w	r1, #4294967295
    e828:	d009      	beq.n	e83e <sym_URFU24FFGR2HYB6CCPIPKPNZNMTWHKDYOATUJNY+0x2a>
    e82a:	f640 21e9 	movw	r1, #2793	; 0xae9
    e82e:	2070      	movs	r0, #112	; 0x70
    e830:	f001 f930 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    e834:	f640 21e8 	movw	r1, #2792	; 0xae8
    e838:	2070      	movs	r0, #112	; 0x70
    e83a:	f001 f92b 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    e83e:	6862      	ldr	r2, [r4, #4]
    e840:	4601      	mov	r1, r0
    e842:	4b28      	ldr	r3, [pc, #160]	; (e8e4 <sym_URFU24FFGR2HYB6CCPIPKPNZNMTWHKDYOATUJNY+0xd0>)
    e844:	1850      	adds	r0, r2, r1
    e846:	429a      	cmp	r2, r3
    e848:	d904      	bls.n	e854 <sym_URFU24FFGR2HYB6CCPIPKPNZNMTWHKDYOATUJNY+0x40>
    e84a:	f240 6109 	movw	r1, #1545	; 0x609
    e84e:	2070      	movs	r0, #112	; 0x70
    e850:	f001 f920 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    e854:	4a24      	ldr	r2, [pc, #144]	; (e8e8 <sym_URFU24FFGR2HYB6CCPIPKPNZNMTWHKDYOATUJNY+0xd4>)
    e856:	4291      	cmp	r1, r2
    e858:	dd04      	ble.n	e864 <sym_URFU24FFGR2HYB6CCPIPKPNZNMTWHKDYOATUJNY+0x50>
    e85a:	f240 610a 	movw	r1, #1546	; 0x60a
    e85e:	2070      	movs	r0, #112	; 0x70
    e860:	f001 f918 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    e864:	4a21      	ldr	r2, [pc, #132]	; (e8ec <sym_URFU24FFGR2HYB6CCPIPKPNZNMTWHKDYOATUJNY+0xd8>)
    e866:	4291      	cmp	r1, r2
    e868:	da04      	bge.n	e874 <sym_URFU24FFGR2HYB6CCPIPKPNZNMTWHKDYOATUJNY+0x60>
    e86a:	f240 610b 	movw	r1, #1547	; 0x60b
    e86e:	2070      	movs	r0, #112	; 0x70
    e870:	f001 f910 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    e874:	491e      	ldr	r1, [pc, #120]	; (e8f0 <sym_URFU24FFGR2HYB6CCPIPKPNZNMTWHKDYOATUJNY+0xdc>)
    e876:	4281      	cmp	r1, r0
    e878:	bfdc      	itt	le
    e87a:	f500 00f7 	addle.w	r0, r0, #8093696	; 0x7b8000
    e87e:	f1a0 50f8 	suble.w	r0, r0, #520093696	; 0x1f000000
    e882:	dd05      	ble.n	e890 <sym_URFU24FFGR2HYB6CCPIPKPNZNMTWHKDYOATUJNY+0x7c>
    e884:	2800      	cmp	r0, #0
    e886:	bfbc      	itt	lt
    e888:	f5a0 00f7 	sublt.w	r0, r0, #8093696	; 0x7b8000
    e88c:	f100 50f8 	addlt.w	r0, r0, #520093696	; 0x1f000000
    e890:	aa01      	add	r2, sp, #4
    e892:	4669      	mov	r1, sp
    e894:	f000 f8b8 	bl	ea08 <sym_AOU55ZK756JLPLCLZ5TZSSVKOAWWFUNQZATBXUI>
    e898:	f89d 0004 	ldrb.w	r0, [sp, #4]
    e89c:	280f      	cmp	r0, #15
    e89e:	bf8c      	ite	hi
    e8a0:	2001      	movhi	r0, #1
    e8a2:	2000      	movls	r0, #0
    e8a4:	9900      	ldr	r1, [sp, #0]
    e8a6:	4408      	add	r0, r1
    e8a8:	f020 417f 	bic.w	r1, r0, #4278190080	; 0xff000000
    e8ac:	60a1      	str	r1, [r4, #8]
    e8ae:	f894 0029 	ldrb.w	r0, [r4, #41]	; 0x29
    e8b2:	f88d 0000 	strb.w	r0, [sp]
    e8b6:	f89d 0000 	ldrb.w	r0, [sp]
    e8ba:	2800      	cmp	r0, #0
    e8bc:	bf04      	itt	eq
    e8be:	b002      	addeq	sp, #8
    e8c0:	bd10      	popeq	{r4, pc}
    e8c2:	2301      	movs	r3, #1
    e8c4:	2203      	movs	r2, #3
    e8c6:	2005      	movs	r0, #5
    e8c8:	f000 fb7a 	bl	efc0 <sym_X2K67YH6UCW6TFK6NTLPZZFGWYHTTPZYK5PXHNQ>
    e8cc:	2800      	cmp	r0, #0
    e8ce:	bf1c      	itt	ne
    e8d0:	b002      	addne	sp, #8
    e8d2:	bd10      	popne	{r4, pc}
    e8d4:	f640 21f1 	movw	r1, #2801	; 0xaf1
    e8d8:	2070      	movs	r0, #112	; 0x70
    e8da:	f001 f8db 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    e8de:	0000      	.short	0x0000
    e8e0:	20000ef4 	.word	0x20000ef4
    e8e4:	1e847fff 	.word	0x1e847fff
    e8e8:	07a12000 	.word	0x07a12000
    e8ec:	f85ee000 	.word	0xf85ee000
    e8f0:	1e848000 	.word	0x1e848000

0000e8f4 <sym_ZC6NJBPUISWILQK6OTOBMJVVUT63JRIDGH5WNCY>:
    e8f4:	b570      	push	{r4, r5, r6, lr}
    e8f6:	4c1e      	ldr	r4, [pc, #120]	; (e970 <sym_ZC6NJBPUISWILQK6OTOBMJVVUT63JRIDGH5WNCY+0x7c>)
    e8f8:	2120      	movs	r1, #32
    e8fa:	f884 1020 	strb.w	r1, [r4, #32]
    e8fe:	f884 1021 	strb.w	r1, [r4, #33]	; 0x21
    e902:	f884 1022 	strb.w	r1, [r4, #34]	; 0x22
    e906:	2000      	movs	r0, #0
    e908:	f884 0023 	strb.w	r0, [r4, #35]	; 0x23
    e90c:	f884 002e 	strb.w	r0, [r4, #46]	; 0x2e
    e910:	f884 102f 	strb.w	r1, [r4, #47]	; 0x2f
    e914:	1e42      	subs	r2, r0, #1
    e916:	60a2      	str	r2, [r4, #8]
    e918:	6020      	str	r0, [r4, #0]
    e91a:	77a0      	strb	r0, [r4, #30]
    e91c:	f884 0028 	strb.w	r0, [r4, #40]	; 0x28
    e920:	f884 0029 	strb.w	r0, [r4, #41]	; 0x29
    e924:	7720      	strb	r0, [r4, #28]
    e926:	7760      	strb	r0, [r4, #29]
    e928:	f884 1030 	strb.w	r1, [r4, #48]	; 0x30
    e92c:	4911      	ldr	r1, [pc, #68]	; (e974 <sym_ZC6NJBPUISWILQK6OTOBMJVVUT63JRIDGH5WNCY+0x80>)
    e92e:	f884 002c 	strb.w	r0, [r4, #44]	; 0x2c
    e932:	f884 002d 	strb.w	r0, [r4, #45]	; 0x2d
    e936:	7008      	strb	r0, [r1, #0]
    e938:	7048      	strb	r0, [r1, #1]
    e93a:	8048      	strh	r0, [r1, #2]
    e93c:	f1a4 0182 	sub.w	r1, r4, #130	; 0x82
    e940:	2210      	movs	r2, #16
    e942:	7088      	strb	r0, [r1, #2]
    e944:	f801 0f04 	strb.w	r0, [r1, #4]!
    e948:	1e52      	subs	r2, r2, #1
    e94a:	d1fa      	bne.n	e942 <sym_ZC6NJBPUISWILQK6OTOBMJVVUT63JRIDGH5WNCY+0x4e>
    e94c:	4d0a      	ldr	r5, [pc, #40]	; (e978 <sym_ZC6NJBPUISWILQK6OTOBMJVVUT63JRIDGH5WNCY+0x84>)
    e94e:	2601      	movs	r6, #1
    e950:	f884 602a 	strb.w	r6, [r4, #42]	; 0x2a
    e954:	20ff      	movs	r0, #255	; 0xff
    e956:	7028      	strb	r0, [r5, #0]
    e958:	4808      	ldr	r0, [pc, #32]	; (e97c <sym_ZC6NJBPUISWILQK6OTOBMJVVUT63JRIDGH5WNCY+0x88>)
    e95a:	f001 f94d 	bl	fbf8 <sym_W7ROFHNOSDKPIRUKDGIZZ5YR3MC3DAM2YLJOUIA>
    e95e:	7068      	strb	r0, [r5, #1]
    e960:	f001 f9a8 	bl	fcb4 <sym_4WL3TG4Q7RCTFEMPQ2CQTOL4PAKUULDPJUM5DTY>
    e964:	60a8      	str	r0, [r5, #8]
    e966:	f000 fced 	bl	f344 <sym_3SK52U5TD4ACVVYKWS6UI6ZPWKSLV6BW5IGCPJI>
    e96a:	f884 6031 	strb.w	r6, [r4, #49]	; 0x31
    e96e:	bd70      	pop	{r4, r5, r6, pc}
    e970:	20000ef4 	.word	0x20000ef4
    e974:	20000016 	.word	0x20000016
    e978:	20000014 	.word	0x20000014
    e97c:	0000d2f9 	.word	0x0000d2f9

0000e980 <sym_ORUJDMUJV7RZIFXM3X5KLRROPKJ7VPLJ65JMLRQ>:
    e980:	b570      	push	{r4, r5, r6, lr}
    e982:	4604      	mov	r4, r0
    e984:	4615      	mov	r5, r2
    e986:	4608      	mov	r0, r1
    e988:	f009 fa2d 	bl	17de6 <sym_XYQTP7YX2XFVREW5KFDH2NNPGRIPEHKIO2RURYI>
    e98c:	4a0f      	ldr	r2, [pc, #60]	; (e9cc <sym_ORUJDMUJV7RZIFXM3X5KLRROPKJ7VPLJ65JMLRQ+0x4c>)
    e98e:	1b01      	subs	r1, r0, r4
    e990:	1c53      	adds	r3, r2, #1
    e992:	ebb1 0f93 	cmp.w	r1, r3, lsr #2
    e996:	bf24      	itt	cs
    e998:	eba4 0c00 	subcs.w	ip, r4, r0
    e99c:	ebbc 0f93 	cmpcs.w	ip, r3, lsr #2
    e9a0:	d30b      	bcc.n	e9ba <sym_ORUJDMUJV7RZIFXM3X5KLRROPKJ7VPLJ65JMLRQ+0x3a>
    e9a2:	428a      	cmp	r2, r1
    e9a4:	d203      	bcs.n	e9ae <sym_ORUJDMUJV7RZIFXM3X5KLRROPKJ7VPLJ65JMLRQ+0x2e>
    e9a6:	1b11      	subs	r1, r2, r4
    e9a8:	4408      	add	r0, r1
    e9aa:	1c41      	adds	r1, r0, #1
    e9ac:	e005      	b.n	e9ba <sym_ORUJDMUJV7RZIFXM3X5KLRROPKJ7VPLJ65JMLRQ+0x3a>
    e9ae:	4562      	cmp	r2, ip
    e9b0:	d207      	bcs.n	e9c2 <sym_ORUJDMUJV7RZIFXM3X5KLRROPKJ7VPLJ65JMLRQ+0x42>
    e9b2:	1a10      	subs	r0, r2, r0
    e9b4:	4420      	add	r0, r4
    e9b6:	1c40      	adds	r0, r0, #1
    e9b8:	4241      	negs	r1, r0
    e9ba:	f101 000f 	add.w	r0, r1, #15
    e9be:	1a28      	subs	r0, r5, r0
    e9c0:	bd70      	pop	{r4, r5, r6, pc}
    e9c2:	f640 310c 	movw	r1, #2828	; 0xb0c
    e9c6:	2070      	movs	r0, #112	; 0x70
    e9c8:	f001 f864 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    e9cc:	1e847fff 	.word	0x1e847fff

0000e9d0 <sym_PITJNQC6YSCEFAH23N5QRORZDKCSKOAUGBUS6GA>:
    e9d0:	0b41      	lsrs	r1, r0, #13
    e9d2:	f248 6237 	movw	r2, #34359	; 0x8637
    e9d6:	4351      	muls	r1, r2
    e9d8:	0c0a      	lsrs	r2, r1, #16
    e9da:	4b09      	ldr	r3, [pc, #36]	; (ea00 <sym_PITJNQC6YSCEFAH23N5QRORZDKCSKOAUGBUS6GA+0x30>)
    e9dc:	0251      	lsls	r1, r2, #9
    e9de:	fb02 0203 	mla	r2, r2, r3, r0
    e9e2:	4808      	ldr	r0, [pc, #32]	; (ea04 <sym_PITJNQC6YSCEFAH23N5QRORZDKCSKOAUGBUS6GA+0x34>)
    e9e4:	4350      	muls	r0, r2
    e9e6:	f500 3086 	add.w	r0, r0, #68608	; 0x10c00
    e9ea:	306e      	adds	r0, #110	; 0x6e
    e9ec:	0d40      	lsrs	r0, r0, #21
    e9ee:	425b      	negs	r3, r3
    e9f0:	fb10 f303 	smulbb	r3, r0, r3
    e9f4:	ebb2 2f53 	cmp.w	r2, r3, lsr #9
    e9f8:	bf88      	it	hi
    e9fa:	1c49      	addhi	r1, r1, #1
    e9fc:	4408      	add	r0, r1
    e9fe:	4770      	bx	lr
    ea00:	ffffc2f7 	.word	0xffffc2f7
    ea04:	00010c6f 	.word	0x00010c6f

0000ea08 <sym_AOU55ZK756JLPLCLZ5TZSSVKOAWWFUNQZATBXUI>:
    ea08:	0b43      	lsrs	r3, r0, #13
    ea0a:	f248 6c37 	movw	ip, #34359	; 0x8637
    ea0e:	fb03 f30c 	mul.w	r3, r3, ip
    ea12:	b430      	push	{r4, r5}
    ea14:	0c1b      	lsrs	r3, r3, #16
    ea16:	f8df c044 	ldr.w	ip, [pc, #68]	; ea5c <sym_AOU55ZK756JLPLCLZ5TZSSVKOAWWFUNQZATBXUI+0x54>
    ea1a:	025c      	lsls	r4, r3, #9
    ea1c:	fb03 030c 	mla	r3, r3, ip, r0
    ea20:	480f      	ldr	r0, [pc, #60]	; (ea60 <sym_AOU55ZK756JLPLCLZ5TZSSVKOAWWFUNQZATBXUI+0x58>)
    ea22:	4358      	muls	r0, r3
    ea24:	ea4f 5c50 	mov.w	ip, r0, lsr #21
    ea28:	eb04 000c 	add.w	r0, r4, ip
    ea2c:	f643 5409 	movw	r4, #15625	; 0x3d09
    ea30:	fb1c f404 	smulbb	r4, ip, r4
    ea34:	f504 7c80 	add.w	ip, r4, #256	; 0x100
    ea38:	f643 5508 	movw	r5, #15624	; 0x3d08
    ea3c:	eba3 2c5c 	sub.w	ip, r3, ip, lsr #9
    ea40:	442c      	add	r4, r5
    ea42:	f00c 0cff 	and.w	ip, ip, #255	; 0xff
    ea46:	ebb3 2f54 	cmp.w	r3, r4, lsr #9
    ea4a:	bf84      	itt	hi
    ea4c:	f04f 0c00 	movhi.w	ip, #0
    ea50:	1c40      	addhi	r0, r0, #1
    ea52:	6008      	str	r0, [r1, #0]
    ea54:	f882 c000 	strb.w	ip, [r2]
    ea58:	bc30      	pop	{r4, r5}
    ea5a:	4770      	bx	lr
    ea5c:	ffffc2f7 	.word	0xffffc2f7
    ea60:	00010c6f 	.word	0x00010c6f

0000ea64 <MPSL_IRQ_RTC0_Handler>:
    ea64:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
    ea68:	4c38      	ldr	r4, [pc, #224]	; (eb4c <MPSL_IRQ_RTC0_Handler+0xe8>)
    ea6a:	f8d4 0304 	ldr.w	r0, [r4, #772]	; 0x304
    ea6e:	f8df 80e0 	ldr.w	r8, [pc, #224]	; eb50 <MPSL_IRQ_RTC0_Handler+0xec>
    ea72:	f410 3f80 	tst.w	r0, #65536	; 0x10000
    ea76:	f44f 6600 	mov.w	r6, #2048	; 0x800
    ea7a:	f04f 27e0 	mov.w	r7, #3758153728	; 0xe000e000
    ea7e:	f04f 0500 	mov.w	r5, #0
    ea82:	bf1c      	itt	ne
    ea84:	f8d4 0140 	ldrne.w	r0, [r4, #320]	; 0x140
    ea88:	2800      	cmpne	r0, #0
    ea8a:	d017      	beq.n	eabc <MPSL_IRQ_RTC0_Handler+0x58>
    ea8c:	f8c4 5140 	str.w	r5, [r4, #320]	; 0x140
    ea90:	f8c7 6280 	str.w	r6, [r7, #640]	; 0x280
    ea94:	482f      	ldr	r0, [pc, #188]	; (eb54 <MPSL_IRQ_RTC0_Handler+0xf0>)
    ea96:	6800      	ldr	r0, [r0, #0]
    ea98:	f8d8 1000 	ldr.w	r1, [r8]
    ea9c:	eba0 0001 	sub.w	r0, r0, r1
    eaa0:	f020 407f 	bic.w	r0, r0, #4278190080	; 0xff000000
    eaa4:	2802      	cmp	r0, #2
    eaa6:	d302      	bcc.n	eaae <MPSL_IRQ_RTC0_Handler+0x4a>
    eaa8:	f5b0 0f80 	cmp.w	r0, #4194304	; 0x400000
    eaac:	d306      	bcc.n	eabc <MPSL_IRQ_RTC0_Handler+0x58>
    eaae:	f44f 3080 	mov.w	r0, #65536	; 0x10000
    eab2:	f8c4 0308 	str.w	r0, [r4, #776]	; 0x308
    eab6:	2004      	movs	r0, #4
    eab8:	f7fe ff28 	bl	d90c <sym_J5F7QGRFPKMLWRNSXZXS5YI7BM4DUTISCOASCOA>
    eabc:	f8d4 0304 	ldr.w	r0, [r4, #772]	; 0x304
    eac0:	f410 3f00 	tst.w	r0, #131072	; 0x20000
    eac4:	bf1c      	itt	ne
    eac6:	f8d4 0144 	ldrne.w	r0, [r4, #324]	; 0x144
    eaca:	2800      	cmpne	r0, #0
    eacc:	d017      	beq.n	eafe <MPSL_IRQ_RTC0_Handler+0x9a>
    eace:	f8c4 5144 	str.w	r5, [r4, #324]	; 0x144
    ead2:	f8c7 6280 	str.w	r6, [r7, #640]	; 0x280
    ead6:	4820      	ldr	r0, [pc, #128]	; (eb58 <MPSL_IRQ_RTC0_Handler+0xf4>)
    ead8:	6800      	ldr	r0, [r0, #0]
    eada:	f8d8 1000 	ldr.w	r1, [r8]
    eade:	eba0 0001 	sub.w	r0, r0, r1
    eae2:	f020 407f 	bic.w	r0, r0, #4278190080	; 0xff000000
    eae6:	2802      	cmp	r0, #2
    eae8:	d302      	bcc.n	eaf0 <MPSL_IRQ_RTC0_Handler+0x8c>
    eaea:	f5b0 0f80 	cmp.w	r0, #4194304	; 0x400000
    eaee:	d306      	bcc.n	eafe <MPSL_IRQ_RTC0_Handler+0x9a>
    eaf0:	f44f 3000 	mov.w	r0, #131072	; 0x20000
    eaf4:	f8c4 0308 	str.w	r0, [r4, #776]	; 0x308
    eaf8:	2005      	movs	r0, #5
    eafa:	f7fe ff07 	bl	d90c <sym_J5F7QGRFPKMLWRNSXZXS5YI7BM4DUTISCOASCOA>
    eafe:	f8d4 0304 	ldr.w	r0, [r4, #772]	; 0x304
    eb02:	f410 2f80 	tst.w	r0, #262144	; 0x40000
    eb06:	bf1a      	itte	ne
    eb08:	f8d4 0148 	ldrne.w	r0, [r4, #328]	; 0x148
    eb0c:	2800      	cmpne	r0, #0
    eb0e:	e8bd 81f0 	ldmiaeq.w	sp!, {r4, r5, r6, r7, r8, pc}
    eb12:	f8c4 5148 	str.w	r5, [r4, #328]	; 0x148
    eb16:	f8c7 6280 	str.w	r6, [r7, #640]	; 0x280
    eb1a:	4810      	ldr	r0, [pc, #64]	; (eb5c <MPSL_IRQ_RTC0_Handler+0xf8>)
    eb1c:	6800      	ldr	r0, [r0, #0]
    eb1e:	f8d8 1000 	ldr.w	r1, [r8]
    eb22:	eba0 0001 	sub.w	r0, r0, r1
    eb26:	f020 407f 	bic.w	r0, r0, #4278190080	; 0xff000000
    eb2a:	2802      	cmp	r0, #2
    eb2c:	d304      	bcc.n	eb38 <MPSL_IRQ_RTC0_Handler+0xd4>
    eb2e:	f5b0 0f80 	cmp.w	r0, #4194304	; 0x400000
    eb32:	bf38      	it	cc
    eb34:	e8bd 81f0 	ldmiacc.w	sp!, {r4, r5, r6, r7, r8, pc}
    eb38:	f44f 2080 	mov.w	r0, #262144	; 0x40000
    eb3c:	f8c4 0308 	str.w	r0, [r4, #776]	; 0x308
    eb40:	e8bd 41f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, lr}
    eb44:	2006      	movs	r0, #6
    eb46:	f7fe bee1 	b.w	d90c <sym_J5F7QGRFPKMLWRNSXZXS5YI7BM4DUTISCOASCOA>
    eb4a:	0000      	.short	0x0000
    eb4c:	4000b000 	.word	0x4000b000
    eb50:	4000b504 	.word	0x4000b504
    eb54:	4000b540 	.word	0x4000b540
    eb58:	4000b544 	.word	0x4000b544
    eb5c:	4000b548 	.word	0x4000b548

0000eb60 <MPSL_IRQ_TIMER0_Handler>:
    eb60:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
    eb64:	4d3a      	ldr	r5, [pc, #232]	; (ec50 <MPSL_IRQ_TIMER0_Handler+0xf0>)
    eb66:	7828      	ldrb	r0, [r5, #0]
    eb68:	2804      	cmp	r0, #4
    eb6a:	d06c      	beq.n	ec46 <MPSL_IRQ_TIMER0_Handler+0xe6>
    eb6c:	1ce8      	adds	r0, r5, #3
    eb6e:	2201      	movs	r2, #1
    eb70:	7801      	ldrb	r1, [r0, #0]
    eb72:	b159      	cbz	r1, eb8c <MPSL_IRQ_TIMER0_Handler+0x2c>
    eb74:	2901      	cmp	r1, #1
    eb76:	bf08      	it	eq
    eb78:	706a      	strbeq	r2, [r5, #1]
    eb7a:	d002      	beq.n	eb82 <MPSL_IRQ_TIMER0_Handler+0x22>
    eb7c:	7869      	ldrb	r1, [r5, #1]
    eb7e:	2900      	cmp	r1, #0
    eb80:	d05c      	beq.n	ec3c <MPSL_IRQ_TIMER0_Handler+0xdc>
    eb82:	2102      	movs	r1, #2
    eb84:	7001      	strb	r1, [r0, #0]
    eb86:	7840      	ldrb	r0, [r0, #1]
    eb88:	f000 fae2 	bl	f150 <sym_TSYEIN5CZPQE3YK6VECZD5C2M4LMXKKH6O7LNAY>
    eb8c:	4c31      	ldr	r4, [pc, #196]	; (ec54 <MPSL_IRQ_TIMER0_Handler+0xf4>)
    eb8e:	f8d4 0304 	ldr.w	r0, [r4, #772]	; 0x304
    eb92:	f04f 0800 	mov.w	r8, #0
    eb96:	f410 2f00 	tst.w	r0, #524288	; 0x80000
    eb9a:	f44f 7680 	mov.w	r6, #256	; 0x100
    eb9e:	f04f 27e0 	mov.w	r7, #3758153728	; 0xe000e000
    eba2:	bf1c      	itt	ne
    eba4:	f8d4 014c 	ldrne.w	r0, [r4, #332]	; 0x14c
    eba8:	2800      	cmpne	r0, #0
    ebaa:	d008      	beq.n	ebbe <MPSL_IRQ_TIMER0_Handler+0x5e>
    ebac:	f04f 0003 	mov.w	r0, #3
    ebb0:	f000 face 	bl	f150 <sym_TSYEIN5CZPQE3YK6VECZD5C2M4LMXKKH6O7LNAY>
    ebb4:	f8c7 6280 	str.w	r6, [r7, #640]	; 0x280
    ebb8:	2003      	movs	r0, #3
    ebba:	f7fe fea7 	bl	d90c <sym_J5F7QGRFPKMLWRNSXZXS5YI7BM4DUTISCOASCOA>
    ebbe:	f8d4 0304 	ldr.w	r0, [r4, #772]	; 0x304
    ebc2:	f410 2f80 	tst.w	r0, #262144	; 0x40000
    ebc6:	bf1c      	itt	ne
    ebc8:	f8d4 0148 	ldrne.w	r0, [r4, #328]	; 0x148
    ebcc:	2800      	cmpne	r0, #0
    ebce:	d008      	beq.n	ebe2 <MPSL_IRQ_TIMER0_Handler+0x82>
    ebd0:	f04f 0002 	mov.w	r0, #2
    ebd4:	f000 fabc 	bl	f150 <sym_TSYEIN5CZPQE3YK6VECZD5C2M4LMXKKH6O7LNAY>
    ebd8:	f8c7 6280 	str.w	r6, [r7, #640]	; 0x280
    ebdc:	2002      	movs	r0, #2
    ebde:	f7fe fe95 	bl	d90c <sym_J5F7QGRFPKMLWRNSXZXS5YI7BM4DUTISCOASCOA>
    ebe2:	f8d4 0304 	ldr.w	r0, [r4, #772]	; 0x304
    ebe6:	f410 3f00 	tst.w	r0, #131072	; 0x20000
    ebea:	bf1c      	itt	ne
    ebec:	f8d4 0144 	ldrne.w	r0, [r4, #324]	; 0x144
    ebf0:	2800      	cmpne	r0, #0
    ebf2:	d008      	beq.n	ec06 <MPSL_IRQ_TIMER0_Handler+0xa6>
    ebf4:	f04f 0001 	mov.w	r0, #1
    ebf8:	f000 faaa 	bl	f150 <sym_TSYEIN5CZPQE3YK6VECZD5C2M4LMXKKH6O7LNAY>
    ebfc:	f8c7 6280 	str.w	r6, [r7, #640]	; 0x280
    ec00:	2001      	movs	r0, #1
    ec02:	f7fe fe83 	bl	d90c <sym_J5F7QGRFPKMLWRNSXZXS5YI7BM4DUTISCOASCOA>
    ec06:	f8d4 0304 	ldr.w	r0, [r4, #772]	; 0x304
    ec0a:	f410 3f80 	tst.w	r0, #65536	; 0x10000
    ec0e:	bf1a      	itte	ne
    ec10:	f8d4 0140 	ldrne.w	r0, [r4, #320]	; 0x140
    ec14:	2800      	cmpne	r0, #0
    ec16:	e8bd 81f0 	ldmiaeq.w	sp!, {r4, r5, r6, r7, r8, pc}
    ec1a:	f04f 0000 	mov.w	r0, #0
    ec1e:	f000 fa97 	bl	f150 <sym_TSYEIN5CZPQE3YK6VECZD5C2M4LMXKKH6O7LNAY>
    ec22:	f8c7 6280 	str.w	r6, [r7, #640]	; 0x280
    ec26:	2004      	movs	r0, #4
    ec28:	7028      	strb	r0, [r5, #0]
    ec2a:	f8c5 8008 	str.w	r8, [r5, #8]
    ec2e:	f8c4 8200 	str.w	r8, [r4, #512]	; 0x200
    ec32:	e8bd 41f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, lr}
    ec36:	2000      	movs	r0, #0
    ec38:	f7fe be68 	b.w	d90c <sym_J5F7QGRFPKMLWRNSXZXS5YI7BM4DUTISCOASCOA>
    ec3c:	f44f 715a 	mov.w	r1, #872	; 0x368
    ec40:	206c      	movs	r0, #108	; 0x6c
    ec42:	f000 ff27 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    ec46:	e8bd 41f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, lr}
    ec4a:	2007      	movs	r0, #7
    ec4c:	f7fe be5e 	b.w	d90c <sym_J5F7QGRFPKMLWRNSXZXS5YI7BM4DUTISCOASCOA>
    ec50:	20000020 	.word	0x20000020
    ec54:	40008000 	.word	0x40008000
    ec58:	2201      	movs	r2, #1
    ec5a:	0213      	lsls	r3, r2, #8
    ec5c:	f04f 21e0 	mov.w	r1, #3758153728	; 0xe000e000
    ec60:	2000      	movs	r0, #0
    ec62:	f8c1 3180 	str.w	r3, [r1, #384]	; 0x180
    ec66:	f501 71c0 	add.w	r1, r1, #384	; 0x180
    ec6a:	f3bf 8f4f 	dsb	sy
    ec6e:	f3bf 8f6f 	isb	sy
    ec72:	f8c1 3100 	str.w	r3, [r1, #256]	; 0x100
    ec76:	490c      	ldr	r1, [pc, #48]	; (eca8 <MPSL_IRQ_TIMER0_Handler+0x148>)
    ec78:	604a      	str	r2, [r1, #4]
    ec7a:	1e43      	subs	r3, r0, #1
    ec7c:	f8c1 3308 	str.w	r3, [r1, #776]	; 0x308
    ec80:	4b0a      	ldr	r3, [pc, #40]	; (ecac <MPSL_IRQ_TIMER0_Handler+0x14c>)
    ec82:	6018      	str	r0, [r3, #0]
    ec84:	f8c1 0140 	str.w	r0, [r1, #320]	; 0x140
    ec88:	1d1b      	adds	r3, r3, #4
    ec8a:	6018      	str	r0, [r3, #0]
    ec8c:	f8c1 0144 	str.w	r0, [r1, #324]	; 0x144
    ec90:	1d1b      	adds	r3, r3, #4
    ec92:	6018      	str	r0, [r3, #0]
    ec94:	f8c1 0148 	str.w	r0, [r1, #328]	; 0x148
    ec98:	1d1b      	adds	r3, r3, #4
    ec9a:	6018      	str	r0, [r3, #0]
    ec9c:	f8c1 014c 	str.w	r0, [r1, #332]	; 0x14c
    eca0:	610a      	str	r2, [r1, #16]
    eca2:	4903      	ldr	r1, [pc, #12]	; (ecb0 <MPSL_IRQ_TIMER0_Handler+0x150>)
    eca4:	7048      	strb	r0, [r1, #1]
    eca6:	4770      	bx	lr
    eca8:	40008000 	.word	0x40008000
    ecac:	40008540 	.word	0x40008540
    ecb0:	20000020 	.word	0x20000020

0000ecb4 <sym_M4DIQOXJAE3BNHQBIUCZXAABSM24CWUEJOCU7DY>:
    ecb4:	4801      	ldr	r0, [pc, #4]	; (ecbc <sym_M4DIQOXJAE3BNHQBIUCZXAABSM24CWUEJOCU7DY+0x8>)
    ecb6:	6800      	ldr	r0, [r0, #0]
    ecb8:	4770      	bx	lr
    ecba:	0000      	.short	0x0000
    ecbc:	4000b504 	.word	0x4000b504

0000ecc0 <sym_2ZDZA75WOMRNSQ6XL7IZWAQKYFFSRJOGBGKPTIQ>:
    ecc0:	e92d 5ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, ip, lr}
    ecc4:	4e41      	ldr	r6, [pc, #260]	; (edcc <sym_2ZDZA75WOMRNSQ6XL7IZWAQKYFFSRJOGBGKPTIQ+0x10c>)
    ecc6:	4604      	mov	r4, r0
    ecc8:	1ef7      	subs	r7, r6, #3
    ecca:	f896 c000 	ldrb.w	ip, [r6]
    ecce:	68f8      	ldr	r0, [r7, #12]
    ecd0:	f1bc 0f01 	cmp.w	ip, #1
    ecd4:	bf04      	itt	eq
    ecd6:	42a0      	cmpeq	r0, r4
    ecd8:	e8bd 9ff0 	ldmiaeq.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, ip, pc}
    ecdc:	f04f 4140 	mov.w	r1, #3221225472	; 0xc0000000
    ece0:	4a3b      	ldr	r2, [pc, #236]	; (edd0 <sym_2ZDZA75WOMRNSQ6XL7IZWAQKYFFSRJOGBGKPTIQ+0x110>)
    ece2:	6011      	str	r1, [r2, #0]
    ece4:	493b      	ldr	r1, [pc, #236]	; (edd4 <sym_2ZDZA75WOMRNSQ6XL7IZWAQKYFFSRJOGBGKPTIQ+0x114>)
    ece6:	f46f 2380 	mvn.w	r3, #262144	; 0x40000
    ecea:	f8c1 3308 	str.w	r3, [r1, #776]	; 0x308
    ecee:	4a3a      	ldr	r2, [pc, #232]	; (edd8 <sym_2ZDZA75WOMRNSQ6XL7IZWAQKYFFSRJOGBGKPTIQ+0x118>)
    ecf0:	f04f 0500 	mov.w	r5, #0
    ecf4:	f1bc 0f00 	cmp.w	ip, #0
    ecf8:	d057      	beq.n	edaa <sym_2ZDZA75WOMRNSQ6XL7IZWAQKYFFSRJOGBGKPTIQ+0xea>
    ecfa:	f46f 23a0 	mvn.w	r3, #327680	; 0x50000
    ecfe:	f8c1 3348 	str.w	r3, [r1, #840]	; 0x348
    ed02:	6015      	str	r5, [r2, #0]
    ed04:	f8c1 5144 	str.w	r5, [r1, #324]	; 0x144
    ed08:	f8d1 2148 	ldr.w	r2, [r1, #328]	; 0x148
    ed0c:	f04f 29e0 	mov.w	r9, #3758153728	; 0xe000e000
    ed10:	f04f 0801 	mov.w	r8, #1
    ed14:	2a00      	cmp	r2, #0
    ed16:	bf04      	itt	eq
    ed18:	f44f 6200 	moveq.w	r2, #2048	; 0x800
    ed1c:	f8c9 2280 	streq.w	r2, [r9, #640]	; 0x280
    ed20:	f44f 3380 	mov.w	r3, #65536	; 0x10000
    ed24:	f8c1 3308 	str.w	r3, [r1, #776]	; 0x308
    ed28:	f8c1 3348 	str.w	r3, [r1, #840]	; 0x348
    ed2c:	f8c1 5140 	str.w	r5, [r1, #320]	; 0x140
    ed30:	4a2a      	ldr	r2, [pc, #168]	; (eddc <sym_2ZDZA75WOMRNSQ6XL7IZWAQKYFFSRJOGBGKPTIQ+0x11c>)
    ed32:	f8d2 a000 	ldr.w	sl, [r2]
    ed36:	eba4 0a0a 	sub.w	sl, r4, sl
    ed3a:	f02a 4b7f 	bic.w	fp, sl, #4278190080	; 0xff000000
    ed3e:	f1bb 0f02 	cmp.w	fp, #2
    ed42:	d33c      	bcc.n	edbe <sym_2ZDZA75WOMRNSQ6XL7IZWAQKYFFSRJOGBGKPTIQ+0xfe>
    ed44:	f04f 0a02 	mov.w	sl, #2
    ed48:	f5bb 0f80 	cmp.w	fp, #4194304	; 0x400000
    ed4c:	d237      	bcs.n	edbe <sym_2ZDZA75WOMRNSQ6XL7IZWAQKYFFSRJOGBGKPTIQ+0xfe>
    ed4e:	f8c1 4540 	str.w	r4, [r1, #1344]	; 0x540
    ed52:	f8c1 3344 	str.w	r3, [r1, #836]	; 0x344
    ed56:	f1bc 0f00 	cmp.w	ip, #0
    ed5a:	d005      	beq.n	ed68 <sym_2ZDZA75WOMRNSQ6XL7IZWAQKYFFSRJOGBGKPTIQ+0xa8>
    ed5c:	6811      	ldr	r1, [r2, #0]
    ed5e:	1a41      	subs	r1, r0, r1
    ed60:	f021 417f 	bic.w	r1, r1, #4278190080	; 0xff000000
    ed64:	2902      	cmp	r1, #2
    ed66:	d3f9      	bcc.n	ed5c <sym_2ZDZA75WOMRNSQ6XL7IZWAQKYFFSRJOGBGKPTIQ+0x9c>
    ed68:	f8c7 8008 	str.w	r8, [r7, #8]
    ed6c:	703d      	strb	r5, [r7, #0]
    ed6e:	f7ff ff73 	bl	ec58 <MPSL_IRQ_TIMER0_Handler+0xf8>
    ed72:	481b      	ldr	r0, [pc, #108]	; (ede0 <sym_2ZDZA75WOMRNSQ6XL7IZWAQKYFFSRJOGBGKPTIQ+0x120>)
    ed74:	6005      	str	r5, [r0, #0]
    ed76:	1d00      	adds	r0, r0, #4
    ed78:	f8c0 a000 	str.w	sl, [r0]
    ed7c:	4919      	ldr	r1, [pc, #100]	; (ede4 <sym_2ZDZA75WOMRNSQ6XL7IZWAQKYFFSRJOGBGKPTIQ+0x124>)
    ed7e:	2004      	movs	r0, #4
    ed80:	6008      	str	r0, [r1, #0]
    ed82:	4919      	ldr	r1, [pc, #100]	; (ede8 <sym_2ZDZA75WOMRNSQ6XL7IZWAQKYFFSRJOGBGKPTIQ+0x128>)
    ed84:	f8c1 800c 	str.w	r8, [r1, #12]
    ed88:	68ba      	ldr	r2, [r7, #8]
    ed8a:	f8c1 2200 	str.w	r2, [r1, #512]	; 0x200
    ed8e:	0181      	lsls	r1, r0, #6
    ed90:	f8c9 1280 	str.w	r1, [r9, #640]	; 0x280
    ed94:	f8c9 1100 	str.w	r1, [r9, #256]	; 0x100
    ed98:	4a14      	ldr	r2, [pc, #80]	; (edec <sym_2ZDZA75WOMRNSQ6XL7IZWAQKYFFSRJOGBGKPTIQ+0x12c>)
    ed9a:	0741      	lsls	r1, r0, #29
    ed9c:	6011      	str	r1, [r2, #0]
    ed9e:	60fc      	str	r4, [r7, #12]
    eda0:	7070      	strb	r0, [r6, #1]
    eda2:	f886 8000 	strb.w	r8, [r6]
    eda6:	e8bd 9ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, ip, pc}
    edaa:	f8c1 3348 	str.w	r3, [r1, #840]	; 0x348
    edae:	4b10      	ldr	r3, [pc, #64]	; (edf0 <sym_2ZDZA75WOMRNSQ6XL7IZWAQKYFFSRJOGBGKPTIQ+0x130>)
    edb0:	601d      	str	r5, [r3, #0]
    edb2:	f8c1 5140 	str.w	r5, [r1, #320]	; 0x140
    edb6:	6015      	str	r5, [r2, #0]
    edb8:	f8c1 5144 	str.w	r5, [r1, #324]	; 0x144
    edbc:	e7a4      	b.n	ed08 <sym_2ZDZA75WOMRNSQ6XL7IZWAQKYFFSRJOGBGKPTIQ+0x48>
    edbe:	f8c1 5540 	str.w	r5, [r1, #1344]	; 0x540
    edc2:	f240 11f1 	movw	r1, #497	; 0x1f1
    edc6:	206c      	movs	r0, #108	; 0x6c
    edc8:	f000 fe64 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    edcc:	20000023 	.word	0x20000023
    edd0:	4001f508 	.word	0x4001f508
    edd4:	4000b000 	.word	0x4000b000
    edd8:	4000b544 	.word	0x4000b544
    eddc:	4000b504 	.word	0x4000b504
    ede0:	40008504 	.word	0x40008504
    ede4:	40008510 	.word	0x40008510
    ede8:	40008000 	.word	0x40008000
    edec:	4001f504 	.word	0x4001f504
    edf0:	4000b540 	.word	0x4000b540

0000edf4 <sym_UGOJA475OXR5HR5WFINUK27HP5BRGNWCZXQLKDI>:
    edf4:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
    edf8:	4c2b      	ldr	r4, [pc, #172]	; (eea8 <sym_UGOJA475OXR5HR5WFINUK27HP5BRGNWCZXQLKDI+0xb4>)
    edfa:	68e1      	ldr	r1, [r4, #12]
    edfc:	4281      	cmp	r1, r0
    edfe:	bf14      	ite	ne
    ee00:	2201      	movne	r2, #1
    ee02:	2200      	moveq	r2, #0
    ee04:	f8df c0a4 	ldr.w	ip, [pc, #164]	; eeac <sym_UGOJA475OXR5HR5WFINUK27HP5BRGNWCZXQLKDI+0xb8>
    ee08:	f89c 7000 	ldrb.w	r7, [ip]
    ee0c:	2f02      	cmp	r7, #2
    ee0e:	d002      	beq.n	ee16 <sym_UGOJA475OXR5HR5WFINUK27HP5BRGNWCZXQLKDI+0x22>
    ee10:	2a00      	cmp	r2, #0
    ee12:	d038      	beq.n	ee86 <sym_UGOJA475OXR5HR5WFINUK27HP5BRGNWCZXQLKDI+0x92>
    ee14:	e003      	b.n	ee1e <sym_UGOJA475OXR5HR5WFINUK27HP5BRGNWCZXQLKDI+0x2a>
    ee16:	2a00      	cmp	r2, #0
    ee18:	bf08      	it	eq
    ee1a:	e8bd 81f0 	ldmiaeq.w	sp!, {r4, r5, r6, r7, r8, pc}
    ee1e:	7862      	ldrb	r2, [r4, #1]
    ee20:	b382      	cbz	r2, ee84 <sym_UGOJA475OXR5HR5WFINUK27HP5BRGNWCZXQLKDI+0x90>
    ee22:	4b23      	ldr	r3, [pc, #140]	; (eeb0 <sym_UGOJA475OXR5HR5WFINUK27HP5BRGNWCZXQLKDI+0xbc>)
    ee24:	f04f 4280 	mov.w	r2, #1073741824	; 0x40000000
    ee28:	601a      	str	r2, [r3, #0]
    ee2a:	4b22      	ldr	r3, [pc, #136]	; (eeb4 <sym_UGOJA475OXR5HR5WFINUK27HP5BRGNWCZXQLKDI+0xc0>)
    ee2c:	1395      	asrs	r5, r2, #14
    ee2e:	f8c3 5308 	str.w	r5, [r3, #776]	; 0x308
    ee32:	f8c3 5348 	str.w	r5, [r3, #840]	; 0x348
    ee36:	2600      	movs	r6, #0
    ee38:	f8c3 6140 	str.w	r6, [r3, #320]	; 0x140
    ee3c:	4a1e      	ldr	r2, [pc, #120]	; (eeb8 <sym_UGOJA475OXR5HR5WFINUK27HP5BRGNWCZXQLKDI+0xc4>)
    ee3e:	f8d2 8000 	ldr.w	r8, [r2]
    ee42:	eba0 0808 	sub.w	r8, r0, r8
    ee46:	f028 487f 	bic.w	r8, r8, #4278190080	; 0xff000000
    ee4a:	f1b8 0f02 	cmp.w	r8, #2
    ee4e:	d324      	bcc.n	ee9a <sym_UGOJA475OXR5HR5WFINUK27HP5BRGNWCZXQLKDI+0xa6>
    ee50:	f5b8 0f80 	cmp.w	r8, #4194304	; 0x400000
    ee54:	d221      	bcs.n	ee9a <sym_UGOJA475OXR5HR5WFINUK27HP5BRGNWCZXQLKDI+0xa6>
    ee56:	f8c3 0540 	str.w	r0, [r3, #1344]	; 0x540
    ee5a:	f8c3 5344 	str.w	r5, [r3, #836]	; 0x344
    ee5e:	b12f      	cbz	r7, ee6c <sym_UGOJA475OXR5HR5WFINUK27HP5BRGNWCZXQLKDI+0x78>
    ee60:	6813      	ldr	r3, [r2, #0]
    ee62:	1acb      	subs	r3, r1, r3
    ee64:	f023 437f 	bic.w	r3, r3, #4278190080	; 0xff000000
    ee68:	2b02      	cmp	r3, #2
    ee6a:	d3f9      	bcc.n	ee60 <sym_UGOJA475OXR5HR5WFINUK27HP5BRGNWCZXQLKDI+0x6c>
    ee6c:	4b13      	ldr	r3, [pc, #76]	; (eebc <sym_UGOJA475OXR5HR5WFINUK27HP5BRGNWCZXQLKDI+0xc8>)
    ee6e:	2102      	movs	r1, #2
    ee70:	074a      	lsls	r2, r1, #29
    ee72:	601a      	str	r2, [r3, #0]
    ee74:	60e0      	str	r0, [r4, #12]
    ee76:	2004      	movs	r0, #4
    ee78:	f88c 0001 	strb.w	r0, [ip, #1]
    ee7c:	f88c 1000 	strb.w	r1, [ip]
    ee80:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
    ee84:	e004      	b.n	ee90 <sym_UGOJA475OXR5HR5WFINUK27HP5BRGNWCZXQLKDI+0x9c>
    ee86:	f240 11ff 	movw	r1, #511	; 0x1ff
    ee8a:	206c      	movs	r0, #108	; 0x6c
    ee8c:	f000 fe02 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    ee90:	f240 2103 	movw	r1, #515	; 0x203
    ee94:	206c      	movs	r0, #108	; 0x6c
    ee96:	f000 fdfd 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    ee9a:	f8c3 6540 	str.w	r6, [r3, #1344]	; 0x540
    ee9e:	f240 210f 	movw	r1, #527	; 0x20f
    eea2:	206c      	movs	r0, #108	; 0x6c
    eea4:	f000 fdf6 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    eea8:	20000020 	.word	0x20000020
    eeac:	20000023 	.word	0x20000023
    eeb0:	4001f508 	.word	0x4001f508
    eeb4:	4000b000 	.word	0x4000b000
    eeb8:	4000b504 	.word	0x4000b504
    eebc:	4001f504 	.word	0x4001f504

0000eec0 <sym_RUQO26WM5KVVEW7O3OHCXPO7LLLXRBDPIPSWIWY>:
    eec0:	4801      	ldr	r0, [pc, #4]	; (eec8 <sym_RUQO26WM5KVVEW7O3OHCXPO7LLLXRBDPIPSWIWY+0x8>)
    eec2:	68c0      	ldr	r0, [r0, #12]
    eec4:	4770      	bx	lr
    eec6:	0000      	.short	0x0000
    eec8:	20000020 	.word	0x20000020

0000eecc <sym_QUBGY7RMPG7R5F6DVNURH4AVGDAWMK46YXU4DRA>:
    eecc:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
    eed0:	4833      	ldr	r0, [pc, #204]	; (efa0 <sym_QUBGY7RMPG7R5F6DVNURH4AVGDAWMK46YXU4DRA+0xd4>)
    eed2:	f46f 2480 	mvn.w	r4, #262144	; 0x40000
    eed6:	f8c0 4308 	str.w	r4, [r0, #776]	; 0x308
    eeda:	f8df c0c8 	ldr.w	ip, [pc, #200]	; efa4 <sym_QUBGY7RMPG7R5F6DVNURH4AVGDAWMK46YXU4DRA+0xd8>
    eede:	4a32      	ldr	r2, [pc, #200]	; (efa8 <sym_QUBGY7RMPG7R5F6DVNURH4AVGDAWMK46YXU4DRA+0xdc>)
    eee0:	2100      	movs	r1, #0
    eee2:	f89c 3000 	ldrb.w	r3, [ip]
    eee6:	b163      	cbz	r3, ef02 <sym_QUBGY7RMPG7R5F6DVNURH4AVGDAWMK46YXU4DRA+0x36>
    eee8:	f46f 24a0 	mvn.w	r4, #327680	; 0x50000
    eeec:	f8c0 4348 	str.w	r4, [r0, #840]	; 0x348
    eef0:	6011      	str	r1, [r2, #0]
    eef2:	f8c0 1144 	str.w	r1, [r0, #324]	; 0x144
    eef6:	bf00      	nop
    eef8:	f8d0 0148 	ldr.w	r0, [r0, #328]	; 0x148
    eefc:	2201      	movs	r2, #1
    eefe:	b980      	cbnz	r0, ef22 <sym_QUBGY7RMPG7R5F6DVNURH4AVGDAWMK46YXU4DRA+0x56>
    ef00:	e009      	b.n	ef16 <sym_QUBGY7RMPG7R5F6DVNURH4AVGDAWMK46YXU4DRA+0x4a>
    ef02:	f8c0 4348 	str.w	r4, [r0, #840]	; 0x348
    ef06:	4c29      	ldr	r4, [pc, #164]	; (efac <sym_QUBGY7RMPG7R5F6DVNURH4AVGDAWMK46YXU4DRA+0xe0>)
    ef08:	6021      	str	r1, [r4, #0]
    ef0a:	f8c0 1140 	str.w	r1, [r0, #320]	; 0x140
    ef0e:	6011      	str	r1, [r2, #0]
    ef10:	f8c0 1144 	str.w	r1, [r0, #324]	; 0x144
    ef14:	e7f0      	b.n	eef8 <sym_QUBGY7RMPG7R5F6DVNURH4AVGDAWMK46YXU4DRA+0x2c>
    ef16:	f04f 24e0 	mov.w	r4, #3758153728	; 0xe000e000
    ef1a:	f44f 6000 	mov.w	r0, #2048	; 0x800
    ef1e:	f8c4 0280 	str.w	r0, [r4, #640]	; 0x280
    ef22:	2b02      	cmp	r3, #2
    ef24:	d004      	beq.n	ef30 <sym_QUBGY7RMPG7R5F6DVNURH4AVGDAWMK46YXU4DRA+0x64>
    ef26:	f240 211b 	movw	r1, #539	; 0x21b
    ef2a:	206c      	movs	r0, #108	; 0x6c
    ef2c:	f000 fdb2 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    ef30:	4e1f      	ldr	r6, [pc, #124]	; (efb0 <sym_QUBGY7RMPG7R5F6DVNURH4AVGDAWMK46YXU4DRA+0xe4>)
    ef32:	6830      	ldr	r0, [r6, #0]
    ef34:	4c1f      	ldr	r4, [pc, #124]	; (efb4 <sym_QUBGY7RMPG7R5F6DVNURH4AVGDAWMK46YXU4DRA+0xe8>)
    ef36:	1cc0      	adds	r0, r0, #3
    ef38:	f020 407f 	bic.w	r0, r0, #4278190080	; 0xff000000
    ef3c:	68e3      	ldr	r3, [r4, #12]
    ef3e:	4d1e      	ldr	r5, [pc, #120]	; (efb8 <sym_QUBGY7RMPG7R5F6DVNURH4AVGDAWMK46YXU4DRA+0xec>)
    ef40:	4298      	cmp	r0, r3
    ef42:	d00b      	beq.n	ef5c <sym_QUBGY7RMPG7R5F6DVNURH4AVGDAWMK46YXU4DRA+0x90>
    ef44:	6837      	ldr	r7, [r6, #0]
    ef46:	1bdf      	subs	r7, r3, r7
    ef48:	f027 477f 	bic.w	r7, r7, #4278190080	; 0xff000000
    ef4c:	2f04      	cmp	r7, #4
    ef4e:	d305      	bcc.n	ef5c <sym_QUBGY7RMPG7R5F6DVNURH4AVGDAWMK46YXU4DRA+0x90>
    ef50:	f5b7 0f80 	cmp.w	r7, #4194304	; 0x400000
    ef54:	d202      	bcs.n	ef5c <sym_QUBGY7RMPG7R5F6DVNURH4AVGDAWMK46YXU4DRA+0x90>
    ef56:	f7ff feb3 	bl	ecc0 <sym_2ZDZA75WOMRNSQ6XL7IZWAQKYFFSRJOGBGKPTIQ>
    ef5a:	e01b      	b.n	ef94 <sym_QUBGY7RMPG7R5F6DVNURH4AVGDAWMK46YXU4DRA+0xc8>
    ef5c:	6830      	ldr	r0, [r6, #0]
    ef5e:	1a18      	subs	r0, r3, r0
    ef60:	f020 407f 	bic.w	r0, r0, #4278190080	; 0xff000000
    ef64:	2802      	cmp	r0, #2
    ef66:	d313      	bcc.n	ef90 <sym_QUBGY7RMPG7R5F6DVNURH4AVGDAWMK46YXU4DRA+0xc4>
    ef68:	f5b0 0f80 	cmp.w	r0, #4194304	; 0x400000
    ef6c:	d210      	bcs.n	ef90 <sym_QUBGY7RMPG7R5F6DVNURH4AVGDAWMK46YXU4DRA+0xc4>
    ef6e:	4b13      	ldr	r3, [pc, #76]	; (efbc <sym_QUBGY7RMPG7R5F6DVNURH4AVGDAWMK46YXU4DRA+0xf0>)
    ef70:	f04f 4080 	mov.w	r0, #1073741824	; 0x40000000
    ef74:	6018      	str	r0, [r3, #0]
    ef76:	60a2      	str	r2, [r4, #8]
    ef78:	7021      	strb	r1, [r4, #0]
    ef7a:	606a      	str	r2, [r5, #4]
    ef7c:	60ea      	str	r2, [r5, #12]
    ef7e:	0040      	lsls	r0, r0, #1
    ef80:	1f19      	subs	r1, r3, #4
    ef82:	6008      	str	r0, [r1, #0]
    ef84:	2004      	movs	r0, #4
    ef86:	f88c 0001 	strb.w	r0, [ip, #1]
    ef8a:	f88c 2000 	strb.w	r2, [ip]
    ef8e:	e001      	b.n	ef94 <sym_QUBGY7RMPG7R5F6DVNURH4AVGDAWMK46YXU4DRA+0xc8>
    ef90:	60a2      	str	r2, [r4, #8]
    ef92:	7021      	strb	r1, [r4, #0]
    ef94:	68a0      	ldr	r0, [r4, #8]
    ef96:	f8c5 0200 	str.w	r0, [r5, #512]	; 0x200
    ef9a:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
    ef9e:	0000      	.short	0x0000
    efa0:	4000b000 	.word	0x4000b000
    efa4:	20000023 	.word	0x20000023
    efa8:	4000b544 	.word	0x4000b544
    efac:	4000b540 	.word	0x4000b540
    efb0:	4000b504 	.word	0x4000b504
    efb4:	20000020 	.word	0x20000020
    efb8:	40008000 	.word	0x40008000
    efbc:	4001f508 	.word	0x4001f508

0000efc0 <sym_X2K67YH6UCW6TFK6NTLPZZFGWYHTTPZYK5PXHNQ>:
    efc0:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
    efc4:	f8df c174 	ldr.w	ip, [pc, #372]	; f13c <sym_X2K67YH6UCW6TFK6NTLPZZFGWYHTTPZYK5PXHNQ+0x17c>
    efc8:	2701      	movs	r7, #1
    efca:	f04f 0800 	mov.w	r8, #0
    efce:	f89c 5000 	ldrb.w	r5, [ip]
    efd2:	f89c c001 	ldrb.w	ip, [ip, #1]
    efd6:	2807      	cmp	r0, #7
    efd8:	d27e      	bcs.n	f0d8 <sym_X2K67YH6UCW6TFK6NTLPZZFGWYHTTPZYK5PXHNQ+0x118>
    efda:	e8df f000 	tbb	[pc, r0]
    efde:	0404      	.short	0x0404
    efe0:	6a6a0404 	.word	0x6a6a0404
    efe4:	006a      	.short	0x006a
    efe6:	4c56      	ldr	r4, [pc, #344]	; (f140 <sym_X2K67YH6UCW6TFK6NTLPZZFGWYHTTPZYK5PXHNQ+0x180>)
    efe8:	68e6      	ldr	r6, [r4, #12]
    efea:	f1b6 7f80 	cmp.w	r6, #16777216	; 0x1000000
    efee:	bf04      	itt	eq
    eff0:	7864      	ldrbeq	r4, [r4, #1]
    eff2:	2c00      	cmpeq	r4, #0
    eff4:	d002      	beq.n	effc <sym_X2K67YH6UCW6TFK6NTLPZZFGWYHTTPZYK5PXHNQ+0x3c>
    eff6:	2d02      	cmp	r5, #2
    eff8:	d005      	beq.n	f006 <sym_X2K67YH6UCW6TFK6NTLPZZFGWYHTTPZYK5PXHNQ+0x46>
    effa:	e03c      	b.n	f076 <sym_X2K67YH6UCW6TFK6NTLPZZFGWYHTTPZYK5PXHNQ+0xb6>
    effc:	f240 214e 	movw	r1, #590	; 0x24e
    f000:	206c      	movs	r0, #108	; 0x6c
    f002:	f000 fd47 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    f006:	ea4f 048c 	mov.w	r4, ip, lsl #2
    f00a:	f104 4680 	add.w	r6, r4, #1073741824	; 0x40000000
    f00e:	f1ac 0404 	sub.w	r4, ip, #4
    f012:	0624      	lsls	r4, r4, #24
    f014:	0da4      	lsrs	r4, r4, #22
    f016:	f104 4980 	add.w	r9, r4, #1073741824	; 0x40000000
    f01a:	f506 4600 	add.w	r6, r6, #32768	; 0x8000
    f01e:	f509 4930 	add.w	r9, r9, #45056	; 0xb000
    f022:	2400      	movs	r4, #0
    f024:	2d01      	cmp	r5, #1
    f026:	d002      	beq.n	f02e <sym_X2K67YH6UCW6TFK6NTLPZZFGWYHTTPZYK5PXHNQ+0x6e>
    f028:	2d02      	cmp	r5, #2
    f02a:	d011      	beq.n	f050 <sym_X2K67YH6UCW6TFK6NTLPZZFGWYHTTPZYK5PXHNQ+0x90>
    f02c:	e020      	b.n	f070 <sym_X2K67YH6UCW6TFK6NTLPZZFGWYHTTPZYK5PXHNQ+0xb0>
    f02e:	f1bc 0f04 	cmp.w	ip, #4
    f032:	d205      	bcs.n	f040 <sym_X2K67YH6UCW6TFK6NTLPZZFGWYHTTPZYK5PXHNQ+0x80>
    f034:	f8d6 a140 	ldr.w	sl, [r6, #320]	; 0x140
    f038:	f1ba 0f00 	cmp.w	sl, #0
    f03c:	d118      	bne.n	f070 <sym_X2K67YH6UCW6TFK6NTLPZZFGWYHTTPZYK5PXHNQ+0xb0>
    f03e:	e004      	b.n	f04a <sym_X2K67YH6UCW6TFK6NTLPZZFGWYHTTPZYK5PXHNQ+0x8a>
    f040:	f8d9 a140 	ldr.w	sl, [r9, #320]	; 0x140
    f044:	f1ba 0f00 	cmp.w	sl, #0
    f048:	d112      	bne.n	f070 <sym_X2K67YH6UCW6TFK6NTLPZZFGWYHTTPZYK5PXHNQ+0xb0>
    f04a:	f04f 4400 	mov.w	r4, #2147483648	; 0x80000000
    f04e:	e00f      	b.n	f070 <sym_X2K67YH6UCW6TFK6NTLPZZFGWYHTTPZYK5PXHNQ+0xb0>
    f050:	f1bc 0f04 	cmp.w	ip, #4
    f054:	d205      	bcs.n	f062 <sym_X2K67YH6UCW6TFK6NTLPZZFGWYHTTPZYK5PXHNQ+0xa2>
    f056:	f8d6 a140 	ldr.w	sl, [r6, #320]	; 0x140
    f05a:	f1ba 0f00 	cmp.w	sl, #0
    f05e:	d107      	bne.n	f070 <sym_X2K67YH6UCW6TFK6NTLPZZFGWYHTTPZYK5PXHNQ+0xb0>
    f060:	e004      	b.n	f06c <sym_X2K67YH6UCW6TFK6NTLPZZFGWYHTTPZYK5PXHNQ+0xac>
    f062:	f8d9 a140 	ldr.w	sl, [r9, #320]	; 0x140
    f066:	f1ba 0f00 	cmp.w	sl, #0
    f06a:	d101      	bne.n	f070 <sym_X2K67YH6UCW6TFK6NTLPZZFGWYHTTPZYK5PXHNQ+0xb0>
    f06c:	f044 4480 	orr.w	r4, r4, #1073741824	; 0x40000000
    f070:	f014 4f80 	tst.w	r4, #1073741824	; 0x40000000
    f074:	d1d5      	bne.n	f022 <sym_X2K67YH6UCW6TFK6NTLPZZFGWYHTTPZYK5PXHNQ+0x62>
    f076:	4c33      	ldr	r4, [pc, #204]	; (f144 <sym_X2K67YH6UCW6TFK6NTLPZZFGWYHTTPZYK5PXHNQ+0x184>)
    f078:	f100 0c10 	add.w	ip, r0, #16
    f07c:	fa07 fc0c 	lsl.w	ip, r7, ip
    f080:	f8c4 c308 	str.w	ip, [r4, #776]	; 0x308
    f084:	0080      	lsls	r0, r0, #2
    f086:	4420      	add	r0, r4
    f088:	b152      	cbz	r2, f0a0 <sym_X2K67YH6UCW6TFK6NTLPZZFGWYHTTPZYK5PXHNQ+0xe0>
    f08a:	6407      	str	r7, [r0, #64]	; 0x40
    f08c:	f8d0 6540 	ldr.w	r6, [r0, #1344]	; 0x540
    f090:	1b8d      	subs	r5, r1, r6
    f092:	f025 457f 	bic.w	r5, r5, #4278190080	; 0xff000000
    f096:	42aa      	cmp	r2, r5
    f098:	bf98      	it	ls
    f09a:	f5b5 0f80 	cmpls.w	r5, #4194304	; 0x400000
    f09e:	d243      	bcs.n	f128 <sym_X2K67YH6UCW6TFK6NTLPZZFGWYHTTPZYK5PXHNQ+0x168>
    f0a0:	f8c0 1540 	str.w	r1, [r0, #1344]	; 0x540
    f0a4:	2b01      	cmp	r3, #1
    f0a6:	bf08      	it	eq
    f0a8:	f8c4 c304 	streq.w	ip, [r4, #772]	; 0x304
    f0ac:	2001      	movs	r0, #1
    f0ae:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
    f0b2:	b135      	cbz	r5, f0c2 <sym_X2K67YH6UCW6TFK6NTLPZZFGWYHTTPZYK5PXHNQ+0x102>
    f0b4:	4584      	cmp	ip, r0
    f0b6:	d104      	bne.n	f0c2 <sym_X2K67YH6UCW6TFK6NTLPZZFGWYHTTPZYK5PXHNQ+0x102>
    f0b8:	f240 2171 	movw	r1, #625	; 0x271
    f0bc:	206c      	movs	r0, #108	; 0x6c
    f0be:	f000 fce9 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    f0c2:	1f00      	subs	r0, r0, #4
    f0c4:	b2c0      	uxtb	r0, r0
    f0c6:	2b01      	cmp	r3, #1
    f0c8:	bf0c      	ite	eq
    f0ca:	2401      	moveq	r4, #1
    f0cc:	2400      	movne	r4, #0
    f0ce:	2803      	cmp	r0, #3
    f0d0:	d306      	bcc.n	f0e0 <sym_X2K67YH6UCW6TFK6NTLPZZFGWYHTTPZYK5PXHNQ+0x120>
    f0d2:	f240 114b 	movw	r1, #331	; 0x14b
    f0d6:	e000      	b.n	f0da <sym_X2K67YH6UCW6TFK6NTLPZZFGWYHTTPZYK5PXHNQ+0x11a>
    f0d8:	e02b      	b.n	f132 <sym_X2K67YH6UCW6TFK6NTLPZZFGWYHTTPZYK5PXHNQ+0x172>
    f0da:	206c      	movs	r0, #108	; 0x6c
    f0dc:	f000 fcda 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    f0e0:	f8df c064 	ldr.w	ip, [pc, #100]	; f148 <sym_X2K67YH6UCW6TFK6NTLPZZFGWYHTTPZYK5PXHNQ+0x188>
    f0e4:	f100 0310 	add.w	r3, r0, #16
    f0e8:	fa07 f303 	lsl.w	r3, r7, r3
    f0ec:	f8cc 3308 	str.w	r3, [ip, #776]	; 0x308
    f0f0:	f8cc 3348 	str.w	r3, [ip, #840]	; 0x348
    f0f4:	0080      	lsls	r0, r0, #2
    f0f6:	4460      	add	r0, ip
    f0f8:	f8c0 8140 	str.w	r8, [r0, #320]	; 0x140
    f0fc:	b14a      	cbz	r2, f112 <sym_X2K67YH6UCW6TFK6NTLPZZFGWYHTTPZYK5PXHNQ+0x152>
    f0fe:	4d13      	ldr	r5, [pc, #76]	; (f14c <sym_X2K67YH6UCW6TFK6NTLPZZFGWYHTTPZYK5PXHNQ+0x18c>)
    f100:	682e      	ldr	r6, [r5, #0]
    f102:	1b8d      	subs	r5, r1, r6
    f104:	f025 457f 	bic.w	r5, r5, #4278190080	; 0xff000000
    f108:	42aa      	cmp	r2, r5
    f10a:	bf98      	it	ls
    f10c:	f5b5 0f80 	cmpls.w	r5, #4194304	; 0x400000
    f110:	d20a      	bcs.n	f128 <sym_X2K67YH6UCW6TFK6NTLPZZFGWYHTTPZYK5PXHNQ+0x168>
    f112:	f8c0 1540 	str.w	r1, [r0, #1344]	; 0x540
    f116:	2c00      	cmp	r4, #0
    f118:	bf18      	it	ne
    f11a:	f8cc 3304 	strne.w	r3, [ip, #772]	; 0x304
    f11e:	f8cc 3344 	str.w	r3, [ip, #836]	; 0x344
    f122:	2001      	movs	r0, #1
    f124:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
    f128:	f8c0 8540 	str.w	r8, [r0, #1344]	; 0x540
    f12c:	2000      	movs	r0, #0
    f12e:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
    f132:	f240 2176 	movw	r1, #630	; 0x276
    f136:	206c      	movs	r0, #108	; 0x6c
    f138:	f000 fcac 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    f13c:	20000023 	.word	0x20000023
    f140:	20000020 	.word	0x20000020
    f144:	40008000 	.word	0x40008000
    f148:	4000b000 	.word	0x4000b000
    f14c:	4000b504 	.word	0x4000b504

0000f150 <sym_TSYEIN5CZPQE3YK6VECZD5C2M4LMXKKH6O7LNAY>:
    f150:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
    f152:	2701      	movs	r7, #1
    f154:	2400      	movs	r4, #0
    f156:	2807      	cmp	r0, #7
    f158:	d24c      	bcs.n	f1f4 <sym_TSYEIN5CZPQE3YK6VECZD5C2M4LMXKKH6O7LNAY+0xa4>
    f15a:	e8df f000 	tbb	[pc, r0]
    f15e:	0404      	.short	0x0404
    f160:	16160404 	.word	0x16160404
    f164:	0016      	.short	0x0016
    f166:	4a26      	ldr	r2, [pc, #152]	; (f200 <sym_TSYEIN5CZPQE3YK6VECZD5C2M4LMXKKH6O7LNAY+0xb0>)
    f168:	f100 0110 	add.w	r1, r0, #16
    f16c:	fa07 f101 	lsl.w	r1, r7, r1
    f170:	f8c2 1308 	str.w	r1, [r2, #776]	; 0x308
    f174:	0081      	lsls	r1, r0, #2
    f176:	4411      	add	r1, r2
    f178:	f8c1 4540 	str.w	r4, [r1, #1344]	; 0x540
    f17c:	f8c1 4140 	str.w	r4, [r1, #320]	; 0x140
    f180:	4920      	ldr	r1, [pc, #128]	; (f204 <sym_TSYEIN5CZPQE3YK6VECZD5C2M4LMXKKH6O7LNAY+0xb4>)
    f182:	f851 0020 	ldr.w	r0, [r1, r0, lsl #2]
    f186:	9000      	str	r0, [sp, #0]
    f188:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
    f18a:	4d1f      	ldr	r5, [pc, #124]	; (f208 <sym_TSYEIN5CZPQE3YK6VECZD5C2M4LMXKKH6O7LNAY+0xb8>)
    f18c:	1f01      	subs	r1, r0, #4
    f18e:	b2ce      	uxtb	r6, r1
    f190:	7829      	ldrb	r1, [r5, #0]
    f192:	b179      	cbz	r1, f1b4 <sym_TSYEIN5CZPQE3YK6VECZD5C2M4LMXKKH6O7LNAY+0x64>
    f194:	786a      	ldrb	r2, [r5, #1]
    f196:	4282      	cmp	r2, r0
    f198:	d10c      	bne.n	f1b4 <sym_TSYEIN5CZPQE3YK6VECZD5C2M4LMXKKH6O7LNAY+0x64>
    f19a:	4a1c      	ldr	r2, [pc, #112]	; (f20c <sym_TSYEIN5CZPQE3YK6VECZD5C2M4LMXKKH6O7LNAY+0xbc>)
    f19c:	f04f 4040 	mov.w	r0, #3221225472	; 0xc0000000
    f1a0:	6010      	str	r0, [r2, #0]
    f1a2:	2901      	cmp	r1, #1
    f1a4:	bf08      	it	eq
    f1a6:	f7ff fd57 	bleq	ec58 <MPSL_IRQ_TIMER0_Handler+0xf8>
    f1aa:	702c      	strb	r4, [r5, #0]
    f1ac:	4918      	ldr	r1, [pc, #96]	; (f210 <sym_TSYEIN5CZPQE3YK6VECZD5C2M4LMXKKH6O7LNAY+0xc0>)
    f1ae:	f04f 7080 	mov.w	r0, #16777216	; 0x1000000
    f1b2:	60c8      	str	r0, [r1, #12]
    f1b4:	f106 0010 	add.w	r0, r6, #16
    f1b8:	fa07 f100 	lsl.w	r1, r7, r0
    f1bc:	4815      	ldr	r0, [pc, #84]	; (f214 <sym_TSYEIN5CZPQE3YK6VECZD5C2M4LMXKKH6O7LNAY+0xc4>)
    f1be:	f8c0 1308 	str.w	r1, [r0, #776]	; 0x308
    f1c2:	f8c0 1348 	str.w	r1, [r0, #840]	; 0x348
    f1c6:	00b0      	lsls	r0, r6, #2
    f1c8:	f100 4080 	add.w	r0, r0, #1073741824	; 0x40000000
    f1cc:	f500 4030 	add.w	r0, r0, #45056	; 0xb000
    f1d0:	f8d0 1540 	ldr.w	r1, [r0, #1344]	; 0x540
    f1d4:	4a10      	ldr	r2, [pc, #64]	; (f218 <sym_TSYEIN5CZPQE3YK6VECZD5C2M4LMXKKH6O7LNAY+0xc8>)
    f1d6:	6812      	ldr	r2, [r2, #0]
    f1d8:	1a89      	subs	r1, r1, r2
    f1da:	f021 417f 	bic.w	r1, r1, #4278190080	; 0xff000000
    f1de:	2902      	cmp	r1, #2
    f1e0:	bf24      	itt	cs
    f1e2:	f8c0 4540 	strcs.w	r4, [r0, #1344]	; 0x540
    f1e6:	f8c0 4140 	strcs.w	r4, [r0, #320]	; 0x140
    f1ea:	480c      	ldr	r0, [pc, #48]	; (f21c <sym_TSYEIN5CZPQE3YK6VECZD5C2M4LMXKKH6O7LNAY+0xcc>)
    f1ec:	f850 0026 	ldr.w	r0, [r0, r6, lsl #2]
    f1f0:	9000      	str	r0, [sp, #0]
    f1f2:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
    f1f4:	f240 21ef 	movw	r1, #751	; 0x2ef
    f1f8:	206c      	movs	r0, #108	; 0x6c
    f1fa:	f000 fc4b 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    f1fe:	0000      	.short	0x0000
    f200:	40008000 	.word	0x40008000
    f204:	40008140 	.word	0x40008140
    f208:	20000023 	.word	0x20000023
    f20c:	4001f508 	.word	0x4001f508
    f210:	20000020 	.word	0x20000020
    f214:	4000b000 	.word	0x4000b000
    f218:	4000b504 	.word	0x4000b504
    f21c:	4000b140 	.word	0x4000b140

0000f220 <sym_OLTN5HGCU3P74AJAQRGNYBUXASUKWF3RI2Q3H5Q>:
    f220:	491e      	ldr	r1, [pc, #120]	; (f29c <sym_OLTN5HGCU3P74AJAQRGNYBUXASUKWF3RI2Q3H5Q+0x7c>)
    f222:	f46f 2380 	mvn.w	r3, #262144	; 0x40000
    f226:	f8c1 3308 	str.w	r3, [r1, #776]	; 0x308
    f22a:	481d      	ldr	r0, [pc, #116]	; (f2a0 <sym_OLTN5HGCU3P74AJAQRGNYBUXASUKWF3RI2Q3H5Q+0x80>)
    f22c:	4a1d      	ldr	r2, [pc, #116]	; (f2a4 <sym_OLTN5HGCU3P74AJAQRGNYBUXASUKWF3RI2Q3H5Q+0x84>)
    f22e:	f890 c000 	ldrb.w	ip, [r0]
    f232:	2000      	movs	r0, #0
    f234:	f1bc 0f00 	cmp.w	ip, #0
    f238:	d00a      	beq.n	f250 <sym_OLTN5HGCU3P74AJAQRGNYBUXASUKWF3RI2Q3H5Q+0x30>
    f23a:	f46f 23a0 	mvn.w	r3, #327680	; 0x50000
    f23e:	f8c1 3348 	str.w	r3, [r1, #840]	; 0x348
    f242:	6010      	str	r0, [r2, #0]
    f244:	f8c1 0144 	str.w	r0, [r1, #324]	; 0x144
    f248:	f8d1 1148 	ldr.w	r1, [r1, #328]	; 0x148
    f24c:	b981      	cbnz	r1, f270 <sym_OLTN5HGCU3P74AJAQRGNYBUXASUKWF3RI2Q3H5Q+0x50>
    f24e:	e009      	b.n	f264 <sym_OLTN5HGCU3P74AJAQRGNYBUXASUKWF3RI2Q3H5Q+0x44>
    f250:	f8c1 3348 	str.w	r3, [r1, #840]	; 0x348
    f254:	4b14      	ldr	r3, [pc, #80]	; (f2a8 <sym_OLTN5HGCU3P74AJAQRGNYBUXASUKWF3RI2Q3H5Q+0x88>)
    f256:	6018      	str	r0, [r3, #0]
    f258:	f8c1 0140 	str.w	r0, [r1, #320]	; 0x140
    f25c:	6010      	str	r0, [r2, #0]
    f25e:	f8c1 0144 	str.w	r0, [r1, #324]	; 0x144
    f262:	e7f1      	b.n	f248 <sym_OLTN5HGCU3P74AJAQRGNYBUXASUKWF3RI2Q3H5Q+0x28>
    f264:	f04f 22e0 	mov.w	r2, #3758153728	; 0xe000e000
    f268:	f44f 6100 	mov.w	r1, #2048	; 0x800
    f26c:	f8c2 1280 	str.w	r1, [r2, #640]	; 0x280
    f270:	490e      	ldr	r1, [pc, #56]	; (f2ac <sym_OLTN5HGCU3P74AJAQRGNYBUXASUKWF3RI2Q3H5Q+0x8c>)
    f272:	f04f 32ff 	mov.w	r2, #4294967295
    f276:	f8c1 2308 	str.w	r2, [r1, #776]	; 0x308
    f27a:	4a0d      	ldr	r2, [pc, #52]	; (f2b0 <sym_OLTN5HGCU3P74AJAQRGNYBUXASUKWF3RI2Q3H5Q+0x90>)
    f27c:	6010      	str	r0, [r2, #0]
    f27e:	f8c1 0140 	str.w	r0, [r1, #320]	; 0x140
    f282:	1d12      	adds	r2, r2, #4
    f284:	6010      	str	r0, [r2, #0]
    f286:	f8c1 0144 	str.w	r0, [r1, #324]	; 0x144
    f28a:	1d12      	adds	r2, r2, #4
    f28c:	6010      	str	r0, [r2, #0]
    f28e:	f8c1 0148 	str.w	r0, [r1, #328]	; 0x148
    f292:	1d12      	adds	r2, r2, #4
    f294:	6010      	str	r0, [r2, #0]
    f296:	f8c1 014c 	str.w	r0, [r1, #332]	; 0x14c
    f29a:	4770      	bx	lr
    f29c:	4000b000 	.word	0x4000b000
    f2a0:	20000023 	.word	0x20000023
    f2a4:	4000b544 	.word	0x4000b544
    f2a8:	4000b540 	.word	0x4000b540
    f2ac:	40008000 	.word	0x40008000
    f2b0:	40008540 	.word	0x40008540

0000f2b4 <sym_CPXNCG66C5WXYS4GOKTR2JEIS45ZVRZUCBYX34I>:
    f2b4:	4808      	ldr	r0, [pc, #32]	; (f2d8 <sym_CPXNCG66C5WXYS4GOKTR2JEIS45ZVRZUCBYX34I+0x24>)
    f2b6:	f990 0002 	ldrsb.w	r0, [r0, #2]
    f2ba:	2800      	cmp	r0, #0
    f2bc:	bfb8      	it	lt
    f2be:	4770      	bxlt	lr
    f2c0:	f000 011f 	and.w	r1, r0, #31
    f2c4:	2201      	movs	r2, #1
    f2c6:	fa02 f101 	lsl.w	r1, r2, r1
    f2ca:	0940      	lsrs	r0, r0, #5
    f2cc:	0080      	lsls	r0, r0, #2
    f2ce:	f100 20e0 	add.w	r0, r0, #3758153728	; 0xe000e000
    f2d2:	f8c0 1200 	str.w	r1, [r0, #512]	; 0x200
    f2d6:	4770      	bx	lr
    f2d8:	20000020 	.word	0x20000020

0000f2dc <sym_DY4TH3UYBBOUULSDPZZ7Y6J5DTNRGWFEBHJXKVA>:
    f2dc:	b510      	push	{r4, lr}
    f2de:	2807      	cmp	r0, #7
    f2e0:	d20d      	bcs.n	f2fe <sym_DY4TH3UYBBOUULSDPZZ7Y6J5DTNRGWFEBHJXKVA+0x22>
    f2e2:	e8df f000 	tbb	[pc, r0]
    f2e6:	0404      	.short	0x0404
    f2e8:	06060404 	.word	0x06060404
    f2ec:	0006      	.short	0x0006
    f2ee:	4906      	ldr	r1, [pc, #24]	; (f308 <sym_DY4TH3UYBBOUULSDPZZ7Y6J5DTNRGWFEBHJXKVA+0x2c>)
    f2f0:	e002      	b.n	f2f8 <sym_DY4TH3UYBBOUULSDPZZ7Y6J5DTNRGWFEBHJXKVA+0x1c>
    f2f2:	1f00      	subs	r0, r0, #4
    f2f4:	4905      	ldr	r1, [pc, #20]	; (f30c <sym_DY4TH3UYBBOUULSDPZZ7Y6J5DTNRGWFEBHJXKVA+0x30>)
    f2f6:	b2c0      	uxtb	r0, r0
    f2f8:	eb01 0080 	add.w	r0, r1, r0, lsl #2
    f2fc:	bd10      	pop	{r4, pc}
    f2fe:	f240 219a 	movw	r1, #666	; 0x29a
    f302:	206c      	movs	r0, #108	; 0x6c
    f304:	f000 fbc6 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    f308:	40008140 	.word	0x40008140
    f30c:	4000b140 	.word	0x4000b140

0000f310 <sym_CQWZ455IMTLTPY5LEEZHXHRRNX223B3HTDD45HA>:
    f310:	b510      	push	{r4, lr}
    f312:	2807      	cmp	r0, #7
    f314:	d20d      	bcs.n	f332 <sym_CQWZ455IMTLTPY5LEEZHXHRRNX223B3HTDD45HA+0x22>
    f316:	e8df f000 	tbb	[pc, r0]
    f31a:	0404      	.short	0x0404
    f31c:	06060404 	.word	0x06060404
    f320:	0006      	.short	0x0006
    f322:	4906      	ldr	r1, [pc, #24]	; (f33c <sym_CQWZ455IMTLTPY5LEEZHXHRRNX223B3HTDD45HA+0x2c>)
    f324:	e002      	b.n	f32c <sym_CQWZ455IMTLTPY5LEEZHXHRRNX223B3HTDD45HA+0x1c>
    f326:	1f00      	subs	r0, r0, #4
    f328:	4905      	ldr	r1, [pc, #20]	; (f340 <sym_CQWZ455IMTLTPY5LEEZHXHRRNX223B3HTDD45HA+0x30>)
    f32a:	b2c0      	uxtb	r0, r0
    f32c:	eb01 0080 	add.w	r0, r1, r0, lsl #2
    f330:	bd10      	pop	{r4, pc}
    f332:	f240 219a 	movw	r1, #666	; 0x29a
    f336:	206c      	movs	r0, #108	; 0x6c
    f338:	f000 fbac 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    f33c:	40008140 	.word	0x40008140
    f340:	4000b140 	.word	0x4000b140

0000f344 <sym_3SK52U5TD4ACVVYKWS6UI6ZPWKSLV6BW5IGCPJI>:
    f344:	b570      	push	{r4, r5, r6, lr}
    f346:	4819      	ldr	r0, [pc, #100]	; (f3ac <sym_3SK52U5TD4ACVVYKWS6UI6ZPWKSLV6BW5IGCPJI+0x68>)
    f348:	2400      	movs	r4, #0
    f34a:	2104      	movs	r1, #4
    f34c:	7004      	strb	r4, [r0, #0]
    f34e:	1ec0      	subs	r0, r0, #3
    f350:	7001      	strb	r1, [r0, #0]
    f352:	0589      	lsls	r1, r1, #22
    f354:	60c1      	str	r1, [r0, #12]
    f356:	f7ff fc7f 	bl	ec58 <MPSL_IRQ_TIMER0_Handler+0xf8>
    f35a:	2501      	movs	r5, #1
    f35c:	f04f 2ce0 	mov.w	ip, #3758153728	; 0xe000e000
    f360:	02eb      	lsls	r3, r5, #11
    f362:	f8cc 3180 	str.w	r3, [ip, #384]	; 0x180
    f366:	f3bf 8f4f 	dsb	sy
    f36a:	f3bf 8f6f 	isb	sy
    f36e:	f8cc 3280 	str.w	r3, [ip, #640]	; 0x280
    f372:	4a0f      	ldr	r2, [pc, #60]	; (f3b0 <sym_3SK52U5TD4ACVVYKWS6UI6ZPWKSLV6BW5IGCPJI+0x6c>)
    f374:	6055      	str	r5, [r2, #4]
    f376:	6095      	str	r5, [r2, #8]
    f378:	480e      	ldr	r0, [pc, #56]	; (f3b4 <sym_3SK52U5TD4ACVVYKWS6UI6ZPWKSLV6BW5IGCPJI+0x70>)
    f37a:	6801      	ldr	r1, [r0, #0]
    f37c:	2900      	cmp	r1, #0
    f37e:	d1fc      	bne.n	f37a <sym_3SK52U5TD4ACVVYKWS6UI6ZPWKSLV6BW5IGCPJI+0x36>
    f380:	1e48      	subs	r0, r1, #1
    f382:	f8c2 0308 	str.w	r0, [r2, #776]	; 0x308
    f386:	f8c2 0348 	str.w	r0, [r2, #840]	; 0x348
    f38a:	480b      	ldr	r0, [pc, #44]	; (f3b8 <sym_3SK52U5TD4ACVVYKWS6UI6ZPWKSLV6BW5IGCPJI+0x74>)
    f38c:	6004      	str	r4, [r0, #0]
    f38e:	f8c2 4140 	str.w	r4, [r2, #320]	; 0x140
    f392:	1d00      	adds	r0, r0, #4
    f394:	6004      	str	r4, [r0, #0]
    f396:	f8c2 4144 	str.w	r4, [r2, #324]	; 0x144
    f39a:	1d00      	adds	r0, r0, #4
    f39c:	6004      	str	r4, [r0, #0]
    f39e:	f8c2 4148 	str.w	r4, [r2, #328]	; 0x148
    f3a2:	f8cc 3100 	str.w	r3, [ip, #256]	; 0x100
    f3a6:	6015      	str	r5, [r2, #0]
    f3a8:	bd70      	pop	{r4, r5, r6, pc}
    f3aa:	0000      	.short	0x0000
    f3ac:	20000023 	.word	0x20000023
    f3b0:	4000b000 	.word	0x4000b000
    f3b4:	4000b504 	.word	0x4000b504
    f3b8:	4000b540 	.word	0x4000b540

0000f3bc <MPSL_IRQ_CLOCK_Handler>:
    f3bc:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
    f3c0:	4c16      	ldr	r4, [pc, #88]	; (f41c <MPSL_IRQ_CLOCK_Handler+0x60>)
    f3c2:	7a60      	ldrb	r0, [r4, #9]
    f3c4:	2800      	cmp	r0, #0
    f3c6:	d027      	beq.n	f418 <MPSL_IRQ_CLOCK_Handler+0x5c>
    f3c8:	f44f 7180 	mov.w	r1, #256	; 0x100
    f3cc:	058d      	lsls	r5, r1, #22
    f3ce:	4628      	mov	r0, r5
    f3d0:	f008 fd5a 	bl	17e88 <sym_XEJLNUQGS5P4R5IXDJFF6NE6C2FZWRZYDQOGMPI+0x48>
    f3d4:	4680      	mov	r8, r0
    f3d6:	f44f 7182 	mov.w	r1, #260	; 0x104
    f3da:	4628      	mov	r0, r5
    f3dc:	f008 fd54 	bl	17e88 <sym_XEJLNUQGS5P4R5IXDJFF6NE6C2FZWRZYDQOGMPI+0x48>
    f3e0:	2600      	movs	r6, #0
    f3e2:	4607      	mov	r7, r0
    f3e4:	f1b8 0f00 	cmp.w	r8, #0
    f3e8:	d009      	beq.n	f3fe <MPSL_IRQ_CLOCK_Handler+0x42>
    f3ea:	2001      	movs	r0, #1
    f3ec:	f8c5 0308 	str.w	r0, [r5, #776]	; 0x308
    f3f0:	7920      	ldrb	r0, [r4, #4]
    f3f2:	b120      	cbz	r0, f3fe <MPSL_IRQ_CLOCK_Handler+0x42>
    f3f4:	7126      	strb	r6, [r4, #4]
    f3f6:	69e0      	ldr	r0, [r4, #28]
    f3f8:	b108      	cbz	r0, f3fe <MPSL_IRQ_CLOCK_Handler+0x42>
    f3fa:	4780      	blx	r0
    f3fc:	61e6      	str	r6, [r4, #28]
    f3fe:	b137      	cbz	r7, f40e <MPSL_IRQ_CLOCK_Handler+0x52>
    f400:	f8c5 6104 	str.w	r6, [r5, #260]	; 0x104
    f404:	2002      	movs	r0, #2
    f406:	f8c5 0308 	str.w	r0, [r5, #776]	; 0x308
    f40a:	f000 fa8b 	bl	f924 <sym_A4JUKJUCTJV55V2WD6TXU63VO5GAMB4XA4EE56Q>
    f40e:	4640      	mov	r0, r8
    f410:	e8bd 41f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, lr}
    f414:	f000 b85a 	b.w	f4cc <MPSL_IRQ_CLOCK_Handler+0x110>
    f418:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
    f41c:	20000030 	.word	0x20000030
    f420:	b510      	push	{r4, lr}
    f422:	f008 fddb 	bl	17fdc <sym_NQG4U7UYIQILZLC5ENYCA4NQMQM6PBAZC345PPA>
    f426:	b930      	cbnz	r0, f436 <MPSL_IRQ_CLOCK_Handler+0x7a>
    f428:	f008 fdf9 	bl	1801e <sym_QPP3IZFSWHUV4JQ6ODMIVIARPB4PQYUFESV7BRQ>
    f42c:	b918      	cbnz	r0, f436 <MPSL_IRQ_CLOCK_Handler+0x7a>
    f42e:	f008 fe2c 	bl	1808a <sym_USR4MDT6VMTQLOGKNN4MALBZ3GJPD2KOEY4HFAQ>
    f432:	2800      	cmp	r0, #0
    f434:	d002      	beq.n	f43c <MPSL_IRQ_CLOCK_Handler+0x80>
    f436:	4902      	ldr	r1, [pc, #8]	; (f440 <MPSL_IRQ_CLOCK_Handler+0x84>)
    f438:	2002      	movs	r0, #2
    f43a:	6008      	str	r0, [r1, #0]
    f43c:	bd10      	pop	{r4, pc}
    f43e:	0000      	.short	0x0000
    f440:	40000c34 	.word	0x40000c34
    f444:	b570      	push	{r4, r5, r6, lr}
    f446:	f000 f987 	bl	f758 <sym_PEUB6CZG5CWXXD4M2S6OVBXZGDFOG4XII7USUDQ>
    f44a:	f000 fabf 	bl	f9cc <sym_LIY23QT3GHIV7NCGJ6ZW6LB2ZUSI56CIFCL6HUY>
    f44e:	4c09      	ldr	r4, [pc, #36]	; (f474 <MPSL_IRQ_CLOCK_Handler+0xb8>)
    f450:	f04f 4580 	mov.w	r5, #1073741824	; 0x40000000
    f454:	b130      	cbz	r0, f464 <MPSL_IRQ_CLOCK_Handler+0xa8>
    f456:	f7ff ffe3 	bl	f420 <MPSL_IRQ_CLOCK_Handler+0x64>
    f45a:	2001      	movs	r0, #1
    f45c:	6128      	str	r0, [r5, #16]
    f45e:	2004      	movs	r0, #4
    f460:	72a0      	strb	r0, [r4, #10]
    f462:	e004      	b.n	f46e <MPSL_IRQ_CLOCK_Handler+0xb2>
    f464:	2003      	movs	r0, #3
    f466:	72a0      	strb	r0, [r4, #10]
    f468:	2001      	movs	r0, #1
    f46a:	f8c5 0304 	str.w	r0, [r5, #772]	; 0x304
    f46e:	2000      	movs	r0, #0
    f470:	71e0      	strb	r0, [r4, #7]
    f472:	bd70      	pop	{r4, r5, r6, pc}
    f474:	20000030 	.word	0x20000030
    f478:	b570      	push	{r4, r5, r6, lr}
    f47a:	4c13      	ldr	r4, [pc, #76]	; (f4c8 <MPSL_IRQ_CLOCK_Handler+0x10c>)
    f47c:	79a0      	ldrb	r0, [r4, #6]
    f47e:	b1f0      	cbz	r0, f4be <MPSL_IRQ_CLOCK_Handler+0x102>
    f480:	2801      	cmp	r0, #1
    f482:	d003      	beq.n	f48c <MPSL_IRQ_CLOCK_Handler+0xd0>
    f484:	79e1      	ldrb	r1, [r4, #7]
    f486:	1e40      	subs	r0, r0, #1
    f488:	4281      	cmp	r1, r0
    f48a:	da18      	bge.n	f4be <MPSL_IRQ_CLOCK_Handler+0x102>
    f48c:	f000 fa9e 	bl	f9cc <sym_LIY23QT3GHIV7NCGJ6ZW6LB2ZUSI56CIFCL6HUY>
    f490:	4605      	mov	r5, r0
    f492:	f000 fb6f 	bl	fb74 <mpsl_temperature_get>
    f496:	79a1      	ldrb	r1, [r4, #6]
    f498:	2901      	cmp	r1, #1
    f49a:	d902      	bls.n	f4a2 <MPSL_IRQ_CLOCK_Handler+0xe6>
    f49c:	79e1      	ldrb	r1, [r4, #7]
    f49e:	1c49      	adds	r1, r1, #1
    f4a0:	71e1      	strb	r1, [r4, #7]
    f4a2:	b10d      	cbz	r5, f4a8 <MPSL_IRQ_CLOCK_Handler+0xec>
    f4a4:	6961      	ldr	r1, [r4, #20]
    f4a6:	e000      	b.n	f4aa <MPSL_IRQ_CLOCK_Handler+0xee>
    f4a8:	6921      	ldr	r1, [r4, #16]
    f4aa:	1a41      	subs	r1, r0, r1
    f4ac:	2902      	cmp	r1, #2
    f4ae:	da02      	bge.n	f4b6 <MPSL_IRQ_CLOCK_Handler+0xfa>
    f4b0:	f111 0f02 	cmn.w	r1, #2
    f4b4:	dc07      	bgt.n	f4c6 <MPSL_IRQ_CLOCK_Handler+0x10a>
    f4b6:	b10d      	cbz	r5, f4bc <MPSL_IRQ_CLOCK_Handler+0x100>
    f4b8:	6160      	str	r0, [r4, #20]
    f4ba:	e000      	b.n	f4be <MPSL_IRQ_CLOCK_Handler+0x102>
    f4bc:	6120      	str	r0, [r4, #16]
    f4be:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
    f4c2:	f7ff bfbf 	b.w	f444 <MPSL_IRQ_CLOCK_Handler+0x88>
    f4c6:	bd70      	pop	{r4, r5, r6, pc}
    f4c8:	20000030 	.word	0x20000030
    f4cc:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
    f4d0:	4606      	mov	r6, r0
    f4d2:	f04f 4580 	mov.w	r5, #1073741824	; 0x40000000
    f4d6:	f44f 7186 	mov.w	r1, #268	; 0x10c
    f4da:	4628      	mov	r0, r5
    f4dc:	f008 fcd4 	bl	17e88 <sym_XEJLNUQGS5P4R5IXDJFF6NE6C2FZWRZYDQOGMPI+0x48>
    f4e0:	4680      	mov	r8, r0
    f4e2:	f44f 7188 	mov.w	r1, #272	; 0x110
    f4e6:	4628      	mov	r0, r5
    f4e8:	f008 fcce 	bl	17e88 <sym_XEJLNUQGS5P4R5IXDJFF6NE6C2FZWRZYDQOGMPI+0x48>
    f4ec:	4c27      	ldr	r4, [pc, #156]	; (f58c <MPSL_IRQ_CLOCK_Handler+0x1d0>)
    f4ee:	4682      	mov	sl, r0
    f4f0:	7827      	ldrb	r7, [r4, #0]
    f4f2:	f104 0008 	add.w	r0, r4, #8
    f4f6:	f008 fd3b 	bl	17f70 <sym_AR22FPVUFSZMVYMQBBXG7EEZNA2HPS2RLAKRPBA>
    f4fa:	b110      	cbz	r0, f502 <MPSL_IRQ_CLOCK_Handler+0x146>
    f4fc:	f44f 71d5 	mov.w	r1, #426	; 0x1aa
    f500:	e016      	b.n	f530 <MPSL_IRQ_CLOCK_Handler+0x174>
    f502:	f04f 0901 	mov.w	r9, #1
    f506:	b146      	cbz	r6, f51a <MPSL_IRQ_CLOCK_Handler+0x15e>
    f508:	7aa0      	ldrb	r0, [r4, #10]
    f50a:	2803      	cmp	r0, #3
    f50c:	d105      	bne.n	f51a <MPSL_IRQ_CLOCK_Handler+0x15e>
    f50e:	2004      	movs	r0, #4
    f510:	72a0      	strb	r0, [r4, #10]
    f512:	f7ff ff85 	bl	f420 <MPSL_IRQ_CLOCK_Handler+0x64>
    f516:	f8c5 9010 	str.w	r9, [r5, #16]
    f51a:	2600      	movs	r6, #0
    f51c:	f1b8 0f00 	cmp.w	r8, #0
    f520:	d018      	beq.n	f554 <MPSL_IRQ_CLOCK_Handler+0x198>
    f522:	f8c5 610c 	str.w	r6, [r5, #268]	; 0x10c
    f526:	7aa0      	ldrb	r0, [r4, #10]
    f528:	2804      	cmp	r0, #4
    f52a:	d004      	beq.n	f536 <MPSL_IRQ_CLOCK_Handler+0x17a>
    f52c:	f44f 71de 	mov.w	r1, #444	; 0x1bc
    f530:	206d      	movs	r0, #109	; 0x6d
    f532:	f000 faaf 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    f536:	f008 fd51 	bl	17fdc <sym_NQG4U7UYIQILZLC5ENYCA4NQMQM6PBAZC345PPA>
    f53a:	b928      	cbnz	r0, f548 <MPSL_IRQ_CLOCK_Handler+0x18c>
    f53c:	f008 fd6f 	bl	1801e <sym_QPP3IZFSWHUV4JQ6ODMIVIARPB4PQYUFESV7BRQ>
    f540:	b910      	cbnz	r0, f548 <MPSL_IRQ_CLOCK_Handler+0x18c>
    f542:	f008 fda2 	bl	1808a <sym_USR4MDT6VMTQLOGKNN4MALBZ3GJPD2KOEY4HFAQ>
    f546:	b108      	cbz	r0, f54c <MPSL_IRQ_CLOCK_Handler+0x190>
    f548:	4811      	ldr	r0, [pc, #68]	; (f590 <MPSL_IRQ_CLOCK_Handler+0x1d4>)
    f54a:	6006      	str	r6, [r0, #0]
    f54c:	2002      	movs	r0, #2
    f54e:	72a0      	strb	r0, [r4, #10]
    f550:	f000 f8e6 	bl	f720 <sym_AF5XKA2WT4DMFZTLKHOBWE7E2EZAMLDDFPQGGTQ>
    f554:	f1ba 0f00 	cmp.w	sl, #0
    f558:	d008      	beq.n	f56c <MPSL_IRQ_CLOCK_Handler+0x1b0>
    f55a:	f8c5 6110 	str.w	r6, [r5, #272]	; 0x110
    f55e:	7aa0      	ldrb	r0, [r4, #10]
    f560:	2802      	cmp	r0, #2
    f562:	d101      	bne.n	f568 <MPSL_IRQ_CLOCK_Handler+0x1ac>
    f564:	f7ff ff88 	bl	f478 <MPSL_IRQ_CLOCK_Handler+0xbc>
    f568:	f8c5 9014 	str.w	r9, [r5, #20]
    f56c:	b13f      	cbz	r7, f57e <MPSL_IRQ_CLOCK_Handler+0x1c2>
    f56e:	7026      	strb	r6, [r4, #0]
    f570:	7aa0      	ldrb	r0, [r4, #10]
    f572:	2802      	cmp	r0, #2
    f574:	d101      	bne.n	f57a <MPSL_IRQ_CLOCK_Handler+0x1be>
    f576:	f7ff ff65 	bl	f444 <MPSL_IRQ_CLOCK_Handler+0x88>
    f57a:	f000 f8d1 	bl	f720 <sym_AF5XKA2WT4DMFZTLKHOBWE7E2EZAMLDDFPQGGTQ>
    f57e:	e8bd 47f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
    f582:	4802      	ldr	r0, [pc, #8]	; (f58c <MPSL_IRQ_CLOCK_Handler+0x1d0>)
    f584:	3008      	adds	r0, #8
    f586:	f008 bd0a 	b.w	17f9e <sym_OWJYSTADR5I36MIHWNPICVB7CMCWNSFIZPFXQ2Q>
    f58a:	0000      	.short	0x0000
    f58c:	20000030 	.word	0x20000030
    f590:	40000c34 	.word	0x40000c34
    f594:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
    f598:	4c5c      	ldr	r4, [pc, #368]	; (f70c <MPSL_IRQ_CLOCK_Handler+0x350>)
    f59a:	f04f 0800 	mov.w	r8, #0
    f59e:	4606      	mov	r6, r0
    f5a0:	f8c4 8018 	str.w	r8, [r4, #24]
    f5a4:	7843      	ldrb	r3, [r0, #1]
    f5a6:	7882      	ldrb	r2, [r0, #2]
    f5a8:	7800      	ldrb	r0, [r0, #0]
    f5aa:	72e0      	strb	r0, [r4, #11]
    f5ac:	7163      	strb	r3, [r4, #5]
    f5ae:	2701      	movs	r7, #1
    f5b0:	71a2      	strb	r2, [r4, #6]
    f5b2:	07bd      	lsls	r5, r7, #30
    f5b4:	f884 8007 	strb.w	r8, [r4, #7]
    f5b8:	2805      	cmp	r0, #5
    f5ba:	d224      	bcs.n	f606 <MPSL_IRQ_CLOCK_Handler+0x24a>
    f5bc:	e8df f000 	tbb	[pc, r0]
    f5c0:	1f05030f 	.word	0x1f05030f
    f5c4:	0021      	.short	0x0021
    f5c6:	61a7      	str	r7, [r4, #24]
    f5c8:	e009      	b.n	f5de <MPSL_IRQ_CLOCK_Handler+0x222>
    f5ca:	f000 f8c5 	bl	f758 <sym_PEUB6CZG5CWXXD4M2S6OVBXZGDFOG4XII7USUDQ>
    f5ce:	2101      	movs	r1, #1
    f5d0:	4628      	mov	r0, r5
    f5d2:	f008 fc5e 	bl	17e92 <sym_XEJLNUQGS5P4R5IXDJFF6NE6C2FZWRZYDQOGMPI+0x52>
    f5d6:	2800      	cmp	r0, #0
    f5d8:	d0f9      	beq.n	f5ce <MPSL_IRQ_CLOCK_Handler+0x212>
    f5da:	2002      	movs	r0, #2
    f5dc:	61a0      	str	r0, [r4, #24]
    f5de:	f008 fc84 	bl	17eea <sym_AL7FCNVVCF72BNYCTLA5UGAWCQFXFPGE2ULTWOA>
    f5e2:	b1b0      	cbz	r0, f612 <MPSL_IRQ_CLOCK_Handler+0x256>
    f5e4:	f000 fa0c 	bl	fa00 <sym_7BUNPUBNWNFVXXIMNFFNK765OVON5LBIUZ66QRI>
    f5e8:	7e21      	ldrb	r1, [r4, #24]
    f5ea:	f001 0103 	and.w	r1, r1, #3
    f5ee:	4288      	cmp	r0, r1
    f5f0:	d10f      	bne.n	f612 <MPSL_IRQ_CLOCK_Handler+0x256>
    f5f2:	79b0      	ldrb	r0, [r6, #6]
    f5f4:	b150      	cbz	r0, f60c <MPSL_IRQ_CLOCK_Handler+0x250>
    f5f6:	2002      	movs	r0, #2
    f5f8:	f8c5 0304 	str.w	r0, [r5, #772]	; 0x304
    f5fc:	e06a      	b.n	f6d4 <MPSL_IRQ_CLOCK_Handler+0x318>
    f5fe:	4844      	ldr	r0, [pc, #272]	; (f710 <MPSL_IRQ_CLOCK_Handler+0x354>)
    f600:	e7ec      	b.n	f5dc <MPSL_IRQ_CLOCK_Handler+0x220>
    f602:	4844      	ldr	r0, [pc, #272]	; (f714 <MPSL_IRQ_CLOCK_Handler+0x358>)
    f604:	e7ea      	b.n	f5dc <MPSL_IRQ_CLOCK_Handler+0x220>
    f606:	f44f 714c 	mov.w	r1, #816	; 0x330
    f60a:	e049      	b.n	f6a0 <MPSL_IRQ_CLOCK_Handler+0x2e4>
    f60c:	f000 f9cc 	bl	f9a8 <sym_4PX37LW4KIUYQZ73JWLPH5GAGIRWAKTV3E6F62Q>
    f610:	e060      	b.n	f6d4 <MPSL_IRQ_CLOCK_Handler+0x318>
    f612:	60ef      	str	r7, [r5, #12]
    f614:	f44f 7a82 	mov.w	sl, #260	; 0x104
    f618:	f8c5 8104 	str.w	r8, [r5, #260]	; 0x104
    f61c:	69a0      	ldr	r0, [r4, #24]
    f61e:	f8c5 0518 	str.w	r0, [r5, #1304]	; 0x518
    f622:	f008 fcc7 	bl	17fb4 <sym_BN6ZO2NBHRGKZ2NRQYWFBXVGKNG6Y5K55UNAWGA>
    f626:	b940      	cbnz	r0, f63a <MPSL_IRQ_CLOCK_Handler+0x27e>
    f628:	f008 fcce 	bl	17fc8 <sym_5EMXP3L6SPQSCAJKKRH62ZOKJCCSKLI3WEX2WHY>
    f62c:	b928      	cbnz	r0, f63a <MPSL_IRQ_CLOCK_Handler+0x27e>
    f62e:	f008 fce2 	bl	17ff6 <sym_H2QJCU2ORTYAFBAQQ2FHUYIAZO4HCXEKCQ4SS2Q>
    f632:	b910      	cbnz	r0, f63a <MPSL_IRQ_CLOCK_Handler+0x27e>
    f634:	f008 fcf3 	bl	1801e <sym_QPP3IZFSWHUV4JQ6ODMIVIARPB4PQYUFESV7BRQ>
    f638:	b138      	cbz	r0, f64a <MPSL_IRQ_CLOCK_Handler+0x28e>
    f63a:	f04f 5180 	mov.w	r1, #268435456	; 0x10000000
    f63e:	4836      	ldr	r0, [pc, #216]	; (f718 <MPSL_IRQ_CLOCK_Handler+0x35c>)
    f640:	f8d1 1244 	ldr.w	r1, [r1, #580]	; 0x244
    f644:	f3c1 3142 	ubfx	r1, r1, #13, #3
    f648:	6001      	str	r1, [r0, #0]
    f64a:	f008 fcb3 	bl	17fb4 <sym_BN6ZO2NBHRGKZ2NRQYWFBXVGKNG6Y5K55UNAWGA>
    f64e:	b940      	cbnz	r0, f662 <MPSL_IRQ_CLOCK_Handler+0x2a6>
    f650:	f008 fcba 	bl	17fc8 <sym_5EMXP3L6SPQSCAJKKRH62ZOKJCCSKLI3WEX2WHY>
    f654:	b928      	cbnz	r0, f662 <MPSL_IRQ_CLOCK_Handler+0x2a6>
    f656:	f008 fcce 	bl	17ff6 <sym_H2QJCU2ORTYAFBAQQ2FHUYIAZO4HCXEKCQ4SS2Q>
    f65a:	b910      	cbnz	r0, f662 <MPSL_IRQ_CLOCK_Handler+0x2a6>
    f65c:	f008 fcdf 	bl	1801e <sym_QPP3IZFSWHUV4JQ6ODMIVIARPB4PQYUFESV7BRQ>
    f660:	b110      	cbz	r0, f668 <MPSL_IRQ_CLOCK_Handler+0x2ac>
    f662:	482d      	ldr	r0, [pc, #180]	; (f718 <MPSL_IRQ_CLOCK_Handler+0x35c>)
    f664:	3010      	adds	r0, #16
    f666:	6007      	str	r7, [r0, #0]
    f668:	60af      	str	r7, [r5, #8]
    f66a:	2002      	movs	r0, #2
    f66c:	f8c5 0304 	str.w	r0, [r5, #772]	; 0x304
    f670:	79b0      	ldrb	r0, [r6, #6]
    f672:	bb78      	cbnz	r0, f6d4 <MPSL_IRQ_CLOCK_Handler+0x318>
    f674:	f8d5 0304 	ldr.w	r0, [r5, #772]	; 0x304
    f678:	f010 0f02 	tst.w	r0, #2
    f67c:	d00e      	beq.n	f69c <MPSL_IRQ_CLOCK_Handler+0x2e0>
    f67e:	f8df 909c 	ldr.w	r9, [pc, #156]	; f71c <MPSL_IRQ_CLOCK_Handler+0x360>
    f682:	f8d9 1000 	ldr.w	r1, [r9]
    f686:	43c9      	mvns	r1, r1
    f688:	f341 1700 	sbfx	r7, r1, #4, #1
    f68c:	f8d9 1000 	ldr.w	r1, [r9]
    f690:	f041 0110 	orr.w	r1, r1, #16
    f694:	f8c9 1000 	str.w	r1, [r9]
    f698:	1c7f      	adds	r7, r7, #1
    f69a:	e007      	b.n	f6ac <MPSL_IRQ_CLOCK_Handler+0x2f0>
    f69c:	f240 21f1 	movw	r1, #753	; 0x2f1
    f6a0:	206d      	movs	r0, #109	; 0x6d
    f6a2:	f000 f9f7 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    f6a6:	bf00      	nop
    f6a8:	f000 fb1a 	bl	fce0 <sym_PAD7XREQQORPXRJMXMW2EYVS4S43S42A5D43SBA>
    f6ac:	4651      	mov	r1, sl
    f6ae:	4628      	mov	r0, r5
    f6b0:	f008 fbea 	bl	17e88 <sym_XEJLNUQGS5P4R5IXDJFF6NE6C2FZWRZYDQOGMPI+0x48>
    f6b4:	2800      	cmp	r0, #0
    f6b6:	d0f7      	beq.n	f6a8 <MPSL_IRQ_CLOCK_Handler+0x2ec>
    f6b8:	f000 f976 	bl	f9a8 <sym_4PX37LW4KIUYQZ73JWLPH5GAGIRWAKTV3E6F62Q>
    f6bc:	b92f      	cbnz	r7, f6ca <MPSL_IRQ_CLOCK_Handler+0x30e>
    f6be:	f8d9 1000 	ldr.w	r1, [r9]
    f6c2:	f021 0110 	bic.w	r1, r1, #16
    f6c6:	f8c9 1000 	str.w	r1, [r9]
    f6ca:	2002      	movs	r0, #2
    f6cc:	f8c5 0308 	str.w	r0, [r5, #776]	; 0x308
    f6d0:	f8c5 8104 	str.w	r8, [r5, #260]	; 0x104
    f6d4:	79a0      	ldrb	r0, [r4, #6]
    f6d6:	b170      	cbz	r0, f6f6 <MPSL_IRQ_CLOCK_Handler+0x33a>
    f6d8:	7830      	ldrb	r0, [r6, #0]
    f6da:	b960      	cbnz	r0, f6f6 <MPSL_IRQ_CLOCK_Handler+0x33a>
    f6dc:	f000 f976 	bl	f9cc <sym_LIY23QT3GHIV7NCGJ6ZW6LB2ZUSI56CIFCL6HUY>
    f6e0:	4606      	mov	r6, r0
    f6e2:	f000 fa47 	bl	fb74 <mpsl_temperature_get>
    f6e6:	f06f 4200 	mvn.w	r2, #2147483648	; 0x80000000
    f6ea:	b116      	cbz	r6, f6f2 <MPSL_IRQ_CLOCK_Handler+0x336>
    f6ec:	e9c4 2004 	strd	r2, r0, [r4, #16]
    f6f0:	e001      	b.n	f6f6 <MPSL_IRQ_CLOCK_Handler+0x33a>
    f6f2:	e9c4 0204 	strd	r0, r2, [r4, #16]
    f6f6:	2101      	movs	r1, #1
    f6f8:	4628      	mov	r0, r5
    f6fa:	f008 fbca 	bl	17e92 <sym_XEJLNUQGS5P4R5IXDJFF6NE6C2FZWRZYDQOGMPI+0x52>
    f6fe:	b108      	cbz	r0, f704 <MPSL_IRQ_CLOCK_Handler+0x348>
    f700:	f000 f95e 	bl	f9c0 <sym_PIRI3CTIHOPR5MPDQRHBJRRZEA2NVOD4J3GXGOA>
    f704:	f884 800a 	strb.w	r8, [r4, #10]
    f708:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
    f70c:	20000030 	.word	0x20000030
    f710:	00020001 	.word	0x00020001
    f714:	00030001 	.word	0x00030001
    f718:	4000053c 	.word	0x4000053c
    f71c:	e000ed10 	.word	0xe000ed10

0000f720 <sym_AF5XKA2WT4DMFZTLKHOBWE7E2EZAMLDDFPQGGTQ>:
    f720:	b510      	push	{r4, lr}
    f722:	f3ef 8410 	mrs	r4, PRIMASK
    f726:	b672      	cpsid	i
    f728:	480a      	ldr	r0, [pc, #40]	; (f754 <sym_AF5XKA2WT4DMFZTLKHOBWE7E2EZAMLDDFPQGGTQ+0x34>)
    f72a:	7841      	ldrb	r1, [r0, #1]
    f72c:	b129      	cbz	r1, f73a <sym_AF5XKA2WT4DMFZTLKHOBWE7E2EZAMLDDFPQGGTQ+0x1a>
    f72e:	7841      	ldrb	r1, [r0, #1]
    f730:	1e49      	subs	r1, r1, #1
    f732:	7041      	strb	r1, [r0, #1]
    f734:	7841      	ldrb	r1, [r0, #1]
    f736:	b129      	cbz	r1, f744 <sym_AF5XKA2WT4DMFZTLKHOBWE7E2EZAMLDDFPQGGTQ+0x24>
    f738:	e008      	b.n	f74c <sym_AF5XKA2WT4DMFZTLKHOBWE7E2EZAMLDDFPQGGTQ+0x2c>
    f73a:	f240 110d 	movw	r1, #269	; 0x10d
    f73e:	206d      	movs	r0, #109	; 0x6d
    f740:	f000 f9a8 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    f744:	7880      	ldrb	r0, [r0, #2]
    f746:	b908      	cbnz	r0, f74c <sym_AF5XKA2WT4DMFZTLKHOBWE7E2EZAMLDDFPQGGTQ+0x2c>
    f748:	f000 f94e 	bl	f9e8 <sym_XK3TMLCZALCYYWGULGHQIRSOBMPIIPJ7HEMOZIQ>
    f74c:	2c00      	cmp	r4, #0
    f74e:	d100      	bne.n	f752 <sym_AF5XKA2WT4DMFZTLKHOBWE7E2EZAMLDDFPQGGTQ+0x32>
    f750:	b662      	cpsie	i
    f752:	bd10      	pop	{r4, pc}
    f754:	20000030 	.word	0x20000030

0000f758 <sym_PEUB6CZG5CWXXD4M2S6OVBXZGDFOG4XII7USUDQ>:
    f758:	b510      	push	{r4, lr}
    f75a:	f3ef 8410 	mrs	r4, PRIMASK
    f75e:	b672      	cpsid	i
    f760:	4806      	ldr	r0, [pc, #24]	; (f77c <sym_PEUB6CZG5CWXXD4M2S6OVBXZGDFOG4XII7USUDQ+0x24>)
    f762:	7841      	ldrb	r1, [r0, #1]
    f764:	1c49      	adds	r1, r1, #1
    f766:	7041      	strb	r1, [r0, #1]
    f768:	7840      	ldrb	r0, [r0, #1]
    f76a:	2801      	cmp	r0, #1
    f76c:	d101      	bne.n	f772 <sym_PEUB6CZG5CWXXD4M2S6OVBXZGDFOG4XII7USUDQ+0x1a>
    f76e:	f008 fba7 	bl	17ec0 <sym_IFJHPQV3B4EIN6OIUP3LZSPJBF5HLX2VYD323GA>
    f772:	2c00      	cmp	r4, #0
    f774:	d100      	bne.n	f778 <sym_PEUB6CZG5CWXXD4M2S6OVBXZGDFOG4XII7USUDQ+0x20>
    f776:	b662      	cpsie	i
    f778:	bd10      	pop	{r4, pc}
    f77a:	0000      	.short	0x0000
    f77c:	20000030 	.word	0x20000030

0000f780 <mpsl_clock_hfclk_release>:
    f780:	4805      	ldr	r0, [pc, #20]	; (f798 <mpsl_clock_hfclk_release+0x18>)
    f782:	b510      	push	{r4, lr}
    f784:	78c1      	ldrb	r1, [r0, #3]
    f786:	b121      	cbz	r1, f792 <mpsl_clock_hfclk_release+0x12>
    f788:	2100      	movs	r1, #0
    f78a:	7101      	strb	r1, [r0, #4]
    f78c:	70c1      	strb	r1, [r0, #3]
    f78e:	f7ff ffc7 	bl	f720 <sym_AF5XKA2WT4DMFZTLKHOBWE7E2EZAMLDDFPQGGTQ>
    f792:	2000      	movs	r0, #0
    f794:	bd10      	pop	{r4, pc}
    f796:	0000      	.short	0x0000
    f798:	20000030 	.word	0x20000030

0000f79c <mpsl_clock_hfclk_request>:
    f79c:	b570      	push	{r4, r5, r6, lr}
    f79e:	4c0c      	ldr	r4, [pc, #48]	; (f7d0 <mpsl_clock_hfclk_request+0x34>)
    f7a0:	78e1      	ldrb	r1, [r4, #3]
    f7a2:	b961      	cbnz	r1, f7be <mpsl_clock_hfclk_request+0x22>
    f7a4:	2501      	movs	r5, #1
    f7a6:	70e5      	strb	r5, [r4, #3]
    f7a8:	61e0      	str	r0, [r4, #28]
    f7aa:	f7ff ffd5 	bl	f758 <sym_PEUB6CZG5CWXXD4M2S6OVBXZGDFOG4XII7USUDQ>
    f7ae:	f000 f90d 	bl	f9cc <sym_LIY23QT3GHIV7NCGJ6ZW6LB2ZUSI56CIFCL6HUY>
    f7b2:	b130      	cbz	r0, f7c2 <mpsl_clock_hfclk_request+0x26>
    f7b4:	69e0      	ldr	r0, [r4, #28]
    f7b6:	b110      	cbz	r0, f7be <mpsl_clock_hfclk_request+0x22>
    f7b8:	4780      	blx	r0
    f7ba:	2000      	movs	r0, #0
    f7bc:	61e0      	str	r0, [r4, #28]
    f7be:	2000      	movs	r0, #0
    f7c0:	bd70      	pop	{r4, r5, r6, pc}
    f7c2:	f04f 4080 	mov.w	r0, #1073741824	; 0x40000000
    f7c6:	7125      	strb	r5, [r4, #4]
    f7c8:	f8c0 5304 	str.w	r5, [r0, #772]	; 0x304
    f7cc:	e7f7      	b.n	f7be <mpsl_clock_hfclk_request+0x22>
    f7ce:	0000      	.short	0x0000
    f7d0:	20000030 	.word	0x20000030

0000f7d4 <sym_MXEZOAVPP5LXUOZ6LJGDWJ57JEG5BZ5YB7LCG7Y>:
    f7d4:	f3ef 8010 	mrs	r0, PRIMASK
    f7d8:	b672      	cpsid	i
    f7da:	4904      	ldr	r1, [pc, #16]	; (f7ec <sym_MXEZOAVPP5LXUOZ6LJGDWJ57JEG5BZ5YB7LCG7Y+0x18>)
    f7dc:	788a      	ldrb	r2, [r1, #2]
    f7de:	1c52      	adds	r2, r2, #1
    f7e0:	708a      	strb	r2, [r1, #2]
    f7e2:	2800      	cmp	r0, #0
    f7e4:	d100      	bne.n	f7e8 <sym_MXEZOAVPP5LXUOZ6LJGDWJ57JEG5BZ5YB7LCG7Y+0x14>
    f7e6:	b662      	cpsie	i
    f7e8:	4770      	bx	lr
    f7ea:	0000      	.short	0x0000
    f7ec:	20000030 	.word	0x20000030

0000f7f0 <sym_UZOVMIXHY2SDZSVAWFRK4RKQPHXNS37P2CLQ57A>:
    f7f0:	b510      	push	{r4, lr}
    f7f2:	f3ef 8410 	mrs	r4, PRIMASK
    f7f6:	b672      	cpsid	i
    f7f8:	480a      	ldr	r0, [pc, #40]	; (f824 <sym_UZOVMIXHY2SDZSVAWFRK4RKQPHXNS37P2CLQ57A+0x34>)
    f7fa:	7881      	ldrb	r1, [r0, #2]
    f7fc:	b129      	cbz	r1, f80a <sym_UZOVMIXHY2SDZSVAWFRK4RKQPHXNS37P2CLQ57A+0x1a>
    f7fe:	7881      	ldrb	r1, [r0, #2]
    f800:	1e49      	subs	r1, r1, #1
    f802:	7081      	strb	r1, [r0, #2]
    f804:	7841      	ldrb	r1, [r0, #1]
    f806:	b129      	cbz	r1, f814 <sym_UZOVMIXHY2SDZSVAWFRK4RKQPHXNS37P2CLQ57A+0x24>
    f808:	e008      	b.n	f81c <sym_UZOVMIXHY2SDZSVAWFRK4RKQPHXNS37P2CLQ57A+0x2c>
    f80a:	f240 1125 	movw	r1, #293	; 0x125
    f80e:	206d      	movs	r0, #109	; 0x6d
    f810:	f000 f940 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    f814:	7880      	ldrb	r0, [r0, #2]
    f816:	b908      	cbnz	r0, f81c <sym_UZOVMIXHY2SDZSVAWFRK4RKQPHXNS37P2CLQ57A+0x2c>
    f818:	f000 f8e6 	bl	f9e8 <sym_XK3TMLCZALCYYWGULGHQIRSOBMPIIPJ7HEMOZIQ>
    f81c:	2c00      	cmp	r4, #0
    f81e:	d100      	bne.n	f822 <sym_UZOVMIXHY2SDZSVAWFRK4RKQPHXNS37P2CLQ57A+0x32>
    f820:	b662      	cpsie	i
    f822:	bd10      	pop	{r4, pc}
    f824:	20000030 	.word	0x20000030

0000f828 <sym_FYHKZOVAJN6VDDHY43FT7PF4YLRDHWRTEWHFG6I>:
    f828:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
    f82c:	0004      	movs	r4, r0
    f82e:	f06f 0015 	mvn.w	r0, #21
    f832:	d03c      	beq.n	f8ae <sym_FYHKZOVAJN6VDDHY43FT7PF4YLRDHWRTEWHFG6I+0x86>
    f834:	7821      	ldrb	r1, [r4, #0]
    f836:	2904      	cmp	r1, #4
    f838:	d839      	bhi.n	f8ae <sym_FYHKZOVAJN6VDDHY43FT7PF4YLRDHWRTEWHFG6I+0x86>
    f83a:	2900      	cmp	r1, #0
    f83c:	7861      	ldrb	r1, [r4, #1]
    f83e:	d038      	beq.n	f8b2 <sym_FYHKZOVAJN6VDDHY43FT7PF4YLRDHWRTEWHFG6I+0x8a>
    f840:	2900      	cmp	r1, #0
    f842:	d134      	bne.n	f8ae <sym_FYHKZOVAJN6VDDHY43FT7PF4YLRDHWRTEWHFG6I+0x86>
    f844:	78a1      	ldrb	r1, [r4, #2]
    f846:	2900      	cmp	r1, #0
    f848:	d131      	bne.n	f8ae <sym_FYHKZOVAJN6VDDHY43FT7PF4YLRDHWRTEWHFG6I+0x86>
    f84a:	2000      	movs	r0, #0
    f84c:	f008 fae7 	bl	17e1e <MPSL_IRQ_RADIO_Handler+0x1e>
    f850:	2000      	movs	r0, #0
    f852:	f008 fad7 	bl	17e04 <MPSL_IRQ_RADIO_Handler+0x4>
    f856:	f04f 4880 	mov.w	r8, #1073741824	; 0x40000000
    f85a:	f04f 31ff 	mov.w	r1, #4294967295
    f85e:	f8c8 1308 	str.w	r1, [r8, #776]	; 0x308
    f862:	2600      	movs	r6, #0
    f864:	f8c8 6100 	str.w	r6, [r8, #256]	; 0x100
    f868:	f8c8 6104 	str.w	r6, [r8, #260]	; 0x104
    f86c:	f8c8 610c 	str.w	r6, [r8, #268]	; 0x10c
    f870:	f8c8 6110 	str.w	r6, [r8, #272]	; 0x110
    f874:	4f14      	ldr	r7, [pc, #80]	; (f8c8 <sym_FYHKZOVAJN6VDDHY43FT7PF4YLRDHWRTEWHFG6I+0xa0>)
    f876:	707e      	strb	r6, [r7, #1]
    f878:	88a0      	ldrh	r0, [r4, #4]
    f87a:	81b8      	strh	r0, [r7, #12]
    f87c:	f008 fb17 	bl	17eae <sym_TIWHB6UQGI33JQCQDL7C2BRAEXCRAFYENVN6QEI>
    f880:	2501      	movs	r5, #1
    f882:	b108      	cbz	r0, f888 <sym_FYHKZOVAJN6VDDHY43FT7PF4YLRDHWRTEWHFG6I+0x60>
    f884:	70fd      	strb	r5, [r7, #3]
    f886:	707d      	strb	r5, [r7, #1]
    f888:	2101      	movs	r1, #1
    f88a:	4640      	mov	r0, r8
    f88c:	f008 fb01 	bl	17e92 <sym_XEJLNUQGS5P4R5IXDJFF6NE6C2FZWRZYDQOGMPI+0x52>
    f890:	b108      	cbz	r0, f896 <sym_FYHKZOVAJN6VDDHY43FT7PF4YLRDHWRTEWHFG6I+0x6e>
    f892:	f000 f895 	bl	f9c0 <sym_PIRI3CTIHOPR5MPDQRHBJRRZEA2NVOD4J3GXGOA>
    f896:	4620      	mov	r0, r4
    f898:	f7ff fe7c 	bl	f594 <MPSL_IRQ_CLOCK_Handler+0x1d8>
    f89c:	727d      	strb	r5, [r7, #9]
    f89e:	2000      	movs	r0, #0
    f8a0:	f008 fab0 	bl	17e04 <MPSL_IRQ_RADIO_Handler+0x4>
    f8a4:	f04f 21e0 	mov.w	r1, #3758153728	; 0xe000e000
    f8a8:	4630      	mov	r0, r6
    f8aa:	f8c1 5100 	str.w	r5, [r1, #256]	; 0x100
    f8ae:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
    f8b2:	2900      	cmp	r1, #0
    f8b4:	d0fb      	beq.n	f8ae <sym_FYHKZOVAJN6VDDHY43FT7PF4YLRDHWRTEWHFG6I+0x86>
    f8b6:	2920      	cmp	r1, #32
    f8b8:	d8f9      	bhi.n	f8ae <sym_FYHKZOVAJN6VDDHY43FT7PF4YLRDHWRTEWHFG6I+0x86>
    f8ba:	78a1      	ldrb	r1, [r4, #2]
    f8bc:	2921      	cmp	r1, #33	; 0x21
    f8be:	d8f6      	bhi.n	f8ae <sym_FYHKZOVAJN6VDDHY43FT7PF4YLRDHWRTEWHFG6I+0x86>
    f8c0:	2901      	cmp	r1, #1
    f8c2:	d1c2      	bne.n	f84a <sym_FYHKZOVAJN6VDDHY43FT7PF4YLRDHWRTEWHFG6I+0x22>
    f8c4:	e7f3      	b.n	f8ae <sym_FYHKZOVAJN6VDDHY43FT7PF4YLRDHWRTEWHFG6I+0x86>
    f8c6:	0000      	.short	0x0000
    f8c8:	20000030 	.word	0x20000030

0000f8cc <sym_ETIE3PCEXQYLK2GIVZENQ6V7PLBRV57MB7BDMNY>:
    f8cc:	4801      	ldr	r0, [pc, #4]	; (f8d4 <sym_ETIE3PCEXQYLK2GIVZENQ6V7PLBRV57MB7BDMNY+0x8>)
    f8ce:	8980      	ldrh	r0, [r0, #12]
    f8d0:	4770      	bx	lr
    f8d2:	0000      	.short	0x0000
    f8d4:	20000030 	.word	0x20000030

0000f8d8 <sym_UG7CMBAYEZEKSKQK753P4TBTSPUXVRWUS6QJJOA>:
    f8d8:	b510      	push	{r4, lr}
    f8da:	480d      	ldr	r0, [pc, #52]	; (f910 <sym_UG7CMBAYEZEKSKQK753P4TBTSPUXVRWUS6QJJOA+0x38>)
    f8dc:	f008 fb48 	bl	17f70 <sym_AR22FPVUFSZMVYMQBBXG7EEZNA2HPS2RLAKRPBA>
    f8e0:	490b      	ldr	r1, [pc, #44]	; (f910 <sym_UG7CMBAYEZEKSKQK753P4TBTSPUXVRWUS6QJJOA+0x38>)
    f8e2:	3908      	subs	r1, #8
    f8e4:	b148      	cbz	r0, f8fa <sym_UG7CMBAYEZEKSKQK753P4TBTSPUXVRWUS6QJJOA+0x22>
    f8e6:	2001      	movs	r0, #1
    f8e8:	7008      	strb	r0, [r1, #0]
    f8ea:	f04f 21e0 	mov.w	r1, #3758153728	; 0xe000e000
    f8ee:	f8c1 0200 	str.w	r0, [r1, #512]	; 0x200
    f8f2:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
    f8f6:	f7ff bf2f 	b.w	f758 <sym_PEUB6CZG5CWXXD4M2S6OVBXZGDFOG4XII7USUDQ>
    f8fa:	7a88      	ldrb	r0, [r1, #10]
    f8fc:	2802      	cmp	r0, #2
    f8fe:	d101      	bne.n	f904 <sym_UG7CMBAYEZEKSKQK753P4TBTSPUXVRWUS6QJJOA+0x2c>
    f900:	f7ff fda0 	bl	f444 <MPSL_IRQ_CLOCK_Handler+0x88>
    f904:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
    f908:	4801      	ldr	r0, [pc, #4]	; (f910 <sym_UG7CMBAYEZEKSKQK753P4TBTSPUXVRWUS6QJJOA+0x38>)
    f90a:	f008 bb48 	b.w	17f9e <sym_OWJYSTADR5I36MIHWNPICVB7CMCWNSFIZPFXQ2Q>
    f90e:	0000      	.short	0x0000
    f910:	20000038 	.word	0x20000038

0000f914 <sym_4CZSFTTT34WDYFZKE2NSCSVSYLPHLZYN7QUTGHY>:
    f914:	4802      	ldr	r0, [pc, #8]	; (f920 <sym_4CZSFTTT34WDYFZKE2NSCSVSYLPHLZYN7QUTGHY+0xc>)
    f916:	7a80      	ldrb	r0, [r0, #10]
    f918:	2800      	cmp	r0, #0
    f91a:	d000      	beq.n	f91e <sym_4CZSFTTT34WDYFZKE2NSCSVSYLPHLZYN7QUTGHY+0xa>
    f91c:	2001      	movs	r0, #1
    f91e:	4770      	bx	lr
    f920:	20000030 	.word	0x20000030

0000f924 <sym_A4JUKJUCTJV55V2WD6TXU63VO5GAMB4XA4EE56Q>:
    f924:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
    f926:	4d1f      	ldr	r5, [pc, #124]	; (f9a4 <sym_A4JUKJUCTJV55V2WD6TXU63VO5GAMB4XA4EE56Q+0x80>)
    f928:	7ae8      	ldrb	r0, [r5, #11]
    f92a:	2800      	cmp	r0, #0
    f92c:	d10f      	bne.n	f94e <sym_A4JUKJUCTJV55V2WD6TXU63VO5GAMB4XA4EE56Q+0x2a>
    f92e:	7e28      	ldrb	r0, [r5, #24]
    f930:	f000 0003 	and.w	r0, r0, #3
    f934:	f008 fac9 	bl	17eca <sym_LZEJCP3HZIBKMJQC47UQXAHGCQ52QF47EXOH2WA>
    f938:	2800      	cmp	r0, #0
    f93a:	d008      	beq.n	f94e <sym_A4JUKJUCTJV55V2WD6TXU63VO5GAMB4XA4EE56Q+0x2a>
    f93c:	f3ef 8110 	mrs	r1, PRIMASK
    f940:	b672      	cpsid	i
    f942:	f7ff ffe7 	bl	f914 <sym_4CZSFTTT34WDYFZKE2NSCSVSYLPHLZYN7QUTGHY>
    f946:	b118      	cbz	r0, f950 <sym_A4JUKJUCTJV55V2WD6TXU63VO5GAMB4XA4EE56Q+0x2c>
    f948:	2900      	cmp	r1, #0
    f94a:	d100      	bne.n	f94e <sym_A4JUKJUCTJV55V2WD6TXU63VO5GAMB4XA4EE56Q+0x2a>
    f94c:	b662      	cpsie	i
    f94e:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
    f950:	2601      	movs	r6, #1
    f952:	72ae      	strb	r6, [r5, #10]
    f954:	b901      	cbnz	r1, f958 <sym_A4JUKJUCTJV55V2WD6TXU63VO5GAMB4XA4EE56Q+0x34>
    f956:	b662      	cpsie	i
    f958:	2018      	movs	r0, #24
    f95a:	f04f 4480 	mov.w	r4, #1073741824	; 0x40000000
    f95e:	f8c4 0308 	str.w	r0, [r4, #776]	; 0x308
    f962:	61a6      	str	r6, [r4, #24]
    f964:	f44f 7020 	mov.w	r0, #640	; 0x280
    f968:	f8ad 0000 	strh.w	r0, [sp]
    f96c:	f8bd 0000 	ldrh.w	r0, [sp]
    f970:	1e41      	subs	r1, r0, #1
    f972:	f8ad 1000 	strh.w	r1, [sp]
    f976:	d2f9      	bcs.n	f96c <sym_A4JUKJUCTJV55V2WD6TXU63VO5GAMB4XA4EE56Q+0x48>
    f978:	2700      	movs	r7, #0
    f97a:	f8c4 710c 	str.w	r7, [r4, #268]	; 0x10c
    f97e:	f8c4 7110 	str.w	r7, [r4, #272]	; 0x110
    f982:	4808      	ldr	r0, [pc, #32]	; (f9a4 <sym_A4JUKJUCTJV55V2WD6TXU63VO5GAMB4XA4EE56Q+0x80>)
    f984:	3008      	adds	r0, #8
    f986:	f008 fb06 	bl	17f96 <sym_YS3AHD7GWBHZEQHPIQANPGALEXB4QGY5O2DQKRY>
    f98a:	702f      	strb	r7, [r5, #0]
    f98c:	f7ff fd5a 	bl	f444 <MPSL_IRQ_CLOCK_Handler+0x88>
    f990:	6166      	str	r6, [r4, #20]
    f992:	7968      	ldrb	r0, [r5, #5]
    f994:	f000 007f 	and.w	r0, r0, #127	; 0x7f
    f998:	f8c4 0538 	str.w	r0, [r4, #1336]	; 0x538
    f99c:	2018      	movs	r0, #24
    f99e:	f8c4 0304 	str.w	r0, [r4, #772]	; 0x304
    f9a2:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
    f9a4:	20000030 	.word	0x20000030

0000f9a8 <sym_4PX37LW4KIUYQZ73JWLPH5GAGIRWAKTV3E6F62Q>:
    f9a8:	b510      	push	{r4, lr}
    f9aa:	4c04      	ldr	r4, [pc, #16]	; (f9bc <sym_4PX37LW4KIUYQZ73JWLPH5GAGIRWAKTV3E6F62Q+0x14>)
    f9ac:	7e20      	ldrb	r0, [r4, #24]
    f9ae:	f000 0003 	and.w	r0, r0, #3
    f9b2:	f008 fa8a 	bl	17eca <sym_LZEJCP3HZIBKMJQC47UQXAHGCQ52QF47EXOH2WA>
    f9b6:	2800      	cmp	r0, #0
    f9b8:	d0f8      	beq.n	f9ac <sym_4PX37LW4KIUYQZ73JWLPH5GAGIRWAKTV3E6F62Q+0x4>
    f9ba:	bd10      	pop	{r4, pc}
    f9bc:	20000030 	.word	0x20000030

0000f9c0 <sym_PIRI3CTIHOPR5MPDQRHBJRRZEA2NVOD4J3GXGOA>:
    f9c0:	4901      	ldr	r1, [pc, #4]	; (f9c8 <sym_PIRI3CTIHOPR5MPDQRHBJRRZEA2NVOD4J3GXGOA+0x8>)
    f9c2:	2001      	movs	r0, #1
    f9c4:	7008      	strb	r0, [r1, #0]
    f9c6:	4770      	bx	lr
    f9c8:	20000288 	.word	0x20000288

0000f9cc <sym_LIY23QT3GHIV7NCGJ6ZW6LB2ZUSI56CIFCL6HUY>:
    f9cc:	f04f 4080 	mov.w	r0, #1073741824	; 0x40000000
    f9d0:	f8d0 0100 	ldr.w	r0, [r0, #256]	; 0x100
    f9d4:	b918      	cbnz	r0, f9de <sym_LIY23QT3GHIV7NCGJ6ZW6LB2ZUSI56CIFCL6HUY+0x12>
    f9d6:	4803      	ldr	r0, [pc, #12]	; (f9e4 <sym_LIY23QT3GHIV7NCGJ6ZW6LB2ZUSI56CIFCL6HUY+0x18>)
    f9d8:	7800      	ldrb	r0, [r0, #0]
    f9da:	2800      	cmp	r0, #0
    f9dc:	d000      	beq.n	f9e0 <sym_LIY23QT3GHIV7NCGJ6ZW6LB2ZUSI56CIFCL6HUY+0x14>
    f9de:	2001      	movs	r0, #1
    f9e0:	4770      	bx	lr
    f9e2:	0000      	.short	0x0000
    f9e4:	20000288 	.word	0x20000288

0000f9e8 <sym_XK3TMLCZALCYYWGULGHQIRSOBMPIIPJ7HEMOZIQ>:
    f9e8:	f04f 4080 	mov.w	r0, #1073741824	; 0x40000000
    f9ec:	2101      	movs	r1, #1
    f9ee:	6041      	str	r1, [r0, #4]
    f9f0:	2100      	movs	r1, #0
    f9f2:	f8c0 1100 	str.w	r1, [r0, #256]	; 0x100
    f9f6:	4801      	ldr	r0, [pc, #4]	; (f9fc <sym_XK3TMLCZALCYYWGULGHQIRSOBMPIIPJ7HEMOZIQ+0x14>)
    f9f8:	7001      	strb	r1, [r0, #0]
    f9fa:	4770      	bx	lr
    f9fc:	20000288 	.word	0x20000288

0000fa00 <sym_7BUNPUBNWNFVXXIMNFFNK765OVON5LBIUZ66QRI>:
    fa00:	4802      	ldr	r0, [pc, #8]	; (fa0c <sym_7BUNPUBNWNFVXXIMNFFNK765OVON5LBIUZ66QRI+0xc>)
    fa02:	6800      	ldr	r0, [r0, #0]
    fa04:	f000 0003 	and.w	r0, r0, #3
    fa08:	4770      	bx	lr
    fa0a:	0000      	.short	0x0000
    fa0c:	4000041c 	.word	0x4000041c
    fa10:	b510      	push	{r4, lr}
    fa12:	b131      	cbz	r1, fa22 <sym_7BUNPUBNWNFVXXIMNFFNK765OVON5LBIUZ66QRI+0x22>
    fa14:	2901      	cmp	r1, #1
    fa16:	d007      	beq.n	fa28 <sym_7BUNPUBNWNFVXXIMNFFNK765OVON5LBIUZ66QRI+0x28>
    fa18:	f240 3102 	movw	r1, #770	; 0x302
    fa1c:	a005      	add	r0, pc, #20	; (adr r0, fa34 <sym_7BUNPUBNWNFVXXIMNFFNK765OVON5LBIUZ66QRI+0x34>)
    fa1e:	f000 f80f 	bl	fa40 <sym_4JLKMM32SOXCP6XBYAWZDUIMUJIYXLKKDBOFLHI>
    fa22:	f8d0 0414 	ldr.w	r0, [r0, #1044]	; 0x414
    fa26:	e001      	b.n	fa2c <sym_7BUNPUBNWNFVXXIMNFFNK765OVON5LBIUZ66QRI+0x2c>
    fa28:	f8d0 0408 	ldr.w	r0, [r0, #1032]	; 0x408
    fa2c:	f000 0001 	and.w	r0, r0, #1
    fa30:	bd10      	pop	{r4, pc}
    fa32:	0000      	.short	0x0000
    fa34:	5f66726e 	.word	0x5f66726e
    fa38:	636f6c63 	.word	0x636f6c63
    fa3c:	00682e6b 	.word	0x00682e6b

0000fa40 <sym_4JLKMM32SOXCP6XBYAWZDUIMUJIYXLKKDBOFLHI>:
    fa40:	4a02      	ldr	r2, [pc, #8]	; (fa4c <sym_4JLKMM32SOXCP6XBYAWZDUIMUJIYXLKKDBOFLHI+0xc>)
    fa42:	6852      	ldr	r2, [r2, #4]
    fa44:	b102      	cbz	r2, fa48 <sym_4JLKMM32SOXCP6XBYAWZDUIMUJIYXLKKDBOFLHI+0x8>
    fa46:	4710      	bx	r2
    fa48:	e7fe      	b.n	fa48 <sym_4JLKMM32SOXCP6XBYAWZDUIMUJIYXLKKDBOFLHI+0x8>
    fa4a:	0000      	.short	0x0000
    fa4c:	20000050 	.word	0x20000050
    fa50:	4806      	ldr	r0, [pc, #24]	; (fa6c <sym_4JLKMM32SOXCP6XBYAWZDUIMUJIYXLKKDBOFLHI+0x2c>)
    fa52:	b510      	push	{r4, lr}
    fa54:	2100      	movs	r1, #0
    fa56:	6001      	str	r1, [r0, #0]
    fa58:	2101      	movs	r1, #1
    fa5a:	6001      	str	r1, [r0, #0]
    fa5c:	4608      	mov	r0, r1
    fa5e:	f008 fa5b 	bl	17f18 <sym_AL7FCNVVCF72BNYCTLA5UGAWCQFXFPGE2ULTWOA+0x2e>
    fa62:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
    fa66:	2001      	movs	r0, #1
    fa68:	f008 ba49 	b.w	17efe <sym_AL7FCNVVCF72BNYCTLA5UGAWCQFXFPGE2ULTWOA+0x14>
    fa6c:	40001ffc 	.word	0x40001ffc
    fa70:	4807      	ldr	r0, [pc, #28]	; (fa90 <sym_4JLKMM32SOXCP6XBYAWZDUIMUJIYXLKKDBOFLHI+0x50>)
    fa72:	b510      	push	{r4, lr}
    fa74:	2101      	movs	r1, #1
    fa76:	6041      	str	r1, [r0, #4]
    fa78:	1e89      	subs	r1, r1, #2
    fa7a:	f8c0 1308 	str.w	r1, [r0, #776]	; 0x308
    fa7e:	200c      	movs	r0, #12
    fa80:	f008 fa4a 	bl	17f18 <sym_AL7FCNVVCF72BNYCTLA5UGAWCQFXFPGE2ULTWOA+0x2e>
    fa84:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
    fa88:	200c      	movs	r0, #12
    fa8a:	f008 ba38 	b.w	17efe <sym_AL7FCNVVCF72BNYCTLA5UGAWCQFXFPGE2ULTWOA+0x14>
    fa8e:	0000      	.short	0x0000
    fa90:	4000c000 	.word	0x4000c000

0000fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>:
    fa94:	b5fe      	push	{r1, r2, r3, r4, r5, r6, r7, lr}
    fa96:	4a10      	ldr	r2, [pc, #64]	; (fad8 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q+0x44>)
    fa98:	6855      	ldr	r5, [r2, #4]
    fa9a:	b1e5      	cbz	r5, fad6 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q+0x42>
    fa9c:	2200      	movs	r2, #0
    fa9e:	4603      	mov	r3, r0
    faa0:	466e      	mov	r6, sp
    faa2:	240a      	movs	r4, #10
    faa4:	e003      	b.n	faae <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q+0x1a>
    faa6:	fbb0 f0f4 	udiv	r0, r0, r4
    faaa:	1c52      	adds	r2, r2, #1
    faac:	b2d2      	uxtb	r2, r2
    faae:	2800      	cmp	r0, #0
    fab0:	d1f9      	bne.n	faa6 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q+0x12>
    fab2:	54b0      	strb	r0, [r6, r2]
    fab4:	e00a      	b.n	facc <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q+0x38>
    fab6:	bf00      	nop
    fab8:	fbb3 f0f4 	udiv	r0, r3, r4
    fabc:	fb04 3010 	mls	r0, r4, r0, r3
    fac0:	fbb3 f3f4 	udiv	r3, r3, r4
    fac4:	1e52      	subs	r2, r2, #1
    fac6:	b2d2      	uxtb	r2, r2
    fac8:	3030      	adds	r0, #48	; 0x30
    faca:	54b0      	strb	r0, [r6, r2]
    facc:	2a00      	cmp	r2, #0
    face:	d1f3      	bne.n	fab8 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q+0x24>
    fad0:	4630      	mov	r0, r6
    fad2:	47a8      	blx	r5
    fad4:	bdfe      	pop	{r1, r2, r3, r4, r5, r6, r7, pc}
    fad6:	e7fe      	b.n	fad6 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q+0x42>
    fad8:	20000050 	.word	0x20000050

0000fadc <mpsl_init>:
    fadc:	b570      	push	{r4, r5, r6, lr}
    fade:	4c17      	ldr	r4, [pc, #92]	; (fb3c <mpsl_init+0x60>)
    fae0:	4606      	mov	r6, r0
    fae2:	460d      	mov	r5, r1
    fae4:	7860      	ldrb	r0, [r4, #1]
    fae6:	b110      	cbz	r0, faee <mpsl_init+0x12>
    fae8:	f04f 30ff 	mov.w	r0, #4294967295
    faec:	bd70      	pop	{r4, r5, r6, pc}
    faee:	b906      	cbnz	r6, faf2 <mpsl_init+0x16>
    faf0:	4e13      	ldr	r6, [pc, #76]	; (fb40 <mpsl_init+0x64>)
    faf2:	6062      	str	r2, [r4, #4]
    faf4:	7025      	strb	r5, [r4, #0]
    faf6:	f7ff ffab 	bl	fa50 <sym_4JLKMM32SOXCP6XBYAWZDUIMUJIYXLKKDBOFLHI+0x10>
    fafa:	f7ff ffb9 	bl	fa70 <sym_4JLKMM32SOXCP6XBYAWZDUIMUJIYXLKKDBOFLHI+0x30>
    fafe:	4630      	mov	r0, r6
    fb00:	f7ff fe92 	bl	f828 <sym_FYHKZOVAJN6VDDHY43FT7PF4YLRDHWRTEWHFG6I>
    fb04:	0006      	movs	r6, r0
    fb06:	d1f1      	bne.n	faec <mpsl_init+0x10>
    fb08:	f7fe fef4 	bl	e8f4 <sym_ZC6NJBPUISWILQK6OTOBMJVVUT63JRIDGH5WNCY>
    fb0c:	f7ff ff0a 	bl	f924 <sym_A4JUKJUCTJV55V2WD6TXU63VO5GAMB4XA4EE56Q>
    fb10:	f008 f8d0 	bl	17cb4 <sym_47MBMNER75N2M6YIZRIF4DAHSAATJOMK3LAIDCY>
    fb14:	4628      	mov	r0, r5
    fb16:	f008 f9f2 	bl	17efe <sym_AL7FCNVVCF72BNYCTLA5UGAWCQFXFPGE2ULTWOA+0x14>
    fb1a:	2001      	movs	r0, #1
    fb1c:	2d00      	cmp	r5, #0
    fb1e:	db09      	blt.n	fb34 <mpsl_init+0x58>
    fb20:	f005 011f 	and.w	r1, r5, #31
    fb24:	fa00 f101 	lsl.w	r1, r0, r1
    fb28:	096a      	lsrs	r2, r5, #5
    fb2a:	0092      	lsls	r2, r2, #2
    fb2c:	f102 22e0 	add.w	r2, r2, #3758153728	; 0xe000e000
    fb30:	f8c2 1100 	str.w	r1, [r2, #256]	; 0x100
    fb34:	7060      	strb	r0, [r4, #1]
    fb36:	4630      	mov	r0, r6
    fb38:	bd70      	pop	{r4, r5, r6, pc}
    fb3a:	0000      	.short	0x0000
    fb3c:	20000050 	.word	0x20000050
    fb40:	00017f3a 	.word	0x00017f3a

0000fb44 <mpsl_is_initialized>:
    fb44:	4801      	ldr	r0, [pc, #4]	; (fb4c <mpsl_is_initialized+0x8>)
    fb46:	7840      	ldrb	r0, [r0, #1]
    fb48:	4770      	bx	lr
    fb4a:	0000      	.short	0x0000
    fb4c:	20000050 	.word	0x20000050

0000fb50 <sym_XR32KBBIVYD5OVRJM2RBQ57EGCCM2C3F5IY6OHQ>:
    fb50:	4807      	ldr	r0, [pc, #28]	; (fb70 <sym_XR32KBBIVYD5OVRJM2RBQ57EGCCM2C3F5IY6OHQ+0x20>)
    fb52:	f990 0000 	ldrsb.w	r0, [r0]
    fb56:	2800      	cmp	r0, #0
    fb58:	db09      	blt.n	fb6e <sym_XR32KBBIVYD5OVRJM2RBQ57EGCCM2C3F5IY6OHQ+0x1e>
    fb5a:	f000 021f 	and.w	r2, r0, #31
    fb5e:	2101      	movs	r1, #1
    fb60:	4091      	lsls	r1, r2
    fb62:	0940      	lsrs	r0, r0, #5
    fb64:	0080      	lsls	r0, r0, #2
    fb66:	f100 20e0 	add.w	r0, r0, #3758153728	; 0xe000e000
    fb6a:	f8c0 1200 	str.w	r1, [r0, #512]	; 0x200
    fb6e:	4770      	bx	lr
    fb70:	20000050 	.word	0x20000050

0000fb74 <mpsl_temperature_get>:
    fb74:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
    fb78:	2601      	movs	r6, #1
    fb7a:	f04f 22e0 	mov.w	r2, #3758153728	; 0xe000e000
    fb7e:	0331      	lsls	r1, r6, #12
    fb80:	f04f 0800 	mov.w	r8, #0
    fb84:	4640      	mov	r0, r8
    fb86:	f8c2 1180 	str.w	r1, [r2, #384]	; 0x180
    fb8a:	f3bf 8f4f 	dsb	sy
    fb8e:	f3bf 8f6f 	isb	sy
    fb92:	4c16      	ldr	r4, [pc, #88]	; (fbec <mpsl_temperature_get+0x78>)
    fb94:	f8c4 0100 	str.w	r0, [r4, #256]	; 0x100
    fb98:	200c      	movs	r0, #12
    fb9a:	f008 f9dc 	bl	17f56 <sym_AL7FCNVVCF72BNYCTLA5UGAWCQFXFPGE2ULTWOA+0x6c>
    fb9e:	4d14      	ldr	r5, [pc, #80]	; (fbf0 <mpsl_temperature_get+0x7c>)
    fba0:	6828      	ldr	r0, [r5, #0]
    fba2:	43c0      	mvns	r0, r0
    fba4:	f340 1700 	sbfx	r7, r0, #4, #1
    fba8:	6828      	ldr	r0, [r5, #0]
    fbaa:	f040 0010 	orr.w	r0, r0, #16
    fbae:	6028      	str	r0, [r5, #0]
    fbb0:	f8c4 6304 	str.w	r6, [r4, #772]	; 0x304
    fbb4:	6026      	str	r6, [r4, #0]
    fbb6:	1c7f      	adds	r7, r7, #1
    fbb8:	e002      	b.n	fbc0 <mpsl_temperature_get+0x4c>
    fbba:	bf00      	nop
    fbbc:	f000 f890 	bl	fce0 <sym_PAD7XREQQORPXRJMXMW2EYVS4S43S42A5D43SBA>
    fbc0:	f8d4 0100 	ldr.w	r0, [r4, #256]	; 0x100
    fbc4:	2800      	cmp	r0, #0
    fbc6:	d0f9      	beq.n	fbbc <mpsl_temperature_get+0x48>
    fbc8:	b91f      	cbnz	r7, fbd2 <mpsl_temperature_get+0x5e>
    fbca:	6828      	ldr	r0, [r5, #0]
    fbcc:	f020 0010 	bic.w	r0, r0, #16
    fbd0:	6028      	str	r0, [r5, #0]
    fbd2:	4808      	ldr	r0, [pc, #32]	; (fbf4 <mpsl_temperature_get+0x80>)
    fbd4:	6805      	ldr	r5, [r0, #0]
    fbd6:	6066      	str	r6, [r4, #4]
    fbd8:	f8c4 6308 	str.w	r6, [r4, #776]	; 0x308
    fbdc:	f8c4 8100 	str.w	r8, [r4, #256]	; 0x100
    fbe0:	200c      	movs	r0, #12
    fbe2:	f008 f9b8 	bl	17f56 <sym_AL7FCNVVCF72BNYCTLA5UGAWCQFXFPGE2ULTWOA+0x6c>
    fbe6:	4628      	mov	r0, r5
    fbe8:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
    fbec:	4000c000 	.word	0x4000c000
    fbf0:	e000ed10 	.word	0xe000ed10
    fbf4:	4000c508 	.word	0x4000c508

0000fbf8 <sym_W7ROFHNOSDKPIRUKDGIZZ5YR3MC3DAM2YLJOUIA>:
    fbf8:	b510      	push	{r4, lr}
    fbfa:	4602      	mov	r2, r0
    fbfc:	2005      	movs	r0, #5
    fbfe:	490c      	ldr	r1, [pc, #48]	; (fc30 <sym_W7ROFHNOSDKPIRUKDGIZZ5YR3MC3DAM2YLJOUIA+0x38>)
    fc00:	e004      	b.n	fc0c <sym_W7ROFHNOSDKPIRUKDGIZZ5YR3MC3DAM2YLJOUIA+0x14>
    fc02:	bf00      	nop
    fc04:	eb01 03c0 	add.w	r3, r1, r0, lsl #3
    fc08:	791b      	ldrb	r3, [r3, #4]
    fc0a:	b133      	cbz	r3, fc1a <sym_W7ROFHNOSDKPIRUKDGIZZ5YR3MC3DAM2YLJOUIA+0x22>
    fc0c:	1e40      	subs	r0, r0, #1
    fc0e:	b2c0      	uxtb	r0, r0
    fc10:	d2f8      	bcs.n	fc04 <sym_W7ROFHNOSDKPIRUKDGIZZ5YR3MC3DAM2YLJOUIA+0xc>
    fc12:	214b      	movs	r1, #75	; 0x4b
    fc14:	2069      	movs	r0, #105	; 0x69
    fc16:	f7ff ff3d 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    fc1a:	f841 2030 	str.w	r2, [r1, r0, lsl #3]
    fc1e:	eb01 01c0 	add.w	r1, r1, r0, lsl #3
    fc22:	2200      	movs	r2, #0
    fc24:	714a      	strb	r2, [r1, #5]
    fc26:	718a      	strb	r2, [r1, #6]
    fc28:	2201      	movs	r2, #1
    fc2a:	710a      	strb	r2, [r1, #4]
    fc2c:	bd10      	pop	{r4, pc}
    fc2e:	0000      	.short	0x0000
    fc30:	20000f28 	.word	0x20000f28

0000fc34 <sym_GURZ3AH6X65RGSKYMYNWZVP6HM56LA5MRAQWT6Q>:
    fc34:	b510      	push	{r4, lr}
    fc36:	2805      	cmp	r0, #5
    fc38:	d301      	bcc.n	fc3e <sym_GURZ3AH6X65RGSKYMYNWZVP6HM56LA5MRAQWT6Q+0xa>
    fc3a:	215a      	movs	r1, #90	; 0x5a
    fc3c:	e006      	b.n	fc4c <sym_GURZ3AH6X65RGSKYMYNWZVP6HM56LA5MRAQWT6Q+0x18>
    fc3e:	490a      	ldr	r1, [pc, #40]	; (fc68 <sym_GURZ3AH6X65RGSKYMYNWZVP6HM56LA5MRAQWT6Q+0x34>)
    fc40:	eb01 00c0 	add.w	r0, r1, r0, lsl #3
    fc44:	7901      	ldrb	r1, [r0, #4]
    fc46:	2901      	cmp	r1, #1
    fc48:	d003      	beq.n	fc52 <sym_GURZ3AH6X65RGSKYMYNWZVP6HM56LA5MRAQWT6Q+0x1e>
    fc4a:	215b      	movs	r1, #91	; 0x5b
    fc4c:	2069      	movs	r0, #105	; 0x69
    fc4e:	f7ff ff21 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
    fc52:	7941      	ldrb	r1, [r0, #5]
    fc54:	7982      	ldrb	r2, [r0, #6]
    fc56:	1c49      	adds	r1, r1, #1
    fc58:	b2c9      	uxtb	r1, r1
    fc5a:	428a      	cmp	r2, r1
    fc5c:	d000      	beq.n	fc60 <sym_GURZ3AH6X65RGSKYMYNWZVP6HM56LA5MRAQWT6Q+0x2c>
    fc5e:	7141      	strb	r1, [r0, #5]
    fc60:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
    fc64:	f7ff bf74 	b.w	fb50 <sym_XR32KBBIVYD5OVRJM2RBQ57EGCCM2C3F5IY6OHQ>
    fc68:	20000f28 	.word	0x20000f28

0000fc6c <sym_VWGRUQT3LYZHLYS5KJ7UOCJEHLDJTWH4RVJBGKQ>:
    fc6c:	b570      	push	{r4, r5, r6, lr}
    fc6e:	2505      	movs	r5, #5
    fc70:	4e0e      	ldr	r6, [pc, #56]	; (fcac <sym_VWGRUQT3LYZHLYS5KJ7UOCJEHLDJTWH4RVJBGKQ+0x40>)
    fc72:	4c0f      	ldr	r4, [pc, #60]	; (fcb0 <sym_VWGRUQT3LYZHLYS5KJ7UOCJEHLDJTWH4RVJBGKQ+0x44>)
    fc74:	e016      	b.n	fca4 <sym_VWGRUQT3LYZHLYS5KJ7UOCJEHLDJTWH4RVJBGKQ+0x38>
    fc76:	7821      	ldrb	r1, [r4, #0]
    fc78:	eb06 00c1 	add.w	r0, r6, r1, lsl #3
    fc7c:	7902      	ldrb	r2, [r0, #4]
    fc7e:	2a01      	cmp	r2, #1
    fc80:	d108      	bne.n	fc94 <sym_VWGRUQT3LYZHLYS5KJ7UOCJEHLDJTWH4RVJBGKQ+0x28>
    fc82:	7942      	ldrb	r2, [r0, #5]
    fc84:	7983      	ldrb	r3, [r0, #6]
    fc86:	429a      	cmp	r2, r3
    fc88:	d004      	beq.n	fc94 <sym_VWGRUQT3LYZHLYS5KJ7UOCJEHLDJTWH4RVJBGKQ+0x28>
    fc8a:	7942      	ldrb	r2, [r0, #5]
    fc8c:	7182      	strb	r2, [r0, #6]
    fc8e:	f856 0031 	ldr.w	r0, [r6, r1, lsl #3]
    fc92:	4780      	blx	r0
    fc94:	7820      	ldrb	r0, [r4, #0]
    fc96:	1c40      	adds	r0, r0, #1
    fc98:	b2c0      	uxtb	r0, r0
    fc9a:	7020      	strb	r0, [r4, #0]
    fc9c:	2805      	cmp	r0, #5
    fc9e:	d301      	bcc.n	fca4 <sym_VWGRUQT3LYZHLYS5KJ7UOCJEHLDJTWH4RVJBGKQ+0x38>
    fca0:	2000      	movs	r0, #0
    fca2:	7020      	strb	r0, [r4, #0]
    fca4:	1e6d      	subs	r5, r5, #1
    fca6:	b2ed      	uxtb	r5, r5
    fca8:	d2e5      	bcs.n	fc76 <sym_VWGRUQT3LYZHLYS5KJ7UOCJEHLDJTWH4RVJBGKQ+0xa>
    fcaa:	bd70      	pop	{r4, r5, r6, pc}
    fcac:	20000f28 	.word	0x20000f28
    fcb0:	20000289 	.word	0x20000289

0000fcb4 <sym_4WL3TG4Q7RCTFEMPQ2CQTOL4PAKUULDPJUM5DTY>:
    fcb4:	b500      	push	{lr}
    fcb6:	f008 f97d 	bl	17fb4 <sym_BN6ZO2NBHRGKZ2NRQYWFBXVGKNG6Y5K55UNAWGA>
    fcba:	b940      	cbnz	r0, fcce <sym_4WL3TG4Q7RCTFEMPQ2CQTOL4PAKUULDPJUM5DTY+0x1a>
    fcbc:	f008 f984 	bl	17fc8 <sym_5EMXP3L6SPQSCAJKKRH62ZOKJCCSKLI3WEX2WHY>
    fcc0:	b928      	cbnz	r0, fcce <sym_4WL3TG4Q7RCTFEMPQ2CQTOL4PAKUULDPJUM5DTY+0x1a>
    fcc2:	f008 f998 	bl	17ff6 <sym_H2QJCU2ORTYAFBAQQ2FHUYIAZO4HCXEKCQ4SS2Q>
    fcc6:	b910      	cbnz	r0, fcce <sym_4WL3TG4Q7RCTFEMPQ2CQTOL4PAKUULDPJUM5DTY+0x1a>
    fcc8:	f008 f9a9 	bl	1801e <sym_QPP3IZFSWHUV4JQ6ODMIVIARPB4PQYUFESV7BRQ>
    fccc:	b108      	cbz	r0, fcd2 <sym_4WL3TG4Q7RCTFEMPQ2CQTOL4PAKUULDPJUM5DTY+0x1e>
    fcce:	4802      	ldr	r0, [pc, #8]	; (fcd8 <sym_4WL3TG4Q7RCTFEMPQ2CQTOL4PAKUULDPJUM5DTY+0x24>)
    fcd0:	bd00      	pop	{pc}
    fcd2:	4802      	ldr	r0, [pc, #8]	; (fcdc <sym_4WL3TG4Q7RCTFEMPQ2CQTOL4PAKUULDPJUM5DTY+0x28>)
    fcd4:	bd00      	pop	{pc}
    fcd6:	0000      	.short	0x0000
    fcd8:	4000050c 	.word	0x4000050c
    fcdc:	4001e700 	.word	0x4001e700

0000fce0 <sym_PAD7XREQQORPXRJMXMW2EYVS4S43S42A5D43SBA>:
    fce0:	b510      	push	{r4, lr}
    fce2:	f008 f99c 	bl	1801e <sym_QPP3IZFSWHUV4JQ6ODMIVIARPB4PQYUFESV7BRQ>
    fce6:	b330      	cbz	r0, fd36 <sym_PAD7XREQQORPXRJMXMW2EYVS4S43S42A5D43SBA+0x56>
    fce8:	f3ef 8010 	mrs	r0, PRIMASK
    fcec:	b1c8      	cbz	r0, fd22 <sym_PAD7XREQQORPXRJMXMW2EYVS4S43S42A5D43SBA+0x42>
    fcee:	2100      	movs	r1, #0
    fcf0:	b672      	cpsid	i
    fcf2:	4812      	ldr	r0, [pc, #72]	; (fd3c <sym_PAD7XREQQORPXRJMXMW2EYVS4S43S42A5D43SBA+0x5c>)
    fcf4:	6802      	ldr	r2, [r0, #0]
    fcf6:	6803      	ldr	r3, [r0, #0]
    fcf8:	f3c2 1200 	ubfx	r2, r2, #4, #1
    fcfc:	f043 0310 	orr.w	r3, r3, #16
    fd00:	6003      	str	r3, [r0, #0]
    fd02:	f04f 23e0 	mov.w	r3, #3758153728	; 0xe000e000
    fd06:	f8d3 4200 	ldr.w	r4, [r3, #512]	; 0x200
    fd0a:	f8d3 3204 	ldr.w	r3, [r3, #516]	; 0x204
    fd0e:	431c      	orrs	r4, r3
    fd10:	d000      	beq.n	fd14 <sym_PAD7XREQQORPXRJMXMW2EYVS4S43S42A5D43SBA+0x34>
    fd12:	bf40      	sev
    fd14:	bf20      	wfe
    fd16:	bf00      	nop
    fd18:	bf00      	nop
    fd1a:	bf00      	nop
    fd1c:	bf00      	nop
    fd1e:	b112      	cbz	r2, fd26 <sym_PAD7XREQQORPXRJMXMW2EYVS4S43S42A5D43SBA+0x46>
    fd20:	e005      	b.n	fd2e <sym_PAD7XREQQORPXRJMXMW2EYVS4S43S42A5D43SBA+0x4e>
    fd22:	2101      	movs	r1, #1
    fd24:	e7e4      	b.n	fcf0 <sym_PAD7XREQQORPXRJMXMW2EYVS4S43S42A5D43SBA+0x10>
    fd26:	6802      	ldr	r2, [r0, #0]
    fd28:	f022 0210 	bic.w	r2, r2, #16
    fd2c:	6002      	str	r2, [r0, #0]
    fd2e:	2900      	cmp	r1, #0
    fd30:	d000      	beq.n	fd34 <sym_PAD7XREQQORPXRJMXMW2EYVS4S43S42A5D43SBA+0x54>
    fd32:	b662      	cpsie	i
    fd34:	bd10      	pop	{r4, pc}
    fd36:	bf20      	wfe
    fd38:	bd10      	pop	{r4, pc}
    fd3a:	0000      	.short	0x0000
    fd3c:	e000ed10 	.word	0xe000ed10

0000fd40 <sym_NIQMZN22R7GGCSNM3BZ25GTCR6D457XB3DIUGWA>:
    fd40:	0001828f 000182ab 00018299 000182a5     ................
    fd50:	00018293 0001828d 0001828b 000182b1     ................
    fd60:	0001829f 00018285 0001827d 00018281     ........}.......
    fd70:	00018277                                w...

0000fd74 <mpsl_fem_disable>:
    fd74:	4801      	ldr	r0, [pc, #4]	; (fd7c <mpsl_fem_disable+0x8>)
    fd76:	6800      	ldr	r0, [r0, #0]
    fd78:	6800      	ldr	r0, [r0, #0]
    fd7a:	4700      	bx	r0
    fd7c:	20000058 	.word	0x20000058

0000fd80 <mpsl_fem_lna_configuration_clear>:
    fd80:	4801      	ldr	r0, [pc, #4]	; (fd88 <mpsl_fem_lna_configuration_clear+0x8>)
    fd82:	6800      	ldr	r0, [r0, #0]
    fd84:	6900      	ldr	r0, [r0, #16]
    fd86:	4700      	bx	r0
    fd88:	20000058 	.word	0x20000058

0000fd8c <mpsl_fem_lna_configuration_set>:
    fd8c:	4a01      	ldr	r2, [pc, #4]	; (fd94 <mpsl_fem_lna_configuration_set+0x8>)
    fd8e:	6812      	ldr	r2, [r2, #0]
    fd90:	6892      	ldr	r2, [r2, #8]
    fd92:	4710      	bx	r2
    fd94:	20000058 	.word	0x20000058

0000fd98 <mpsl_fem_pa_configuration_clear>:
    fd98:	4801      	ldr	r0, [pc, #4]	; (fda0 <mpsl_fem_pa_configuration_clear+0x8>)
    fd9a:	6800      	ldr	r0, [r0, #0]
    fd9c:	68c0      	ldr	r0, [r0, #12]
    fd9e:	4700      	bx	r0
    fda0:	20000058 	.word	0x20000058

0000fda4 <mpsl_fem_pa_configuration_set>:
    fda4:	4a01      	ldr	r2, [pc, #4]	; (fdac <mpsl_fem_pa_configuration_set+0x8>)
    fda6:	6812      	ldr	r2, [r2, #0]
    fda8:	6852      	ldr	r2, [r2, #4]
    fdaa:	4710      	bx	r2
    fdac:	20000058 	.word	0x20000058

0000fdb0 <mpsl_fem_pa_is_configured>:
    fdb0:	4901      	ldr	r1, [pc, #4]	; (fdb8 <mpsl_fem_pa_is_configured+0x8>)
    fdb2:	6809      	ldr	r1, [r1, #0]
    fdb4:	6a09      	ldr	r1, [r1, #32]
    fdb6:	4708      	bx	r1
    fdb8:	20000058 	.word	0x20000058

0000fdbc <mpsl_fem_device_config_254_apply_get>:
    fdbc:	4801      	ldr	r0, [pc, #4]	; (fdc4 <mpsl_fem_device_config_254_apply_get+0x8>)
    fdbe:	7800      	ldrb	r0, [r0, #0]
    fdc0:	4770      	bx	lr
    fdc2:	0000      	.short	0x0000
    fdc4:	2000028a 	.word	0x2000028a
    fdc8:	b51f      	push	{r0, r1, r2, r3, r4, lr}
    fdca:	4c17      	ldr	r4, [pc, #92]	; (fe28 <mpsl_fem_device_config_254_apply_get+0x6c>)
    fdcc:	7a20      	ldrb	r0, [r4, #8]
    fdce:	2802      	cmp	r0, #2
    fdd0:	d200      	bcs.n	fdd4 <mpsl_fem_device_config_254_apply_get+0x18>
    fdd2:	2002      	movs	r0, #2
    fdd4:	f88d 0001 	strb.w	r0, [sp, #1]
    fdd8:	79e0      	ldrb	r0, [r4, #7]
    fdda:	2803      	cmp	r0, #3
    fddc:	d200      	bcs.n	fde0 <mpsl_fem_device_config_254_apply_get+0x24>
    fdde:	2003      	movs	r0, #3
    fde0:	f88d 0000 	strb.w	r0, [sp]
    fde4:	79a0      	ldrb	r0, [r4, #6]
    fde6:	f8ad 0004 	strh.w	r0, [sp, #4]
    fdea:	7960      	ldrb	r0, [r4, #5]
    fdec:	f8ad 0002 	strh.w	r0, [sp, #2]
    fdf0:	4668      	mov	r0, sp
    fdf2:	f006 f95b 	bl	160ac <sym_XQWU4MX22DPQIRRYTXBNWTH2DBYK7MH33FME7FI>
    fdf6:	b108      	cbz	r0, fdfc <mpsl_fem_device_config_254_apply_get+0x40>
    fdf8:	2180      	movs	r1, #128	; 0x80
    fdfa:	e010      	b.n	fe1e <mpsl_fem_device_config_254_apply_get+0x62>
    fdfc:	68e0      	ldr	r0, [r4, #12]
    fdfe:	9002      	str	r0, [sp, #8]
    fe00:	a802      	add	r0, sp, #8
    fe02:	f006 f969 	bl	160d8 <sym_DVVOECRRYK6EAGDREB2UKKQZT5MAOOUK66XNPTA>
    fe06:	b108      	cbz	r0, fe0c <mpsl_fem_device_config_254_apply_get+0x50>
    fe08:	2184      	movs	r1, #132	; 0x84
    fe0a:	e008      	b.n	fe1e <mpsl_fem_device_config_254_apply_get+0x62>
    fe0c:	4807      	ldr	r0, [pc, #28]	; (fe2c <mpsl_fem_device_config_254_apply_get+0x70>)
    fe0e:	6800      	ldr	r0, [r0, #0]
    fe10:	9003      	str	r0, [sp, #12]
    fe12:	a803      	add	r0, sp, #12
    fe14:	f00b faad 	bl	1b372 <sym_J2SUO2NMPPNDQZAGB2FE5TAXJFMJ5FZXKAPNVFQ>
    fe18:	2800      	cmp	r0, #0
    fe1a:	d003      	beq.n	fe24 <mpsl_fem_device_config_254_apply_get+0x68>
    fe1c:	2188      	movs	r1, #136	; 0x88
    fe1e:	2003      	movs	r0, #3
    fe20:	f000 f8e0 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
    fe24:	bd1f      	pop	{r0, r1, r2, r3, r4, pc}
    fe26:	0000      	.short	0x0000
    fe28:	20000f50 	.word	0x20000f50
    fe2c:	000100cc 	.word	0x000100cc

0000fe30 <sdc_build_revision_get>:
    fe30:	b510      	push	{r4, lr}
    fe32:	b128      	cbz	r0, fe40 <sdc_build_revision_get+0x10>
    fe34:	2214      	movs	r2, #20
    fe36:	4904      	ldr	r1, [pc, #16]	; (fe48 <sdc_build_revision_get+0x18>)
    fe38:	f008 f943 	bl	180c2 <sym_DQONLUECJTIEYFOFJXXAPJO4POIAJKJNKBGVN5A>
    fe3c:	2000      	movs	r0, #0
    fe3e:	bd10      	pop	{r4, pc}
    fe40:	f06f 0015 	mvn.w	r0, #21
    fe44:	bd10      	pop	{r4, pc}
    fe46:	0000      	.short	0x0000
    fe48:	000100e8 	.word	0x000100e8

0000fe4c <sdc_cfg_set>:
    fe4c:	b570      	push	{r4, r5, r6, lr}
    fe4e:	f06f 032c 	mvn.w	r3, #44	; 0x2c
    fe52:	bb78      	cbnz	r0, feb4 <sdc_cfg_set+0x68>
    fe54:	4c27      	ldr	r4, [pc, #156]	; (fef4 <sdc_cfg_set+0xa8>)
    fe56:	7860      	ldrb	r0, [r4, #1]
    fe58:	b108      	cbz	r0, fe5e <sdc_cfg_set+0x12>
    fe5a:	1198      	asrs	r0, r3, #6
    fe5c:	bd70      	pop	{r4, r5, r6, pc}
    fe5e:	b301      	cbz	r1, fea2 <sdc_cfg_set+0x56>
    fe60:	f06f 0515 	mvn.w	r5, #21
    fe64:	b33a      	cbz	r2, feb6 <sdc_cfg_set+0x6a>
    fe66:	4824      	ldr	r0, [pc, #144]	; (fef8 <sdc_cfg_set+0xac>)
    fe68:	290b      	cmp	r1, #11
    fe6a:	d23d      	bcs.n	fee8 <sdc_cfg_set+0x9c>
    fe6c:	e8df f001 	tbb	[pc, r1]
    fe70:	0c09063c 	.word	0x0c09063c
    fe74:	241a1310 	.word	0x241a1310
    fe78:	002d2716 	.word	0x002d2716
    fe7c:	7811      	ldrb	r1, [r2, #0]
    fe7e:	7001      	strb	r1, [r0, #0]
    fe80:	e027      	b.n	fed2 <sdc_cfg_set+0x86>
    fe82:	7811      	ldrb	r1, [r2, #0]
    fe84:	7041      	strb	r1, [r0, #1]
    fe86:	e024      	b.n	fed2 <sdc_cfg_set+0x86>
    fe88:	6811      	ldr	r1, [r2, #0]
    fe8a:	f8c0 1005 	str.w	r1, [r0, #5]
    fe8e:	e020      	b.n	fed2 <sdc_cfg_set+0x86>
    fe90:	6811      	ldr	r1, [r2, #0]
    fe92:	60c1      	str	r1, [r0, #12]
    fe94:	e01d      	b.n	fed2 <sdc_cfg_set+0x86>
    fe96:	7811      	ldrb	r1, [r2, #0]
    fe98:	7081      	strb	r1, [r0, #2]
    fe9a:	e01a      	b.n	fed2 <sdc_cfg_set+0x86>
    fe9c:	7811      	ldrb	r1, [r2, #0]
    fe9e:	b949      	cbnz	r1, feb4 <sdc_cfg_set+0x68>
    fea0:	70c1      	strb	r1, [r0, #3]
    fea2:	e016      	b.n	fed2 <sdc_cfg_set+0x86>
    fea4:	78e1      	ldrb	r1, [r4, #3]
    fea6:	b111      	cbz	r1, feae <sdc_cfg_set+0x62>
    fea8:	7811      	ldrb	r1, [r2, #0]
    feaa:	2902      	cmp	r1, #2
    feac:	d31c      	bcc.n	fee8 <sdc_cfg_set+0x9c>
    feae:	7811      	ldrb	r1, [r2, #0]
    feb0:	7401      	strb	r1, [r0, #16]
    feb2:	e00e      	b.n	fed2 <sdc_cfg_set+0x86>
    feb4:	e005      	b.n	fec2 <sdc_cfg_set+0x76>
    feb6:	e017      	b.n	fee8 <sdc_cfg_set+0x9c>
    feb8:	8811      	ldrh	r1, [r2, #0]
    feba:	8241      	strh	r1, [r0, #18]
    febc:	e009      	b.n	fed2 <sdc_cfg_set+0x86>
    febe:	7811      	ldrb	r1, [r2, #0]
    fec0:	b109      	cbz	r1, fec6 <sdc_cfg_set+0x7a>
    fec2:	4618      	mov	r0, r3
    fec4:	bd70      	pop	{r4, r5, r6, pc}
    fec6:	7101      	strb	r1, [r0, #4]
    fec8:	e003      	b.n	fed2 <sdc_cfg_set+0x86>
    feca:	7811      	ldrb	r1, [r2, #0]
    fecc:	2902      	cmp	r1, #2
    fece:	d30b      	bcc.n	fee8 <sdc_cfg_set+0x9c>
    fed0:	7501      	strb	r1, [r0, #20]
    fed2:	2201      	movs	r2, #1
    fed4:	4908      	ldr	r1, [pc, #32]	; (fef8 <sdc_cfg_set+0xac>)
    fed6:	2000      	movs	r0, #0
    fed8:	f008 f9ec 	bl	182b4 <sym_VSILKYHVQ5DVF6LG5MG267DQVA3A2XZQ6FSCLXA+0xfe>
    fedc:	f5b0 3f80 	cmp.w	r0, #65536	; 0x10000
    fee0:	db04      	blt.n	feec <sdc_cfg_set+0xa0>
    fee2:	f06f 000b 	mvn.w	r0, #11
    fee6:	bd70      	pop	{r4, r5, r6, pc}
    fee8:	4628      	mov	r0, r5
    feea:	bd70      	pop	{r4, r5, r6, pc}
    feec:	2101      	movs	r1, #1
    feee:	70a1      	strb	r1, [r4, #2]
    fef0:	bd70      	pop	{r4, r5, r6, pc}
    fef2:	0000      	.short	0x0000
    fef4:	2000005c 	.word	0x2000005c
    fef8:	20000f50 	.word	0x20000f50

0000fefc <sdc_enable>:
    fefc:	b570      	push	{r4, r5, r6, lr}
    fefe:	460c      	mov	r4, r1
    ff00:	0005      	movs	r5, r0
    ff02:	d019      	beq.n	ff38 <sdc_enable+0x3c>
    ff04:	b1c4      	cbz	r4, ff38 <sdc_enable+0x3c>
    ff06:	f000 f923 	bl	10150 <sym_EZ7BAEZZMYJFIJAONX254JF3WPGEXUT4NMP2WJQ>
    ff0a:	b1c0      	cbz	r0, ff3e <sdc_enable+0x42>
    ff0c:	4628      	mov	r0, r5
    ff0e:	f7ff fe73 	bl	fbf8 <sym_W7ROFHNOSDKPIRUKDGIZZ5YR3MC3DAM2YLJOUIA>
    ff12:	4d0c      	ldr	r5, [pc, #48]	; (ff44 <sdc_enable+0x48>)
    ff14:	2200      	movs	r2, #0
    ff16:	490c      	ldr	r1, [pc, #48]	; (ff48 <sdc_enable+0x4c>)
    ff18:	7028      	strb	r0, [r5, #0]
    ff1a:	4620      	mov	r0, r4
    ff1c:	f008 f9ca 	bl	182b4 <sym_VSILKYHVQ5DVF6LG5MG267DQVA3A2XZQ6FSCLXA+0xfe>
    ff20:	f00b fe91 	bl	1bc46 <sym_BIDMG7YHRFQNLIKRFVSOGOT6IXZCQ6UEJKN52VI>
    ff24:	2100      	movs	r1, #0
    ff26:	7828      	ldrb	r0, [r5, #0]
    ff28:	f006 fb30 	bl	1658c <sym_G4TIIR7KO3GHFF45HCHTIL3RIPRK2LVDQADUYJQ>
    ff2c:	f7ff ff4c 	bl	fdc8 <mpsl_fem_device_config_254_apply_get+0xc>
    ff30:	2001      	movs	r0, #1
    ff32:	7068      	strb	r0, [r5, #1]
    ff34:	2000      	movs	r0, #0
    ff36:	bd70      	pop	{r4, r5, r6, pc}
    ff38:	f06f 0015 	mvn.w	r0, #21
    ff3c:	bd70      	pop	{r4, r5, r6, pc}
    ff3e:	f04f 30ff 	mov.w	r0, #4294967295
    ff42:	bd70      	pop	{r4, r5, r6, pc}
    ff44:	2000005c 	.word	0x2000005c
    ff48:	20000f50 	.word	0x20000f50

0000ff4c <sdc_init>:
    ff4c:	b530      	push	{r4, r5, lr}
    ff4e:	b087      	sub	sp, #28
    ff50:	0005      	movs	r5, r0
    ff52:	d00c      	beq.n	ff6e <sdc_init+0x22>
    ff54:	f7ff fdf6 	bl	fb44 <mpsl_is_initialized>
    ff58:	f04f 34ff 	mov.w	r4, #4294967295
    ff5c:	b120      	cbz	r0, ff68 <sdc_init+0x1c>
    ff5e:	f7ff fcb5 	bl	f8cc <sym_ETIE3PCEXQYLK2GIVZENQ6V7PLBRV57MB7BDMNY>
    ff62:	f5b0 7ffa 	cmp.w	r0, #500	; 0x1f4
    ff66:	d905      	bls.n	ff74 <sdc_init+0x28>
    ff68:	4620      	mov	r0, r4
    ff6a:	b007      	add	sp, #28
    ff6c:	bd30      	pop	{r4, r5, pc}
    ff6e:	f06f 0015 	mvn.w	r0, #21
    ff72:	e7fa      	b.n	ff6a <sdc_init+0x1e>
    ff74:	4c15      	ldr	r4, [pc, #84]	; (ffcc <sdc_init+0x80>)
    ff76:	4816      	ldr	r0, [pc, #88]	; (ffd0 <sdc_init+0x84>)
    ff78:	6065      	str	r5, [r4, #4]
    ff7a:	f000 f9f9 	bl	10370 <sym_G3KVRHCJDVHL7HV53526V3YI3DTK2IW2CADUWZQ>
    ff7e:	2000      	movs	r0, #0
    ff80:	7060      	strb	r0, [r4, #1]
    ff82:	70a0      	strb	r0, [r4, #2]
    ff84:	70e0      	strb	r0, [r4, #3]
    ff86:	4601      	mov	r1, r0
    ff88:	2218      	movs	r2, #24
    ff8a:	4668      	mov	r0, sp
    ff8c:	f008 f913 	bl	181b6 <sym_VSILKYHVQ5DVF6LG5MG267DQVA3A2XZQ6FSCLXA>
    ff90:	2218      	movs	r2, #24
    ff92:	4910      	ldr	r1, [pc, #64]	; (ffd4 <sdc_init+0x88>)
    ff94:	4668      	mov	r0, sp
    ff96:	f008 f894 	bl	180c2 <sym_DQONLUECJTIEYFOFJXXAPJO4POIAJKJNKBGVN5A>
    ff9a:	2218      	movs	r2, #24
    ff9c:	4669      	mov	r1, sp
    ff9e:	480e      	ldr	r0, [pc, #56]	; (ffd8 <sdc_init+0x8c>)
    ffa0:	f008 f88f 	bl	180c2 <sym_DQONLUECJTIEYFOFJXXAPJO4POIAJKJNKBGVN5A>
    ffa4:	f3ef 8410 	mrs	r4, PRIMASK
    ffa8:	b672      	cpsid	i
    ffaa:	480c      	ldr	r0, [pc, #48]	; (ffdc <sdc_init+0x90>)
    ffac:	f06f 010c 	mvn.w	r1, #12
    ffb0:	f000 fdac 	bl	10b0c <sym_E5WZNPP2DINHF6K4PHXLYLX5AXTYBQYGQESRSGQ>
    ffb4:	480a      	ldr	r0, [pc, #40]	; (ffe0 <sdc_init+0x94>)
    ffb6:	f000 fe6d 	bl	10c94 <sym_QFSP7NEBRUPCXI7KU3RYDOWD7SSPVNXVSULPYYY>
    ffba:	b118      	cbz	r0, ffc4 <sdc_init+0x78>
    ffbc:	2196      	movs	r1, #150	; 0x96
    ffbe:	2003      	movs	r0, #3
    ffc0:	f000 f810 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
    ffc4:	b904      	cbnz	r4, ffc8 <sdc_init+0x7c>
    ffc6:	b662      	cpsie	i
    ffc8:	2000      	movs	r0, #0
    ffca:	e7ce      	b.n	ff6a <sdc_init+0x1e>
    ffcc:	2000005c 	.word	0x2000005c
    ffd0:	0000fdc9 	.word	0x0000fdc9
    ffd4:	000100d0 	.word	0x000100d0
    ffd8:	20000f50 	.word	0x20000f50
    ffdc:	4000c000 	.word	0x4000c000
    ffe0:	0001017d 	.word	0x0001017d

0000ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>:
    ffe4:	b50e      	push	{r1, r2, r3, lr}
    ffe6:	b672      	cpsid	i
    ffe8:	4a15      	ldr	r2, [pc, #84]	; (10040 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI+0x5c>)
    ffea:	6855      	ldr	r5, [r2, #4]
    ffec:	b1d5      	cbz	r5, 10024 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI+0x40>
    ffee:	2200      	movs	r2, #0
    fff0:	4603      	mov	r3, r0
    fff2:	466e      	mov	r6, sp
    fff4:	240a      	movs	r4, #10
    fff6:	e003      	b.n	10000 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI+0x1c>
    fff8:	fbb0 f0f4 	udiv	r0, r0, r4
    fffc:	1c52      	adds	r2, r2, #1
    fffe:	b2d2      	uxtb	r2, r2
   10000:	2800      	cmp	r0, #0
   10002:	d1f9      	bne.n	fff8 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI+0x14>
   10004:	54b0      	strb	r0, [r6, r2]
   10006:	e009      	b.n	1001c <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI+0x38>
   10008:	fbb3 f0f4 	udiv	r0, r3, r4
   1000c:	fb04 3010 	mls	r0, r4, r0, r3
   10010:	fbb3 f3f4 	udiv	r3, r3, r4
   10014:	1e52      	subs	r2, r2, #1
   10016:	b2d2      	uxtb	r2, r2
   10018:	3030      	adds	r0, #48	; 0x30
   1001a:	54b0      	strb	r0, [r6, r2]
   1001c:	2a00      	cmp	r2, #0
   1001e:	d1f3      	bne.n	10008 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI+0x24>
   10020:	4630      	mov	r0, r6
   10022:	47a8      	blx	r5
   10024:	f3bf 8f4f 	dsb	sy
   10028:	4806      	ldr	r0, [pc, #24]	; (10044 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI+0x60>)
   1002a:	6801      	ldr	r1, [r0, #0]
   1002c:	4a06      	ldr	r2, [pc, #24]	; (10048 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI+0x64>)
   1002e:	f401 61e0 	and.w	r1, r1, #1792	; 0x700
   10032:	4311      	orrs	r1, r2
   10034:	6001      	str	r1, [r0, #0]
   10036:	f3bf 8f4f 	dsb	sy
   1003a:	bf00      	nop
   1003c:	e7fd      	b.n	1003a <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI+0x56>
   1003e:	0000      	.short	0x0000
   10040:	2000005c 	.word	0x2000005c
   10044:	e000ed0c 	.word	0xe000ed0c
   10048:	05fa0004 	.word	0x05fa0004

0001004c <sdc_support_adv>:
   1004c:	4806      	ldr	r0, [pc, #24]	; (10068 <sdc_support_adv+0x1c>)
   1004e:	b510      	push	{r4, lr}
   10050:	7881      	ldrb	r1, [r0, #2]
   10052:	7840      	ldrb	r0, [r0, #1]
   10054:	4301      	orrs	r1, r0
   10056:	d002      	beq.n	1005e <sdc_support_adv+0x12>
   10058:	f04f 30ff 	mov.w	r0, #4294967295
   1005c:	bd10      	pop	{r4, pc}
   1005e:	f006 fab5 	bl	165cc <sym_EANB2LFFCPDZUHTPF7SNNYVWVGG3AE7JVOONSTY>
   10062:	2000      	movs	r0, #0
   10064:	bd10      	pop	{r4, pc}
   10066:	0000      	.short	0x0000
   10068:	2000005c 	.word	0x2000005c

0001006c <sdc_support_dle>:
   1006c:	4806      	ldr	r0, [pc, #24]	; (10088 <sdc_support_dle+0x1c>)
   1006e:	b510      	push	{r4, lr}
   10070:	7881      	ldrb	r1, [r0, #2]
   10072:	7840      	ldrb	r0, [r0, #1]
   10074:	4301      	orrs	r1, r0
   10076:	d002      	beq.n	1007e <sdc_support_dle+0x12>
   10078:	f04f 30ff 	mov.w	r0, #4294967295
   1007c:	bd10      	pop	{r4, pc}
   1007e:	f006 f843 	bl	16108 <sym_2J7Z7KW3DU67BQ5MXN4KH26NTEF6NAEYXIDNT6Q>
   10082:	2000      	movs	r0, #0
   10084:	bd10      	pop	{r4, pc}
   10086:	0000      	.short	0x0000
   10088:	2000005c 	.word	0x2000005c

0001008c <sdc_support_le_2m_phy>:
   1008c:	4806      	ldr	r0, [pc, #24]	; (100a8 <sdc_support_le_2m_phy+0x1c>)
   1008e:	b510      	push	{r4, lr}
   10090:	7881      	ldrb	r1, [r0, #2]
   10092:	7840      	ldrb	r0, [r0, #1]
   10094:	4301      	orrs	r1, r0
   10096:	d002      	beq.n	1009e <sdc_support_le_2m_phy+0x12>
   10098:	f04f 30ff 	mov.w	r0, #4294967295
   1009c:	bd10      	pop	{r4, pc}
   1009e:	f00b fb38 	bl	1b712 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A>
   100a2:	2000      	movs	r0, #0
   100a4:	bd10      	pop	{r4, pc}
   100a6:	0000      	.short	0x0000
   100a8:	2000005c 	.word	0x2000005c

000100ac <sdc_support_slave>:
   100ac:	4806      	ldr	r0, [pc, #24]	; (100c8 <sdc_support_slave+0x1c>)
   100ae:	b510      	push	{r4, lr}
   100b0:	7881      	ldrb	r1, [r0, #2]
   100b2:	7840      	ldrb	r0, [r0, #1]
   100b4:	4301      	orrs	r1, r0
   100b6:	d002      	beq.n	100be <sdc_support_slave+0x12>
   100b8:	f04f 30ff 	mov.w	r0, #4294967295
   100bc:	bd10      	pop	{r4, pc}
   100be:	f006 fa97 	bl	165f0 <sym_BFBDHRTPYGNRMJSAT7WCAPOXBGIVSWF4E5GFHOA>
   100c2:	2000      	movs	r0, #0
   100c4:	bd10      	pop	{r4, pc}
   100c6:	0000      	.short	0x0000
   100c8:	2000005c 	.word	0x2000005c
   100cc:	00000001 	.word	0x00000001
   100d0:	00010101 	.word	0x00010101
   100d4:	031b1b00 	.word	0x031b1b00
   100d8:	00000002 	.word	0x00000002
   100dc:	00001d4c 	.word	0x00001d4c
   100e0:	001f0003 	.word	0x001f0003
   100e4:	00000000 	.word	0x00000000
   100e8:	d64ec0df 	.word	0xd64ec0df
   100ec:	09667c1f 	.word	0x09667c1f
   100f0:	a02bf50a 	.word	0xa02bf50a
   100f4:	6443f298 	.word	0x6443f298
   100f8:	2aa6c562 	.word	0x2aa6c562

000100fc <sym_4BGPQMJJRBR2ET4K6M3CH3OLXQGTP2TS7FVXINA>:
   100fc:	4a05      	ldr	r2, [pc, #20]	; (10114 <sym_4BGPQMJJRBR2ET4K6M3CH3OLXQGTP2TS7FVXINA+0x18>)
   100fe:	b510      	push	{r4, lr}
   10100:	6852      	ldr	r2, [r2, #4]
   10102:	b112      	cbz	r2, 1010a <sym_4BGPQMJJRBR2ET4K6M3CH3OLXQGTP2TS7FVXINA+0xe>
   10104:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
   10108:	4710      	bx	r2
   1010a:	2183      	movs	r1, #131	; 0x83
   1010c:	2004      	movs	r0, #4
   1010e:	f7ff ff69 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   10112:	0000      	.short	0x0000
   10114:	20000f68 	.word	0x20000f68

00010118 <sym_RC3WH4TL55HJBAU6BTOKWYOXZCF7BBTLBHIRO6A>:
   10118:	4a05      	ldr	r2, [pc, #20]	; (10130 <sym_RC3WH4TL55HJBAU6BTOKWYOXZCF7BBTLBHIRO6A+0x18>)
   1011a:	b510      	push	{r4, lr}
   1011c:	6812      	ldr	r2, [r2, #0]
   1011e:	b112      	cbz	r2, 10126 <sym_RC3WH4TL55HJBAU6BTOKWYOXZCF7BBTLBHIRO6A+0xe>
   10120:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
   10124:	4710      	bx	r2
   10126:	217d      	movs	r1, #125	; 0x7d
   10128:	2004      	movs	r0, #4
   1012a:	f7ff ff5b 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   1012e:	0000      	.short	0x0000
   10130:	20000f68 	.word	0x20000f68

00010134 <sym_CVMXQJYKHZVHIOMGOYEICPLVAIQNUBL6USVNZSA>:
   10134:	4a05      	ldr	r2, [pc, #20]	; (1014c <sym_CVMXQJYKHZVHIOMGOYEICPLVAIQNUBL6USVNZSA+0x18>)
   10136:	b510      	push	{r4, lr}
   10138:	6892      	ldr	r2, [r2, #8]
   1013a:	b112      	cbz	r2, 10142 <sym_CVMXQJYKHZVHIOMGOYEICPLVAIQNUBL6USVNZSA+0xe>
   1013c:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
   10140:	4710      	bx	r2
   10142:	2189      	movs	r1, #137	; 0x89
   10144:	2004      	movs	r0, #4
   10146:	f7ff ff4d 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   1014a:	0000      	.short	0x0000
   1014c:	20000f68 	.word	0x20000f68

00010150 <sym_EZ7BAEZZMYJFIJAONX254JF3WPGEXUT4NMP2WJQ>:
   10150:	4805      	ldr	r0, [pc, #20]	; (10168 <sym_EZ7BAEZZMYJFIJAONX254JF3WPGEXUT4NMP2WJQ+0x18>)
   10152:	6801      	ldr	r1, [r0, #0]
   10154:	b129      	cbz	r1, 10162 <sym_EZ7BAEZZMYJFIJAONX254JF3WPGEXUT4NMP2WJQ+0x12>
   10156:	6841      	ldr	r1, [r0, #4]
   10158:	b119      	cbz	r1, 10162 <sym_EZ7BAEZZMYJFIJAONX254JF3WPGEXUT4NMP2WJQ+0x12>
   1015a:	6880      	ldr	r0, [r0, #8]
   1015c:	b108      	cbz	r0, 10162 <sym_EZ7BAEZZMYJFIJAONX254JF3WPGEXUT4NMP2WJQ+0x12>
   1015e:	2001      	movs	r0, #1
   10160:	4770      	bx	lr
   10162:	2000      	movs	r0, #0
   10164:	4770      	bx	lr
   10166:	0000      	.short	0x0000
   10168:	20000f68 	.word	0x20000f68

0001016c <sdc_rand_source_register>:
   1016c:	4902      	ldr	r1, [pc, #8]	; (10178 <sdc_rand_source_register+0xc>)
   1016e:	c80d      	ldmia	r0, {r0, r2, r3}
   10170:	e881 000d 	stmia.w	r1, {r0, r2, r3}
   10174:	2000      	movs	r0, #0
   10176:	4770      	bx	lr
   10178:	20000f68 	.word	0x20000f68

0001017c <sym_MEYOCD6AYGN6BYYH5M35H6GLLMHM6TYBBTCW2LI>:
   1017c:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
   1017e:	4c12      	ldr	r4, [pc, #72]	; (101c8 <sym_MEYOCD6AYGN6BYYH5M35H6GLLMHM6TYBBTCW2LI+0x4c>)
   10180:	2600      	movs	r6, #0
   10182:	6825      	ldr	r5, [r4, #0]
   10184:	e011      	b.n	101aa <sym_MEYOCD6AYGN6BYYH5M35H6GLLMHM6TYBBTCW2LI+0x2e>
   10186:	9800      	ldr	r0, [sp, #0]
   10188:	2802      	cmp	r0, #2
   1018a:	d002      	beq.n	10192 <sym_MEYOCD6AYGN6BYYH5M35H6GLLMHM6TYBBTCW2LI+0x16>
   1018c:	2803      	cmp	r0, #3
   1018e:	d10c      	bne.n	101aa <sym_MEYOCD6AYGN6BYYH5M35H6GLLMHM6TYBBTCW2LI+0x2e>
   10190:	e006      	b.n	101a0 <sym_MEYOCD6AYGN6BYYH5M35H6GLLMHM6TYBBTCW2LI+0x24>
   10192:	6820      	ldr	r0, [r4, #0]
   10194:	b110      	cbz	r0, 1019c <sym_MEYOCD6AYGN6BYYH5M35H6GLLMHM6TYBBTCW2LI+0x20>
   10196:	2000      	movs	r0, #0
   10198:	6026      	str	r6, [r4, #0]
   1019a:	e005      	b.n	101a8 <sym_MEYOCD6AYGN6BYYH5M35H6GLLMHM6TYBBTCW2LI+0x2c>
   1019c:	2128      	movs	r1, #40	; 0x28
   1019e:	e00c      	b.n	101ba <sym_MEYOCD6AYGN6BYYH5M35H6GLLMHM6TYBBTCW2LI+0x3e>
   101a0:	6820      	ldr	r0, [r4, #0]
   101a2:	b168      	cbz	r0, 101c0 <sym_MEYOCD6AYGN6BYYH5M35H6GLLMHM6TYBBTCW2LI+0x44>
   101a4:	2001      	movs	r0, #1
   101a6:	6026      	str	r6, [r4, #0]
   101a8:	47a8      	blx	r5
   101aa:	4668      	mov	r0, sp
   101ac:	f000 fd44 	bl	10c38 <sym_YRXVGCYVFXOSIQO43AC5UEELHEXP2A4UAFUQRPI>
   101b0:	2800      	cmp	r0, #0
   101b2:	d0e8      	beq.n	10186 <sym_MEYOCD6AYGN6BYYH5M35H6GLLMHM6TYBBTCW2LI+0xa>
   101b4:	2805      	cmp	r0, #5
   101b6:	d005      	beq.n	101c4 <sym_MEYOCD6AYGN6BYYH5M35H6GLLMHM6TYBBTCW2LI+0x48>
   101b8:	2135      	movs	r1, #53	; 0x35
   101ba:	2004      	movs	r0, #4
   101bc:	f7ff ff12 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   101c0:	212d      	movs	r1, #45	; 0x2d
   101c2:	e7fa      	b.n	101ba <sym_MEYOCD6AYGN6BYYH5M35H6GLLMHM6TYBBTCW2LI+0x3e>
   101c4:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
   101c6:	0000      	.short	0x0000
   101c8:	20000064 	.word	0x20000064
   101cc:	b57c      	push	{r2, r3, r4, r5, r6, lr}
   101ce:	4c1f      	ldr	r4, [pc, #124]	; (1024c <sym_MEYOCD6AYGN6BYYH5M35H6GLLMHM6TYBBTCW2LI+0xd0>)
   101d0:	4605      	mov	r5, r0
   101d2:	7820      	ldrb	r0, [r4, #0]
   101d4:	b140      	cbz	r0, 101e8 <sym_MEYOCD6AYGN6BYYH5M35H6GLLMHM6TYBBTCW2LI+0x6c>
   101d6:	78a2      	ldrb	r2, [r4, #2]
   101d8:	1c61      	adds	r1, r4, #1
   101da:	4628      	mov	r0, r5
   101dc:	1c92      	adds	r2, r2, #2
   101de:	f007 ff70 	bl	180c2 <sym_DQONLUECJTIEYFOFJXXAPJO4POIAJKJNKBGVN5A>
   101e2:	2000      	movs	r0, #0
   101e4:	7020      	strb	r0, [r4, #0]
   101e6:	e021      	b.n	1022c <sym_MEYOCD6AYGN6BYYH5M35H6GLLMHM6TYBBTCW2LI+0xb0>
   101e8:	4819      	ldr	r0, [pc, #100]	; (10250 <sym_MEYOCD6AYGN6BYYH5M35H6GLLMHM6TYBBTCW2LI+0xd4>)
   101ea:	f005 ffc5 	bl	16178 <sym_XOOTGCSEAKA3PUKZW3QYB4DCVC2FKUP2TS5AZ5Q>
   101ee:	2800      	cmp	r0, #0
   101f0:	d01d      	beq.n	1022e <sym_MEYOCD6AYGN6BYYH5M35H6GLLMHM6TYBBTCW2LI+0xb2>
   101f2:	4c17      	ldr	r4, [pc, #92]	; (10250 <sym_MEYOCD6AYGN6BYYH5M35H6GLLMHM6TYBBTCW2LI+0xd4>)
   101f4:	7820      	ldrb	r0, [r4, #0]
   101f6:	2811      	cmp	r0, #17
   101f8:	d104      	bne.n	10204 <sym_MEYOCD6AYGN6BYYH5M35H6GLLMHM6TYBBTCW2LI+0x88>
   101fa:	210a      	movs	r1, #10
   101fc:	203e      	movs	r0, #62	; 0x3e
   101fe:	f008 f8fe 	bl	183fe <sym_DUIEI4YTK3TJQ2V3W7PLOGVTWVPNDBBG4WJWTAQ+0x1e>
   10202:	b118      	cbz	r0, 1020c <sym_MEYOCD6AYGN6BYYH5M35H6GLLMHM6TYBBTCW2LI+0x90>
   10204:	7820      	ldrb	r0, [r4, #0]
   10206:	2808      	cmp	r0, #8
   10208:	d005      	beq.n	10216 <sym_MEYOCD6AYGN6BYYH5M35H6GLLMHM6TYBBTCW2LI+0x9a>
   1020a:	e009      	b.n	10220 <sym_MEYOCD6AYGN6BYYH5M35H6GLLMHM6TYBBTCW2LI+0xa4>
   1020c:	4910      	ldr	r1, [pc, #64]	; (10250 <sym_MEYOCD6AYGN6BYYH5M35H6GLLMHM6TYBBTCW2LI+0xd4>)
   1020e:	4628      	mov	r0, r5
   10210:	f008 fafd 	bl	1880e <sym_3TBFCFZXCYDY6GUKVOWTISOQWWIRT2CJTYIBX5Y>
   10214:	e00a      	b.n	1022c <sym_MEYOCD6AYGN6BYYH5M35H6GLLMHM6TYBBTCW2LI+0xb0>
   10216:	2105      	movs	r1, #5
   10218:	203e      	movs	r0, #62	; 0x3e
   1021a:	f008 f8f0 	bl	183fe <sym_DUIEI4YTK3TJQ2V3W7PLOGVTWVPNDBBG4WJWTAQ+0x1e>
   1021e:	b138      	cbz	r0, 10230 <sym_MEYOCD6AYGN6BYYH5M35H6GLLMHM6TYBBTCW2LI+0xb4>
   10220:	490b      	ldr	r1, [pc, #44]	; (10250 <sym_MEYOCD6AYGN6BYYH5M35H6GLLMHM6TYBBTCW2LI+0xd4>)
   10222:	4628      	mov	r0, r5
   10224:	f008 f949 	bl	184ba <sym_XMQQMVD4MD6DRWNW2DWSCGOMJHFY3IX7NXUHTGI>
   10228:	2800      	cmp	r0, #0
   1022a:	d000      	beq.n	1022e <sym_MEYOCD6AYGN6BYYH5M35H6GLLMHM6TYBBTCW2LI+0xb2>
   1022c:	2001      	movs	r0, #1
   1022e:	bd7c      	pop	{r2, r3, r4, r5, r6, pc}
   10230:	88a0      	ldrh	r0, [r4, #4]
   10232:	f8ad 0000 	strh.w	r0, [sp]
   10236:	a901      	add	r1, sp, #4
   10238:	4668      	mov	r0, sp
   1023a:	f008 fc02 	bl	18a42 <sdc_hci_cmd_le_long_term_key_request_negative_reply>
   1023e:	2800      	cmp	r0, #0
   10240:	d0f5      	beq.n	1022e <sym_MEYOCD6AYGN6BYYH5M35H6GLLMHM6TYBBTCW2LI+0xb2>
   10242:	219a      	movs	r1, #154	; 0x9a
   10244:	2008      	movs	r0, #8
   10246:	f7ff fecd 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   1024a:	0000      	.short	0x0000
   1024c:	20001106 	.word	0x20001106
   10250:	20001004 	.word	0x20001004
   10254:	b570      	push	{r4, r5, r6, lr}
   10256:	780a      	ldrb	r2, [r1, #0]
   10258:	7082      	strb	r2, [r0, #2]
   1025a:	b33a      	cbz	r2, 102ac <sym_MEYOCD6AYGN6BYYH5M35H6GLLMHM6TYBBTCW2LI+0x130>
   1025c:	2a01      	cmp	r2, #1
   1025e:	d825      	bhi.n	102ac <sym_MEYOCD6AYGN6BYYH5M35H6GLLMHM6TYBBTCW2LI+0x130>
   10260:	2313      	movs	r3, #19
   10262:	7003      	strb	r3, [r0, #0]
   10264:	2300      	movs	r3, #0
   10266:	e00a      	b.n	1027e <sym_MEYOCD6AYGN6BYYH5M35H6GLLMHM6TYBBTCW2LI+0x102>
   10268:	eb01 0443 	add.w	r4, r1, r3, lsl #1
   1026c:	eb00 0543 	add.w	r5, r0, r3, lsl #1
   10270:	78a6      	ldrb	r6, [r4, #2]
   10272:	70ee      	strb	r6, [r5, #3]
   10274:	8864      	ldrh	r4, [r4, #2]
   10276:	0a24      	lsrs	r4, r4, #8
   10278:	1c5b      	adds	r3, r3, #1
   1027a:	712c      	strb	r4, [r5, #4]
   1027c:	b2db      	uxtb	r3, r3
   1027e:	4293      	cmp	r3, r2
   10280:	d3f2      	bcc.n	10268 <sym_MEYOCD6AYGN6BYYH5M35H6GLLMHM6TYBBTCW2LI+0xec>
   10282:	2300      	movs	r3, #0
   10284:	e00b      	b.n	1029e <sym_MEYOCD6AYGN6BYYH5M35H6GLLMHM6TYBBTCW2LI+0x122>
   10286:	bf00      	nop
   10288:	eb01 0543 	add.w	r5, r1, r3, lsl #1
   1028c:	eb00 0443 	add.w	r4, r0, r3, lsl #1
   10290:	792e      	ldrb	r6, [r5, #4]
   10292:	7166      	strb	r6, [r4, #5]
   10294:	88ad      	ldrh	r5, [r5, #4]
   10296:	0a2d      	lsrs	r5, r5, #8
   10298:	1c5b      	adds	r3, r3, #1
   1029a:	71a5      	strb	r5, [r4, #6]
   1029c:	b2db      	uxtb	r3, r3
   1029e:	4293      	cmp	r3, r2
   102a0:	d3f2      	bcc.n	10288 <sym_MEYOCD6AYGN6BYYH5M35H6GLLMHM6TYBBTCW2LI+0x10c>
   102a2:	2101      	movs	r1, #1
   102a4:	eb01 0082 	add.w	r0, r1, r2, lsl #2
   102a8:	b2c0      	uxtb	r0, r0
   102aa:	bd70      	pop	{r4, r5, r6, pc}
   102ac:	2000      	movs	r0, #0
   102ae:	bd70      	pop	{r4, r5, r6, pc}

000102b0 <sym_Z7NJGBYWCKFTEHRYWAIDKWPEUN45273QSWUA5CY>:
   102b0:	2101      	movs	r1, #1
   102b2:	4a0c      	ldr	r2, [pc, #48]	; (102e4 <sym_Z7NJGBYWCKFTEHRYWAIDKWPEUN45273QSWUA5CY+0x34>)
   102b4:	2840      	cmp	r0, #64	; 0x40
   102b6:	d20c      	bcs.n	102d2 <sym_Z7NJGBYWCKFTEHRYWAIDKWPEUN45273QSWUA5CY+0x22>
   102b8:	2820      	cmp	r0, #32
   102ba:	d803      	bhi.n	102c4 <sym_Z7NJGBYWCKFTEHRYWAIDKWPEUN45273QSWUA5CY+0x14>
   102bc:	1e40      	subs	r0, r0, #1
   102be:	4081      	lsls	r1, r0
   102c0:	6810      	ldr	r0, [r2, #0]
   102c2:	e002      	b.n	102ca <sym_Z7NJGBYWCKFTEHRYWAIDKWPEUN45273QSWUA5CY+0x1a>
   102c4:	3821      	subs	r0, #33	; 0x21
   102c6:	4081      	lsls	r1, r0
   102c8:	6850      	ldr	r0, [r2, #4]
   102ca:	4201      	tst	r1, r0
   102cc:	d107      	bne.n	102de <sym_Z7NJGBYWCKFTEHRYWAIDKWPEUN45273QSWUA5CY+0x2e>
   102ce:	2000      	movs	r0, #0
   102d0:	4770      	bx	lr
   102d2:	28ff      	cmp	r0, #255	; 0xff
   102d4:	d003      	beq.n	102de <sym_Z7NJGBYWCKFTEHRYWAIDKWPEUN45273QSWUA5CY+0x2e>
   102d6:	3840      	subs	r0, #64	; 0x40
   102d8:	4081      	lsls	r1, r0
   102da:	6890      	ldr	r0, [r2, #8]
   102dc:	e7f5      	b.n	102ca <sym_Z7NJGBYWCKFTEHRYWAIDKWPEUN45273QSWUA5CY+0x1a>
   102de:	2001      	movs	r0, #1
   102e0:	4770      	bx	lr
   102e2:	0000      	.short	0x0000
   102e4:	20000068 	.word	0x20000068

000102e8 <sym_CEENVC5DZRUT7MGF5LABXKT4NV7YUL5F6EX6TEQ>:
   102e8:	2101      	movs	r1, #1
   102ea:	1e40      	subs	r0, r0, #1
   102ec:	4081      	lsls	r1, r0
   102ee:	4804      	ldr	r0, [pc, #16]	; (10300 <sym_CEENVC5DZRUT7MGF5LABXKT4NV7YUL5F6EX6TEQ+0x18>)
   102f0:	68c0      	ldr	r0, [r0, #12]
   102f2:	4201      	tst	r1, r0
   102f4:	d001      	beq.n	102fa <sym_CEENVC5DZRUT7MGF5LABXKT4NV7YUL5F6EX6TEQ+0x12>
   102f6:	2001      	movs	r0, #1
   102f8:	4770      	bx	lr
   102fa:	2000      	movs	r0, #0
   102fc:	4770      	bx	lr
   102fe:	0000      	.short	0x0000
   10300:	20000068 	.word	0x20000068

00010304 <sym_PPT6FEOF2T6DRALMCRRTUI7CHLEPBAN25HYV3KQ>:
   10304:	4901      	ldr	r1, [pc, #4]	; (1030c <sym_PPT6FEOF2T6DRALMCRRTUI7CHLEPBAN25HYV3KQ+0x8>)
   10306:	6800      	ldr	r0, [r0, #0]
   10308:	60c8      	str	r0, [r1, #12]
   1030a:	4770      	bx	lr
   1030c:	20000068 	.word	0x20000068

00010310 <sym_TU2SMBIUC7JL6C3K2XB6727DQLBLV5LEGIMZAFQ>:
   10310:	4904      	ldr	r1, [pc, #16]	; (10324 <sym_TU2SMBIUC7JL6C3K2XB6727DQLBLV5LEGIMZAFQ+0x14>)
   10312:	6802      	ldr	r2, [r0, #0]
   10314:	6840      	ldr	r0, [r0, #4]
   10316:	f442 228c 	orr.w	r2, r2, #286720	; 0x46000
   1031a:	600a      	str	r2, [r1, #0]
   1031c:	4a02      	ldr	r2, [pc, #8]	; (10328 <sym_TU2SMBIUC7JL6C3K2XB6727DQLBLV5LEGIMZAFQ+0x18>)
   1031e:	4310      	orrs	r0, r2
   10320:	6048      	str	r0, [r1, #4]
   10322:	4770      	bx	lr
   10324:	20000068 	.word	0x20000068
   10328:	024007f8 	.word	0x024007f8

0001032c <sym_CIVMWIRGIOQ374UFFPIFNN4ZGKYK2FRKTT6YRYA>:
   1032c:	4901      	ldr	r1, [pc, #4]	; (10334 <sym_CIVMWIRGIOQ374UFFPIFNN4ZGKYK2FRKTT6YRYA+0x8>)
   1032e:	6800      	ldr	r0, [r0, #0]
   10330:	6088      	str	r0, [r1, #8]
   10332:	4770      	bx	lr
   10334:	20000068 	.word	0x20000068

00010338 <sym_TG7NSIC2UKHCUBZWZ4K4EMD5QRI2QVSKVKV6CFQ>:
   10338:	4805      	ldr	r0, [pc, #20]	; (10350 <sym_TG7NSIC2UKHCUBZWZ4K4EMD5QRI2QVSKVKV6CFQ+0x18>)
   1033a:	f04f 31ff 	mov.w	r1, #4294967295
   1033e:	6001      	str	r1, [r0, #0]
   10340:	0cc9      	lsrs	r1, r1, #19
   10342:	6041      	str	r1, [r0, #4]
   10344:	2100      	movs	r1, #0
   10346:	6081      	str	r1, [r0, #8]
   10348:	211f      	movs	r1, #31
   1034a:	60c1      	str	r1, [r0, #12]
   1034c:	4770      	bx	lr
   1034e:	0000      	.short	0x0000
   10350:	20000068 	.word	0x20000068

00010354 <sdc_hci_cmd_cb_reset>:
   10354:	b510      	push	{r4, lr}
   10356:	f7ff ffef 	bl	10338 <sym_TG7NSIC2UKHCUBZWZ4K4EMD5QRI2QVSKVKV6CFQ>
   1035a:	f00b f94e 	bl	1b5fa <sym_QA2HTUWXDQAGJZ32BSTQMVSMKKNETZBUHL37LYA>
   1035e:	4604      	mov	r4, r0
   10360:	4802      	ldr	r0, [pc, #8]	; (1036c <sdc_hci_cmd_cb_reset+0x18>)
   10362:	6800      	ldr	r0, [r0, #0]
   10364:	b100      	cbz	r0, 10368 <sdc_hci_cmd_cb_reset+0x14>
   10366:	4780      	blx	r0
   10368:	4620      	mov	r0, r4
   1036a:	bd10      	pop	{r4, pc}
   1036c:	20000078 	.word	0x20000078

00010370 <sym_G3KVRHCJDVHL7HV53526V3YI3DTK2IW2CADUWZQ>:
   10370:	4901      	ldr	r1, [pc, #4]	; (10378 <sym_G3KVRHCJDVHL7HV53526V3YI3DTK2IW2CADUWZQ+0x8>)
   10372:	6008      	str	r0, [r1, #0]
   10374:	4770      	bx	lr
   10376:	0000      	.short	0x0000
   10378:	20000078 	.word	0x20000078

0001037c <sdc_hci_cmd_vs_zephyr_read_version_info>:
   1037c:	2102      	movs	r1, #2
   1037e:	8001      	strh	r1, [r0, #0]
   10380:	8041      	strh	r1, [r0, #2]
   10382:	2100      	movs	r1, #0
   10384:	7101      	strb	r1, [r0, #4]
   10386:	21df      	movs	r1, #223	; 0xdf
   10388:	7141      	strb	r1, [r0, #5]
   1038a:	f644 61c0 	movw	r1, #20160	; 0x4ec0
   1038e:	80c1      	strh	r1, [r0, #6]
   10390:	4901      	ldr	r1, [pc, #4]	; (10398 <sdc_hci_cmd_vs_zephyr_read_version_info+0x1c>)
   10392:	6081      	str	r1, [r0, #8]
   10394:	2000      	movs	r0, #0
   10396:	4770      	bx	lr
   10398:	667c1fd6 	.word	0x667c1fd6

0001039c <sym_HNCDHITBYWLO4GMOSPKCO7YXRRWIUQ2IKIZ4C5A>:
   1039c:	b53e      	push	{r1, r2, r3, r4, r5, lr}
   1039e:	4604      	mov	r4, r0
   103a0:	4669      	mov	r1, sp
   103a2:	f008 feac 	bl	190fe <sym_3SKPFA625PNDCAQQU2M5BY77GYLRCXEEFZ5JBTY>
   103a6:	b170      	cbz	r0, 103c6 <sym_HNCDHITBYWLO4GMOSPKCO7YXRRWIUQ2IKIZ4C5A+0x2a>
   103a8:	f240 215a 	movw	r1, #602	; 0x25a
   103ac:	e008      	b.n	103c0 <sym_HNCDHITBYWLO4GMOSPKCO7YXRRWIUQ2IKIZ4C5A+0x24>
   103ae:	bf00      	nop
   103b0:	f8bd 0004 	ldrh.w	r0, [sp, #4]
   103b4:	4621      	mov	r1, r4
   103b6:	f000 f8ab 	bl	10510 <sym_4AWF7EXI3MMHUULTY73E756U3IY5DEXOZ265MZY>
   103ba:	b120      	cbz	r0, 103c6 <sym_HNCDHITBYWLO4GMOSPKCO7YXRRWIUQ2IKIZ4C5A+0x2a>
   103bc:	f240 215f 	movw	r1, #607	; 0x25f
   103c0:	2017      	movs	r0, #23
   103c2:	f7ff fe0f 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   103c6:	4668      	mov	r0, sp
   103c8:	f000 f852 	bl	10470 <sym_6I4XEOIW7LI2E3Z53L54ZHQQHYICXR4H4JQWXLA>
   103cc:	2800      	cmp	r0, #0
   103ce:	d0ef      	beq.n	103b0 <sym_HNCDHITBYWLO4GMOSPKCO7YXRRWIUQ2IKIZ4C5A+0x14>
   103d0:	bd3e      	pop	{r1, r2, r3, r4, r5, pc}
	...

000103d4 <sym_XHE47EZYHONCPR22HUAZULMCALDJINMYREOFDEI>:
   103d4:	b510      	push	{r4, lr}
   103d6:	2802      	cmp	r0, #2
   103d8:	d304      	bcc.n	103e4 <sym_XHE47EZYHONCPR22HUAZULMCALDJINMYREOFDEI+0x10>
   103da:	f44f 71d6 	mov.w	r1, #428	; 0x1ac
   103de:	2017      	movs	r0, #23
   103e0:	f7ff fe00 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   103e4:	4901      	ldr	r1, [pc, #4]	; (103ec <sym_XHE47EZYHONCPR22HUAZULMCALDJINMYREOFDEI+0x18>)
   103e6:	5c08      	ldrb	r0, [r1, r0]
   103e8:	bd10      	pop	{r4, pc}
   103ea:	0000      	.short	0x0000
   103ec:	20000f74 	.word	0x20000f74

000103f0 <sym_EQ53CEL7EDVHMFMHMFPRRQU46C5YKKFEBAACFOA>:
   103f0:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
   103f2:	0005      	movs	r5, r0
   103f4:	9500      	str	r5, [sp, #0]
   103f6:	d010      	beq.n	1041a <sym_EQ53CEL7EDVHMFMHMFPRRQU46C5YKKFEBAACFOA+0x2a>
   103f8:	2600      	movs	r6, #0
   103fa:	7808      	ldrb	r0, [r1, #0]
   103fc:	7849      	ldrb	r1, [r1, #1]
   103fe:	4604      	mov	r4, r0
   10400:	42a1      	cmp	r1, r4
   10402:	d900      	bls.n	10406 <sym_EQ53CEL7EDVHMFMHMFPRRQU46C5YKKFEBAACFOA+0x16>
   10404:	460c      	mov	r4, r1
   10406:	1cea      	adds	r2, r5, #3
   10408:	f022 0203 	bic.w	r2, r2, #3
   1040c:	42aa      	cmp	r2, r5
   1040e:	d006      	beq.n	1041e <sym_EQ53CEL7EDVHMFMHMFPRRQU46C5YKKFEBAACFOA+0x2e>
   10410:	f240 1179 	movw	r1, #377	; 0x179
   10414:	2017      	movs	r0, #23
   10416:	f7ff fde5 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   1041a:	2601      	movs	r6, #1
   1041c:	e7ed      	b.n	103fa <sym_EQ53CEL7EDVHMFMHMFPRRQU46C5YKKFEBAACFOA+0xa>
   1041e:	4f13      	ldr	r7, [pc, #76]	; (1046c <sym_EQ53CEL7EDVHMFMHMFPRRQU46C5YKKFEBAACFOA+0x7c>)
   10420:	7038      	strb	r0, [r7, #0]
   10422:	7079      	strb	r1, [r7, #1]
   10424:	4631      	mov	r1, r6
   10426:	4668      	mov	r0, sp
   10428:	f000 f8ee 	bl	10608 <sym_4AWF7EXI3MMHUULTY73E756U3IY5DEXOZ265MZY+0xf8>
   1042c:	2100      	movs	r1, #0
   1042e:	460b      	mov	r3, r1
   10430:	9800      	ldr	r0, [sp, #0]
   10432:	1cc0      	adds	r0, r0, #3
   10434:	f020 0003 	bic.w	r0, r0, #3
   10438:	9000      	str	r0, [sp, #0]
   1043a:	b96e      	cbnz	r6, 10458 <sym_EQ53CEL7EDVHMFMHMFPRRQU46C5YKKFEBAACFOA+0x68>
   1043c:	eb07 0281 	add.w	r2, r7, r1, lsl #2
   10440:	60d0      	str	r0, [r2, #12]
   10442:	2000      	movs	r0, #0
   10444:	e006      	b.n	10454 <sym_EQ53CEL7EDVHMFMHMFPRRQU46C5YKKFEBAACFOA+0x64>
   10446:	bf00      	nop
   10448:	f8d2 c00c 	ldr.w	ip, [r2, #12]
   1044c:	f84c 3020 	str.w	r3, [ip, r0, lsl #2]
   10450:	1c40      	adds	r0, r0, #1
   10452:	b2c0      	uxtb	r0, r0
   10454:	42a0      	cmp	r0, r4
   10456:	d3f7      	bcc.n	10448 <sym_EQ53CEL7EDVHMFMHMFPRRQU46C5YKKFEBAACFOA+0x58>
   10458:	9800      	ldr	r0, [sp, #0]
   1045a:	1c49      	adds	r1, r1, #1
   1045c:	eb00 0084 	add.w	r0, r0, r4, lsl #2
   10460:	b2c9      	uxtb	r1, r1
   10462:	9000      	str	r0, [sp, #0]
   10464:	2902      	cmp	r1, #2
   10466:	d3e3      	bcc.n	10430 <sym_EQ53CEL7EDVHMFMHMFPRRQU46C5YKKFEBAACFOA+0x40>
   10468:	1b40      	subs	r0, r0, r5
   1046a:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
   1046c:	20000f74 	.word	0x20000f74

00010470 <sym_6I4XEOIW7LI2E3Z53L54ZHQQHYICXR4H4JQWXLA>:
   10470:	b570      	push	{r4, r5, r6, lr}
   10472:	4604      	mov	r4, r0
   10474:	f008 ffb7 	bl	193e6 <sym_RFDF52I45CER5LUFD5R474FWGPTOSAHNLW6EPTI>
   10478:	b108      	cbz	r0, 1047e <sym_6I4XEOIW7LI2E3Z53L54ZHQQHYICXR4H4JQWXLA+0xe>
   1047a:	2010      	movs	r0, #16
   1047c:	bd70      	pop	{r4, r5, r6, pc}
   1047e:	7825      	ldrb	r5, [r4, #0]
   10480:	f000 f8fe 	bl	10680 <sym_4AWF7EXI3MMHUULTY73E756U3IY5DEXOZ265MZY+0x170>
   10484:	4602      	mov	r2, r0
   10486:	480c      	ldr	r0, [pc, #48]	; (104b8 <sym_6I4XEOIW7LI2E3Z53L54ZHQQHYICXR4H4JQWXLA+0x48>)
   10488:	8861      	ldrh	r1, [r4, #2]
   1048a:	eb00 0085 	add.w	r0, r0, r5, lsl #2
   1048e:	e00e      	b.n	104ae <sym_6I4XEOIW7LI2E3Z53L54ZHQQHYICXR4H4JQWXLA+0x3e>
   10490:	68c3      	ldr	r3, [r0, #12]
   10492:	f853 3021 	ldr.w	r3, [r3, r1, lsl #2]
   10496:	b143      	cbz	r3, 104aa <sym_6I4XEOIW7LI2E3Z53L54ZHQQHYICXR4H4JQWXLA+0x3a>
   10498:	1c4a      	adds	r2, r1, #1
   1049a:	8062      	strh	r2, [r4, #2]
   1049c:	80a1      	strh	r1, [r4, #4]
   1049e:	68c0      	ldr	r0, [r0, #12]
   104a0:	f850 0021 	ldr.w	r0, [r0, r1, lsl #2]
   104a4:	60a0      	str	r0, [r4, #8]
   104a6:	2000      	movs	r0, #0
   104a8:	bd70      	pop	{r4, r5, r6, pc}
   104aa:	1c49      	adds	r1, r1, #1
   104ac:	b289      	uxth	r1, r1
   104ae:	4291      	cmp	r1, r2
   104b0:	d3ee      	bcc.n	10490 <sym_6I4XEOIW7LI2E3Z53L54ZHQQHYICXR4H4JQWXLA+0x20>
   104b2:	8061      	strh	r1, [r4, #2]
   104b4:	2005      	movs	r0, #5
   104b6:	bd70      	pop	{r4, r5, r6, pc}
   104b8:	20000f74 	.word	0x20000f74

000104bc <sym_DMJHGENWVWA7ILXIIOOHU6SYMMXUDCUFUUBACLQ>:
   104bc:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   104c0:	b121      	cbz	r1, 104cc <sym_DMJHGENWVWA7ILXIIOOHU6SYMMXUDCUFUUBACLQ+0x10>
   104c2:	2901      	cmp	r1, #1
   104c4:	d002      	beq.n	104cc <sym_DMJHGENWVWA7ILXIIOOHU6SYMMXUDCUFUUBACLQ+0x10>
   104c6:	2000      	movs	r0, #0
   104c8:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
   104cc:	4c0f      	ldr	r4, [pc, #60]	; (1050c <sym_DMJHGENWVWA7ILXIIOOHU6SYMMXUDCUFUUBACLQ+0x50>)
   104ce:	2700      	movs	r7, #0
   104d0:	463b      	mov	r3, r7
   104d2:	f64f 76ff 	movw	r6, #65535	; 0xffff
   104d6:	eb04 0581 	add.w	r5, r4, r1, lsl #2
   104da:	f814 c001 	ldrb.w	ip, [r4, r1]
   104de:	e00a      	b.n	104f6 <sym_DMJHGENWVWA7ILXIIOOHU6SYMMXUDCUFUUBACLQ+0x3a>
   104e0:	19dc      	adds	r4, r3, r7
   104e2:	f8d5 e00c 	ldr.w	lr, [r5, #12]
   104e6:	b2a4      	uxth	r4, r4
   104e8:	f85e e024 	ldr.w	lr, [lr, r4, lsl #2]
   104ec:	f1be 0f00 	cmp.w	lr, #0
   104f0:	d004      	beq.n	104fc <sym_DMJHGENWVWA7ILXIIOOHU6SYMMXUDCUFUUBACLQ+0x40>
   104f2:	1c5b      	adds	r3, r3, #1
   104f4:	b29b      	uxth	r3, r3
   104f6:	459c      	cmp	ip, r3
   104f8:	d8f2      	bhi.n	104e0 <sym_DMJHGENWVWA7ILXIIOOHU6SYMMXUDCUFUUBACLQ+0x24>
   104fa:	4634      	mov	r4, r6
   104fc:	8004      	strh	r4, [r0, #0]
   104fe:	4620      	mov	r0, r4
   10500:	42b4      	cmp	r4, r6
   10502:	d0e0      	beq.n	104c6 <sym_DMJHGENWVWA7ILXIIOOHU6SYMMXUDCUFUUBACLQ+0xa>
   10504:	e8bd 41f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, lr}
   10508:	f000 b834 	b.w	10574 <sym_4AWF7EXI3MMHUULTY73E756U3IY5DEXOZ265MZY+0x64>
   1050c:	20000f74 	.word	0x20000f74

00010510 <sym_4AWF7EXI3MMHUULTY73E756U3IY5DEXOZ265MZY>:
   10510:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   10514:	4606      	mov	r6, r0
   10516:	f5a0 407f 	sub.w	r0, r0, #65280	; 0xff00
   1051a:	460c      	mov	r4, r1
   1051c:	f243 0702 	movw	r7, #12290	; 0x3002
   10520:	38ff      	subs	r0, #255	; 0xff
   10522:	d020      	beq.n	10566 <sym_4AWF7EXI3MMHUULTY73E756U3IY5DEXOZ265MZY+0x56>
   10524:	2c02      	cmp	r4, #2
   10526:	d302      	bcc.n	1052e <sym_4AWF7EXI3MMHUULTY73E756U3IY5DEXOZ265MZY+0x1e>
   10528:	2007      	movs	r0, #7
   1052a:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
   1052e:	4630      	mov	r0, r6
   10530:	f000 f85a 	bl	105e8 <sym_4AWF7EXI3MMHUULTY73E756U3IY5DEXOZ265MZY+0xd8>
   10534:	0005      	movs	r5, r0
   10536:	d016      	beq.n	10566 <sym_4AWF7EXI3MMHUULTY73E756U3IY5DEXOZ265MZY+0x56>
   10538:	480c      	ldr	r0, [pc, #48]	; (1056c <sym_4AWF7EXI3MMHUULTY73E756U3IY5DEXOZ265MZY+0x5c>)
   1053a:	4629      	mov	r1, r5
   1053c:	f850 2024 	ldr.w	r2, [r0, r4, lsl #2]
   10540:	4630      	mov	r0, r6
   10542:	4790      	blx	r2
   10544:	480a      	ldr	r0, [pc, #40]	; (10570 <sym_4AWF7EXI3MMHUULTY73E756U3IY5DEXOZ265MZY+0x60>)
   10546:	2100      	movs	r1, #0
   10548:	eb00 0784 	add.w	r7, r0, r4, lsl #2
   1054c:	68f8      	ldr	r0, [r7, #12]
   1054e:	f840 1026 	str.w	r1, [r0, r6, lsl #2]
   10552:	4620      	mov	r0, r4
   10554:	f000 f88a 	bl	1066c <sym_4AWF7EXI3MMHUULTY73E756U3IY5DEXOZ265MZY+0x15c>
   10558:	4602      	mov	r2, r0
   1055a:	4629      	mov	r1, r5
   1055c:	6878      	ldr	r0, [r7, #4]
   1055e:	f008 fdad 	bl	190bc <sym_B627VJPECYREV5OY4VJ652ISBA4XGPKVOUJ747A>
   10562:	2000      	movs	r0, #0
   10564:	e7e1      	b.n	1052a <sym_4AWF7EXI3MMHUULTY73E756U3IY5DEXOZ265MZY+0x1a>
   10566:	4638      	mov	r0, r7
   10568:	e7df      	b.n	1052a <sym_4AWF7EXI3MMHUULTY73E756U3IY5DEXOZ265MZY+0x1a>
   1056a:	0000      	.short	0x0000
   1056c:	000106a0 	.word	0x000106a0
   10570:	20000f74 	.word	0x20000f74
   10574:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   10578:	4690      	mov	r8, r2
   1057a:	460d      	mov	r5, r1
   1057c:	4607      	mov	r7, r0
   1057e:	f008 fdcf 	bl	19120 <sym_3SKPFA625PNDCAQQU2M5BY77GYLRCXEEFZ5JBTY+0x22>
   10582:	b148      	cbz	r0, 10598 <sym_4AWF7EXI3MMHUULTY73E756U3IY5DEXOZ265MZY+0x88>
   10584:	4816      	ldr	r0, [pc, #88]	; (105e0 <sym_4AWF7EXI3MMHUULTY73E756U3IY5DEXOZ265MZY+0xd0>)
   10586:	eb00 0685 	add.w	r6, r0, r5, lsl #2
   1058a:	68f0      	ldr	r0, [r6, #12]
   1058c:	f850 0027 	ldr.w	r0, [r0, r7, lsl #2]
   10590:	b128      	cbz	r0, 1059e <sym_4AWF7EXI3MMHUULTY73E756U3IY5DEXOZ265MZY+0x8e>
   10592:	f44f 719d 	mov.w	r1, #314	; 0x13a
   10596:	e015      	b.n	105c4 <sym_4AWF7EXI3MMHUULTY73E756U3IY5DEXOZ265MZY+0xb4>
   10598:	f240 1139 	movw	r1, #313	; 0x139
   1059c:	e012      	b.n	105c4 <sym_4AWF7EXI3MMHUULTY73E756U3IY5DEXOZ265MZY+0xb4>
   1059e:	6870      	ldr	r0, [r6, #4]
   105a0:	2800      	cmp	r0, #0
   105a2:	d01a      	beq.n	105da <sym_4AWF7EXI3MMHUULTY73E756U3IY5DEXOZ265MZY+0xca>
   105a4:	4628      	mov	r0, r5
   105a6:	f000 f861 	bl	1066c <sym_4AWF7EXI3MMHUULTY73E756U3IY5DEXOZ265MZY+0x15c>
   105aa:	4601      	mov	r1, r0
   105ac:	6870      	ldr	r0, [r6, #4]
   105ae:	f008 fd37 	bl	19020 <sym_JTNP7UFMKYWSFCHJEA5IASO3QVW3HK4YV6YOJYQ>
   105b2:	0004      	movs	r4, r0
   105b4:	d010      	beq.n	105d8 <sym_4AWF7EXI3MMHUULTY73E756U3IY5DEXOZ265MZY+0xc8>
   105b6:	68f0      	ldr	r0, [r6, #12]
   105b8:	2d02      	cmp	r5, #2
   105ba:	f840 4027 	str.w	r4, [r0, r7, lsl #2]
   105be:	d304      	bcc.n	105ca <sym_4AWF7EXI3MMHUULTY73E756U3IY5DEXOZ265MZY+0xba>
   105c0:	f240 1145 	movw	r1, #325	; 0x145
   105c4:	2017      	movs	r0, #23
   105c6:	f7ff fd0d 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   105ca:	4806      	ldr	r0, [pc, #24]	; (105e4 <sym_4AWF7EXI3MMHUULTY73E756U3IY5DEXOZ265MZY+0xd4>)
   105cc:	4642      	mov	r2, r8
   105ce:	4621      	mov	r1, r4
   105d0:	f850 3025 	ldr.w	r3, [r0, r5, lsl #2]
   105d4:	4638      	mov	r0, r7
   105d6:	4798      	blx	r3
   105d8:	4620      	mov	r0, r4
   105da:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
   105de:	0000      	.short	0x0000
   105e0:	20000f74 	.word	0x20000f74
   105e4:	00010698 	.word	0x00010698
   105e8:	b570      	push	{r4, r5, r6, lr}
   105ea:	460c      	mov	r4, r1
   105ec:	4605      	mov	r5, r0
   105ee:	f008 fd97 	bl	19120 <sym_3SKPFA625PNDCAQQU2M5BY77GYLRCXEEFZ5JBTY+0x22>
   105f2:	2800      	cmp	r0, #0
   105f4:	d005      	beq.n	10602 <sym_4AWF7EXI3MMHUULTY73E756U3IY5DEXOZ265MZY+0xf2>
   105f6:	4803      	ldr	r0, [pc, #12]	; (10604 <sym_4AWF7EXI3MMHUULTY73E756U3IY5DEXOZ265MZY+0xf4>)
   105f8:	eb00 0084 	add.w	r0, r0, r4, lsl #2
   105fc:	68c0      	ldr	r0, [r0, #12]
   105fe:	f850 0025 	ldr.w	r0, [r0, r5, lsl #2]
   10602:	bd70      	pop	{r4, r5, r6, pc}
   10604:	20000f74 	.word	0x20000f74
   10608:	e92d 43f8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
   1060c:	4e16      	ldr	r6, [pc, #88]	; (10668 <sym_4AWF7EXI3MMHUULTY73E756U3IY5DEXOZ265MZY+0x158>)
   1060e:	4688      	mov	r8, r1
   10610:	4605      	mov	r5, r0
   10612:	2400      	movs	r4, #0
   10614:	6828      	ldr	r0, [r5, #0]
   10616:	1cc0      	adds	r0, r0, #3
   10618:	f020 0003 	bic.w	r0, r0, #3
   1061c:	6028      	str	r0, [r5, #0]
   1061e:	4620      	mov	r0, r4
   10620:	f000 f824 	bl	1066c <sym_4AWF7EXI3MMHUULTY73E756U3IY5DEXOZ265MZY+0x15c>
   10624:	5d31      	ldrb	r1, [r6, r4]
   10626:	4348      	muls	r0, r1
   10628:	f1b8 0f00 	cmp.w	r8, #0
   1062c:	d001      	beq.n	10632 <sym_4AWF7EXI3MMHUULTY73E756U3IY5DEXOZ265MZY+0x122>
   1062e:	2200      	movs	r2, #0
   10630:	e000      	b.n	10634 <sym_4AWF7EXI3MMHUULTY73E756U3IY5DEXOZ265MZY+0x124>
   10632:	682a      	ldr	r2, [r5, #0]
   10634:	4601      	mov	r1, r0
   10636:	9200      	str	r2, [sp, #0]
   10638:	b132      	cbz	r2, 10648 <sym_4AWF7EXI3MMHUULTY73E756U3IY5DEXOZ265MZY+0x138>
   1063a:	2700      	movs	r7, #0
   1063c:	ea4f 000d 	mov.w	r0, sp
   10640:	f008 fd1b 	bl	1907a <sym_T2KVJXUKBW7E6DZMIXB2ENUQYG6P2TBYLXO3PAY>
   10644:	b11f      	cbz	r7, 1064e <sym_4AWF7EXI3MMHUULTY73E756U3IY5DEXOZ265MZY+0x13e>
   10646:	e006      	b.n	10656 <sym_4AWF7EXI3MMHUULTY73E756U3IY5DEXOZ265MZY+0x146>
   10648:	2701      	movs	r7, #1
   1064a:	2000      	movs	r0, #0
   1064c:	e7f8      	b.n	10640 <sym_4AWF7EXI3MMHUULTY73E756U3IY5DEXOZ265MZY+0x130>
   1064e:	eb06 0184 	add.w	r1, r6, r4, lsl #2
   10652:	9a00      	ldr	r2, [sp, #0]
   10654:	604a      	str	r2, [r1, #4]
   10656:	6829      	ldr	r1, [r5, #0]
   10658:	1c64      	adds	r4, r4, #1
   1065a:	4408      	add	r0, r1
   1065c:	b2e4      	uxtb	r4, r4
   1065e:	6028      	str	r0, [r5, #0]
   10660:	2c02      	cmp	r4, #2
   10662:	d3d7      	bcc.n	10614 <sym_4AWF7EXI3MMHUULTY73E756U3IY5DEXOZ265MZY+0x104>
   10664:	e8bd 83f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
   10668:	20000f74 	.word	0x20000f74
   1066c:	4903      	ldr	r1, [pc, #12]	; (1067c <sym_4AWF7EXI3MMHUULTY73E756U3IY5DEXOZ265MZY+0x16c>)
   1066e:	f831 0010 	ldrh.w	r0, [r1, r0, lsl #1]
   10672:	f64f 71fc 	movw	r1, #65532	; 0xfffc
   10676:	1cc0      	adds	r0, r0, #3
   10678:	4008      	ands	r0, r1
   1067a:	4770      	bx	lr
   1067c:	00010694 	.word	0x00010694
   10680:	4903      	ldr	r1, [pc, #12]	; (10690 <sym_4AWF7EXI3MMHUULTY73E756U3IY5DEXOZ265MZY+0x180>)
   10682:	7808      	ldrb	r0, [r1, #0]
   10684:	7849      	ldrb	r1, [r1, #1]
   10686:	4288      	cmp	r0, r1
   10688:	d200      	bcs.n	1068c <sym_4AWF7EXI3MMHUULTY73E756U3IY5DEXOZ265MZY+0x17c>
   1068a:	4608      	mov	r0, r1
   1068c:	4770      	bx	lr
   1068e:	0000      	.short	0x0000
   10690:	20000f74 	.word	0x20000f74
   10694:	00d40218 	.word	0x00d40218
   10698:	00019135 	.word	0x00019135
   1069c:	00019135 	.word	0x00019135
   106a0:	0001abdd 	.word	0x0001abdd
   106a4:	0001a055 	.word	0x0001a055

000106a8 <sym_24NU2MJKHN4R2Z7HXHMPDWTTDYSB32VL6HEQPZA>:
   106a8:	e92d 4fff 	stmdb	sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
   106ac:	4c26      	ldr	r4, [pc, #152]	; (10748 <sym_24NU2MJKHN4R2Z7HXHMPDWTTDYSB32VL6HEQPZA+0xa0>)
   106ae:	4680      	mov	r8, r0
   106b0:	b081      	sub	sp, #4
   106b2:	6820      	ldr	r0, [r4, #0]
   106b4:	469a      	mov	sl, r3
   106b6:	4693      	mov	fp, r2
   106b8:	b158      	cbz	r0, 106d2 <sym_24NU2MJKHN4R2Z7HXHMPDWTTDYSB32VL6HEQPZA+0x2a>
   106ba:	7a02      	ldrb	r2, [r0, #8]
   106bc:	4542      	cmp	r2, r8
   106be:	d903      	bls.n	106c8 <sym_24NU2MJKHN4R2Z7HXHMPDWTTDYSB32VL6HEQPZA+0x20>
   106c0:	6841      	ldr	r1, [r0, #4]
   106c2:	f851 0028 	ldr.w	r0, [r1, r8, lsl #2]
   106c6:	b140      	cbz	r0, 106da <sym_24NU2MJKHN4R2Z7HXHMPDWTTDYSB32VL6HEQPZA+0x32>
   106c8:	f243 0002 	movw	r0, #12290	; 0x3002
   106cc:	b005      	add	sp, #20
   106ce:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
   106d2:	21a5      	movs	r1, #165	; 0xa5
   106d4:	2018      	movs	r0, #24
   106d6:	f7ff fc85 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   106da:	4619      	mov	r1, r3
   106dc:	9802      	ldr	r0, [sp, #8]
   106de:	f008 fd41 	bl	19164 <sym_WDNTHBFS7DQM3AR7WDCR7ZEICFH5ZM5PJ35BRPY+0x2e>
   106e2:	b286      	uxth	r6, r0
   106e4:	4658      	mov	r0, fp
   106e6:	990e      	ldr	r1, [sp, #56]	; 0x38
   106e8:	f008 fd33 	bl	19152 <sym_WDNTHBFS7DQM3AR7WDCR7ZEICFH5ZM5PJ35BRPY+0x1c>
   106ec:	b285      	uxth	r5, r0
   106ee:	1970      	adds	r0, r6, r5
   106f0:	1d00      	adds	r0, r0, #4
   106f2:	b287      	uxth	r7, r0
   106f4:	6820      	ldr	r0, [r4, #0]
   106f6:	46a1      	mov	r9, r4
   106f8:	4639      	mov	r1, r7
   106fa:	6800      	ldr	r0, [r0, #0]
   106fc:	f008 fc90 	bl	19020 <sym_JTNP7UFMKYWSFCHJEA5IASO3QVW3HK4YV6YOJYQ>
   10700:	0004      	movs	r4, r0
   10702:	d01f      	beq.n	10744 <sym_24NU2MJKHN4R2Z7HXHMPDWTTDYSB32VL6HEQPZA+0x9c>
   10704:	8067      	strh	r7, [r4, #2]
   10706:	8025      	strh	r5, [r4, #0]
   10708:	4629      	mov	r1, r5
   1070a:	1d20      	adds	r0, r4, #4
   1070c:	9d0e      	ldr	r5, [sp, #56]	; 0x38
   1070e:	4607      	mov	r7, r0
   10710:	465a      	mov	r2, fp
   10712:	2301      	movs	r3, #1
   10714:	9500      	str	r5, [sp, #0]
   10716:	f008 fbe3 	bl	18ee0 <sym_A7PVZLRTORLFMETW3GOBE4DG32WTH46LP2SW5QQ>
   1071a:	8820      	ldrh	r0, [r4, #0]
   1071c:	4631      	mov	r1, r6
   1071e:	4438      	add	r0, r7
   10720:	2301      	movs	r3, #1
   10722:	9a02      	ldr	r2, [sp, #8]
   10724:	f8cd a000 	str.w	sl, [sp]
   10728:	f008 fbda 	bl	18ee0 <sym_A7PVZLRTORLFMETW3GOBE4DG32WTH46LP2SW5QQ>
   1072c:	8820      	ldrh	r0, [r4, #0]
   1072e:	19c1      	adds	r1, r0, r7
   10730:	4638      	mov	r0, r7
   10732:	f008 fc06 	bl	18f42 <sym_SSKIYGWPVDNEN7KR2D37H7PSUNCWATTS2JUNCZI>
   10736:	f8d9 0000 	ldr.w	r0, [r9]
   1073a:	6841      	ldr	r1, [r0, #4]
   1073c:	2000      	movs	r0, #0
   1073e:	f841 4028 	str.w	r4, [r1, r8, lsl #2]
   10742:	e7c3      	b.n	106cc <sym_24NU2MJKHN4R2Z7HXHMPDWTTDYSB32VL6HEQPZA+0x24>
   10744:	2004      	movs	r0, #4
   10746:	e7c1      	b.n	106cc <sym_24NU2MJKHN4R2Z7HXHMPDWTTDYSB32VL6HEQPZA+0x24>
   10748:	2000007c 	.word	0x2000007c

0001074c <sym_3QFBRH4ZSIA64QP2I3K547Y5WIALGQTCBP5Y5SQ>:
   1074c:	b570      	push	{r4, r5, r6, lr}
   1074e:	4c14      	ldr	r4, [pc, #80]	; (107a0 <sym_3QFBRH4ZSIA64QP2I3K547Y5WIALGQTCBP5Y5SQ+0x54>)
   10750:	6823      	ldr	r3, [r4, #0]
   10752:	b18b      	cbz	r3, 10778 <sym_3QFBRH4ZSIA64QP2I3K547Y5WIALGQTCBP5Y5SQ+0x2c>
   10754:	7a19      	ldrb	r1, [r3, #8]
   10756:	4281      	cmp	r1, r0
   10758:	d912      	bls.n	10780 <sym_3QFBRH4ZSIA64QP2I3K547Y5WIALGQTCBP5Y5SQ+0x34>
   1075a:	685a      	ldr	r2, [r3, #4]
   1075c:	f852 1020 	ldr.w	r1, [r2, r0, lsl #2]
   10760:	b171      	cbz	r1, 10780 <sym_3QFBRH4ZSIA64QP2I3K547Y5WIALGQTCBP5Y5SQ+0x34>
   10762:	2500      	movs	r5, #0
   10764:	f842 5020 	str.w	r5, [r2, r0, lsl #2]
   10768:	884a      	ldrh	r2, [r1, #2]
   1076a:	6818      	ldr	r0, [r3, #0]
   1076c:	f008 fca6 	bl	190bc <sym_B627VJPECYREV5OY4VJ652ISBA4XGPKVOUJ747A>
   10770:	6821      	ldr	r1, [r4, #0]
   10772:	2000      	movs	r0, #0
   10774:	7a0a      	ldrb	r2, [r1, #8]
   10776:	e00c      	b.n	10792 <sym_3QFBRH4ZSIA64QP2I3K547Y5WIALGQTCBP5Y5SQ+0x46>
   10778:	21c8      	movs	r1, #200	; 0xc8
   1077a:	2018      	movs	r0, #24
   1077c:	f7ff fc32 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   10780:	f243 0002 	movw	r0, #12290	; 0x3002
   10784:	bd70      	pop	{r4, r5, r6, pc}
   10786:	684b      	ldr	r3, [r1, #4]
   10788:	f853 3020 	ldr.w	r3, [r3, r0, lsl #2]
   1078c:	b933      	cbnz	r3, 1079c <sym_3QFBRH4ZSIA64QP2I3K547Y5WIALGQTCBP5Y5SQ+0x50>
   1078e:	1c40      	adds	r0, r0, #1
   10790:	b2c0      	uxtb	r0, r0
   10792:	4282      	cmp	r2, r0
   10794:	d8f7      	bhi.n	10786 <sym_3QFBRH4ZSIA64QP2I3K547Y5WIALGQTCBP5Y5SQ+0x3a>
   10796:	6808      	ldr	r0, [r1, #0]
   10798:	f008 fc85 	bl	190a6 <sym_4FRIF7JGOVTE7JZ3KYQVPKX5PKSXGKCIHE6GQDY>
   1079c:	2000      	movs	r0, #0
   1079e:	bd70      	pop	{r4, r5, r6, pc}
   107a0:	2000007c 	.word	0x2000007c

000107a4 <sym_6DYG6C6ROXZA67GZINNB2XIQHL3KE2RCKK4QFXA>:
   107a4:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   107a8:	460d      	mov	r5, r1
   107aa:	0004      	movs	r4, r0
   107ac:	4690      	mov	r8, r2
   107ae:	f04f 0600 	mov.w	r6, #0
   107b2:	d009      	beq.n	107c8 <sym_6DYG6C6ROXZA67GZINNB2XIQHL3KE2RCKK4QFXA+0x24>
   107b4:	2700      	movs	r7, #0
   107b6:	1ce0      	adds	r0, r4, #3
   107b8:	f020 0003 	bic.w	r0, r0, #3
   107bc:	42a0      	cmp	r0, r4
   107be:	d005      	beq.n	107cc <sym_6DYG6C6ROXZA67GZINNB2XIQHL3KE2RCKK4QFXA+0x28>
   107c0:	2186      	movs	r1, #134	; 0x86
   107c2:	2018      	movs	r0, #24
   107c4:	f7ff fc0e 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   107c8:	2701      	movs	r7, #1
   107ca:	e7f4      	b.n	107b6 <sym_6DYG6C6ROXZA67GZINNB2XIQHL3KE2RCKK4QFXA+0x12>
   107cc:	b1cd      	cbz	r5, 10802 <sym_6DYG6C6ROXZA67GZINNB2XIQHL3KE2RCKK4QFXA+0x5e>
   107ce:	4611      	mov	r1, r2
   107d0:	2000      	movs	r0, #0
   107d2:	f008 fc52 	bl	1907a <sym_T2KVJXUKBW7E6DZMIXB2ENUQYG6P2TBYLXO3PAY>
   107d6:	300c      	adds	r0, #12
   107d8:	eb00 0685 	add.w	r6, r0, r5, lsl #2
   107dc:	b98f      	cbnz	r7, 10802 <sym_6DYG6C6ROXZA67GZINNB2XIQHL3KE2RCKK4QFXA+0x5e>
   107de:	4f0a      	ldr	r7, [pc, #40]	; (10808 <sym_6DYG6C6ROXZA67GZINNB2XIQHL3KE2RCKK4QFXA+0x64>)
   107e0:	f104 000c 	add.w	r0, r4, #12
   107e4:	00aa      	lsls	r2, r5, #2
   107e6:	603c      	str	r4, [r7, #0]
   107e8:	7225      	strb	r5, [r4, #8]
   107ea:	6060      	str	r0, [r4, #4]
   107ec:	eb00 0085 	add.w	r0, r0, r5, lsl #2
   107f0:	6020      	str	r0, [r4, #0]
   107f2:	2100      	movs	r1, #0
   107f4:	6860      	ldr	r0, [r4, #4]
   107f6:	f007 fcde 	bl	181b6 <sym_VSILKYHVQ5DVF6LG5MG267DQVA3A2XZQ6FSCLXA>
   107fa:	4641      	mov	r1, r8
   107fc:	6838      	ldr	r0, [r7, #0]
   107fe:	f008 fc3c 	bl	1907a <sym_T2KVJXUKBW7E6DZMIXB2ENUQYG6P2TBYLXO3PAY>
   10802:	4630      	mov	r0, r6
   10804:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
   10808:	2000007c 	.word	0x2000007c

0001080c <sym_NOQRMQ5IH6SQFJEPI5A3UBMITO54HG4WO4DTTXA>:
   1080c:	b570      	push	{r4, r5, r6, lr}
   1080e:	4d08      	ldr	r5, [pc, #32]	; (10830 <sym_NOQRMQ5IH6SQFJEPI5A3UBMITO54HG4WO4DTTXA+0x24>)
   10810:	6828      	ldr	r0, [r5, #0]
   10812:	2800      	cmp	r0, #0
   10814:	d00a      	beq.n	1082c <sym_NOQRMQ5IH6SQFJEPI5A3UBMITO54HG4WO4DTTXA+0x20>
   10816:	2400      	movs	r4, #0
   10818:	e004      	b.n	10824 <sym_NOQRMQ5IH6SQFJEPI5A3UBMITO54HG4WO4DTTXA+0x18>
   1081a:	4620      	mov	r0, r4
   1081c:	f7ff ff96 	bl	1074c <sym_3QFBRH4ZSIA64QP2I3K547Y5WIALGQTCBP5Y5SQ>
   10820:	1c64      	adds	r4, r4, #1
   10822:	b2e4      	uxtb	r4, r4
   10824:	6828      	ldr	r0, [r5, #0]
   10826:	7a00      	ldrb	r0, [r0, #8]
   10828:	42a0      	cmp	r0, r4
   1082a:	d8f6      	bhi.n	1081a <sym_NOQRMQ5IH6SQFJEPI5A3UBMITO54HG4WO4DTTXA+0xe>
   1082c:	bd70      	pop	{r4, r5, r6, pc}
   1082e:	0000      	.short	0x0000
   10830:	2000007c 	.word	0x2000007c

00010834 <sym_YNBBHT54WKEGUNVC6TSBMRGLF67VFWBOYEMKGTQ>:
   10834:	4909      	ldr	r1, [pc, #36]	; (1085c <sym_YNBBHT54WKEGUNVC6TSBMRGLF67VFWBOYEMKGTQ+0x28>)
   10836:	b510      	push	{r4, lr}
   10838:	4602      	mov	r2, r0
   1083a:	6809      	ldr	r1, [r1, #0]
   1083c:	2000      	movs	r0, #0
   1083e:	b149      	cbz	r1, 10854 <sym_YNBBHT54WKEGUNVC6TSBMRGLF67VFWBOYEMKGTQ+0x20>
   10840:	7a0b      	ldrb	r3, [r1, #8]
   10842:	4293      	cmp	r3, r2
   10844:	d905      	bls.n	10852 <sym_YNBBHT54WKEGUNVC6TSBMRGLF67VFWBOYEMKGTQ+0x1e>
   10846:	6849      	ldr	r1, [r1, #4]
   10848:	f851 1022 	ldr.w	r1, [r1, r2, lsl #2]
   1084c:	2900      	cmp	r1, #0
   1084e:	d000      	beq.n	10852 <sym_YNBBHT54WKEGUNVC6TSBMRGLF67VFWBOYEMKGTQ+0x1e>
   10850:	1d08      	adds	r0, r1, #4
   10852:	bd10      	pop	{r4, pc}
   10854:	21ee      	movs	r1, #238	; 0xee
   10856:	2018      	movs	r0, #24
   10858:	f7ff fbc4 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   1085c:	2000007c 	.word	0x2000007c

00010860 <sym_35ZAQW4ABRMBYES2ZHPK63BHZAFFFC4WMGEJ6NA>:
   10860:	490a      	ldr	r1, [pc, #40]	; (1088c <sym_35ZAQW4ABRMBYES2ZHPK63BHZAFFFC4WMGEJ6NA+0x2c>)
   10862:	b510      	push	{r4, lr}
   10864:	4602      	mov	r2, r0
   10866:	6809      	ldr	r1, [r1, #0]
   10868:	2000      	movs	r0, #0
   1086a:	b159      	cbz	r1, 10884 <sym_35ZAQW4ABRMBYES2ZHPK63BHZAFFFC4WMGEJ6NA+0x24>
   1086c:	7a0b      	ldrb	r3, [r1, #8]
   1086e:	4293      	cmp	r3, r2
   10870:	d907      	bls.n	10882 <sym_35ZAQW4ABRMBYES2ZHPK63BHZAFFFC4WMGEJ6NA+0x22>
   10872:	6849      	ldr	r1, [r1, #4]
   10874:	f851 1022 	ldr.w	r1, [r1, r2, lsl #2]
   10878:	2900      	cmp	r1, #0
   1087a:	d002      	beq.n	10882 <sym_35ZAQW4ABRMBYES2ZHPK63BHZAFFFC4WMGEJ6NA+0x22>
   1087c:	f831 0b04 	ldrh.w	r0, [r1], #4
   10880:	4408      	add	r0, r1
   10882:	bd10      	pop	{r4, pc}
   10884:	21fc      	movs	r1, #252	; 0xfc
   10886:	2018      	movs	r0, #24
   10888:	f7ff fbac 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   1088c:	2000007c 	.word	0x2000007c
   10890:	b570      	push	{r4, r5, r6, lr}
   10892:	4b1e      	ldr	r3, [pc, #120]	; (1090c <sym_35ZAQW4ABRMBYES2ZHPK63BHZAFFFC4WMGEJ6NA+0xac>)
   10894:	6845      	ldr	r5, [r0, #4]
   10896:	4604      	mov	r4, r0
   10898:	2200      	movs	r2, #0
   1089a:	b1a1      	cbz	r1, 108c6 <sym_35ZAQW4ABRMBYES2ZHPK63BHZAFFFC4WMGEJ6NA+0x66>
   1089c:	2001      	movs	r0, #1
   1089e:	7060      	strb	r0, [r4, #1]
   108a0:	8858      	ldrh	r0, [r3, #2]
   108a2:	0881      	lsrs	r1, r0, #2
   108a4:	f05f 0000 	movs.w	r0, #0
   108a8:	eb04 0340 	add.w	r3, r4, r0, lsl #1
   108ac:	eb04 0680 	add.w	r6, r4, r0, lsl #2
   108b0:	831a      	strh	r2, [r3, #24]
   108b2:	8419      	strh	r1, [r3, #32]
   108b4:	fb00 5301 	mla	r3, r0, r1, r5
   108b8:	6073      	str	r3, [r6, #4]
   108ba:	1823      	adds	r3, r4, r0
   108bc:	1c40      	adds	r0, r0, #1
   108be:	751a      	strb	r2, [r3, #20]
   108c0:	2804      	cmp	r0, #4
   108c2:	d3f1      	bcc.n	108a8 <sym_35ZAQW4ABRMBYES2ZHPK63BHZAFFFC4WMGEJ6NA+0x48>
   108c4:	bd70      	pop	{r4, r5, r6, pc}
   108c6:	7062      	strb	r2, [r4, #1]
   108c8:	f05f 0000 	movs.w	r0, #0
   108cc:	eb04 0140 	add.w	r1, r4, r0, lsl #1
   108d0:	830a      	strh	r2, [r1, #24]
   108d2:	840a      	strh	r2, [r1, #32]
   108d4:	eb04 0180 	add.w	r1, r4, r0, lsl #2
   108d8:	604a      	str	r2, [r1, #4]
   108da:	1821      	adds	r1, r4, r0
   108dc:	1c40      	adds	r0, r0, #1
   108de:	750a      	strb	r2, [r1, #20]
   108e0:	2804      	cmp	r0, #4
   108e2:	d3f3      	bcc.n	108cc <sym_35ZAQW4ABRMBYES2ZHPK63BHZAFFFC4WMGEJ6NA+0x6c>
   108e4:	8858      	ldrh	r0, [r3, #2]
   108e6:	f5b0 7fff 	cmp.w	r0, #510	; 0x1fe
   108ea:	d201      	bcs.n	108f0 <sym_35ZAQW4ABRMBYES2ZHPK63BHZAFFFC4WMGEJ6NA+0x90>
   108ec:	0846      	lsrs	r6, r0, #1
   108ee:	e000      	b.n	108f2 <sym_35ZAQW4ABRMBYES2ZHPK63BHZAFFFC4WMGEJ6NA+0x92>
   108f0:	26ff      	movs	r6, #255	; 0xff
   108f2:	f008 fcaa 	bl	1924a <sym_WDNTHBFS7DQM3AR7WDCR7ZEICFH5ZM5PJ35BRPY+0x114>
   108f6:	6065      	str	r5, [r4, #4]
   108f8:	8420      	strh	r0, [r4, #32]
   108fa:	1829      	adds	r1, r5, r0
   108fc:	60a1      	str	r1, [r4, #8]
   108fe:	8466      	strh	r6, [r4, #34]	; 0x22
   10900:	60e5      	str	r5, [r4, #12]
   10902:	84a0      	strh	r0, [r4, #36]	; 0x24
   10904:	6121      	str	r1, [r4, #16]
   10906:	84e6      	strh	r6, [r4, #38]	; 0x26
   10908:	bd70      	pop	{r4, r5, r6, pc}
   1090a:	0000      	.short	0x0000
   1090c:	20000080 	.word	0x20000080

00010910 <sym_YL4RMM7WH2QQSRTLJX7L5Q2F5KYIEZ5IWMCN3UQ>:
   10910:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   10914:	b170      	cbz	r0, 10934 <sym_YL4RMM7WH2QQSRTLJX7L5Q2F5KYIEZ5IWMCN3UQ+0x24>
   10916:	2500      	movs	r5, #0
   10918:	4411      	add	r1, r2
   1091a:	b2cc      	uxtb	r4, r1
   1091c:	4e24      	ldr	r6, [pc, #144]	; (109b0 <sym_YL4RMM7WH2QQSRTLJX7L5Q2F5KYIEZ5IWMCN3UQ+0xa0>)
   1091e:	1cc1      	adds	r1, r0, #3
   10920:	2700      	movs	r7, #0
   10922:	f021 0103 	bic.w	r1, r1, #3
   10926:	7034      	strb	r4, [r6, #0]
   10928:	4281      	cmp	r1, r0
   1092a:	d005      	beq.n	10938 <sym_YL4RMM7WH2QQSRTLJX7L5Q2F5KYIEZ5IWMCN3UQ+0x28>
   1092c:	214e      	movs	r1, #78	; 0x4e
   1092e:	2009      	movs	r0, #9
   10930:	f7ff fb58 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   10934:	2501      	movs	r5, #1
   10936:	e7ef      	b.n	10918 <sym_YL4RMM7WH2QQSRTLJX7L5Q2F5KYIEZ5IWMCN3UQ+0x8>
   10938:	2b1f      	cmp	r3, #31
   1093a:	d804      	bhi.n	10946 <sym_YL4RMM7WH2QQSRTLJX7L5Q2F5KYIEZ5IWMCN3UQ+0x36>
   1093c:	f64f 71ff 	movw	r1, #65535	; 0xffff
   10940:	ea01 0183 	and.w	r1, r1, r3, lsl #2
   10944:	e009      	b.n	1095a <sym_YL4RMM7WH2QQSRTLJX7L5Q2F5KYIEZ5IWMCN3UQ+0x4a>
   10946:	0059      	lsls	r1, r3, #1
   10948:	2bff      	cmp	r3, #255	; 0xff
   1094a:	d90b      	bls.n	10964 <sym_YL4RMM7WH2QQSRTLJX7L5Q2F5KYIEZ5IWMCN3UQ+0x54>
   1094c:	f103 02ff 	add.w	r2, r3, #255	; 0xff
   10950:	ebb2 0f43 	cmp.w	r2, r3, lsl #1
   10954:	d200      	bcs.n	10958 <sym_YL4RMM7WH2QQSRTLJX7L5Q2F5KYIEZ5IWMCN3UQ+0x48>
   10956:	4611      	mov	r1, r2
   10958:	b289      	uxth	r1, r1
   1095a:	1cc9      	adds	r1, r1, #3
   1095c:	f021 0303 	bic.w	r3, r1, #3
   10960:	b135      	cbz	r5, 10970 <sym_YL4RMM7WH2QQSRTLJX7L5Q2F5KYIEZ5IWMCN3UQ+0x60>
   10962:	e007      	b.n	10974 <sym_YL4RMM7WH2QQSRTLJX7L5Q2F5KYIEZ5IWMCN3UQ+0x64>
   10964:	227c      	movs	r2, #124	; 0x7c
   10966:	ebb2 0f43 	cmp.w	r2, r3, lsl #1
   1096a:	d3f5      	bcc.n	10958 <sym_YL4RMM7WH2QQSRTLJX7L5Q2F5KYIEZ5IWMCN3UQ+0x48>
   1096c:	217c      	movs	r1, #124	; 0x7c
   1096e:	e7f3      	b.n	10958 <sym_YL4RMM7WH2QQSRTLJX7L5Q2F5KYIEZ5IWMCN3UQ+0x48>
   10970:	6070      	str	r0, [r6, #4]
   10972:	8073      	strh	r3, [r6, #2]
   10974:	eb04 0184 	add.w	r1, r4, r4, lsl #2
   10978:	eb07 02c1 	add.w	r2, r7, r1, lsl #3
   1097c:	2100      	movs	r1, #0
   1097e:	6876      	ldr	r6, [r6, #4]
   10980:	f04f 0c01 	mov.w	ip, #1
   10984:	e00d      	b.n	109a2 <sym_YL4RMM7WH2QQSRTLJX7L5Q2F5KYIEZ5IWMCN3UQ+0x92>
   10986:	b94d      	cbnz	r5, 1099c <sym_YL4RMM7WH2QQSRTLJX7L5Q2F5KYIEZ5IWMCN3UQ+0x8c>
   10988:	eb01 0781 	add.w	r7, r1, r1, lsl #2
   1098c:	eb00 0e02 	add.w	lr, r0, r2
   10990:	f806 c037 	strb.w	ip, [r6, r7, lsl #3]
   10994:	eb06 07c7 	add.w	r7, r6, r7, lsl #3
   10998:	f8c7 e004 	str.w	lr, [r7, #4]
   1099c:	1c49      	adds	r1, r1, #1
   1099e:	441a      	add	r2, r3
   109a0:	b2c9      	uxtb	r1, r1
   109a2:	42a1      	cmp	r1, r4
   109a4:	d3ef      	bcc.n	10986 <sym_YL4RMM7WH2QQSRTLJX7L5Q2F5KYIEZ5IWMCN3UQ+0x76>
   109a6:	1dd2      	adds	r2, r2, #7
   109a8:	f022 0007 	bic.w	r0, r2, #7
   109ac:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
   109b0:	20000080 	.word	0x20000080

000109b4 <sym_47U6MZ7GC5PU2CVEGYFSZO6JE3OMJD4DVLRAUZQ>:
   109b4:	b570      	push	{r4, r5, r6, lr}
   109b6:	4a10      	ldr	r2, [pc, #64]	; (109f8 <sym_47U6MZ7GC5PU2CVEGYFSZO6JE3OMJD4DVLRAUZQ+0x44>)
   109b8:	2000      	movs	r0, #0
   109ba:	6851      	ldr	r1, [r2, #4]
   109bc:	7812      	ldrb	r2, [r2, #0]
   109be:	e014      	b.n	109ea <sym_47U6MZ7GC5PU2CVEGYFSZO6JE3OMJD4DVLRAUZQ+0x36>
   109c0:	eb00 0380 	add.w	r3, r0, r0, lsl #2
   109c4:	f811 3033 	ldrb.w	r3, [r1, r3, lsl #3]
   109c8:	b16b      	cbz	r3, 109e6 <sym_47U6MZ7GC5PU2CVEGYFSZO6JE3OMJD4DVLRAUZQ+0x32>
   109ca:	eb00 0080 	add.w	r0, r0, r0, lsl #2
   109ce:	eb11 04c0 	adds.w	r4, r1, r0, lsl #3
   109d2:	d00c      	beq.n	109ee <sym_47U6MZ7GC5PU2CVEGYFSZO6JE3OMJD4DVLRAUZQ+0x3a>
   109d4:	2500      	movs	r5, #0
   109d6:	70a5      	strb	r5, [r4, #2]
   109d8:	2101      	movs	r1, #1
   109da:	4620      	mov	r0, r4
   109dc:	f7ff ff58 	bl	10890 <sym_35ZAQW4ABRMBYES2ZHPK63BHZAFFFC4WMGEJ6NA+0x30>
   109e0:	7025      	strb	r5, [r4, #0]
   109e2:	4620      	mov	r0, r4
   109e4:	bd70      	pop	{r4, r5, r6, pc}
   109e6:	1c40      	adds	r0, r0, #1
   109e8:	b2c0      	uxtb	r0, r0
   109ea:	4290      	cmp	r0, r2
   109ec:	d3e8      	bcc.n	109c0 <sym_47U6MZ7GC5PU2CVEGYFSZO6JE3OMJD4DVLRAUZQ+0xc>
   109ee:	21a9      	movs	r1, #169	; 0xa9
   109f0:	2009      	movs	r0, #9
   109f2:	f7ff faf7 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   109f6:	0000      	.short	0x0000
   109f8:	20000080 	.word	0x20000080

000109fc <sym_LD2UWOJIHNEPQLGRHPDQLYGR7RM2YL5X5777QYQ>:
   109fc:	4804      	ldr	r0, [pc, #16]	; (10a10 <sym_LD2UWOJIHNEPQLGRHPDQLYGR7RM2YL5X5777QYQ+0x14>)
   109fe:	b510      	push	{r4, lr}
   10a00:	8840      	ldrh	r0, [r0, #2]
   10a02:	0884      	lsrs	r4, r0, #2
   10a04:	f008 fc21 	bl	1924a <sym_WDNTHBFS7DQM3AR7WDCR7ZEICFH5ZM5PJ35BRPY+0x114>
   10a08:	4284      	cmp	r4, r0
   10a0a:	d300      	bcc.n	10a0e <sym_LD2UWOJIHNEPQLGRHPDQLYGR7RM2YL5X5777QYQ+0x12>
   10a0c:	4620      	mov	r0, r4
   10a0e:	bd10      	pop	{r4, pc}
   10a10:	20000080 	.word	0x20000080
   10a14:	4909      	ldr	r1, [pc, #36]	; (10a3c <sym_LD2UWOJIHNEPQLGRHPDQLYGR7RM2YL5X5777QYQ+0x40>)
   10a16:	b510      	push	{r4, lr}
   10a18:	4807      	ldr	r0, [pc, #28]	; (10a38 <sym_LD2UWOJIHNEPQLGRHPDQLYGR7RM2YL5X5777QYQ+0x3c>)
   10a1a:	6008      	str	r0, [r1, #0]
   10a1c:	4b08      	ldr	r3, [pc, #32]	; (10a40 <sym_LD2UWOJIHNEPQLGRHPDQLYGR7RM2YL5X5777QYQ+0x44>)
   10a1e:	2011      	movs	r0, #17
   10a20:	eb03 04c0 	add.w	r4, r3, r0, lsl #3
   10a24:	2200      	movs	r2, #0
   10a26:	f8c4 2510 	str.w	r2, [r4, #1296]	; 0x510
   10a2a:	f8c4 2514 	str.w	r2, [r4, #1300]	; 0x514
   10a2e:	1c40      	adds	r0, r0, #1
   10a30:	b2c0      	uxtb	r0, r0
   10a32:	2814      	cmp	r0, #20
   10a34:	d3f4      	bcc.n	10a20 <sym_LD2UWOJIHNEPQLGRHPDQLYGR7RM2YL5X5777QYQ+0x24>
   10a36:	bd10      	pop	{r4, pc}
   10a38:	fffe0000 	.word	0xfffe0000
   10a3c:	4001f508 	.word	0x4001f508
   10a40:	4001f000 	.word	0x4001f000
   10a44:	b570      	push	{r4, r5, r6, lr}
   10a46:	2420      	movs	r4, #32
   10a48:	2100      	movs	r1, #0
   10a4a:	2301      	movs	r3, #1
   10a4c:	fa20 f201 	lsr.w	r2, r0, r1
   10a50:	07d2      	lsls	r2, r2, #31
   10a52:	d020      	beq.n	10a96 <sym_LD2UWOJIHNEPQLGRHPDQLYGR7RM2YL5X5777QYQ+0x9a>
   10a54:	b24a      	sxtb	r2, r1
   10a56:	2a00      	cmp	r2, #0
   10a58:	db10      	blt.n	10a7c <sym_LD2UWOJIHNEPQLGRHPDQLYGR7RM2YL5X5777QYQ+0x80>
   10a5a:	bf00      	nop
   10a5c:	ea4f 1652 	mov.w	r6, r2, lsr #5
   10a60:	ea4f 0686 	mov.w	r6, r6, lsl #2
   10a64:	f002 051f 	and.w	r5, r2, #31
   10a68:	f106 26e0 	add.w	r6, r6, #3758153728	; 0xe000e000
   10a6c:	fa03 f505 	lsl.w	r5, r3, r5
   10a70:	f8c6 5180 	str.w	r5, [r6, #384]	; 0x180
   10a74:	f3bf 8f4f 	dsb	sy
   10a78:	f3bf 8f6f 	isb	sy
   10a7c:	db0b      	blt.n	10a96 <sym_LD2UWOJIHNEPQLGRHPDQLYGR7RM2YL5X5777QYQ+0x9a>
   10a7e:	f002 051f 	and.w	r5, r2, #31
   10a82:	ea4f 1252 	mov.w	r2, r2, lsr #5
   10a86:	ea4f 0282 	mov.w	r2, r2, lsl #2
   10a8a:	f102 22e0 	add.w	r2, r2, #3758153728	; 0xe000e000
   10a8e:	fa03 f505 	lsl.w	r5, r3, r5
   10a92:	f8c2 5280 	str.w	r5, [r2, #640]	; 0x280
   10a96:	f101 0101 	add.w	r1, r1, #1
   10a9a:	42a1      	cmp	r1, r4
   10a9c:	d3d6      	bcc.n	10a4c <sym_LD2UWOJIHNEPQLGRHPDQLYGR7RM2YL5X5777QYQ+0x50>
   10a9e:	bd70      	pop	{r4, r5, r6, pc}
   10aa0:	b570      	push	{r4, r5, r6, lr}
   10aa2:	0042      	lsls	r2, r0, #1
   10aa4:	f04f 0100 	mov.w	r1, #0
   10aa8:	d501      	bpl.n	10aae <sym_LD2UWOJIHNEPQLGRHPDQLYGR7RM2YL5X5777QYQ+0xb2>
   10aaa:	4a14      	ldr	r2, [pc, #80]	; (10afc <sym_LD2UWOJIHNEPQLGRHPDQLYGR7RM2YL5X5777QYQ+0x100>)
   10aac:	6011      	str	r1, [r2, #0]
   10aae:	f3c0 3280 	ubfx	r2, r0, #14, #1
   10ab2:	f3c0 33c0 	ubfx	r3, r0, #15, #1
   10ab6:	429a      	cmp	r2, r3
   10ab8:	d003      	beq.n	10ac2 <sym_LD2UWOJIHNEPQLGRHPDQLYGR7RM2YL5X5777QYQ+0xc6>
   10aba:	2166      	movs	r1, #102	; 0x66
   10abc:	201b      	movs	r0, #27
   10abe:	f7ff fa91 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   10ac2:	f410 4f40 	tst.w	r0, #49152	; 0xc000
   10ac6:	d014      	beq.n	10af2 <sym_LD2UWOJIHNEPQLGRHPDQLYGR7RM2YL5X5777QYQ+0xf6>
   10ac8:	4a0d      	ldr	r2, [pc, #52]	; (10b00 <sym_LD2UWOJIHNEPQLGRHPDQLYGR7RM2YL5X5777QYQ+0x104>)
   10aca:	2001      	movs	r0, #1
   10acc:	6050      	str	r0, [r2, #4]
   10ace:	1e83      	subs	r3, r0, #2
   10ad0:	f8c2 3308 	str.w	r3, [r2, #776]	; 0x308
   10ad4:	4a0b      	ldr	r2, [pc, #44]	; (10b04 <sym_LD2UWOJIHNEPQLGRHPDQLYGR7RM2YL5X5777QYQ+0x108>)
   10ad6:	6090      	str	r0, [r2, #8]
   10ad8:	f8c2 1200 	str.w	r1, [r2, #512]	; 0x200
   10adc:	f8c2 3308 	str.w	r3, [r2, #776]	; 0x308
   10ae0:	4c09      	ldr	r4, [pc, #36]	; (10b08 <sym_LD2UWOJIHNEPQLGRHPDQLYGR7RM2YL5X5777QYQ+0x10c>)
   10ae2:	6021      	str	r1, [r4, #0]
   10ae4:	1d25      	adds	r5, r4, #4
   10ae6:	6028      	str	r0, [r5, #0]
   10ae8:	6090      	str	r0, [r2, #8]
   10aea:	f8c2 3308 	str.w	r3, [r2, #776]	; 0x308
   10aee:	6021      	str	r1, [r4, #0]
   10af0:	6028      	str	r0, [r5, #0]
   10af2:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
   10af6:	f7ff bf8d 	b.w	10a14 <sym_LD2UWOJIHNEPQLGRHPDQLYGR7RM2YL5X5777QYQ+0x18>
   10afa:	0000      	.short	0x0000
   10afc:	4001e504 	.word	0x4001e504
   10b00:	4000e000 	.word	0x4000e000
   10b04:	4000f000 	.word	0x4000f000
   10b08:	4000f500 	.word	0x4000f500

00010b0c <sym_E5WZNPP2DINHF6K4PHXLYLX5AXTYBQYGQESRSGQ>:
   10b0c:	b570      	push	{r4, r5, r6, lr}
   10b0e:	4c0a      	ldr	r4, [pc, #40]	; (10b38 <sym_E5WZNPP2DINHF6K4PHXLYLX5AXTYBQYGQESRSGQ+0x2c>)
   10b10:	460d      	mov	r5, r1
   10b12:	6020      	str	r0, [r4, #0]
   10b14:	f7ff ffc4 	bl	10aa0 <sym_LD2UWOJIHNEPQLGRHPDQLYGR7RM2YL5X5777QYQ+0xa4>
   10b18:	6820      	ldr	r0, [r4, #0]
   10b1a:	f7ff ff93 	bl	10a44 <sym_LD2UWOJIHNEPQLGRHPDQLYGR7RM2YL5X5777QYQ+0x48>
   10b1e:	f000 f877 	bl	10c10 <sym_RZ4KEX57U2ASIFFSRQDHBCB7WVJNTOCZSYKJFSA>
   10b22:	f7ff ff77 	bl	10a14 <sym_LD2UWOJIHNEPQLGRHPDQLYGR7RM2YL5X5777QYQ+0x18>
   10b26:	f008 fc53 	bl	193d0 <sym_TEFIALEYGDWZNVCI6J2TWNGI7MKU467ZDEG2H4A>
   10b2a:	4628      	mov	r0, r5
   10b2c:	f000 f8aa 	bl	10c84 <sym_7YLXP6BHTAWWWMXLB5XOZU3Q27WEPTH5PONOKOI>
   10b30:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
   10b34:	f000 b8c2 	b.w	10cbc <sym_O2AFZAWKVBYRIBDK67CHKRSMY4WR2S6V2VOPETI>
   10b38:	20000088 	.word	0x20000088

00010b3c <sym_2ZCOT6ZEUU54S36NE627GOZVLBS26AFIUJKNLBI>:
   10b3c:	e92d 5ffc 	stmdb	sp!, {r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, lr}
   10b40:	4e2f      	ldr	r6, [pc, #188]	; (10c00 <sym_2ZCOT6ZEUU54S36NE627GOZVLBS26AFIUJKNLBI+0xc4>)
   10b42:	4683      	mov	fp, r0
   10b44:	6830      	ldr	r0, [r6, #0]
   10b46:	9001      	str	r0, [sp, #4]
   10b48:	2701      	movs	r7, #1
   10b4a:	482e      	ldr	r0, [pc, #184]	; (10c04 <sym_2ZCOT6ZEUU54S36NE627GOZVLBS26AFIUJKNLBI+0xc8>)
   10b4c:	f007 fa10 	bl	17f70 <sym_AR22FPVUFSZMVYMQBBXG7EEZNA2HPS2RLAKRPBA>
   10b50:	f8df 80b0 	ldr.w	r8, [pc, #176]	; 10c04 <sym_2ZCOT6ZEUU54S36NE627GOZVLBS26AFIUJKNLBI+0xc8>
   10b54:	b920      	cbnz	r0, 10b60 <sym_2ZCOT6ZEUU54S36NE627GOZVLBS26AFIUJKNLBI+0x24>
   10b56:	2700      	movs	r7, #0
   10b58:	f108 0001 	add.w	r0, r8, #1
   10b5c:	f007 fa1f 	bl	17f9e <sym_OWJYSTADR5I36MIHWNPICVB7CMCWNSFIZPFXQ2Q>
   10b60:	4c29      	ldr	r4, [pc, #164]	; (10c08 <sym_2ZCOT6ZEUU54S36NE627GOZVLBS26AFIUJKNLBI+0xcc>)
   10b62:	2500      	movs	r5, #0
   10b64:	f04f 0903 	mov.w	r9, #3
   10b68:	2001      	movs	r0, #1
   10b6a:	6060      	str	r0, [r4, #4]
   10b6c:	f8c4 5100 	str.w	r5, [r4, #256]	; 0x100
   10b70:	f8c4 5104 	str.w	r5, [r4, #260]	; 0x104
   10b74:	f8c6 b000 	str.w	fp, [r6]
   10b78:	6020      	str	r0, [r4, #0]
   10b7a:	f8df a090 	ldr.w	sl, [pc, #144]	; 10c0c <sym_2ZCOT6ZEUU54S36NE627GOZVLBS26AFIUJKNLBI+0xd0>
   10b7e:	e017      	b.n	10bb0 <sym_2ZCOT6ZEUU54S36NE627GOZVLBS26AFIUJKNLBI+0x74>
   10b80:	f8da 0000 	ldr.w	r0, [sl]
   10b84:	06c0      	lsls	r0, r0, #27
   10b86:	d513      	bpl.n	10bb0 <sym_2ZCOT6ZEUU54S36NE627GOZVLBS26AFIUJKNLBI+0x74>
   10b88:	200e      	movs	r0, #14
   10b8a:	f008 fc12 	bl	193b2 <sym_MJFFFAJVV3IQTOJK6UL2575XXGCEKTIIFXD5MAQ+0x6>
   10b8e:	f3ef 8010 	mrs	r0, PRIMASK
   10b92:	9000      	str	r0, [sp, #0]
   10b94:	b672      	cpsid	i
   10b96:	f8c4 9304 	str.w	r9, [r4, #772]	; 0x304
   10b9a:	f8d4 0100 	ldr.w	r0, [r4, #256]	; 0x100
   10b9e:	b920      	cbnz	r0, 10baa <sym_2ZCOT6ZEUU54S36NE627GOZVLBS26AFIUJKNLBI+0x6e>
   10ba0:	f8d4 0104 	ldr.w	r0, [r4, #260]	; 0x104
   10ba4:	b908      	cbnz	r0, 10baa <sym_2ZCOT6ZEUU54S36NE627GOZVLBS26AFIUJKNLBI+0x6e>
   10ba6:	f7ff f89b 	bl	fce0 <sym_PAD7XREQQORPXRJMXMW2EYVS4S43S42A5D43SBA>
   10baa:	9800      	ldr	r0, [sp, #0]
   10bac:	b900      	cbnz	r0, 10bb0 <sym_2ZCOT6ZEUU54S36NE627GOZVLBS26AFIUJKNLBI+0x74>
   10bae:	b662      	cpsie	i
   10bb0:	f8d4 0100 	ldr.w	r0, [r4, #256]	; 0x100
   10bb4:	b918      	cbnz	r0, 10bbe <sym_2ZCOT6ZEUU54S36NE627GOZVLBS26AFIUJKNLBI+0x82>
   10bb6:	f8d4 0104 	ldr.w	r0, [r4, #260]	; 0x104
   10bba:	2800      	cmp	r0, #0
   10bbc:	d0e0      	beq.n	10b80 <sym_2ZCOT6ZEUU54S36NE627GOZVLBS26AFIUJKNLBI+0x44>
   10bbe:	f8d4 0104 	ldr.w	r0, [r4, #260]	; 0x104
   10bc2:	2800      	cmp	r0, #0
   10bc4:	d1d0      	bne.n	10b68 <sym_2ZCOT6ZEUU54S36NE627GOZVLBS26AFIUJKNLBI+0x2c>
   10bc6:	b137      	cbz	r7, 10bd6 <sym_2ZCOT6ZEUU54S36NE627GOZVLBS26AFIUJKNLBI+0x9a>
   10bc8:	9801      	ldr	r0, [sp, #4]
   10bca:	6030      	str	r0, [r6, #0]
   10bcc:	f108 0001 	add.w	r0, r8, #1
   10bd0:	f007 f9ce 	bl	17f70 <sym_AR22FPVUFSZMVYMQBBXG7EEZNA2HPS2RLAKRPBA>
   10bd4:	e011      	b.n	10bfa <sym_2ZCOT6ZEUU54S36NE627GOZVLBS26AFIUJKNLBI+0xbe>
   10bd6:	f108 0001 	add.w	r0, r8, #1
   10bda:	f007 f9c9 	bl	17f70 <sym_AR22FPVUFSZMVYMQBBXG7EEZNA2HPS2RLAKRPBA>
   10bde:	2800      	cmp	r0, #0
   10be0:	d1ba      	bne.n	10b58 <sym_2ZCOT6ZEUU54S36NE627GOZVLBS26AFIUJKNLBI+0x1c>
   10be2:	f8c4 9308 	str.w	r9, [r4, #776]	; 0x308
   10be6:	f8c4 5104 	str.w	r5, [r4, #260]	; 0x104
   10bea:	f8c4 5100 	str.w	r5, [r4, #256]	; 0x100
   10bee:	200e      	movs	r0, #14
   10bf0:	f008 fbdf 	bl	193b2 <sym_MJFFFAJVV3IQTOJK6UL2575XXGCEKTIIFXD5MAQ+0x6>
   10bf4:	4803      	ldr	r0, [pc, #12]	; (10c04 <sym_2ZCOT6ZEUU54S36NE627GOZVLBS26AFIUJKNLBI+0xc8>)
   10bf6:	f007 f9d2 	bl	17f9e <sym_OWJYSTADR5I36MIHWNPICVB7CMCWNSFIZPFXQ2Q>
   10bfa:	2000      	movs	r0, #0
   10bfc:	e8bd 9ffc 	ldmia.w	sp!, {r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, pc}
   10c00:	4000e504 	.word	0x4000e504
   10c04:	2000028b 	.word	0x2000028b
   10c08:	4000e000 	.word	0x4000e000
   10c0c:	e000ed10 	.word	0xe000ed10

00010c10 <sym_RZ4KEX57U2ASIFFSRQDHBCB7WVJNTOCZSYKJFSA>:
   10c10:	b510      	push	{r4, lr}
   10c12:	4808      	ldr	r0, [pc, #32]	; (10c34 <sym_RZ4KEX57U2ASIFFSRQDHBCB7WVJNTOCZSYKJFSA+0x24>)
   10c14:	f007 f9bf 	bl	17f96 <sym_YS3AHD7GWBHZEQHPIQANPGALEXB4QGY5O2DQKRY>
   10c18:	b108      	cbz	r0, 10c1e <sym_RZ4KEX57U2ASIFFSRQDHBCB7WVJNTOCZSYKJFSA+0xe>
   10c1a:	2124      	movs	r1, #36	; 0x24
   10c1c:	e006      	b.n	10c2c <sym_RZ4KEX57U2ASIFFSRQDHBCB7WVJNTOCZSYKJFSA+0x1c>
   10c1e:	4805      	ldr	r0, [pc, #20]	; (10c34 <sym_RZ4KEX57U2ASIFFSRQDHBCB7WVJNTOCZSYKJFSA+0x24>)
   10c20:	1c40      	adds	r0, r0, #1
   10c22:	f007 f9b8 	bl	17f96 <sym_YS3AHD7GWBHZEQHPIQANPGALEXB4QGY5O2DQKRY>
   10c26:	2800      	cmp	r0, #0
   10c28:	d003      	beq.n	10c32 <sym_RZ4KEX57U2ASIFFSRQDHBCB7WVJNTOCZSYKJFSA+0x22>
   10c2a:	2128      	movs	r1, #40	; 0x28
   10c2c:	201d      	movs	r0, #29
   10c2e:	f7ff f9d9 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   10c32:	bd10      	pop	{r4, pc}
   10c34:	2000028b 	.word	0x2000028b

00010c38 <sym_YRXVGCYVFXOSIQO43AC5UEELHEXP2A4UAFUQRPI>:
   10c38:	b570      	push	{r4, r5, r6, lr}
   10c3a:	4911      	ldr	r1, [pc, #68]	; (10c80 <sym_YRXVGCYVFXOSIQO43AC5UEELHEXP2A4UAFUQRPI+0x48>)
   10c3c:	680a      	ldr	r2, [r1, #0]
   10c3e:	b1ea      	cbz	r2, 10c7c <sym_YRXVGCYVFXOSIQO43AC5UEELHEXP2A4UAFUQRPI+0x44>
   10c40:	2300      	movs	r3, #0
   10c42:	461d      	mov	r5, r3
   10c44:	2401      	movs	r4, #1
   10c46:	684a      	ldr	r2, [r1, #4]
   10c48:	1c52      	adds	r2, r2, #1
   10c4a:	604a      	str	r2, [r1, #4]
   10c4c:	2a09      	cmp	r2, #9
   10c4e:	d300      	bcc.n	10c52 <sym_YRXVGCYVFXOSIQO43AC5UEELHEXP2A4UAFUQRPI+0x1a>
   10c50:	604d      	str	r5, [r1, #4]
   10c52:	790e      	ldrb	r6, [r1, #4]
   10c54:	fa04 f206 	lsl.w	r2, r4, r6
   10c58:	680e      	ldr	r6, [r1, #0]
   10c5a:	4216      	tst	r6, r2
   10c5c:	d00b      	beq.n	10c76 <sym_YRXVGCYVFXOSIQO43AC5UEELHEXP2A4UAFUQRPI+0x3e>
   10c5e:	f3ef 8310 	mrs	r3, PRIMASK
   10c62:	b672      	cpsid	i
   10c64:	680c      	ldr	r4, [r1, #0]
   10c66:	4394      	bics	r4, r2
   10c68:	600c      	str	r4, [r1, #0]
   10c6a:	b903      	cbnz	r3, 10c6e <sym_YRXVGCYVFXOSIQO43AC5UEELHEXP2A4UAFUQRPI+0x36>
   10c6c:	b662      	cpsie	i
   10c6e:	6849      	ldr	r1, [r1, #4]
   10c70:	6001      	str	r1, [r0, #0]
   10c72:	2000      	movs	r0, #0
   10c74:	bd70      	pop	{r4, r5, r6, pc}
   10c76:	1c5b      	adds	r3, r3, #1
   10c78:	2b09      	cmp	r3, #9
   10c7a:	d3e4      	bcc.n	10c46 <sym_YRXVGCYVFXOSIQO43AC5UEELHEXP2A4UAFUQRPI+0xe>
   10c7c:	2005      	movs	r0, #5
   10c7e:	bd70      	pop	{r4, r5, r6, pc}
   10c80:	2000008c 	.word	0x2000008c

00010c84 <sym_7YLXP6BHTAWWWMXLB5XOZU3Q27WEPTH5PONOKOI>:
   10c84:	4802      	ldr	r0, [pc, #8]	; (10c90 <sym_7YLXP6BHTAWWWMXLB5XOZU3Q27WEPTH5PONOKOI+0xc>)
   10c86:	2100      	movs	r1, #0
   10c88:	6001      	str	r1, [r0, #0]
   10c8a:	6041      	str	r1, [r0, #4]
   10c8c:	4770      	bx	lr
   10c8e:	0000      	.short	0x0000
   10c90:	2000008c 	.word	0x2000008c

00010c94 <sym_QFSP7NEBRUPCXI7KU3RYDOWD7SSPVNXVSULPYYY>:
   10c94:	b510      	push	{r4, lr}
   10c96:	4c08      	ldr	r4, [pc, #32]	; (10cb8 <sym_QFSP7NEBRUPCXI7KU3RYDOWD7SSPVNXVSULPYYY+0x24>)
   10c98:	7861      	ldrb	r1, [r4, #1]
   10c9a:	b109      	cbz	r1, 10ca0 <sym_QFSP7NEBRUPCXI7KU3RYDOWD7SSPVNXVSULPYYY+0xc>
   10c9c:	200f      	movs	r0, #15
   10c9e:	bd10      	pop	{r4, pc}
   10ca0:	f7fe ffaa 	bl	fbf8 <sym_W7ROFHNOSDKPIRUKDGIZZ5YR3MC3DAM2YLJOUIA>
   10ca4:	7020      	strb	r0, [r4, #0]
   10ca6:	28ff      	cmp	r0, #255	; 0xff
   10ca8:	d001      	beq.n	10cae <sym_QFSP7NEBRUPCXI7KU3RYDOWD7SSPVNXVSULPYYY+0x1a>
   10caa:	2000      	movs	r0, #0
   10cac:	bd10      	pop	{r4, pc}
   10cae:	2176      	movs	r1, #118	; 0x76
   10cb0:	201f      	movs	r0, #31
   10cb2:	f7ff f997 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   10cb6:	0000      	.short	0x0000
   10cb8:	20000094 	.word	0x20000094

00010cbc <sym_O2AFZAWKVBYRIBDK67CHKRSMY4WR2S6V2VOPETI>:
   10cbc:	4901      	ldr	r1, [pc, #4]	; (10cc4 <sym_O2AFZAWKVBYRIBDK67CHKRSMY4WR2S6V2VOPETI+0x8>)
   10cbe:	2000      	movs	r0, #0
   10cc0:	7048      	strb	r0, [r1, #1]
   10cc2:	4770      	bx	lr
   10cc4:	20000094 	.word	0x20000094

00010cc8 <sym_V7MOOXL5SOLISKFFGWJC7M3XDITU574WBQOXGWY>:
   10cc8:	4806      	ldr	r0, [pc, #24]	; (10ce4 <sym_V7MOOXL5SOLISKFFGWJC7M3XDITU574WBQOXGWY+0x1c>)
   10cca:	4a07      	ldr	r2, [pc, #28]	; (10ce8 <sym_V7MOOXL5SOLISKFFGWJC7M3XDITU574WBQOXGWY+0x20>)
   10ccc:	8c81      	ldrh	r1, [r0, #36]	; 0x24
   10cce:	8852      	ldrh	r2, [r2, #2]
   10cd0:	4291      	cmp	r1, r2
   10cd2:	d104      	bne.n	10cde <sym_V7MOOXL5SOLISKFFGWJC7M3XDITU574WBQOXGWY+0x16>
   10cd4:	f890 0022 	ldrb.w	r0, [r0, #34]	; 0x22
   10cd8:	b108      	cbz	r0, 10cde <sym_V7MOOXL5SOLISKFFGWJC7M3XDITU574WBQOXGWY+0x16>
   10cda:	2000      	movs	r0, #0
   10cdc:	4770      	bx	lr
   10cde:	2001      	movs	r0, #1
   10ce0:	4770      	bx	lr
   10ce2:	0000      	.short	0x0000
   10ce4:	20001208 	.word	0x20001208
   10ce8:	20000278 	.word	0x20000278

00010cec <sym_IXGTNRGKILIZPWG2NJIZ2ALUPW2IM3XFVCGJW2I>:
   10cec:	4901      	ldr	r1, [pc, #4]	; (10cf4 <sym_IXGTNRGKILIZPWG2NJIZ2ALUPW2IM3XFVCGJW2I+0x8>)
   10cee:	8048      	strh	r0, [r1, #2]
   10cf0:	4770      	bx	lr
   10cf2:	0000      	.short	0x0000
   10cf4:	20000278 	.word	0x20000278

00010cf8 <sym_54CHYGRI3UHSVLN5ZOGJESXNRISJW5CS4IYBN7Y>:
   10cf8:	4808      	ldr	r0, [pc, #32]	; (10d1c <sym_54CHYGRI3UHSVLN5ZOGJESXNRISJW5CS4IYBN7Y+0x24>)
   10cfa:	4a09      	ldr	r2, [pc, #36]	; (10d20 <sym_54CHYGRI3UHSVLN5ZOGJESXNRISJW5CS4IYBN7Y+0x28>)
   10cfc:	8c81      	ldrh	r1, [r0, #36]	; 0x24
   10cfe:	8852      	ldrh	r2, [r2, #2]
   10d00:	4291      	cmp	r1, r2
   10d02:	d109      	bne.n	10d18 <sym_54CHYGRI3UHSVLN5ZOGJESXNRISJW5CS4IYBN7Y+0x20>
   10d04:	f64f 71ff 	movw	r1, #65535	; 0xffff
   10d08:	8481      	strh	r1, [r0, #36]	; 0x24
   10d0a:	f810 1f22 	ldrb.w	r1, [r0, #34]!
   10d0e:	b119      	cbz	r1, 10d18 <sym_54CHYGRI3UHSVLN5ZOGJESXNRISJW5CS4IYBN7Y+0x20>
   10d10:	2100      	movs	r1, #0
   10d12:	7001      	strb	r1, [r0, #0]
   10d14:	2001      	movs	r0, #1
   10d16:	4770      	bx	lr
   10d18:	2000      	movs	r0, #0
   10d1a:	4770      	bx	lr
   10d1c:	20001208 	.word	0x20001208
   10d20:	20000278 	.word	0x20000278

00010d24 <sym_AGWGY6I3YKHHV6TMAWL24HN4IKGOB7PZYXPWBRA>:
   10d24:	4807      	ldr	r0, [pc, #28]	; (10d44 <sym_AGWGY6I3YKHHV6TMAWL24HN4IKGOB7PZYXPWBRA+0x20>)
   10d26:	f810 1f22 	ldrb.w	r1, [r0, #34]!
   10d2a:	2901      	cmp	r1, #1
   10d2c:	d007      	beq.n	10d3e <sym_AGWGY6I3YKHHV6TMAWL24HN4IKGOB7PZYXPWBRA+0x1a>
   10d2e:	2101      	movs	r1, #1
   10d30:	7001      	strb	r1, [r0, #0]
   10d32:	4805      	ldr	r0, [pc, #20]	; (10d48 <sym_AGWGY6I3YKHHV6TMAWL24HN4IKGOB7PZYXPWBRA+0x24>)
   10d34:	4903      	ldr	r1, [pc, #12]	; (10d44 <sym_AGWGY6I3YKHHV6TMAWL24HN4IKGOB7PZYXPWBRA+0x20>)
   10d36:	8800      	ldrh	r0, [r0, #0]
   10d38:	8488      	strh	r0, [r1, #36]	; 0x24
   10d3a:	2001      	movs	r0, #1
   10d3c:	4770      	bx	lr
   10d3e:	2000      	movs	r0, #0
   10d40:	4770      	bx	lr
   10d42:	0000      	.short	0x0000
   10d44:	20001208 	.word	0x20001208
   10d48:	20000278 	.word	0x20000278

00010d4c <sym_JHXS4T25BAYOMDDZMWPX3HMPENRV73GSV2RYHAI>:
   10d4c:	4906      	ldr	r1, [pc, #24]	; (10d68 <sym_JHXS4T25BAYOMDDZMWPX3HMPENRV73GSV2RYHAI+0x1c>)
   10d4e:	4b07      	ldr	r3, [pc, #28]	; (10d6c <sym_JHXS4T25BAYOMDDZMWPX3HMPENRV73GSV2RYHAI+0x20>)
   10d50:	8c8a      	ldrh	r2, [r1, #36]	; 0x24
   10d52:	885b      	ldrh	r3, [r3, #2]
   10d54:	429a      	cmp	r2, r3
   10d56:	d105      	bne.n	10d64 <sym_JHXS4T25BAYOMDDZMWPX3HMPENRV73GSV2RYHAI+0x18>
   10d58:	f891 2022 	ldrb.w	r2, [r1, #34]	; 0x22
   10d5c:	b112      	cbz	r2, 10d64 <sym_JHXS4T25BAYOMDDZMWPX3HMPENRV73GSV2RYHAI+0x18>
   10d5e:	6001      	str	r1, [r0, #0]
   10d60:	2001      	movs	r0, #1
   10d62:	4770      	bx	lr
   10d64:	2000      	movs	r0, #0
   10d66:	4770      	bx	lr
   10d68:	20001208 	.word	0x20001208
   10d6c:	20000278 	.word	0x20000278

00010d70 <sym_65LA7GM3MU7DDFQKTB75BYTZMPMROSWKS3VXCNI>:
   10d70:	4909      	ldr	r1, [pc, #36]	; (10d98 <sym_65LA7GM3MU7DDFQKTB75BYTZMPMROSWKS3VXCNI+0x28>)
   10d72:	8c8a      	ldrh	r2, [r1, #36]	; 0x24
   10d74:	f5a2 437f 	sub.w	r3, r2, #65280	; 0xff00
   10d78:	3bff      	subs	r3, #255	; 0xff
   10d7a:	d002      	beq.n	10d82 <sym_65LA7GM3MU7DDFQKTB75BYTZMPMROSWKS3VXCNI+0x12>
   10d7c:	2100      	movs	r1, #0
   10d7e:	6001      	str	r1, [r0, #0]
   10d80:	e007      	b.n	10d92 <sym_65LA7GM3MU7DDFQKTB75BYTZMPMROSWKS3VXCNI+0x22>
   10d82:	f891 2022 	ldrb.w	r2, [r1, #34]	; 0x22
   10d86:	4904      	ldr	r1, [pc, #16]	; (10d98 <sym_65LA7GM3MU7DDFQKTB75BYTZMPMROSWKS3VXCNI+0x28>)
   10d88:	2a01      	cmp	r2, #1
   10d8a:	d002      	beq.n	10d92 <sym_65LA7GM3MU7DDFQKTB75BYTZMPMROSWKS3VXCNI+0x22>
   10d8c:	6001      	str	r1, [r0, #0]
   10d8e:	2001      	movs	r0, #1
   10d90:	4770      	bx	lr
   10d92:	2000      	movs	r0, #0
   10d94:	4770      	bx	lr
   10d96:	0000      	.short	0x0000
   10d98:	20001208 	.word	0x20001208

00010d9c <sym_NKFCLZ5HTE6KVHDV5DGZ6TJP4KSZI43SYBECPRY>:
   10d9c:	4901      	ldr	r1, [pc, #4]	; (10da4 <sym_NKFCLZ5HTE6KVHDV5DGZ6TJP4KSZI43SYBECPRY+0x8>)
   10d9e:	8008      	strh	r0, [r1, #0]
   10da0:	4770      	bx	lr
   10da2:	0000      	.short	0x0000
   10da4:	20000278 	.word	0x20000278

00010da8 <sym_MJCF2WRL4I323V23HKVENOJWV5IXH54R5X6LJRY>:
   10da8:	4905      	ldr	r1, [pc, #20]	; (10dc0 <sym_MJCF2WRL4I323V23HKVENOJWV5IXH54R5X6LJRY+0x18>)
   10daa:	2000      	movs	r0, #0
   10dac:	f881 0022 	strb.w	r0, [r1, #34]	; 0x22
   10db0:	f64f 70ff 	movw	r0, #65535	; 0xffff
   10db4:	8488      	strh	r0, [r1, #36]	; 0x24
   10db6:	4903      	ldr	r1, [pc, #12]	; (10dc4 <sym_MJCF2WRL4I323V23HKVENOJWV5IXH54R5X6LJRY+0x1c>)
   10db8:	8008      	strh	r0, [r1, #0]
   10dba:	8048      	strh	r0, [r1, #2]
   10dbc:	4770      	bx	lr
   10dbe:	0000      	.short	0x0000
   10dc0:	20001208 	.word	0x20001208
   10dc4:	20000278 	.word	0x20000278
   10dc8:	4905      	ldr	r1, [pc, #20]	; (10de0 <sym_MJCF2WRL4I323V23HKVENOJWV5IXH54R5X6LJRY+0x38>)
   10dca:	8c8a      	ldrh	r2, [r1, #36]	; 0x24
   10dcc:	4282      	cmp	r2, r0
   10dce:	d105      	bne.n	10ddc <sym_MJCF2WRL4I323V23HKVENOJWV5IXH54R5X6LJRY+0x34>
   10dd0:	2000      	movs	r0, #0
   10dd2:	f881 0022 	strb.w	r0, [r1, #34]	; 0x22
   10dd6:	f64f 70ff 	movw	r0, #65535	; 0xffff
   10dda:	8488      	strh	r0, [r1, #36]	; 0x24
   10ddc:	4770      	bx	lr
   10dde:	0000      	.short	0x0000
   10de0:	20001208 	.word	0x20001208

00010de4 <sym_WCOWXKSKBH7DOKKKINFZAPWXKW4NYAUCJWTUKBI>:
   10de4:	4a0a      	ldr	r2, [pc, #40]	; (10e10 <sym_WCOWXKSKBH7DOKKKINFZAPWXKW4NYAUCJWTUKBI+0x2c>)
   10de6:	b110      	cbz	r0, 10dee <sym_WCOWXKSKBH7DOKKKINFZAPWXKW4NYAUCJWTUKBI+0xa>
   10de8:	2801      	cmp	r0, #1
   10dea:	d007      	beq.n	10dfc <sym_WCOWXKSKBH7DOKKKINFZAPWXKW4NYAUCJWTUKBI+0x18>
   10dec:	e00e      	b.n	10e0c <sym_WCOWXKSKBH7DOKKKINFZAPWXKW4NYAUCJWTUKBI+0x28>
   10dee:	7850      	ldrb	r0, [r2, #1]
   10df0:	b160      	cbz	r0, 10e0c <sym_WCOWXKSKBH7DOKKKINFZAPWXKW4NYAUCJWTUKBI+0x28>
   10df2:	f8d2 0002 	ldr.w	r0, [r2, #2]
   10df6:	6008      	str	r0, [r1, #0]
   10df8:	88d0      	ldrh	r0, [r2, #6]
   10dfa:	e004      	b.n	10e06 <sym_WCOWXKSKBH7DOKKKINFZAPWXKW4NYAUCJWTUKBI+0x22>
   10dfc:	7810      	ldrb	r0, [r2, #0]
   10dfe:	b128      	cbz	r0, 10e0c <sym_WCOWXKSKBH7DOKKKINFZAPWXKW4NYAUCJWTUKBI+0x28>
   10e00:	6890      	ldr	r0, [r2, #8]
   10e02:	6008      	str	r0, [r1, #0]
   10e04:	8990      	ldrh	r0, [r2, #12]
   10e06:	8088      	strh	r0, [r1, #4]
   10e08:	2001      	movs	r0, #1
   10e0a:	4770      	bx	lr
   10e0c:	2000      	movs	r0, #0
   10e0e:	4770      	bx	lr
   10e10:	2000028d 	.word	0x2000028d

00010e14 <sym_QKSVBALUN2V4XT4OCC56LE75IAYLDFRRIVLBZ2Q>:
   10e14:	4a08      	ldr	r2, [pc, #32]	; (10e38 <sym_QKSVBALUN2V4XT4OCC56LE75IAYLDFRRIVLBZ2Q+0x24>)
   10e16:	2301      	movs	r3, #1
   10e18:	b138      	cbz	r0, 10e2a <sym_QKSVBALUN2V4XT4OCC56LE75IAYLDFRRIVLBZ2Q+0x16>
   10e1a:	2801      	cmp	r0, #1
   10e1c:	d104      	bne.n	10e28 <sym_QKSVBALUN2V4XT4OCC56LE75IAYLDFRRIVLBZ2Q+0x14>
   10e1e:	7013      	strb	r3, [r2, #0]
   10e20:	6808      	ldr	r0, [r1, #0]
   10e22:	6090      	str	r0, [r2, #8]
   10e24:	8888      	ldrh	r0, [r1, #4]
   10e26:	8190      	strh	r0, [r2, #12]
   10e28:	4770      	bx	lr
   10e2a:	7053      	strb	r3, [r2, #1]
   10e2c:	6808      	ldr	r0, [r1, #0]
   10e2e:	f8c2 0002 	str.w	r0, [r2, #2]
   10e32:	8888      	ldrh	r0, [r1, #4]
   10e34:	80d0      	strh	r0, [r2, #6]
   10e36:	4770      	bx	lr
   10e38:	2000028d 	.word	0x2000028d

00010e3c <sym_AO3U45UEGFLUPMT565ZR5UWUQUONF5AKILLCT3A>:
   10e3c:	4906      	ldr	r1, [pc, #24]	; (10e58 <sym_AO3U45UEGFLUPMT565ZR5UWUQUONF5AKILLCT3A+0x1c>)
   10e3e:	b110      	cbz	r0, 10e46 <sym_AO3U45UEGFLUPMT565ZR5UWUQUONF5AKILLCT3A+0xa>
   10e40:	2801      	cmp	r0, #1
   10e42:	d002      	beq.n	10e4a <sym_AO3U45UEGFLUPMT565ZR5UWUQUONF5AKILLCT3A+0xe>
   10e44:	e005      	b.n	10e52 <sym_AO3U45UEGFLUPMT565ZR5UWUQUONF5AKILLCT3A+0x16>
   10e46:	7848      	ldrb	r0, [r1, #1]
   10e48:	e000      	b.n	10e4c <sym_AO3U45UEGFLUPMT565ZR5UWUQUONF5AKILLCT3A+0x10>
   10e4a:	7808      	ldrb	r0, [r1, #0]
   10e4c:	b108      	cbz	r0, 10e52 <sym_AO3U45UEGFLUPMT565ZR5UWUQUONF5AKILLCT3A+0x16>
   10e4e:	2001      	movs	r0, #1
   10e50:	4770      	bx	lr
   10e52:	2000      	movs	r0, #0
   10e54:	4770      	bx	lr
   10e56:	0000      	.short	0x0000
   10e58:	2000028d 	.word	0x2000028d

00010e5c <sym_4UMPVHCMNEM5ENBBHCLGXZREGEKKHKHZOKNMH2I>:
   10e5c:	4901      	ldr	r1, [pc, #4]	; (10e64 <sym_4UMPVHCMNEM5ENBBHCLGXZREGEKKHKHZOKNMH2I+0x8>)
   10e5e:	7448      	strb	r0, [r1, #17]
   10e60:	4770      	bx	lr
   10e62:	0000      	.short	0x0000
   10e64:	20000b62 	.word	0x20000b62

00010e68 <sym_IHWHOAENEU2EYZP2UWQTUC6SSXGS5NNQSIFSEAQ>:
   10e68:	4801      	ldr	r0, [pc, #4]	; (10e70 <sym_IHWHOAENEU2EYZP2UWQTUC6SSXGS5NNQSIFSEAQ+0x8>)
   10e6a:	78c0      	ldrb	r0, [r0, #3]
   10e6c:	4770      	bx	lr
   10e6e:	0000      	.short	0x0000
   10e70:	200000b0 	.word	0x200000b0

00010e74 <sym_Q3RLGT2MQM6S4H2ODVJHPDU44HGSYVXJV7676ZY>:
   10e74:	4801      	ldr	r0, [pc, #4]	; (10e7c <sym_Q3RLGT2MQM6S4H2ODVJHPDU44HGSYVXJV7676ZY+0x8>)
   10e76:	7900      	ldrb	r0, [r0, #4]
   10e78:	4770      	bx	lr
   10e7a:	0000      	.short	0x0000
   10e7c:	200000b0 	.word	0x200000b0

00010e80 <sym_Y7AVZMA56ZL7YUO4EH7QCTNH6P3ZXX2D4F33L2I>:
   10e80:	b578      	push	{r3, r4, r5, r6, lr}
   10e82:	4913      	ldr	r1, [pc, #76]	; (10ed0 <sym_Y7AVZMA56ZL7YUO4EH7QCTNH6P3ZXX2D4F33L2I+0x50>)
   10e84:	7c4a      	ldrb	r2, [r1, #17]
   10e86:	b30a      	cbz	r2, 10ecc <sym_Y7AVZMA56ZL7YUO4EH7QCTNH6P3ZXX2D4F33L2I+0x4c>
   10e88:	7c0a      	ldrb	r2, [r1, #16]
   10e8a:	f88d 2000 	strb.w	r2, [sp]
   10e8e:	9a00      	ldr	r2, [sp, #0]
   10e90:	9200      	str	r2, [sp, #0]
   10e92:	f89d 2000 	ldrb.w	r2, [sp]
   10e96:	b1ca      	cbz	r2, 10ecc <sym_Y7AVZMA56ZL7YUO4EH7QCTNH6P3ZXX2D4F33L2I+0x4c>
   10e98:	2300      	movs	r3, #0
   10e9a:	f101 0210 	add.w	r2, r1, #16
   10e9e:	241a      	movs	r4, #26
   10ea0:	f1a1 0552 	sub.w	r5, r1, #82	; 0x52
   10ea4:	7c0e      	ldrb	r6, [r1, #16]
   10ea6:	f88d 6000 	strb.w	r6, [sp]
   10eaa:	9e00      	ldr	r6, [sp, #0]
   10eac:	9600      	str	r6, [sp, #0]
   10eae:	f89d 6000 	ldrb.w	r6, [sp]
   10eb2:	b14e      	cbz	r6, 10ec8 <sym_Y7AVZMA56ZL7YUO4EH7QCTNH6P3ZXX2D4F33L2I+0x48>
   10eb4:	7013      	strb	r3, [r2, #0]
   10eb6:	7043      	strb	r3, [r0, #1]
   10eb8:	7004      	strb	r4, [r0, #0]
   10eba:	f8d5 605a 	ldr.w	r6, [r5, #90]	; 0x5a
   10ebe:	6046      	str	r6, [r0, #4]
   10ec0:	f8d5 605e 	ldr.w	r6, [r5, #94]	; 0x5e
   10ec4:	6086      	str	r6, [r0, #8]
   10ec6:	e7ed      	b.n	10ea4 <sym_Y7AVZMA56ZL7YUO4EH7QCTNH6P3ZXX2D4F33L2I+0x24>
   10ec8:	2001      	movs	r0, #1
   10eca:	bd78      	pop	{r3, r4, r5, r6, pc}
   10ecc:	2000      	movs	r0, #0
   10ece:	bd78      	pop	{r3, r4, r5, r6, pc}
   10ed0:	20000b62 	.word	0x20000b62

00010ed4 <sym_ULQ236TSMK6UJATLJCXSX5JBKSVB4ZM2NNU74PA>:
   10ed4:	b510      	push	{r4, lr}
   10ed6:	4604      	mov	r4, r0
   10ed8:	f000 f95c 	bl	11194 <sym_CZFK26FRDZ53FUV75DOIMFWVD4RTHYB6I22U4LA>
   10edc:	b118      	cbz	r0, 10ee6 <sym_ULQ236TSMK6UJATLJCXSX5JBKSVB4ZM2NNU74PA+0x12>
   10ede:	21bd      	movs	r1, #189	; 0xbd
   10ee0:	2027      	movs	r0, #39	; 0x27
   10ee2:	f7ff f87f 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   10ee6:	4803      	ldr	r0, [pc, #12]	; (10ef4 <sym_ULQ236TSMK6UJATLJCXSX5JBKSVB4ZM2NNU74PA+0x20>)
   10ee8:	2101      	movs	r1, #1
   10eea:	f008 fe39 	bl	19b60 <sym_KWWW3Q4Z6LMHA6EXR6CMFCOS3QXXZ636XUAHVBY>
   10eee:	4802      	ldr	r0, [pc, #8]	; (10ef8 <sym_ULQ236TSMK6UJATLJCXSX5JBKSVB4ZM2NNU74PA+0x24>)
   10ef0:	62c4      	str	r4, [r0, #44]	; 0x2c
   10ef2:	bd10      	pop	{r4, pc}
   10ef4:	20000b40 	.word	0x20000b40
   10ef8:	200000b0 	.word	0x200000b0

00010efc <sym_4OWM6DBJ6JLAWH2MVU52MKC56VOOJLN34T33LQA>:
   10efc:	4901      	ldr	r1, [pc, #4]	; (10f04 <sym_4OWM6DBJ6JLAWH2MVU52MKC56VOOJLN34T33LQA+0x8>)
   10efe:	2001      	movs	r0, #1
   10f00:	7188      	strb	r0, [r1, #6]
   10f02:	4770      	bx	lr
   10f04:	200000b0 	.word	0x200000b0

00010f08 <sym_SQINY6V2VHFAHM5HL3H753H3QE3VQ7FWHCIJ57Q>:
   10f08:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
   10f0c:	4d62      	ldr	r5, [pc, #392]	; (11098 <sym_SQINY6V2VHFAHM5HL3H753H3QE3VQ7FWHCIJ57Q+0x190>)
   10f0e:	9c08      	ldr	r4, [sp, #32]
   10f10:	782e      	ldrb	r6, [r5, #0]
   10f12:	2e00      	cmp	r6, #0
   10f14:	d16b      	bne.n	10fee <sym_SQINY6V2VHFAHM5HL3H753H3QE3VQ7FWHCIJ57Q+0xe6>
   10f16:	2a00      	cmp	r2, #0
   10f18:	d069      	beq.n	10fee <sym_SQINY6V2VHFAHM5HL3H753H3QE3VQ7FWHCIJ57Q+0xe6>
   10f1a:	2b00      	cmp	r3, #0
   10f1c:	d067      	beq.n	10fee <sym_SQINY6V2VHFAHM5HL3H753H3QE3VQ7FWHCIJ57Q+0xe6>
   10f1e:	2c00      	cmp	r4, #0
   10f20:	d065      	beq.n	10fee <sym_SQINY6V2VHFAHM5HL3H753H3QE3VQ7FWHCIJ57Q+0xe6>
   10f22:	f105 0614 	add.w	r6, r5, #20
   10f26:	e9c5 010e 	strd	r0, r1, [r5, #56]	; 0x38
   10f2a:	e886 001c 	stmia.w	r6, {r2, r3, r4}
   10f2e:	2700      	movs	r7, #0
   10f30:	71af      	strb	r7, [r5, #6]
   10f32:	716f      	strb	r7, [r5, #5]
   10f34:	70ef      	strb	r7, [r5, #3]
   10f36:	70af      	strb	r7, [r5, #2]
   10f38:	712f      	strb	r7, [r5, #4]
   10f3a:	81af      	strh	r7, [r5, #12]
   10f3c:	81ef      	strh	r7, [r5, #14]
   10f3e:	f000 f961 	bl	11204 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x54>
   10f42:	4606      	mov	r6, r0
   10f44:	f000 f958 	bl	111f8 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x48>
   10f48:	4604      	mov	r4, r0
   10f4a:	f006 f84b 	bl	16fe4 <sym_JQ5GTNCJKXERB3SSKQRXLQOKWJQVRNEOVZZZVXI>
   10f4e:	f005 fcf3 	bl	16938 <sym_VIDE7XVSTT4HHX2MQJX6VUVABAKVNGIPRTLRLEQ>
   10f52:	f994 006e 	ldrsb.w	r0, [r4, #110]	; 0x6e
   10f56:	f006 f8cf 	bl	170f8 <sym_HE5JGYEZFIITGQL7PMATDHSORSCK7HJIY5UXOZA>
   10f5a:	f104 0018 	add.w	r0, r4, #24
   10f5e:	f006 f9a5 	bl	172ac <sym_XD56LJG2JTRU4Q2V7WCY72EI3VTZICA3O4ERV2A>
   10f62:	6920      	ldr	r0, [r4, #16]
   10f64:	f006 f998 	bl	17298 <sym_YLRTPBVG5ROXKOW4KXUYITRUY3FD2MVZW5LF7ZA>
   10f68:	f896 0023 	ldrb.w	r0, [r6, #35]	; 0x23
   10f6c:	f006 f9b8 	bl	172e0 <sym_ZQE76VUU7S5U7DETTZA65E75LHFWL5PGRN4JPHI>
   10f70:	f105 0038 	add.w	r0, r5, #56	; 0x38
   10f74:	6840      	ldr	r0, [r0, #4]
   10f76:	f890 0174 	ldrb.w	r0, [r0, #372]	; 0x174
   10f7a:	b108      	cbz	r0, 10f80 <sym_SQINY6V2VHFAHM5HL3H753H3QE3VQ7FWHCIJ57Q+0x78>
   10f7c:	f005 ff8c 	bl	16e98 <sym_YUNWMAOOL6VPZ57LS54EAM7TJ65IEHYU7XKGKUI>
   10f80:	f894 106b 	ldrb.w	r1, [r4, #107]	; 0x6b
   10f84:	2001      	movs	r0, #1
   10f86:	f005 feb7 	bl	16cf8 <sym_WJZCKVDJU3WW5NVNH77DPRGYVZQLD372GLDYO6I>
   10f8a:	2800      	cmp	r0, #0
   10f8c:	d07c      	beq.n	11088 <sym_SQINY6V2VHFAHM5HL3H753H3QE3VQ7FWHCIJ57Q+0x180>
   10f8e:	4843      	ldr	r0, [pc, #268]	; (1109c <sym_SQINY6V2VHFAHM5HL3H753H3QE3VQ7FWHCIJ57Q+0x194>)
   10f90:	f005 ff2e 	bl	16df0 <sym_YG4UROEKVB7ZBE5TWHLNJHYKSFBTXGBYAX3RXRI>
   10f94:	8820      	ldrh	r0, [r4, #0]
   10f96:	f7ff fc63 	bl	10860 <sym_35ZAQW4ABRMBYES2ZHPK63BHZAFFFC4WMGEJ6NA>
   10f9a:	6328      	str	r0, [r5, #48]	; 0x30
   10f9c:	8820      	ldrh	r0, [r4, #0]
   10f9e:	f7ff fc49 	bl	10834 <sym_YNBBHT54WKEGUNVC6TSBMRGLF67VFWBOYEMKGTQ>
   10fa2:	f106 0160 	add.w	r1, r6, #96	; 0x60
   10fa6:	6368      	str	r0, [r5, #52]	; 0x34
   10fa8:	f8df 90f4 	ldr.w	r9, [pc, #244]	; 110a0 <sym_SQINY6V2VHFAHM5HL3H753H3QE3VQ7FWHCIJ57Q+0x198>
   10fac:	e891 100e 	ldmia.w	r1, {r1, r2, r3, ip}
   10fb0:	f109 0808 	add.w	r8, r9, #8
   10fb4:	e888 100e 	stmia.w	r8, {r1, r2, r3, ip}
   10fb8:	6f31      	ldr	r1, [r6, #112]	; 0x70
   10fba:	f8c9 1021 	str.w	r1, [r9, #33]	; 0x21
   10fbe:	6f71      	ldr	r1, [r6, #116]	; 0x74
   10fc0:	f8c9 1025 	str.w	r1, [r9, #37]	; 0x25
   10fc4:	f000 f990 	bl	112e8 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x138>
   10fc8:	4601      	mov	r1, r0
   10fca:	8f20      	ldrh	r0, [r4, #56]	; 0x38
   10fcc:	46ba      	mov	sl, r7
   10fce:	f008 fb5f 	bl	19690 <sym_CMGYAOMYUJOSH7VMLD3ENK3VLSIPR3DVYN2F44Y>
   10fd2:	8ea1      	ldrh	r1, [r4, #52]	; 0x34
   10fd4:	4281      	cmp	r1, r0
   10fd6:	d200      	bcs.n	10fda <sym_SQINY6V2VHFAHM5HL3H753H3QE3VQ7FWHCIJ57Q+0xd2>
   10fd8:	4608      	mov	r0, r1
   10fda:	7228      	strb	r0, [r5, #8]
   10fdc:	46a8      	mov	r8, r5
   10fde:	f894 106b 	ldrb.w	r1, [r4, #107]	; 0x6b
   10fe2:	8fe0      	ldrh	r0, [r4, #62]	; 0x3e
   10fe4:	7cf7      	ldrb	r7, [r6, #19]
   10fe6:	8fa5      	ldrh	r5, [r4, #60]	; 0x3c
   10fe8:	2908      	cmp	r1, #8
   10fea:	d104      	bne.n	10ff6 <sym_SQINY6V2VHFAHM5HL3H753H3QE3VQ7FWHCIJ57Q+0xee>
   10fec:	e002      	b.n	10ff4 <sym_SQINY6V2VHFAHM5HL3H753H3QE3VQ7FWHCIJ57Q+0xec>
   10fee:	f44f 718a 	mov.w	r1, #276	; 0x114
   10ff2:	e04d      	b.n	11090 <sym_SQINY6V2VHFAHM5HL3H753H3QE3VQ7FWHCIJ57Q+0x188>
   10ff4:	2104      	movs	r1, #4
   10ff6:	f008 fb4b 	bl	19690 <sym_CMGYAOMYUJOSH7VMLD3ENK3VLSIPR3DVYN2F44Y>
   10ffa:	b90f      	cbnz	r7, 11000 <sym_SQINY6V2VHFAHM5HL3H753H3QE3VQ7FWHCIJ57Q+0xf8>
   10ffc:	1d00      	adds	r0, r0, #4
   10ffe:	b280      	uxth	r0, r0
   11000:	4285      	cmp	r5, r0
   11002:	d200      	bcs.n	11006 <sym_SQINY6V2VHFAHM5HL3H753H3QE3VQ7FWHCIJ57Q+0xfe>
   11004:	4628      	mov	r0, r5
   11006:	b2c5      	uxtb	r5, r0
   11008:	f888 5009 	strb.w	r5, [r8, #9]
   1100c:	7cf1      	ldrb	r1, [r6, #19]
   1100e:	b109      	cbz	r1, 11014 <sym_SQINY6V2VHFAHM5HL3H753H3QE3VQ7FWHCIJ57Q+0x10c>
   11010:	2204      	movs	r2, #4
   11012:	e000      	b.n	11016 <sym_SQINY6V2VHFAHM5HL3H753H3QE3VQ7FWHCIJ57Q+0x10e>
   11014:	2200      	movs	r2, #0
   11016:	442a      	add	r2, r5
   11018:	b2d2      	uxtb	r2, r2
   1101a:	f888 2007 	strb.w	r2, [r8, #7]
   1101e:	f8b4 0054 	ldrh.w	r0, [r4, #84]	; 0x54
   11022:	1d00      	adds	r0, r0, #4
   11024:	4290      	cmp	r0, r2
   11026:	d202      	bcs.n	1102e <sym_SQINY6V2VHFAHM5HL3H753H3QE3VQ7FWHCIJ57Q+0x126>
   11028:	f240 119f 	movw	r1, #415	; 0x19f
   1102c:	e030      	b.n	11090 <sym_SQINY6V2VHFAHM5HL3H753H3QE3VQ7FWHCIJ57Q+0x188>
   1102e:	4657      	mov	r7, sl
   11030:	b1a1      	cbz	r1, 1105c <sym_SQINY6V2VHFAHM5HL3H753H3QE3VQ7FWHCIJ57Q+0x154>
   11032:	481b      	ldr	r0, [pc, #108]	; (110a0 <sym_SQINY6V2VHFAHM5HL3H753H3QE3VQ7FWHCIJ57Q+0x198>)
   11034:	2101      	movs	r1, #1
   11036:	3008      	adds	r0, #8
   11038:	7601      	strb	r1, [r0, #24]
   1103a:	e9d6 1216 	ldrd	r1, r2, [r6, #88]	; 0x58
   1103e:	e9c0 1204 	strd	r1, r2, [r0, #16]
   11042:	f894 006b 	ldrb.w	r0, [r4, #107]	; 0x6b
   11046:	f008 fa29 	bl	1949c <sym_DQHYQ3HZODNGY32MUV2QBXEWNH7ASP5VOSVL45Q+0x18>
   1104a:	4915      	ldr	r1, [pc, #84]	; (110a0 <sym_SQINY6V2VHFAHM5HL3H753H3QE3VQ7FWHCIJ57Q+0x198>)
   1104c:	4603      	mov	r3, r0
   1104e:	462a      	mov	r2, r5
   11050:	3108      	adds	r1, #8
   11052:	2001      	movs	r0, #1
   11054:	f005 fcba 	bl	169cc <sym_MUKS2K4XHEO5KLGXCUFTXLVFMPPIE6EHDYEDH6I>
   11058:	f005 fcee 	bl	16a38 <sym_VIFUXGNF7FG74OI2LAA4BDNI2IEW34DKB3GJ6TI>
   1105c:	2001      	movs	r0, #1
   1105e:	f000 fb73 	bl	11748 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x598>
   11062:	4810      	ldr	r0, [pc, #64]	; (110a4 <sym_SQINY6V2VHFAHM5HL3H753H3QE3VQ7FWHCIJ57Q+0x19c>)
   11064:	6800      	ldr	r0, [r0, #0]
   11066:	2803      	cmp	r0, #3
   11068:	d010      	beq.n	1108c <sym_SQINY6V2VHFAHM5HL3H753H3QE3VQ7FWHCIJ57Q+0x184>
   1106a:	280b      	cmp	r0, #11
   1106c:	d00e      	beq.n	1108c <sym_SQINY6V2VHFAHM5HL3H753H3QE3VQ7FWHCIJ57Q+0x184>
   1106e:	4648      	mov	r0, r9
   11070:	f840 7f52 	str.w	r7, [r0, #82]!
   11074:	6047      	str	r7, [r0, #4]
   11076:	480a      	ldr	r0, [pc, #40]	; (110a0 <sym_SQINY6V2VHFAHM5HL3H753H3QE3VQ7FWHCIJ57Q+0x198>)
   11078:	88b1      	ldrh	r1, [r6, #4]
   1107a:	3052      	adds	r0, #82	; 0x52
   1107c:	8041      	strh	r1, [r0, #2]
   1107e:	8821      	ldrh	r1, [r4, #0]
   11080:	8001      	strh	r1, [r0, #0]
   11082:	f896 1023 	ldrb.w	r1, [r6, #35]	; 0x23
   11086:	7101      	strb	r1, [r0, #4]
   11088:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
   1108c:	f240 11c7 	movw	r1, #455	; 0x1c7
   11090:	2027      	movs	r0, #39	; 0x27
   11092:	f7fe ffa7 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   11096:	0000      	.short	0x0000
   11098:	200000b0 	.word	0x200000b0
   1109c:	0001194c 	.word	0x0001194c
   110a0:	20000b10 	.word	0x20000b10
   110a4:	40001550 	.word	0x40001550

000110a8 <sym_P6ESEOOF3E3ZRYNBCJWJZXMT4EPJJMHF472YBMQ>:
   110a8:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
   110ac:	4605      	mov	r5, r0
   110ae:	f000 f8a9 	bl	11204 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x54>
   110b2:	4e33      	ldr	r6, [pc, #204]	; (11180 <sym_P6ESEOOF3E3ZRYNBCJWJZXMT4EPJJMHF472YBMQ+0xd8>)
   110b4:	4604      	mov	r4, r0
   110b6:	6a70      	ldr	r0, [r6, #36]	; 0x24
   110b8:	7847      	ldrb	r7, [r0, #1]
   110ba:	b10d      	cbz	r5, 110c0 <sym_P6ESEOOF3E3ZRYNBCJWJZXMT4EPJJMHF472YBMQ+0x18>
   110bc:	2d01      	cmp	r5, #1
   110be:	d103      	bne.n	110c8 <sym_P6ESEOOF3E3ZRYNBCJWJZXMT4EPJJMHF472YBMQ+0x20>
   110c0:	6b71      	ldr	r1, [r6, #52]	; 0x34
   110c2:	f007 f974 	bl	183ae <sym_4IISVSOLVFJB5JBTYDAEGXSTM4YG5MOTRTRY33A>
   110c6:	7070      	strb	r0, [r6, #1]
   110c8:	7870      	ldrb	r0, [r6, #1]
   110ca:	f04f 0800 	mov.w	r8, #0
   110ce:	f04f 0901 	mov.w	r9, #1
   110d2:	b150      	cbz	r0, 110ea <sym_P6ESEOOF3E3ZRYNBCJWJZXMT4EPJJMHF472YBMQ+0x42>
   110d4:	2801      	cmp	r0, #1
   110d6:	d01a      	beq.n	1110e <sym_P6ESEOOF3E3ZRYNBCJWJZXMT4EPJJMHF472YBMQ+0x66>
   110d8:	2802      	cmp	r0, #2
   110da:	d034      	beq.n	11146 <sym_P6ESEOOF3E3ZRYNBCJWJZXMT4EPJJMHF472YBMQ+0x9e>
   110dc:	2803      	cmp	r0, #3
   110de:	d048      	beq.n	11172 <sym_P6ESEOOF3E3ZRYNBCJWJZXMT4EPJJMHF472YBMQ+0xca>
   110e0:	f240 4114 	movw	r1, #1044	; 0x414
   110e4:	2027      	movs	r0, #39	; 0x27
   110e6:	f7fe ff7d 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   110ea:	2d01      	cmp	r5, #1
   110ec:	d032      	beq.n	11154 <sym_P6ESEOOF3E3ZRYNBCJWJZXMT4EPJJMHF472YBMQ+0xac>
   110ee:	f000 f8e7 	bl	112c0 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x110>
   110f2:	4639      	mov	r1, r7
   110f4:	2201      	movs	r2, #1
   110f6:	6b70      	ldr	r0, [r6, #52]	; 0x34
   110f8:	f007 fd7c 	bl	18bf4 <sym_3LZ364FVGUVSOSH6XGIFMW5SY36X7BQXDOES46Y>
   110fc:	e028      	b.n	11150 <sym_P6ESEOOF3E3ZRYNBCJWJZXMT4EPJJMHF472YBMQ+0xa8>
   110fe:	bf00      	nop
   11100:	f884 8008 	strb.w	r8, [r4, #8]
   11104:	e031      	b.n	1116a <sym_P6ESEOOF3E3ZRYNBCJWJZXMT4EPJJMHF472YBMQ+0xc2>
   11106:	bf00      	nop
   11108:	f884 9008 	strb.w	r9, [r4, #8]
   1110c:	e02d      	b.n	1116a <sym_P6ESEOOF3E3ZRYNBCJWJZXMT4EPJJMHF472YBMQ+0xc2>
   1110e:	2d01      	cmp	r5, #1
   11110:	d008      	beq.n	11124 <sym_P6ESEOOF3E3ZRYNBCJWJZXMT4EPJJMHF472YBMQ+0x7c>
   11112:	f000 f8d5 	bl	112c0 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x110>
   11116:	4639      	mov	r1, r7
   11118:	2200      	movs	r2, #0
   1111a:	6b70      	ldr	r0, [r6, #52]	; 0x34
   1111c:	f007 fd6a 	bl	18bf4 <sym_3LZ364FVGUVSOSH6XGIFMW5SY36X7BQXDOES46Y>
   11120:	2d02      	cmp	r5, #2
   11122:	d00b      	beq.n	1113c <sym_P6ESEOOF3E3ZRYNBCJWJZXMT4EPJJMHF472YBMQ+0x94>
   11124:	e9d4 0116 	ldrd	r0, r1, [r4, #88]	; 0x58
   11128:	1c40      	adds	r0, r0, #1
   1112a:	f141 0100 	adc.w	r1, r1, #0
   1112e:	e9c4 0116 	strd	r0, r1, [r4, #88]	; 0x58
   11132:	7a20      	ldrb	r0, [r4, #8]
   11134:	2801      	cmp	r0, #1
   11136:	d003      	beq.n	11140 <sym_P6ESEOOF3E3ZRYNBCJWJZXMT4EPJJMHF472YBMQ+0x98>
   11138:	f884 9008 	strb.w	r9, [r4, #8]
   1113c:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
   11140:	f884 8008 	strb.w	r8, [r4, #8]
   11144:	e7fa      	b.n	1113c <sym_P6ESEOOF3E3ZRYNBCJWJZXMT4EPJJMHF472YBMQ+0x94>
   11146:	2d01      	cmp	r5, #1
   11148:	d004      	beq.n	11154 <sym_P6ESEOOF3E3ZRYNBCJWJZXMT4EPJJMHF472YBMQ+0xac>
   1114a:	6b70      	ldr	r0, [r6, #52]	; 0x34
   1114c:	f007 ff63 	bl	19016 <sym_W4P456NK4DQPUF5QVP3W7JSFZJTVGAOKAMSTNSQ>
   11150:	2d02      	cmp	r5, #2
   11152:	d0f3      	beq.n	1113c <sym_P6ESEOOF3E3ZRYNBCJWJZXMT4EPJJMHF472YBMQ+0x94>
   11154:	e9d4 0116 	ldrd	r0, r1, [r4, #88]	; 0x58
   11158:	1c40      	adds	r0, r0, #1
   1115a:	f141 0100 	adc.w	r1, r1, #0
   1115e:	e9c4 0116 	strd	r0, r1, [r4, #88]	; 0x58
   11162:	7a20      	ldrb	r0, [r4, #8]
   11164:	2801      	cmp	r0, #1
   11166:	d1cf      	bne.n	11108 <sym_P6ESEOOF3E3ZRYNBCJWJZXMT4EPJJMHF472YBMQ+0x60>
   11168:	e7ca      	b.n	11100 <sym_P6ESEOOF3E3ZRYNBCJWJZXMT4EPJJMHF472YBMQ+0x58>
   1116a:	e8bd 47f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
   1116e:	f004 bf03 	b.w	15f78 <sym_ZGH42ABHAQFX3NKIMGIK7DGGJ5XWXU2KDVYEOMI>
   11172:	2d01      	cmp	r5, #1
   11174:	d0e2      	beq.n	1113c <sym_P6ESEOOF3E3ZRYNBCJWJZXMT4EPJJMHF472YBMQ+0x94>
   11176:	6b70      	ldr	r0, [r6, #52]	; 0x34
   11178:	f007 ff4d 	bl	19016 <sym_W4P456NK4DQPUF5QVP3W7JSFZJTVGAOKAMSTNSQ>
   1117c:	e7f5      	b.n	1116a <sym_P6ESEOOF3E3ZRYNBCJWJZXMT4EPJJMHF472YBMQ+0xc2>
   1117e:	0000      	.short	0x0000
   11180:	200000b0 	.word	0x200000b0

00011184 <sym_ZWLSMB33C6NPFOBZGVPV4PN4UKQGSPLLR4WLDFI>:
   11184:	4802      	ldr	r0, [pc, #8]	; (11190 <sym_ZWLSMB33C6NPFOBZGVPV4PN4UKQGSPLLR4WLDFI+0xc>)
   11186:	89c0      	ldrh	r0, [r0, #14]
   11188:	f3c0 2080 	ubfx	r0, r0, #10, #1
   1118c:	4770      	bx	lr
   1118e:	0000      	.short	0x0000
   11190:	200000b0 	.word	0x200000b0

00011194 <sym_CZFK26FRDZ53FUV75DOIMFWVD4RTHYB6I22U4LA>:
   11194:	4804      	ldr	r0, [pc, #16]	; (111a8 <sym_CZFK26FRDZ53FUV75DOIMFWVD4RTHYB6I22U4LA+0x14>)
   11196:	7800      	ldrb	r0, [r0, #0]
   11198:	b108      	cbz	r0, 1119e <sym_CZFK26FRDZ53FUV75DOIMFWVD4RTHYB6I22U4LA+0xa>
   1119a:	200c      	movs	r0, #12
   1119c:	4770      	bx	lr
   1119e:	4903      	ldr	r1, [pc, #12]	; (111ac <sym_CZFK26FRDZ53FUV75DOIMFWVD4RTHYB6I22U4LA+0x18>)
   111a0:	2000      	movs	r0, #0
   111a2:	7448      	strb	r0, [r1, #17]
   111a4:	4770      	bx	lr
   111a6:	0000      	.short	0x0000
   111a8:	200000b0 	.word	0x200000b0
   111ac:	20000b62 	.word	0x20000b62

000111b0 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ>:
   111b0:	480c      	ldr	r0, [pc, #48]	; (111e4 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x34>)
   111b2:	b510      	push	{r4, lr}
   111b4:	7801      	ldrb	r1, [r0, #0]
   111b6:	b149      	cbz	r1, 111cc <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x1c>
   111b8:	f100 0138 	add.w	r1, r0, #56	; 0x38
   111bc:	7800      	ldrb	r0, [r0, #0]
   111be:	2802      	cmp	r0, #2
   111c0:	d008      	beq.n	111d4 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x24>
   111c2:	f240 11e3 	movw	r1, #483	; 0x1e3
   111c6:	2027      	movs	r0, #39	; 0x27
   111c8:	f7fe ff0c 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   111cc:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
   111d0:	f000 b9d8 	b.w	11584 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x3d4>
   111d4:	6848      	ldr	r0, [r1, #4]
   111d6:	f8d0 0108 	ldr.w	r0, [r0, #264]	; 0x108
   111da:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
   111de:	f005 be0f 	b.w	16e00 <sym_7CIQBS4FNO23MS6BAN7Q3LK45R62DBPT5FNCWOA>
   111e2:	0000      	.short	0x0000
   111e4:	200000b0 	.word	0x200000b0
   111e8:	4a02      	ldr	r2, [pc, #8]	; (111f4 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x44>)
   111ea:	8993      	ldrh	r3, [r2, #12]
   111ec:	4303      	orrs	r3, r0
   111ee:	8193      	strh	r3, [r2, #12]
   111f0:	6952      	ldr	r2, [r2, #20]
   111f2:	4710      	bx	r2
   111f4:	200000b0 	.word	0x200000b0
   111f8:	4801      	ldr	r0, [pc, #4]	; (11200 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x50>)
   111fa:	6840      	ldr	r0, [r0, #4]
   111fc:	4770      	bx	lr
   111fe:	0000      	.short	0x0000
   11200:	200000e8 	.word	0x200000e8
   11204:	4801      	ldr	r0, [pc, #4]	; (1120c <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x5c>)
   11206:	6840      	ldr	r0, [r0, #4]
   11208:	3070      	adds	r0, #112	; 0x70
   1120a:	4770      	bx	lr
   1120c:	200000e8 	.word	0x200000e8
   11210:	4a01      	ldr	r2, [pc, #4]	; (11218 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x68>)
   11212:	2100      	movs	r1, #0
   11214:	6952      	ldr	r2, [r2, #20]
   11216:	4710      	bx	r2
   11218:	200000b0 	.word	0x200000b0
   1121c:	b570      	push	{r4, r5, r6, lr}
   1121e:	f7ff fff1 	bl	11204 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x54>
   11222:	4604      	mov	r4, r0
   11224:	f7ff ffe8 	bl	111f8 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x48>
   11228:	4605      	mov	r5, r0
   1122a:	4621      	mov	r1, r4
   1122c:	f008 fab3 	bl	19796 <sym_ATHPLOWBGAIKG7V5SSPNEEN27AC3OGL2HEWE4II>
   11230:	f895 1026 	ldrb.w	r1, [r5, #38]	; 0x26
   11234:	2901      	cmp	r1, #1
   11236:	d114      	bne.n	11262 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0xb2>
   11238:	2800      	cmp	r0, #0
   1123a:	d012      	beq.n	11262 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0xb2>
   1123c:	4809      	ldr	r0, [pc, #36]	; (11264 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0xb4>)
   1123e:	6842      	ldr	r2, [r0, #4]
   11240:	8828      	ldrh	r0, [r5, #0]
   11242:	f8a2 01f6 	strh.w	r0, [r2, #502]	; 0x1f6
   11246:	7a60      	ldrb	r0, [r4, #9]
   11248:	f882 01f8 	strb.w	r0, [r2, #504]	; 0x1f8
   1124c:	7aa0      	ldrb	r0, [r4, #10]
   1124e:	f882 01f9 	strb.w	r0, [r2, #505]	; 0x1f9
   11252:	f502 72fa 	add.w	r2, r2, #500	; 0x1f4
   11256:	2001      	movs	r0, #1
   11258:	7010      	strb	r0, [r2, #0]
   1125a:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
   1125e:	f004 be8b 	b.w	15f78 <sym_ZGH42ABHAQFX3NKIMGIK7DGGJ5XWXU2KDVYEOMI>
   11262:	bd70      	pop	{r4, r5, r6, pc}
   11264:	200000e8 	.word	0x200000e8
   11268:	b570      	push	{r4, r5, r6, lr}
   1126a:	4605      	mov	r5, r0
   1126c:	2901      	cmp	r1, #1
   1126e:	d818      	bhi.n	112a2 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0xf2>
   11270:	4c12      	ldr	r4, [pc, #72]	; (112bc <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x10c>)
   11272:	69a1      	ldr	r1, [r4, #24]
   11274:	4788      	blx	r1
   11276:	b1a0      	cbz	r0, 112a2 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0xf2>
   11278:	7960      	ldrb	r0, [r4, #5]
   1127a:	b990      	cbnz	r0, 112a2 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0xf2>
   1127c:	b9e5      	cbnz	r5, 112b8 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x108>
   1127e:	f104 0010 	add.w	r0, r4, #16
   11282:	7801      	ldrb	r1, [r0, #0]
   11284:	06c8      	lsls	r0, r1, #27
   11286:	d405      	bmi.n	11294 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0xe4>
   11288:	6ae0      	ldr	r0, [r4, #44]	; 0x2c
   1128a:	7800      	ldrb	r0, [r0, #0]
   1128c:	06c0      	lsls	r0, r0, #27
   1128e:	d401      	bmi.n	11294 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0xe4>
   11290:	2001      	movs	r0, #1
   11292:	e000      	b.n	11296 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0xe6>
   11294:	2000      	movs	r0, #0
   11296:	6aa2      	ldr	r2, [r4, #40]	; 0x28
   11298:	b92a      	cbnz	r2, 112a6 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0xf6>
   1129a:	8962      	ldrh	r2, [r4, #10]
   1129c:	b11a      	cbz	r2, 112a6 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0xf6>
   1129e:	06c9      	lsls	r1, r1, #27
   112a0:	d401      	bmi.n	112a6 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0xf6>
   112a2:	2001      	movs	r0, #1
   112a4:	bd70      	pop	{r4, r5, r6, pc}
   112a6:	89a1      	ldrh	r1, [r4, #12]
   112a8:	078a      	lsls	r2, r1, #30
   112aa:	d503      	bpl.n	112b4 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x104>
   112ac:	6a22      	ldr	r2, [r4, #32]
   112ae:	78d2      	ldrb	r2, [r2, #3]
   112b0:	2a02      	cmp	r2, #2
   112b2:	d001      	beq.n	112b8 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x108>
   112b4:	4308      	orrs	r0, r1
   112b6:	d1f4      	bne.n	112a2 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0xf2>
   112b8:	2000      	movs	r0, #0
   112ba:	bd70      	pop	{r4, r5, r6, pc}
   112bc:	200000b0 	.word	0x200000b0
   112c0:	b510      	push	{r4, lr}
   112c2:	4c08      	ldr	r4, [pc, #32]	; (112e4 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x134>)
   112c4:	6aa0      	ldr	r0, [r4, #40]	; 0x28
   112c6:	b138      	cbz	r0, 112d8 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x128>
   112c8:	8962      	ldrh	r2, [r4, #10]
   112ca:	6a61      	ldr	r1, [r4, #36]	; 0x24
   112cc:	1cd2      	adds	r2, r2, #3
   112ce:	f006 fef8 	bl	180c2 <sym_DQONLUECJTIEYFOFJXXAPJO4POIAJKJNKBGVN5A>
   112d2:	6aa0      	ldr	r0, [r4, #40]	; 0x28
   112d4:	6260      	str	r0, [r4, #36]	; 0x24
   112d6:	bd10      	pop	{r4, pc}
   112d8:	f240 415a 	movw	r1, #1114	; 0x45a
   112dc:	2027      	movs	r0, #39	; 0x27
   112de:	f7fe fe81 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   112e2:	0000      	.short	0x0000
   112e4:	200000b0 	.word	0x200000b0
   112e8:	b510      	push	{r4, lr}
   112ea:	f7ff ff85 	bl	111f8 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x48>
   112ee:	4604      	mov	r4, r0
   112f0:	f7ff ff88 	bl	11204 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x54>
   112f4:	4601      	mov	r1, r0
   112f6:	7b42      	ldrb	r2, [r0, #13]
   112f8:	4815      	ldr	r0, [pc, #84]	; (11350 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x1a0>)
   112fa:	2a24      	cmp	r2, #36	; 0x24
   112fc:	d00e      	beq.n	1131c <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x16c>
   112fe:	7b89      	ldrb	r1, [r1, #14]
   11300:	2924      	cmp	r1, #36	; 0x24
   11302:	d00b      	beq.n	1131c <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x16c>
   11304:	2a1f      	cmp	r2, #31
   11306:	d00d      	beq.n	11324 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x174>
   11308:	2a20      	cmp	r2, #32
   1130a:	d00b      	beq.n	11324 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x174>
   1130c:	2922      	cmp	r1, #34	; 0x22
   1130e:	d00f      	beq.n	11330 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x180>
   11310:	f894 006a 	ldrb.w	r0, [r4, #106]	; 0x6a
   11314:	2804      	cmp	r0, #4
   11316:	d100      	bne.n	1131a <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x16a>
   11318:	2008      	movs	r0, #8
   1131a:	bd10      	pop	{r4, pc}
   1131c:	6840      	ldr	r0, [r0, #4]
   1131e:	f890 1196 	ldrb.w	r1, [r0, #406]	; 0x196
   11322:	e00e      	b.n	11342 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x192>
   11324:	2922      	cmp	r1, #34	; 0x22
   11326:	d003      	beq.n	11330 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x180>
   11328:	6840      	ldr	r0, [r0, #4]
   1132a:	f890 01b0 	ldrb.w	r0, [r0, #432]	; 0x1b0
   1132e:	e005      	b.n	1133c <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x18c>
   11330:	6841      	ldr	r1, [r0, #4]
   11332:	f891 01b0 	ldrb.w	r0, [r1, #432]	; 0x1b0
   11336:	f891 1063 	ldrb.w	r1, [r1, #99]	; 0x63
   1133a:	4008      	ands	r0, r1
   1133c:	f008 f8a4 	bl	19488 <sym_DQHYQ3HZODNGY32MUV2QBXEWNH7ASP5VOSVL45Q+0x4>
   11340:	4601      	mov	r1, r0
   11342:	f894 006a 	ldrb.w	r0, [r4, #106]	; 0x6a
   11346:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
   1134a:	f008 b8b5 	b.w	194b8 <sym_DQHYQ3HZODNGY32MUV2QBXEWNH7ASP5VOSVL45Q+0x34>
   1134e:	0000      	.short	0x0000
   11350:	200000e8 	.word	0x200000e8
   11354:	e92d 43f8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
   11358:	4688      	mov	r8, r1
   1135a:	4607      	mov	r7, r0
   1135c:	f7ff ff52 	bl	11204 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x54>
   11360:	4c57      	ldr	r4, [pc, #348]	; (114c0 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x310>)
   11362:	2600      	movs	r6, #0
   11364:	4605      	mov	r5, r0
   11366:	f88d 6000 	strb.w	r6, [sp]
   1136a:	7820      	ldrb	r0, [r4, #0]
   1136c:	2802      	cmp	r0, #2
   1136e:	d004      	beq.n	1137a <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x1ca>
   11370:	f240 41b9 	movw	r1, #1209	; 0x4b9
   11374:	2027      	movs	r0, #39	; 0x27
   11376:	f7fe fe35 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   1137a:	7ba0      	ldrb	r0, [r4, #14]
   1137c:	0640      	lsls	r0, r0, #25
   1137e:	d406      	bmi.n	1138e <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x1de>
   11380:	2040      	movs	r0, #64	; 0x40
   11382:	f7ff ff45 	bl	11210 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x60>
   11386:	89e0      	ldrh	r0, [r4, #14]
   11388:	f040 0040 	orr.w	r0, r0, #64	; 0x40
   1138c:	81e0      	strh	r0, [r4, #14]
   1138e:	7ce8      	ldrb	r0, [r5, #19]
   11390:	b3c7      	cbz	r7, 11404 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x254>
   11392:	f005 fb81 	bl	16a98 <sym_FYMYD324TMLKJZE62CZN4WTXFSPL6FPU2SZH6CI>
   11396:	f005 fb65 	bl	16a64 <sym_3CD5EC6VYR6RXXLO3FXSZQ37BOYSM63APF5D5BA>
   1139a:	b968      	cbnz	r0, 113b8 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x208>
   1139c:	7ce8      	ldrb	r0, [r5, #19]
   1139e:	b158      	cbz	r0, 113b8 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x208>
   113a0:	6a60      	ldr	r0, [r4, #36]	; 0x24
   113a2:	7841      	ldrb	r1, [r0, #1]
   113a4:	b141      	cbz	r1, 113b8 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x208>
   113a6:	7800      	ldrb	r0, [r0, #0]
   113a8:	7a29      	ldrb	r1, [r5, #8]
   113aa:	f3c0 00c0 	ubfx	r0, r0, #3, #1
   113ae:	4288      	cmp	r0, r1
   113b0:	d102      	bne.n	113b8 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x208>
   113b2:	2001      	movs	r0, #1
   113b4:	70a0      	strb	r0, [r4, #2]
   113b6:	e063      	b.n	11480 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x2d0>
   113b8:	6a60      	ldr	r0, [r4, #36]	; 0x24
   113ba:	7841      	ldrb	r1, [r0, #1]
   113bc:	8161      	strh	r1, [r4, #10]
   113be:	b121      	cbz	r1, 113ca <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x21a>
   113c0:	6b60      	ldr	r0, [r4, #52]	; 0x34
   113c2:	f007 fdf5 	bl	18fb0 <sym_4DUZAAZKVNAL6VUHN4XAFX35FQKJS4D7DISLHDI>
   113c6:	62a0      	str	r0, [r4, #40]	; 0x28
   113c8:	e000      	b.n	113cc <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x21c>
   113ca:	62a6      	str	r6, [r4, #40]	; 0x28
   113cc:	89e0      	ldrh	r0, [r4, #14]
   113ce:	f440 7080 	orr.w	r0, r0, #256	; 0x100
   113d2:	81e0      	strh	r0, [r4, #14]
   113d4:	6a60      	ldr	r0, [r4, #36]	; 0x24
   113d6:	79e9      	ldrb	r1, [r5, #7]
   113d8:	7800      	ldrb	r0, [r0, #0]
   113da:	f3c0 0080 	ubfx	r0, r0, #2, #1
   113de:	4288      	cmp	r0, r1
   113e0:	d005      	beq.n	113ee <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x23e>
   113e2:	f000 f963 	bl	116ac <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x4fc>
   113e6:	89e0      	ldrh	r0, [r4, #14]
   113e8:	f440 6080 	orr.w	r0, r0, #1024	; 0x400
   113ec:	81e0      	strh	r0, [r4, #14]
   113ee:	6a60      	ldr	r0, [r4, #36]	; 0x24
   113f0:	7a29      	ldrb	r1, [r5, #8]
   113f2:	7800      	ldrb	r0, [r0, #0]
   113f4:	f3c0 00c0 	ubfx	r0, r0, #3, #1
   113f8:	4288      	cmp	r0, r1
   113fa:	d10e      	bne.n	1141a <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x26a>
   113fc:	4668      	mov	r0, sp
   113fe:	f000 f917 	bl	11630 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x480>
   11402:	e00a      	b.n	1141a <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x26a>
   11404:	e7ff      	b.n	11406 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x256>
   11406:	b108      	cbz	r0, 1140c <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x25c>
   11408:	f005 fb40 	bl	16a8c <sym_QQVHHHKNBN5TJBK4NCDSUYAMXMOEHFSL7HE7RRA>
   1140c:	78e0      	ldrb	r0, [r4, #3]
   1140e:	1c40      	adds	r0, r0, #1
   11410:	70e0      	strb	r0, [r4, #3]
   11412:	89e0      	ldrh	r0, [r4, #14]
   11414:	f440 7000 	orr.w	r0, r0, #512	; 0x200
   11418:	81e0      	strh	r0, [r4, #14]
   1141a:	7ca8      	ldrb	r0, [r5, #18]
   1141c:	b198      	cbz	r0, 11446 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x296>
   1141e:	f7ff feeb 	bl	111f8 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x48>
   11422:	4928      	ldr	r1, [pc, #160]	; (114c4 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x314>)
   11424:	760e      	strb	r6, [r1, #24]
   11426:	e9d5 2314 	ldrd	r2, r3, [r5, #80]	; 0x50
   1142a:	e9c1 2304 	strd	r2, r3, [r1, #16]
   1142e:	f890 006a 	ldrb.w	r0, [r0, #106]	; 0x6a
   11432:	f008 f833 	bl	1949c <sym_DQHYQ3HZODNGY32MUV2QBXEWNH7ASP5VOSVL45Q+0x18>
   11436:	4603      	mov	r3, r0
   11438:	22fb      	movs	r2, #251	; 0xfb
   1143a:	4922      	ldr	r1, [pc, #136]	; (114c4 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x314>)
   1143c:	2000      	movs	r0, #0
   1143e:	f005 fac5 	bl	169cc <sym_MUKS2K4XHEO5KLGXCUFTXLVFMPPIE6EHDYEDH6I>
   11442:	f005 faf9 	bl	16a38 <sym_VIFUXGNF7FG74OI2LAA4BDNI2IEW34DKB3GJ6TI>
   11446:	4d1f      	ldr	r5, [pc, #124]	; (114c4 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x314>)
   11448:	354a      	adds	r5, #74	; 0x4a
   1144a:	f1b8 0f00 	cmp.w	r8, #0
   1144e:	d104      	bne.n	1145a <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x2aa>
   11450:	78e1      	ldrb	r1, [r4, #3]
   11452:	2001      	movs	r0, #1
   11454:	f7ff ff08 	bl	11268 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0xb8>
   11458:	b1b0      	cbz	r0, 11488 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x2d8>
   1145a:	f005 fefb 	bl	17254 <sym_VEC44ISWPJAJ32J57NYIBEMC7Q6QEP7J6SVR4BQ>
   1145e:	f89d 0000 	ldrb.w	r0, [sp]
   11462:	b110      	cbz	r0, 1146a <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x2ba>
   11464:	2000      	movs	r0, #0
   11466:	f7ff fe1f 	bl	110a8 <sym_P6ESEOOF3E3ZRYNBCJWJZXMT4EPJJMHF472YBMQ>
   1146a:	b137      	cbz	r7, 1147a <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x2ca>
   1146c:	70e6      	strb	r6, [r4, #3]
   1146e:	7968      	ldrb	r0, [r5, #5]
   11470:	1c40      	adds	r0, r0, #1
   11472:	7168      	strb	r0, [r5, #5]
   11474:	f7ff fed2 	bl	1121c <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x6c>
   11478:	e002      	b.n	11480 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x2d0>
   1147a:	79a8      	ldrb	r0, [r5, #6]
   1147c:	1c40      	adds	r0, r0, #1
   1147e:	71a8      	strb	r0, [r5, #6]
   11480:	f000 f880 	bl	11584 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x3d4>
   11484:	e8bd 83f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
   11488:	f89d 0000 	ldrb.w	r0, [sp]
   1148c:	b110      	cbz	r0, 11494 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x2e4>
   1148e:	2001      	movs	r0, #1
   11490:	f7ff fe0a 	bl	110a8 <sym_P6ESEOOF3E3ZRYNBCJWJZXMT4EPJJMHF472YBMQ>
   11494:	2000      	movs	r0, #0
   11496:	f000 f995 	bl	117c4 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x614>
   1149a:	f89d 0000 	ldrb.w	r0, [sp]
   1149e:	b110      	cbz	r0, 114a6 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x2f6>
   114a0:	2002      	movs	r0, #2
   114a2:	f7ff fe01 	bl	110a8 <sym_P6ESEOOF3E3ZRYNBCJWJZXMT4EPJJMHF472YBMQ>
   114a6:	b137      	cbz	r7, 114b6 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x306>
   114a8:	70e6      	strb	r6, [r4, #3]
   114aa:	7968      	ldrb	r0, [r5, #5]
   114ac:	1c40      	adds	r0, r0, #1
   114ae:	7168      	strb	r0, [r5, #5]
   114b0:	f7ff feb4 	bl	1121c <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x6c>
   114b4:	e7e6      	b.n	11484 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x2d4>
   114b6:	79a8      	ldrb	r0, [r5, #6]
   114b8:	1c40      	adds	r0, r0, #1
   114ba:	71a8      	strb	r0, [r5, #6]
   114bc:	e7e2      	b.n	11484 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x2d4>
   114be:	0000      	.short	0x0000
   114c0:	200000b0 	.word	0x200000b0
   114c4:	20000b18 	.word	0x20000b18
   114c8:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   114cc:	460f      	mov	r7, r1
   114ce:	4680      	mov	r8, r0
   114d0:	f7ff fe98 	bl	11204 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x54>
   114d4:	4d29      	ldr	r5, [pc, #164]	; (1157c <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x3cc>)
   114d6:	4604      	mov	r4, r0
   114d8:	7828      	ldrb	r0, [r5, #0]
   114da:	2801      	cmp	r0, #1
   114dc:	d004      	beq.n	114e8 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x338>
   114de:	f240 4169 	movw	r1, #1129	; 0x469
   114e2:	2027      	movs	r0, #39	; 0x27
   114e4:	f7fe fd7e 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   114e8:	7861      	ldrb	r1, [r4, #1]
   114ea:	2000      	movs	r0, #0
   114ec:	2601      	movs	r6, #1
   114ee:	b129      	cbz	r1, 114fc <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x34c>
   114f0:	7060      	strb	r0, [r4, #1]
   114f2:	2100      	movs	r1, #0
   114f4:	2004      	movs	r0, #4
   114f6:	f7ff fe77 	bl	111e8 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x38>
   114fa:	70e6      	strb	r6, [r4, #3]
   114fc:	6a29      	ldr	r1, [r5, #32]
   114fe:	7808      	ldrb	r0, [r1, #0]
   11500:	43c0      	mvns	r0, r0
   11502:	0780      	lsls	r0, r0, #30
   11504:	d109      	bne.n	1151a <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x36a>
   11506:	79a0      	ldrb	r0, [r4, #6]
   11508:	bb88      	cbnz	r0, 1156e <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x3be>
   1150a:	2002      	movs	r0, #2
   1150c:	f7ff fe6c 	bl	111e8 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x38>
   11510:	6a28      	ldr	r0, [r5, #32]
   11512:	7800      	ldrb	r0, [r0, #0]
   11514:	43c0      	mvns	r0, r0
   11516:	0780      	lsls	r0, r0, #30
   11518:	d029      	beq.n	1156e <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x3be>
   1151a:	6a28      	ldr	r0, [r5, #32]
   1151c:	7840      	ldrb	r0, [r0, #1]
   1151e:	b110      	cbz	r0, 11526 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x376>
   11520:	2002      	movs	r0, #2
   11522:	71a0      	strb	r0, [r4, #6]
   11524:	e000      	b.n	11528 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x378>
   11526:	71a6      	strb	r6, [r4, #6]
   11528:	7ce0      	ldrb	r0, [r4, #19]
   1152a:	b1a0      	cbz	r0, 11556 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x3a6>
   1152c:	f7ff fe64 	bl	111f8 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x48>
   11530:	4913      	ldr	r1, [pc, #76]	; (11580 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x3d0>)
   11532:	7a6d      	ldrb	r5, [r5, #9]
   11534:	760e      	strb	r6, [r1, #24]
   11536:	e9d4 2316 	ldrd	r2, r3, [r4, #88]	; 0x58
   1153a:	e9c1 2304 	strd	r2, r3, [r1, #16]
   1153e:	f890 006b 	ldrb.w	r0, [r0, #107]	; 0x6b
   11542:	f007 ffab 	bl	1949c <sym_DQHYQ3HZODNGY32MUV2QBXEWNH7ASP5VOSVL45Q+0x18>
   11546:	4603      	mov	r3, r0
   11548:	462a      	mov	r2, r5
   1154a:	490d      	ldr	r1, [pc, #52]	; (11580 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x3d0>)
   1154c:	2001      	movs	r0, #1
   1154e:	f005 fa3d 	bl	169cc <sym_MUKS2K4XHEO5KLGXCUFTXLVFMPPIE6EHDYEDH6I>
   11552:	f005 fa71 	bl	16a38 <sym_VIFUXGNF7FG74OI2LAA4BDNI2IEW34DKB3GJ6TI>
   11556:	ea37 0708 	bics.w	r7, r7, r8
   1155a:	d004      	beq.n	11566 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x3b6>
   1155c:	2100      	movs	r1, #0
   1155e:	4608      	mov	r0, r1
   11560:	f7ff fe82 	bl	11268 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0xb8>
   11564:	b128      	cbz	r0, 11572 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x3c2>
   11566:	e8bd 41f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, lr}
   1156a:	f000 b80b 	b.w	11584 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x3d4>
   1156e:	2003      	movs	r0, #3
   11570:	e7d7      	b.n	11522 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x372>
   11572:	e8bd 41f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, lr}
   11576:	2000      	movs	r0, #0
   11578:	f000 b8e6 	b.w	11748 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x598>
   1157c:	200000b0 	.word	0x200000b0
   11580:	20000b18 	.word	0x20000b18
   11584:	b510      	push	{r4, lr}
   11586:	f005 fb23 	bl	16bd0 <sym_A5S3P57NWYYY5XJWBYERU6H4QSVP5TCTU7HKA5Y>
   1158a:	f005 f9d5 	bl	16938 <sym_VIDE7XVSTT4HHX2MQJX6VUVABAKVNGIPRTLRLEQ>
   1158e:	4c0d      	ldr	r4, [pc, #52]	; (115c4 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x414>)
   11590:	89e0      	ldrh	r0, [r4, #14]
   11592:	f7ff fe3d 	bl	11210 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x60>
   11596:	69e2      	ldr	r2, [r4, #28]
   11598:	7961      	ldrb	r1, [r4, #5]
   1159a:	78a0      	ldrb	r0, [r4, #2]
   1159c:	4790      	blx	r2
   1159e:	480a      	ldr	r0, [pc, #40]	; (115c8 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x418>)
   115a0:	7c40      	ldrb	r0, [r0, #17]
   115a2:	b158      	cbz	r0, 115bc <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x40c>
   115a4:	4808      	ldr	r0, [pc, #32]	; (115c8 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x418>)
   115a6:	3852      	subs	r0, #82	; 0x52
   115a8:	f850 1f52 	ldr.w	r1, [r0, #82]!
   115ac:	6081      	str	r1, [r0, #8]
   115ae:	6841      	ldr	r1, [r0, #4]
   115b0:	60c1      	str	r1, [r0, #12]
   115b2:	4805      	ldr	r0, [pc, #20]	; (115c8 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x418>)
   115b4:	2101      	movs	r1, #1
   115b6:	7401      	strb	r1, [r0, #16]
   115b8:	f004 fcde 	bl	15f78 <sym_ZGH42ABHAQFX3NKIMGIK7DGGJ5XWXU2KDVYEOMI>
   115bc:	2000      	movs	r0, #0
   115be:	7020      	strb	r0, [r4, #0]
   115c0:	bd10      	pop	{r4, pc}
   115c2:	0000      	.short	0x0000
   115c4:	200000b0 	.word	0x200000b0
   115c8:	20000b62 	.word	0x20000b62
   115cc:	4808      	ldr	r0, [pc, #32]	; (115f0 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x440>)
   115ce:	b510      	push	{r4, lr}
   115d0:	7800      	ldrb	r0, [r0, #0]
   115d2:	2802      	cmp	r0, #2
   115d4:	d004      	beq.n	115e0 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x430>
   115d6:	f240 2117 	movw	r1, #535	; 0x217
   115da:	2027      	movs	r0, #39	; 0x27
   115dc:	f7fe fd02 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   115e0:	4904      	ldr	r1, [pc, #16]	; (115f4 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x444>)
   115e2:	2001      	movs	r0, #1
   115e4:	71c8      	strb	r0, [r1, #7]
   115e6:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
   115ea:	f7ff bfcb 	b.w	11584 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x3d4>
   115ee:	0000      	.short	0x0000
   115f0:	200000b0 	.word	0x200000b0
   115f4:	20000b62 	.word	0x20000b62
   115f8:	b430      	push	{r4, r5}
   115fa:	4b0c      	ldr	r3, [pc, #48]	; (1162c <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x47c>)
   115fc:	b942      	cbnz	r2, 11610 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x460>
   115fe:	79da      	ldrb	r2, [r3, #7]
   11600:	2aff      	cmp	r2, #255	; 0xff
   11602:	d105      	bne.n	11610 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x460>
   11604:	f890 206b 	ldrb.w	r2, [r0, #107]	; 0x6b
   11608:	f890 406a 	ldrb.w	r4, [r0, #106]	; 0x6a
   1160c:	42a2      	cmp	r2, r4
   1160e:	d00b      	beq.n	11628 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x478>
   11610:	b131      	cbz	r1, 11620 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x470>
   11612:	79da      	ldrb	r2, [r3, #7]
   11614:	f890 106b 	ldrb.w	r1, [r0, #107]	; 0x6b
   11618:	bc30      	pop	{r4, r5}
   1161a:	4610      	mov	r0, r2
   1161c:	f005 be4e 	b.w	172bc <sym_EP3VAQLFLMU6UK5OW5A7IAQVZXTY4K6PQMSEVLY>
   11620:	22ff      	movs	r2, #255	; 0xff
   11622:	f890 106a 	ldrb.w	r1, [r0, #106]	; 0x6a
   11626:	e7f7      	b.n	11618 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x468>
   11628:	bc30      	pop	{r4, r5}
   1162a:	4770      	bx	lr
   1162c:	200000b0 	.word	0x200000b0
   11630:	b570      	push	{r4, r5, r6, lr}
   11632:	4606      	mov	r6, r0
   11634:	f7ff fde6 	bl	11204 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x54>
   11638:	4a1b      	ldr	r2, [pc, #108]	; (116a8 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x4f8>)
   1163a:	4604      	mov	r4, r0
   1163c:	2501      	movs	r5, #1
   1163e:	6a51      	ldr	r1, [r2, #36]	; 0x24
   11640:	7808      	ldrb	r0, [r1, #0]
   11642:	f000 0003 	and.w	r0, r0, #3
   11646:	2801      	cmp	r0, #1
   11648:	d00c      	beq.n	11664 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x4b4>
   1164a:	2802      	cmp	r0, #2
   1164c:	d00a      	beq.n	11664 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x4b4>
   1164e:	2803      	cmp	r0, #3
   11650:	d121      	bne.n	11696 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x4e6>
   11652:	7065      	strb	r5, [r4, #1]
   11654:	89d0      	ldrh	r0, [r2, #14]
   11656:	f440 6000 	orr.w	r0, r0, #2048	; 0x800
   1165a:	81d0      	strh	r0, [r2, #14]
   1165c:	2001      	movs	r0, #1
   1165e:	f7ff fdc3 	bl	111e8 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x38>
   11662:	e018      	b.n	11696 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x4e6>
   11664:	7848      	ldrb	r0, [r1, #1]
   11666:	b1b0      	cbz	r0, 11696 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x4e6>
   11668:	89d1      	ldrh	r1, [r2, #14]
   1166a:	f441 6100 	orr.w	r1, r1, #2048	; 0x800
   1166e:	81d1      	strh	r1, [r2, #14]
   11670:	6a91      	ldr	r1, [r2, #40]	; 0x28
   11672:	2900      	cmp	r1, #0
   11674:	d009      	beq.n	1168a <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x4da>
   11676:	28fb      	cmp	r0, #251	; 0xfb
   11678:	d808      	bhi.n	1168c <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x4dc>
   1167a:	7990      	ldrb	r0, [r2, #6]
   1167c:	b120      	cbz	r0, 11688 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x4d8>
   1167e:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
   11682:	2020      	movs	r0, #32
   11684:	f7ff bdc4 	b.w	11210 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x60>
   11688:	7035      	strb	r5, [r6, #0]
   1168a:	bd70      	pop	{r4, r5, r6, pc}
   1168c:	7950      	ldrb	r0, [r2, #5]
   1168e:	f040 0010 	orr.w	r0, r0, #16
   11692:	7150      	strb	r0, [r2, #5]
   11694:	bd70      	pop	{r4, r5, r6, pc}
   11696:	7a20      	ldrb	r0, [r4, #8]
   11698:	2801      	cmp	r0, #1
   1169a:	d001      	beq.n	116a0 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x4f0>
   1169c:	7225      	strb	r5, [r4, #8]
   1169e:	bd70      	pop	{r4, r5, r6, pc}
   116a0:	2000      	movs	r0, #0
   116a2:	7220      	strb	r0, [r4, #8]
   116a4:	bd70      	pop	{r4, r5, r6, pc}
   116a6:	0000      	.short	0x0000
   116a8:	200000b0 	.word	0x200000b0
   116ac:	b570      	push	{r4, r5, r6, lr}
   116ae:	f7ff fda9 	bl	11204 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x54>
   116b2:	4604      	mov	r4, r0
   116b4:	7980      	ldrb	r0, [r0, #6]
   116b6:	2800      	cmp	r0, #0
   116b8:	d02e      	beq.n	11718 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x568>
   116ba:	2802      	cmp	r0, #2
   116bc:	d10d      	bne.n	116da <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x52a>
   116be:	481c      	ldr	r0, [pc, #112]	; (11730 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x580>)
   116c0:	6b00      	ldr	r0, [r0, #48]	; 0x30
   116c2:	f007 fa70 	bl	18ba6 <sym_UOYZDE3MDLGPDL5S5WKUFLPYH4DJIMF3BJSBDYA>
   116c6:	b340      	cbz	r0, 1171a <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x56a>
   116c8:	e9d4 0114 	ldrd	r0, r1, [r4, #80]	; 0x50
   116cc:	1c40      	adds	r0, r0, #1
   116ce:	f141 0100 	adc.w	r1, r1, #0
   116d2:	e9c4 0114 	strd	r0, r1, [r4, #80]	; 0x50
   116d6:	f004 fc4f 	bl	15f78 <sym_ZGH42ABHAQFX3NKIMGIK7DGGJ5XWXU2KDVYEOMI>
   116da:	2500      	movs	r5, #0
   116dc:	71a5      	strb	r5, [r4, #6]
   116de:	78e0      	ldrb	r0, [r4, #3]
   116e0:	b120      	cbz	r0, 116ec <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x53c>
   116e2:	70e5      	strb	r5, [r4, #3]
   116e4:	2100      	movs	r1, #0
   116e6:	2010      	movs	r0, #16
   116e8:	f7ff fd7e 	bl	111e8 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x38>
   116ec:	78a0      	ldrb	r0, [r4, #2]
   116ee:	b170      	cbz	r0, 1170e <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x55e>
   116f0:	70a5      	strb	r5, [r4, #2]
   116f2:	f7ff fb01 	bl	10cf8 <sym_54CHYGRI3UHSVLN5ZOGJESXNRISJW5CS4IYBN7Y>
   116f6:	b198      	cbz	r0, 11720 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x570>
   116f8:	2100      	movs	r1, #0
   116fa:	2008      	movs	r0, #8
   116fc:	f7ff fd74 	bl	111e8 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x38>
   11700:	e9d4 0114 	ldrd	r0, r1, [r4, #80]	; 0x50
   11704:	1c40      	adds	r0, r0, #1
   11706:	f141 0100 	adc.w	r1, r1, #0
   1170a:	e9c4 0114 	strd	r0, r1, [r4, #80]	; 0x50
   1170e:	79e0      	ldrb	r0, [r4, #7]
   11710:	2801      	cmp	r0, #1
   11712:	d00a      	beq.n	1172a <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x57a>
   11714:	2001      	movs	r0, #1
   11716:	71e0      	strb	r0, [r4, #7]
   11718:	bd70      	pop	{r4, r5, r6, pc}
   1171a:	f240 31af 	movw	r1, #943	; 0x3af
   1171e:	e001      	b.n	11724 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x574>
   11720:	f240 31c7 	movw	r1, #967	; 0x3c7
   11724:	2027      	movs	r0, #39	; 0x27
   11726:	f7fe fc5d 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   1172a:	71e5      	strb	r5, [r4, #7]
   1172c:	bd70      	pop	{r4, r5, r6, pc}
   1172e:	0000      	.short	0x0000
   11730:	200000b0 	.word	0x200000b0
   11734:	4803      	ldr	r0, [pc, #12]	; (11744 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x594>)
   11736:	7800      	ldrb	r0, [r0, #0]
   11738:	2800      	cmp	r0, #0
   1173a:	d001      	beq.n	11740 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x590>
   1173c:	f7ff bf22 	b.w	11584 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x3d4>
   11740:	4770      	bx	lr
   11742:	0000      	.short	0x0000
   11744:	200000b0 	.word	0x200000b0
   11748:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   1174c:	4606      	mov	r6, r0
   1174e:	f7ff fd53 	bl	111f8 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x48>
   11752:	4680      	mov	r8, r0
   11754:	f7ff fd56 	bl	11204 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x54>
   11758:	4c17      	ldr	r4, [pc, #92]	; (117b8 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x608>)
   1175a:	4605      	mov	r5, r0
   1175c:	4632      	mov	r2, r6
   1175e:	6ae0      	ldr	r0, [r4, #44]	; 0x2c
   11760:	6260      	str	r0, [r4, #36]	; 0x24
   11762:	2101      	movs	r1, #1
   11764:	4640      	mov	r0, r8
   11766:	f7ff ff47 	bl	115f8 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x448>
   1176a:	7ce8      	ldrb	r0, [r5, #19]
   1176c:	2700      	movs	r7, #0
   1176e:	b180      	cbz	r0, 11792 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x5e2>
   11770:	4812      	ldr	r0, [pc, #72]	; (117bc <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x60c>)
   11772:	f005 fcc7 	bl	17104 <sym_LPFN6QJEOHBT4AP2K7MEYWDZW35U5VHIHXOA54I>
   11776:	4812      	ldr	r0, [pc, #72]	; (117c0 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x610>)
   11778:	2101      	movs	r1, #1
   1177a:	7601      	strb	r1, [r0, #24]
   1177c:	e9d5 1216 	ldrd	r1, r2, [r5, #88]	; 0x58
   11780:	e9c0 1204 	strd	r1, r2, [r0, #16]
   11784:	490d      	ldr	r1, [pc, #52]	; (117bc <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x60c>)
   11786:	6a60      	ldr	r0, [r4, #36]	; 0x24
   11788:	f005 f8a8 	bl	168dc <sym_22JCIW4C6LSZ3V42YCFUILVJXIYNO6LT32CM3KA>
   1178c:	f005 f8ba 	bl	16904 <sym_4I2C6AYYQEX2MYPQ34VVID6NN2QN3BJ3ZHVD6VY>
   11790:	e004      	b.n	1179c <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x5ec>
   11792:	6a60      	ldr	r0, [r4, #36]	; 0x24
   11794:	f005 fcb6 	bl	17104 <sym_LPFN6QJEOHBT4AP2K7MEYWDZW35U5VHIHXOA54I>
   11798:	f005 f8ce 	bl	16938 <sym_VIDE7XVSTT4HHX2MQJX6VUVABAKVNGIPRTLRLEQ>
   1179c:	b916      	cbnz	r6, 117a4 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x5f4>
   1179e:	4638      	mov	r0, r7
   117a0:	f005 fb52 	bl	16e48 <sym_Y6HXZQJARJ7FDWKGPREPQGRRGDOQMXHDALUK6KY>
   117a4:	2100      	movs	r1, #0
   117a6:	f898 206a 	ldrb.w	r2, [r8, #106]	; 0x6a
   117aa:	4608      	mov	r0, r1
   117ac:	f005 fd34 	bl	17218 <sym_MBOR6QO7CTIMBTL5BVPURKFTQFZYFCUOAZ3M43Q>
   117b0:	2002      	movs	r0, #2
   117b2:	7020      	strb	r0, [r4, #0]
   117b4:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
   117b8:	200000b0 	.word	0x200000b0
   117bc:	20000a10 	.word	0x20000a10
   117c0:	20000b18 	.word	0x20000b18
   117c4:	e92d 47fc 	stmdb	sp!, {r2, r3, r4, r5, r6, r7, r8, r9, sl, lr}
   117c8:	4604      	mov	r4, r0
   117ca:	f7ff fd1b 	bl	11204 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x54>
   117ce:	4605      	mov	r5, r0
   117d0:	f7ff fd12 	bl	111f8 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x48>
   117d4:	4606      	mov	r6, r0
   117d6:	f8df 9168 	ldr.w	r9, [pc, #360]	; 11940 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x790>
   117da:	4622      	mov	r2, r4
   117dc:	2100      	movs	r1, #0
   117de:	f7ff ff0b 	bl	115f8 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x448>
   117e2:	79a8      	ldrb	r0, [r5, #6]
   117e4:	2701      	movs	r7, #1
   117e6:	f04f 0800 	mov.w	r8, #0
   117ea:	f1a9 0420 	sub.w	r4, r9, #32
   117ee:	b140      	cbz	r0, 11802 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x652>
   117f0:	2801      	cmp	r0, #1
   117f2:	d01f      	beq.n	11834 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x684>
   117f4:	2802      	cmp	r0, #2
   117f6:	d030      	beq.n	1185a <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x6aa>
   117f8:	2803      	cmp	r0, #3
   117fa:	d03c      	beq.n	11876 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x6c6>
   117fc:	f44f 712d 	mov.w	r1, #692	; 0x2b4
   11800:	e058      	b.n	118b4 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x704>
   11802:	7a20      	ldrb	r0, [r4, #8]
   11804:	2150      	movs	r1, #80	; 0x50
   11806:	f8ad 0004 	strh.w	r0, [sp, #4]
   1180a:	5388      	strh	r0, [r1, r6]
   1180c:	4648      	mov	r0, r9
   1180e:	f7ff fa9d 	bl	10d4c <sym_JHXS4T25BAYOMDDZMWPX3HMPENRV73GSV2RYHAI>
   11812:	b128      	cbz	r0, 11820 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x670>
   11814:	2080      	movs	r0, #128	; 0x80
   11816:	6a21      	ldr	r1, [r4, #32]
   11818:	f7ff fce6 	bl	111e8 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x38>
   1181c:	70af      	strb	r7, [r5, #2]
   1181e:	e02e      	b.n	1187e <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x6ce>
   11820:	466a      	mov	r2, sp
   11822:	a901      	add	r1, sp, #4
   11824:	6b20      	ldr	r0, [r4, #48]	; 0x30
   11826:	f007 fe51 	bl	194cc <sym_DQHYQ3HZODNGY32MUV2QBXEWNH7ASP5VOSVL45Q+0x48>
   1182a:	6220      	str	r0, [r4, #32]
   1182c:	b110      	cbz	r0, 11834 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x684>
   1182e:	f895 1043 	ldrb.w	r1, [r5, #67]	; 0x43
   11832:	b111      	cbz	r1, 1183a <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x68a>
   11834:	4843      	ldr	r0, [pc, #268]	; (11944 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x794>)
   11836:	6220      	str	r0, [r4, #32]
   11838:	e021      	b.n	1187e <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x6ce>
   1183a:	f89d 1000 	ldrb.w	r1, [sp]
   1183e:	b931      	cbnz	r1, 1184e <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x69e>
   11840:	f8a0 8000 	strh.w	r8, [r0]
   11844:	f880 8002 	strb.w	r8, [r0, #2]
   11848:	2101      	movs	r1, #1
   1184a:	f008 f989 	bl	19b60 <sym_KWWW3Q4Z6LMHA6EXR6CMFCOS3QXXZ636XUAHVBY>
   1184e:	f8bd 1004 	ldrh.w	r1, [sp, #4]
   11852:	6a20      	ldr	r0, [r4, #32]
   11854:	f008 f948 	bl	19ae8 <sym_Z7V4WMT2JDSQSNPCH2UEJH6H44L3L7UHMRIWAOA>
   11858:	e011      	b.n	1187e <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x6ce>
   1185a:	f8b6 0050 	ldrh.w	r0, [r6, #80]	; 0x50
   1185e:	f8ad 0004 	strh.w	r0, [sp, #4]
   11862:	466a      	mov	r2, sp
   11864:	a901      	add	r1, sp, #4
   11866:	6b20      	ldr	r0, [r4, #48]	; 0x30
   11868:	f007 fe30 	bl	194cc <sym_DQHYQ3HZODNGY32MUV2QBXEWNH7ASP5VOSVL45Q+0x48>
   1186c:	6220      	str	r0, [r4, #32]
   1186e:	b930      	cbnz	r0, 1187e <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x6ce>
   11870:	f240 21a5 	movw	r1, #677	; 0x2a5
   11874:	e01e      	b.n	118b4 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x704>
   11876:	4648      	mov	r0, r9
   11878:	f7ff fa68 	bl	10d4c <sym_JHXS4T25BAYOMDDZMWPX3HMPENRV73GSV2RYHAI>
   1187c:	b1c0      	cbz	r0, 118b0 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x700>
   1187e:	6a20      	ldr	r0, [r4, #32]
   11880:	2308      	movs	r3, #8
   11882:	7801      	ldrb	r1, [r0, #0]
   11884:	f021 0108 	bic.w	r1, r1, #8
   11888:	7001      	strb	r1, [r0, #0]
   1188a:	79ea      	ldrb	r2, [r5, #7]
   1188c:	ea03 02c2 	and.w	r2, r3, r2, lsl #3
   11890:	4311      	orrs	r1, r2
   11892:	f021 0104 	bic.w	r1, r1, #4
   11896:	7001      	strb	r1, [r0, #0]
   11898:	7a2a      	ldrb	r2, [r5, #8]
   1189a:	2304      	movs	r3, #4
   1189c:	ea03 0282 	and.w	r2, r3, r2, lsl #2
   118a0:	4311      	orrs	r1, r2
   118a2:	f021 0110 	bic.w	r1, r1, #16
   118a6:	7001      	strb	r1, [r0, #0]
   118a8:	43c9      	mvns	r1, r1
   118aa:	0789      	lsls	r1, r1, #30
   118ac:	d005      	beq.n	118ba <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x70a>
   118ae:	e007      	b.n	118c0 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x710>
   118b0:	f240 21ae 	movw	r1, #686	; 0x2ae
   118b4:	2027      	movs	r0, #39	; 0x27
   118b6:	f7fe fb95 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   118ba:	78c0      	ldrb	r0, [r0, #3]
   118bc:	2802      	cmp	r0, #2
   118be:	d00f      	beq.n	118e0 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x730>
   118c0:	6b20      	ldr	r0, [r4, #48]	; 0x30
   118c2:	f007 fa98 	bl	18df6 <sym_4WKKRRMMNLQOCTRGC2MVIREG5QOCFUEL67TBUQY>
   118c6:	b108      	cbz	r0, 118cc <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x71c>
   118c8:	2101      	movs	r1, #1
   118ca:	e00a      	b.n	118e2 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x732>
   118cc:	6a20      	ldr	r0, [r4, #32]
   118ce:	7800      	ldrb	r0, [r0, #0]
   118d0:	43c0      	mvns	r0, r0
   118d2:	0780      	lsls	r0, r0, #30
   118d4:	d004      	beq.n	118e0 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x730>
   118d6:	f7ff f9f7 	bl	10cc8 <sym_V7MOOXL5SOLISKFFGWJC7M3XDITU574WBQOXGWY>
   118da:	f080 0101 	eor.w	r1, r0, #1
   118de:	e000      	b.n	118e2 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x732>
   118e0:	2100      	movs	r1, #0
   118e2:	6a20      	ldr	r0, [r4, #32]
   118e4:	7802      	ldrb	r2, [r0, #0]
   118e6:	ea42 1101 	orr.w	r1, r2, r1, lsl #4
   118ea:	7001      	strb	r1, [r0, #0]
   118ec:	7ca9      	ldrb	r1, [r5, #18]
   118ee:	b199      	cbz	r1, 11918 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x768>
   118f0:	7841      	ldrb	r1, [r0, #1]
   118f2:	b189      	cbz	r1, 11918 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x768>
   118f4:	4814      	ldr	r0, [pc, #80]	; (11948 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x798>)
   118f6:	f005 fc05 	bl	17104 <sym_LPFN6QJEOHBT4AP2K7MEYWDZW35U5VHIHXOA54I>
   118fa:	4812      	ldr	r0, [pc, #72]	; (11944 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x794>)
   118fc:	3828      	subs	r0, #40	; 0x28
   118fe:	f880 8018 	strb.w	r8, [r0, #24]
   11902:	e9d5 1214 	ldrd	r1, r2, [r5, #80]	; 0x50
   11906:	e9c0 1204 	strd	r1, r2, [r0, #16]
   1190a:	480f      	ldr	r0, [pc, #60]	; (11948 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x798>)
   1190c:	6a21      	ldr	r1, [r4, #32]
   1190e:	f004 ffe5 	bl	168dc <sym_22JCIW4C6LSZ3V42YCFUILVJXIYNO6LT32CM3KA>
   11912:	f005 f82f 	bl	16974 <sym_DIQ77CQKBNLT2RKVUGPP4YVKDKLZF55UNZMI3OI>
   11916:	e003      	b.n	11920 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x770>
   11918:	f005 fbf4 	bl	17104 <sym_LPFN6QJEOHBT4AP2K7MEYWDZW35U5VHIHXOA54I>
   1191c:	f005 f80c 	bl	16938 <sym_VIDE7XVSTT4HHX2MQJX6VUVABAKVNGIPRTLRLEQ>
   11920:	f896 206b 	ldrb.w	r2, [r6, #107]	; 0x6b
   11924:	2101      	movs	r1, #1
   11926:	2000      	movs	r0, #0
   11928:	f005 fc76 	bl	17218 <sym_MBOR6QO7CTIMBTL5BVPURKFTQFZYFCUOAZ3M43Q>
   1192c:	7127      	strb	r7, [r4, #4]
   1192e:	6a20      	ldr	r0, [r4, #32]
   11930:	8801      	ldrh	r1, [r0, #0]
   11932:	8221      	strh	r1, [r4, #16]
   11934:	7880      	ldrb	r0, [r0, #2]
   11936:	74a0      	strb	r0, [r4, #18]
   11938:	7027      	strb	r7, [r4, #0]
   1193a:	e8bd 87fc 	ldmia.w	sp!, {r2, r3, r4, r5, r6, r7, r8, r9, sl, pc}
   1193e:	0000      	.short	0x0000
   11940:	200000d0 	.word	0x200000d0
   11944:	20000b40 	.word	0x20000b40
   11948:	20000a10 	.word	0x20000a10
   1194c:	000115cd 	.word	0x000115cd
   11950:	00011355 	.word	0x00011355
   11954:	000114c9 	.word	0x000114c9
   11958:	00011735 	.word	0x00011735

0001195c <sym_3Q2UQ65DVTXA3EZPN34QXGGEFSEA6HOSHLFXCMI>:
   1195c:	4800      	ldr	r0, [pc, #0]	; (11960 <sym_3Q2UQ65DVTXA3EZPN34QXGGEFSEA6HOSHLFXCMI+0x4>)
   1195e:	4770      	bx	lr
   11960:	20001401 	.word	0x20001401

00011964 <sym_BAUTABQSJLBAZ6GNH7KOF4MJMAA6NF7CDAZNOEQ>:
   11964:	4904      	ldr	r1, [pc, #16]	; (11978 <sym_BAUTABQSJLBAZ6GNH7KOF4MJMAA6NF7CDAZNOEQ+0x14>)
   11966:	788a      	ldrb	r2, [r1, #2]
   11968:	4282      	cmp	r2, r0
   1196a:	d903      	bls.n	11974 <sym_BAUTABQSJLBAZ6GNH7KOF4MJMAA6NF7CDAZNOEQ+0x10>
   1196c:	4408      	add	r0, r1
   1196e:	f890 0143 	ldrb.w	r0, [r0, #323]	; 0x143
   11972:	4770      	bx	lr
   11974:	2000      	movs	r0, #0
   11976:	4770      	bx	lr
   11978:	2000122e 	.word	0x2000122e

0001197c <sym_F2LWAH27IT4H2IA7TZWGNABUCWINGT6MWXH2WIA>:
   1197c:	4904      	ldr	r1, [pc, #16]	; (11990 <sym_F2LWAH27IT4H2IA7TZWGNABUCWINGT6MWXH2WIA+0x14>)
   1197e:	788a      	ldrb	r2, [r1, #2]
   11980:	4282      	cmp	r2, r0
   11982:	d903      	bls.n	1198c <sym_F2LWAH27IT4H2IA7TZWGNABUCWINGT6MWXH2WIA+0x10>
   11984:	eb01 1000 	add.w	r0, r1, r0, lsl #4
   11988:	3083      	adds	r0, #131	; 0x83
   1198a:	4770      	bx	lr
   1198c:	2000      	movs	r0, #0
   1198e:	4770      	bx	lr
   11990:	2000122e 	.word	0x2000122e

00011994 <sym_GV7ZEDU63KACGR6K3NXW7W7XARTADNTCQ3P2HLA>:
   11994:	4a05      	ldr	r2, [pc, #20]	; (119ac <sym_GV7ZEDU63KACGR6K3NXW7W7XARTADNTCQ3P2HLA+0x18>)
   11996:	eb01 0141 	add.w	r1, r1, r1, lsl #1
   1199a:	eb02 0141 	add.w	r1, r2, r1, lsl #1
   1199e:	6802      	ldr	r2, [r0, #0]
   119a0:	f8c1 210b 	str.w	r2, [r1, #267]	; 0x10b
   119a4:	8880      	ldrh	r0, [r0, #4]
   119a6:	f8a1 010f 	strh.w	r0, [r1, #271]	; 0x10f
   119aa:	4770      	bx	lr
   119ac:	2000122e 	.word	0x2000122e

000119b0 <sym_3DXBFDJKO3IQEXOOHBMVXVTLDDG5FSS3TKAZNFY>:
   119b0:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   119b4:	460e      	mov	r6, r1
   119b6:	4607      	mov	r7, r0
   119b8:	4615      	mov	r5, r2
   119ba:	2106      	movs	r1, #6
   119bc:	4630      	mov	r0, r6
   119be:	f007 ff74 	bl	198aa <sym_35JWAFJL2IEYRDNORVIQ7BBAS7FQNUVOFCLQNSQ>
   119c2:	4c0d      	ldr	r4, [pc, #52]	; (119f8 <sym_3DXBFDJKO3IQEXOOHBMVXVTLDDG5FSS3TKAZNFY+0x48>)
   119c4:	b160      	cbz	r0, 119e0 <sym_3DXBFDJKO3IQEXOOHBMVXVTLDDG5FSS3TKAZNFY+0x30>
   119c6:	2000      	movs	r0, #0
   119c8:	e004      	b.n	119d4 <sym_3DXBFDJKO3IQEXOOHBMVXVTLDDG5FSS3TKAZNFY+0x24>
   119ca:	1821      	adds	r1, r4, r0
   119cc:	1c40      	adds	r0, r0, #1
   119ce:	f881 513b 	strb.w	r5, [r1, #315]	; 0x13b
   119d2:	b2c0      	uxtb	r0, r0
   119d4:	78a1      	ldrb	r1, [r4, #2]
   119d6:	4281      	cmp	r1, r0
   119d8:	d8f7      	bhi.n	119ca <sym_3DXBFDJKO3IQEXOOHBMVXVTLDDG5FSS3TKAZNFY+0x1a>
   119da:	2001      	movs	r0, #1
   119dc:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
   119e0:	4631      	mov	r1, r6
   119e2:	4638      	mov	r0, r7
   119e4:	f007 fd81 	bl	194ea <sym_QW6JOH7RCJIC2YFNJEURX5QNB5EIQT646EHIWEA>
   119e8:	2808      	cmp	r0, #8
   119ea:	d003      	beq.n	119f4 <sym_3DXBFDJKO3IQEXOOHBMVXVTLDDG5FSS3TKAZNFY+0x44>
   119ec:	4420      	add	r0, r4
   119ee:	f880 513b 	strb.w	r5, [r0, #315]	; 0x13b
   119f2:	e7f2      	b.n	119da <sym_3DXBFDJKO3IQEXOOHBMVXVTLDDG5FSS3TKAZNFY+0x2a>
   119f4:	2000      	movs	r0, #0
   119f6:	e7f1      	b.n	119dc <sym_3DXBFDJKO3IQEXOOHBMVXVTLDDG5FSS3TKAZNFY+0x2c>
   119f8:	2000122e 	.word	0x2000122e

000119fc <sym_PLOW4TMGVQT52FP2ERNRL6S5EELE2YO563WRPJA>:
   119fc:	4904      	ldr	r1, [pc, #16]	; (11a10 <sym_PLOW4TMGVQT52FP2ERNRL6S5EELE2YO563WRPJA+0x14>)
   119fe:	788a      	ldrb	r2, [r1, #2]
   11a00:	4282      	cmp	r2, r0
   11a02:	d903      	bls.n	11a0c <sym_PLOW4TMGVQT52FP2ERNRL6S5EELE2YO563WRPJA+0x10>
   11a04:	eb01 1000 	add.w	r0, r1, r0, lsl #4
   11a08:	1cc0      	adds	r0, r0, #3
   11a0a:	4770      	bx	lr
   11a0c:	2000      	movs	r0, #0
   11a0e:	4770      	bx	lr
   11a10:	2000122e 	.word	0x2000122e

00011a14 <sym_62DUXM4M5AM4URNPP7IKDX3NCPAODBT4BMADGAY>:
   11a14:	b510      	push	{r4, lr}
   11a16:	f240 12d3 	movw	r2, #467	; 0x1d3
   11a1a:	2100      	movs	r1, #0
   11a1c:	4808      	ldr	r0, [pc, #32]	; (11a40 <sym_62DUXM4M5AM4URNPP7IKDX3NCPAODBT4BMADGAY+0x2c>)
   11a1e:	f006 fbca 	bl	181b6 <sym_VSILKYHVQ5DVF6LG5MG267DQVA3A2XZQ6FSCLXA>
   11a22:	2208      	movs	r2, #8
   11a24:	21ff      	movs	r1, #255	; 0xff
   11a26:	4807      	ldr	r0, [pc, #28]	; (11a44 <sym_62DUXM4M5AM4URNPP7IKDX3NCPAODBT4BMADGAY+0x30>)
   11a28:	f006 fbc5 	bl	181b6 <sym_VSILKYHVQ5DVF6LG5MG267DQVA3A2XZQ6FSCLXA>
   11a2c:	4805      	ldr	r0, [pc, #20]	; (11a44 <sym_62DUXM4M5AM4URNPP7IKDX3NCPAODBT4BMADGAY+0x30>)
   11a2e:	2100      	movs	r1, #0
   11a30:	1f00      	subs	r0, r0, #4
   11a32:	7001      	strb	r1, [r0, #0]
   11a34:	7041      	strb	r1, [r0, #1]
   11a36:	f44f 7161 	mov.w	r1, #900	; 0x384
   11a3a:	8041      	strh	r1, [r0, #2]
   11a3c:	bd10      	pop	{r4, pc}
   11a3e:	0000      	.short	0x0000
   11a40:	2000122e 	.word	0x2000122e
   11a44:	20000280 	.word	0x20000280

00011a48 <sym_R5RFYNEZN3LQHKUKJDN3JLSNHLY4DPKXW3KZMYA>:
   11a48:	4901      	ldr	r1, [pc, #4]	; (11a50 <sym_R5RFYNEZN3LQHKUKJDN3JLSNHLY4DPKXW3KZMYA+0x8>)
   11a4a:	7008      	strb	r0, [r1, #0]
   11a4c:	4770      	bx	lr
   11a4e:	0000      	.short	0x0000
   11a50:	2000027c 	.word	0x2000027c

00011a54 <sym_WHSZ4VQHSDNZTVWJWAYGMNU7AWSUZKLKTBUNDPY>:
   11a54:	4801      	ldr	r0, [pc, #4]	; (11a5c <sym_WHSZ4VQHSDNZTVWJWAYGMNU7AWSUZKLKTBUNDPY+0x8>)
   11a56:	7800      	ldrb	r0, [r0, #0]
   11a58:	4770      	bx	lr
   11a5a:	0000      	.short	0x0000
   11a5c:	2000027c 	.word	0x2000027c

00011a60 <sym_YAOI5BW7G2C6EUUY2B4S7A3CWX63A6MP2T3O5KA>:
   11a60:	4b0b      	ldr	r3, [pc, #44]	; (11a90 <sym_YAOI5BW7G2C6EUUY2B4S7A3CWX63A6MP2T3O5KA+0x30>)
   11a62:	b510      	push	{r4, lr}
   11a64:	789c      	ldrb	r4, [r3, #2]
   11a66:	4284      	cmp	r4, r0
   11a68:	d90f      	bls.n	11a8a <sym_YAOI5BW7G2C6EUUY2B4S7A3CWX63A6MP2T3O5KA+0x2a>
   11a6a:	4418      	add	r0, r3
   11a6c:	f890 0103 	ldrb.w	r0, [r0, #259]	; 0x103
   11a70:	eb03 00c0 	add.w	r0, r3, r0, lsl #3
   11a74:	f890 3153 	ldrb.w	r3, [r0, #339]	; 0x153
   11a78:	700b      	strb	r3, [r1, #0]
   11a7a:	f8d0 1154 	ldr.w	r1, [r0, #340]	; 0x154
   11a7e:	6011      	str	r1, [r2, #0]
   11a80:	f8b0 0158 	ldrh.w	r0, [r0, #344]	; 0x158
   11a84:	8090      	strh	r0, [r2, #4]
   11a86:	2001      	movs	r0, #1
   11a88:	bd10      	pop	{r4, pc}
   11a8a:	2000      	movs	r0, #0
   11a8c:	bd10      	pop	{r4, pc}
   11a8e:	0000      	.short	0x0000
   11a90:	2000122e 	.word	0x2000122e

00011a94 <sym_IJTA37LCLZMYZVQ3I74HRUK4JDZEZR23VU3JFJI>:
   11a94:	4907      	ldr	r1, [pc, #28]	; (11ab4 <sym_IJTA37LCLZMYZVQ3I74HRUK4JDZEZR23VU3JFJI+0x20>)
   11a96:	788a      	ldrb	r2, [r1, #2]
   11a98:	4282      	cmp	r2, r0
   11a9a:	d909      	bls.n	11ab0 <sym_IJTA37LCLZMYZVQ3I74HRUK4JDZEZR23VU3JFJI+0x1c>
   11a9c:	4408      	add	r0, r1
   11a9e:	f890 0103 	ldrb.w	r0, [r0, #259]	; 0x103
   11aa2:	eb01 00c0 	add.w	r0, r1, r0, lsl #3
   11aa6:	f890 015a 	ldrb.w	r0, [r0, #346]	; 0x15a
   11aaa:	f000 0001 	and.w	r0, r0, #1
   11aae:	4770      	bx	lr
   11ab0:	2000      	movs	r0, #0
   11ab2:	4770      	bx	lr
   11ab4:	2000122e 	.word	0x2000122e

00011ab8 <sym_Z3745JZ5MC4MMBP2LFCOSP7OKPPVFDOPIURJWVQ>:
   11ab8:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
   11abc:	4698      	mov	r8, r3
   11abe:	4691      	mov	r9, r2
   11ac0:	460c      	mov	r4, r1
   11ac2:	4605      	mov	r5, r0
   11ac4:	f000 f936 	bl	11d34 <sym_NCQ5WTBCV7DGPK3QI3SSY5XGKOI2SE3XFCTKQKY+0x104>
   11ac8:	4606      	mov	r6, r0
   11aca:	2810      	cmp	r0, #16
   11acc:	d006      	beq.n	11adc <sym_Z3745JZ5MC4MMBP2LFCOSP7OKPPVFDOPIURJWVQ+0x24>
   11ace:	f000 f901 	bl	11cd4 <sym_NCQ5WTBCV7DGPK3QI3SSY5XGKOI2SE3XFCTKQKY+0xa4>
   11ad2:	2810      	cmp	r0, #16
   11ad4:	d002      	beq.n	11adc <sym_Z3745JZ5MC4MMBP2LFCOSP7OKPPVFDOPIURJWVQ+0x24>
   11ad6:	2012      	movs	r0, #18
   11ad8:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
   11adc:	4f18      	ldr	r7, [pc, #96]	; (11b40 <sym_Z3745JZ5MC4MMBP2LFCOSP7OKPPVFDOPIURJWVQ+0x88>)
   11ade:	78b8      	ldrb	r0, [r7, #2]
   11ae0:	2808      	cmp	r0, #8
   11ae2:	d22a      	bcs.n	11b3a <sym_Z3745JZ5MC4MMBP2LFCOSP7OKPPVFDOPIURJWVQ+0x82>
   11ae4:	2e10      	cmp	r6, #16
   11ae6:	d105      	bne.n	11af4 <sym_Z3745JZ5MC4MMBP2LFCOSP7OKPPVFDOPIURJWVQ+0x3c>
   11ae8:	2200      	movs	r2, #0
   11aea:	4621      	mov	r1, r4
   11aec:	4628      	mov	r0, r5
   11aee:	f000 f905 	bl	11cfc <sym_NCQ5WTBCV7DGPK3QI3SSY5XGKOI2SE3XFCTKQKY+0xcc>
   11af2:	4606      	mov	r6, r0
   11af4:	78bc      	ldrb	r4, [r7, #2]
   11af6:	2210      	movs	r2, #16
   11af8:	1c60      	adds	r0, r4, #1
   11afa:	70b8      	strb	r0, [r7, #2]
   11afc:	eb07 1504 	add.w	r5, r7, r4, lsl #4
   11b00:	1ce8      	adds	r0, r5, #3
   11b02:	4649      	mov	r1, r9
   11b04:	f007 fe3a 	bl	1977c <sym_C5MZWIO7BXLJIO65K7CGSHP3SLST2VORSHVBOVI>
   11b08:	f105 0083 	add.w	r0, r5, #131	; 0x83
   11b0c:	2210      	movs	r2, #16
   11b0e:	4641      	mov	r1, r8
   11b10:	f007 fe34 	bl	1977c <sym_C5MZWIO7BXLJIO65K7CGSHP3SLST2VORSHVBOVI>
   11b14:	2110      	movs	r1, #16
   11b16:	4640      	mov	r0, r8
   11b18:	f007 fec7 	bl	198aa <sym_35JWAFJL2IEYRDNORVIQ7BBAS7FQNUVOFCLQNSQ>
   11b1c:	443c      	add	r4, r7
   11b1e:	2110      	movs	r1, #16
   11b20:	f884 0143 	strb.w	r0, [r4, #323]	; 0x143
   11b24:	4648      	mov	r0, r9
   11b26:	f504 7496 	add.w	r4, r4, #300	; 0x12c
   11b2a:	f007 febe 	bl	198aa <sym_35JWAFJL2IEYRDNORVIQ7BBAS7FQNUVOFCLQNSQ>
   11b2e:	77e0      	strb	r0, [r4, #31]
   11b30:	f804 6c29 	strb.w	r6, [r4, #-41]
   11b34:	2000      	movs	r0, #0
   11b36:	73e0      	strb	r0, [r4, #15]
   11b38:	e7ce      	b.n	11ad8 <sym_Z3745JZ5MC4MMBP2LFCOSP7OKPPVFDOPIURJWVQ+0x20>
   11b3a:	2007      	movs	r0, #7
   11b3c:	e7cc      	b.n	11ad8 <sym_Z3745JZ5MC4MMBP2LFCOSP7OKPPVFDOPIURJWVQ+0x20>
   11b3e:	0000      	.short	0x0000
   11b40:	2000122e 	.word	0x2000122e

00011b44 <sym_FLX2PIIVHO3CLB5CJ7E7YSNFE2YWATNH27BL53A>:
   11b44:	4806      	ldr	r0, [pc, #24]	; (11b60 <sym_FLX2PIIVHO3CLB5CJ7E7YSNFE2YWATNH27BL53A+0x1c>)
   11b46:	b510      	push	{r4, lr}
   11b48:	7880      	ldrb	r0, [r0, #2]
   11b4a:	1e40      	subs	r0, r0, #1
   11b4c:	b244      	sxtb	r4, r0
   11b4e:	e004      	b.n	11b5a <sym_FLX2PIIVHO3CLB5CJ7E7YSNFE2YWATNH27BL53A+0x16>
   11b50:	b2e0      	uxtb	r0, r4
   11b52:	f000 f937 	bl	11dc4 <sym_NCQ5WTBCV7DGPK3QI3SSY5XGKOI2SE3XFCTKQKY+0x194>
   11b56:	1e64      	subs	r4, r4, #1
   11b58:	b264      	sxtb	r4, r4
   11b5a:	2c00      	cmp	r4, #0
   11b5c:	daf8      	bge.n	11b50 <sym_FLX2PIIVHO3CLB5CJ7E7YSNFE2YWATNH27BL53A+0xc>
   11b5e:	bd10      	pop	{r4, pc}
   11b60:	2000122e 	.word	0x2000122e

00011b64 <sym_RHRHCWPUPZHCOID576WBS7QZ2KAUT2GASS2T3QY>:
   11b64:	4801      	ldr	r0, [pc, #4]	; (11b6c <sym_RHRHCWPUPZHCOID576WBS7QZ2KAUT2GASS2T3QY+0x8>)
   11b66:	8840      	ldrh	r0, [r0, #2]
   11b68:	4770      	bx	lr
   11b6a:	0000      	.short	0x0000
   11b6c:	2000027c 	.word	0x2000027c

00011b70 <sym_62B4NCI2CQZLPPINCQVCHO6SYLZVDAWVVCHWS3I>:
   11b70:	b138      	cbz	r0, 11b82 <sym_62B4NCI2CQZLPPINCQVCHO6SYLZVDAWVVCHWS3I+0x12>
   11b72:	f24a 11b8 	movw	r1, #41400	; 0xa1b8
   11b76:	4288      	cmp	r0, r1
   11b78:	d803      	bhi.n	11b82 <sym_62B4NCI2CQZLPPINCQVCHO6SYLZVDAWVVCHWS3I+0x12>
   11b7a:	4903      	ldr	r1, [pc, #12]	; (11b88 <sym_62B4NCI2CQZLPPINCQVCHO6SYLZVDAWVVCHWS3I+0x18>)
   11b7c:	8048      	strh	r0, [r1, #2]
   11b7e:	2001      	movs	r0, #1
   11b80:	4770      	bx	lr
   11b82:	2000      	movs	r0, #0
   11b84:	4770      	bx	lr
   11b86:	0000      	.short	0x0000
   11b88:	2000027c 	.word	0x2000027c

00011b8c <sym_QEQGMTIGG3AOZQY7JM4T2FY2O3KM2UFUMT6Q7PI>:
   11b8c:	4905      	ldr	r1, [pc, #20]	; (11ba4 <sym_QEQGMTIGG3AOZQY7JM4T2FY2O3KM2UFUMT6Q7PI+0x18>)
   11b8e:	788a      	ldrb	r2, [r1, #2]
   11b90:	4282      	cmp	r2, r0
   11b92:	d903      	bls.n	11b9c <sym_QEQGMTIGG3AOZQY7JM4T2FY2O3KM2UFUMT6Q7PI+0x10>
   11b94:	4408      	add	r0, r1
   11b96:	f890 013b 	ldrb.w	r0, [r0, #315]	; 0x13b
   11b9a:	b108      	cbz	r0, 11ba0 <sym_QEQGMTIGG3AOZQY7JM4T2FY2O3KM2UFUMT6Q7PI+0x14>
   11b9c:	2000      	movs	r0, #0
   11b9e:	4770      	bx	lr
   11ba0:	2001      	movs	r0, #1
   11ba2:	4770      	bx	lr
   11ba4:	2000122e 	.word	0x2000122e

00011ba8 <sym_GHVM34OXBYILMDKR3F5DVNCQCBMJUJL5PW2RQYQ>:
   11ba8:	b570      	push	{r4, r5, r6, lr}
   11baa:	460d      	mov	r5, r1
   11bac:	4606      	mov	r6, r0
   11bae:	f000 f8c1 	bl	11d34 <sym_NCQ5WTBCV7DGPK3QI3SSY5XGKOI2SE3XFCTKQKY+0x104>
   11bb2:	4c10      	ldr	r4, [pc, #64]	; (11bf4 <sym_GHVM34OXBYILMDKR3F5DVNCQCBMJUJL5PW2RQYQ+0x4c>)
   11bb4:	2810      	cmp	r0, #16
   11bb6:	d007      	beq.n	11bc8 <sym_GHVM34OXBYILMDKR3F5DVNCQCBMJUJL5PW2RQYQ+0x20>
   11bb8:	eb04 01c0 	add.w	r1, r4, r0, lsl #3
   11bbc:	f891 115a 	ldrb.w	r1, [r1, #346]	; 0x15a
   11bc0:	07c9      	lsls	r1, r1, #31
   11bc2:	d001      	beq.n	11bc8 <sym_GHVM34OXBYILMDKR3F5DVNCQCBMJUJL5PW2RQYQ+0x20>
   11bc4:	2001      	movs	r0, #1
   11bc6:	bd70      	pop	{r4, r5, r6, pc}
   11bc8:	7861      	ldrb	r1, [r4, #1]
   11bca:	2908      	cmp	r1, #8
   11bcc:	d210      	bcs.n	11bf0 <sym_GHVM34OXBYILMDKR3F5DVNCQCBMJUJL5PW2RQYQ+0x48>
   11bce:	2810      	cmp	r0, #16
   11bd0:	d008      	beq.n	11be4 <sym_GHVM34OXBYILMDKR3F5DVNCQCBMJUJL5PW2RQYQ+0x3c>
   11bd2:	eb04 00c0 	add.w	r0, r4, r0, lsl #3
   11bd6:	2101      	movs	r1, #1
   11bd8:	f880 115a 	strb.w	r1, [r0, #346]	; 0x15a
   11bdc:	7860      	ldrb	r0, [r4, #1]
   11bde:	1c40      	adds	r0, r0, #1
   11be0:	7060      	strb	r0, [r4, #1]
   11be2:	e7ef      	b.n	11bc4 <sym_GHVM34OXBYILMDKR3F5DVNCQCBMJUJL5PW2RQYQ+0x1c>
   11be4:	2201      	movs	r2, #1
   11be6:	4629      	mov	r1, r5
   11be8:	4630      	mov	r0, r6
   11bea:	f000 f887 	bl	11cfc <sym_NCQ5WTBCV7DGPK3QI3SSY5XGKOI2SE3XFCTKQKY+0xcc>
   11bee:	e7f5      	b.n	11bdc <sym_GHVM34OXBYILMDKR3F5DVNCQCBMJUJL5PW2RQYQ+0x34>
   11bf0:	2000      	movs	r0, #0
   11bf2:	bd70      	pop	{r4, r5, r6, pc}
   11bf4:	2000122e 	.word	0x2000122e

00011bf8 <sym_KO3VCNGABVWM4325342CFFPZBSXFKFARUCMURAY>:
   11bf8:	b570      	push	{r4, r5, r6, lr}
   11bfa:	4d0b      	ldr	r5, [pc, #44]	; (11c28 <sym_KO3VCNGABVWM4325342CFFPZBSXFKFARUCMURAY+0x30>)
   11bfc:	7828      	ldrb	r0, [r5, #0]
   11bfe:	1e40      	subs	r0, r0, #1
   11c00:	b244      	sxtb	r4, r0
   11c02:	e00a      	b.n	11c1a <sym_KO3VCNGABVWM4325342CFFPZBSXFKFARUCMURAY+0x22>
   11c04:	eb05 00c4 	add.w	r0, r5, r4, lsl #3
   11c08:	f890 015a 	ldrb.w	r0, [r0, #346]	; 0x15a
   11c0c:	07c0      	lsls	r0, r0, #31
   11c0e:	d002      	beq.n	11c16 <sym_KO3VCNGABVWM4325342CFFPZBSXFKFARUCMURAY+0x1e>
   11c10:	b2e0      	uxtb	r0, r4
   11c12:	f000 f91f 	bl	11e54 <sym_NCQ5WTBCV7DGPK3QI3SSY5XGKOI2SE3XFCTKQKY+0x224>
   11c16:	1e64      	subs	r4, r4, #1
   11c18:	b264      	sxtb	r4, r4
   11c1a:	2c00      	cmp	r4, #0
   11c1c:	daf2      	bge.n	11c04 <sym_KO3VCNGABVWM4325342CFFPZBSXFKFARUCMURAY+0xc>
   11c1e:	4903      	ldr	r1, [pc, #12]	; (11c2c <sym_KO3VCNGABVWM4325342CFFPZBSXFKFARUCMURAY+0x34>)
   11c20:	2000      	movs	r0, #0
   11c22:	7048      	strb	r0, [r1, #1]
   11c24:	bd70      	pop	{r4, r5, r6, pc}
   11c26:	0000      	.short	0x0000
   11c28:	2000122e 	.word	0x2000122e
   11c2c:	2000027c 	.word	0x2000027c

00011c30 <sym_NCQ5WTBCV7DGPK3QI3SSY5XGKOI2SE3XFCTKQKY>:
   11c30:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   11c34:	2400      	movs	r4, #0
   11c36:	4625      	mov	r5, r4
   11c38:	4e18      	ldr	r6, [pc, #96]	; (11c9c <sym_NCQ5WTBCV7DGPK3QI3SSY5XGKOI2SE3XFCTKQKY+0x6c>)
   11c3a:	e029      	b.n	11c90 <sym_NCQ5WTBCV7DGPK3QI3SSY5XGKOI2SE3XFCTKQKY+0x60>
   11c3c:	eb06 07c5 	add.w	r7, r6, r5, lsl #3
   11c40:	f897 015a 	ldrb.w	r0, [r7, #346]	; 0x15a
   11c44:	07c0      	lsls	r0, r0, #31
   11c46:	d021      	beq.n	11c8c <sym_NCQ5WTBCV7DGPK3QI3SSY5XGKOI2SE3XFCTKQKY+0x5c>
   11c48:	4628      	mov	r0, r5
   11c4a:	f000 f843 	bl	11cd4 <sym_NCQ5WTBCV7DGPK3QI3SSY5XGKOI2SE3XFCTKQKY+0xa4>
   11c4e:	4603      	mov	r3, r0
   11c50:	f7ff fed4 	bl	119fc <sym_PLOW4TMGVQT52FP2ERNRL6S5EELE2YO563WRPJA>
   11c54:	4601      	mov	r1, r0
   11c56:	2000      	movs	r0, #0
   11c58:	2b10      	cmp	r3, #16
   11c5a:	d009      	beq.n	11c70 <sym_NCQ5WTBCV7DGPK3QI3SSY5XGKOI2SE3XFCTKQKY+0x40>
   11c5c:	18f2      	adds	r2, r6, r3
   11c5e:	f892 c13b 	ldrb.w	ip, [r2, #315]	; 0x13b
   11c62:	f1bc 0f01 	cmp.w	ip, #1
   11c66:	d002      	beq.n	11c6e <sym_NCQ5WTBCV7DGPK3QI3SSY5XGKOI2SE3XFCTKQKY+0x3e>
   11c68:	f892 214b 	ldrb.w	r2, [r2, #331]	; 0x14b
   11c6c:	b102      	cbz	r2, 11c70 <sym_NCQ5WTBCV7DGPK3QI3SSY5XGKOI2SE3XFCTKQKY+0x40>
   11c6e:	2001      	movs	r0, #1
   11c70:	1e40      	subs	r0, r0, #1
   11c72:	4201      	tst	r1, r0
   11c74:	d10a      	bne.n	11c8c <sym_NCQ5WTBCV7DGPK3QI3SSY5XGKOI2SE3XFCTKQKY+0x5c>
   11c76:	480a      	ldr	r0, [pc, #40]	; (11ca0 <sym_NCQ5WTBCV7DGPK3QI3SSY5XGKOI2SE3XFCTKQKY+0x70>)
   11c78:	f507 71aa 	add.w	r1, r7, #340	; 0x154
   11c7c:	5503      	strb	r3, [r0, r4]
   11c7e:	4620      	mov	r0, r4
   11c80:	1c64      	adds	r4, r4, #1
   11c82:	f897 2153 	ldrb.w	r2, [r7, #339]	; 0x153
   11c86:	b2e4      	uxtb	r4, r4
   11c88:	f005 fbe6 	bl	17458 <sym_53FPWJRYQVPJEOZPLNZO6VOSTP72TYV5A36KFIY>
   11c8c:	1c6d      	adds	r5, r5, #1
   11c8e:	b2ed      	uxtb	r5, r5
   11c90:	7830      	ldrb	r0, [r6, #0]
   11c92:	42a8      	cmp	r0, r5
   11c94:	d8d2      	bhi.n	11c3c <sym_NCQ5WTBCV7DGPK3QI3SSY5XGKOI2SE3XFCTKQKY+0xc>
   11c96:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
   11c9a:	0000      	.short	0x0000
   11c9c:	2000122e 	.word	0x2000122e
   11ca0:	20000280 	.word	0x20000280
   11ca4:	4602      	mov	r2, r0
   11ca6:	4809      	ldr	r0, [pc, #36]	; (11ccc <sym_NCQ5WTBCV7DGPK3QI3SSY5XGKOI2SE3XFCTKQKY+0x9c>)
   11ca8:	b510      	push	{r4, lr}
   11caa:	7800      	ldrb	r0, [r0, #0]
   11cac:	460b      	mov	r3, r1
   11cae:	b158      	cbz	r0, 11cc8 <sym_NCQ5WTBCV7DGPK3QI3SSY5XGKOI2SE3XFCTKQKY+0x98>
   11cb0:	4807      	ldr	r0, [pc, #28]	; (11cd0 <sym_NCQ5WTBCV7DGPK3QI3SSY5XGKOI2SE3XFCTKQKY+0xa0>)
   11cb2:	7881      	ldrb	r1, [r0, #2]
   11cb4:	b141      	cbz	r1, 11cc8 <sym_NCQ5WTBCV7DGPK3QI3SSY5XGKOI2SE3XFCTKQKY+0x98>
   11cb6:	b10b      	cbz	r3, 11cbc <sym_NCQ5WTBCV7DGPK3QI3SSY5XGKOI2SE3XFCTKQKY+0x8c>
   11cb8:	1cc0      	adds	r0, r0, #3
   11cba:	e001      	b.n	11cc0 <sym_NCQ5WTBCV7DGPK3QI3SSY5XGKOI2SE3XFCTKQKY+0x90>
   11cbc:	4804      	ldr	r0, [pc, #16]	; (11cd0 <sym_NCQ5WTBCV7DGPK3QI3SSY5XGKOI2SE3XFCTKQKY+0xa0>)
   11cbe:	3083      	adds	r0, #131	; 0x83
   11cc0:	f004 fd2e 	bl	16720 <sym_MDF364N4PQDEA5ZGP5CB3ZDZVZM5Q32KSEZZ5HI>
   11cc4:	2001      	movs	r0, #1
   11cc6:	bd10      	pop	{r4, pc}
   11cc8:	2000      	movs	r0, #0
   11cca:	bd10      	pop	{r4, pc}
   11ccc:	2000027c 	.word	0x2000027c
   11cd0:	2000122e 	.word	0x2000122e
   11cd4:	4908      	ldr	r1, [pc, #32]	; (11cf8 <sym_NCQ5WTBCV7DGPK3QI3SSY5XGKOI2SE3XFCTKQKY+0xc8>)
   11cd6:	b510      	push	{r4, lr}
   11cd8:	4603      	mov	r3, r0
   11cda:	2000      	movs	r0, #0
   11cdc:	788a      	ldrb	r2, [r1, #2]
   11cde:	e006      	b.n	11cee <sym_NCQ5WTBCV7DGPK3QI3SSY5XGKOI2SE3XFCTKQKY+0xbe>
   11ce0:	180c      	adds	r4, r1, r0
   11ce2:	f894 4103 	ldrb.w	r4, [r4, #259]	; 0x103
   11ce6:	429c      	cmp	r4, r3
   11ce8:	d004      	beq.n	11cf4 <sym_NCQ5WTBCV7DGPK3QI3SSY5XGKOI2SE3XFCTKQKY+0xc4>
   11cea:	1c40      	adds	r0, r0, #1
   11cec:	b2c0      	uxtb	r0, r0
   11cee:	4282      	cmp	r2, r0
   11cf0:	d8f6      	bhi.n	11ce0 <sym_NCQ5WTBCV7DGPK3QI3SSY5XGKOI2SE3XFCTKQKY+0xb0>
   11cf2:	2010      	movs	r0, #16
   11cf4:	bd10      	pop	{r4, pc}
   11cf6:	0000      	.short	0x0000
   11cf8:	2000122e 	.word	0x2000122e
   11cfc:	b570      	push	{r4, r5, r6, lr}
   11cfe:	4b0c      	ldr	r3, [pc, #48]	; (11d30 <sym_NCQ5WTBCV7DGPK3QI3SSY5XGKOI2SE3XFCTKQKY+0x100>)
   11d00:	4604      	mov	r4, r0
   11d02:	7818      	ldrb	r0, [r3, #0]
   11d04:	1c45      	adds	r5, r0, #1
   11d06:	701d      	strb	r5, [r3, #0]
   11d08:	2810      	cmp	r0, #16
   11d0a:	d303      	bcc.n	11d14 <sym_NCQ5WTBCV7DGPK3QI3SSY5XGKOI2SE3XFCTKQKY+0xe4>
   11d0c:	2146      	movs	r1, #70	; 0x46
   11d0e:	2028      	movs	r0, #40	; 0x28
   11d10:	f7fe f968 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   11d14:	eb03 03c0 	add.w	r3, r3, r0, lsl #3
   11d18:	680d      	ldr	r5, [r1, #0]
   11d1a:	f8c3 5154 	str.w	r5, [r3, #340]	; 0x154
   11d1e:	8889      	ldrh	r1, [r1, #4]
   11d20:	f8a3 1158 	strh.w	r1, [r3, #344]	; 0x158
   11d24:	f883 4153 	strb.w	r4, [r3, #339]	; 0x153
   11d28:	f883 215a 	strb.w	r2, [r3, #346]	; 0x15a
   11d2c:	bd70      	pop	{r4, r5, r6, pc}
   11d2e:	0000      	.short	0x0000
   11d30:	2000122e 	.word	0x2000122e
   11d34:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   11d38:	460f      	mov	r7, r1
   11d3a:	4606      	mov	r6, r0
   11d3c:	2400      	movs	r4, #0
   11d3e:	4d0d      	ldr	r5, [pc, #52]	; (11d74 <sym_NCQ5WTBCV7DGPK3QI3SSY5XGKOI2SE3XFCTKQKY+0x144>)
   11d40:	e00f      	b.n	11d62 <sym_NCQ5WTBCV7DGPK3QI3SSY5XGKOI2SE3XFCTKQKY+0x132>
   11d42:	bf00      	nop
   11d44:	eb05 00c4 	add.w	r0, r5, r4, lsl #3
   11d48:	f890 1153 	ldrb.w	r1, [r0, #339]	; 0x153
   11d4c:	42b1      	cmp	r1, r6
   11d4e:	d106      	bne.n	11d5e <sym_NCQ5WTBCV7DGPK3QI3SSY5XGKOI2SE3XFCTKQKY+0x12e>
   11d50:	2206      	movs	r2, #6
   11d52:	4639      	mov	r1, r7
   11d54:	f500 70aa 	add.w	r0, r0, #340	; 0x154
   11d58:	f006 f9a1 	bl	1809e <sym_K65IFLJONCLHPD5IQ4ENBWGA3PVI55UHZKOIVDQ>
   11d5c:	b138      	cbz	r0, 11d6e <sym_NCQ5WTBCV7DGPK3QI3SSY5XGKOI2SE3XFCTKQKY+0x13e>
   11d5e:	1c64      	adds	r4, r4, #1
   11d60:	b2e4      	uxtb	r4, r4
   11d62:	7828      	ldrb	r0, [r5, #0]
   11d64:	42a0      	cmp	r0, r4
   11d66:	d8ed      	bhi.n	11d44 <sym_NCQ5WTBCV7DGPK3QI3SSY5XGKOI2SE3XFCTKQKY+0x114>
   11d68:	2010      	movs	r0, #16
   11d6a:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
   11d6e:	4620      	mov	r0, r4
   11d70:	e7fb      	b.n	11d6a <sym_NCQ5WTBCV7DGPK3QI3SSY5XGKOI2SE3XFCTKQKY+0x13a>
   11d72:	0000      	.short	0x0000
   11d74:	2000122e 	.word	0x2000122e
   11d78:	b570      	push	{r4, r5, r6, lr}
   11d7a:	4605      	mov	r5, r0
   11d7c:	f7ff ffaa 	bl	11cd4 <sym_NCQ5WTBCV7DGPK3QI3SSY5XGKOI2SE3XFCTKQKY+0xa4>
   11d80:	2810      	cmp	r0, #16
   11d82:	d11c      	bne.n	11dbe <sym_NCQ5WTBCV7DGPK3QI3SSY5XGKOI2SE3XFCTKQKY+0x18e>
   11d84:	4c0e      	ldr	r4, [pc, #56]	; (11dc0 <sym_NCQ5WTBCV7DGPK3QI3SSY5XGKOI2SE3XFCTKQKY+0x190>)
   11d86:	7820      	ldrb	r0, [r4, #0]
   11d88:	1e40      	subs	r0, r0, #1
   11d8a:	b2c0      	uxtb	r0, r0
   11d8c:	7020      	strb	r0, [r4, #0]
   11d8e:	42a8      	cmp	r0, r5
   11d90:	d015      	beq.n	11dbe <sym_NCQ5WTBCV7DGPK3QI3SSY5XGKOI2SE3XFCTKQKY+0x18e>
   11d92:	eb04 02c0 	add.w	r2, r4, r0, lsl #3
   11d96:	eb04 01c5 	add.w	r1, r4, r5, lsl #3
   11d9a:	f502 7080 	add.w	r0, r2, #256	; 0x100
   11d9e:	f8d2 2153 	ldr.w	r2, [r2, #339]	; 0x153
   11da2:	f8c1 2153 	str.w	r2, [r1, #339]	; 0x153
   11da6:	f8d0 0057 	ldr.w	r0, [r0, #87]	; 0x57
   11daa:	f8c1 0157 	str.w	r0, [r1, #343]	; 0x157
   11dae:	7820      	ldrb	r0, [r4, #0]
   11db0:	f7ff ff90 	bl	11cd4 <sym_NCQ5WTBCV7DGPK3QI3SSY5XGKOI2SE3XFCTKQKY+0xa4>
   11db4:	2810      	cmp	r0, #16
   11db6:	d002      	beq.n	11dbe <sym_NCQ5WTBCV7DGPK3QI3SSY5XGKOI2SE3XFCTKQKY+0x18e>
   11db8:	4420      	add	r0, r4
   11dba:	f880 5103 	strb.w	r5, [r0, #259]	; 0x103
   11dbe:	bd70      	pop	{r4, r5, r6, pc}
   11dc0:	2000122e 	.word	0x2000122e
   11dc4:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
   11dc8:	4c21      	ldr	r4, [pc, #132]	; (11e50 <sym_NCQ5WTBCV7DGPK3QI3SSY5XGKOI2SE3XFCTKQKY+0x220>)
   11dca:	4606      	mov	r6, r0
   11dcc:	19a7      	adds	r7, r4, r6
   11dce:	78a0      	ldrb	r0, [r4, #2]
   11dd0:	1e40      	subs	r0, r0, #1
   11dd2:	b2c5      	uxtb	r5, r0
   11dd4:	70a5      	strb	r5, [r4, #2]
   11dd6:	f897 8103 	ldrb.w	r8, [r7, #259]	; 0x103
   11dda:	42ae      	cmp	r6, r5
   11ddc:	d02a      	beq.n	11e34 <sym_NCQ5WTBCV7DGPK3QI3SSY5XGKOI2SE3XFCTKQKY+0x204>
   11dde:	eb04 1a05 	add.w	sl, r4, r5, lsl #4
   11de2:	eb04 1906 	add.w	r9, r4, r6, lsl #4
   11de6:	f10a 0103 	add.w	r1, sl, #3
   11dea:	f109 0003 	add.w	r0, r9, #3
   11dee:	2210      	movs	r2, #16
   11df0:	f006 f967 	bl	180c2 <sym_DQONLUECJTIEYFOFJXXAPJO4POIAJKJNKBGVN5A>
   11df4:	f10a 0183 	add.w	r1, sl, #131	; 0x83
   11df8:	f109 0083 	add.w	r0, r9, #131	; 0x83
   11dfc:	2210      	movs	r2, #16
   11dfe:	f006 f960 	bl	180c2 <sym_DQONLUECJTIEYFOFJXXAPJO4POIAJKJNKBGVN5A>
   11e02:	1960      	adds	r0, r4, r5
   11e04:	eb05 0245 	add.w	r2, r5, r5, lsl #1
   11e08:	f890 1103 	ldrb.w	r1, [r0, #259]	; 0x103
   11e0c:	f887 1103 	strb.w	r1, [r7, #259]	; 0x103
   11e10:	eb06 0146 	add.w	r1, r6, r6, lsl #1
   11e14:	eb04 0242 	add.w	r2, r4, r2, lsl #1
   11e18:	eb04 0141 	add.w	r1, r4, r1, lsl #1
   11e1c:	f8d2 310b 	ldr.w	r3, [r2, #267]	; 0x10b
   11e20:	f8c1 310b 	str.w	r3, [r1, #267]	; 0x10b
   11e24:	f8b2 210f 	ldrh.w	r2, [r2, #271]	; 0x10f
   11e28:	f8a1 210f 	strh.w	r2, [r1, #271]	; 0x10f
   11e2c:	f890 013b 	ldrb.w	r0, [r0, #315]	; 0x13b
   11e30:	f887 013b 	strb.w	r0, [r7, #315]	; 0x13b
   11e34:	eb04 00c8 	add.w	r0, r4, r8, lsl #3
   11e38:	f890 015a 	ldrb.w	r0, [r0, #346]	; 0x15a
   11e3c:	07c0      	lsls	r0, r0, #31
   11e3e:	d104      	bne.n	11e4a <sym_NCQ5WTBCV7DGPK3QI3SSY5XGKOI2SE3XFCTKQKY+0x21a>
   11e40:	4640      	mov	r0, r8
   11e42:	e8bd 47f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
   11e46:	f7ff bf97 	b.w	11d78 <sym_NCQ5WTBCV7DGPK3QI3SSY5XGKOI2SE3XFCTKQKY+0x148>
   11e4a:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
   11e4e:	0000      	.short	0x0000
   11e50:	2000122e 	.word	0x2000122e
   11e54:	4905      	ldr	r1, [pc, #20]	; (11e6c <sym_NCQ5WTBCV7DGPK3QI3SSY5XGKOI2SE3XFCTKQKY+0x23c>)
   11e56:	784a      	ldrb	r2, [r1, #1]
   11e58:	1e52      	subs	r2, r2, #1
   11e5a:	704a      	strb	r2, [r1, #1]
   11e5c:	eb01 01c0 	add.w	r1, r1, r0, lsl #3
   11e60:	2200      	movs	r2, #0
   11e62:	f881 215a 	strb.w	r2, [r1, #346]	; 0x15a
   11e66:	f7ff bf87 	b.w	11d78 <sym_NCQ5WTBCV7DGPK3QI3SSY5XGKOI2SE3XFCTKQKY+0x148>
   11e6a:	0000      	.short	0x0000
   11e6c:	2000122e 	.word	0x2000122e

00011e70 <sym_4NT3PFFI5Z6RN57T2HW54HJZ23JEQUTUQPJLJGI>:
   11e70:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
   11e74:	4604      	mov	r4, r0
   11e76:	f100 0570 	add.w	r5, r0, #112	; 0x70
   11e7a:	f04f 0901 	mov.w	r9, #1
   11e7e:	b171      	cbz	r1, 11e9e <sym_4NT3PFFI5Z6RN57T2HW54HJZ23JEQUTUQPJLJGI+0x2e>
   11e80:	f104 0786 	add.w	r7, r4, #134	; 0x86
   11e84:	1e7e      	subs	r6, r7, #1
   11e86:	2901      	cmp	r1, #1
   11e88:	d021      	beq.n	11ece <sym_4NT3PFFI5Z6RN57T2HW54HJZ23JEQUTUQPJLJGI+0x5e>
   11e8a:	2902      	cmp	r1, #2
   11e8c:	d046      	beq.n	11f1c <sym_4NT3PFFI5Z6RN57T2HW54HJZ23JEQUTUQPJLJGI+0xac>
   11e8e:	2903      	cmp	r1, #3
   11e90:	d11b      	bne.n	11eca <sym_4NT3PFFI5Z6RN57T2HW54HJZ23JEQUTUQPJLJGI+0x5a>
   11e92:	4639      	mov	r1, r7
   11e94:	4630      	mov	r0, r6
   11e96:	e8bd 47f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
   11e9a:	f007 bd36 	b.w	1990a <sym_DGQRK6XVXAAPQDRCJOVOHOTQ47PE7QQ4MNBOW5I>
   11e9e:	f44f 7206 	mov.w	r2, #536	; 0x218
   11ea2:	2100      	movs	r1, #0
   11ea4:	f006 f987 	bl	181b6 <sym_VSILKYHVQ5DVF6LG5MG267DQVA3A2XZQ6FSCLXA>
   11ea8:	f004 fc10 	bl	166cc <sym_PBZPB3PSJJYSQQW7TH2XDGNLD2UYSZR6YJ4ZZNQ>
   11eac:	f644 112b 	movw	r1, #18731	; 0x492b
   11eb0:	4008      	ands	r0, r1
   11eb2:	f885 9015 	strb.w	r9, [r5, #21]
   11eb6:	f885 004c 	strb.w	r0, [r5, #76]	; 0x4c
   11eba:	0a00      	lsrs	r0, r0, #8
   11ebc:	f885 004d 	strb.w	r0, [r5, #77]	; 0x4d
   11ec0:	20fe      	movs	r0, #254	; 0xfe
   11ec2:	f885 007c 	strb.w	r0, [r5, #124]	; 0x7c
   11ec6:	207f      	movs	r0, #127	; 0x7f
   11ec8:	7268      	strb	r0, [r5, #9]
   11eca:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
   11ece:	f04f 0800 	mov.w	r8, #0
   11ed2:	f8a4 810e 	strh.w	r8, [r4, #270]	; 0x10e
   11ed6:	f884 8103 	strb.w	r8, [r4, #259]	; 0x103
   11eda:	68e1      	ldr	r1, [r4, #12]
   11edc:	4814      	ldr	r0, [pc, #80]	; (11f30 <sym_4NT3PFFI5Z6RN57T2HW54HJZ23JEQUTUQPJLJGI+0xc0>)
   11ede:	460a      	mov	r2, r1
   11ee0:	4408      	add	r0, r1
   11ee2:	fbb0 f0f1 	udiv	r0, r0, r1
   11ee6:	f8c4 009c 	str.w	r0, [r4, #156]	; 0x9c
   11eea:	f640 30b8 	movw	r0, #3000	; 0xbb8
   11eee:	f8a4 00a0 	strh.w	r0, [r4, #160]	; 0xa0
   11ef2:	8ae3      	ldrh	r3, [r4, #22]
   11ef4:	4628      	mov	r0, r5
   11ef6:	f000 f81d 	bl	11f34 <sym_4NT3PFFI5Z6RN57T2HW54HJZ23JEQUTUQPJLJGI+0xc4>
   11efa:	4639      	mov	r1, r7
   11efc:	4630      	mov	r0, r6
   11efe:	f007 fd04 	bl	1990a <sym_DGQRK6XVXAAPQDRCJOVOHOTQ47PE7QQ4MNBOW5I>
   11f02:	f006 f8a8 	bl	18056 <sym_YNH6KDZL2GMJ2KPUX5DEER63BRE7IOGBY3KCQAQ>
   11f06:	b118      	cbz	r0, 11f10 <sym_4NT3PFFI5Z6RN57T2HW54HJZ23JEQUTUQPJLJGI+0xa0>
   11f08:	6920      	ldr	r0, [r4, #16]
   11f0a:	f000 fb39 	bl	12580 <sym_HRCF6LWSDWPWEZA7S5YQFCNRDXXCJA6WGOZECRY>
   11f0e:	b110      	cbz	r0, 11f16 <sym_4NT3PFFI5Z6RN57T2HW54HJZ23JEQUTUQPJLJGI+0xa6>
   11f10:	f884 8174 	strb.w	r8, [r4, #372]	; 0x174
   11f14:	e7d9      	b.n	11eca <sym_4NT3PFFI5Z6RN57T2HW54HJZ23JEQUTUQPJLJGI+0x5a>
   11f16:	f884 9174 	strb.w	r9, [r4, #372]	; 0x174
   11f1a:	e7d6      	b.n	11eca <sym_4NT3PFFI5Z6RN57T2HW54HJZ23JEQUTUQPJLJGI+0x5a>
   11f1c:	68c1      	ldr	r1, [r0, #12]
   11f1e:	f8b4 31a2 	ldrh.w	r3, [r4, #418]	; 0x1a2
   11f22:	f8d4 219c 	ldr.w	r2, [r4, #412]	; 0x19c
   11f26:	4628      	mov	r0, r5
   11f28:	e8bd 47f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
   11f2c:	f000 b802 	b.w	11f34 <sym_4NT3PFFI5Z6RN57T2HW54HJZ23JEQUTUQPJLJGI+0xc4>
   11f30:	01c9c37f 	.word	0x01c9c37f
   11f34:	b530      	push	{r4, r5, lr}
   11f36:	2400      	movs	r4, #0
   11f38:	8684      	strh	r4, [r0, #52]	; 0x34
   11f3a:	8f04      	ldrh	r4, [r0, #56]	; 0x38
   11f3c:	4d13      	ldr	r5, [pc, #76]	; (11f8c <sym_4NT3PFFI5Z6RN57T2HW54HJZ23JEQUTUQPJLJGI+0x11c>)
   11f3e:	434c      	muls	r4, r1
   11f40:	fbb4 f4f2 	udiv	r4, r4, r2
   11f44:	8704      	strh	r4, [r0, #56]	; 0x38
   11f46:	f242 7410 	movw	r4, #10000	; 0x2710
   11f4a:	4363      	muls	r3, r4
   11f4c:	fbb3 f3f2 	udiv	r3, r3, r2
   11f50:	1c5b      	adds	r3, r3, #1
   11f52:	b29b      	uxth	r3, r3
   11f54:	fb03 f402 	mul.w	r4, r3, r2
   11f58:	86c3      	strh	r3, [r0, #54]	; 0x36
   11f5a:	42ac      	cmp	r4, r5
   11f5c:	d901      	bls.n	11f62 <sym_4NT3PFFI5Z6RN57T2HW54HJZ23JEQUTUQPJLJGI+0xf2>
   11f5e:	1e5b      	subs	r3, r3, #1
   11f60:	86c3      	strh	r3, [r0, #54]	; 0x36
   11f62:	4b0b      	ldr	r3, [pc, #44]	; (11f90 <sym_4NT3PFFI5Z6RN57T2HW54HJZ23JEQUTUQPJLJGI+0x120>)
   11f64:	f240 2471 	movw	r4, #625	; 0x271
   11f68:	fbb3 f3f2 	udiv	r3, r3, r2
   11f6c:	1c5b      	adds	r3, r3, #1
   11f6e:	8783      	strh	r3, [r0, #60]	; 0x3c
   11f70:	8e03      	ldrh	r3, [r0, #48]	; 0x30
   11f72:	4363      	muls	r3, r4
   11f74:	eb02 1303 	add.w	r3, r2, r3, lsl #4
   11f78:	1e5b      	subs	r3, r3, #1
   11f7a:	fbb3 f3f2 	udiv	r3, r3, r2
   11f7e:	62c3      	str	r3, [r0, #44]	; 0x2c
   11f80:	6a83      	ldr	r3, [r0, #40]	; 0x28
   11f82:	434b      	muls	r3, r1
   11f84:	fbb3 f1f2 	udiv	r1, r3, r2
   11f88:	6281      	str	r1, [r0, #40]	; 0x28
   11f8a:	bd30      	pop	{r4, r5, pc}
   11f8c:	01e84800 	.word	0x01e84800
   11f90:	02625a00 	.word	0x02625a00

00011f94 <sym_KHCOV3Y476ESNIVYZPGAZMIYAIZNR3YMGCWNDEQ>:
   11f94:	b570      	push	{r4, r5, r6, lr}
   11f96:	ea81 4111 	eor.w	r1, r1, r1, lsr #16
   11f9a:	b28b      	uxth	r3, r1
   11f9c:	7ac5      	ldrb	r5, [r0, #11]
   11f9e:	ea83 0102 	eor.w	r1, r3, r2
   11fa2:	2200      	movs	r2, #0
   11fa4:	b2cc      	uxtb	r4, r1
   11fa6:	0a09      	lsrs	r1, r1, #8
   11fa8:	fa94 f4a4 	rbit	r4, r4
   11fac:	fa91 f1a1 	rbit	r1, r1
   11fb0:	0e24      	lsrs	r4, r4, #24
   11fb2:	0e09      	lsrs	r1, r1, #24
   11fb4:	ea44 2101 	orr.w	r1, r4, r1, lsl #8
   11fb8:	eb01 1101 	add.w	r1, r1, r1, lsl #4
   11fbc:	1c52      	adds	r2, r2, #1
   11fbe:	4419      	add	r1, r3
   11fc0:	b2d2      	uxtb	r2, r2
   11fc2:	b289      	uxth	r1, r1
   11fc4:	2a03      	cmp	r2, #3
   11fc6:	d3ed      	bcc.n	11fa4 <sym_KHCOV3Y476ESNIVYZPGAZMIYAIZNR3YMGCWNDEQ+0x10>
   11fc8:	4059      	eors	r1, r3
   11fca:	2225      	movs	r2, #37	; 0x25
   11fcc:	fbb1 f3f2 	udiv	r3, r1, r2
   11fd0:	fb02 1213 	mls	r2, r2, r3, r1
   11fd4:	eb00 03d2 	add.w	r3, r0, r2, lsr #3
   11fd8:	f002 0607 	and.w	r6, r2, #7
   11fdc:	785b      	ldrb	r3, [r3, #1]
   11fde:	2401      	movs	r4, #1
   11fe0:	fa04 f606 	lsl.w	r6, r4, r6
   11fe4:	4233      	tst	r3, r6
   11fe6:	d001      	beq.n	11fec <sym_KHCOV3Y476ESNIVYZPGAZMIYAIZNR3YMGCWNDEQ+0x58>
   11fe8:	4610      	mov	r0, r2
   11fea:	bd70      	pop	{r4, r5, r6, pc}
   11fec:	434d      	muls	r5, r1
   11fee:	0c29      	lsrs	r1, r5, #16
   11ff0:	1c49      	adds	r1, r1, #1
   11ff2:	b2c9      	uxtb	r1, r1
   11ff4:	2200      	movs	r2, #0
   11ff6:	1885      	adds	r5, r0, r2
   11ff8:	79ab      	ldrb	r3, [r5, #6]
   11ffa:	428b      	cmp	r3, r1
   11ffc:	d312      	bcc.n	12024 <sym_KHCOV3Y476ESNIVYZPGAZMIYAIZNR3YMGCWNDEQ+0x90>
   11ffe:	f895 5001 	ldrb.w	r5, [r5, #1]
   12002:	2300      	movs	r3, #0
   12004:	fa04 f603 	lsl.w	r6, r4, r3
   12008:	4235      	tst	r5, r6
   1200a:	d001      	beq.n	12010 <sym_KHCOV3Y476ESNIVYZPGAZMIYAIZNR3YMGCWNDEQ+0x7c>
   1200c:	1e49      	subs	r1, r1, #1
   1200e:	b2c9      	uxtb	r1, r1
   12010:	b121      	cbz	r1, 1201c <sym_KHCOV3Y476ESNIVYZPGAZMIYAIZNR3YMGCWNDEQ+0x88>
   12012:	1c5b      	adds	r3, r3, #1
   12014:	b2db      	uxtb	r3, r3
   12016:	2b08      	cmp	r3, #8
   12018:	d3f4      	bcc.n	12004 <sym_KHCOV3Y476ESNIVYZPGAZMIYAIZNR3YMGCWNDEQ+0x70>
   1201a:	e005      	b.n	12028 <sym_KHCOV3Y476ESNIVYZPGAZMIYAIZNR3YMGCWNDEQ+0x94>
   1201c:	eb03 00c2 	add.w	r0, r3, r2, lsl #3
   12020:	b2c0      	uxtb	r0, r0
   12022:	bd70      	pop	{r4, r5, r6, pc}
   12024:	1ac9      	subs	r1, r1, r3
   12026:	b2c9      	uxtb	r1, r1
   12028:	1c52      	adds	r2, r2, #1
   1202a:	b2d2      	uxtb	r2, r2
   1202c:	2a05      	cmp	r2, #5
   1202e:	d3e2      	bcc.n	11ff6 <sym_KHCOV3Y476ESNIVYZPGAZMIYAIZNR3YMGCWNDEQ+0x62>
   12030:	f240 110d 	movw	r1, #269	; 0x10d
   12034:	2046      	movs	r0, #70	; 0x46
   12036:	f7fd ffd5 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   1203a:	0000      	movs	r0, r0
   1203c:	b570      	push	{r4, r5, r6, lr}
   1203e:	f890 2022 	ldrb.w	r2, [r0, #34]	; 0x22
   12042:	f890 3021 	ldrb.w	r3, [r0, #33]	; 0x21
   12046:	2401      	movs	r4, #1
   12048:	fb03 2101 	mla	r1, r3, r1, r2
   1204c:	2225      	movs	r2, #37	; 0x25
   1204e:	fbb1 f3f2 	udiv	r3, r1, r2
   12052:	fb02 1113 	mls	r1, r2, r3, r1
   12056:	eb00 02d1 	add.w	r2, r0, r1, lsr #3
   1205a:	f880 1022 	strb.w	r1, [r0, #34]	; 0x22
   1205e:	f001 0307 	and.w	r3, r1, #7
   12062:	7d92      	ldrb	r2, [r2, #22]
   12064:	fa04 f303 	lsl.w	r3, r4, r3
   12068:	421a      	tst	r2, r3
   1206a:	d003      	beq.n	12074 <sym_KHCOV3Y476ESNIVYZPGAZMIYAIZNR3YMGCWNDEQ+0xe0>
   1206c:	f880 1023 	strb.w	r1, [r0, #35]	; 0x23
   12070:	2000      	movs	r0, #0
   12072:	bd70      	pop	{r4, r5, r6, pc}
   12074:	f890 2020 	ldrb.w	r2, [r0, #32]
   12078:	fbb1 f3f2 	udiv	r3, r1, r2
   1207c:	fb02 1113 	mls	r1, r2, r3, r1
   12080:	1c49      	adds	r1, r1, #1
   12082:	b2c9      	uxtb	r1, r1
   12084:	2300      	movs	r3, #0
   12086:	18c5      	adds	r5, r0, r3
   12088:	7eea      	ldrb	r2, [r5, #27]
   1208a:	428a      	cmp	r2, r1
   1208c:	d311      	bcc.n	120b2 <sym_KHCOV3Y476ESNIVYZPGAZMIYAIZNR3YMGCWNDEQ+0x11e>
   1208e:	f895 5016 	ldrb.w	r5, [r5, #22]
   12092:	2200      	movs	r2, #0
   12094:	fa04 f602 	lsl.w	r6, r4, r2
   12098:	4235      	tst	r5, r6
   1209a:	d001      	beq.n	120a0 <sym_KHCOV3Y476ESNIVYZPGAZMIYAIZNR3YMGCWNDEQ+0x10c>
   1209c:	1e49      	subs	r1, r1, #1
   1209e:	b2c9      	uxtb	r1, r1
   120a0:	b121      	cbz	r1, 120ac <sym_KHCOV3Y476ESNIVYZPGAZMIYAIZNR3YMGCWNDEQ+0x118>
   120a2:	1c52      	adds	r2, r2, #1
   120a4:	b2d2      	uxtb	r2, r2
   120a6:	2a08      	cmp	r2, #8
   120a8:	d3f4      	bcc.n	12094 <sym_KHCOV3Y476ESNIVYZPGAZMIYAIZNR3YMGCWNDEQ+0x100>
   120aa:	e004      	b.n	120b6 <sym_KHCOV3Y476ESNIVYZPGAZMIYAIZNR3YMGCWNDEQ+0x122>
   120ac:	eb02 01c3 	add.w	r1, r2, r3, lsl #3
   120b0:	e7dc      	b.n	1206c <sym_KHCOV3Y476ESNIVYZPGAZMIYAIZNR3YMGCWNDEQ+0xd8>
   120b2:	1a89      	subs	r1, r1, r2
   120b4:	b2c9      	uxtb	r1, r1
   120b6:	1c5b      	adds	r3, r3, #1
   120b8:	b2db      	uxtb	r3, r3
   120ba:	2b05      	cmp	r3, #5
   120bc:	d3e3      	bcc.n	12086 <sym_KHCOV3Y476ESNIVYZPGAZMIYAIZNR3YMGCWNDEQ+0xf2>
   120be:	201f      	movs	r0, #31
   120c0:	bd70      	pop	{r4, r5, r6, pc}
	...

000120c4 <sym_AQNKAYNIT4GTGTVAKOZJZSWZBN4I6FFKO6L5AXA>:
   120c4:	7841      	ldrb	r1, [r0, #1]
   120c6:	b141      	cbz	r1, 120da <sym_AQNKAYNIT4GTGTVAKOZJZSWZBN4I6FFKO6L5AXA+0x16>
   120c8:	78c0      	ldrb	r0, [r0, #3]
   120ca:	2819      	cmp	r0, #25
   120cc:	d203      	bcs.n	120d6 <sym_AQNKAYNIT4GTGTVAKOZJZSWZBN4I6FFKO6L5AXA+0x12>
   120ce:	4a04      	ldr	r2, [pc, #16]	; (120e0 <sym_AQNKAYNIT4GTGTVAKOZJZSWZBN4I6FFKO6L5AXA+0x1c>)
   120d0:	5c10      	ldrb	r0, [r2, r0]
   120d2:	4288      	cmp	r0, r1
   120d4:	d101      	bne.n	120da <sym_AQNKAYNIT4GTGTVAKOZJZSWZBN4I6FFKO6L5AXA+0x16>
   120d6:	2001      	movs	r0, #1
   120d8:	4770      	bx	lr
   120da:	2000      	movs	r0, #0
   120dc:	4770      	bx	lr
   120de:	0000      	.short	0x0000
   120e0:	0001bea0 	.word	0x0001bea0

000120e4 <sym_OIELJZXQUH4XDAK7XBXBJX4CE2IIXWLOTEZEOSI>:
   120e4:	b50c      	push	{r2, r3, lr}
   120e6:	a20b      	add	r2, pc, #44	; (adr r2, 12114 <sym_OIELJZXQUH4XDAK7XBXBJX4CE2IIXWLOTEZEOSI+0x30>)
   120e8:	e9d2 1200 	ldrd	r1, r2, [r2]
   120ec:	e9cd 1200 	strd	r1, r2, [sp]
   120f0:	7901      	ldrb	r1, [r0, #4]
   120f2:	7940      	ldrb	r0, [r0, #5]
   120f4:	f001 0207 	and.w	r2, r1, #7
   120f8:	4669      	mov	r1, sp
   120fa:	f81d 2002 	ldrb.w	r2, [sp, r2]
   120fe:	2a01      	cmp	r2, #1
   12100:	d804      	bhi.n	1210c <sym_OIELJZXQUH4XDAK7XBXBJX4CE2IIXWLOTEZEOSI+0x28>
   12102:	f000 0007 	and.w	r0, r0, #7
   12106:	5c08      	ldrb	r0, [r1, r0]
   12108:	2801      	cmp	r0, #1
   1210a:	d901      	bls.n	12110 <sym_OIELJZXQUH4XDAK7XBXBJX4CE2IIXWLOTEZEOSI+0x2c>
   1210c:	2000      	movs	r0, #0
   1210e:	bd0c      	pop	{r2, r3, pc}
   12110:	2001      	movs	r0, #1
   12112:	bd0c      	pop	{r2, r3, pc}
   12114:	02010100 	.word	0x02010100
   12118:	03020201 	.word	0x03020201

0001211c <sym_ASSU5HSD7LU7BXC2C2QNNVLB6AOHO4SQ3KK3OJY>:
   1211c:	b510      	push	{r4, lr}
   1211e:	2201      	movs	r2, #1
   12120:	70c1      	strb	r1, [r0, #3]
   12122:	2919      	cmp	r1, #25
   12124:	d202      	bcs.n	1212c <sym_ASSU5HSD7LU7BXC2C2QNNVLB6AOHO4SQ3KK3OJY+0x10>
   12126:	4a06      	ldr	r2, [pc, #24]	; (12140 <sym_ASSU5HSD7LU7BXC2C2QNNVLB6AOHO4SQ3KK3OJY+0x24>)
   12128:	5c52      	ldrb	r2, [r2, r1]
   1212a:	e006      	b.n	1213a <sym_ASSU5HSD7LU7BXC2C2QNNVLB6AOHO4SQ3KK3OJY+0x1e>
   1212c:	29ff      	cmp	r1, #255	; 0xff
   1212e:	d004      	beq.n	1213a <sym_ASSU5HSD7LU7BXC2C2QNNVLB6AOHO4SQ3KK3OJY+0x1e>
   12130:	f240 31d5 	movw	r1, #981	; 0x3d5
   12134:	202a      	movs	r0, #42	; 0x2a
   12136:	f7fd ff55 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   1213a:	7042      	strb	r2, [r0, #1]
   1213c:	bd10      	pop	{r4, pc}
   1213e:	0000      	.short	0x0000
   12140:	0001bea0 	.word	0x0001bea0

00012144 <sym_2NLJY3RIUYXQOZYTZ6WNJA5SS4UKGFLVECP5SQA>:
   12144:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
   12148:	ea5f 0900 	movs.w	r9, r0
   1214c:	d006      	beq.n	1215c <sym_2NLJY3RIUYXQOZYTZ6WNJA5SS4UKGFLVECP5SQA+0x18>
   1214e:	4d21      	ldr	r5, [pc, #132]	; (121d4 <sym_2NLJY3RIUYXQOZYTZ6WNJA5SS4UKGFLVECP5SQA+0x90>)
   12150:	f105 0010 	add.w	r0, r5, #16
   12154:	7b69      	ldrb	r1, [r5, #13]
   12156:	4682      	mov	sl, r0
   12158:	b119      	cbz	r1, 12162 <sym_2NLJY3RIUYXQOZYTZ6WNJA5SS4UKGFLVECP5SQA+0x1e>
   1215a:	e00b      	b.n	12174 <sym_2NLJY3RIUYXQOZYTZ6WNJA5SS4UKGFLVECP5SQA+0x30>
   1215c:	f240 3193 	movw	r1, #915	; 0x393
   12160:	e005      	b.n	1216e <sym_2NLJY3RIUYXQOZYTZ6WNJA5SS4UKGFLVECP5SQA+0x2a>
   12162:	2100      	movs	r1, #0
   12164:	f007 fdd1 	bl	19d0a <sym_24AALTDC2IQ6VNWU2ALOY4V3RG5R2RARTUG4AZY+0xa6>
   12168:	b120      	cbz	r0, 12174 <sym_2NLJY3RIUYXQOZYTZ6WNJA5SS4UKGFLVECP5SQA+0x30>
   1216a:	f240 3196 	movw	r1, #918	; 0x396
   1216e:	202b      	movs	r0, #43	; 0x2b
   12170:	f7fd ff38 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   12174:	8a2e      	ldrh	r6, [r5, #16]
   12176:	2000      	movs	r0, #0
   12178:	f7fe f92c 	bl	103d4 <sym_XHE47EZYHONCPR22HUAZULMCALDJINMYREOFDEI>
   1217c:	4f16      	ldr	r7, [pc, #88]	; (121d8 <sym_2NLJY3RIUYXQOZYTZ6WNJA5SS4UKGFLVECP5SQA+0x94>)
   1217e:	f8df 805c 	ldr.w	r8, [pc, #92]	; 121dc <sym_2NLJY3RIUYXQOZYTZ6WNJA5SS4UKGFLVECP5SQA+0x98>
   12182:	4604      	mov	r4, r0
   12184:	6838      	ldr	r0, [r7, #0]
   12186:	b158      	cbz	r0, 121a0 <sym_2NLJY3RIUYXQOZYTZ6WNJA5SS4UKGFLVECP5SQA+0x5c>
   12188:	8a28      	ldrh	r0, [r5, #16]
   1218a:	42a0      	cmp	r0, r4
   1218c:	d308      	bcc.n	121a0 <sym_2NLJY3RIUYXQOZYTZ6WNJA5SS4UKGFLVECP5SQA+0x5c>
   1218e:	1b00      	subs	r0, r0, r4
   12190:	b2c0      	uxtb	r0, r0
   12192:	2101      	movs	r1, #1
   12194:	f006 ffa9 	bl	190ea <sym_5X75WALYYBUWN4XT5LYOZBIGSZHVNFKF5J4CSQI>
   12198:	b148      	cbz	r0, 121ae <sym_2NLJY3RIUYXQOZYTZ6WNJA5SS4UKGFLVECP5SQA+0x6a>
   1219a:	4649      	mov	r1, r9
   1219c:	683a      	ldr	r2, [r7, #0]
   1219e:	e004      	b.n	121aa <sym_2NLJY3RIUYXQOZYTZ6WNJA5SS4UKGFLVECP5SQA+0x66>
   121a0:	f8d8 2000 	ldr.w	r2, [r8]
   121a4:	b11a      	cbz	r2, 121ae <sym_2NLJY3RIUYXQOZYTZ6WNJA5SS4UKGFLVECP5SQA+0x6a>
   121a6:	8a28      	ldrh	r0, [r5, #16]
   121a8:	4649      	mov	r1, r9
   121aa:	4790      	blx	r2
   121ac:	b968      	cbnz	r0, 121ca <sym_2NLJY3RIUYXQOZYTZ6WNJA5SS4UKGFLVECP5SQA+0x86>
   121ae:	2100      	movs	r1, #0
   121b0:	4650      	mov	r0, sl
   121b2:	f007 fdaa 	bl	19d0a <sym_24AALTDC2IQ6VNWU2ALOY4V3RG5R2RARTUG4AZY+0xa6>
   121b6:	b910      	cbnz	r0, 121be <sym_2NLJY3RIUYXQOZYTZ6WNJA5SS4UKGFLVECP5SQA+0x7a>
   121b8:	8a28      	ldrh	r0, [r5, #16]
   121ba:	42b0      	cmp	r0, r6
   121bc:	d1e2      	bne.n	12184 <sym_2NLJY3RIUYXQOZYTZ6WNJA5SS4UKGFLVECP5SQA+0x40>
   121be:	4808      	ldr	r0, [pc, #32]	; (121e0 <sym_2NLJY3RIUYXQOZYTZ6WNJA5SS4UKGFLVECP5SQA+0x9c>)
   121c0:	6801      	ldr	r1, [r0, #0]
   121c2:	b129      	cbz	r1, 121d0 <sym_2NLJY3RIUYXQOZYTZ6WNJA5SS4UKGFLVECP5SQA+0x8c>
   121c4:	4648      	mov	r0, r9
   121c6:	4788      	blx	r1
   121c8:	b110      	cbz	r0, 121d0 <sym_2NLJY3RIUYXQOZYTZ6WNJA5SS4UKGFLVECP5SQA+0x8c>
   121ca:	2001      	movs	r0, #1
   121cc:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
   121d0:	2000      	movs	r0, #0
   121d2:	e7fb      	b.n	121cc <sym_2NLJY3RIUYXQOZYTZ6WNJA5SS4UKGFLVECP5SQA+0x88>
   121d4:	20000f88 	.word	0x20000f88
   121d8:	2000022c 	.word	0x2000022c
   121dc:	20000230 	.word	0x20000230
   121e0:	20000238 	.word	0x20000238

000121e4 <sym_ADAOR2PXB5YPMJS5MYFIWVIQAXMEM4PRXEVX3JI>:
   121e4:	b570      	push	{r4, r5, r6, lr}
   121e6:	0005      	movs	r5, r0
   121e8:	460c      	mov	r4, r1
   121ea:	d02e      	beq.n	1224a <sym_ADAOR2PXB5YPMJS5MYFIWVIQAXMEM4PRXEVX3JI+0x66>
   121ec:	4818      	ldr	r0, [pc, #96]	; (12250 <sym_ADAOR2PXB5YPMJS5MYFIWVIQAXMEM4PRXEVX3JI+0x6c>)
   121ee:	6802      	ldr	r2, [r0, #0]
   121f0:	b35a      	cbz	r2, 1224a <sym_ADAOR2PXB5YPMJS5MYFIWVIQAXMEM4PRXEVX3JI+0x66>
   121f2:	4628      	mov	r0, r5
   121f4:	4790      	blx	r2
   121f6:	b340      	cbz	r0, 1224a <sym_ADAOR2PXB5YPMJS5MYFIWVIQAXMEM4PRXEVX3JI+0x66>
   121f8:	7820      	ldrb	r0, [r4, #0]
   121fa:	2811      	cmp	r0, #17
   121fc:	d002      	beq.n	12204 <sym_ADAOR2PXB5YPMJS5MYFIWVIQAXMEM4PRXEVX3JI+0x20>
   121fe:	2814      	cmp	r0, #20
   12200:	d003      	beq.n	1220a <sym_ADAOR2PXB5YPMJS5MYFIWVIQAXMEM4PRXEVX3JI+0x26>
   12202:	e020      	b.n	12246 <sym_ADAOR2PXB5YPMJS5MYFIWVIQAXMEM4PRXEVX3JI+0x62>
   12204:	7920      	ldrb	r0, [r4, #4]
   12206:	b1f0      	cbz	r0, 12246 <sym_ADAOR2PXB5YPMJS5MYFIWVIQAXMEM4PRXEVX3JI+0x62>
   12208:	e00a      	b.n	12220 <sym_ADAOR2PXB5YPMJS5MYFIWVIQAXMEM4PRXEVX3JI+0x3c>
   1220a:	7920      	ldrb	r0, [r4, #4]
   1220c:	b120      	cbz	r0, 12218 <sym_ADAOR2PXB5YPMJS5MYFIWVIQAXMEM4PRXEVX3JI+0x34>
   1220e:	4628      	mov	r0, r5
   12210:	f007 ff84 	bl	1a11c <sym_XRU76NANM3C4EMKWQU3DF6CELSRNDV6766IKPJI>
   12214:	b120      	cbz	r0, 12220 <sym_ADAOR2PXB5YPMJS5MYFIWVIQAXMEM4PRXEVX3JI+0x3c>
   12216:	e016      	b.n	12246 <sym_ADAOR2PXB5YPMJS5MYFIWVIQAXMEM4PRXEVX3JI+0x62>
   12218:	490e      	ldr	r1, [pc, #56]	; (12254 <sym_ADAOR2PXB5YPMJS5MYFIWVIQAXMEM4PRXEVX3JI+0x70>)
   1221a:	2000      	movs	r0, #0
   1221c:	7348      	strb	r0, [r1, #13]
   1221e:	e012      	b.n	12246 <sym_ADAOR2PXB5YPMJS5MYFIWVIQAXMEM4PRXEVX3JI+0x62>
   12220:	88e4      	ldrh	r4, [r4, #6]
   12222:	2100      	movs	r1, #0
   12224:	4620      	mov	r0, r4
   12226:	f006 ff60 	bl	190ea <sym_5X75WALYYBUWN4XT5LYOZBIGSZHVNFKF5J4CSQI>
   1222a:	b160      	cbz	r0, 12246 <sym_ADAOR2PXB5YPMJS5MYFIWVIQAXMEM4PRXEVX3JI+0x62>
   1222c:	8800      	ldrh	r0, [r0, #0]
   1222e:	f007 f8df 	bl	193f0 <sym_REO6MG4FRJTNQQ56RDJDYGEWFEO5TFVYGRW6OLI>
   12232:	2100      	movs	r1, #0
   12234:	4620      	mov	r0, r4
   12236:	f7fe f96b 	bl	10510 <sym_4AWF7EXI3MMHUULTY73E756U3IY5DEXOZ265MZY>
   1223a:	b120      	cbz	r0, 12246 <sym_ADAOR2PXB5YPMJS5MYFIWVIQAXMEM4PRXEVX3JI+0x62>
   1223c:	f44f 719a 	mov.w	r1, #308	; 0x134
   12240:	202b      	movs	r0, #43	; 0x2b
   12242:	f7fd fecf 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   12246:	2001      	movs	r0, #1
   12248:	bd70      	pop	{r4, r5, r6, pc}
   1224a:	2000      	movs	r0, #0
   1224c:	bd70      	pop	{r4, r5, r6, pc}
   1224e:	0000      	.short	0x0000
   12250:	20000228 	.word	0x20000228
   12254:	20000f88 	.word	0x20000f88

00012258 <sym_FTGDIHB35XVITI7QRBPNULMZCYC2B7JJ7JXVWYA>:
   12258:	e92d 4ff3 	stmdb	sp!, {r0, r1, r4, r5, r6, r7, r8, r9, sl, fp, lr}
   1225c:	b087      	sub	sp, #28
   1225e:	460c      	mov	r4, r1
   12260:	a902      	add	r1, sp, #8
   12262:	9807      	ldr	r0, [sp, #28]
   12264:	f007 f984 	bl	19570 <sym_UHWWEFDYCEMO6BV2Q3GVLMFC37EIDJEWGQC2XUA>
   12268:	2800      	cmp	r0, #0
   1226a:	d17d      	bne.n	12368 <sym_FTGDIHB35XVITI7QRBPNULMZCYC2B7JJ7JXVWYA+0x110>
   1226c:	f8df 9120 	ldr.w	r9, [pc, #288]	; 12390 <sym_FTGDIHB35XVITI7QRBPNULMZCYC2B7JJ7JXVWYA+0x138>
   12270:	f04f 0a01 	mov.w	sl, #1
   12274:	4680      	mov	r8, r0
   12276:	9803      	ldr	r0, [sp, #12]
   12278:	f890 0070 	ldrb.w	r0, [r0, #112]	; 0x70
   1227c:	2800      	cmp	r0, #0
   1227e:	d00c      	beq.n	1229a <sym_FTGDIHB35XVITI7QRBPNULMZCYC2B7JJ7JXVWYA+0x42>
   12280:	f8d9 2000 	ldr.w	r2, [r9]
   12284:	b162      	cbz	r2, 122a0 <sym_FTGDIHB35XVITI7QRBPNULMZCYC2B7JJ7JXVWYA+0x48>
   12286:	4621      	mov	r1, r4
   12288:	9807      	ldr	r0, [sp, #28]
   1228a:	4790      	blx	r2
   1228c:	b140      	cbz	r0, 122a0 <sym_FTGDIHB35XVITI7QRBPNULMZCYC2B7JJ7JXVWYA+0x48>
   1228e:	4620      	mov	r0, r4
   12290:	f000 f91a 	bl	124c8 <sym_ZUFGUNQKQRINYDDQ2AFT3BJLR3IFVV6WJFPT3PA+0xe0>
   12294:	2800      	cmp	r0, #0
   12296:	d1ee      	bne.n	12276 <sym_FTGDIHB35XVITI7QRBPNULMZCYC2B7JJ7JXVWYA+0x1e>
   12298:	2001      	movs	r0, #1
   1229a:	b009      	add	sp, #36	; 0x24
   1229c:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
   122a0:	9d03      	ldr	r5, [sp, #12]
   122a2:	f895 0134 	ldrb.w	r0, [r5, #308]	; 0x134
   122a6:	3570      	adds	r5, #112	; 0x70
   122a8:	b950      	cbnz	r0, 122c0 <sym_FTGDIHB35XVITI7QRBPNULMZCYC2B7JJ7JXVWYA+0x68>
   122aa:	f895 0024 	ldrb.w	r0, [r5, #36]	; 0x24
   122ae:	f88d 0004 	strb.w	r0, [sp, #4]
   122b2:	9801      	ldr	r0, [sp, #4]
   122b4:	9001      	str	r0, [sp, #4]
   122b6:	f89d 0004 	ldrb.w	r0, [sp, #4]
   122ba:	b108      	cbz	r0, 122c0 <sym_FTGDIHB35XVITI7QRBPNULMZCYC2B7JJ7JXVWYA+0x68>
   122bc:	2001      	movs	r0, #1
   122be:	e000      	b.n	122c2 <sym_FTGDIHB35XVITI7QRBPNULMZCYC2B7JJ7JXVWYA+0x6a>
   122c0:	2000      	movs	r0, #0
   122c2:	4683      	mov	fp, r0
   122c4:	f895 0045 	ldrb.w	r0, [r5, #69]	; 0x45
   122c8:	b1c0      	cbz	r0, 122fc <sym_FTGDIHB35XVITI7QRBPNULMZCYC2B7JJ7JXVWYA+0xa4>
   122ca:	f895 0046 	ldrb.w	r0, [r5, #70]	; 0x46
   122ce:	0780      	lsls	r0, r0, #30
   122d0:	d514      	bpl.n	122fc <sym_FTGDIHB35XVITI7QRBPNULMZCYC2B7JJ7JXVWYA+0xa4>
   122d2:	f884 8001 	strb.w	r8, [r4, #1]
   122d6:	f884 a000 	strb.w	sl, [r4]
   122da:	f884 8004 	strb.w	r8, [r4, #4]
   122de:	9907      	ldr	r1, [sp, #28]
   122e0:	f8a4 1005 	strh.w	r1, [r4, #5]
   122e4:	f895 1047 	ldrb.w	r1, [r5, #71]	; 0x47
   122e8:	71e1      	strb	r1, [r4, #7]
   122ea:	f8b5 1048 	ldrh.w	r1, [r5, #72]	; 0x48
   122ee:	8121      	strh	r1, [r4, #8]
   122f0:	f8b5 104a 	ldrh.w	r1, [r5, #74]	; 0x4a
   122f4:	8161      	strh	r1, [r4, #10]
   122f6:	f885 8045 	strb.w	r8, [r5, #69]	; 0x45
   122fa:	e7c8      	b.n	1228e <sym_FTGDIHB35XVITI7QRBPNULMZCYC2B7JJ7JXVWYA+0x36>
   122fc:	9807      	ldr	r0, [sp, #28]
   122fe:	f7fe faaf 	bl	10860 <sym_35ZAQW4ABRMBYES2ZHPK63BHZAFFFC4WMGEJ6NA>
   12302:	0007      	movs	r7, r0
   12304:	d00d      	beq.n	12322 <sym_FTGDIHB35XVITI7QRBPNULMZCYC2B7JJ7JXVWYA+0xca>
   12306:	f006 fd09 	bl	18d1c <sym_AGKH6DJXHZN325DC6K3C4NU6N7PERJHJNP4AFDI>
   1230a:	0006      	movs	r6, r0
   1230c:	d015      	beq.n	1233a <sym_FTGDIHB35XVITI7QRBPNULMZCYC2B7JJ7JXVWYA+0xe2>
   1230e:	f884 8001 	strb.w	r8, [r4, #1]
   12312:	200d      	movs	r0, #13
   12314:	7020      	strb	r0, [r4, #0]
   12316:	9807      	ldr	r0, [sp, #28]
   12318:	80e0      	strh	r0, [r4, #6]
   1231a:	8126      	strh	r6, [r4, #8]
   1231c:	f884 a004 	strb.w	sl, [r4, #4]
   12320:	e007      	b.n	12332 <sym_FTGDIHB35XVITI7QRBPNULMZCYC2B7JJ7JXVWYA+0xda>
   12322:	f240 213a 	movw	r1, #570	; 0x23a
   12326:	e02d      	b.n	12384 <sym_FTGDIHB35XVITI7QRBPNULMZCYC2B7JJ7JXVWYA+0x12c>
   12328:	2100      	movs	r1, #0
   1232a:	4638      	mov	r0, r7
   1232c:	460a      	mov	r2, r1
   1232e:	f006 fe0b 	bl	18f48 <sym_PTZ4EWNTFK5S5TZGCBNFETDF37P4DBX7VGM33II>
   12332:	1e76      	subs	r6, r6, #1
   12334:	b2b6      	uxth	r6, r6
   12336:	d2f7      	bcs.n	12328 <sym_FTGDIHB35XVITI7QRBPNULMZCYC2B7JJ7JXVWYA+0xd0>
   12338:	e7a9      	b.n	1228e <sym_FTGDIHB35XVITI7QRBPNULMZCYC2B7JJ7JXVWYA+0x36>
   1233a:	9807      	ldr	r0, [sp, #28]
   1233c:	f7fe fa7a 	bl	10834 <sym_YNBBHT54WKEGUNVC6TSBMRGLF67VFWBOYEMKGTQ>
   12340:	b1f0      	cbz	r0, 12380 <sym_FTGDIHB35XVITI7QRBPNULMZCYC2B7JJ7JXVWYA+0x128>
   12342:	f1bb 0f00 	cmp.w	fp, #0
   12346:	d020      	beq.n	1238a <sym_FTGDIHB35XVITI7QRBPNULMZCYC2B7JJ7JXVWYA+0x132>
   12348:	f006 fc1d 	bl	18b86 <sym_B62EJKCCJ4JFC5I4BFTUJG7GNOKGWQ4KKFBS6RI>
   1234c:	b160      	cbz	r0, 12368 <sym_FTGDIHB35XVITI7QRBPNULMZCYC2B7JJ7JXVWYA+0x110>
   1234e:	9807      	ldr	r0, [sp, #28]
   12350:	f007 f84e 	bl	193f0 <sym_REO6MG4FRJTNQQ56RDJDYGEWFEO5TFVYGRW6OLI>
   12354:	2100      	movs	r1, #0
   12356:	9807      	ldr	r0, [sp, #28]
   12358:	f7fe f8da 	bl	10510 <sym_4AWF7EXI3MMHUULTY73E756U3IY5DEXOZ265MZY>
   1235c:	f884 8001 	strb.w	r8, [r4, #1]
   12360:	210a      	movs	r1, #10
   12362:	4640      	mov	r0, r8
   12364:	7021      	strb	r1, [r4, #0]
   12366:	e000      	b.n	1236a <sym_FTGDIHB35XVITI7QRBPNULMZCYC2B7JJ7JXVWYA+0x112>
   12368:	e00f      	b.n	1238a <sym_FTGDIHB35XVITI7QRBPNULMZCYC2B7JJ7JXVWYA+0x132>
   1236a:	f884 8004 	strb.w	r8, [r4, #4]
   1236e:	9907      	ldr	r1, [sp, #28]
   12370:	f8a4 1005 	strh.w	r1, [r4, #5]
   12374:	f895 1025 	ldrb.w	r1, [r5, #37]	; 0x25
   12378:	71e1      	strb	r1, [r4, #7]
   1237a:	3524      	adds	r5, #36	; 0x24
   1237c:	7028      	strb	r0, [r5, #0]
   1237e:	e786      	b.n	1228e <sym_FTGDIHB35XVITI7QRBPNULMZCYC2B7JJ7JXVWYA+0x36>
   12380:	f44f 7116 	mov.w	r1, #600	; 0x258
   12384:	202b      	movs	r0, #43	; 0x2b
   12386:	f7fd fe2d 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   1238a:	2000      	movs	r0, #0
   1238c:	e785      	b.n	1229a <sym_FTGDIHB35XVITI7QRBPNULMZCYC2B7JJ7JXVWYA+0x42>
   1238e:	0000      	.short	0x0000
   12390:	20000234 	.word	0x20000234

00012394 <sym_BBCGHL23UJV466BYW2SHQ2OBUQH4NLFTPMY4GQA>:
   12394:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   12398:	4c12      	ldr	r4, [pc, #72]	; (123e4 <sym_BBCGHL23UJV466BYW2SHQ2OBUQH4NLFTPMY4GQA+0x50>)
   1239a:	4607      	mov	r7, r0
   1239c:	460e      	mov	r6, r1
   1239e:	7de0      	ldrb	r0, [r4, #23]
   123a0:	b110      	cbz	r0, 123a8 <sym_BBCGHL23UJV466BYW2SHQ2OBUQH4NLFTPMY4GQA+0x14>
   123a2:	8b20      	ldrh	r0, [r4, #24]
   123a4:	2800      	cmp	r0, #0
   123a6:	d012      	beq.n	123ce <sym_BBCGHL23UJV466BYW2SHQ2OBUQH4NLFTPMY4GQA+0x3a>
   123a8:	480e      	ldr	r0, [pc, #56]	; (123e4 <sym_BBCGHL23UJV466BYW2SHQ2OBUQH4NLFTPMY4GQA+0x50>)
   123aa:	300e      	adds	r0, #14
   123ac:	4680      	mov	r8, r0
   123ae:	f007 fc56 	bl	19c5e <sym_G7K5H2CRWCUUAX5LJNXCL36PP3OLK3XX7TBLE3I>
   123b2:	b9a8      	cbnz	r0, 123e0 <sym_BBCGHL23UJV466BYW2SHQ2OBUQH4NLFTPMY4GQA+0x4c>
   123b4:	89e5      	ldrh	r5, [r4, #14]
   123b6:	89e0      	ldrh	r0, [r4, #14]
   123b8:	4632      	mov	r2, r6
   123ba:	4639      	mov	r1, r7
   123bc:	f007 fc5e 	bl	19c7c <sym_24AALTDC2IQ6VNWU2ALOY4V3RG5R2RARTUG4AZY+0x18>
   123c0:	b138      	cbz	r0, 123d2 <sym_BBCGHL23UJV466BYW2SHQ2OBUQH4NLFTPMY4GQA+0x3e>
   123c2:	7de0      	ldrb	r0, [r4, #23]
   123c4:	b110      	cbz	r0, 123cc <sym_BBCGHL23UJV466BYW2SHQ2OBUQH4NLFTPMY4GQA+0x38>
   123c6:	8b20      	ldrh	r0, [r4, #24]
   123c8:	1e40      	subs	r0, r0, #1
   123ca:	8320      	strh	r0, [r4, #24]
   123cc:	2001      	movs	r0, #1
   123ce:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
   123d2:	4640      	mov	r0, r8
   123d4:	f007 fc43 	bl	19c5e <sym_G7K5H2CRWCUUAX5LJNXCL36PP3OLK3XX7TBLE3I>
   123d8:	b910      	cbnz	r0, 123e0 <sym_BBCGHL23UJV466BYW2SHQ2OBUQH4NLFTPMY4GQA+0x4c>
   123da:	89e0      	ldrh	r0, [r4, #14]
   123dc:	42a8      	cmp	r0, r5
   123de:	d1ea      	bne.n	123b6 <sym_BBCGHL23UJV466BYW2SHQ2OBUQH4NLFTPMY4GQA+0x22>
   123e0:	2000      	movs	r0, #0
   123e2:	e7f4      	b.n	123ce <sym_BBCGHL23UJV466BYW2SHQ2OBUQH4NLFTPMY4GQA+0x3a>
   123e4:	20000f88 	.word	0x20000f88

000123e8 <sym_ZUFGUNQKQRINYDDQ2AFT3BJLR3IFVV6WJFPT3PA>:
   123e8:	b510      	push	{r4, lr}
   123ea:	7901      	ldrb	r1, [r0, #4]
   123ec:	b119      	cbz	r1, 123f6 <sym_ZUFGUNQKQRINYDDQ2AFT3BJLR3IFVV6WJFPT3PA+0xe>
   123ee:	2901      	cmp	r1, #1
   123f0:	d006      	beq.n	12400 <sym_ZUFGUNQKQRINYDDQ2AFT3BJLR3IFVV6WJFPT3PA+0x18>
   123f2:	2000      	movs	r0, #0
   123f4:	bd10      	pop	{r4, pc}
   123f6:	8842      	ldrh	r2, [r0, #2]
   123f8:	6883      	ldr	r3, [r0, #8]
   123fa:	8800      	ldrh	r0, [r0, #0]
   123fc:	2102      	movs	r1, #2
   123fe:	e003      	b.n	12408 <sym_ZUFGUNQKQRINYDDQ2AFT3BJLR3IFVV6WJFPT3PA+0x20>
   12400:	8842      	ldrh	r2, [r0, #2]
   12402:	6883      	ldr	r3, [r0, #8]
   12404:	8800      	ldrh	r0, [r0, #0]
   12406:	2101      	movs	r1, #1
   12408:	f000 f808 	bl	1241c <sym_ZUFGUNQKQRINYDDQ2AFT3BJLR3IFVV6WJFPT3PA+0x34>
   1240c:	b910      	cbnz	r0, 12414 <sym_ZUFGUNQKQRINYDDQ2AFT3BJLR3IFVV6WJFPT3PA+0x2c>
   1240e:	4902      	ldr	r1, [pc, #8]	; (12418 <sym_ZUFGUNQKQRINYDDQ2AFT3BJLR3IFVV6WJFPT3PA+0x30>)
   12410:	2001      	movs	r0, #1
   12412:	7008      	strb	r0, [r1, #0]
   12414:	2001      	movs	r0, #1
   12416:	bd10      	pop	{r4, pc}
   12418:	20000f88 	.word	0x20000f88
   1241c:	e92d 47ff 	stmdb	sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, lr}
   12420:	468a      	mov	sl, r1
   12422:	4699      	mov	r9, r3
   12424:	4615      	mov	r5, r2
   12426:	4604      	mov	r4, r0
   12428:	a901      	add	r1, sp, #4
   1242a:	f007 f8a1 	bl	19570 <sym_UHWWEFDYCEMO6BV2Q3GVLMFC37EIDJEWGQC2XUA>
   1242e:	bbe0      	cbnz	r0, 124aa <sym_ZUFGUNQKQRINYDDQ2AFT3BJLR3IFVV6WJFPT3PA+0xc2>
   12430:	9f02      	ldr	r7, [sp, #8]
   12432:	f04f 0800 	mov.w	r8, #0
   12436:	3770      	adds	r7, #112	; 0x70
   12438:	b18d      	cbz	r5, 1245e <sym_ZUFGUNQKQRINYDDQ2AFT3BJLR3IFVV6WJFPT3PA+0x76>
   1243a:	4620      	mov	r0, r4
   1243c:	f7fe fa10 	bl	10860 <sym_35ZAQW4ABRMBYES2ZHPK63BHZAFFFC4WMGEJ6NA>
   12440:	0004      	movs	r4, r0
   12442:	d00f      	beq.n	12464 <sym_ZUFGUNQKQRINYDDQ2AFT3BJLR3IFVV6WJFPT3PA+0x7c>
   12444:	4629      	mov	r1, r5
   12446:	f006 fca8 	bl	18d9a <sym_XCF2HHS4DO2JW2ILCF4RJW66HXXYOROBK7NUPMY>
   1244a:	0006      	movs	r6, r0
   1244c:	d003      	beq.n	12456 <sym_ZUFGUNQKQRINYDDQ2AFT3BJLR3IFVV6WJFPT3PA+0x6e>
   1244e:	481d      	ldr	r0, [pc, #116]	; (124c4 <sym_ZUFGUNQKQRINYDDQ2AFT3BJLR3IFVV6WJFPT3PA+0xdc>)
   12450:	8880      	ldrh	r0, [r0, #4]
   12452:	42a8      	cmp	r0, r5
   12454:	d208      	bcs.n	12468 <sym_ZUFGUNQKQRINYDDQ2AFT3BJLR3IFVV6WJFPT3PA+0x80>
   12456:	2000      	movs	r0, #0
   12458:	b004      	add	sp, #16
   1245a:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
   1245e:	2001      	movs	r0, #1
   12460:	7538      	strb	r0, [r7, #20]
   12462:	e029      	b.n	124b8 <sym_ZUFGUNQKQRINYDDQ2AFT3BJLR3IFVV6WJFPT3PA+0xd0>
   12464:	2189      	movs	r1, #137	; 0x89
   12466:	e02a      	b.n	124be <sym_ZUFGUNQKQRINYDDQ2AFT3BJLR3IFVV6WJFPT3PA+0xd6>
   12468:	4620      	mov	r0, r4
   1246a:	4631      	mov	r1, r6
   1246c:	aa03      	add	r2, sp, #12
   1246e:	f006 fc8d 	bl	18d8c <sym_DY52YMZFQPMDNFDSVZDQLPFIWKOSXIQIEKUVZNY>
   12472:	9803      	ldr	r0, [sp, #12]
   12474:	f8a0 8000 	strh.w	r8, [r0]
   12478:	f880 8002 	strb.w	r8, [r0, #2]
   1247c:	7d39      	ldrb	r1, [r7, #20]
   1247e:	b109      	cbz	r1, 12484 <sym_ZUFGUNQKQRINYDDQ2AFT3BJLR3IFVV6WJFPT3PA+0x9c>
   12480:	f04f 0a02 	mov.w	sl, #2
   12484:	4651      	mov	r1, sl
   12486:	f007 fb6b 	bl	19b60 <sym_KWWW3Q4Z6LMHA6EXR6CMFCOS3QXXZ636XUAHVBY>
   1248a:	4631      	mov	r1, r6
   1248c:	2603      	movs	r6, #3
   1248e:	4620      	mov	r0, r4
   12490:	464a      	mov	r2, r9
   12492:	462b      	mov	r3, r5
   12494:	9600      	str	r6, [sp, #0]
   12496:	f006 fb5f 	bl	18b58 <sym_KYAZRCYN475PHPCZD6L3YCVO72SQVA3SBOAY44Q>
   1249a:	4620      	mov	r0, r4
   1249c:	4629      	mov	r1, r5
   1249e:	f006 fc19 	bl	18cd4 <sym_TDLIKQLE652KPCFAMYL33G6BKGPHRLYLWNEOTHQ>
   124a2:	b158      	cbz	r0, 124bc <sym_ZUFGUNQKQRINYDDQ2AFT3BJLR3IFVV6WJFPT3PA+0xd4>
   124a4:	4644      	mov	r4, r8
   124a6:	a801      	add	r0, sp, #4
   124a8:	e000      	b.n	124ac <sym_ZUFGUNQKQRINYDDQ2AFT3BJLR3IFVV6WJFPT3PA+0xc4>
   124aa:	e005      	b.n	124b8 <sym_ZUFGUNQKQRINYDDQ2AFT3BJLR3IFVV6WJFPT3PA+0xd0>
   124ac:	f007 fbda 	bl	19c64 <sym_24AALTDC2IQ6VNWU2ALOY4V3RG5R2RARTUG4AZY>
   124b0:	9802      	ldr	r0, [sp, #8]
   124b2:	f8a0 40fa 	strh.w	r4, [r0, #250]	; 0xfa
   124b6:	753c      	strb	r4, [r7, #20]
   124b8:	2001      	movs	r0, #1
   124ba:	e7cd      	b.n	12458 <sym_ZUFGUNQKQRINYDDQ2AFT3BJLR3IFVV6WJFPT3PA+0x70>
   124bc:	219f      	movs	r1, #159	; 0x9f
   124be:	202b      	movs	r0, #43	; 0x2b
   124c0:	f7fd fd90 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   124c4:	20000f88 	.word	0x20000f88
   124c8:	b510      	push	{r4, lr}
   124ca:	492c      	ldr	r1, [pc, #176]	; (1257c <sym_ZUFGUNQKQRINYDDQ2AFT3BJLR3IFVV6WJFPT3PA+0x194>)
   124cc:	b086      	sub	sp, #24
   124ce:	7d8a      	ldrb	r2, [r1, #22]
   124d0:	7801      	ldrb	r1, [r0, #0]
   124d2:	07d3      	lsls	r3, r2, #31
   124d4:	d101      	bne.n	124da <sym_ZUFGUNQKQRINYDDQ2AFT3BJLR3IFVV6WJFPT3PA+0xf2>
   124d6:	2919      	cmp	r1, #25
   124d8:	d004      	beq.n	124e4 <sym_ZUFGUNQKQRINYDDQ2AFT3BJLR3IFVV6WJFPT3PA+0xfc>
   124da:	2918      	cmp	r1, #24
   124dc:	d01e      	beq.n	1251c <sym_ZUFGUNQKQRINYDDQ2AFT3BJLR3IFVV6WJFPT3PA+0x134>
   124de:	2912      	cmp	r1, #18
   124e0:	d045      	beq.n	1256e <sym_ZUFGUNQKQRINYDDQ2AFT3BJLR3IFVV6WJFPT3PA+0x186>
   124e2:	e049      	b.n	12578 <sym_ZUFGUNQKQRINYDDQ2AFT3BJLR3IFVV6WJFPT3PA+0x190>
   124e4:	8880      	ldrh	r0, [r0, #4]
   124e6:	f8ad 0000 	strh.w	r0, [sp]
   124ea:	a902      	add	r1, sp, #8
   124ec:	f007 f840 	bl	19570 <sym_UHWWEFDYCEMO6BV2Q3GVLMFC37EIDJEWGQC2XUA>
   124f0:	b108      	cbz	r0, 124f6 <sym_ZUFGUNQKQRINYDDQ2AFT3BJLR3IFVV6WJFPT3PA+0x10e>
   124f2:	2158      	movs	r1, #88	; 0x58
   124f4:	e035      	b.n	12562 <sym_ZUFGUNQKQRINYDDQ2AFT3BJLR3IFVV6WJFPT3PA+0x17a>
   124f6:	9803      	ldr	r0, [sp, #12]
   124f8:	f810 1f66 	ldrb.w	r1, [r0, #102]!
   124fc:	f88d 1002 	strb.w	r1, [sp, #2]
   12500:	7841      	ldrb	r1, [r0, #1]
   12502:	f88d 1003 	strb.w	r1, [sp, #3]
   12506:	8840      	ldrh	r0, [r0, #2]
   12508:	f8ad 0004 	strh.w	r0, [sp, #4]
   1250c:	2102      	movs	r1, #2
   1250e:	4668      	mov	r0, sp
   12510:	f009 f89a 	bl	1b648 <sym_TTWYMXRKLVLI7DIZYVTKGZHSGKFWB63OVH3AYYQ>
   12514:	b340      	cbz	r0, 12568 <sym_ZUFGUNQKQRINYDDQ2AFT3BJLR3IFVV6WJFPT3PA+0x180>
   12516:	f240 114d 	movw	r1, #333	; 0x14d
   1251a:	e022      	b.n	12562 <sym_ZUFGUNQKQRINYDDQ2AFT3BJLR3IFVV6WJFPT3PA+0x17a>
   1251c:	0791      	lsls	r1, r2, #30
   1251e:	d42b      	bmi.n	12578 <sym_ZUFGUNQKQRINYDDQ2AFT3BJLR3IFVV6WJFPT3PA+0x190>
   12520:	8884      	ldrh	r4, [r0, #4]
   12522:	a903      	add	r1, sp, #12
   12524:	4620      	mov	r0, r4
   12526:	f008 feae 	bl	1b286 <sym_4DOGMDZGTALJPSDK26RDOFYJAUF2WWYUQSK5XNA>
   1252a:	b110      	cbz	r0, 12532 <sym_ZUFGUNQKQRINYDDQ2AFT3BJLR3IFVV6WJFPT3PA+0x14a>
   1252c:	f44f 71aa 	mov.w	r1, #340	; 0x154
   12530:	e017      	b.n	12562 <sym_ZUFGUNQKQRINYDDQ2AFT3BJLR3IFVV6WJFPT3PA+0x17a>
   12532:	f8ad 4000 	strh.w	r4, [sp]
   12536:	f8bd 0012 	ldrh.w	r0, [sp, #18]
   1253a:	f8ad 0002 	strh.w	r0, [sp, #2]
   1253e:	f8bd 0014 	ldrh.w	r0, [sp, #20]
   12542:	f8ad 0004 	strh.w	r0, [sp, #4]
   12546:	f8bd 000e 	ldrh.w	r0, [sp, #14]
   1254a:	f8ad 0006 	strh.w	r0, [sp, #6]
   1254e:	f8bd 0010 	ldrh.w	r0, [sp, #16]
   12552:	f8ad 0008 	strh.w	r0, [sp, #8]
   12556:	4668      	mov	r0, sp
   12558:	f008 ff13 	bl	1b382 <sym_M6MZU5PVUKHQMWMMC4UT23L7SRBW44JZLP26X4I>
   1255c:	b120      	cbz	r0, 12568 <sym_ZUFGUNQKQRINYDDQ2AFT3BJLR3IFVV6WJFPT3PA+0x180>
   1255e:	f240 115d 	movw	r1, #349	; 0x15d
   12562:	202b      	movs	r0, #43	; 0x2b
   12564:	f7fd fd3e 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   12568:	2001      	movs	r0, #1
   1256a:	b006      	add	sp, #24
   1256c:	bd10      	pop	{r4, pc}
   1256e:	0751      	lsls	r1, r2, #29
   12570:	d402      	bmi.n	12578 <sym_ZUFGUNQKQRINYDDQ2AFT3BJLR3IFVV6WJFPT3PA+0x190>
   12572:	7b80      	ldrb	r0, [r0, #14]
   12574:	07c0      	lsls	r0, r0, #31
   12576:	d0f7      	beq.n	12568 <sym_ZUFGUNQKQRINYDDQ2AFT3BJLR3IFVV6WJFPT3PA+0x180>
   12578:	2000      	movs	r0, #0
   1257a:	e7f6      	b.n	1256a <sym_ZUFGUNQKQRINYDDQ2AFT3BJLR3IFVV6WJFPT3PA+0x182>
   1257c:	20000f88 	.word	0x20000f88

00012580 <sym_HRCF6LWSDWPWEZA7S5YQFCNRDXXCJA6WGOZECRY>:
   12580:	b5f0      	push	{r4, r5, r6, r7, lr}
   12582:	f06f 021f 	mvn.w	r2, #31
   12586:	0c01      	lsrs	r1, r0, #16
   12588:	ea02 2690 	and.w	r6, r2, r0, lsr #10
   1258c:	251f      	movs	r5, #31
   1258e:	f5a1 40aa 	sub.w	r0, r1, #21760	; 0x5500
   12592:	3854      	subs	r0, #84	; 0x54
   12594:	d00d      	beq.n	125b2 <sym_HRCF6LWSDWPWEZA7S5YQFCNRDXXCJA6WGOZECRY+0x32>
   12596:	f5a1 40aa 	sub.w	r0, r1, #21760	; 0x5500
   1259a:	3855      	subs	r0, #85	; 0x55
   1259c:	d009      	beq.n	125b2 <sym_HRCF6LWSDWPWEZA7S5YQFCNRDXXCJA6WGOZECRY+0x32>
   1259e:	f5a1 5028 	sub.w	r0, r1, #10752	; 0x2a00
   125a2:	38aa      	subs	r0, #170	; 0xaa
   125a4:	d005      	beq.n	125b2 <sym_HRCF6LWSDWPWEZA7S5YQFCNRDXXCJA6WGOZECRY+0x32>
   125a6:	f5a1 402a 	sub.w	r0, r1, #43520	; 0xaa00
   125aa:	38aa      	subs	r0, #170	; 0xaa
   125ac:	d001      	beq.n	125b2 <sym_HRCF6LWSDWPWEZA7S5YQFCNRDXXCJA6WGOZECRY+0x32>
   125ae:	2001      	movs	r0, #1
   125b0:	e000      	b.n	125b4 <sym_HRCF6LWSDWPWEZA7S5YQFCNRDXXCJA6WGOZECRY+0x34>
   125b2:	2000      	movs	r0, #0
   125b4:	2200      	movs	r2, #0
   125b6:	4613      	mov	r3, r2
   125b8:	ea4f 0402 	mov.w	r4, r2
   125bc:	ea82 0701 	eor.w	r7, r2, r1
   125c0:	43ff      	mvns	r7, r7
   125c2:	431f      	orrs	r7, r3
   125c4:	1c7f      	adds	r7, r7, #1
   125c6:	d00f      	beq.n	125e8 <sym_HRCF6LWSDWPWEZA7S5YQFCNRDXXCJA6WGOZECRY+0x68>
   125c8:	f006 0701 	and.w	r7, r6, #1
   125cc:	0852      	lsrs	r2, r2, #1
   125ce:	ea42 32c7 	orr.w	r2, r2, r7, lsl #15
   125d2:	f005 0701 	and.w	r7, r5, #1
   125d6:	085b      	lsrs	r3, r3, #1
   125d8:	0876      	lsrs	r6, r6, #1
   125da:	086d      	lsrs	r5, r5, #1
   125dc:	1c64      	adds	r4, r4, #1
   125de:	ea43 33c7 	orr.w	r3, r3, r7, lsl #15
   125e2:	2c16      	cmp	r4, #22
   125e4:	d3ea      	bcc.n	125bc <sym_HRCF6LWSDWPWEZA7S5YQFCNRDXXCJA6WGOZECRY+0x3c>
   125e6:	bdf0      	pop	{r4, r5, r6, r7, pc}
   125e8:	2000      	movs	r0, #0
   125ea:	bdf0      	pop	{r4, r5, r6, r7, pc}

000125ec <sym_JIJASGQH4XEEPZL7D35VQHVPKKLANGDBS2M46NQ>:
   125ec:	b570      	push	{r4, r5, r6, lr}
   125ee:	4604      	mov	r4, r0
   125f0:	7c00      	ldrb	r0, [r0, #16]
   125f2:	b300      	cbz	r0, 12636 <sym_JIJASGQH4XEEPZL7D35VQHVPKKLANGDBS2M46NQ+0x4a>
   125f4:	2802      	cmp	r0, #2
   125f6:	d01e      	beq.n	12636 <sym_JIJASGQH4XEEPZL7D35VQHVPKKLANGDBS2M46NQ+0x4a>
   125f8:	f05f 0001 	movs.w	r0, #1
   125fc:	f104 0149 	add.w	r1, r4, #73	; 0x49
   12600:	f884 0048 	strb.w	r0, [r4, #72]	; 0x48
   12604:	460d      	mov	r5, r1
   12606:	b1c0      	cbz	r0, 1263a <sym_JIJASGQH4XEEPZL7D35VQHVPKKLANGDBS2M46NQ+0x4e>
   12608:	7de0      	ldrb	r0, [r4, #23]
   1260a:	b1f0      	cbz	r0, 1264a <sym_JIJASGQH4XEEPZL7D35VQHVPKKLANGDBS2M46NQ+0x5e>
   1260c:	f8d4 0011 	ldr.w	r0, [r4, #17]
   12610:	f8c4 0049 	str.w	r0, [r4, #73]	; 0x49
   12614:	f8b4 0015 	ldrh.w	r0, [r4, #21]
   12618:	f8a4 004d 	strh.w	r0, [r4, #77]	; 0x4d
   1261c:	7c20      	ldrb	r0, [r4, #16]
   1261e:	f007 fce0 	bl	19fe2 <sym_FKGRLSJGPWDG44KYHTBA74A2ZDKPDUWGXHS3E2I+0xd0>
   12622:	7620      	strb	r0, [r4, #24]
   12624:	2008      	movs	r0, #8
   12626:	7660      	strb	r0, [r4, #25]
   12628:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
   1262c:	4629      	mov	r1, r5
   1262e:	f007 fcc4 	bl	19fba <sym_FKGRLSJGPWDG44KYHTBA74A2ZDKPDUWGXHS3E2I+0xa8>
   12632:	b9a8      	cbnz	r0, 12660 <sym_JIJASGQH4XEEPZL7D35VQHVPKKLANGDBS2M46NQ+0x74>
   12634:	e00e      	b.n	12654 <sym_JIJASGQH4XEEPZL7D35VQHVPKKLANGDBS2M46NQ+0x68>
   12636:	2000      	movs	r0, #0
   12638:	e7e0      	b.n	125fc <sym_JIJASGQH4XEEPZL7D35VQHVPKKLANGDBS2M46NQ+0x10>
   1263a:	2000      	movs	r0, #0
   1263c:	f7fe fbd2 	bl	10de4 <sym_WCOWXKSKBH7DOKKKINFZAPWXKW4NYAUCJWTUKBI>
   12640:	2800      	cmp	r0, #0
   12642:	d1eb      	bne.n	1261c <sym_JIJASGQH4XEEPZL7D35VQHVPKKLANGDBS2M46NQ+0x30>
   12644:	f240 41aa 	movw	r1, #1194	; 0x4aa
   12648:	e001      	b.n	1264e <sym_JIJASGQH4XEEPZL7D35VQHVPKKLANGDBS2M46NQ+0x62>
   1264a:	f240 41ae 	movw	r1, #1198	; 0x4ae
   1264e:	202d      	movs	r0, #45	; 0x2d
   12650:	f7fd fcc8 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   12654:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
   12658:	4629      	mov	r1, r5
   1265a:	f007 fcb7 	bl	19fcc <sym_FKGRLSJGPWDG44KYHTBA74A2ZDKPDUWGXHS3E2I+0xba>
   1265e:	b100      	cbz	r0, 12662 <sym_JIJASGQH4XEEPZL7D35VQHVPKKLANGDBS2M46NQ+0x76>
   12660:	2001      	movs	r0, #1
   12662:	76a0      	strb	r0, [r4, #26]
   12664:	7e20      	ldrb	r0, [r4, #24]
   12666:	b910      	cbnz	r0, 1266e <sym_JIJASGQH4XEEPZL7D35VQHVPKKLANGDBS2M46NQ+0x82>
   12668:	78a0      	ldrb	r0, [r4, #2]
   1266a:	0740      	lsls	r0, r0, #29
   1266c:	d506      	bpl.n	1267c <sym_JIJASGQH4XEEPZL7D35VQHVPKKLANGDBS2M46NQ+0x90>
   1266e:	f894 004f 	ldrb.w	r0, [r4, #79]	; 0x4f
   12672:	f104 0150 	add.w	r1, r4, #80	; 0x50
   12676:	f006 ff38 	bl	194ea <sym_QW6JOH7RCJIC2YFNJEURX5QNB5EIQT646EHIWEA>
   1267a:	7660      	strb	r0, [r4, #25]
   1267c:	2500      	movs	r5, #0
   1267e:	6425      	str	r5, [r4, #64]	; 0x40
   12680:	f005 fbaa 	bl	17dd8 <sym_KN3Y3AMHXOHKS2EMALWM5VNLRDL2MPKHIP6XPDA>
   12684:	6460      	str	r0, [r4, #68]	; 0x44
   12686:	2100      	movs	r1, #0
   12688:	4620      	mov	r0, r4
   1268a:	f007 fdc9 	bl	1a220 <sym_H6NC6L6VJY74V6C72Y6E5P4HGSZIVJQXMUOQZ5Y+0x8e>
   1268e:	f884 5056 	strb.w	r5, [r4, #86]	; 0x56
   12692:	78a0      	ldrb	r0, [r4, #2]
   12694:	0740      	lsls	r0, r0, #29
   12696:	d508      	bpl.n	126aa <sym_JIJASGQH4XEEPZL7D35VQHVPKKLANGDBS2M46NQ+0xbe>
   12698:	7e20      	ldrb	r0, [r4, #24]
   1269a:	2800      	cmp	r0, #0
   1269c:	d005      	beq.n	126aa <sym_JIJASGQH4XEEPZL7D35VQHVPKKLANGDBS2M46NQ+0xbe>
   1269e:	4620      	mov	r0, r4
   126a0:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
   126a4:	2100      	movs	r1, #0
   126a6:	f000 bdff 	b.w	132a8 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x65c>
   126aa:	bd70      	pop	{r4, r5, r6, pc}

000126ac <sym_J4NWMRMCG7RYO342PTMJRJ2HQEKT7SCETMBVQDA>:
   126ac:	b508      	push	{r3, lr}
   126ae:	f890 2094 	ldrb.w	r2, [r0, #148]	; 0x94
   126b2:	f88d 2000 	strb.w	r2, [sp]
   126b6:	9a00      	ldr	r2, [sp, #0]
   126b8:	9200      	str	r2, [sp, #0]
   126ba:	f89d 3000 	ldrb.w	r3, [sp]
   126be:	2200      	movs	r2, #0
   126c0:	b163      	cbz	r3, 126dc <sym_J4NWMRMCG7RYO342PTMJRJ2HQEKT7SCETMBVQDA+0x30>
   126c2:	704a      	strb	r2, [r1, #1]
   126c4:	2317      	movs	r3, #23
   126c6:	700b      	strb	r3, [r1, #0]
   126c8:	f850 3f95 	ldr.w	r3, [r0, #149]!
   126cc:	604b      	str	r3, [r1, #4]
   126ce:	6843      	ldr	r3, [r0, #4]
   126d0:	608b      	str	r3, [r1, #8]
   126d2:	7a03      	ldrb	r3, [r0, #8]
   126d4:	730b      	strb	r3, [r1, #12]
   126d6:	f800 2c01 	strb.w	r2, [r0, #-1]
   126da:	e03b      	b.n	12754 <sym_J4NWMRMCG7RYO342PTMJRJ2HQEKT7SCETMBVQDA+0xa8>
   126dc:	f890 308e 	ldrb.w	r3, [r0, #142]	; 0x8e
   126e0:	f88d 3000 	strb.w	r3, [sp]
   126e4:	9b00      	ldr	r3, [sp, #0]
   126e6:	9300      	str	r3, [sp, #0]
   126e8:	f89d 3000 	ldrb.w	r3, [sp]
   126ec:	b143      	cbz	r3, 12700 <sym_J4NWMRMCG7RYO342PTMJRJ2HQEKT7SCETMBVQDA+0x54>
   126ee:	704a      	strb	r2, [r1, #1]
   126f0:	2305      	movs	r3, #5
   126f2:	700b      	strb	r3, [r1, #0]
   126f4:	f8d0 3090 	ldr.w	r3, [r0, #144]	; 0x90
   126f8:	604b      	str	r3, [r1, #4]
   126fa:	f880 208e 	strb.w	r2, [r0, #142]	; 0x8e
   126fe:	e029      	b.n	12754 <sym_J4NWMRMCG7RYO342PTMJRJ2HQEKT7SCETMBVQDA+0xa8>
   12700:	f890 3064 	ldrb.w	r3, [r0, #100]	; 0x64
   12704:	f88d 3000 	strb.w	r3, [sp]
   12708:	9b00      	ldr	r3, [sp, #0]
   1270a:	9300      	str	r3, [sp, #0]
   1270c:	f89d 3000 	ldrb.w	r3, [sp]
   12710:	b11b      	cbz	r3, 1271a <sym_J4NWMRMCG7RYO342PTMJRJ2HQEKT7SCETMBVQDA+0x6e>
   12712:	bf00      	nop
   12714:	f007 fd5b 	bl	1a1ce <sym_H6NC6L6VJY74V6C72Y6E5P4HGSZIVJQXMUOQZ5Y+0x3c>
   12718:	e01c      	b.n	12754 <sym_J4NWMRMCG7RYO342PTMJRJ2HQEKT7SCETMBVQDA+0xa8>
   1271a:	f890 3086 	ldrb.w	r3, [r0, #134]	; 0x86
   1271e:	f88d 3000 	strb.w	r3, [sp]
   12722:	9b00      	ldr	r3, [sp, #0]
   12724:	9300      	str	r3, [sp, #0]
   12726:	f89d 3000 	ldrb.w	r3, [sp]
   1272a:	b1ab      	cbz	r3, 12758 <sym_J4NWMRMCG7RYO342PTMJRJ2HQEKT7SCETMBVQDA+0xac>
   1272c:	f890 3064 	ldrb.w	r3, [r0, #100]	; 0x64
   12730:	f88d 3000 	strb.w	r3, [sp]
   12734:	9b00      	ldr	r3, [sp, #0]
   12736:	9300      	str	r3, [sp, #0]
   12738:	f89d 3000 	ldrb.w	r3, [sp]
   1273c:	2b00      	cmp	r3, #0
   1273e:	d1e9      	bne.n	12714 <sym_J4NWMRMCG7RYO342PTMJRJ2HQEKT7SCETMBVQDA+0x68>
   12740:	704a      	strb	r2, [r1, #1]
   12742:	2314      	movs	r3, #20
   12744:	700b      	strb	r3, [r1, #0]
   12746:	f850 3f88 	ldr.w	r3, [r0, #136]!
   1274a:	604b      	str	r3, [r1, #4]
   1274c:	8883      	ldrh	r3, [r0, #4]
   1274e:	810b      	strh	r3, [r1, #8]
   12750:	f800 2c02 	strb.w	r2, [r0, #-2]
   12754:	2001      	movs	r0, #1
   12756:	bd08      	pop	{r3, pc}
   12758:	2000      	movs	r0, #0
   1275a:	bd08      	pop	{r3, pc}

0001275c <sym_L2IWXNCKXJIQJRTEIIW7HGFEPJAQM34TKD2GOIA>:
   1275c:	b530      	push	{r4, r5, lr}
   1275e:	460c      	mov	r4, r1
   12760:	b08d      	sub	sp, #52	; 0x34
   12762:	4605      	mov	r5, r0
   12764:	4601      	mov	r1, r0
   12766:	2220      	movs	r2, #32
   12768:	a802      	add	r0, sp, #8
   1276a:	f005 fcaa 	bl	180c2 <sym_DQONLUECJTIEYFOFJXXAPJO4POIAJKJNKBGVN5A>
   1276e:	a80a      	add	r0, sp, #40	; 0x28
   12770:	f007 fe03 	bl	1a37a <sym_32MURW7CSXICOYPMCVOPRARLMRLK4UASNCF4JWQ>
   12774:	7aa0      	ldrb	r0, [r4, #10]
   12776:	f88d 0018 	strb.w	r0, [sp, #24]
   1277a:	7820      	ldrb	r0, [r4, #0]
   1277c:	f88d 0008 	strb.w	r0, [sp, #8]
   12780:	f8b4 0001 	ldrh.w	r0, [r4, #1]
   12784:	f8ad 0000 	strh.w	r0, [sp]
   12788:	f89d 0000 	ldrb.w	r0, [sp]
   1278c:	f000 0101 	and.w	r1, r0, #1
   12790:	f3c0 0240 	ubfx	r2, r0, #1, #1
   12794:	ea41 0142 	orr.w	r1, r1, r2, lsl #1
   12798:	f3c0 0280 	ubfx	r2, r0, #2, #1
   1279c:	ea41 0182 	orr.w	r1, r1, r2, lsl #2
   127a0:	f3c0 02c0 	ubfx	r2, r0, #3, #1
   127a4:	ea41 01c2 	orr.w	r1, r1, r2, lsl #3
   127a8:	f3c0 1200 	ubfx	r2, r0, #4, #1
   127ac:	ea41 1102 	orr.w	r1, r1, r2, lsl #4
   127b0:	f3c0 1240 	ubfx	r2, r0, #5, #1
   127b4:	ea41 1142 	orr.w	r1, r1, r2, lsl #5
   127b8:	f3c0 1080 	ubfx	r0, r0, #6, #1
   127bc:	ea41 1080 	orr.w	r0, r1, r0, lsl #6
   127c0:	f8ad 000a 	strh.w	r0, [sp, #10]
   127c4:	7d20      	ldrb	r0, [r4, #20]
   127c6:	2801      	cmp	r0, #1
   127c8:	d006      	beq.n	127d8 <sym_L2IWXNCKXJIQJRTEIIW7HGFEPJAQM34TKD2GOIA+0x7c>
   127ca:	2802      	cmp	r0, #2
   127cc:	d004      	beq.n	127d8 <sym_L2IWXNCKXJIQJRTEIIW7HGFEPJAQM34TKD2GOIA+0x7c>
   127ce:	f240 2175 	movw	r1, #629	; 0x275
   127d2:	2006      	movs	r0, #6
   127d4:	f7fd fc06 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   127d8:	f88d 000c 	strb.w	r0, [sp, #12]
   127dc:	7a61      	ldrb	r1, [r4, #9]
   127de:	a80a      	add	r0, sp, #40	; 0x28
   127e0:	f007 fdb2 	bl	1a348 <sym_YZ554N3225FHWC7CK3UNRUMI3O4SGFLKXVRCFXA>
   127e4:	7d20      	ldrb	r0, [r4, #20]
   127e6:	2101      	movs	r1, #1
   127e8:	2802      	cmp	r0, #2
   127ea:	d102      	bne.n	127f2 <sym_L2IWXNCKXJIQJRTEIIW7HGFEPJAQM34TKD2GOIA+0x96>
   127ec:	7d60      	ldrb	r0, [r4, #21]
   127ee:	1c40      	adds	r0, r0, #1
   127f0:	b2c1      	uxtb	r1, r0
   127f2:	7ea0      	ldrb	r0, [r4, #26]
   127f4:	1c40      	adds	r0, r0, #1
   127f6:	b2c2      	uxtb	r2, r0
   127f8:	a80a      	add	r0, sp, #40	; 0x28
   127fa:	f007 fd6c 	bl	1a2d6 <sym_XD3FX5TVO57NBJG4QV33FUOBCL7SNGB4OOT7C3Y>
   127fe:	f8bd 000a 	ldrh.w	r0, [sp, #10]
   12802:	0700      	lsls	r0, r0, #28
   12804:	d501      	bpl.n	1280a <sym_L2IWXNCKXJIQJRTEIIW7HGFEPJAQM34TKD2GOIA+0xae>
   12806:	2000      	movs	r0, #0
   12808:	e020      	b.n	1284c <sym_L2IWXNCKXJIQJRTEIIW7HGFEPJAQM34TKD2GOIA+0xf0>
   1280a:	a80a      	add	r0, sp, #40	; 0x28
   1280c:	f007 fd75 	bl	1a2fa <sym_STP6UONGXHZIIGYZLLHSWZFO5DU7227CCUKBTDQ>
   12810:	f8bd 100a 	ldrh.w	r1, [sp, #10]
   12814:	2228      	movs	r2, #40	; 0x28
   12816:	f000 fded 	bl	133f4 <sym_6FVWF5AWPR7EN7BPHS4APSIUXYFZQTTZCMRDKPY>
   1281a:	f240 2171 	movw	r1, #625	; 0x271
   1281e:	f200 20d5 	addw	r0, r0, #725	; 0x2d5
   12822:	fbb0 f0f1 	udiv	r0, r0, r1
   12826:	4348      	muls	r0, r1
   12828:	f8d4 1002 	ldr.w	r1, [r4, #2]
   1282c:	f240 2371 	movw	r3, #625	; 0x271
   12830:	0a0a      	lsrs	r2, r1, #8
   12832:	f240 2171 	movw	r1, #625	; 0x271
   12836:	434a      	muls	r2, r1
   12838:	f8d4 1005 	ldr.w	r1, [r4, #5]
   1283c:	0a09      	lsrs	r1, r1, #8
   1283e:	4359      	muls	r1, r3
   12840:	4290      	cmp	r0, r2
   12842:	d801      	bhi.n	12848 <sym_L2IWXNCKXJIQJRTEIIW7HGFEPJAQM34TKD2GOIA+0xec>
   12844:	9204      	str	r2, [sp, #16]
   12846:	e004      	b.n	12852 <sym_L2IWXNCKXJIQJRTEIIW7HGFEPJAQM34TKD2GOIA+0xf6>
   12848:	4288      	cmp	r0, r1
   1284a:	d801      	bhi.n	12850 <sym_L2IWXNCKXJIQJRTEIIW7HGFEPJAQM34TKD2GOIA+0xf4>
   1284c:	9004      	str	r0, [sp, #16]
   1284e:	e000      	b.n	12852 <sym_L2IWXNCKXJIQJRTEIIW7HGFEPJAQM34TKD2GOIA+0xf6>
   12850:	9104      	str	r1, [sp, #16]
   12852:	7ca0      	ldrb	r0, [r4, #18]
   12854:	f88d 0017 	strb.w	r0, [sp, #23]
   12858:	7e20      	ldrb	r0, [r4, #24]
   1285a:	2801      	cmp	r0, #1
   1285c:	d000      	beq.n	12860 <sym_L2IWXNCKXJIQJRTEIIW7HGFEPJAQM34TKD2GOIA+0x104>
   1285e:	2000      	movs	r0, #0
   12860:	f88d 0014 	strb.w	r0, [sp, #20]
   12864:	6ae8      	ldr	r0, [r5, #44]	; 0x2c
   12866:	f006 fcfe 	bl	19266 <sym_RIJIFYF46ZRKFDPA3GKV7WCH2VGEUEP6MVN4JFI>
   1286a:	6ae8      	ldr	r0, [r5, #44]	; 0x2c
   1286c:	f006 fd9e 	bl	193ac <sym_MJFFFAJVV3IQTOJK6UL2575XXGCEKTIIFXD5MAQ>
   12870:	2220      	movs	r2, #32
   12872:	a902      	add	r1, sp, #8
   12874:	4628      	mov	r0, r5
   12876:	f005 fc24 	bl	180c2 <sym_DQONLUECJTIEYFOFJXXAPJO4POIAJKJNKBGVN5A>
   1287a:	980a      	ldr	r0, [sp, #40]	; 0x28
   1287c:	6228      	str	r0, [r5, #32]
   1287e:	f8bd 002c 	ldrh.w	r0, [sp, #44]	; 0x2c
   12882:	84a8      	strh	r0, [r5, #36]	; 0x24
   12884:	7ae0      	ldrb	r0, [r4, #11]
   12886:	b168      	cbz	r0, 128a4 <sym_L2IWXNCKXJIQJRTEIIW7HGFEPJAQM34TKD2GOIA+0x148>
   12888:	2802      	cmp	r0, #2
   1288a:	d00b      	beq.n	128a4 <sym_L2IWXNCKXJIQJRTEIIW7HGFEPJAQM34TKD2GOIA+0x148>
   1288c:	f05f 0001 	movs.w	r0, #1
   12890:	f885 004f 	strb.w	r0, [r5, #79]	; 0x4f
   12894:	68e0      	ldr	r0, [r4, #12]
   12896:	6528      	str	r0, [r5, #80]	; 0x50
   12898:	8a20      	ldrh	r0, [r4, #16]
   1289a:	f8a5 0054 	strh.w	r0, [r5, #84]	; 0x54
   1289e:	b00d      	add	sp, #52	; 0x34
   128a0:	2000      	movs	r0, #0
   128a2:	bd30      	pop	{r4, r5, pc}
   128a4:	2000      	movs	r0, #0
   128a6:	e7f3      	b.n	12890 <sym_L2IWXNCKXJIQJRTEIIW7HGFEPJAQM34TKD2GOIA+0x134>

000128a8 <sym_KC3JIKE7HTERE3Q3BXMRUIDPAENUZKVBIDO6ODY>:
   128a8:	4a0a      	ldr	r2, [pc, #40]	; (128d4 <sym_KC3JIKE7HTERE3Q3BXMRUIDPAENUZKVBIDO6ODY+0x2c>)
   128aa:	b510      	push	{r4, lr}
   128ac:	2100      	movs	r1, #0
   128ae:	7011      	strb	r1, [r2, #0]
   128b0:	4c09      	ldr	r4, [pc, #36]	; (128d8 <sym_KC3JIKE7HTERE3Q3BXMRUIDPAENUZKVBIDO6ODY+0x30>)
   128b2:	6060      	str	r0, [r4, #4]
   128b4:	f000 f822 	bl	128fc <sym_4WIY2RAFLOZNOS4O5BEVWEYHIO3NV42IZ2Q2NWQ>
   128b8:	b110      	cbz	r0, 128c0 <sym_KC3JIKE7HTERE3Q3BXMRUIDPAENUZKVBIDO6ODY+0x18>
   128ba:	f240 312a 	movw	r1, #810	; 0x32a
   128be:	e004      	b.n	128ca <sym_KC3JIKE7HTERE3Q3BXMRUIDPAENUZKVBIDO6ODY+0x22>
   128c0:	68a0      	ldr	r0, [r4, #8]
   128c2:	2800      	cmp	r0, #0
   128c4:	d104      	bne.n	128d0 <sym_KC3JIKE7HTERE3Q3BXMRUIDPAENUZKVBIDO6ODY+0x28>
   128c6:	f240 312d 	movw	r1, #813	; 0x32d
   128ca:	202d      	movs	r0, #45	; 0x2d
   128cc:	f7fd fb8a 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   128d0:	bd10      	pop	{r4, pc}
   128d2:	0000      	.short	0x0000
   128d4:	20000fa4 	.word	0x20000fa4
   128d8:	200000f0 	.word	0x200000f0

000128dc <sym_BPVIPCP3IMFHHNRASYWRUQPTOXIXQGWP3DTKXWI>:
   128dc:	4902      	ldr	r1, [pc, #8]	; (128e8 <sym_BPVIPCP3IMFHHNRASYWRUQPTOXIXQGWP3DTKXWI+0xc>)
   128de:	4801      	ldr	r0, [pc, #4]	; (128e4 <sym_BPVIPCP3IMFHHNRASYWRUQPTOXIXQGWP3DTKXWI+0x8>)
   128e0:	6088      	str	r0, [r1, #8]
   128e2:	4770      	bx	lr
   128e4:	000133dc 	.word	0x000133dc
   128e8:	200000f0 	.word	0x200000f0

000128ec <sym_PY5KUATPBYOYJBMP6H7AVRPSEO7BZX2JK524O6A>:
   128ec:	4902      	ldr	r1, [pc, #8]	; (128f8 <sym_PY5KUATPBYOYJBMP6H7AVRPSEO7BZX2JK524O6A+0xc>)
   128ee:	6008      	str	r0, [r1, #0]
   128f0:	6889      	ldr	r1, [r1, #8]
   128f2:	6809      	ldr	r1, [r1, #0]
   128f4:	4708      	bx	r1
   128f6:	0000      	.short	0x0000
   128f8:	200000f0 	.word	0x200000f0

000128fc <sym_4WIY2RAFLOZNOS4O5BEVWEYHIO3NV42IZ2Q2NWQ>:
   128fc:	4808      	ldr	r0, [pc, #32]	; (12920 <sym_4WIY2RAFLOZNOS4O5BEVWEYHIO3NV42IZ2Q2NWQ+0x24>)
   128fe:	b510      	push	{r4, lr}
   12900:	7800      	ldrb	r0, [r0, #0]
   12902:	b110      	cbz	r0, 1290a <sym_4WIY2RAFLOZNOS4O5BEVWEYHIO3NV42IZ2Q2NWQ+0xe>
   12904:	240c      	movs	r4, #12
   12906:	4620      	mov	r0, r4
   12908:	bd10      	pop	{r4, pc}
   1290a:	2400      	movs	r4, #0
   1290c:	2218      	movs	r2, #24
   1290e:	4621      	mov	r1, r4
   12910:	4803      	ldr	r0, [pc, #12]	; (12920 <sym_4WIY2RAFLOZNOS4O5BEVWEYHIO3NV42IZ2Q2NWQ+0x24>)
   12912:	f005 fc50 	bl	181b6 <sym_VSILKYHVQ5DVF6LG5MG267DQVA3A2XZQ6FSCLXA>
   12916:	f004 f937 	bl	16b88 <sym_PCLF3MATC3G3MYGRPG4ATMGCS6N4B7M5CSF2C2Y>
   1291a:	f003 ff19 	bl	16750 <sym_5DEPI2OGSPXE5OVFBPVFPSPYPRYUQ54QVVXIKNI>
   1291e:	e7f2      	b.n	12906 <sym_4WIY2RAFLOZNOS4O5BEVWEYHIO3NV42IZ2Q2NWQ+0xa>
   12920:	20000fa4 	.word	0x20000fa4

00012924 <sym_ID5SI2L6AD3KMSDR72YSJZGVIA6DEYQZU7WJI3I>:
   12924:	4904      	ldr	r1, [pc, #16]	; (12938 <sym_ID5SI2L6AD3KMSDR72YSJZGVIA6DEYQZU7WJI3I+0x14>)
   12926:	b510      	push	{r4, lr}
   12928:	7809      	ldrb	r1, [r1, #0]
   1292a:	2901      	cmp	r1, #1
   1292c:	d101      	bne.n	12932 <sym_ID5SI2L6AD3KMSDR72YSJZGVIA6DEYQZU7WJI3I+0xe>
   1292e:	f000 fb83 	bl	13038 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x3ec>
   12932:	2000      	movs	r0, #0
   12934:	bd10      	pop	{r4, pc}
   12936:	0000      	.short	0x0000
   12938:	20000fa4 	.word	0x20000fa4

0001293c <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY>:
   1293c:	4902      	ldr	r1, [pc, #8]	; (12948 <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0xc>)
   1293e:	4801      	ldr	r0, [pc, #4]	; (12944 <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0x8>)
   12940:	6008      	str	r0, [r1, #0]
   12942:	4770      	bx	lr
   12944:	00013185 	.word	0x00013185
   12948:	200000fc 	.word	0x200000fc
   1294c:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   12950:	000f      	movs	r7, r1
   12952:	4604      	mov	r4, r0
   12954:	d023      	beq.n	1299e <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0x62>
   12956:	f104 0020 	add.w	r0, r4, #32
   1295a:	4605      	mov	r5, r0
   1295c:	f007 fcf6 	bl	1a34c <sym_4U2RA2RXIRU5BEMWZTHT3PETZK6K62P2SAJVWHA>
   12960:	b9b0      	cbnz	r0, 12990 <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0x54>
   12962:	78a0      	ldrb	r0, [r4, #2]
   12964:	f3c0 00c0 	ubfx	r0, r0, #3, #1
   12968:	b350      	cbz	r0, 129c0 <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0x84>
   1296a:	4628      	mov	r0, r5
   1296c:	f007 fcc5 	bl	1a2fa <sym_STP6UONGXHZIIGYZLLHSWZFO5DU7227CCUKBTDQ>
   12970:	4606      	mov	r6, r0
   12972:	4628      	mov	r0, r5
   12974:	f007 fcea 	bl	1a34c <sym_4U2RA2RXIRU5BEMWZTHT3PETZK6K62P2SAJVWHA>
   12978:	1a30      	subs	r0, r6, r0
   1297a:	b2c0      	uxtb	r0, r0
   1297c:	f007 fd3b 	bl	1a3f6 <sym_FHGEXLJ7V34P3MECCDTYSDEZTZHFJ2TXYSFZQHQ>
   12980:	4601      	mov	r1, r0
   12982:	4835      	ldr	r0, [pc, #212]	; (12a58 <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0x11c>)
   12984:	6842      	ldr	r2, [r0, #4]
   12986:	4411      	add	r1, r2
   12988:	6041      	str	r1, [r0, #4]
   1298a:	4628      	mov	r0, r5
   1298c:	f007 fcfc 	bl	1a388 <sym_UEYPZKGY2IF5BYZ3QDKK4LEW4OE7NWR6DH5XEZQ>
   12990:	4628      	mov	r0, r5
   12992:	f007 fcbe 	bl	1a312 <sym_GDGGQ5EKEJNZBTEWASFQ2LUSL4TZGNXHPD7BDQA>
   12996:	4601      	mov	r1, r0
   12998:	4620      	mov	r0, r4
   1299a:	f007 fc7d 	bl	1a298 <sym_H6NC6L6VJY74V6C72Y6E5P4HGSZIVJQXMUOQZ5Y+0x106>
   1299e:	4d2f      	ldr	r5, [pc, #188]	; (12a5c <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0x120>)
   129a0:	f894 6056 	ldrb.w	r6, [r4, #86]	; 0x56
   129a4:	2100      	movs	r1, #0
   129a6:	6868      	ldr	r0, [r5, #4]
   129a8:	8001      	strh	r1, [r0, #0]
   129aa:	f007 fc8b 	bl	1a2c4 <sym_H6NC6L6VJY74V6C72Y6E5P4HGSZIVJQXMUOQZ5Y+0x132>
   129ae:	8860      	ldrh	r0, [r4, #2]
   129b0:	2813      	cmp	r0, #19
   129b2:	d013      	beq.n	129dc <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0xa0>
   129b4:	dc09      	bgt.n	129ca <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0x8e>
   129b6:	2810      	cmp	r0, #16
   129b8:	d036      	beq.n	12a28 <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0xec>
   129ba:	2812      	cmp	r0, #18
   129bc:	d109      	bne.n	129d2 <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0x96>
   129be:	e031      	b.n	12a24 <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0xe8>
   129c0:	4620      	mov	r0, r4
   129c2:	e8bd 41f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, lr}
   129c6:	f000 bb37 	b.w	13038 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x3ec>
   129ca:	2815      	cmp	r0, #21
   129cc:	d00f      	beq.n	129ee <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0xb2>
   129ce:	281d      	cmp	r0, #29
   129d0:	d00d      	beq.n	129ee <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0xb2>
   129d2:	f240 6171 	movw	r1, #1649	; 0x671
   129d6:	202d      	movs	r0, #45	; 0x2d
   129d8:	f7fd fb04 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   129dc:	2100      	movs	r1, #0
   129de:	6868      	ldr	r0, [r5, #4]
   129e0:	f007 f8f6 	bl	19bd0 <sym_ZJ2REXSOGBKJNHWVNXMDASZYI7CQBWWO2RMVAVY>
   129e4:	2101      	movs	r1, #1
   129e6:	6868      	ldr	r0, [r5, #4]
   129e8:	f007 fc6c 	bl	1a2c4 <sym_H6NC6L6VJY74V6C72Y6E5P4HGSZIVJQXMUOQZ5Y+0x132>
   129ec:	e020      	b.n	12a30 <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0xf4>
   129ee:	2101      	movs	r1, #1
   129f0:	6868      	ldr	r0, [r5, #4]
   129f2:	f007 f8ed 	bl	19bd0 <sym_ZJ2REXSOGBKJNHWVNXMDASZYI7CQBWWO2RMVAVY>
   129f6:	2101      	movs	r1, #1
   129f8:	6868      	ldr	r0, [r5, #4]
   129fa:	f007 fc63 	bl	1a2c4 <sym_H6NC6L6VJY74V6C72Y6E5P4HGSZIVJQXMUOQZ5Y+0x132>
   129fe:	b136      	cbz	r6, 12a0e <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0xd2>
   12a00:	f104 0157 	add.w	r1, r4, #87	; 0x57
   12a04:	6868      	ldr	r0, [r5, #4]
   12a06:	f007 f8fe 	bl	19c06 <sym_6GC7CC2BUFLCMQVOZDACHKZEET4WUCXSLEMHSCY>
   12a0a:	2101      	movs	r1, #1
   12a0c:	e006      	b.n	12a1c <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0xe0>
   12a0e:	f104 0150 	add.w	r1, r4, #80	; 0x50
   12a12:	6868      	ldr	r0, [r5, #4]
   12a14:	f007 f8f7 	bl	19c06 <sym_6GC7CC2BUFLCMQVOZDACHKZEET4WUCXSLEMHSCY>
   12a18:	f894 104f 	ldrb.w	r1, [r4, #79]	; 0x4f
   12a1c:	6868      	ldr	r0, [r5, #4]
   12a1e:	f007 f8f8 	bl	19c12 <sym_6FJEZEEBKMCAKI6FMPGNQ7TUXYDPYPEPSNJFOMQ>
   12a22:	e005      	b.n	12a30 <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0xf4>
   12a24:	2106      	movs	r1, #6
   12a26:	e000      	b.n	12a2a <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0xee>
   12a28:	2102      	movs	r1, #2
   12a2a:	6868      	ldr	r0, [r5, #4]
   12a2c:	f007 f8d0 	bl	19bd0 <sym_ZJ2REXSOGBKJNHWVNXMDASZYI7CQBWWO2RMVAVY>
   12a30:	4620      	mov	r0, r4
   12a32:	f000 fcaf 	bl	13394 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x748>
   12a36:	8860      	ldrh	r0, [r4, #2]
   12a38:	281d      	cmp	r0, #29
   12a3a:	d006      	beq.n	12a4a <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0x10e>
   12a3c:	2815      	cmp	r0, #21
   12a3e:	d004      	beq.n	12a4a <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0x10e>
   12a40:	8ea2      	ldrh	r2, [r4, #52]	; 0x34
   12a42:	6b21      	ldr	r1, [r4, #48]	; 0x30
   12a44:	6868      	ldr	r0, [r5, #4]
   12a46:	f007 f8b3 	bl	19bb0 <sym_AIYUY22PH5CFYGFYYYX5TRDP6GAU3UXOBISKF2I>
   12a4a:	4639      	mov	r1, r7
   12a4c:	4620      	mov	r0, r4
   12a4e:	e8bd 41f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, lr}
   12a52:	f000 b9e7 	b.w	12e24 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x1d8>
   12a56:	0000      	.short	0x0000
   12a58:	20000fa4 	.word	0x20000fa4
   12a5c:	200000f0 	.word	0x200000f0
   12a60:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   12a64:	4d2e      	ldr	r5, [pc, #184]	; (12b20 <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0x1e4>)
   12a66:	4607      	mov	r7, r0
   12a68:	7828      	ldrb	r0, [r5, #0]
   12a6a:	2802      	cmp	r0, #2
   12a6c:	d005      	beq.n	12a7a <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0x13e>
   12a6e:	7828      	ldrb	r0, [r5, #0]
   12a70:	2803      	cmp	r0, #3
   12a72:	d002      	beq.n	12a7a <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0x13e>
   12a74:	f44f 6150 	mov.w	r1, #3328	; 0xd00
   12a78:	e029      	b.n	12ace <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0x192>
   12a7a:	4c2a      	ldr	r4, [pc, #168]	; (12b24 <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0x1e8>)
   12a7c:	6820      	ldr	r0, [r4, #0]
   12a7e:	7b01      	ldrb	r1, [r0, #12]
   12a80:	b109      	cbz	r1, 12a86 <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0x14a>
   12a82:	f007 fc14 	bl	1a2ae <sym_H6NC6L6VJY74V6C72Y6E5P4HGSZIVJQXMUOQZ5Y+0x11c>
   12a86:	6860      	ldr	r0, [r4, #4]
   12a88:	f04f 0800 	mov.w	r8, #0
   12a8c:	7802      	ldrb	r2, [r0, #0]
   12a8e:	f002 060f 	and.w	r6, r2, #15
   12a92:	b357      	cbz	r7, 12aea <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0x1ae>
   12a94:	6821      	ldr	r1, [r4, #0]
   12a96:	f101 0349 	add.w	r3, r1, #73	; 0x49
   12a9a:	f891 1048 	ldrb.w	r1, [r1, #72]	; 0x48
   12a9e:	ebb1 1fd2 	cmp.w	r1, r2, lsr #7
   12aa2:	d122      	bne.n	12aea <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0x1ae>
   12aa4:	2206      	movs	r2, #6
   12aa6:	4619      	mov	r1, r3
   12aa8:	3009      	adds	r0, #9
   12aaa:	f005 faf8 	bl	1809e <sym_K65IFLJONCLHPD5IQ4ENBWGA3PVI55UHZKOIVDQ>
   12aae:	b9e0      	cbnz	r0, 12aea <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0x1ae>
   12ab0:	4641      	mov	r1, r8
   12ab2:	6860      	ldr	r0, [r4, #4]
   12ab4:	f007 f86c 	bl	19b90 <sym_7FFMBSDVRVZYH5XO7CHX33376QMIMFS3BQD5N7I>
   12ab8:	b1b8      	cbz	r0, 12aea <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0x1ae>
   12aba:	782a      	ldrb	r2, [r5, #0]
   12abc:	6820      	ldr	r0, [r4, #0]
   12abe:	4631      	mov	r1, r6
   12ac0:	2a02      	cmp	r2, #2
   12ac2:	d007      	beq.n	12ad4 <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0x198>
   12ac4:	782a      	ldrb	r2, [r5, #0]
   12ac6:	2a03      	cmp	r2, #3
   12ac8:	d004      	beq.n	12ad4 <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0x198>
   12aca:	f640 41d9 	movw	r1, #3289	; 0xcd9
   12ace:	202d      	movs	r0, #45	; 0x2d
   12ad0:	f7fd fa88 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   12ad4:	68a2      	ldr	r2, [r4, #8]
   12ad6:	782b      	ldrb	r3, [r5, #0]
   12ad8:	6952      	ldr	r2, [r2, #20]
   12ada:	f06f 0607 	mvn.w	r6, #7
   12ade:	eb06 0383 	add.w	r3, r6, r3, lsl #2
   12ae2:	58d2      	ldr	r2, [r2, r3]
   12ae4:	4790      	blx	r2
   12ae6:	4606      	mov	r6, r0
   12ae8:	e000      	b.n	12aec <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0x1b0>
   12aea:	2601      	movs	r6, #1
   12aec:	7ba8      	ldrb	r0, [r5, #14]
   12aee:	b118      	cbz	r0, 12af8 <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0x1bc>
   12af0:	f004 f84a 	bl	16b88 <sym_PCLF3MATC3G3MYGRPG4ATMGCS6N4B7M5CSF2C2Y>
   12af4:	f003 fe2c 	bl	16750 <sym_5DEPI2OGSPXE5OVFBPVFPSPYPRYUQ54QVVXIKNI>
   12af8:	2e00      	cmp	r6, #0
   12afa:	d00f      	beq.n	12b1c <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0x1e0>
   12afc:	6820      	ldr	r0, [r4, #0]
   12afe:	f007 fc90 	bl	1a422 <sym_3ZNIOFG7XMX7YS4WHN4QVNG3AVWN2QVSTHUWDXQ>
   12b02:	b130      	cbz	r0, 12b12 <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0x1d6>
   12b04:	f004 f864 	bl	16bd0 <sym_A5S3P57NWYYY5XJWBYERU6H4QSVP5TCTU7HKA5Y>
   12b08:	68a0      	ldr	r0, [r4, #8]
   12b0a:	6880      	ldr	r0, [r0, #8]
   12b0c:	e8bd 41f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, lr}
   12b10:	4700      	bx	r0
   12b12:	6820      	ldr	r0, [r4, #0]
   12b14:	e8bd 41f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, lr}
   12b18:	f000 ba8e 	b.w	13038 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x3ec>
   12b1c:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
   12b20:	20000fa4 	.word	0x20000fa4
   12b24:	200000f0 	.word	0x200000f0
   12b28:	b510      	push	{r4, lr}
   12b2a:	2903      	cmp	r1, #3
   12b2c:	d002      	beq.n	12b34 <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0x1f8>
   12b2e:	2905      	cmp	r1, #5
   12b30:	d10a      	bne.n	12b48 <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0x20c>
   12b32:	e002      	b.n	12b3a <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0x1fe>
   12b34:	f000 fb7e 	bl	13234 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x5e8>
   12b38:	e003      	b.n	12b42 <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0x206>
   12b3a:	4904      	ldr	r1, [pc, #16]	; (12b4c <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0x210>)
   12b3c:	6809      	ldr	r1, [r1, #0]
   12b3e:	b109      	cbz	r1, 12b44 <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0x208>
   12b40:	4788      	blx	r1
   12b42:	b108      	cbz	r0, 12b48 <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0x20c>
   12b44:	2000      	movs	r0, #0
   12b46:	bd10      	pop	{r4, pc}
   12b48:	2001      	movs	r0, #1
   12b4a:	bd10      	pop	{r4, pc}
   12b4c:	200000fc 	.word	0x200000fc
   12b50:	4a09      	ldr	r2, [pc, #36]	; (12b78 <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0x23c>)
   12b52:	0003      	movs	r3, r0
   12b54:	6810      	ldr	r0, [r2, #0]
   12b56:	d001      	beq.n	12b5c <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0x220>
   12b58:	f000 ba6e 	b.w	13038 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x3ec>
   12b5c:	2900      	cmp	r1, #0
   12b5e:	d009      	beq.n	12b74 <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0x238>
   12b60:	6891      	ldr	r1, [r2, #8]
   12b62:	4a06      	ldr	r2, [pc, #24]	; (12b7c <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0x240>)
   12b64:	6909      	ldr	r1, [r1, #16]
   12b66:	7812      	ldrb	r2, [r2, #0]
   12b68:	f06f 030f 	mvn.w	r3, #15
   12b6c:	eb03 0282 	add.w	r2, r3, r2, lsl #2
   12b70:	5889      	ldr	r1, [r1, r2]
   12b72:	4708      	bx	r1
   12b74:	4770      	bx	lr
   12b76:	0000      	.short	0x0000
   12b78:	200000f0 	.word	0x200000f0
   12b7c:	20000fa4 	.word	0x20000fa4
   12b80:	b570      	push	{r4, r5, r6, lr}
   12b82:	4604      	mov	r4, r0
   12b84:	8840      	ldrh	r0, [r0, #2]
   12b86:	2810      	cmp	r0, #16
   12b88:	d019      	beq.n	12bbe <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0x282>
   12b8a:	4d10      	ldr	r5, [pc, #64]	; (12bcc <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0x290>)
   12b8c:	7ba8      	ldrb	r0, [r5, #14]
   12b8e:	b120      	cbz	r0, 12b9a <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0x25e>
   12b90:	f003 fdfe 	bl	16790 <sym_XCEN5K7VEI2CAO42XW7S3FKM3HKMOCDCUFDX25Y>
   12b94:	2040      	movs	r0, #64	; 0x40
   12b96:	f004 f807 	bl	16ba8 <sym_RXYEX777ZXB2E2DXJWDBCV7AAHWTCHNTLOSENBY>
   12b9a:	480d      	ldr	r0, [pc, #52]	; (12bd0 <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0x294>)
   12b9c:	6840      	ldr	r0, [r0, #4]
   12b9e:	f004 fab1 	bl	17104 <sym_LPFN6QJEOHBT4AP2K7MEYWDZW35U5VHIHXOA54I>
   12ba2:	78a0      	ldrb	r0, [r4, #2]
   12ba4:	0740      	lsls	r0, r0, #29
   12ba6:	d404      	bmi.n	12bb2 <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0x276>
   12ba8:	2100      	movs	r1, #0
   12baa:	7922      	ldrb	r2, [r4, #4]
   12bac:	4608      	mov	r0, r1
   12bae:	f004 fb33 	bl	17218 <sym_MBOR6QO7CTIMBTL5BVPURKFTQFZYFCUOAZ3M43Q>
   12bb2:	2000      	movs	r0, #0
   12bb4:	f004 f948 	bl	16e48 <sym_Y6HXZQJARJ7FDWKGPREPQGRRGDOQMXHDALUK6KY>
   12bb8:	2002      	movs	r0, #2
   12bba:	7028      	strb	r0, [r5, #0]
   12bbc:	bd70      	pop	{r4, r5, r6, pc}
   12bbe:	4620      	mov	r0, r4
   12bc0:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
   12bc4:	2101      	movs	r1, #1
   12bc6:	f7ff bec1 	b.w	1294c <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0x10>
   12bca:	0000      	.short	0x0000
   12bcc:	20000fa4 	.word	0x20000fa4
   12bd0:	200000f0 	.word	0x200000f0
   12bd4:	b510      	push	{r4, lr}
   12bd6:	4c12      	ldr	r4, [pc, #72]	; (12c20 <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0x2e4>)
   12bd8:	6820      	ldr	r0, [r4, #0]
   12bda:	f000 f825 	bl	12c28 <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0x2ec>
   12bde:	6820      	ldr	r0, [r4, #0]
   12be0:	f007 fc1f 	bl	1a422 <sym_3ZNIOFG7XMX7YS4WHN4QVNG3AVWN2QVSTHUWDXQ>
   12be4:	2800      	cmp	r0, #0
   12be6:	6820      	ldr	r0, [r4, #0]
   12be8:	d00b      	beq.n	12c02 <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0x2c6>
   12bea:	490e      	ldr	r1, [pc, #56]	; (12c24 <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0x2e8>)
   12bec:	780a      	ldrb	r2, [r1, #0]
   12bee:	2a02      	cmp	r2, #2
   12bf0:	d00b      	beq.n	12c0a <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0x2ce>
   12bf2:	780a      	ldrb	r2, [r1, #0]
   12bf4:	2a03      	cmp	r2, #3
   12bf6:	d008      	beq.n	12c0a <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0x2ce>
   12bf8:	f640 4107 	movw	r1, #3079	; 0xc07
   12bfc:	202d      	movs	r0, #45	; 0x2d
   12bfe:	f7fd f9f1 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   12c02:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
   12c06:	f000 ba17 	b.w	13038 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x3ec>
   12c0a:	68a2      	ldr	r2, [r4, #8]
   12c0c:	7809      	ldrb	r1, [r1, #0]
   12c0e:	68d2      	ldr	r2, [r2, #12]
   12c10:	f06f 0307 	mvn.w	r3, #7
   12c14:	eb03 0181 	add.w	r1, r3, r1, lsl #2
   12c18:	5851      	ldr	r1, [r2, r1]
   12c1a:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
   12c1e:	4708      	bx	r1
   12c20:	200000f0 	.word	0x200000f0
   12c24:	20000fa4 	.word	0x20000fa4
   12c28:	b510      	push	{r4, lr}
   12c2a:	7b01      	ldrb	r1, [r0, #12]
   12c2c:	b109      	cbz	r1, 12c32 <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0x2f6>
   12c2e:	f007 fb3e 	bl	1a2ae <sym_H6NC6L6VJY74V6C72Y6E5P4HGSZIVJQXMUOQZ5Y+0x11c>
   12c32:	4805      	ldr	r0, [pc, #20]	; (12c48 <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0x30c>)
   12c34:	7b80      	ldrb	r0, [r0, #14]
   12c36:	2800      	cmp	r0, #0
   12c38:	d005      	beq.n	12c46 <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0x30a>
   12c3a:	f003 ffa5 	bl	16b88 <sym_PCLF3MATC3G3MYGRPG4ATMGCS6N4B7M5CSF2C2Y>
   12c3e:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
   12c42:	f003 bd85 	b.w	16750 <sym_5DEPI2OGSPXE5OVFBPVFPSPYPRYUQ54QVVXIKNI>
   12c46:	bd10      	pop	{r4, pc}
   12c48:	20000fa4 	.word	0x20000fa4

00012c4c <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ>:
   12c4c:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
   12c50:	4d59      	ldr	r5, [pc, #356]	; (12db8 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x16c>)
   12c52:	4604      	mov	r4, r0
   12c54:	b088      	sub	sp, #32
   12c56:	7828      	ldrb	r0, [r5, #0]
   12c58:	bbf0      	cbnz	r0, 12cd8 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x8c>
   12c5a:	7820      	ldrb	r0, [r4, #0]
   12c5c:	28ff      	cmp	r0, #255	; 0xff
   12c5e:	d03c      	beq.n	12cda <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x8e>
   12c60:	2600      	movs	r6, #0
   12c62:	81ae      	strh	r6, [r5, #12]
   12c64:	606e      	str	r6, [r5, #4]
   12c66:	706e      	strb	r6, [r5, #1]
   12c68:	70ae      	strb	r6, [r5, #2]
   12c6a:	f884 6061 	strb.w	r6, [r4, #97]	; 0x61
   12c6e:	4b53      	ldr	r3, [pc, #332]	; (12dbc <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x170>)
   12c70:	f8df 814c 	ldr.w	r8, [pc, #332]	; 12dc0 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x174>
   12c74:	cb0f      	ldmia	r3, {r0, r1, r2, r3}
   12c76:	e88d 000f 	stmia.w	sp, {r0, r1, r2, r3}
   12c7a:	f8d8 0008 	ldr.w	r0, [r8, #8]
   12c7e:	6840      	ldr	r0, [r0, #4]
   12c80:	9003      	str	r0, [sp, #12]
   12c82:	4668      	mov	r0, sp
   12c84:	f004 f8b4 	bl	16df0 <sym_YG4UROEKVB7ZBE5TWHLNJHYKSFBTXGBYAX3RXRI>
   12c88:	f004 f9ac 	bl	16fe4 <sym_JQ5GTNCJKXERB3SSKQRXLQOKWJQVRNEOVZZZVXI>
   12c8c:	f004 fc0c 	bl	174a8 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY>
   12c90:	f003 ff7a 	bl	16b88 <sym_PCLF3MATC3G3MYGRPG4ATMGCS6N4B7M5CSF2C2Y>
   12c94:	f003 fd5c 	bl	16750 <sym_5DEPI2OGSPXE5OVFBPVFPSPYPRYUQ54QVVXIKNI>
   12c98:	484a      	ldr	r0, [pc, #296]	; (12dc4 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x178>)
   12c9a:	f004 fafd 	bl	17298 <sym_YLRTPBVG5ROXKOW4KXUYITRUY3FD2MVZW5LF7ZA>
   12c9e:	4847      	ldr	r0, [pc, #284]	; (12dbc <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x170>)
   12ca0:	1f00      	subs	r0, r0, #4
   12ca2:	f004 fb03 	bl	172ac <sym_XD56LJG2JTRU4Q2V7WCY72EI3VTZICA3O4ERV2A>
   12ca6:	f104 0020 	add.w	r0, r4, #32
   12caa:	4607      	mov	r7, r0
   12cac:	f007 fb6c 	bl	1a388 <sym_UEYPZKGY2IF5BYZ3QDKK4LEW4OE7NWR6DH5XEZQ>
   12cb0:	4638      	mov	r0, r7
   12cb2:	f007 fb2e 	bl	1a312 <sym_GDGGQ5EKEJNZBTEWASFQ2LUSL4TZGNXHPD7BDQA>
   12cb6:	4601      	mov	r1, r0
   12cb8:	4620      	mov	r0, r4
   12cba:	f007 faed 	bl	1a298 <sym_H6NC6L6VJY74V6C72Y6E5P4HGSZIVJQXMUOQZ5Y+0x106>
   12cbe:	f994 000e 	ldrsb.w	r0, [r4, #14]
   12cc2:	f004 fa19 	bl	170f8 <sym_HE5JGYEZFIITGQL7PMATDHSORSCK7HJIY5UXOZA>
   12cc6:	7921      	ldrb	r1, [r4, #4]
   12cc8:	2000      	movs	r0, #0
   12cca:	f004 f815 	bl	16cf8 <sym_WJZCKVDJU3WW5NVNH77DPRGYVZQLD372GLDYO6I>
   12cce:	60a8      	str	r0, [r5, #8]
   12cd0:	b138      	cbz	r0, 12ce2 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x96>
   12cd2:	7ea0      	ldrb	r0, [r4, #26]
   12cd4:	b968      	cbnz	r0, 12cf2 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0xa6>
   12cd6:	e007      	b.n	12ce8 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x9c>
   12cd8:	e7ff      	b.n	12cda <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x8e>
   12cda:	200c      	movs	r0, #12
   12cdc:	b008      	add	sp, #32
   12cde:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
   12ce2:	2001      	movs	r0, #1
   12ce4:	7028      	strb	r0, [r5, #0]
   12ce6:	e064      	b.n	12db2 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x166>
   12ce8:	7e20      	ldrb	r0, [r4, #24]
   12cea:	b910      	cbnz	r0, 12cf2 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0xa6>
   12cec:	78a0      	ldrb	r0, [r4, #2]
   12cee:	0740      	lsls	r0, r0, #29
   12cf0:	d52b      	bpl.n	12d4a <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0xfe>
   12cf2:	f005 f871 	bl	17dd8 <sym_KN3Y3AMHXOHKS2EMALWM5VNLRDL2MPKHIP6XPDA>
   12cf6:	4682      	mov	sl, r0
   12cf8:	4651      	mov	r1, sl
   12cfa:	6c60      	ldr	r0, [r4, #68]	; 0x44
   12cfc:	f7fa fdae 	bl	d85c <sym_VDVM4QLBTRUPEGCBUXIK25LH2KVQWBZXHRBYEFY>
   12d00:	f8df 90c4 	ldr.w	r9, [pc, #196]	; 12dc8 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x17c>
   12d04:	4607      	mov	r7, r0
   12d06:	fb90 f1f9 	sdiv	r1, r0, r9
   12d0a:	fb09 7011 	mls	r0, r9, r1, r7
   12d0e:	4241      	negs	r1, r0
   12d10:	4650      	mov	r0, sl
   12d12:	f7fa fd71 	bl	d7f8 <sym_2O2USXABBLL6KC7E5NJFOHR6JLZMSV4AU5ZYH3Q>
   12d16:	6460      	str	r0, [r4, #68]	; 0x44
   12d18:	fb97 f0f9 	sdiv	r0, r7, r9
   12d1c:	6c21      	ldr	r1, [r4, #64]	; 0x40
   12d1e:	4408      	add	r0, r1
   12d20:	6420      	str	r0, [r4, #64]	; 0x40
   12d22:	f7fe ff1f 	bl	11b64 <sym_RHRHCWPUPZHCOID576WBS7QZ2KAUT2GASS2T3QY>
   12d26:	6c21      	ldr	r1, [r4, #64]	; 0x40
   12d28:	4288      	cmp	r0, r1
   12d2a:	d80e      	bhi.n	12d4a <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0xfe>
   12d2c:	e9c4 6a10 	strd	r6, sl, [r4, #64]	; 0x40
   12d30:	2101      	movs	r1, #1
   12d32:	4620      	mov	r0, r4
   12d34:	f007 fa74 	bl	1a220 <sym_H6NC6L6VJY74V6C72Y6E5P4HGSZIVJQXMUOQZ5Y+0x8e>
   12d38:	78a0      	ldrb	r0, [r4, #2]
   12d3a:	0740      	lsls	r0, r0, #29
   12d3c:	d505      	bpl.n	12d4a <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0xfe>
   12d3e:	7e20      	ldrb	r0, [r4, #24]
   12d40:	b118      	cbz	r0, 12d4a <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0xfe>
   12d42:	2101      	movs	r1, #1
   12d44:	4620      	mov	r0, r4
   12d46:	f000 faaf 	bl	132a8 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x65c>
   12d4a:	f104 0130 	add.w	r1, r4, #48	; 0x30
   12d4e:	6ae0      	ldr	r0, [r4, #44]	; 0x2c
   12d50:	f006 fafb 	bl	1934a <sym_VPXIA5P4C72CY3ME4ZVXBADOKEG5S4C7Z7QZZFA>
   12d54:	f104 0138 	add.w	r1, r4, #56	; 0x38
   12d58:	6ae0      	ldr	r0, [r4, #44]	; 0x2c
   12d5a:	f006 faf9 	bl	19350 <sym_MF4WRTQNYFRYRFGW7FZUI3ZAYNQZ5EQ54QSK6JQ>
   12d5e:	f7fe ff67 	bl	11c30 <sym_NCQ5WTBCV7DGPK3QI3SSY5XGKOI2SE3XFCTKQKY>
   12d62:	f8d8 0004 	ldr.w	r0, [r8, #4]
   12d66:	1cc0      	adds	r0, r0, #3
   12d68:	f006 fbb2 	bl	194d0 <sym_2X6ZBBHQKFJV27I6OQZLD4IRAL5JANEGA5N34WA>
   12d6c:	73a8      	strb	r0, [r5, #14]
   12d6e:	78a0      	ldrb	r0, [r4, #2]
   12d70:	07c0      	lsls	r0, r0, #31
   12d72:	d01e      	beq.n	12db2 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x166>
   12d74:	a904      	add	r1, sp, #16
   12d76:	2000      	movs	r0, #0
   12d78:	f006 f9c1 	bl	190fe <sym_3SKPFA625PNDCAQQU2M5BY77GYLRCXEEFZ5JBTY>
   12d7c:	b120      	cbz	r0, 12d88 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x13c>
   12d7e:	f640 11ce 	movw	r1, #2510	; 0x9ce
   12d82:	202d      	movs	r0, #45	; 0x2d
   12d84:	f7fd f92e 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   12d88:	20ff      	movs	r0, #255	; 0xff
   12d8a:	73e8      	strb	r0, [r5, #15]
   12d8c:	e00c      	b.n	12da8 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x15c>
   12d8e:	9806      	ldr	r0, [sp, #24]
   12d90:	69e1      	ldr	r1, [r4, #28]
   12d92:	4281      	cmp	r1, r0
   12d94:	d008      	beq.n	12da8 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x15c>
   12d96:	7881      	ldrb	r1, [r0, #2]
   12d98:	73e9      	strb	r1, [r5, #15]
   12d9a:	f8d0 1003 	ldr.w	r1, [r0, #3]
   12d9e:	6129      	str	r1, [r5, #16]
   12da0:	f8b0 0007 	ldrh.w	r0, [r0, #7]
   12da4:	82a8      	strh	r0, [r5, #20]
   12da6:	e004      	b.n	12db2 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x166>
   12da8:	a804      	add	r0, sp, #16
   12daa:	f7fd fb61 	bl	10470 <sym_6I4XEOIW7LI2E3Z53L54ZHQQHYICXR4H4JQWXLA>
   12dae:	2800      	cmp	r0, #0
   12db0:	d0ed      	beq.n	12d8e <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x142>
   12db2:	2000      	movs	r0, #0
   12db4:	e792      	b.n	12cdc <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x90>
   12db6:	0000      	.short	0x0000
   12db8:	20000fa4 	.word	0x20000fa4
   12dbc:	000133bc 	.word	0x000133bc
   12dc0:	200000f0 	.word	0x200000f0
   12dc4:	8e89bed6 	.word	0x8e89bed6
   12dc8:	000f4240 	.word	0x000f4240
   12dcc:	b510      	push	{r4, lr}
   12dce:	4604      	mov	r4, r0
   12dd0:	f7ff ff3c 	bl	12c4c <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ>
   12dd4:	2800      	cmp	r0, #0
   12dd6:	d108      	bne.n	12dea <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x19e>
   12dd8:	4804      	ldr	r0, [pc, #16]	; (12dec <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x1a0>)
   12dda:	7800      	ldrb	r0, [r0, #0]
   12ddc:	2801      	cmp	r0, #1
   12dde:	d003      	beq.n	12de8 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x19c>
   12de0:	2100      	movs	r1, #0
   12de2:	4620      	mov	r0, r4
   12de4:	f7ff fdb2 	bl	1294c <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0x10>
   12de8:	2000      	movs	r0, #0
   12dea:	bd10      	pop	{r4, pc}
   12dec:	20000fa4 	.word	0x20000fa4
   12df0:	480a      	ldr	r0, [pc, #40]	; (12e1c <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x1d0>)
   12df2:	b510      	push	{r4, lr}
   12df4:	490a      	ldr	r1, [pc, #40]	; (12e20 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x1d4>)
   12df6:	6804      	ldr	r4, [r0, #0]
   12df8:	7808      	ldrb	r0, [r1, #0]
   12dfa:	2800      	cmp	r0, #0
   12dfc:	d00d      	beq.n	12e1a <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x1ce>
   12dfe:	7808      	ldrb	r0, [r1, #0]
   12e00:	2802      	cmp	r0, #2
   12e02:	d002      	beq.n	12e0a <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x1be>
   12e04:	7808      	ldrb	r0, [r1, #0]
   12e06:	2803      	cmp	r0, #3
   12e08:	d102      	bne.n	12e10 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x1c4>
   12e0a:	4620      	mov	r0, r4
   12e0c:	f7ff ff0c 	bl	12c28 <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0x2ec>
   12e10:	4620      	mov	r0, r4
   12e12:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
   12e16:	f000 b90f 	b.w	13038 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x3ec>
   12e1a:	bd10      	pop	{r4, pc}
   12e1c:	200000f0 	.word	0x200000f0
   12e20:	20000fa4 	.word	0x20000fa4
   12e24:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   12e28:	4604      	mov	r4, r0
   12e2a:	4827      	ldr	r0, [pc, #156]	; (12ec8 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x27c>)
   12e2c:	460d      	mov	r5, r1
   12e2e:	6840      	ldr	r0, [r0, #4]
   12e30:	f004 f968 	bl	17104 <sym_LPFN6QJEOHBT4AP2K7MEYWDZW35U5VHIHXOA54I>
   12e34:	4e25      	ldr	r6, [pc, #148]	; (12ecc <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x280>)
   12e36:	2004      	movs	r0, #4
   12e38:	7030      	strb	r0, [r6, #0]
   12e3a:	b325      	cbz	r5, 12e86 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x23a>
   12e3c:	8860      	ldrh	r0, [r4, #2]
   12e3e:	2810      	cmp	r0, #16
   12e40:	d02a      	beq.n	12e98 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x24c>
   12e42:	f104 0020 	add.w	r0, r4, #32
   12e46:	4680      	mov	r8, r0
   12e48:	68b5      	ldr	r5, [r6, #8]
   12e4a:	f007 fa56 	bl	1a2fa <sym_STP6UONGXHZIIGYZLLHSWZFO5DU7227CCUKBTDQ>
   12e4e:	4607      	mov	r7, r0
   12e50:	4640      	mov	r0, r8
   12e52:	f007 fa7b 	bl	1a34c <sym_4U2RA2RXIRU5BEMWZTHT3PETZK6K62P2SAJVWHA>
   12e56:	1a38      	subs	r0, r7, r0
   12e58:	1e40      	subs	r0, r0, #1
   12e5a:	b2c0      	uxtb	r0, r0
   12e5c:	8861      	ldrh	r1, [r4, #2]
   12e5e:	2228      	movs	r2, #40	; 0x28
   12e60:	f000 fae8 	bl	13434 <sym_CWVFJQ3UTS5MGUYKHB563UDBBB3FBCXUIVZDU2I>
   12e64:	4405      	add	r5, r0
   12e66:	78a0      	ldrb	r0, [r4, #2]
   12e68:	f3c0 00c0 	ubfx	r0, r0, #3, #1
   12e6c:	b130      	cbz	r0, 12e7c <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x230>
   12e6e:	6870      	ldr	r0, [r6, #4]
   12e70:	4405      	add	r5, r0
   12e72:	f007 fac4 	bl	1a3fe <sym_USXJ3USYRHE5AVFUSG2J2G7QDHRASPG75ESP25A>
   12e76:	4428      	add	r0, r5
   12e78:	f8c4 00b0 	str.w	r0, [r4, #176]	; 0xb0
   12e7c:	7922      	ldrb	r2, [r4, #4]
   12e7e:	4629      	mov	r1, r5
   12e80:	2000      	movs	r0, #0
   12e82:	f004 f94d 	bl	17120 <sym_E7IS652W2J5N5UTHP752WOA4YNSR7E5S5H4J2AA>
   12e86:	8860      	ldrh	r0, [r4, #2]
   12e88:	2813      	cmp	r0, #19
   12e8a:	d013      	beq.n	12eb4 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x268>
   12e8c:	dc09      	bgt.n	12ea2 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x256>
   12e8e:	2810      	cmp	r0, #16
   12e90:	d017      	beq.n	12ec2 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x276>
   12e92:	2812      	cmp	r0, #18
   12e94:	d109      	bne.n	12eaa <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x25e>
   12e96:	e00d      	b.n	12eb4 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x268>
   12e98:	7921      	ldrb	r1, [r4, #4]
   12e9a:	2000      	movs	r0, #0
   12e9c:	f003 fee0 	bl	16c60 <sym_6PPYXQQOLTVZ6DHASA45P4Y6MOJ5US37OHECCGI>
   12ea0:	e7f1      	b.n	12e86 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x23a>
   12ea2:	2815      	cmp	r0, #21
   12ea4:	d006      	beq.n	12eb4 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x268>
   12ea6:	281d      	cmp	r0, #29
   12ea8:	d004      	beq.n	12eb4 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x268>
   12eaa:	f640 518e 	movw	r1, #3470	; 0xd8e
   12eae:	202d      	movs	r0, #45	; 0x2d
   12eb0:	f7fd f898 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   12eb4:	7922      	ldrb	r2, [r4, #4]
   12eb6:	e8bd 41f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, lr}
   12eba:	2101      	movs	r1, #1
   12ebc:	2000      	movs	r0, #0
   12ebe:	f004 b9ab 	b.w	17218 <sym_MBOR6QO7CTIMBTL5BVPURKFTQFZYFCUOAZ3M43Q>
   12ec2:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
   12ec6:	0000      	.short	0x0000
   12ec8:	200000f0 	.word	0x200000f0
   12ecc:	20000fa4 	.word	0x20000fa4
   12ed0:	b510      	push	{r4, lr}
   12ed2:	4604      	mov	r4, r0
   12ed4:	7800      	ldrb	r0, [r0, #0]
   12ed6:	460b      	mov	r3, r1
   12ed8:	f884 0095 	strb.w	r0, [r4, #149]	; 0x95
   12edc:	29ff      	cmp	r1, #255	; 0xff
   12ede:	d010      	beq.n	12f02 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x2b6>
   12ee0:	f104 0297 	add.w	r2, r4, #151	; 0x97
   12ee4:	1e51      	subs	r1, r2, #1
   12ee6:	4618      	mov	r0, r3
   12ee8:	f7fe fdba 	bl	11a60 <sym_YAOI5BW7G2C6EUUY2B4S7A3CWX63A6MP2T3O5KA>
   12eec:	b130      	cbz	r0, 12efc <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x2b0>
   12eee:	f894 0096 	ldrb.w	r0, [r4, #150]	; 0x96
   12ef2:	f040 0002 	orr.w	r0, r0, #2
   12ef6:	f884 0096 	strb.w	r0, [r4, #150]	; 0x96
   12efa:	e011      	b.n	12f20 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x2d4>
   12efc:	f640 71c5 	movw	r1, #4037	; 0xfc5
   12f00:	e020      	b.n	12f44 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x2f8>
   12f02:	4812      	ldr	r0, [pc, #72]	; (12f4c <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x300>)
   12f04:	6840      	ldr	r0, [r0, #4]
   12f06:	7801      	ldrb	r1, [r0, #0]
   12f08:	f3c1 1180 	ubfx	r1, r1, #6, #1
   12f0c:	f884 1096 	strb.w	r1, [r4, #150]	; 0x96
   12f10:	f8d0 1003 	ldr.w	r1, [r0, #3]
   12f14:	f8c4 1097 	str.w	r1, [r4, #151]	; 0x97
   12f18:	f8b0 0007 	ldrh.w	r0, [r0, #7]
   12f1c:	f8a4 009b 	strh.w	r0, [r4, #155]	; 0x9b
   12f20:	f994 0026 	ldrsb.w	r0, [r4, #38]	; 0x26
   12f24:	287f      	cmp	r0, #127	; 0x7f
   12f26:	d00b      	beq.n	12f40 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x2f4>
   12f28:	f884 009d 	strb.w	r0, [r4, #157]	; 0x9d
   12f2c:	207f      	movs	r0, #127	; 0x7f
   12f2e:	f884 0026 	strb.w	r0, [r4, #38]	; 0x26
   12f32:	347e      	adds	r4, #126	; 0x7e
   12f34:	2001      	movs	r0, #1
   12f36:	75a0      	strb	r0, [r4, #22]
   12f38:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
   12f3c:	f003 b81c 	b.w	15f78 <sym_ZGH42ABHAQFX3NKIMGIK7DGGJ5XWXU2KDVYEOMI>
   12f40:	f44f 6164 	mov.w	r1, #3648	; 0xe40
   12f44:	202d      	movs	r0, #45	; 0x2d
   12f46:	f7fd f84d 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   12f4a:	0000      	.short	0x0000
   12f4c:	200000f0 	.word	0x200000f0
   12f50:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
   12f54:	4690      	mov	r8, r2
   12f56:	460e      	mov	r6, r1
   12f58:	4604      	mov	r4, r0
   12f5a:	2903      	cmp	r1, #3
   12f5c:	d004      	beq.n	12f68 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x31c>
   12f5e:	f894 0060 	ldrb.w	r0, [r4, #96]	; 0x60
   12f62:	b108      	cbz	r0, 12f68 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x31c>
   12f64:	2001      	movs	r0, #1
   12f66:	e000      	b.n	12f6a <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x31e>
   12f68:	2000      	movs	r0, #0
   12f6a:	4681      	mov	r9, r0
   12f6c:	f003 fe2a 	bl	16bc4 <sym_BNUQ5CI25DXEDLVOULTXPCKLL6P4CJJYO4G535I>
   12f70:	4605      	mov	r5, r0
   12f72:	2e03      	cmp	r6, #3
   12f74:	d003      	beq.n	12f7e <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x332>
   12f76:	2701      	movs	r7, #1
   12f78:	2e05      	cmp	r6, #5
   12f7a:	d005      	beq.n	12f88 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x33c>
   12f7c:	e008      	b.n	12f90 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x344>
   12f7e:	78a0      	ldrb	r0, [r4, #2]
   12f80:	2702      	movs	r7, #2
   12f82:	f3c0 0040 	ubfx	r0, r0, #1, #1
   12f86:	e001      	b.n	12f8c <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x340>
   12f88:	78a0      	ldrb	r0, [r4, #2]
   12f8a:	07c0      	lsls	r0, r0, #31
   12f8c:	2800      	cmp	r0, #0
   12f8e:	d04a      	beq.n	13026 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x3da>
   12f90:	f1b9 0f00 	cmp.w	r9, #0
   12f94:	d146      	bne.n	13024 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x3d8>
   12f96:	4826      	ldr	r0, [pc, #152]	; (13030 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x3e4>)
   12f98:	7b80      	ldrb	r0, [r0, #14]
   12f9a:	b140      	cbz	r0, 12fae <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x362>
   12f9c:	f006 fa9b 	bl	194d6 <sym_GKUVQYGVTZ7DKWBNC3M5TXN4XZ4Q6TUJFSFOWBA>
   12fa0:	f888 0000 	strb.w	r0, [r8]
   12fa4:	28ff      	cmp	r0, #255	; 0xff
   12fa6:	d002      	beq.n	12fae <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x362>
   12fa8:	f7fe fd74 	bl	11a94 <sym_IJTA37LCLZMYZVQ3I74HRUK4JDZEZR23VU3JFJI>
   12fac:	4305      	orrs	r5, r0
   12fae:	4e21      	ldr	r6, [pc, #132]	; (13034 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x3e8>)
   12fb0:	f894 204f 	ldrb.w	r2, [r4, #79]	; 0x4f
   12fb4:	6870      	ldr	r0, [r6, #4]
   12fb6:	7801      	ldrb	r1, [r0, #0]
   12fb8:	f3c1 1180 	ubfx	r1, r1, #6, #1
   12fbc:	4291      	cmp	r1, r2
   12fbe:	d106      	bne.n	12fce <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x382>
   12fc0:	2206      	movs	r2, #6
   12fc2:	f104 0150 	add.w	r1, r4, #80	; 0x50
   12fc6:	1cc0      	adds	r0, r0, #3
   12fc8:	f005 f869 	bl	1809e <sym_K65IFLJONCLHPD5IQ4ENBWGA3PVI55UHZKOIVDQ>
   12fcc:	b130      	cbz	r0, 12fdc <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x390>
   12fce:	2000      	movs	r0, #0
   12fd0:	f898 1000 	ldrb.w	r1, [r8]
   12fd4:	29ff      	cmp	r1, #255	; 0xff
   12fd6:	d007      	beq.n	12fe8 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x39c>
   12fd8:	b9a8      	cbnz	r0, 13006 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x3ba>
   12fda:	e001      	b.n	12fe0 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x394>
   12fdc:	2001      	movs	r0, #1
   12fde:	e7f7      	b.n	12fd0 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x384>
   12fe0:	7e60      	ldrb	r0, [r4, #25]
   12fe2:	4288      	cmp	r0, r1
   12fe4:	d00f      	beq.n	13006 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x3ba>
   12fe6:	e008      	b.n	12ffa <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x3ae>
   12fe8:	b138      	cbz	r0, 12ffa <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x3ae>
   12fea:	6871      	ldr	r1, [r6, #4]
   12fec:	f811 0b03 	ldrb.w	r0, [r1], #3
   12ff0:	f3c0 1080 	ubfx	r0, r0, #6, #1
   12ff4:	f007 f8d2 	bl	1a19c <sym_H6NC6L6VJY74V6C72Y6E5P4HGSZIVJQXMUOQZ5Y+0xa>
   12ff8:	b128      	cbz	r0, 13006 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x3ba>
   12ffa:	2000      	movs	r0, #0
   12ffc:	78a1      	ldrb	r1, [r4, #2]
   12ffe:	0749      	lsls	r1, r1, #29
   13000:	d503      	bpl.n	1300a <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x3be>
   13002:	b990      	cbnz	r0, 1302a <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x3de>
   13004:	e00e      	b.n	13024 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x3d8>
   13006:	2001      	movs	r0, #1
   13008:	e7f8      	b.n	12ffc <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x3b0>
   1300a:	b975      	cbnz	r5, 1302a <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x3de>
   1300c:	7be0      	ldrb	r0, [r4, #15]
   1300e:	b108      	cbz	r0, 13014 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x3c8>
   13010:	42b8      	cmp	r0, r7
   13012:	d107      	bne.n	13024 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x3d8>
   13014:	6871      	ldr	r1, [r6, #4]
   13016:	f811 0b03 	ldrb.w	r0, [r1], #3
   1301a:	f3c0 1080 	ubfx	r0, r0, #6, #1
   1301e:	f007 f8bd 	bl	1a19c <sym_H6NC6L6VJY74V6C72Y6E5P4HGSZIVJQXMUOQZ5Y+0xa>
   13022:	b110      	cbz	r0, 1302a <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x3de>
   13024:	2000      	movs	r0, #0
   13026:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
   1302a:	2001      	movs	r0, #1
   1302c:	e7fb      	b.n	13026 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x3da>
   1302e:	0000      	.short	0x0000
   13030:	20000fa4 	.word	0x20000fa4
   13034:	200000f0 	.word	0x200000f0
   13038:	b570      	push	{r4, r5, r6, lr}
   1303a:	4604      	mov	r4, r0
   1303c:	6a80      	ldr	r0, [r0, #40]	; 0x28
   1303e:	4d13      	ldr	r5, [pc, #76]	; (1308c <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x440>)
   13040:	1c40      	adds	r0, r0, #1
   13042:	62a0      	str	r0, [r4, #40]	; 0x28
   13044:	7ba8      	ldrb	r0, [r5, #14]
   13046:	2600      	movs	r6, #0
   13048:	b120      	cbz	r0, 13054 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x408>
   1304a:	f003 fd9d 	bl	16b88 <sym_PCLF3MATC3G3MYGRPG4ATMGCS6N4B7M5CSF2C2Y>
   1304e:	f003 fb7f 	bl	16750 <sym_5DEPI2OGSPXE5OVFBPVFPSPYPRYUQ54QVVXIKNI>
   13052:	73ae      	strb	r6, [r5, #14]
   13054:	702e      	strb	r6, [r5, #0]
   13056:	f894 0061 	ldrb.w	r0, [r4, #97]	; 0x61
   1305a:	b108      	cbz	r0, 13060 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x414>
   1305c:	2101      	movs	r1, #1
   1305e:	e00f      	b.n	13080 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x434>
   13060:	7b60      	ldrb	r0, [r4, #13]
   13062:	b160      	cbz	r0, 1307e <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x432>
   13064:	6aa1      	ldr	r1, [r4, #40]	; 0x28
   13066:	4288      	cmp	r0, r1
   13068:	d809      	bhi.n	1307e <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x432>
   1306a:	2101      	movs	r1, #1
   1306c:	4620      	mov	r0, r4
   1306e:	f007 f9ed 	bl	1a44c <sym_FY3JF6XBXLAG22E42UPFUU55A3QFAFZDUGSPAPY>
   13072:	78a0      	ldrb	r0, [r4, #2]
   13074:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
   13078:	07c0      	lsls	r0, r0, #31
   1307a:	f002 bf7d 	b.w	15f78 <sym_ZGH42ABHAQFX3NKIMGIK7DGGJ5XWXU2KDVYEOMI>
   1307e:	2100      	movs	r1, #0
   13080:	4620      	mov	r0, r4
   13082:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
   13086:	f007 b9e1 	b.w	1a44c <sym_FY3JF6XBXLAG22E42UPFUU55A3QFAFZDUGSPAPY>
   1308a:	0000      	.short	0x0000
   1308c:	20000fa4 	.word	0x20000fa4
   13090:	e92d 43f8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
   13094:	4604      	mov	r4, r0
   13096:	f890 0064 	ldrb.w	r0, [r0, #100]	; 0x64
   1309a:	4617      	mov	r7, r2
   1309c:	460d      	mov	r5, r1
   1309e:	f88d 0000 	strb.w	r0, [sp]
   130a2:	9800      	ldr	r0, [sp, #0]
   130a4:	9000      	str	r0, [sp, #0]
   130a6:	f89d 0000 	ldrb.w	r0, [sp]
   130aa:	b110      	cbz	r0, 130b2 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x466>
   130ac:	f640 413b 	movw	r1, #3131	; 0xc3b
   130b0:	e054      	b.n	1315c <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x510>
   130b2:	f884 3066 	strb.w	r3, [r4, #102]	; 0x66
   130b6:	8828      	ldrh	r0, [r5, #0]
   130b8:	f8a4 0068 	strh.w	r0, [r4, #104]	; 0x68
   130bc:	2b00      	cmp	r3, #0
   130be:	d15d      	bne.n	1317c <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x530>
   130c0:	68e8      	ldr	r0, [r5, #12]
   130c2:	f006 fa66 	bl	19592 <sym_DSAIJDVMFSSNYDQYP4G3W4ZBYTG4PAWPSVOBJ2Y>
   130c6:	f8a4 007e 	strh.w	r0, [r4, #126]	; 0x7e
   130ca:	8aa8      	ldrh	r0, [r5, #20]
   130cc:	f8a4 0080 	strh.w	r0, [r4, #128]	; 0x80
   130d0:	8ae8      	ldrh	r0, [r5, #22]
   130d2:	f8a4 0082 	strh.w	r0, [r4, #130]	; 0x82
   130d6:	f895 0175 	ldrb.w	r0, [r5, #373]	; 0x175
   130da:	f884 0084 	strb.w	r0, [r4, #132]	; 0x84
   130de:	7e21      	ldrb	r1, [r4, #24]
   130e0:	f104 0849 	add.w	r8, r4, #73	; 0x49
   130e4:	2600      	movs	r6, #0
   130e6:	b129      	cbz	r1, 130f4 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x4a8>
   130e8:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
   130ec:	4641      	mov	r1, r8
   130ee:	f006 ff6d 	bl	19fcc <sym_FKGRLSJGPWDG44KYHTBA74A2ZDKPDUWGXHS3E2I+0xba>
   130f2:	b940      	cbnz	r0, 13106 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x4ba>
   130f4:	f894 0062 	ldrb.w	r0, [r4, #98]	; 0x62
   130f8:	b170      	cbz	r0, 13118 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x4cc>
   130fa:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
   130fe:	4641      	mov	r1, r8
   13100:	f006 ff5b 	bl	19fba <sym_FKGRLSJGPWDG44KYHTBA74A2ZDKPDUWGXHS3E2I+0xa8>
   13104:	b140      	cbz	r0, 13118 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x4cc>
   13106:	f8d4 0049 	ldr.w	r0, [r4, #73]	; 0x49
   1310a:	f8c4 0072 	str.w	r0, [r4, #114]	; 0x72
   1310e:	f8b4 004d 	ldrh.w	r0, [r4, #77]	; 0x4d
   13112:	f8a4 0076 	strh.w	r0, [r4, #118]	; 0x76
   13116:	e003      	b.n	13120 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x4d4>
   13118:	f8c4 6072 	str.w	r6, [r4, #114]	; 0x72
   1311c:	f8a4 6076 	strh.w	r6, [r4, #118]	; 0x76
   13120:	4817      	ldr	r0, [pc, #92]	; (13180 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x534>)
   13122:	2fff      	cmp	r7, #255	; 0xff
   13124:	6840      	ldr	r0, [r0, #4]
   13126:	7801      	ldrb	r1, [r0, #0]
   13128:	f3c1 1180 	ubfx	r1, r1, #6, #1
   1312c:	f884 106b 	strb.w	r1, [r4, #107]	; 0x6b
   13130:	f850 1f03 	ldr.w	r1, [r0, #3]!
   13134:	d015      	beq.n	13162 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x516>
   13136:	67a1      	str	r1, [r4, #120]	; 0x78
   13138:	8880      	ldrh	r0, [r0, #4]
   1313a:	f8a4 007c 	strh.w	r0, [r4, #124]	; 0x7c
   1313e:	f104 026c 	add.w	r2, r4, #108	; 0x6c
   13142:	1e51      	subs	r1, r2, #1
   13144:	4638      	mov	r0, r7
   13146:	f7fe fc8b 	bl	11a60 <sym_YAOI5BW7G2C6EUUY2B4S7A3CWX63A6MP2T3O5KA>
   1314a:	b128      	cbz	r0, 13158 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x50c>
   1314c:	f814 0f6b 	ldrb.w	r0, [r4, #107]!
   13150:	f040 0002 	orr.w	r0, r0, #2
   13154:	7020      	strb	r0, [r4, #0]
   13156:	e00a      	b.n	1316e <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x522>
   13158:	f640 415c 	movw	r1, #3164	; 0xc5c
   1315c:	202d      	movs	r0, #45	; 0x2d
   1315e:	f7fc ff41 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   13162:	f844 1f6c 	str.w	r1, [r4, #108]!
   13166:	8880      	ldrh	r0, [r0, #4]
   13168:	80a0      	strh	r0, [r4, #4]
   1316a:	60e6      	str	r6, [r4, #12]
   1316c:	8226      	strh	r6, [r4, #16]
   1316e:	8828      	ldrh	r0, [r5, #0]
   13170:	f7fd fb60 	bl	10834 <sym_YNBBHT54WKEGUNVC6TSBMRGLF67VFWBOYEMKGTQ>
   13174:	e8bd 43f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
   13178:	f005 be9e 	b.w	18eb8 <sym_56BVXVVSYPZZTDFBHBV4MJAFTYIS7HMITNWUEZQ>
   1317c:	e8bd 83f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
   13180:	200000f0 	.word	0x200000f0
   13184:	e92d 43f8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
   13188:	4604      	mov	r4, r0
   1318a:	20ff      	movs	r0, #255	; 0xff
   1318c:	f88d 0000 	strb.w	r0, [sp]
   13190:	2601      	movs	r6, #1
   13192:	466a      	mov	r2, sp
   13194:	2105      	movs	r1, #5
   13196:	4620      	mov	r0, r4
   13198:	f7ff feda 	bl	12f50 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x304>
   1319c:	b3f0      	cbz	r0, 1321c <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x5d0>
   1319e:	4d23      	ldr	r5, [pc, #140]	; (1322c <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x5e0>)
   131a0:	4f23      	ldr	r7, [pc, #140]	; (13230 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x5e4>)
   131a2:	46b0      	mov	r8, r6
   131a4:	6868      	ldr	r0, [r5, #4]
   131a6:	7bfa      	ldrb	r2, [r7, #15]
   131a8:	f04f 0900 	mov.w	r9, #0
   131ac:	7801      	ldrb	r1, [r0, #0]
   131ae:	f3c1 1180 	ubfx	r1, r1, #6, #1
   131b2:	4291      	cmp	r1, r2
   131b4:	d106      	bne.n	131c4 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x578>
   131b6:	2206      	movs	r2, #6
   131b8:	f107 0110 	add.w	r1, r7, #16
   131bc:	1cc0      	adds	r0, r0, #3
   131be:	f004 ff6e 	bl	1809e <sym_K65IFLJONCLHPD5IQ4ENBWGA3PVI55UHZKOIVDQ>
   131c2:	b358      	cbz	r0, 1321c <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x5d0>
   131c4:	686a      	ldr	r2, [r5, #4]
   131c6:	69e0      	ldr	r0, [r4, #28]
   131c8:	7812      	ldrb	r2, [r2, #0]
   131ca:	f810 1f85 	ldrb.w	r1, [r0, #133]!
   131ce:	f3c2 1240 	ubfx	r2, r2, #5, #1
   131d2:	4011      	ands	r1, r2
   131d4:	7001      	strb	r1, [r0, #0]
   131d6:	2201      	movs	r2, #1
   131d8:	4620      	mov	r0, r4
   131da:	69e1      	ldr	r1, [r4, #28]
   131dc:	f000 f892 	bl	13304 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x6b8>
   131e0:	2300      	movs	r3, #0
   131e2:	f89d 2000 	ldrb.w	r2, [sp]
   131e6:	4620      	mov	r0, r4
   131e8:	69e1      	ldr	r1, [r4, #28]
   131ea:	f7ff ff51 	bl	13090 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x444>
   131ee:	f884 8064 	strb.w	r8, [r4, #100]	; 0x64
   131f2:	f002 fec1 	bl	15f78 <sym_ZGH42ABHAQFX3NKIMGIK7DGGJ5XWXU2KDVYEOMI>
   131f6:	f887 9000 	strb.w	r9, [r7]
   131fa:	2105      	movs	r1, #5
   131fc:	69e0      	ldr	r0, [r4, #28]
   131fe:	f000 fa1d 	bl	1363c <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI>
   13202:	6868      	ldr	r0, [r5, #4]
   13204:	69e1      	ldr	r1, [r4, #28]
   13206:	f8d0 2003 	ldr.w	r2, [r0, #3]
   1320a:	f841 2f03 	str.w	r2, [r1, #3]!
   1320e:	f8b0 2007 	ldrh.w	r2, [r0, #7]
   13212:	808a      	strh	r2, [r1, #4]
   13214:	7800      	ldrb	r0, [r0, #0]
   13216:	f3c0 1080 	ubfx	r0, r0, #6, #1
   1321a:	e000      	b.n	1321e <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x5d2>
   1321c:	e002      	b.n	13224 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x5d8>
   1321e:	69e1      	ldr	r1, [r4, #28]
   13220:	7088      	strb	r0, [r1, #2]
   13222:	e000      	b.n	13226 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x5da>
   13224:	2600      	movs	r6, #0
   13226:	4630      	mov	r0, r6
   13228:	e8bd 83f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
   1322c:	200000f0 	.word	0x200000f0
   13230:	20000fa4 	.word	0x20000fa4
   13234:	b57c      	push	{r2, r3, r4, r5, r6, lr}
   13236:	4604      	mov	r4, r0
   13238:	20ff      	movs	r0, #255	; 0xff
   1323a:	f88d 0000 	strb.w	r0, [sp]
   1323e:	2501      	movs	r5, #1
   13240:	466a      	mov	r2, sp
   13242:	2103      	movs	r1, #3
   13244:	4620      	mov	r0, r4
   13246:	f7ff fe83 	bl	12f50 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x304>
   1324a:	b328      	cbz	r0, 13298 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x64c>
   1324c:	7b20      	ldrb	r0, [r4, #12]
   1324e:	b168      	cbz	r0, 1326c <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x620>
   13250:	f894 0094 	ldrb.w	r0, [r4, #148]	; 0x94
   13254:	f88d 0004 	strb.w	r0, [sp, #4]
   13258:	9801      	ldr	r0, [sp, #4]
   1325a:	9001      	str	r0, [sp, #4]
   1325c:	f89d 0004 	ldrb.w	r0, [sp, #4]
   13260:	b920      	cbnz	r0, 1326c <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x620>
   13262:	f89d 1000 	ldrb.w	r1, [sp]
   13266:	4620      	mov	r0, r4
   13268:	f7ff fe32 	bl	12ed0 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x284>
   1326c:	4e0c      	ldr	r6, [pc, #48]	; (132a0 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x654>)
   1326e:	2100      	movs	r1, #0
   13270:	6870      	ldr	r0, [r6, #4]
   13272:	8001      	strh	r1, [r0, #0]
   13274:	2104      	movs	r1, #4
   13276:	f006 fcab 	bl	19bd0 <sym_ZJ2REXSOGBKJNHWVNXMDASZYI7CQBWWO2RMVAVY>
   1327a:	4620      	mov	r0, r4
   1327c:	f000 f88a 	bl	13394 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x748>
   13280:	8fa2      	ldrh	r2, [r4, #60]	; 0x3c
   13282:	6ba1      	ldr	r1, [r4, #56]	; 0x38
   13284:	6870      	ldr	r0, [r6, #4]
   13286:	f006 fcda 	bl	19c3e <sym_MAMY3D3622JJLMFKLRQXSRTVOPUNWAAGSSCAVMY>
   1328a:	4906      	ldr	r1, [pc, #24]	; (132a4 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x658>)
   1328c:	2005      	movs	r0, #5
   1328e:	7008      	strb	r0, [r1, #0]
   13290:	6870      	ldr	r0, [r6, #4]
   13292:	f003 ff37 	bl	17104 <sym_LPFN6QJEOHBT4AP2K7MEYWDZW35U5VHIHXOA54I>
   13296:	e000      	b.n	1329a <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x64e>
   13298:	2500      	movs	r5, #0
   1329a:	4628      	mov	r0, r5
   1329c:	bd7c      	pop	{r2, r3, r4, r5, r6, pc}
   1329e:	0000      	.short	0x0000
   132a0:	200000f0 	.word	0x200000f0
   132a4:	20000fa4 	.word	0x20000fa4
   132a8:	b570      	push	{r4, r5, r6, lr}
   132aa:	4604      	mov	r4, r0
   132ac:	460e      	mov	r6, r1
   132ae:	7e40      	ldrb	r0, [r0, #25]
   132b0:	f7fe fba4 	bl	119fc <sym_PLOW4TMGVQT52FP2ERNRL6S5EELE2YO563WRPJA>
   132b4:	0005      	movs	r5, r0
   132b6:	d019      	beq.n	132ec <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x6a0>
   132b8:	2110      	movs	r1, #16
   132ba:	f006 faf6 	bl	198aa <sym_35JWAFJL2IEYRDNORVIQ7BBAS7FQNUVOFCLQNSQ>
   132be:	2800      	cmp	r0, #0
   132c0:	d114      	bne.n	132ec <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x6a0>
   132c2:	2001      	movs	r0, #1
   132c4:	f884 0056 	strb.w	r0, [r4, #86]	; 0x56
   132c8:	f104 0157 	add.w	r1, r4, #87	; 0x57
   132cc:	4632      	mov	r2, r6
   132ce:	460c      	mov	r4, r1
   132d0:	4628      	mov	r0, r5
   132d2:	f006 f8a2 	bl	1941a <sym_BLMJ5IIKWMCUMGRAJC47JTAD5DUGOY4TIBII5HY>
   132d6:	4621      	mov	r1, r4
   132d8:	4c05      	ldr	r4, [pc, #20]	; (132f0 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x6a4>)
   132da:	6860      	ldr	r0, [r4, #4]
   132dc:	f006 fc93 	bl	19c06 <sym_6GC7CC2BUFLCMQVOZDACHKZEET4WUCXSLEMHSCY>
   132e0:	6860      	ldr	r0, [r4, #4]
   132e2:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
   132e6:	2101      	movs	r1, #1
   132e8:	f006 bc93 	b.w	19c12 <sym_6FJEZEEBKMCAKI6FMPGNQ7TUXYDPYPEPSNJFOMQ>
   132ec:	bd70      	pop	{r4, r5, r6, pc}
   132ee:	0000      	.short	0x0000
   132f0:	200000f0 	.word	0x200000f0
   132f4:	4802      	ldr	r0, [pc, #8]	; (13300 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x6b4>)
   132f6:	2101      	movs	r1, #1
   132f8:	6800      	ldr	r0, [r0, #0]
   132fa:	f7ff bb27 	b.w	1294c <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0x10>
   132fe:	0000      	.short	0x0000
   13300:	200000f0 	.word	0x200000f0
   13304:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   13308:	4e21      	ldr	r6, [pc, #132]	; (13390 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x744>)
   1330a:	4680      	mov	r8, r0
   1330c:	460c      	mov	r4, r1
   1330e:	6870      	ldr	r0, [r6, #4]
   13310:	4615      	mov	r5, r2
   13312:	f850 1f0f 	ldr.w	r1, [r0, #15]!
   13316:	6121      	str	r1, [r4, #16]
   13318:	8881      	ldrh	r1, [r0, #4]
   1331a:	8321      	strh	r1, [r4, #24]
   1331c:	7981      	ldrb	r1, [r0, #6]
   1331e:	76a1      	strb	r1, [r4, #26]
   13320:	8940      	ldrh	r0, [r0, #10]
   13322:	f006 f932 	bl	1958a <sym_3GY4TYJRRJL4WNFV6XN3ATYT4MIF4FYTN3S33RI>
   13326:	4607      	mov	r7, r0
   13328:	60e0      	str	r0, [r4, #12]
   1332a:	6870      	ldr	r0, [r6, #4]
   1332c:	4639      	mov	r1, r7
   1332e:	7d80      	ldrb	r0, [r0, #22]
   13330:	f006 fab6 	bl	198a0 <sym_NREHYZNNGMA6T4VUMP47EJMM5IU7BRHAZURXRLQ>
   13334:	83a0      	strh	r0, [r4, #28]
   13336:	6870      	ldr	r0, [r6, #4]
   13338:	4639      	mov	r1, r7
   1333a:	f8b0 0017 	ldrh.w	r0, [r0, #23]
   1333e:	f006 faab 	bl	19898 <sym_5SQGEOI2QIBONU3LMZVAMW3SSGU24TVE57VDLBA>
   13342:	6220      	str	r0, [r4, #32]
   13344:	6870      	ldr	r0, [r6, #4]
   13346:	f830 1f1b 	ldrh.w	r1, [r0, #27]!
   1334a:	82a1      	strh	r1, [r4, #20]
   1334c:	8841      	ldrh	r1, [r0, #2]
   1334e:	82e1      	strh	r1, [r4, #22]
   13350:	6841      	ldr	r1, [r0, #4]
   13352:	f8c4 1086 	str.w	r1, [r4, #134]	; 0x86
   13356:	7a01      	ldrb	r1, [r0, #8]
   13358:	f884 108a 	strb.w	r1, [r4, #138]	; 0x8a
   1335c:	7a41      	ldrb	r1, [r0, #9]
   1335e:	f001 011f 	and.w	r1, r1, #31
   13362:	f884 1091 	strb.w	r1, [r4, #145]	; 0x91
   13366:	7a40      	ldrb	r0, [r0, #9]
   13368:	0940      	lsrs	r0, r0, #5
   1336a:	f884 0175 	strb.w	r0, [r4, #373]	; 0x175
   1336e:	f104 0062 	add.w	r0, r4, #98	; 0x62
   13372:	7205      	strb	r5, [r0, #8]
   13374:	7245      	strb	r5, [r0, #9]
   13376:	2101      	movs	r1, #1
   13378:	7281      	strb	r1, [r0, #10]
   1337a:	2100      	movs	r1, #0
   1337c:	3836      	subs	r0, #54	; 0x36
   1337e:	f006 fd9d 	bl	19ebc <sym_43VAZS4NQXUMOPHD7W7SYFZ3WJ6KGQYQH6UOYPQ>
   13382:	f898 000e 	ldrb.w	r0, [r8, #14]
   13386:	f884 006e 	strb.w	r0, [r4, #110]	; 0x6e
   1338a:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
   1338e:	0000      	.short	0x0000
   13390:	200000f0 	.word	0x200000f0
   13394:	b570      	push	{r4, r5, r6, lr}
   13396:	4d07      	ldr	r5, [pc, #28]	; (133b4 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x768>)
   13398:	4604      	mov	r4, r0
   1339a:	f100 0149 	add.w	r1, r0, #73	; 0x49
   1339e:	6868      	ldr	r0, [r5, #4]
   133a0:	f006 fc3e 	bl	19c20 <sym_5JID42ESVW3PB7AVBNALO6R7DLTBIV3DUQMUPQY>
   133a4:	f894 1048 	ldrb.w	r1, [r4, #72]	; 0x48
   133a8:	6868      	ldr	r0, [r5, #4]
   133aa:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
   133ae:	f006 bc3d 	b.w	19c2c <sym_K5Q3WMSYKQOD5SDB35E6WH2TTH6JWICUFV7AXJA>
   133b2:	0000      	.short	0x0000
   133b4:	200000f0 	.word	0x200000f0
   133b8:	00555555 	.word	0x00555555
   133bc:	00012bd5 	.word	0x00012bd5
   133c0:	00012a61 	.word	0x00012a61
   133c4:	00012b51 	.word	0x00012b51
   133c8:	00000000 	.word	0x00000000
   133cc:	00012b29 	.word	0x00012b29
   133d0:	00012b81 	.word	0x00012b81
   133d4:	0001a1c3 	.word	0x0001a1c3
   133d8:	0001a1c9 	.word	0x0001a1c9
   133dc:	00012dcd 	.word	0x00012dcd
   133e0:	00012df1 	.word	0x00012df1
   133e4:	000132f5 	.word	0x000132f5
   133e8:	000133d8 	.word	0x000133d8
   133ec:	000133d0 	.word	0x000133d0
   133f0:	000133cc 	.word	0x000133cc

000133f4 <sym_6FVWF5AWPR7EN7BPHS4APSIUXYFZQTTZCMRDKPY>:
   133f4:	b510      	push	{r4, lr}
   133f6:	1e42      	subs	r2, r0, #1
   133f8:	2a02      	cmp	r2, #2
   133fa:	d901      	bls.n	13400 <sym_6FVWF5AWPR7EN7BPHS4APSIUXYFZQTTZCMRDKPY+0xc>
   133fc:	21ca      	movs	r1, #202	; 0xca
   133fe:	e009      	b.n	13414 <sym_6FVWF5AWPR7EN7BPHS4APSIUXYFZQTTZCMRDKPY+0x20>
   13400:	1e40      	subs	r0, r0, #1
   13402:	2910      	cmp	r1, #16
   13404:	d009      	beq.n	1341a <sym_6FVWF5AWPR7EN7BPHS4APSIUXYFZQTTZCMRDKPY+0x26>
   13406:	2912      	cmp	r1, #18
   13408:	d00c      	beq.n	13424 <sym_6FVWF5AWPR7EN7BPHS4APSIUXYFZQTTZCMRDKPY+0x30>
   1340a:	2913      	cmp	r1, #19
   1340c:	d00a      	beq.n	13424 <sym_6FVWF5AWPR7EN7BPHS4APSIUXYFZQTTZCMRDKPY+0x30>
   1340e:	2915      	cmp	r1, #21
   13410:	d005      	beq.n	1341e <sym_6FVWF5AWPR7EN7BPHS4APSIUXYFZQTTZCMRDKPY+0x2a>
   13412:	21d8      	movs	r1, #216	; 0xd8
   13414:	202f      	movs	r0, #47	; 0x2f
   13416:	f7fc fde5 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   1341a:	4905      	ldr	r1, [pc, #20]	; (13430 <sym_6FVWF5AWPR7EN7BPHS4APSIUXYFZQTTZCMRDKPY+0x3c>)
   1341c:	e004      	b.n	13428 <sym_6FVWF5AWPR7EN7BPHS4APSIUXYFZQTTZCMRDKPY+0x34>
   1341e:	4904      	ldr	r1, [pc, #16]	; (13430 <sym_6FVWF5AWPR7EN7BPHS4APSIUXYFZQTTZCMRDKPY+0x3c>)
   13420:	1d89      	adds	r1, r1, #6
   13422:	e001      	b.n	13428 <sym_6FVWF5AWPR7EN7BPHS4APSIUXYFZQTTZCMRDKPY+0x34>
   13424:	4902      	ldr	r1, [pc, #8]	; (13430 <sym_6FVWF5AWPR7EN7BPHS4APSIUXYFZQTTZCMRDKPY+0x3c>)
   13426:	1f89      	subs	r1, r1, #6
   13428:	f831 0010 	ldrh.w	r0, [r1, r0, lsl #1]
   1342c:	bd10      	pop	{r4, pc}
   1342e:	0000      	.short	0x0000
   13430:	0001a416 	.word	0x0001a416

00013434 <sym_CWVFJQ3UTS5MGUYKHB563UDBBB3FBCXUIVZDU2I>:
   13434:	1e42      	subs	r2, r0, #1
   13436:	b510      	push	{r4, lr}
   13438:	b2d2      	uxtb	r2, r2
   1343a:	2a01      	cmp	r2, #1
   1343c:	d903      	bls.n	13446 <sym_CWVFJQ3UTS5MGUYKHB563UDBBB3FBCXUIVZDU2I+0x12>
   1343e:	291d      	cmp	r1, #29
   13440:	d001      	beq.n	13446 <sym_CWVFJQ3UTS5MGUYKHB563UDBBB3FBCXUIVZDU2I+0x12>
   13442:	21ee      	movs	r1, #238	; 0xee
   13444:	e00d      	b.n	13462 <sym_CWVFJQ3UTS5MGUYKHB563UDBBB3FBCXUIVZDU2I+0x2e>
   13446:	2913      	cmp	r1, #19
   13448:	d013      	beq.n	13472 <sym_CWVFJQ3UTS5MGUYKHB563UDBBB3FBCXUIVZDU2I+0x3e>
   1344a:	dc04      	bgt.n	13456 <sym_CWVFJQ3UTS5MGUYKHB563UDBBB3FBCXUIVZDU2I+0x22>
   1344c:	2910      	cmp	r1, #16
   1344e:	d00b      	beq.n	13468 <sym_CWVFJQ3UTS5MGUYKHB563UDBBB3FBCXUIVZDU2I+0x34>
   13450:	2912      	cmp	r1, #18
   13452:	d104      	bne.n	1345e <sym_CWVFJQ3UTS5MGUYKHB563UDBBB3FBCXUIVZDU2I+0x2a>
   13454:	e00d      	b.n	13472 <sym_CWVFJQ3UTS5MGUYKHB563UDBBB3FBCXUIVZDU2I+0x3e>
   13456:	2915      	cmp	r1, #21
   13458:	d008      	beq.n	1346c <sym_CWVFJQ3UTS5MGUYKHB563UDBBB3FBCXUIVZDU2I+0x38>
   1345a:	291d      	cmp	r1, #29
   1345c:	d00e      	beq.n	1347c <sym_CWVFJQ3UTS5MGUYKHB563UDBBB3FBCXUIVZDU2I+0x48>
   1345e:	f44f 7181 	mov.w	r1, #258	; 0x102
   13462:	202f      	movs	r0, #47	; 0x2f
   13464:	f7fc fdbe 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   13468:	4807      	ldr	r0, [pc, #28]	; (13488 <sym_CWVFJQ3UTS5MGUYKHB563UDBBB3FBCXUIVZDU2I+0x54>)
   1346a:	e004      	b.n	13476 <sym_CWVFJQ3UTS5MGUYKHB563UDBBB3FBCXUIVZDU2I+0x42>
   1346c:	4806      	ldr	r0, [pc, #24]	; (13488 <sym_CWVFJQ3UTS5MGUYKHB563UDBBB3FBCXUIVZDU2I+0x54>)
   1346e:	3008      	adds	r0, #8
   13470:	e001      	b.n	13476 <sym_CWVFJQ3UTS5MGUYKHB563UDBBB3FBCXUIVZDU2I+0x42>
   13472:	4805      	ldr	r0, [pc, #20]	; (13488 <sym_CWVFJQ3UTS5MGUYKHB563UDBBB3FBCXUIVZDU2I+0x54>)
   13474:	1d00      	adds	r0, r0, #4
   13476:	f830 0012 	ldrh.w	r0, [r0, r2, lsl #1]
   1347a:	bd10      	pop	{r4, pc}
   1347c:	f240 315a 	movw	r1, #858	; 0x35a
   13480:	fb10 f001 	smulbb	r0, r0, r1
   13484:	bd10      	pop	{r4, pc}
   13486:	0000      	.short	0x0000
   13488:	0001a404 	.word	0x0001a404

0001348c <sym_5AXOP4FMWSDQG27BL6BIS5GAVXQZMPGL37SAGQA>:
   1348c:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   13490:	4604      	mov	r4, r0
   13492:	f890 00b4 	ldrb.w	r0, [r0, #180]	; 0xb4
   13496:	4615      	mov	r5, r2
   13498:	460f      	mov	r7, r1
   1349a:	2800      	cmp	r0, #0
   1349c:	d15b      	bne.n	13556 <sym_5AXOP4FMWSDQG27BL6BIS5GAVXQZMPGL37SAGQA+0xca>
   1349e:	4621      	mov	r1, r4
   134a0:	4843      	ldr	r0, [pc, #268]	; (135b0 <sym_5AXOP4FMWSDQG27BL6BIS5GAVXQZMPGL37SAGQA+0x124>)
   134a2:	f7fb f8ad 	bl	e600 <sym_RPHL2J7CVNKM6GKLDIFI4NVAPZE2FHTYW4VJSJI>
   134a6:	4606      	mov	r6, r0
   134a8:	2820      	cmp	r0, #32
   134aa:	d054      	beq.n	13556 <sym_5AXOP4FMWSDQG27BL6BIS5GAVXQZMPGL37SAGQA+0xca>
   134ac:	2234      	movs	r2, #52	; 0x34
   134ae:	2100      	movs	r1, #0
   134b0:	f104 00a0 	add.w	r0, r4, #160	; 0xa0
   134b4:	f004 fe7f 	bl	181b6 <sym_VSILKYHVQ5DVF6LG5MG267DQVA3A2XZQ6FSCLXA>
   134b8:	f884 60a0 	strb.w	r6, [r4, #160]	; 0xa0
   134bc:	2601      	movs	r6, #1
   134be:	f8c4 70a4 	str.w	r7, [r4, #164]	; 0xa4
   134c2:	f884 60b4 	strb.w	r6, [r4, #180]	; 0xb4
   134c6:	b15f      	cbz	r7, 134e0 <sym_5AXOP4FMWSDQG27BL6BIS5GAVXQZMPGL37SAGQA+0x54>
   134c8:	2101      	movs	r1, #1
   134ca:	f507 7092 	add.w	r0, r7, #292	; 0x124
   134ce:	f7fc fe31 	bl	10134 <sym_CVMXQJYKHZVHIOMGOYEICPLVAIQNUBL6USVNZSA>
   134d2:	f897 0124 	ldrb.w	r0, [r7, #292]	; 0x124
   134d6:	f000 0007 	and.w	r0, r0, #7
   134da:	1c40      	adds	r0, r0, #1
   134dc:	f887 0124 	strb.w	r0, [r7, #292]	; 0x124
   134e0:	4620      	mov	r0, r4
   134e2:	f007 f978 	bl	1a7d6 <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x2dc>
   134e6:	f8a4 00c0 	strh.w	r0, [r4, #192]	; 0xc0
   134ea:	2003      	movs	r0, #3
   134ec:	f884 00c2 	strb.w	r0, [r4, #194]	; 0xc2
   134f0:	f884 60c3 	strb.w	r6, [r4, #195]	; 0xc3
   134f4:	2700      	movs	r7, #0
   134f6:	f804 7fb8 	strb.w	r7, [r4, #184]!
   134fa:	f7fa faed 	bl	dad8 <sym_MGCUANL7Q2CUPWKYBFLWSWSNXIEEYBPZTHT2VZI>
   134fe:	8921      	ldrh	r1, [r4, #8]
   13500:	3cb8      	subs	r4, #184	; 0xb8
   13502:	4288      	cmp	r0, r1
   13504:	d800      	bhi.n	13508 <sym_5AXOP4FMWSDQG27BL6BIS5GAVXQZMPGL37SAGQA+0x7c>
   13506:	4608      	mov	r0, r1
   13508:	f200 60bf 	addw	r0, r0, #1727	; 0x6bf
   1350c:	fa1f f880 	uxth.w	r8, r0
   13510:	4620      	mov	r0, r4
   13512:	f006 fe03 	bl	1a11c <sym_XRU76NANM3C4EMKWQU3DF6CELSRNDV6766IKPJI>
   13516:	b308      	cbz	r0, 1355c <sym_5AXOP4FMWSDQG27BL6BIS5GAVXQZMPGL37SAGQA+0xd0>
   13518:	f008 fb7b 	bl	1bc12 <sym_R2552DB5ZKNDWW24PBGEV77VCDBC44WVAYRCUXQ>
   1351c:	f500 60cd 	add.w	r0, r0, #1640	; 0x668
   13520:	b281      	uxth	r1, r0
   13522:	4628      	mov	r0, r5
   13524:	f004 fc8c 	bl	17e40 <sym_XEJLNUQGS5P4R5IXDJFF6NE6C2FZWRZYDQOGMPI>
   13528:	4428      	add	r0, r5
   1352a:	f8c4 00bc 	str.w	r0, [r4, #188]	; 0xbc
   1352e:	34a4      	adds	r4, #164	; 0xa4
   13530:	f004 fc52 	bl	17dd8 <sym_KN3Y3AMHXOHKS2EMALWM5VNLRDL2MPKHIP6XPDA>
   13534:	4641      	mov	r1, r8
   13536:	f7fa f95f 	bl	d7f8 <sym_2O2USXABBLL6KC7E5NJFOHR6JLZMSV4AU5ZYH3Q>
   1353a:	6220      	str	r0, [r4, #32]
   1353c:	f804 7c03 	strb.w	r7, [r4, #-3]
   13540:	7126      	strb	r6, [r4, #4]
   13542:	2001      	movs	r0, #1
   13544:	f006 ff57 	bl	1a3f6 <sym_FHGEXLJ7V34P3MECCDTYSDEZTZHFJ2TXYSFZQHQ>
   13548:	f500 7084 	add.w	r0, r0, #264	; 0x108
   1354c:	1a28      	subs	r0, r5, r0
   1354e:	62a7      	str	r7, [r4, #40]	; 0x28
   13550:	60a0      	str	r0, [r4, #8]
   13552:	3ca4      	subs	r4, #164	; 0xa4
   13554:	e017      	b.n	13586 <sym_5AXOP4FMWSDQG27BL6BIS5GAVXQZMPGL37SAGQA+0xfa>
   13556:	200c      	movs	r0, #12
   13558:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
   1355c:	4620      	mov	r0, r4
   1355e:	f007 f88d 	bl	1a67c <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x182>
   13562:	f844 0fbc 	str.w	r0, [r4, #188]!
   13566:	f804 6c1b 	strb.w	r6, [r4, #-27]
   1356a:	f004 fc35 	bl	17dd8 <sym_KN3Y3AMHXOHKS2EMALWM5VNLRDL2MPKHIP6XPDA>
   1356e:	4606      	mov	r6, r0
   13570:	2000      	movs	r0, #0
   13572:	f007 f9dc 	bl	1a92e <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x434>
   13576:	eb00 0108 	add.w	r1, r0, r8
   1357a:	4630      	mov	r0, r6
   1357c:	f7fa f93c 	bl	d7f8 <sym_2O2USXABBLL6KC7E5NJFOHR6JLZMSV4AU5ZYH3Q>
   13580:	6125      	str	r5, [r4, #16]
   13582:	60a0      	str	r0, [r4, #8]
   13584:	3cbc      	subs	r4, #188	; 0xbc
   13586:	f104 01b8 	add.w	r1, r4, #184	; 0xb8
   1358a:	f894 00a0 	ldrb.w	r0, [r4, #160]	; 0xa0
   1358e:	f007 f920 	bl	1a7d2 <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x2d8>
   13592:	b138      	cbz	r0, 135a4 <sym_5AXOP4FMWSDQG27BL6BIS5GAVXQZMPGL37SAGQA+0x118>
   13594:	f8a4 70c8 	strh.w	r7, [r4, #200]	; 0xc8
   13598:	2100      	movs	r1, #0
   1359a:	4620      	mov	r0, r4
   1359c:	f006 fde0 	bl	1a160 <sym_WAXMY55QAGCTLTIDQV34FPT2PPSDRT5VDN7EYYY>
   135a0:	2000      	movs	r0, #0
   135a2:	e7d9      	b.n	13558 <sym_5AXOP4FMWSDQG27BL6BIS5GAVXQZMPGL37SAGQA+0xcc>
   135a4:	f44f 71f9 	mov.w	r1, #498	; 0x1f2
   135a8:	2030      	movs	r0, #48	; 0x30
   135aa:	f7fc fd1b 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   135ae:	0000      	.short	0x0000
   135b0:	00013cad 	.word	0x00013cad

000135b4 <sym_2MTQAETLPZUE4ZJFGJBDUADTDDEDQL67CNLDYRY>:
   135b4:	4803      	ldr	r0, [pc, #12]	; (135c4 <sym_2MTQAETLPZUE4ZJFGJBDUADTDDEDQL67CNLDYRY+0x10>)
   135b6:	2100      	movs	r1, #0
   135b8:	7001      	strb	r1, [r0, #0]
   135ba:	2201      	movs	r2, #1
   135bc:	7082      	strb	r2, [r0, #2]
   135be:	7041      	strb	r1, [r0, #1]
   135c0:	f006 bf84 	b.w	1a4cc <sym_6PZGCXLPPNIPYHSAJRHQXJCKUI2SGZWI2B4DQZA>
   135c4:	20000100 	.word	0x20000100

000135c8 <sym_WMA2OWGJYGOIIQV6R2LKF37IWYQHWWBT5LUJG6A>:
   135c8:	4901      	ldr	r1, [pc, #4]	; (135d0 <sym_WMA2OWGJYGOIIQV6R2LKF37IWYQHWWBT5LUJG6A+0x8>)
   135ca:	7008      	strb	r0, [r1, #0]
   135cc:	4770      	bx	lr
   135ce:	0000      	.short	0x0000
   135d0:	20000100 	.word	0x20000100

000135d4 <sym_2XQD73Z3W4NFFHWTLZCIS7IQ3ACFNR3KKEBKCJQ>:
   135d4:	4905      	ldr	r1, [pc, #20]	; (135ec <sym_2XQD73Z3W4NFFHWTLZCIS7IQ3ACFNR3KKEBKCJQ+0x18>)
   135d6:	f44f 727a 	mov.w	r2, #1000	; 0x3e8
   135da:	fbb1 f1f2 	udiv	r1, r1, r2
   135de:	b510      	push	{r4, lr}
   135e0:	f501 7123 	add.w	r1, r1, #652	; 0x28c
   135e4:	f006 fc83 	bl	19eee <sym_NEHMDBQBGZXV6OFKIS4NBQDVMDAPMSPSGUQZB7A>
   135e8:	b280      	uxth	r0, r0
   135ea:	bd10      	pop	{r4, pc}
   135ec:	0001527d 	.word	0x0001527d

000135f0 <sym_FQCHK2QLF7THGK7G4A4OWWNXI3K2TVYTTB4U4GY>:
   135f0:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   135f4:	4c10      	ldr	r4, [pc, #64]	; (13638 <sym_FQCHK2QLF7THGK7G4A4OWWNXI3K2TVYTTB4U4GY+0x48>)
   135f6:	e9d4 5701 	ldrd	r5, r7, [r4, #4]
   135fa:	f003 fc8d 	bl	16f18 <sym_GI7KSEEMTJQ7HR2XTQJ6A3EAB54YYLMWKNL2RBA>
   135fe:	4606      	mov	r6, r0
   13600:	7820      	ldrb	r0, [r4, #0]
   13602:	b128      	cbz	r0, 13610 <sym_FQCHK2QLF7THGK7G4A4OWWNXI3K2TVYTTB4U4GY+0x20>
   13604:	4632      	mov	r2, r6
   13606:	4639      	mov	r1, r7
   13608:	4628      	mov	r0, r5
   1360a:	f005 ffc8 	bl	1959e <sym_75VOI5ZNFW3OXMHUCY2QF6IZX2BBZSQKA7XVCPQ>
   1360e:	4605      	mov	r5, r0
   13610:	6860      	ldr	r0, [r4, #4]
   13612:	4285      	cmp	r5, r0
   13614:	d005      	beq.n	13622 <sym_FQCHK2QLF7THGK7G4A4OWWNXI3K2TVYTTB4U4GY+0x32>
   13616:	68e1      	ldr	r1, [r4, #12]
   13618:	1a28      	subs	r0, r5, r0
   1361a:	4408      	add	r0, r1
   1361c:	60e0      	str	r0, [r4, #12]
   1361e:	f7fb f8f9 	bl	e814 <sym_URFU24FFGR2HYB6CCPIPKPNZNMTWHKDYOATUJNY>
   13622:	6065      	str	r5, [r4, #4]
   13624:	42ae      	cmp	r6, r5
   13626:	d801      	bhi.n	1362c <sym_FQCHK2QLF7THGK7G4A4OWWNXI3K2TVYTTB4U4GY+0x3c>
   13628:	7860      	ldrb	r0, [r4, #1]
   1362a:	b110      	cbz	r0, 13632 <sym_FQCHK2QLF7THGK7G4A4OWWNXI3K2TVYTTB4U4GY+0x42>
   1362c:	2000      	movs	r0, #0
   1362e:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
   13632:	2001      	movs	r0, #1
   13634:	e7fb      	b.n	1362e <sym_FQCHK2QLF7THGK7G4A4OWWNXI3K2TVYTTB4U4GY+0x3e>
   13636:	0000      	.short	0x0000
   13638:	20000100 	.word	0x20000100

0001363c <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI>:
   1363c:	b570      	push	{r4, r5, r6, lr}
   1363e:	4c22      	ldr	r4, [pc, #136]	; (136c8 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x8c>)
   13640:	4605      	mov	r5, r0
   13642:	2906      	cmp	r1, #6
   13644:	d23c      	bcs.n	136c0 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x84>
   13646:	e8df f001 	tbb	[pc, r1]
   1364a:	0b05      	.short	0x0b05
   1364c:	250f0e03 	.word	0x250f0e03
   13650:	2100      	movs	r1, #0
   13652:	e000      	b.n	13656 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x1a>
   13654:	2101      	movs	r1, #1
   13656:	4628      	mov	r0, r5
   13658:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
   1365c:	f000 b8ec 	b.w	13838 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x1fc>
   13660:	2003      	movs	r0, #3
   13662:	f885 0134 	strb.w	r0, [r5, #308]	; 0x134
   13666:	bd70      	pop	{r4, r5, r6, pc}
   13668:	f003 fc8a 	bl	16f80 <sym_YKV5VFBUMD7K2LRWZ6WWYBEL5ESMQ4SDYYBDIPI>
   1366c:	f8c5 0170 	str.w	r0, [r5, #368]	; 0x170
   13670:	f895 006b 	ldrb.w	r0, [r5, #107]	; 0x6b
   13674:	f008 fb66 	bl	1bd44 <sym_V67AIMSO57NYVNGXZF2PDQSJQJLITHU4KD4CKAY>
   13678:	f8d5 1170 	ldr.w	r1, [r5, #368]	; 0x170
   1367c:	1a08      	subs	r0, r1, r0
   1367e:	6861      	ldr	r1, [r4, #4]
   13680:	4401      	add	r1, r0
   13682:	6061      	str	r1, [r4, #4]
   13684:	68a1      	ldr	r1, [r4, #8]
   13686:	4408      	add	r0, r1
   13688:	60a0      	str	r0, [r4, #8]
   1368a:	4628      	mov	r0, r5
   1368c:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
   13690:	f007 b832 	b.w	1a6f8 <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x1fe>
   13694:	f003 fc40 	bl	16f18 <sym_GI7KSEEMTJQ7HR2XTQJ6A3EAB54YYLMWKNL2RBA>
   13698:	4601      	mov	r1, r0
   1369a:	2200      	movs	r2, #0
   1369c:	69a0      	ldr	r0, [r4, #24]
   1369e:	f007 f8fc 	bl	1a89a <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x3a0>
   136a2:	69a0      	ldr	r0, [r4, #24]
   136a4:	4909      	ldr	r1, [pc, #36]	; (136cc <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x90>)
   136a6:	f8d0 20a4 	ldr.w	r2, [r0, #164]	; 0xa4
   136aa:	f890 00a0 	ldrb.w	r0, [r0, #160]	; 0xa0
   136ae:	f7fa fe69 	bl	e384 <sym_MLZNDMDYRI6WNTNQ4RIQGPD423CK7RT4YVI5CAI>
   136b2:	2800      	cmp	r0, #0
   136b4:	d1d7      	bne.n	13666 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x2a>
   136b6:	f240 7161 	movw	r1, #1889	; 0x761
   136ba:	2030      	movs	r0, #48	; 0x30
   136bc:	f7fc fc92 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   136c0:	f44f 61ef 	mov.w	r1, #1912	; 0x778
   136c4:	e7f9      	b.n	136ba <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x7e>
   136c6:	0000      	.short	0x0000
   136c8:	20000100 	.word	0x20000100
   136cc:	0001a959 	.word	0x0001a959
   136d0:	b510      	push	{r4, lr}
   136d2:	280c      	cmp	r0, #12
   136d4:	d304      	bcc.n	136e0 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0xa4>
   136d6:	f240 3103 	movw	r1, #771	; 0x303
   136da:	2006      	movs	r0, #6
   136dc:	f7fc fc82 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   136e0:	4901      	ldr	r1, [pc, #4]	; (136e8 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0xac>)
   136e2:	f831 0010 	ldrh.w	r0, [r1, r0, lsl #1]
   136e6:	bd10      	pop	{r4, pc}
   136e8:	0001ab52 	.word	0x0001ab52
   136ec:	b5fe      	push	{r1, r2, r3, r4, r5, r6, r7, lr}
   136ee:	4c18      	ldr	r4, [pc, #96]	; (13750 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x114>)
   136f0:	2001      	movs	r0, #1
   136f2:	7060      	strb	r0, [r4, #1]
   136f4:	f64f 75ff 	movw	r5, #65535	; 0xffff
   136f8:	e00b      	b.n	13712 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0xd6>
   136fa:	2100      	movs	r1, #0
   136fc:	f005 fcf5 	bl	190ea <sym_5X75WALYYBUWN4XT5LYOZBIGSZHVNFKF5J4CSQI>
   13700:	0006      	movs	r6, r0
   13702:	d010      	beq.n	13726 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0xea>
   13704:	f896 0168 	ldrb.w	r0, [r6, #360]	; 0x168
   13708:	f7fa fe6e 	bl	e3e8 <sym_DQFOGVCNU4NTOMWSL3IYDNCMIXT2LT7SZHL5IHI>
   1370c:	4630      	mov	r0, r6
   1370e:	f007 f8b7 	bl	1a880 <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x386>
   13712:	4669      	mov	r1, sp
   13714:	2000      	movs	r0, #0
   13716:	f005 fcf2 	bl	190fe <sym_3SKPFA625PNDCAQQU2M5BY77GYLRCXEEFZ5JBTY>
   1371a:	b180      	cbz	r0, 1373e <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x102>
   1371c:	f44f 7187 	mov.w	r1, #270	; 0x10e
   13720:	2030      	movs	r0, #48	; 0x30
   13722:	f7fc fc5f 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   13726:	f44f 7197 	mov.w	r1, #302	; 0x12e
   1372a:	e7f9      	b.n	13720 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0xe4>
   1372c:	9802      	ldr	r0, [sp, #8]
   1372e:	b130      	cbz	r0, 1373e <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x102>
   13730:	f890 1134 	ldrb.w	r1, [r0, #308]	; 0x134
   13734:	b119      	cbz	r1, 1373e <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x102>
   13736:	8800      	ldrh	r0, [r0, #0]
   13738:	42a8      	cmp	r0, r5
   1373a:	d1de      	bne.n	136fa <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0xbe>
   1373c:	e004      	b.n	13748 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x10c>
   1373e:	4668      	mov	r0, sp
   13740:	f7fc fe96 	bl	10470 <sym_6I4XEOIW7LI2E3Z53L54ZHQQHYICXR4H4JQWXLA>
   13744:	2800      	cmp	r0, #0
   13746:	d0f1      	beq.n	1372c <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0xf0>
   13748:	2000      	movs	r0, #0
   1374a:	7060      	strb	r0, [r4, #1]
   1374c:	bdfe      	pop	{r1, r2, r3, r4, r5, r6, r7, pc}
   1374e:	0000      	.short	0x0000
   13750:	20000100 	.word	0x20000100
   13754:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
   13758:	4604      	mov	r4, r0
   1375a:	4836      	ldr	r0, [pc, #216]	; (13834 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x1f8>)
   1375c:	461e      	mov	r6, r3
   1375e:	4690      	mov	r8, r2
   13760:	7880      	ldrb	r0, [r0, #2]
   13762:	4689      	mov	r9, r1
   13764:	2500      	movs	r5, #0
   13766:	b368      	cbz	r0, 137c4 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x188>
   13768:	f7fc f8d4 	bl	f914 <sym_4CZSFTTT34WDYFZKE2NSCSVSYLPHLZYN7QUTGHY>
   1376c:	b350      	cbz	r0, 137c4 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x188>
   1376e:	f8b4 0120 	ldrh.w	r0, [r4, #288]	; 0x120
   13772:	2802      	cmp	r0, #2
   13774:	d326      	bcc.n	137c4 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x188>
   13776:	f894 0134 	ldrb.w	r0, [r4, #308]	; 0x134
   1377a:	2802      	cmp	r0, #2
   1377c:	d022      	beq.n	137c4 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x188>
   1377e:	f894 014a 	ldrb.w	r0, [r4, #330]	; 0x14a
   13782:	b9f8      	cbnz	r0, 137c4 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x188>
   13784:	f894 0175 	ldrb.w	r0, [r4, #373]	; 0x175
   13788:	f7ff ffa2 	bl	136d0 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x94>
   1378c:	f500 60c8 	add.w	r0, r0, #1600	; 0x640
   13790:	b281      	uxth	r1, r0
   13792:	8031      	strh	r1, [r6, #0]
   13794:	f894 0134 	ldrb.w	r0, [r4, #308]	; 0x134
   13798:	2700      	movs	r7, #0
   1379a:	2801      	cmp	r0, #1
   1379c:	d015      	beq.n	137ca <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x18e>
   1379e:	68e0      	ldr	r0, [r4, #12]
   137a0:	f004 fb4e 	bl	17e40 <sym_XEJLNUQGS5P4R5IXDJFF6NE6C2FZWRZYDQOGMPI>
   137a4:	f8b4 210e 	ldrh.w	r2, [r4, #270]	; 0x10e
   137a8:	b280      	uxth	r0, r0
   137aa:	4442      	add	r2, r8
   137ac:	eba2 0109 	sub.w	r1, r2, r9
   137b0:	f8d4 213c 	ldr.w	r2, [r4, #316]	; 0x13c
   137b4:	f8c4 013c 	str.w	r0, [r4, #316]	; 0x13c
   137b8:	1a82      	subs	r2, r0, r2
   137ba:	fb01 7502 	mla	r5, r1, r2, r7
   137be:	2001      	movs	r0, #1
   137c0:	f884 014a 	strb.w	r0, [r4, #330]	; 0x14a
   137c4:	4628      	mov	r0, r5
   137c6:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
   137ca:	f894 0081 	ldrb.w	r0, [r4, #129]	; 0x81
   137ce:	2803      	cmp	r0, #3
   137d0:	d02c      	beq.n	1382c <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x1f0>
   137d2:	2101      	movs	r1, #1
   137d4:	2000      	movs	r0, #0
   137d6:	f005 ff9c 	bl	19712 <sym_QOK2KYWK62QNZBQRPK2GPAU2IEJXSELK32IAUUA>
   137da:	6a21      	ldr	r1, [r4, #32]
   137dc:	1847      	adds	r7, r0, r1
   137de:	f8d4 012c 	ldr.w	r0, [r4, #300]	; 0x12c
   137e2:	8831      	ldrh	r1, [r6, #0]
   137e4:	34d0      	adds	r4, #208	; 0xd0
   137e6:	f004 fb2b 	bl	17e40 <sym_XEJLNUQGS5P4R5IXDJFF6NE6C2FZWRZYDQOGMPI>
   137ea:	6da2      	ldr	r2, [r4, #88]	; 0x58
   137ec:	6e21      	ldr	r1, [r4, #96]	; 0x60
   137ee:	1a82      	subs	r2, r0, r2
   137f0:	fb01 5502 	mla	r5, r1, r2, r5
   137f4:	65a0      	str	r0, [r4, #88]	; 0x58
   137f6:	8831      	ldrh	r1, [r6, #0]
   137f8:	4638      	mov	r0, r7
   137fa:	f004 fb21 	bl	17e40 <sym_XEJLNUQGS5P4R5IXDJFF6NE6C2FZWRZYDQOGMPI>
   137fe:	6ea1      	ldr	r1, [r4, #104]	; 0x68
   13800:	66a0      	str	r0, [r4, #104]	; 0x68
   13802:	1a41      	subs	r1, r0, r1
   13804:	440d      	add	r5, r1
   13806:	8831      	ldrh	r1, [r6, #0]
   13808:	f854 0cc4 	ldr.w	r0, [r4, #-196]
   1380c:	f004 fb18 	bl	17e40 <sym_XEJLNUQGS5P4R5IXDJFF6NE6C2FZWRZYDQOGMPI>
   13810:	8fe2      	ldrh	r2, [r4, #62]	; 0x3e
   13812:	4442      	add	r2, r8
   13814:	eba2 0109 	sub.w	r1, r2, r9
   13818:	6e22      	ldr	r2, [r4, #96]	; 0x60
   1381a:	1a89      	subs	r1, r1, r2
   1381c:	6ee2      	ldr	r2, [r4, #108]	; 0x6c
   1381e:	1e49      	subs	r1, r1, #1
   13820:	1a82      	subs	r2, r0, r2
   13822:	fb01 5502 	mla	r5, r1, r2, r5
   13826:	66e0      	str	r0, [r4, #108]	; 0x6c
   13828:	3cd0      	subs	r4, #208	; 0xd0
   1382a:	e7c8      	b.n	137be <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x182>
   1382c:	f8d4 012c 	ldr.w	r0, [r4, #300]	; 0x12c
   13830:	e7d3      	b.n	137da <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x19e>
   13832:	0000      	.short	0x0000
   13834:	20000100 	.word	0x20000100
   13838:	b538      	push	{r3, r4, r5, lr}
   1383a:	2500      	movs	r5, #0
   1383c:	4604      	mov	r4, r0
   1383e:	2901      	cmp	r1, #1
   13840:	d102      	bne.n	13848 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x20c>
   13842:	4811      	ldr	r0, [pc, #68]	; (13888 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x24c>)
   13844:	7840      	ldrb	r0, [r0, #1]
   13846:	b178      	cbz	r0, 13868 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x22c>
   13848:	2004      	movs	r0, #4
   1384a:	f884 0134 	strb.w	r0, [r4, #308]	; 0x134
   1384e:	bf00      	nop
   13850:	f006 ff4b 	bl	1a6ea <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x1f0>
   13854:	f8a4 5166 	strh.w	r5, [r4, #358]	; 0x166
   13858:	f8b4 0074 	ldrh.w	r0, [r4, #116]	; 0x74
   1385c:	f8a4 0146 	strh.w	r0, [r4, #326]	; 0x146
   13860:	f504 7495 	add.w	r4, r4, #298	; 0x12a
   13864:	77e5      	strb	r5, [r4, #31]
   13866:	bd38      	pop	{r3, r4, r5, pc}
   13868:	9500      	str	r5, [sp, #0]
   1386a:	f8b4 10fc 	ldrh.w	r1, [r4, #252]	; 0xfc
   1386e:	2301      	movs	r3, #1
   13870:	2200      	movs	r2, #0
   13872:	4620      	mov	r0, r4
   13874:	f000 f80a 	bl	1388c <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x250>
   13878:	2800      	cmp	r0, #0
   1387a:	d0e9      	beq.n	13850 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x214>
   1387c:	f240 61d4 	movw	r1, #1748	; 0x6d4
   13880:	2030      	movs	r0, #48	; 0x30
   13882:	f7fc fbaf 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   13886:	0000      	.short	0x0000
   13888:	20000100 	.word	0x20000100
   1388c:	e92d 4fff 	stmdb	sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
   13890:	4604      	mov	r4, r0
   13892:	b085      	sub	sp, #20
   13894:	f890 006b 	ldrb.w	r0, [r0, #107]	; 0x6b
   13898:	469a      	mov	sl, r3
   1389a:	e9cd 3000 	strd	r3, r0, [sp]
   1389e:	460f      	mov	r7, r1
   138a0:	f008 f9b7 	bl	1bc12 <sym_R2552DB5ZKNDWW24PBGEV77VCDBC44WVAYRCUXQ>
   138a4:	4605      	mov	r5, r0
   138a6:	f894 0175 	ldrb.w	r0, [r4, #373]	; 0x175
   138aa:	f7ff ff11 	bl	136d0 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x94>
   138ae:	4428      	add	r0, r5
   138b0:	f8ad 0008 	strh.w	r0, [sp, #8]
   138b4:	f894 007e 	ldrb.w	r0, [r4, #126]	; 0x7e
   138b8:	280d      	cmp	r0, #13
   138ba:	d004      	beq.n	138c6 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x28a>
   138bc:	2000      	movs	r0, #0
   138be:	9003      	str	r0, [sp, #12]
   138c0:	9807      	ldr	r0, [sp, #28]
   138c2:	b110      	cbz	r0, 138ca <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x28e>
   138c4:	e02e      	b.n	13924 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x2e8>
   138c6:	2001      	movs	r0, #1
   138c8:	e7f9      	b.n	138be <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x282>
   138ca:	f894 0134 	ldrb.w	r0, [r4, #308]	; 0x134
   138ce:	2803      	cmp	r0, #3
   138d0:	d128      	bne.n	13924 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x2e8>
   138d2:	9803      	ldr	r0, [sp, #12]
   138d4:	b330      	cbz	r0, 13924 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x2e8>
   138d6:	f8b4 0194 	ldrh.w	r0, [r4, #404]	; 0x194
   138da:	42b8      	cmp	r0, r7
   138dc:	d122      	bne.n	13924 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x2e8>
   138de:	f8d4 013c 	ldr.w	r0, [r4, #316]	; 0x13c
   138e2:	f8c4 0128 	str.w	r0, [r4, #296]	; 0x128
   138e6:	68e0      	ldr	r0, [r4, #12]
   138e8:	f8c4 012c 	str.w	r0, [r4, #300]	; 0x12c
   138ec:	f8b4 0166 	ldrh.w	r0, [r4, #358]	; 0x166
   138f0:	f8b4 110e 	ldrh.w	r1, [r4, #270]	; 0x10e
   138f4:	4408      	add	r0, r1
   138f6:	f8c4 0130 	str.w	r0, [r4, #304]	; 0x130
   138fa:	4620      	mov	r0, r4
   138fc:	f007 f93f 	bl	1ab7e <sym_HT64RIVISXSWFJE3LL26YHKQRTRRXKVEDBUUUOQ>
   13900:	f8d4 0198 	ldr.w	r0, [r4, #408]	; 0x198
   13904:	6220      	str	r0, [r4, #32]
   13906:	f8b4 0196 	ldrh.w	r0, [r4, #406]	; 0x196
   1390a:	83a0      	strh	r0, [r4, #28]
   1390c:	f8d4 019c 	ldr.w	r0, [r4, #412]	; 0x19c
   13910:	60e0      	str	r0, [r4, #12]
   13912:	f8b4 01a0 	ldrh.w	r0, [r4, #416]	; 0x1a0
   13916:	82a0      	strh	r0, [r4, #20]
   13918:	f8b4 01a2 	ldrh.w	r0, [r4, #418]	; 0x1a2
   1391c:	82e0      	strh	r0, [r4, #22]
   1391e:	2002      	movs	r0, #2
   13920:	f884 0134 	strb.w	r0, [r4, #308]	; 0x134
   13924:	f8b4 0074 	ldrh.w	r0, [r4, #116]	; 0x74
   13928:	f504 75a6 	add.w	r5, r4, #332	; 0x14c
   1392c:	1a38      	subs	r0, r7, r0
   1392e:	fa0f f980 	sxth.w	r9, r0
   13932:	f8b4 0164 	ldrh.w	r0, [r4, #356]	; 0x164
   13936:	1a38      	subs	r0, r7, r0
   13938:	fa0f f880 	sxth.w	r8, r0
   1393c:	f1b8 0f00 	cmp.w	r8, #0
   13940:	da06      	bge.n	13950 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x314>
   13942:	f8d4 015c 	ldr.w	r0, [r4, #348]	; 0x15c
   13946:	f8c4 0160 	str.w	r0, [r4, #352]	; 0x160
   1394a:	2001      	movs	r0, #1
   1394c:	46c8      	mov	r8, r9
   1394e:	9000      	str	r0, [sp, #0]
   13950:	ab02      	add	r3, sp, #8
   13952:	464a      	mov	r2, r9
   13954:	4641      	mov	r1, r8
   13956:	4620      	mov	r0, r4
   13958:	f7ff fefc 	bl	13754 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x118>
   1395c:	9004      	str	r0, [sp, #16]
   1395e:	f894 0134 	ldrb.w	r0, [r4, #308]	; 0x134
   13962:	f8df b344 	ldr.w	fp, [pc, #836]	; 13ca8 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x66c>
   13966:	b140      	cbz	r0, 1397a <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x33e>
   13968:	2801      	cmp	r0, #1
   1396a:	d07d      	beq.n	13a68 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x42c>
   1396c:	2802      	cmp	r0, #2
   1396e:	d052      	beq.n	13a16 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x3da>
   13970:	2803      	cmp	r0, #3
   13972:	d07a      	beq.n	13a6a <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x42e>
   13974:	f240 5157 	movw	r1, #1367	; 0x557
   13978:	e192      	b.n	13ca0 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x664>
   1397a:	2101      	movs	r1, #1
   1397c:	2000      	movs	r0, #0
   1397e:	f005 fec8 	bl	19712 <sym_QOK2KYWK62QNZBQRPK2GPAU2IEJXSELK32IAUUA>
   13982:	4606      	mov	r6, r0
   13984:	6a20      	ldr	r0, [r4, #32]
   13986:	f8bd 1008 	ldrh.w	r1, [sp, #8]
   1398a:	4430      	add	r0, r6
   1398c:	f004 fa58 	bl	17e40 <sym_XEJLNUQGS5P4R5IXDJFF6NE6C2FZWRZYDQOGMPI>
   13990:	f8c4 0138 	str.w	r0, [r4, #312]	; 0x138
   13994:	f8bd 1008 	ldrh.w	r1, [sp, #8]
   13998:	68e0      	ldr	r0, [r4, #12]
   1399a:	f004 fa51 	bl	17e40 <sym_XEJLNUQGS5P4R5IXDJFF6NE6C2FZWRZYDQOGMPI>
   1399e:	f8c4 013c 	str.w	r0, [r4, #316]	; 0x13c
   139a2:	a901      	add	r1, sp, #4
   139a4:	4668      	mov	r0, sp
   139a6:	f003 fa1b 	bl	16de0 <sym_LSYZDZOMTD6BKKRX25HIBNLFKSFDXBS3PS4UKOY>
   139aa:	e9dd 1200 	ldrd	r1, r2, [sp]
   139ae:	f8d4 0160 	ldr.w	r0, [r4, #352]	; 0x160
   139b2:	f7fa ffe5 	bl	e980 <sym_ORUJDMUJV7RZIFXM3X5KLRROPKJ7VPLJ65JMLRQ>
   139b6:	4681      	mov	r9, r0
   139b8:	4620      	mov	r0, r4
   139ba:	f006 fe88 	bl	1a6ce <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x1d4>
   139be:	f894 006b 	ldrb.w	r0, [r4, #107]	; 0x6b
   139c2:	f8d4 816c 	ldr.w	r8, [r4, #364]	; 0x16c
   139c6:	f008 f9cb 	bl	1bd60 <sym_UX6VBOIQ7ULLMX3I6UDFOFZ6IT2DVZKKVIEVRMY>
   139ca:	f24a 31a1 	movw	r1, #41889	; 0xa3a1
   139ce:	4401      	add	r1, r0
   139d0:	f44f 707a 	mov.w	r0, #1000	; 0x3e8
   139d4:	fbb1 f0f0 	udiv	r0, r1, r0
   139d8:	6a21      	ldr	r1, [r4, #32]
   139da:	f8d4 2138 	ldr.w	r2, [r4, #312]	; 0x138
   139de:	4431      	add	r1, r6
   139e0:	1a08      	subs	r0, r1, r0
   139e2:	1a81      	subs	r1, r0, r2
   139e4:	4441      	add	r1, r8
   139e6:	3920      	subs	r1, #32
   139e8:	eba1 0609 	sub.w	r6, r1, r9
   139ec:	0050      	lsls	r0, r2, #1
   139ee:	8ba1      	ldrh	r1, [r4, #28]
   139f0:	3060      	adds	r0, #96	; 0x60
   139f2:	4401      	add	r1, r0
   139f4:	f894 006b 	ldrb.w	r0, [r4, #107]	; 0x6b
   139f8:	f006 fed9 	bl	1a7ae <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x2b4>
   139fc:	3022      	adds	r0, #34	; 0x22
   139fe:	f8cb 0010 	str.w	r0, [fp, #16]
   13a02:	f8d4 016c 	ldr.w	r0, [r4, #364]	; 0x16c
   13a06:	4659      	mov	r1, fp
   13a08:	1a30      	subs	r0, r6, r0
   13a0a:	f5b0 7fd8 	cmp.w	r0, #432	; 0x1b0
   13a0e:	d259      	bcs.n	13ac4 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x488>
   13a10:	f44f 619e 	mov.w	r1, #1264	; 0x4f0
   13a14:	e144      	b.n	13ca0 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x664>
   13a16:	f8d4 112c 	ldr.w	r1, [r4, #300]	; 0x12c
   13a1a:	6a20      	ldr	r0, [r4, #32]
   13a1c:	4408      	add	r0, r1
   13a1e:	f8bd 1008 	ldrh.w	r1, [sp, #8]
   13a22:	f004 fa0d 	bl	17e40 <sym_XEJLNUQGS5P4R5IXDJFF6NE6C2FZWRZYDQOGMPI>
   13a26:	f8c4 0138 	str.w	r0, [r4, #312]	; 0x138
   13a2a:	f8bd 1008 	ldrh.w	r1, [sp, #8]
   13a2e:	68e0      	ldr	r0, [r4, #12]
   13a30:	f004 fa06 	bl	17e40 <sym_XEJLNUQGS5P4R5IXDJFF6NE6C2FZWRZYDQOGMPI>
   13a34:	f8c4 013c 	str.w	r0, [r4, #316]	; 0x13c
   13a38:	4620      	mov	r0, r4
   13a3a:	f006 fe48 	bl	1a6ce <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x1d4>
   13a3e:	f8b4 010e 	ldrh.w	r0, [r4, #270]	; 0x10e
   13a42:	bb10      	cbnz	r0, 13a8a <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x44e>
   13a44:	f1ba 0f00 	cmp.w	sl, #0
   13a48:	d01f      	beq.n	13a8a <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x44e>
   13a4a:	f894 806b 	ldrb.w	r8, [r4, #107]	; 0x6b
   13a4e:	4640      	mov	r0, r8
   13a50:	f008 f986 	bl	1bd60 <sym_UX6VBOIQ7ULLMX3I6UDFOFZ6IT2DVZKKVIEVRMY>
   13a54:	f24a 31a1 	movw	r1, #41889	; 0xa3a1
   13a58:	4401      	add	r1, r0
   13a5a:	f44f 707a 	mov.w	r0, #1000	; 0x3e8
   13a5e:	fbb1 f0f0 	udiv	r0, r1, r0
   13a62:	f8d4 1138 	ldr.w	r1, [r4, #312]	; 0x138
   13a66:	e001      	b.n	13a6c <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x430>
   13a68:	e02d      	b.n	13ac6 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x48a>
   13a6a:	e049      	b.n	13b00 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x4c4>
   13a6c:	4408      	add	r0, r1
   13a6e:	6a22      	ldr	r2, [r4, #32]
   13a70:	f8d4 112c 	ldr.w	r1, [r4, #300]	; 0x12c
   13a74:	4411      	add	r1, r2
   13a76:	1a0e      	subs	r6, r1, r0
   13a78:	4640      	mov	r0, r8
   13a7a:	f008 f963 	bl	1bd44 <sym_V67AIMSO57NYVNGXZF2PDQSJQJLITHU4KD4CKAY>
   13a7e:	f8d4 1170 	ldr.w	r1, [r4, #368]	; 0x170
   13a82:	1a08      	subs	r0, r1, r0
   13a84:	4406      	add	r6, r0
   13a86:	3e20      	subs	r6, #32
   13a88:	e006      	b.n	13a98 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x45c>
   13a8a:	6a21      	ldr	r1, [r4, #32]
   13a8c:	f8d4 012c 	ldr.w	r0, [r4, #300]	; 0x12c
   13a90:	4408      	add	r0, r1
   13a92:	f8d4 1138 	ldr.w	r1, [r4, #312]	; 0x138
   13a96:	1a46      	subs	r6, r0, r1
   13a98:	f8d4 2130 	ldr.w	r2, [r4, #304]	; 0x130
   13a9c:	f8d4 1128 	ldr.w	r1, [r4, #296]	; 0x128
   13aa0:	f8d4 0138 	ldr.w	r0, [r4, #312]	; 0x138
   13aa4:	fb01 0002 	mla	r0, r1, r2, r0
   13aa8:	0040      	lsls	r0, r0, #1
   13aaa:	8ba1      	ldrh	r1, [r4, #28]
   13aac:	3060      	adds	r0, #96	; 0x60
   13aae:	4401      	add	r1, r0
   13ab0:	f894 006b 	ldrb.w	r0, [r4, #107]	; 0x6b
   13ab4:	f006 fe7b 	bl	1a7ae <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x2b4>
   13ab8:	f8cb 0010 	str.w	r0, [fp, #16]
   13abc:	2001      	movs	r0, #1
   13abe:	4659      	mov	r1, fp
   13ac0:	f884 0134 	strb.w	r0, [r4, #308]	; 0x134
   13ac4:	e062      	b.n	13b8c <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x550>
   13ac6:	f8d4 113c 	ldr.w	r1, [r4, #316]	; 0x13c
   13aca:	68e0      	ldr	r0, [r4, #12]
   13acc:	f8b4 210e 	ldrh.w	r2, [r4, #270]	; 0x10e
   13ad0:	1a46      	subs	r6, r0, r1
   13ad2:	eb02 0009 	add.w	r0, r2, r9
   13ad6:	f8d4 2130 	ldr.w	r2, [r4, #304]	; 0x130
   13ada:	f8d4 c128 	ldr.w	ip, [r4, #296]	; 0x128
   13ade:	1a80      	subs	r0, r0, r2
   13ae0:	f8d4 3138 	ldr.w	r3, [r4, #312]	; 0x138
   13ae4:	1e40      	subs	r0, r0, #1
   13ae6:	fb0c 3202 	mla	r2, ip, r2, r3
   13aea:	fb00 2001 	mla	r0, r0, r1, r2
   13aee:	0040      	lsls	r0, r0, #1
   13af0:	8ba1      	ldrh	r1, [r4, #28]
   13af2:	3060      	adds	r0, #96	; 0x60
   13af4:	4401      	add	r1, r0
   13af6:	fb06 f608 	mul.w	r6, r6, r8
   13afa:	f894 006b 	ldrb.w	r0, [r4, #107]	; 0x6b
   13afe:	e040      	b.n	13b82 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x546>
   13b00:	68e0      	ldr	r0, [r4, #12]
   13b02:	f8d4 113c 	ldr.w	r1, [r4, #316]	; 0x13c
   13b06:	fb00 f008 	mul.w	r0, r0, r8
   13b0a:	fb08 0611 	mls	r6, r8, r1, r0
   13b0e:	f894 007d 	ldrb.w	r0, [r4, #125]	; 0x7d
   13b12:	2824      	cmp	r0, #36	; 0x24
   13b14:	d003      	beq.n	13b1e <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x4e2>
   13b16:	f894 007e 	ldrb.w	r0, [r4, #126]	; 0x7e
   13b1a:	2824      	cmp	r0, #36	; 0x24
   13b1c:	d109      	bne.n	13b32 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x4f6>
   13b1e:	f8b4 0194 	ldrh.w	r0, [r4, #404]	; 0x194
   13b22:	1a38      	subs	r0, r7, r0
   13b24:	b200      	sxth	r0, r0
   13b26:	2800      	cmp	r0, #0
   13b28:	db03      	blt.n	13b32 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x4f6>
   13b2a:	f894 0197 	ldrb.w	r0, [r4, #407]	; 0x197
   13b2e:	b100      	cbz	r0, 13b32 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x4f6>
   13b30:	9001      	str	r0, [sp, #4]
   13b32:	9800      	ldr	r0, [sp, #0]
   13b34:	b1d8      	cbz	r0, 13b6e <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x532>
   13b36:	f8b4 010e 	ldrh.w	r0, [r4, #270]	; 0x10e
   13b3a:	b9c0      	cbnz	r0, 13b6e <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x532>
   13b3c:	f8d4 0170 	ldr.w	r0, [r4, #368]	; 0x170
   13b40:	2800      	cmp	r0, #0
   13b42:	d07c      	beq.n	13c3e <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x602>
   13b44:	f894 006b 	ldrb.w	r0, [r4, #107]	; 0x6b
   13b48:	f008 f90a 	bl	1bd60 <sym_UX6VBOIQ7ULLMX3I6UDFOFZ6IT2DVZKKVIEVRMY>
   13b4c:	f24a 31a1 	movw	r1, #41889	; 0xa3a1
   13b50:	4401      	add	r1, r0
   13b52:	f44f 707a 	mov.w	r0, #1000	; 0x3e8
   13b56:	fbb1 f0f0 	udiv	r0, r1, r0
   13b5a:	1a36      	subs	r6, r6, r0
   13b5c:	f894 006b 	ldrb.w	r0, [r4, #107]	; 0x6b
   13b60:	f008 f8f0 	bl	1bd44 <sym_V67AIMSO57NYVNGXZF2PDQSJQJLITHU4KD4CKAY>
   13b64:	f8d4 1170 	ldr.w	r1, [r4, #368]	; 0x170
   13b68:	1a08      	subs	r0, r1, r0
   13b6a:	4406      	add	r6, r0
   13b6c:	3e20      	subs	r6, #32
   13b6e:	f8b4 110e 	ldrh.w	r1, [r4, #270]	; 0x10e
   13b72:	eb01 0009 	add.w	r0, r1, r9
   13b76:	f8d4 113c 	ldr.w	r1, [r4, #316]	; 0x13c
   13b7a:	4348      	muls	r0, r1
   13b7c:	0041      	lsls	r1, r0, #1
   13b7e:	3160      	adds	r1, #96	; 0x60
   13b80:	9801      	ldr	r0, [sp, #4]
   13b82:	f006 fe14 	bl	1a7ae <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x2b4>
   13b86:	4659      	mov	r1, fp
   13b88:	f8cb 0010 	str.w	r0, [fp, #16]
   13b8c:	9804      	ldr	r0, [sp, #16]
   13b8e:	6909      	ldr	r1, [r1, #16]
   13b90:	1a33      	subs	r3, r6, r0
   13b92:	f8d4 613c 	ldr.w	r6, [r4, #316]	; 0x13c
   13b96:	68e0      	ldr	r0, [r4, #12]
   13b98:	1b80      	subs	r0, r0, r6
   13b9a:	f2a0 203e 	subw	r0, r0, #574	; 0x23e
   13b9e:	f8cb 0014 	str.w	r0, [fp, #20]
   13ba2:	4281      	cmp	r1, r0
   13ba4:	d800      	bhi.n	13ba8 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x56c>
   13ba6:	4608      	mov	r0, r1
   13ba8:	f8c4 0108 	str.w	r0, [r4, #264]	; 0x108
   13bac:	2000      	movs	r0, #0
   13bae:	7028      	strb	r0, [r5, #0]
   13bb0:	2064      	movs	r0, #100	; 0x64
   13bb2:	8128      	strh	r0, [r5, #8]
   13bb4:	4619      	mov	r1, r3
   13bb6:	f8d4 0160 	ldr.w	r0, [r4, #352]	; 0x160
   13bba:	f7f9 fe1d 	bl	d7f8 <sym_2O2USXABBLL6KC7E5NJFOHR6JLZMSV4AU5ZYH3Q>
   13bbe:	60e8      	str	r0, [r5, #12]
   13bc0:	f104 002c 	add.w	r0, r4, #44	; 0x2c
   13bc4:	f006 f964 	bl	19e90 <sym_2T6ENJKRE7MWBMC42J5L6S3EMUNPYUXCPAHD23A>
   13bc8:	f8d4 1108 	ldr.w	r1, [r4, #264]	; 0x108
   13bcc:	4408      	add	r0, r1
   13bce:	6068      	str	r0, [r5, #4]
   13bd0:	68e8      	ldr	r0, [r5, #12]
   13bd2:	f8c4 0160 	str.w	r0, [r4, #352]	; 0x160
   13bd6:	f8a4 7164 	strh.w	r7, [r4, #356]	; 0x164
   13bda:	2001      	movs	r0, #1
   13bdc:	72a8      	strb	r0, [r5, #10]
   13bde:	f8b4 10f8 	ldrh.w	r1, [r4, #248]	; 0xf8
   13be2:	1bc9      	subs	r1, r1, r7
   13be4:	b209      	sxth	r1, r1
   13be6:	2900      	cmp	r1, #0
   13be8:	dd01      	ble.n	13bee <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x5b2>
   13bea:	2103      	movs	r1, #3
   13bec:	72a9      	strb	r1, [r5, #10]
   13bee:	9903      	ldr	r1, [sp, #12]
   13bf0:	b331      	cbz	r1, 13c40 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x604>
   13bf2:	f1ba 0f00 	cmp.w	sl, #0
   13bf6:	d026      	beq.n	13c46 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x60a>
   13bf8:	f8b4 2120 	ldrh.w	r2, [r4, #288]	; 0x120
   13bfc:	b392      	cbz	r2, 13c64 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x628>
   13bfe:	f8b4 1122 	ldrh.w	r1, [r4, #290]	; 0x122
   13c02:	bf00      	nop
   13c04:	f8a4 1122 	strh.w	r1, [r4, #290]	; 0x122
   13c08:	f894 3124 	ldrb.w	r3, [r4, #292]	; 0x124
   13c0c:	1c49      	adds	r1, r1, #1
   13c0e:	434b      	muls	r3, r1
   13c10:	4293      	cmp	r3, r2
   13c12:	d218      	bcs.n	13c46 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x60a>
   13c14:	7aa9      	ldrb	r1, [r5, #10]
   13c16:	1e49      	subs	r1, r1, #1
   13c18:	2900      	cmp	r1, #0
   13c1a:	dd14      	ble.n	13c46 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x60a>
   13c1c:	72a8      	strb	r0, [r5, #10]
   13c1e:	f8b4 0122 	ldrh.w	r0, [r4, #290]	; 0x122
   13c22:	2101      	movs	r1, #1
   13c24:	1c40      	adds	r0, r0, #1
   13c26:	f8a4 0122 	strh.w	r0, [r4, #290]	; 0x122
   13c2a:	f504 7092 	add.w	r0, r4, #292	; 0x124
   13c2e:	f7fc fa65 	bl	100fc <sym_4BGPQMJJRBR2ET4K6M3CH3OLXQGTP2TS7FVXINA>
   13c32:	f894 0124 	ldrb.w	r0, [r4, #292]	; 0x124
   13c36:	f000 0007 	and.w	r0, r0, #7
   13c3a:	1c40      	adds	r0, r0, #1
   13c3c:	e001      	b.n	13c42 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x606>
   13c3e:	e012      	b.n	13c66 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x62a>
   13c40:	e014      	b.n	13c6c <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x630>
   13c42:	f884 0124 	strb.w	r0, [r4, #292]	; 0x124
   13c46:	f894 0168 	ldrb.w	r0, [r4, #360]	; 0x168
   13c4a:	4629      	mov	r1, r5
   13c4c:	f006 fdc1 	bl	1a7d2 <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x2d8>
   13c50:	b320      	cbz	r0, 13c9c <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x660>
   13c52:	9807      	ldr	r0, [sp, #28]
   13c54:	f080 0001 	eor.w	r0, r0, #1
   13c58:	f884 0148 	strb.w	r0, [r4, #328]	; 0x148
   13c5c:	2000      	movs	r0, #0
   13c5e:	b009      	add	sp, #36	; 0x24
   13c60:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
   13c64:	e018      	b.n	13c98 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x65c>
   13c66:	f240 5142 	movw	r1, #1346	; 0x542
   13c6a:	e019      	b.n	13ca0 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x664>
   13c6c:	f1ba 0f00 	cmp.w	sl, #0
   13c70:	d1c2      	bne.n	13bf8 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x5bc>
   13c72:	f894 0134 	ldrb.w	r0, [r4, #308]	; 0x134
   13c76:	2800      	cmp	r0, #0
   13c78:	d0e5      	beq.n	13c46 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x60a>
   13c7a:	f8d4 113c 	ldr.w	r1, [r4, #316]	; 0x13c
   13c7e:	68e0      	ldr	r0, [r4, #12]
   13c80:	1a41      	subs	r1, r0, r1
   13c82:	4628      	mov	r0, r5
   13c84:	f005 fd57 	bl	19736 <sym_K4XFYUFHWSS4WLYRDTKOJ7STOPYHBKAJBCXHBBY>
   13c88:	0400      	lsls	r0, r0, #16
   13c8a:	0c00      	lsrs	r0, r0, #16
   13c8c:	d0db      	beq.n	13c46 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x60a>
   13c8e:	9912      	ldr	r1, [sp, #72]	; 0x48
   13c90:	b101      	cbz	r1, 13c94 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x658>
   13c92:	8008      	strh	r0, [r1, #0]
   13c94:	2001      	movs	r0, #1
   13c96:	e7e2      	b.n	13c5e <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x622>
   13c98:	2100      	movs	r1, #0
   13c9a:	e7b3      	b.n	13c04 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x5c8>
   13c9c:	f240 51a2 	movw	r1, #1442	; 0x5a2
   13ca0:	2030      	movs	r0, #48	; 0x30
   13ca2:	f7fc f99f 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   13ca6:	0000      	.short	0x0000
   13ca8:	20000100 	.word	0x20000100
   13cac:	b570      	push	{r4, r5, r6, lr}
   13cae:	b140      	cbz	r0, 13cc2 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x686>
   13cb0:	2909      	cmp	r1, #9
   13cb2:	d24a      	bcs.n	13d4a <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x70e>
   13cb4:	e8df f001 	tbb	[pc, r1]
   13cb8:	3d3d1707 	.word	0x3d3d1707
   13cbc:	412b4939 	.word	0x412b4939
   13cc0:	0045      	.short	0x0045
   13cc2:	21d3      	movs	r1, #211	; 0xd3
   13cc4:	e03e      	b.n	13d44 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x708>
   13cc6:	4922      	ldr	r1, [pc, #136]	; (13d50 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x714>)
   13cc8:	4604      	mov	r4, r0
   13cca:	6188      	str	r0, [r1, #24]
   13ccc:	f7fe fe0e 	bl	128ec <sym_PY5KUATPBYOYJBMP6H7AVRPSEO7BZX2JK524O6A>
   13cd0:	b110      	cbz	r0, 13cd8 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x69c>
   13cd2:	f240 217f 	movw	r1, #639	; 0x27f
   13cd6:	e035      	b.n	13d44 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x708>
   13cd8:	f8d4 00bc 	ldr.w	r0, [r4, #188]	; 0xbc
   13cdc:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
   13ce0:	38f7      	subs	r0, #247	; 0xf7
   13ce2:	f7fa bd97 	b.w	e814 <sym_URFU24FFGR2HYB6CCPIPKPNZNMTWHKDYOATUJNY>
   13ce6:	4605      	mov	r5, r0
   13ce8:	f006 fa18 	bl	1a11c <sym_XRU76NANM3C4EMKWQU3DF6CELSRNDV6766IKPJI>
   13cec:	b9a8      	cbnz	r0, 13d1a <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x6de>
   13cee:	4628      	mov	r0, r5
   13cf0:	f006 fcc4 	bl	1a67c <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x182>
   13cf4:	4604      	mov	r4, r0
   13cf6:	f8d5 00bc 	ldr.w	r0, [r5, #188]	; 0xbc
   13cfa:	42a0      	cmp	r0, r4
   13cfc:	d20b      	bcs.n	13d16 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x6da>
   13cfe:	1a20      	subs	r0, r4, r0
   13d00:	2104      	movs	r1, #4
   13d02:	f7f9 fca7 	bl	d654 <sym_QWOE5H22ZADGJX5JSROW7BOI32Z6PPEEJCISNOQ>
   13d06:	b130      	cbz	r0, 13d16 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x6da>
   13d08:	4628      	mov	r0, r5
   13d0a:	f8c5 40bc 	str.w	r4, [r5, #188]	; 0xbc
   13d0e:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
   13d12:	f006 b9d8 	b.w	1a0c6 <sym_2K3JTQJLCTROZQI43ERT7GF5BTQ3SMAJXYMCVJI>
   13d16:	f8c5 40bc 	str.w	r4, [r5, #188]	; 0xbc
   13d1a:	4628      	mov	r0, r5
   13d1c:	f7fe fe02 	bl	12924 <sym_ID5SI2L6AD3KMSDR72YSJZGVIA6DEYQZU7WJI3I>
   13d20:	2800      	cmp	r0, #0
   13d22:	d014      	beq.n	13d4e <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x712>
   13d24:	f240 21b3 	movw	r1, #691	; 0x2b3
   13d28:	e00c      	b.n	13d44 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x708>
   13d2a:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
   13d2e:	f003 badd 	b.w	172ec <sym_EMR2H7KEGRFFKS6A4P3ZPPGOJSTVXLGRI25MEYQ>
   13d32:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
   13d36:	f006 bc3d 	b.w	1a5b4 <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0xba>
   13d3a:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
   13d3e:	f006 bc94 	b.w	1a66a <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x170>
   13d42:	21f5      	movs	r1, #245	; 0xf5
   13d44:	2030      	movs	r0, #48	; 0x30
   13d46:	f7fc f94d 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   13d4a:	21f9      	movs	r1, #249	; 0xf9
   13d4c:	e7fa      	b.n	13d44 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x708>
   13d4e:	bd70      	pop	{r4, r5, r6, pc}
   13d50:	20000100 	.word	0x20000100
   13d54:	b570      	push	{r4, r5, r6, lr}
   13d56:	4604      	mov	r4, r0
   13d58:	f7f9 febe 	bl	dad8 <sym_MGCUANL7Q2CUPWKYBFLWSWSNXIEEYBPZTHT2VZI>
   13d5c:	2864      	cmp	r0, #100	; 0x64
   13d5e:	d901      	bls.n	13d64 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x728>
   13d60:	4605      	mov	r5, r0
   13d62:	e000      	b.n	13d66 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x72a>
   13d64:	2564      	movs	r5, #100	; 0x64
   13d66:	f894 006b 	ldrb.w	r0, [r4, #107]	; 0x6b
   13d6a:	2128      	movs	r1, #40	; 0x28
   13d6c:	f006 fc20 	bl	1a5b0 <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0xb6>
   13d70:	4428      	add	r0, r5
   13d72:	f8d4 113c 	ldr.w	r1, [r4, #316]	; 0x13c
   13d76:	f500 700e 	add.w	r0, r0, #568	; 0x238
   13d7a:	180e      	adds	r6, r1, r0
   13d7c:	f894 006b 	ldrb.w	r0, [r4, #107]	; 0x6b
   13d80:	2128      	movs	r1, #40	; 0x28
   13d82:	f006 fc15 	bl	1a5b0 <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0xb6>
   13d86:	f500 7227 	add.w	r2, r0, #668	; 0x29c
   13d8a:	4620      	mov	r0, r4
   13d8c:	6ae1      	ldr	r1, [r4, #44]	; 0x2c
   13d8e:	f006 f81e 	bl	19dce <sym_XRSFUVJVALTQXGE7INRI3M6HEEON3PEMDM73SDI>
   13d92:	4605      	mov	r5, r0
   13d94:	4632      	mov	r2, r6
   13d96:	4620      	mov	r0, r4
   13d98:	68e1      	ldr	r1, [r4, #12]
   13d9a:	f006 f818 	bl	19dce <sym_XRSFUVJVALTQXGE7INRI3M6HEEON3PEMDM73SDI>
   13d9e:	4907      	ldr	r1, [pc, #28]	; (13dbc <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x780>)
   13da0:	4285      	cmp	r5, r0
   13da2:	6088      	str	r0, [r1, #8]
   13da4:	d200      	bcs.n	13da8 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x76c>
   13da6:	4628      	mov	r0, r5
   13da8:	6048      	str	r0, [r1, #4]
   13daa:	f8d4 0150 	ldr.w	r0, [r4, #336]	; 0x150
   13dae:	f2a0 1065 	subw	r0, r0, #357	; 0x165
   13db2:	60c8      	str	r0, [r1, #12]
   13db4:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
   13db8:	f7fa bd2c 	b.w	e814 <sym_URFU24FFGR2HYB6CCPIPKPNZNMTWHKDYOATUJNY>
   13dbc:	20000100 	.word	0x20000100

00013dc0 <sym_OGXWMXSCK2QG6TOSCWHHS4PII24VSXWVJJIPCDI>:
   13dc0:	4806      	ldr	r0, [pc, #24]	; (13ddc <sym_OGXWMXSCK2QG6TOSCWHHS4PII24VSXWVJJIPCDI+0x1c>)
   13dc2:	4905      	ldr	r1, [pc, #20]	; (13dd8 <sym_OGXWMXSCK2QG6TOSCWHHS4PII24VSXWVJJIPCDI+0x18>)
   13dc4:	6501      	str	r1, [r0, #80]	; 0x50
   13dc6:	4906      	ldr	r1, [pc, #24]	; (13de0 <sym_OGXWMXSCK2QG6TOSCWHHS4PII24VSXWVJJIPCDI+0x20>)
   13dc8:	6541      	str	r1, [r0, #84]	; 0x54
   13dca:	4807      	ldr	r0, [pc, #28]	; (13de8 <sym_OGXWMXSCK2QG6TOSCWHHS4PII24VSXWVJJIPCDI+0x28>)
   13dcc:	4905      	ldr	r1, [pc, #20]	; (13de4 <sym_OGXWMXSCK2QG6TOSCWHHS4PII24VSXWVJJIPCDI+0x24>)
   13dce:	6501      	str	r1, [r0, #80]	; 0x50
   13dd0:	4906      	ldr	r1, [pc, #24]	; (13dec <sym_OGXWMXSCK2QG6TOSCWHHS4PII24VSXWVJJIPCDI+0x2c>)
   13dd2:	6541      	str	r1, [r0, #84]	; 0x54
   13dd4:	4770      	bx	lr
   13dd6:	0000      	.short	0x0000
   13dd8:	00015321 	.word	0x00015321
   13ddc:	20000130 	.word	0x20000130
   13de0:	000153fd 	.word	0x000153fd
   13de4:	00015a59 	.word	0x00015a59
   13de8:	20000194 	.word	0x20000194
   13dec:	00015a89 	.word	0x00015a89

00013df0 <sym_I4MPPJWE5TYSC2ELQNUWYVNFYJKDDDI4E2NHKYA>:
   13df0:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
   13df2:	460d      	mov	r5, r1
   13df4:	4607      	mov	r7, r0
   13df6:	2100      	movs	r1, #0
   13df8:	f005 f977 	bl	190ea <sym_5X75WALYYBUWN4XT5LYOZBIGSZHVNFKF5J4CSQI>
   13dfc:	1e04      	subs	r4, r0, #0
   13dfe:	d04f      	beq.n	13ea0 <sym_I4MPPJWE5TYSC2ELQNUWYVNFYJKDDDI4E2NHKYA+0xb0>
   13e00:	f894 0070 	ldrb.w	r0, [r4, #112]	; 0x70
   13e04:	2800      	cmp	r0, #0
   13e06:	d04b      	beq.n	13ea0 <sym_I4MPPJWE5TYSC2ELQNUWYVNFYJKDDDI4E2NHKYA+0xb0>
   13e08:	f894 01b8 	ldrb.w	r0, [r4, #440]	; 0x1b8
   13e0c:	f88d 0000 	strb.w	r0, [sp]
   13e10:	9800      	ldr	r0, [sp, #0]
   13e12:	9000      	str	r0, [sp, #0]
   13e14:	f89d 0000 	ldrb.w	r0, [sp]
   13e18:	2600      	movs	r6, #0
   13e1a:	b1d8      	cbz	r0, 13e54 <sym_I4MPPJWE5TYSC2ELQNUWYVNFYJKDDDI4E2NHKYA+0x64>
   13e1c:	706e      	strb	r6, [r5, #1]
   13e1e:	2007      	movs	r0, #7
   13e20:	7028      	strb	r0, [r5, #0]
   13e22:	e00b      	b.n	13e3c <sym_I4MPPJWE5TYSC2ELQNUWYVNFYJKDDDI4E2NHKYA+0x4c>
   13e24:	f884 61b8 	strb.w	r6, [r4, #440]	; 0x1b8
   13e28:	84a6      	strh	r6, [r4, #36]	; 0x24
   13e2a:	f8d4 01ba 	ldr.w	r0, [r4, #442]	; 0x1ba
   13e2e:	6068      	str	r0, [r5, #4]
   13e30:	f8d4 01be 	ldr.w	r0, [r4, #446]	; 0x1be
   13e34:	60a8      	str	r0, [r5, #8]
   13e36:	f8b4 01c2 	ldrh.w	r0, [r4, #450]	; 0x1c2
   13e3a:	81a8      	strh	r0, [r5, #12]
   13e3c:	f894 01b8 	ldrb.w	r0, [r4, #440]	; 0x1b8
   13e40:	f88d 0000 	strb.w	r0, [sp]
   13e44:	9800      	ldr	r0, [sp, #0]
   13e46:	9000      	str	r0, [sp, #0]
   13e48:	f89d 0000 	ldrb.w	r0, [sp]
   13e4c:	2800      	cmp	r0, #0
   13e4e:	d1e9      	bne.n	13e24 <sym_I4MPPJWE5TYSC2ELQNUWYVNFYJKDDDI4E2NHKYA+0x34>
   13e50:	712e      	strb	r6, [r5, #4]
   13e52:	e10b      	b.n	1406c <sym_I4MPPJWE5TYSC2ELQNUWYVNFYJKDDDI4E2NHKYA+0x27c>
   13e54:	f894 01c4 	ldrb.w	r0, [r4, #452]	; 0x1c4
   13e58:	b3a0      	cbz	r0, 13ec4 <sym_I4MPPJWE5TYSC2ELQNUWYVNFYJKDDDI4E2NHKYA+0xd4>
   13e5a:	f894 01c4 	ldrb.w	r0, [r4, #452]	; 0x1c4
   13e5e:	280b      	cmp	r0, #11
   13e60:	d016      	beq.n	13e90 <sym_I4MPPJWE5TYSC2ELQNUWYVNFYJKDDDI4E2NHKYA+0xa0>
   13e62:	280c      	cmp	r0, #12
   13e64:	d004      	beq.n	13e70 <sym_I4MPPJWE5TYSC2ELQNUWYVNFYJKDDDI4E2NHKYA+0x80>
   13e66:	f640 21e9 	movw	r1, #2793	; 0xae9
   13e6a:	2031      	movs	r0, #49	; 0x31
   13e6c:	f7fc f8ba 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   13e70:	8820      	ldrh	r0, [r4, #0]
   13e72:	f7fc fcdf 	bl	10834 <sym_YNBBHT54WKEGUNVC6TSBMRGLF67VFWBOYEMKGTQ>
   13e76:	4607      	mov	r7, r0
   13e78:	f004 fffd 	bl	18e76 <sym_ZOHQLKBCZOR3A7YQVK6MVD6IEOARIBONHUTW4FY>
   13e7c:	b978      	cbnz	r0, 13e9e <sym_I4MPPJWE5TYSC2ELQNUWYVNFYJKDDDI4E2NHKYA+0xae>
   13e7e:	706e      	strb	r6, [r5, #1]
   13e80:	200c      	movs	r0, #12
   13e82:	7028      	strb	r0, [r5, #0]
   13e84:	f894 01c6 	ldrb.w	r0, [r4, #454]	; 0x1c6
   13e88:	7128      	strb	r0, [r5, #4]
   13e8a:	8820      	ldrh	r0, [r4, #0]
   13e8c:	80e8      	strh	r0, [r5, #6]
   13e8e:	e013      	b.n	13eb8 <sym_I4MPPJWE5TYSC2ELQNUWYVNFYJKDDDI4E2NHKYA+0xc8>
   13e90:	8820      	ldrh	r0, [r4, #0]
   13e92:	f7fc fccf 	bl	10834 <sym_YNBBHT54WKEGUNVC6TSBMRGLF67VFWBOYEMKGTQ>
   13e96:	4607      	mov	r7, r0
   13e98:	f004 ffed 	bl	18e76 <sym_ZOHQLKBCZOR3A7YQVK6MVD6IEOARIBONHUTW4FY>
   13e9c:	b108      	cbz	r0, 13ea2 <sym_I4MPPJWE5TYSC2ELQNUWYVNFYJKDDDI4E2NHKYA+0xb2>
   13e9e:	2000      	movs	r0, #0
   13ea0:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
   13ea2:	706e      	strb	r6, [r5, #1]
   13ea4:	200b      	movs	r0, #11
   13ea6:	7028      	strb	r0, [r5, #0]
   13ea8:	f894 01c6 	ldrb.w	r0, [r4, #454]	; 0x1c6
   13eac:	7128      	strb	r0, [r5, #4]
   13eae:	8820      	ldrh	r0, [r4, #0]
   13eb0:	80e8      	strh	r0, [r5, #6]
   13eb2:	f894 01ca 	ldrb.w	r0, [r4, #458]	; 0x1ca
   13eb6:	7228      	strb	r0, [r5, #8]
   13eb8:	f884 61c4 	strb.w	r6, [r4, #452]	; 0x1c4
   13ebc:	4638      	mov	r0, r7
   13ebe:	f004 fff5 	bl	18eac <sym_4Z7443SGSMJBRM7TLEVRIFXZXBZ34MHB7IK5ETY>
   13ec2:	e0d3      	b.n	1406c <sym_I4MPPJWE5TYSC2ELQNUWYVNFYJKDDDI4E2NHKYA+0x27c>
   13ec4:	e7ff      	b.n	13ec6 <sym_I4MPPJWE5TYSC2ELQNUWYVNFYJKDDDI4E2NHKYA+0xd6>
   13ec6:	f894 01fa 	ldrb.w	r0, [r4, #506]	; 0x1fa
   13eca:	f88d 0000 	strb.w	r0, [sp]
   13ece:	9800      	ldr	r0, [sp, #0]
   13ed0:	9000      	str	r0, [sp, #0]
   13ed2:	f89d 0000 	ldrb.w	r0, [sp]
   13ed6:	b130      	cbz	r0, 13ee6 <sym_I4MPPJWE5TYSC2ELQNUWYVNFYJKDDDI4E2NHKYA+0xf6>
   13ed8:	706e      	strb	r6, [r5, #1]
   13eda:	200e      	movs	r0, #14
   13edc:	7028      	strb	r0, [r5, #0]
   13ede:	80af      	strh	r7, [r5, #4]
   13ee0:	f884 61fa 	strb.w	r6, [r4, #506]	; 0x1fa
   13ee4:	e0c2      	b.n	1406c <sym_I4MPPJWE5TYSC2ELQNUWYVNFYJKDDDI4E2NHKYA+0x27c>
   13ee6:	f894 01cc 	ldrb.w	r0, [r4, #460]	; 0x1cc
   13eea:	f88d 0000 	strb.w	r0, [sp]
   13eee:	9800      	ldr	r0, [sp, #0]
   13ef0:	9000      	str	r0, [sp, #0]
   13ef2:	f89d 0000 	ldrb.w	r0, [sp]
   13ef6:	b198      	cbz	r0, 13f20 <sym_I4MPPJWE5TYSC2ELQNUWYVNFYJKDDDI4E2NHKYA+0x130>
   13ef8:	706e      	strb	r6, [r5, #1]
   13efa:	2008      	movs	r0, #8
   13efc:	7028      	strb	r0, [r5, #0]
   13efe:	8820      	ldrh	r0, [r4, #0]
   13f00:	80a8      	strh	r0, [r5, #4]
   13f02:	f8d4 11d0 	ldr.w	r1, [r4, #464]	; 0x1d0
   13f06:	f8c5 1006 	str.w	r1, [r5, #6]
   13f0a:	f8d4 11d4 	ldr.w	r1, [r4, #468]	; 0x1d4
   13f0e:	f8c5 100a 	str.w	r1, [r5, #10]
   13f12:	f8b4 01d8 	ldrh.w	r0, [r4, #472]	; 0x1d8
   13f16:	81e8      	strh	r0, [r5, #14]
   13f18:	f504 74e6 	add.w	r4, r4, #460	; 0x1cc
   13f1c:	7026      	strb	r6, [r4, #0]
   13f1e:	e0a5      	b.n	1406c <sym_I4MPPJWE5TYSC2ELQNUWYVNFYJKDDDI4E2NHKYA+0x27c>
   13f20:	f894 01f4 	ldrb.w	r0, [r4, #500]	; 0x1f4
   13f24:	f88d 0000 	strb.w	r0, [sp]
   13f28:	9800      	ldr	r0, [sp, #0]
   13f2a:	9000      	str	r0, [sp, #0]
   13f2c:	f89d 0000 	ldrb.w	r0, [sp]
   13f30:	b1a0      	cbz	r0, 13f5c <sym_I4MPPJWE5TYSC2ELQNUWYVNFYJKDDDI4E2NHKYA+0x16c>
   13f32:	706e      	strb	r6, [r5, #1]
   13f34:	2016      	movs	r0, #22
   13f36:	7028      	strb	r0, [r5, #0]
   13f38:	e005      	b.n	13f46 <sym_I4MPPJWE5TYSC2ELQNUWYVNFYJKDDDI4E2NHKYA+0x156>
   13f3a:	bf00      	nop
   13f3c:	f884 61f4 	strb.w	r6, [r4, #500]	; 0x1f4
   13f40:	f8d4 01f6 	ldr.w	r0, [r4, #502]	; 0x1f6
   13f44:	6068      	str	r0, [r5, #4]
   13f46:	f894 01f4 	ldrb.w	r0, [r4, #500]	; 0x1f4
   13f4a:	f88d 0000 	strb.w	r0, [sp]
   13f4e:	9800      	ldr	r0, [sp, #0]
   13f50:	9000      	str	r0, [sp, #0]
   13f52:	f89d 0000 	ldrb.w	r0, [sp]
   13f56:	2800      	cmp	r0, #0
   13f58:	d1f0      	bne.n	13f3c <sym_I4MPPJWE5TYSC2ELQNUWYVNFYJKDDDI4E2NHKYA+0x14c>
   13f5a:	e087      	b.n	1406c <sym_I4MPPJWE5TYSC2ELQNUWYVNFYJKDDDI4E2NHKYA+0x27c>
   13f5c:	f894 020a 	ldrb.w	r0, [r4, #522]	; 0x20a
   13f60:	f88d 0000 	strb.w	r0, [sp]
   13f64:	9800      	ldr	r0, [sp, #0]
   13f66:	9000      	str	r0, [sp, #0]
   13f68:	f89d 0000 	ldrb.w	r0, [sp]
   13f6c:	b170      	cbz	r0, 13f8c <sym_I4MPPJWE5TYSC2ELQNUWYVNFYJKDDDI4E2NHKYA+0x19c>
   13f6e:	706e      	strb	r6, [r5, #1]
   13f70:	2006      	movs	r0, #6
   13f72:	7028      	strb	r0, [r5, #0]
   13f74:	f8d4 020c 	ldr.w	r0, [r4, #524]	; 0x20c
   13f78:	6068      	str	r0, [r5, #4]
   13f7a:	f8d4 0210 	ldr.w	r0, [r4, #528]	; 0x210
   13f7e:	60a8      	str	r0, [r5, #8]
   13f80:	f8d4 0214 	ldr.w	r0, [r4, #532]	; 0x214
   13f84:	60e8      	str	r0, [r5, #12]
   13f86:	f504 7403 	add.w	r4, r4, #524	; 0x20c
   13f8a:	e03a      	b.n	14002 <sym_I4MPPJWE5TYSC2ELQNUWYVNFYJKDDDI4E2NHKYA+0x212>
   13f8c:	f894 01da 	ldrb.w	r0, [r4, #474]	; 0x1da
   13f90:	f88d 0000 	strb.w	r0, [sp]
   13f94:	9800      	ldr	r0, [sp, #0]
   13f96:	9000      	str	r0, [sp, #0]
   13f98:	f89d 0000 	ldrb.w	r0, [sp]
   13f9c:	b1d0      	cbz	r0, 13fd4 <sym_I4MPPJWE5TYSC2ELQNUWYVNFYJKDDDI4E2NHKYA+0x1e4>
   13f9e:	706e      	strb	r6, [r5, #1]
   13fa0:	2012      	movs	r0, #18
   13fa2:	7028      	strb	r0, [r5, #0]
   13fa4:	e00b      	b.n	13fbe <sym_I4MPPJWE5TYSC2ELQNUWYVNFYJKDDDI4E2NHKYA+0x1ce>
   13fa6:	bf00      	nop
   13fa8:	f884 61da 	strb.w	r6, [r4, #474]	; 0x1da
   13fac:	f8d4 01dc 	ldr.w	r0, [r4, #476]	; 0x1dc
   13fb0:	6068      	str	r0, [r5, #4]
   13fb2:	f8d4 01e0 	ldr.w	r0, [r4, #480]	; 0x1e0
   13fb6:	60a8      	str	r0, [r5, #8]
   13fb8:	f8d4 01e4 	ldr.w	r0, [r4, #484]	; 0x1e4
   13fbc:	60e8      	str	r0, [r5, #12]
   13fbe:	f894 01da 	ldrb.w	r0, [r4, #474]	; 0x1da
   13fc2:	f88d 0000 	strb.w	r0, [sp]
   13fc6:	9800      	ldr	r0, [sp, #0]
   13fc8:	9000      	str	r0, [sp, #0]
   13fca:	f89d 0000 	ldrb.w	r0, [sp]
   13fce:	2800      	cmp	r0, #0
   13fd0:	d1ea      	bne.n	13fa8 <sym_I4MPPJWE5TYSC2ELQNUWYVNFYJKDDDI4E2NHKYA+0x1b8>
   13fd2:	e04b      	b.n	1406c <sym_I4MPPJWE5TYSC2ELQNUWYVNFYJKDDDI4E2NHKYA+0x27c>
   13fd4:	f894 01e8 	ldrb.w	r0, [r4, #488]	; 0x1e8
   13fd8:	f88d 0000 	strb.w	r0, [sp]
   13fdc:	9800      	ldr	r0, [sp, #0]
   13fde:	9000      	str	r0, [sp, #0]
   13fe0:	f89d 0000 	ldrb.w	r0, [sp]
   13fe4:	b180      	cbz	r0, 14008 <sym_I4MPPJWE5TYSC2ELQNUWYVNFYJKDDDI4E2NHKYA+0x218>
   13fe6:	706e      	strb	r6, [r5, #1]
   13fe8:	2018      	movs	r0, #24
   13fea:	7028      	strb	r0, [r5, #0]
   13fec:	f8d4 01ea 	ldr.w	r0, [r4, #490]	; 0x1ea
   13ff0:	6068      	str	r0, [r5, #4]
   13ff2:	f8d4 01ee 	ldr.w	r0, [r4, #494]	; 0x1ee
   13ff6:	60a8      	str	r0, [r5, #8]
   13ff8:	f8b4 01f2 	ldrh.w	r0, [r4, #498]	; 0x1f2
   13ffc:	81a8      	strh	r0, [r5, #12]
   13ffe:	f504 74f5 	add.w	r4, r4, #490	; 0x1ea
   14002:	f804 6c02 	strb.w	r6, [r4, #-2]
   14006:	e031      	b.n	1406c <sym_I4MPPJWE5TYSC2ELQNUWYVNFYJKDDDI4E2NHKYA+0x27c>
   14008:	f894 01fc 	ldrb.w	r0, [r4, #508]	; 0x1fc
   1400c:	f88d 0000 	strb.w	r0, [sp]
   14010:	9800      	ldr	r0, [sp, #0]
   14012:	9000      	str	r0, [sp, #0]
   14014:	f89d 0000 	ldrb.w	r0, [sp]
   14018:	b138      	cbz	r0, 1402a <sym_I4MPPJWE5TYSC2ELQNUWYVNFYJKDDDI4E2NHKYA+0x23a>
   1401a:	2019      	movs	r0, #25
   1401c:	7028      	strb	r0, [r5, #0]
   1401e:	f8d4 01fe 	ldr.w	r0, [r4, #510]	; 0x1fe
   14022:	6068      	str	r0, [r5, #4]
   14024:	f884 61fc 	strb.w	r6, [r4, #508]	; 0x1fc
   14028:	e020      	b.n	1406c <sym_I4MPPJWE5TYSC2ELQNUWYVNFYJKDDDI4E2NHKYA+0x27c>
   1402a:	f894 0202 	ldrb.w	r0, [r4, #514]	; 0x202
   1402e:	f88d 0000 	strb.w	r0, [sp]
   14032:	9800      	ldr	r0, [sp, #0]
   14034:	9000      	str	r0, [sp, #0]
   14036:	f89d 0000 	ldrb.w	r0, [sp]
   1403a:	2800      	cmp	r0, #0
   1403c:	f43f af30 	beq.w	13ea0 <sym_I4MPPJWE5TYSC2ELQNUWYVNFYJKDDDI4E2NHKYA+0xb0>
   14040:	706e      	strb	r6, [r5, #1]
   14042:	2013      	movs	r0, #19
   14044:	7028      	strb	r0, [r5, #0]
   14046:	e007      	b.n	14058 <sym_I4MPPJWE5TYSC2ELQNUWYVNFYJKDDDI4E2NHKYA+0x268>
   14048:	f884 6202 	strb.w	r6, [r4, #514]	; 0x202
   1404c:	f8d4 0204 	ldr.w	r0, [r4, #516]	; 0x204
   14050:	6068      	str	r0, [r5, #4]
   14052:	f8b4 0208 	ldrh.w	r0, [r4, #520]	; 0x208
   14056:	8128      	strh	r0, [r5, #8]
   14058:	f894 0202 	ldrb.w	r0, [r4, #514]	; 0x202
   1405c:	f88d 0000 	strb.w	r0, [sp]
   14060:	9800      	ldr	r0, [sp, #0]
   14062:	9000      	str	r0, [sp, #0]
   14064:	f89d 0000 	ldrb.w	r0, [sp]
   14068:	2800      	cmp	r0, #0
   1406a:	d1ed      	bne.n	14048 <sym_I4MPPJWE5TYSC2ELQNUWYVNFYJKDDDI4E2NHKYA+0x258>
   1406c:	2001      	movs	r0, #1
   1406e:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}

00014070 <sym_FIYSAC63N2FF462LEI76F5US34JKFTAQDSI2LXA>:
   14070:	481b      	ldr	r0, [pc, #108]	; (140e0 <sym_FIYSAC63N2FF462LEI76F5US34JKFTAQDSI2LXA+0x70>)
   14072:	491a      	ldr	r1, [pc, #104]	; (140dc <sym_FIYSAC63N2FF462LEI76F5US34JKFTAQDSI2LXA+0x6c>)
   14074:	6081      	str	r1, [r0, #8]
   14076:	491b      	ldr	r1, [pc, #108]	; (140e4 <sym_FIYSAC63N2FF462LEI76F5US34JKFTAQDSI2LXA+0x74>)
   14078:	6041      	str	r1, [r0, #4]
   1407a:	491b      	ldr	r1, [pc, #108]	; (140e8 <sym_FIYSAC63N2FF462LEI76F5US34JKFTAQDSI2LXA+0x78>)
   1407c:	6001      	str	r1, [r0, #0]
   1407e:	491b      	ldr	r1, [pc, #108]	; (140ec <sym_FIYSAC63N2FF462LEI76F5US34JKFTAQDSI2LXA+0x7c>)
   14080:	6281      	str	r1, [r0, #40]	; 0x28
   14082:	491b      	ldr	r1, [pc, #108]	; (140f0 <sym_FIYSAC63N2FF462LEI76F5US34JKFTAQDSI2LXA+0x80>)
   14084:	62c1      	str	r1, [r0, #44]	; 0x2c
   14086:	491b      	ldr	r1, [pc, #108]	; (140f4 <sym_FIYSAC63N2FF462LEI76F5US34JKFTAQDSI2LXA+0x84>)
   14088:	60c1      	str	r1, [r0, #12]
   1408a:	491b      	ldr	r1, [pc, #108]	; (140f8 <sym_FIYSAC63N2FF462LEI76F5US34JKFTAQDSI2LXA+0x88>)
   1408c:	6181      	str	r1, [r0, #24]
   1408e:	491b      	ldr	r1, [pc, #108]	; (140fc <sym_FIYSAC63N2FF462LEI76F5US34JKFTAQDSI2LXA+0x8c>)
   14090:	6301      	str	r1, [r0, #48]	; 0x30
   14092:	491b      	ldr	r1, [pc, #108]	; (14100 <sym_FIYSAC63N2FF462LEI76F5US34JKFTAQDSI2LXA+0x90>)
   14094:	6201      	str	r1, [r0, #32]
   14096:	491b      	ldr	r1, [pc, #108]	; (14104 <sym_FIYSAC63N2FF462LEI76F5US34JKFTAQDSI2LXA+0x94>)
   14098:	64c1      	str	r1, [r0, #76]	; 0x4c
   1409a:	491b      	ldr	r1, [pc, #108]	; (14108 <sym_FIYSAC63N2FF462LEI76F5US34JKFTAQDSI2LXA+0x98>)
   1409c:	6481      	str	r1, [r0, #72]	; 0x48
   1409e:	491b      	ldr	r1, [pc, #108]	; (1410c <sym_FIYSAC63N2FF462LEI76F5US34JKFTAQDSI2LXA+0x9c>)
   140a0:	6441      	str	r1, [r0, #68]	; 0x44
   140a2:	491b      	ldr	r1, [pc, #108]	; (14110 <sym_FIYSAC63N2FF462LEI76F5US34JKFTAQDSI2LXA+0xa0>)
   140a4:	6341      	str	r1, [r0, #52]	; 0x34
   140a6:	491b      	ldr	r1, [pc, #108]	; (14114 <sym_FIYSAC63N2FF462LEI76F5US34JKFTAQDSI2LXA+0xa4>)
   140a8:	61c1      	str	r1, [r0, #28]
   140aa:	481c      	ldr	r0, [pc, #112]	; (1411c <sym_FIYSAC63N2FF462LEI76F5US34JKFTAQDSI2LXA+0xac>)
   140ac:	491a      	ldr	r1, [pc, #104]	; (14118 <sym_FIYSAC63N2FF462LEI76F5US34JKFTAQDSI2LXA+0xa8>)
   140ae:	6081      	str	r1, [r0, #8]
   140b0:	491b      	ldr	r1, [pc, #108]	; (14120 <sym_FIYSAC63N2FF462LEI76F5US34JKFTAQDSI2LXA+0xb0>)
   140b2:	61c1      	str	r1, [r0, #28]
   140b4:	491b      	ldr	r1, [pc, #108]	; (14124 <sym_FIYSAC63N2FF462LEI76F5US34JKFTAQDSI2LXA+0xb4>)
   140b6:	6241      	str	r1, [r0, #36]	; 0x24
   140b8:	491b      	ldr	r1, [pc, #108]	; (14128 <sym_FIYSAC63N2FF462LEI76F5US34JKFTAQDSI2LXA+0xb8>)
   140ba:	62c1      	str	r1, [r0, #44]	; 0x2c
   140bc:	491b      	ldr	r1, [pc, #108]	; (1412c <sym_FIYSAC63N2FF462LEI76F5US34JKFTAQDSI2LXA+0xbc>)
   140be:	6101      	str	r1, [r0, #16]
   140c0:	491b      	ldr	r1, [pc, #108]	; (14130 <sym_FIYSAC63N2FF462LEI76F5US34JKFTAQDSI2LXA+0xc0>)
   140c2:	6141      	str	r1, [r0, #20]
   140c4:	491b      	ldr	r1, [pc, #108]	; (14134 <sym_FIYSAC63N2FF462LEI76F5US34JKFTAQDSI2LXA+0xc4>)
   140c6:	6441      	str	r1, [r0, #68]	; 0x44
   140c8:	6341      	str	r1, [r0, #52]	; 0x34
   140ca:	491b      	ldr	r1, [pc, #108]	; (14138 <sym_FIYSAC63N2FF462LEI76F5US34JKFTAQDSI2LXA+0xc8>)
   140cc:	6181      	str	r1, [r0, #24]
   140ce:	491b      	ldr	r1, [pc, #108]	; (1413c <sym_FIYSAC63N2FF462LEI76F5US34JKFTAQDSI2LXA+0xcc>)
   140d0:	6301      	str	r1, [r0, #48]	; 0x30
   140d2:	491b      	ldr	r1, [pc, #108]	; (14140 <sym_FIYSAC63N2FF462LEI76F5US34JKFTAQDSI2LXA+0xd0>)
   140d4:	6481      	str	r1, [r0, #72]	; 0x48
   140d6:	491b      	ldr	r1, [pc, #108]	; (14144 <sym_FIYSAC63N2FF462LEI76F5US34JKFTAQDSI2LXA+0xd4>)
   140d8:	64c1      	str	r1, [r0, #76]	; 0x4c
   140da:	4770      	bx	lr
   140dc:	000157ad 	.word	0x000157ad
   140e0:	20000130 	.word	0x20000130
   140e4:	000150e9 	.word	0x000150e9
   140e8:	00015145 	.word	0x00015145
   140ec:	000154c5 	.word	0x000154c5
   140f0:	00015509 	.word	0x00015509
   140f4:	000151f1 	.word	0x000151f1
   140f8:	00015785 	.word	0x00015785
   140fc:	000158c9 	.word	0x000158c9
   14100:	0001529d 	.word	0x0001529d
   14104:	00015499 	.word	0x00015499
   14108:	0001546d 	.word	0x0001546d
   1410c:	00015745 	.word	0x00015745
   14110:	00015775 	.word	0x00015775
   14114:	000157e1 	.word	0x000157e1
   14118:	00015c41 	.word	0x00015c41
   1411c:	20000194 	.word	0x20000194
   14120:	00015c69 	.word	0x00015c69
   14124:	00015a29 	.word	0x00015a29
   14128:	00015b01 	.word	0x00015b01
   1412c:	000159fd 	.word	0x000159fd
   14130:	00015ba9 	.word	0x00015ba9
   14134:	00015b85 	.word	0x00015b85
   14138:	00015bcd 	.word	0x00015bcd
   1413c:	00015cc1 	.word	0x00015cc1
   14140:	00015ab9 	.word	0x00015ab9
   14144:	00015ae9 	.word	0x00015ae9

00014148 <sym_B2B7AU2WDMX5JQNGTX4YKNCWQCXQIG5PWSSOSAI>:
   14148:	4806      	ldr	r0, [pc, #24]	; (14164 <sym_B2B7AU2WDMX5JQNGTX4YKNCWQCXQIG5PWSSOSAI+0x1c>)
   1414a:	4905      	ldr	r1, [pc, #20]	; (14160 <sym_B2B7AU2WDMX5JQNGTX4YKNCWQCXQIG5PWSSOSAI+0x18>)
   1414c:	6581      	str	r1, [r0, #88]	; 0x58
   1414e:	4906      	ldr	r1, [pc, #24]	; (14168 <sym_B2B7AU2WDMX5JQNGTX4YKNCWQCXQIG5PWSSOSAI+0x20>)
   14150:	6601      	str	r1, [r0, #96]	; 0x60
   14152:	4807      	ldr	r0, [pc, #28]	; (14170 <sym_B2B7AU2WDMX5JQNGTX4YKNCWQCXQIG5PWSSOSAI+0x28>)
   14154:	4905      	ldr	r1, [pc, #20]	; (1416c <sym_B2B7AU2WDMX5JQNGTX4YKNCWQCXQIG5PWSSOSAI+0x24>)
   14156:	6581      	str	r1, [r0, #88]	; 0x58
   14158:	4906      	ldr	r1, [pc, #24]	; (14174 <sym_B2B7AU2WDMX5JQNGTX4YKNCWQCXQIG5PWSSOSAI+0x2c>)
   1415a:	65c1      	str	r1, [r0, #92]	; 0x5c
   1415c:	4770      	bx	lr
   1415e:	0000      	.short	0x0000
   14160:	00015529 	.word	0x00015529
   14164:	20000130 	.word	0x20000130
   14168:	00015601 	.word	0x00015601
   1416c:	00015b2d 	.word	0x00015b2d
   14170:	20000194 	.word	0x20000194
   14174:	00015b5d 	.word	0x00015b5d

00014178 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA>:
   14178:	e92d 43f8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
   1417c:	2601      	movs	r6, #1
   1417e:	4c7c      	ldr	r4, [pc, #496]	; (14370 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1f8>)
   14180:	2500      	movs	r5, #0
   14182:	f366 0107 	bfi	r1, r6, #0, #8
   14186:	8065      	strh	r5, [r4, #2]
   14188:	7065      	strb	r5, [r4, #1]
   1418a:	7025      	strb	r5, [r4, #0]
   1418c:	60a0      	str	r0, [r4, #8]
   1418e:	4689      	mov	r9, r1
   14190:	4680      	mov	r8, r0
   14192:	f880 6103 	strb.w	r6, [r0, #259]	; 0x103
   14196:	8800      	ldrh	r0, [r0, #0]
   14198:	f7fc fb62 	bl	10860 <sym_35ZAQW4ABRMBYES2ZHPK63BHZAFFFC4WMGEJ6NA>
   1419c:	b180      	cbz	r0, 141c0 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x48>
   1419e:	68a0      	ldr	r0, [r4, #8]
   141a0:	8800      	ldrh	r0, [r0, #0]
   141a2:	f7fc fdfb 	bl	10d9c <sym_NKFCLZ5HTE6KVHDV5DGZ6TJP4KSZI43SYBECPRY>
   141a6:	68a0      	ldr	r0, [r4, #8]
   141a8:	8800      	ldrh	r0, [r0, #0]
   141aa:	f7fc fd9f 	bl	10cec <sym_IXGTNRGKILIZPWG2NJIZ2ALUPW2IM3XFVCGJW2I>
   141ae:	68a0      	ldr	r0, [r4, #8]
   141b0:	f8b0 10fa 	ldrh.w	r1, [r0, #250]	; 0xfa
   141b4:	b1c9      	cbz	r1, 141ea <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x72>
   141b6:	3070      	adds	r0, #112	; 0x70
   141b8:	f006 fd25 	bl	1ac06 <sym_IYZQNCOB4T4XO27DREWRIWJFVHVS355NEDBEGEQ+0x1e>
   141bc:	b118      	cbz	r0, 141c6 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x4e>
   141be:	e014      	b.n	141ea <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x72>
   141c0:	f640 31c4 	movw	r1, #3012	; 0xbc4
   141c4:	e06b      	b.n	1429e <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x126>
   141c6:	68a0      	ldr	r0, [r4, #8]
   141c8:	f890 1178 	ldrb.w	r1, [r0, #376]	; 0x178
   141cc:	f88d 1000 	strb.w	r1, [sp]
   141d0:	9900      	ldr	r1, [sp, #0]
   141d2:	9100      	str	r1, [sp, #0]
   141d4:	f89d 1000 	ldrb.w	r1, [sp]
   141d8:	b139      	cbz	r1, 141ea <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x72>
   141da:	f890 2080 	ldrb.w	r2, [r0, #128]	; 0x80
   141de:	2301      	movs	r3, #1
   141e0:	4619      	mov	r1, r3
   141e2:	3070      	adds	r0, #112	; 0x70
   141e4:	f005 f9ee 	bl	195c4 <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I>
   141e8:	b180      	cbz	r0, 1420c <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x94>
   141ea:	68a0      	ldr	r0, [r4, #8]
   141ec:	3070      	adds	r0, #112	; 0x70
   141ee:	f006 fd0a 	bl	1ac06 <sym_IYZQNCOB4T4XO27DREWRIWJFVHVS355NEDBEGEQ+0x1e>
   141f2:	b128      	cbz	r0, 14200 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x88>
   141f4:	68a0      	ldr	r0, [r4, #8]
   141f6:	f890 00ec 	ldrb.w	r0, [r0, #236]	; 0xec
   141fa:	bf00      	nop
   141fc:	f000 fbb0 	bl	14960 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x7e8>
   14200:	68a0      	ldr	r0, [r4, #8]
   14202:	f890 1105 	ldrb.w	r1, [r0, #261]	; 0x105
   14206:	b189      	cbz	r1, 1422c <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xb4>
   14208:	80a5      	strh	r5, [r4, #4]
   1420a:	e01e      	b.n	1424a <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xd2>
   1420c:	68a0      	ldr	r0, [r4, #8]
   1420e:	f8a0 50a8 	strh.w	r5, [r0, #168]	; 0xa8
   14212:	f890 1179 	ldrb.w	r1, [r0, #377]	; 0x179
   14216:	f880 10ee 	strb.w	r1, [r0, #238]	; 0xee
   1421a:	2100      	movs	r1, #0
   1421c:	2002      	movs	r0, #2
   1421e:	f000 fe41 	bl	14ea4 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xd2c>
   14222:	68a0      	ldr	r0, [r4, #8]
   14224:	f880 5102 	strb.w	r5, [r0, #258]	; 0x102
   14228:	2002      	movs	r0, #2
   1422a:	e7e7      	b.n	141fc <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x84>
   1422c:	f890 11b8 	ldrb.w	r1, [r0, #440]	; 0x1b8
   14230:	f88d 1000 	strb.w	r1, [sp]
   14234:	9900      	ldr	r1, [sp, #0]
   14236:	9100      	str	r1, [sp, #0]
   14238:	f89d 1000 	ldrb.w	r1, [sp]
   1423c:	b919      	cbnz	r1, 14246 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xce>
   1423e:	8c81      	ldrh	r1, [r0, #36]	; 0x24
   14240:	8a82      	ldrh	r2, [r0, #20]
   14242:	4291      	cmp	r1, r2
   14244:	d800      	bhi.n	14248 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xd0>
   14246:	8a81      	ldrh	r1, [r0, #20]
   14248:	80a1      	strh	r1, [r4, #4]
   1424a:	f830 1ffe 	ldrh.w	r1, [r0, #254]!
   1424e:	1e49      	subs	r1, r1, #1
   14250:	b28f      	uxth	r7, r1
   14252:	f830 1f02 	ldrh.w	r1, [r0, #2]!
   14256:	4439      	add	r1, r7
   14258:	f820 195c 	strh.w	r1, [r0], #-92
   1425c:	8801      	ldrh	r1, [r0, #0]
   1425e:	4439      	add	r1, r7
   14260:	8001      	strh	r1, [r0, #0]
   14262:	f001 fd5b 	bl	15d1c <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1ba4>
   14266:	b120      	cbz	r0, 14272 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xfa>
   14268:	68a0      	ldr	r0, [r4, #8]
   1426a:	f850 1f98 	ldr.w	r1, [r0, #152]!
   1426e:	4439      	add	r1, r7
   14270:	6001      	str	r1, [r0, #0]
   14272:	68a1      	ldr	r1, [r4, #8]
   14274:	f8b1 00fa 	ldrh.w	r0, [r1, #250]	; 0xfa
   14278:	2801      	cmp	r0, #1
   1427a:	d802      	bhi.n	14282 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x10a>
   1427c:	1c40      	adds	r0, r0, #1
   1427e:	f8a1 00fa 	strh.w	r0, [r1, #250]	; 0xfa
   14282:	b10f      	cbz	r7, 14288 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x110>
   14284:	f881 510c 	strb.w	r5, [r1, #268]	; 0x10c
   14288:	f881 5102 	strb.w	r5, [r1, #258]	; 0x102
   1428c:	f8b1 20fe 	ldrh.w	r2, [r1, #254]	; 0xfe
   14290:	f101 0070 	add.w	r0, r1, #112	; 0x70
   14294:	f005 fb18 	bl	198c8 <sym_EMRT7PRPOJDVU5Z5ET5VJFU2CWFE2OMTIKS35RA>
   14298:	b120      	cbz	r0, 142a4 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x12c>
   1429a:	f640 4108 	movw	r1, #3080	; 0xc08
   1429e:	2031      	movs	r0, #49	; 0x31
   142a0:	f7fb fea0 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   142a4:	68a0      	ldr	r0, [r4, #8]
   142a6:	f890 107e 	ldrb.w	r1, [r0, #126]	; 0x7e
   142aa:	290b      	cmp	r1, #11
   142ac:	d001      	beq.n	142b2 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x13a>
   142ae:	290c      	cmp	r1, #12
   142b0:	d118      	bne.n	142e4 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x16c>
   142b2:	f8b0 2074 	ldrh.w	r2, [r0, #116]	; 0x74
   142b6:	f8b0 3194 	ldrh.w	r3, [r0, #404]	; 0x194
   142ba:	1ad2      	subs	r2, r2, r3
   142bc:	b212      	sxth	r2, r2
   142be:	2a00      	cmp	r2, #0
   142c0:	db10      	blt.n	142e4 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x16c>
   142c2:	f8d0 1196 	ldr.w	r1, [r0, #406]	; 0x196
   142c6:	f8c0 1086 	str.w	r1, [r0, #134]	; 0x86
   142ca:	f890 119a 	ldrb.w	r1, [r0, #410]	; 0x19a
   142ce:	f880 108a 	strb.w	r1, [r0, #138]	; 0x8a
   142d2:	2103      	movs	r1, #3
   142d4:	f7fd fdcc 	bl	11e70 <sym_4NT3PFFI5Z6RN57T2HW54HJZ23JEQUTUQPJLJGI>
   142d8:	68a0      	ldr	r0, [r4, #8]
   142da:	f880 507e 	strb.w	r5, [r0, #126]	; 0x7e
   142de:	f880 60be 	strb.w	r6, [r0, #190]	; 0xbe
   142e2:	e026      	b.n	14332 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1ba>
   142e4:	2924      	cmp	r1, #36	; 0x24
   142e6:	d111      	bne.n	1430c <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x194>
   142e8:	f8b0 1074 	ldrh.w	r1, [r0, #116]	; 0x74
   142ec:	f8b0 2194 	ldrh.w	r2, [r0, #404]	; 0x194
   142f0:	1a89      	subs	r1, r1, r2
   142f2:	b209      	sxth	r1, r1
   142f4:	2900      	cmp	r1, #0
   142f6:	db09      	blt.n	1430c <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x194>
   142f8:	f880 507e 	strb.w	r5, [r0, #126]	; 0x7e
   142fc:	f000 fe82 	bl	15004 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xe8c>
   14300:	2800      	cmp	r0, #0
   14302:	68a0      	ldr	r0, [r4, #8]
   14304:	f880 51ae 	strb.w	r5, [r0, #430]	; 0x1ae
   14308:	d029      	beq.n	1435e <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1e6>
   1430a:	e012      	b.n	14332 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1ba>
   1430c:	f890 107d 	ldrb.w	r1, [r0, #125]	; 0x7d
   14310:	2924      	cmp	r1, #36	; 0x24
   14312:	d001      	beq.n	14318 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1a0>
   14314:	2925      	cmp	r1, #37	; 0x25
   14316:	d10c      	bne.n	14332 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1ba>
   14318:	f8b0 1074 	ldrh.w	r1, [r0, #116]	; 0x74
   1431c:	f8b0 2194 	ldrh.w	r2, [r0, #404]	; 0x194
   14320:	1a89      	subs	r1, r1, r2
   14322:	b209      	sxth	r1, r1
   14324:	2900      	cmp	r1, #0
   14326:	db04      	blt.n	14332 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1ba>
   14328:	f880 507d 	strb.w	r5, [r0, #125]	; 0x7d
   1432c:	f000 fe6a 	bl	15004 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xe8c>
   14330:	b1a8      	cbz	r0, 1435e <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1e6>
   14332:	4810      	ldr	r0, [pc, #64]	; (14374 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1fc>)
   14334:	9000      	str	r0, [sp, #0]
   14336:	4b10      	ldr	r3, [pc, #64]	; (14378 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x200>)
   14338:	4a10      	ldr	r2, [pc, #64]	; (1437c <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x204>)
   1433a:	4641      	mov	r1, r8
   1433c:	4648      	mov	r0, r9
   1433e:	f7fc fde3 	bl	10f08 <sym_SQINY6V2VHFAHM5HL3H753H3QE3VQ7FWHCIJ57Q>
   14342:	68a0      	ldr	r0, [r4, #8]
   14344:	2301      	movs	r3, #1
   14346:	2105      	movs	r1, #5
   14348:	f890 207e 	ldrb.w	r2, [r0, #126]	; 0x7e
   1434c:	3070      	adds	r0, #112	; 0x70
   1434e:	f005 f939 	bl	195c4 <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I>
   14352:	2800      	cmp	r0, #0
   14354:	d009      	beq.n	1436a <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1f2>
   14356:	e8bd 43f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
   1435a:	f7fc bdcf 	b.w	10efc <sym_4OWM6DBJ6JLAWH2MVU52MKC56VOOJLN34T33LQA>
   1435e:	e8bd 43f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
   14362:	2100      	movs	r1, #0
   14364:	4608      	mov	r0, r1
   14366:	f000 bbd5 	b.w	14b14 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x99c>
   1436a:	e8bd 83f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
   1436e:	0000      	.short	0x0000
   14370:	2000011c 	.word	0x2000011c
   14374:	00014b15 	.word	0x00014b15
   14378:	00014619 	.word	0x00014619
   1437c:	00014f51 	.word	0x00014f51
   14380:	b570      	push	{r4, r5, r6, lr}
   14382:	4c0f      	ldr	r4, [pc, #60]	; (143c0 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x248>)
   14384:	68a5      	ldr	r5, [r4, #8]
   14386:	f895 107d 	ldrb.w	r1, [r5, #125]	; 0x7d
   1438a:	2920      	cmp	r1, #32
   1438c:	d002      	beq.n	14394 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x21c>
   1438e:	2926      	cmp	r1, #38	; 0x26
   14390:	d003      	beq.n	1439a <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x222>
   14392:	e011      	b.n	143b8 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x240>
   14394:	f000 fe84 	bl	150a0 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xf28>
   14398:	e008      	b.n	143ac <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x234>
   1439a:	f895 207e 	ldrb.w	r2, [r5, #126]	; 0x7e
   1439e:	2301      	movs	r3, #1
   143a0:	210b      	movs	r1, #11
   143a2:	f105 0070 	add.w	r0, r5, #112	; 0x70
   143a6:	f005 f90d 	bl	195c4 <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I>
   143aa:	b138      	cbz	r0, 143bc <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x244>
   143ac:	68a1      	ldr	r1, [r4, #8]
   143ae:	2000      	movs	r0, #0
   143b0:	f881 007d 	strb.w	r0, [r1, #125]	; 0x7d
   143b4:	f881 00ae 	strb.w	r0, [r1, #174]	; 0xae
   143b8:	2000      	movs	r0, #0
   143ba:	bd70      	pop	{r4, r5, r6, pc}
   143bc:	202a      	movs	r0, #42	; 0x2a
   143be:	e7e9      	b.n	14394 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x21c>
   143c0:	2000011c 	.word	0x2000011c
   143c4:	4804      	ldr	r0, [pc, #16]	; (143d8 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x260>)
   143c6:	2100      	movs	r1, #0
   143c8:	6880      	ldr	r0, [r0, #8]
   143ca:	f820 1fb0 	strh.w	r1, [r0, #176]!
   143ce:	7881      	ldrb	r1, [r0, #2]
   143d0:	1c49      	adds	r1, r1, #1
   143d2:	7081      	strb	r1, [r0, #2]
   143d4:	4770      	bx	lr
   143d6:	0000      	.short	0x0000
   143d8:	2000011c 	.word	0x2000011c
   143dc:	4807      	ldr	r0, [pc, #28]	; (143fc <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x284>)
   143de:	b510      	push	{r4, lr}
   143e0:	6881      	ldr	r1, [r0, #8]
   143e2:	f811 0fb2 	ldrb.w	r0, [r1, #178]!
   143e6:	1e40      	subs	r0, r0, #1
   143e8:	b240      	sxtb	r0, r0
   143ea:	7008      	strb	r0, [r1, #0]
   143ec:	2800      	cmp	r0, #0
   143ee:	da04      	bge.n	143fa <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x282>
   143f0:	f44f 71c9 	mov.w	r1, #402	; 0x192
   143f4:	2031      	movs	r0, #49	; 0x31
   143f6:	f7fb fdf5 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   143fa:	bd10      	pop	{r4, pc}
   143fc:	2000011c 	.word	0x2000011c
   14400:	491a      	ldr	r1, [pc, #104]	; (1446c <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x2f4>)
   14402:	b508      	push	{r3, lr}
   14404:	6889      	ldr	r1, [r1, #8]
   14406:	f891 207e 	ldrb.w	r2, [r1, #126]	; 0x7e
   1440a:	b1b8      	cbz	r0, 1443c <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x2c4>
   1440c:	2a10      	cmp	r2, #16
   1440e:	d006      	beq.n	1441e <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x2a6>
   14410:	2a14      	cmp	r2, #20
   14412:	d007      	beq.n	14424 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x2ac>
   14414:	2a15      	cmp	r2, #21
   14416:	d008      	beq.n	1442a <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x2b2>
   14418:	2a1b      	cmp	r2, #27
   1441a:	d122      	bne.n	14462 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x2ea>
   1441c:	e008      	b.n	14430 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x2b8>
   1441e:	2101      	movs	r1, #1
   14420:	200b      	movs	r0, #11
   14422:	e007      	b.n	14434 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x2bc>
   14424:	f001 faac 	bl	15980 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1808>
   14428:	e006      	b.n	14438 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x2c0>
   1442a:	f000 fd59 	bl	14ee0 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xd68>
   1442e:	e003      	b.n	14438 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x2c0>
   14430:	2101      	movs	r1, #1
   14432:	2006      	movs	r0, #6
   14434:	f000 fd36 	bl	14ea4 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xd2c>
   14438:	2001      	movs	r0, #1
   1443a:	bd08      	pop	{r3, pc}
   1443c:	2a21      	cmp	r2, #33	; 0x21
   1443e:	d110      	bne.n	14462 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x2ea>
   14440:	f891 01ae 	ldrb.w	r0, [r1, #430]	; 0x1ae
   14444:	2802      	cmp	r0, #2
   14446:	d00e      	beq.n	14466 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x2ee>
   14448:	f891 01ae 	ldrb.w	r0, [r1, #430]	; 0x1ae
   1444c:	2801      	cmp	r0, #1
   1444e:	d108      	bne.n	14462 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x2ea>
   14450:	f891 01af 	ldrb.w	r0, [r1, #431]	; 0x1af
   14454:	f88d 0000 	strb.w	r0, [sp]
   14458:	9800      	ldr	r0, [sp, #0]
   1445a:	9000      	str	r0, [sp, #0]
   1445c:	f89d 0000 	ldrb.w	r0, [sp]
   14460:	b108      	cbz	r0, 14466 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x2ee>
   14462:	2000      	movs	r0, #0
   14464:	bd08      	pop	{r3, pc}
   14466:	2101      	movs	r1, #1
   14468:	2017      	movs	r0, #23
   1446a:	e7e3      	b.n	14434 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x2bc>
   1446c:	2000011c 	.word	0x2000011c
   14470:	b538      	push	{r3, r4, r5, lr}
   14472:	2800      	cmp	r0, #0
   14474:	d16b      	bne.n	1454e <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x3d6>
   14476:	4c37      	ldr	r4, [pc, #220]	; (14554 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x3dc>)
   14478:	68a0      	ldr	r0, [r4, #8]
   1447a:	f890 107f 	ldrb.w	r1, [r0, #127]	; 0x7f
   1447e:	07ca      	lsls	r2, r1, #31
   14480:	d002      	beq.n	14488 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x310>
   14482:	2101      	movs	r1, #1
   14484:	2009      	movs	r0, #9
   14486:	e05b      	b.n	14540 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x3c8>
   14488:	078a      	lsls	r2, r1, #30
   1448a:	d50a      	bpl.n	144a2 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x32a>
   1448c:	2101      	movs	r1, #1
   1448e:	200c      	movs	r0, #12
   14490:	f000 fd08 	bl	14ea4 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xd2c>
   14494:	68a0      	ldr	r0, [r4, #8]
   14496:	f810 1fb6 	ldrb.w	r1, [r0, #182]!
   1449a:	f041 0101 	orr.w	r1, r1, #1
   1449e:	7001      	strb	r1, [r0, #0]
   144a0:	e050      	b.n	14544 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x3cc>
   144a2:	074a      	lsls	r2, r1, #29
   144a4:	d502      	bpl.n	144ac <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x334>
   144a6:	2101      	movs	r1, #1
   144a8:	2013      	movs	r0, #19
   144aa:	e049      	b.n	14540 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x3c8>
   144ac:	070a      	lsls	r2, r1, #28
   144ae:	d505      	bpl.n	144bc <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x344>
   144b0:	f810 1fe9 	ldrb.w	r1, [r0, #233]!
   144b4:	7141      	strb	r1, [r0, #5]
   144b6:	2101      	movs	r1, #1
   144b8:	2007      	movs	r0, #7
   144ba:	e041      	b.n	14540 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x3c8>
   144bc:	f011 0f30 	tst.w	r1, #48	; 0x30
   144c0:	d045      	beq.n	1454e <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x3d6>
   144c2:	f890 11a5 	ldrb.w	r1, [r0, #421]	; 0x1a5
   144c6:	f88d 1000 	strb.w	r1, [sp]
   144ca:	9900      	ldr	r1, [sp, #0]
   144cc:	9100      	str	r1, [sp, #0]
   144ce:	f89d 1000 	ldrb.w	r1, [sp]
   144d2:	bbc9      	cbnz	r1, 14548 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x3d0>
   144d4:	f890 11a4 	ldrb.w	r1, [r0, #420]	; 0x1a4
   144d8:	f88d 1000 	strb.w	r1, [sp]
   144dc:	9900      	ldr	r1, [sp, #0]
   144de:	9100      	str	r1, [sp, #0]
   144e0:	f89d 1000 	ldrb.w	r1, [sp]
   144e4:	b1c9      	cbz	r1, 1451a <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x3a2>
   144e6:	f890 107e 	ldrb.w	r1, [r0, #126]	; 0x7e
   144ea:	2924      	cmp	r1, #36	; 0x24
   144ec:	d02d      	beq.n	1454a <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x3d2>
   144ee:	f890 107d 	ldrb.w	r1, [r0, #125]	; 0x7d
   144f2:	2924      	cmp	r1, #36	; 0x24
   144f4:	d029      	beq.n	1454a <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x3d2>
   144f6:	2300      	movs	r3, #0
   144f8:	f500 72cb 	add.w	r2, r0, #406	; 0x196
   144fc:	f500 71d2 	add.w	r1, r0, #420	; 0x1a4
   14500:	f005 fc57 	bl	19db2 <sym_436OKKOGR27QX7FMSZKYSEYLCMU4ZXR5RN4XUBY>
   14504:	68a0      	ldr	r0, [r4, #8]
   14506:	f810 1f7f 	ldrb.w	r1, [r0, #127]!
   1450a:	f021 0120 	bic.w	r1, r1, #32
   1450e:	f041 0110 	orr.w	r1, r1, #16
   14512:	7001      	strb	r1, [r0, #0]
   14514:	2100      	movs	r1, #0
   14516:	f880 1125 	strb.w	r1, [r0, #293]	; 0x125
   1451a:	68a0      	ldr	r0, [r4, #8]
   1451c:	f890 107f 	ldrb.w	r1, [r0, #127]	; 0x7f
   14520:	06c9      	lsls	r1, r1, #27
   14522:	d514      	bpl.n	1454e <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x3d6>
   14524:	f005 fc60 	bl	19de8 <sym_IPYDOGNKVSD5CNASNRZPFKSG4XKU4ZG4SVERI7Q>
   14528:	f000 f910 	bl	1474c <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x5d4>
   1452c:	68a1      	ldr	r1, [r4, #8]
   1452e:	f101 002c 	add.w	r0, r1, #44	; 0x2c
   14532:	8bc2      	ldrh	r2, [r0, #30]
   14534:	f821 2fee 	strh.w	r2, [r1, #238]!
   14538:	8c40      	ldrh	r0, [r0, #34]	; 0x22
   1453a:	8048      	strh	r0, [r1, #2]
   1453c:	2101      	movs	r1, #1
   1453e:	2015      	movs	r0, #21
   14540:	f000 fcb0 	bl	14ea4 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xd2c>
   14544:	2001      	movs	r0, #1
   14546:	bd38      	pop	{r3, r4, r5, pc}
   14548:	e001      	b.n	1454e <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x3d6>
   1454a:	2301      	movs	r3, #1
   1454c:	e7d4      	b.n	144f8 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x380>
   1454e:	2000      	movs	r0, #0
   14550:	e7f9      	b.n	14546 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x3ce>
   14552:	0000      	.short	0x0000
   14554:	2000011c 	.word	0x2000011c
   14558:	b570      	push	{r4, r5, r6, lr}
   1455a:	460d      	mov	r5, r1
   1455c:	4606      	mov	r6, r0
   1455e:	f005 fa9f 	bl	19aa0 <sym_GRRIKVTWBW2KWQ7YPR62UQBT5XVQYKO2LIWXODY>
   14562:	4604      	mov	r4, r0
   14564:	4630      	mov	r0, r6
   14566:	f005 faa7 	bl	19ab8 <sym_6HFAHFLWDMEYCQ4GR3OXMWUSK4H5E4C2QPT3NZA>
   1456a:	4629      	mov	r1, r5
   1456c:	f000 f81e 	bl	145ac <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x434>
   14570:	b1b8      	cbz	r0, 145a2 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x42a>
   14572:	4620      	mov	r0, r4
   14574:	f005 f8bf 	bl	196f6 <sym_FRDCUWW6PTM2YTBQLG5XNT6WJGPFH2XWEMJXJRI>
   14578:	0001      	movs	r1, r0
   1457a:	d00d      	beq.n	14598 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x420>
   1457c:	480a      	ldr	r0, [pc, #40]	; (145a8 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x430>)
   1457e:	6880      	ldr	r0, [r0, #8]
   14580:	f890 206b 	ldrb.w	r2, [r0, #107]	; 0x6b
   14584:	428a      	cmp	r2, r1
   14586:	d007      	beq.n	14598 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x420>
   14588:	f890 11ae 	ldrb.w	r1, [r0, #430]	; 0x1ae
   1458c:	2901      	cmp	r1, #1
   1458e:	d005      	beq.n	1459c <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x424>
   14590:	f890 0067 	ldrb.w	r0, [r0, #103]	; 0x67
   14594:	4220      	tst	r0, r4
   14596:	d004      	beq.n	145a2 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x42a>
   14598:	2001      	movs	r0, #1
   1459a:	bd70      	pop	{r4, r5, r6, pc}
   1459c:	f890 01b1 	ldrb.w	r0, [r0, #433]	; 0x1b1
   145a0:	e7f8      	b.n	14594 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x41c>
   145a2:	2000      	movs	r0, #0
   145a4:	bd70      	pop	{r4, r5, r6, pc}
   145a6:	0000      	.short	0x0000
   145a8:	2000011c 	.word	0x2000011c
   145ac:	b570      	push	{r4, r5, r6, lr}
   145ae:	460d      	mov	r5, r1
   145b0:	4604      	mov	r4, r0
   145b2:	f005 f8a0 	bl	196f6 <sym_FRDCUWW6PTM2YTBQLG5XNT6WJGPFH2XWEMJXJRI>
   145b6:	b350      	cbz	r0, 1460e <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x496>
   145b8:	4916      	ldr	r1, [pc, #88]	; (14614 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x49c>)
   145ba:	6889      	ldr	r1, [r1, #8]
   145bc:	f891 206a 	ldrb.w	r2, [r1, #106]	; 0x6a
   145c0:	4282      	cmp	r2, r0
   145c2:	d024      	beq.n	1460e <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x496>
   145c4:	f891 31ae 	ldrb.w	r3, [r1, #430]	; 0x1ae
   145c8:	2b01      	cmp	r3, #1
   145ca:	d005      	beq.n	145d8 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x460>
   145cc:	f891 3066 	ldrb.w	r3, [r1, #102]	; 0x66
   145d0:	4223      	tst	r3, r4
   145d2:	d013      	beq.n	145fc <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x484>
   145d4:	b11d      	cbz	r5, 145de <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x466>
   145d6:	e01a      	b.n	1460e <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x496>
   145d8:	f891 31b0 	ldrb.w	r3, [r1, #432]	; 0x1b0
   145dc:	e7f8      	b.n	145d0 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x458>
   145de:	f891 1063 	ldrb.w	r1, [r1, #99]	; 0x63
   145e2:	4221      	tst	r1, r4
   145e4:	d113      	bne.n	1460e <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x496>
   145e6:	b15a      	cbz	r2, 14600 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x488>
   145e8:	2a04      	cmp	r2, #4
   145ea:	d00e      	beq.n	1460a <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x492>
   145ec:	2804      	cmp	r0, #4
   145ee:	d00c      	beq.n	1460a <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x492>
   145f0:	2a08      	cmp	r2, #8
   145f2:	d00a      	beq.n	1460a <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x492>
   145f4:	2808      	cmp	r0, #8
   145f6:	d008      	beq.n	1460a <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x492>
   145f8:	4282      	cmp	r2, r0
   145fa:	d908      	bls.n	1460e <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x496>
   145fc:	2000      	movs	r0, #0
   145fe:	bd70      	pop	{r4, r5, r6, pc}
   14600:	f240 1155 	movw	r1, #341	; 0x155
   14604:	2006      	movs	r0, #6
   14606:	f7fb fced 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   1460a:	4282      	cmp	r2, r0
   1460c:	d3f6      	bcc.n	145fc <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x484>
   1460e:	2001      	movs	r0, #1
   14610:	bd70      	pop	{r4, r5, r6, pc}
   14612:	0000      	.short	0x0000
   14614:	2000011c 	.word	0x2000011c
   14618:	490c      	ldr	r1, [pc, #48]	; (1464c <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x4d4>)
   1461a:	4602      	mov	r2, r0
   1461c:	7848      	ldrb	r0, [r1, #1]
   1461e:	b998      	cbnz	r0, 14648 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x4d0>
   14620:	4608      	mov	r0, r1
   14622:	6880      	ldr	r0, [r0, #8]
   14624:	b142      	cbz	r2, 14638 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x4c0>
   14626:	7889      	ldrb	r1, [r1, #2]
   14628:	0709      	lsls	r1, r1, #28
   1462a:	d503      	bpl.n	14634 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x4bc>
   1462c:	f890 0080 	ldrb.w	r0, [r0, #128]	; 0x80
   14630:	2808      	cmp	r0, #8
   14632:	d009      	beq.n	14648 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x4d0>
   14634:	2001      	movs	r0, #1
   14636:	4770      	bx	lr
   14638:	f100 012c 	add.w	r1, r0, #44	; 0x2c
   1463c:	8c8a      	ldrh	r2, [r1, #36]	; 0x24
   1463e:	8e81      	ldrh	r1, [r0, #52]	; 0x34
   14640:	428a      	cmp	r2, r1
   14642:	d801      	bhi.n	14648 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x4d0>
   14644:	f7fe bfd4 	b.w	135f0 <sym_FQCHK2QLF7THGK7G4A4OWWNXI3K2TVYTTB4U4GY>
   14648:	2000      	movs	r0, #0
   1464a:	4770      	bx	lr
   1464c:	2000011c 	.word	0x2000011c
   14650:	b538      	push	{r3, r4, r5, lr}
   14652:	4c3d      	ldr	r4, [pc, #244]	; (14748 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x5d0>)
   14654:	4605      	mov	r5, r0
   14656:	68a0      	ldr	r0, [r4, #8]
   14658:	3070      	adds	r0, #112	; 0x70
   1465a:	f006 fad4 	bl	1ac06 <sym_IYZQNCOB4T4XO27DREWRIWJFVHVS355NEDBEGEQ+0x1e>
   1465e:	2800      	cmp	r0, #0
   14660:	d170      	bne.n	14744 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x5cc>
   14662:	2d00      	cmp	r5, #0
   14664:	d16e      	bne.n	14744 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x5cc>
   14666:	68a0      	ldr	r0, [r4, #8]
   14668:	2301      	movs	r3, #1
   1466a:	4619      	mov	r1, r3
   1466c:	f890 2080 	ldrb.w	r2, [r0, #128]	; 0x80
   14670:	3070      	adds	r0, #112	; 0x70
   14672:	f004 ffa7 	bl	195c4 <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I>
   14676:	2800      	cmp	r0, #0
   14678:	d164      	bne.n	14744 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x5cc>
   1467a:	68a0      	ldr	r0, [r4, #8]
   1467c:	f890 1178 	ldrb.w	r1, [r0, #376]	; 0x178
   14680:	f88d 1000 	strb.w	r1, [sp]
   14684:	9900      	ldr	r1, [sp, #0]
   14686:	9100      	str	r1, [sp, #0]
   14688:	f89d 1000 	ldrb.w	r1, [sp]
   1468c:	b149      	cbz	r1, 146a2 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x52a>
   1468e:	2100      	movs	r1, #0
   14690:	f8a0 10a8 	strh.w	r1, [r0, #168]	; 0xa8
   14694:	f890 1179 	ldrb.w	r1, [r0, #377]	; 0x179
   14698:	f880 10ee 	strb.w	r1, [r0, #238]	; 0xee
   1469c:	2100      	movs	r1, #0
   1469e:	2002      	movs	r0, #2
   146a0:	e045      	b.n	1472e <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x5b6>
   146a2:	f890 207e 	ldrb.w	r2, [r0, #126]	; 0x7e
   146a6:	2301      	movs	r3, #1
   146a8:	2104      	movs	r1, #4
   146aa:	3070      	adds	r0, #112	; 0x70
   146ac:	f004 ff8a 	bl	195c4 <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I>
   146b0:	4605      	mov	r5, r0
   146b2:	f7ff fedd 	bl	14470 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x2f8>
   146b6:	2800      	cmp	r0, #0
   146b8:	d144      	bne.n	14744 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x5cc>
   146ba:	4628      	mov	r0, r5
   146bc:	f7ff fea0 	bl	14400 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x288>
   146c0:	2800      	cmp	r0, #0
   146c2:	d13f      	bne.n	14744 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x5cc>
   146c4:	68a0      	ldr	r0, [r4, #8]
   146c6:	2301      	movs	r3, #1
   146c8:	2100      	movs	r1, #0
   146ca:	f890 207d 	ldrb.w	r2, [r0, #125]	; 0x7d
   146ce:	3070      	adds	r0, #112	; 0x70
   146d0:	f004 ff78 	bl	195c4 <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I>
   146d4:	b178      	cbz	r0, 146f6 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x57e>
   146d6:	68a0      	ldr	r0, [r4, #8]
   146d8:	2301      	movs	r3, #1
   146da:	2104      	movs	r1, #4
   146dc:	f890 207e 	ldrb.w	r2, [r0, #126]	; 0x7e
   146e0:	3070      	adds	r0, #112	; 0x70
   146e2:	f004 ff6f 	bl	195c4 <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I>
   146e6:	b930      	cbnz	r0, 146f6 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x57e>
   146e8:	68a0      	ldr	r0, [r4, #8]
   146ea:	f890 00a2 	ldrb.w	r0, [r0, #162]	; 0xa2
   146ee:	b110      	cbz	r0, 146f6 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x57e>
   146f0:	2100      	movs	r1, #0
   146f2:	2012      	movs	r0, #18
   146f4:	e01b      	b.n	1472e <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x5b6>
   146f6:	68a0      	ldr	r0, [r4, #8]
   146f8:	f890 107d 	ldrb.w	r1, [r0, #125]	; 0x7d
   146fc:	290a      	cmp	r1, #10
   146fe:	d01a      	beq.n	14736 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x5be>
   14700:	2d00      	cmp	r5, #0
   14702:	d11f      	bne.n	14744 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x5cc>
   14704:	f000 fb1a 	bl	14d3c <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xbc4>
   14708:	2800      	cmp	r0, #0
   1470a:	d11b      	bne.n	14744 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x5cc>
   1470c:	68a0      	ldr	r0, [r4, #8]
   1470e:	2301      	movs	r3, #1
   14710:	2100      	movs	r1, #0
   14712:	f890 207d 	ldrb.w	r2, [r0, #125]	; 0x7d
   14716:	3070      	adds	r0, #112	; 0x70
   14718:	f004 ff54 	bl	195c4 <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I>
   1471c:	2800      	cmp	r0, #0
   1471e:	d011      	beq.n	14744 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x5cc>
   14720:	68a0      	ldr	r0, [r4, #8]
   14722:	f890 018c 	ldrb.w	r0, [r0, #396]	; 0x18c
   14726:	2800      	cmp	r0, #0
   14728:	d00c      	beq.n	14744 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x5cc>
   1472a:	2100      	movs	r1, #0
   1472c:	20ff      	movs	r0, #255	; 0xff
   1472e:	e8bd 4038 	ldmia.w	sp!, {r3, r4, r5, lr}
   14732:	f000 bbb7 	b.w	14ea4 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xd2c>
   14736:	f810 1fea 	ldrb.w	r1, [r0, #234]!
   1473a:	7101      	strb	r1, [r0, #4]
   1473c:	2100      	movs	r1, #0
   1473e:	2007      	movs	r0, #7
   14740:	e7f5      	b.n	1472e <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x5b6>
   14742:	e7ff      	b.n	14744 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x5cc>
   14744:	bd38      	pop	{r3, r4, r5, pc}
   14746:	0000      	.short	0x0000
   14748:	2000011c 	.word	0x2000011c
   1474c:	480a      	ldr	r0, [pc, #40]	; (14778 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x600>)
   1474e:	b510      	push	{r4, lr}
   14750:	6881      	ldr	r1, [r0, #8]
   14752:	f891 0060 	ldrb.w	r0, [r1, #96]	; 0x60
   14756:	2801      	cmp	r0, #1
   14758:	d009      	beq.n	1476e <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x5f6>
   1475a:	8808      	ldrh	r0, [r1, #0]
   1475c:	f501 72ed 	add.w	r2, r1, #474	; 0x1da
   14760:	312c      	adds	r1, #44	; 0x2c
   14762:	f005 fb02 	bl	19d6a <sym_KQELUVJKUXDWI537IIFYFUVTNDSZOYYQ6RIVVLY>
   14766:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
   1476a:	f001 bc05 	b.w	15f78 <sym_ZGH42ABHAQFX3NKIMGIK7DGGJ5XWXU2KDVYEOMI>
   1476e:	2002      	movs	r0, #2
   14770:	f881 0060 	strb.w	r0, [r1, #96]	; 0x60
   14774:	bd10      	pop	{r4, pc}
   14776:	0000      	.short	0x0000
   14778:	2000011c 	.word	0x2000011c
   1477c:	b570      	push	{r4, r5, r6, lr}
   1477e:	4c25      	ldr	r4, [pc, #148]	; (14814 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x69c>)
   14780:	0005      	movs	r5, r0
   14782:	d12f      	bne.n	147e4 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x66c>
   14784:	f000 f8a4 	bl	148d0 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x758>
   14788:	f000 f848 	bl	1481c <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x6a4>
   1478c:	0005      	movs	r5, r0
   1478e:	d129      	bne.n	147e4 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x66c>
   14790:	8860      	ldrh	r0, [r4, #2]
   14792:	0741      	lsls	r1, r0, #29
   14794:	d506      	bpl.n	147a4 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x62c>
   14796:	68a1      	ldr	r1, [r4, #8]
   14798:	f891 1080 	ldrb.w	r1, [r1, #128]	; 0x80
   1479c:	2907      	cmp	r1, #7
   1479e:	d101      	bne.n	147a4 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x62c>
   147a0:	2101      	movs	r1, #1
   147a2:	7021      	strb	r1, [r4, #0]
   147a4:	0780      	lsls	r0, r0, #30
   147a6:	d512      	bpl.n	147ce <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x656>
   147a8:	68e0      	ldr	r0, [r4, #12]
   147aa:	78c0      	ldrb	r0, [r0, #3]
   147ac:	2819      	cmp	r0, #25
   147ae:	d205      	bcs.n	147bc <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x644>
   147b0:	4919      	ldr	r1, [pc, #100]	; (14818 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x6a0>)
   147b2:	f851 1020 	ldr.w	r1, [r1, r0, lsl #2]
   147b6:	b109      	cbz	r1, 147bc <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x644>
   147b8:	4788      	blx	r1
   147ba:	e008      	b.n	147ce <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x656>
   147bc:	28ff      	cmp	r0, #255	; 0xff
   147be:	d004      	beq.n	147ca <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x652>
   147c0:	f240 714d 	movw	r1, #1869	; 0x74d
   147c4:	2031      	movs	r0, #49	; 0x31
   147c6:	f7fb fc0d 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   147ca:	f001 f90b 	bl	159e4 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x186c>
   147ce:	78a0      	ldrb	r0, [r4, #2]
   147d0:	06c0      	lsls	r0, r0, #27
   147d2:	d507      	bpl.n	147e4 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x66c>
   147d4:	68a0      	ldr	r0, [r4, #8]
   147d6:	f890 107e 	ldrb.w	r1, [r0, #126]	; 0x7e
   147da:	290b      	cmp	r1, #11
   147dc:	d102      	bne.n	147e4 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x66c>
   147de:	210c      	movs	r1, #12
   147e0:	f880 107e 	strb.w	r1, [r0, #126]	; 0x7e
   147e4:	7860      	ldrb	r0, [r4, #1]
   147e6:	0700      	lsls	r0, r0, #28
   147e8:	d511      	bpl.n	1480e <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x696>
   147ea:	68a0      	ldr	r0, [r4, #8]
   147ec:	2301      	movs	r3, #1
   147ee:	2105      	movs	r1, #5
   147f0:	f890 207e 	ldrb.w	r2, [r0, #126]	; 0x7e
   147f4:	3070      	adds	r0, #112	; 0x70
   147f6:	f004 fee5 	bl	195c4 <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I>
   147fa:	b128      	cbz	r0, 14808 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x690>
   147fc:	68a1      	ldr	r1, [r4, #8]
   147fe:	2508      	movs	r5, #8
   14800:	2000      	movs	r0, #0
   14802:	f881 01c4 	strb.w	r0, [r1, #452]	; 0x1c4
   14806:	e002      	b.n	1480e <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x696>
   14808:	2000      	movs	r0, #0
   1480a:	f7fc fc4d 	bl	110a8 <sym_P6ESEOOF3E3ZRYNBCJWJZXMT4EPJJMHF472YBMQ>
   1480e:	4628      	mov	r0, r5
   14810:	bd70      	pop	{r4, r5, r6, pc}
   14812:	0000      	.short	0x0000
   14814:	2000011c 	.word	0x2000011c
   14818:	20000194 	.word	0x20000194
   1481c:	b570      	push	{r4, r5, r6, lr}
   1481e:	4c2a      	ldr	r4, [pc, #168]	; (148c8 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x750>)
   14820:	2000      	movs	r0, #0
   14822:	78a1      	ldrb	r1, [r4, #2]
   14824:	07c9      	lsls	r1, r1, #31
   14826:	d015      	beq.n	14854 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x6dc>
   14828:	6920      	ldr	r0, [r4, #16]
   1482a:	2301      	movs	r3, #1
   1482c:	2105      	movs	r1, #5
   1482e:	78c5      	ldrb	r5, [r0, #3]
   14830:	68a0      	ldr	r0, [r4, #8]
   14832:	f890 207e 	ldrb.w	r2, [r0, #126]	; 0x7e
   14836:	3070      	adds	r0, #112	; 0x70
   14838:	f004 fec4 	bl	195c4 <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I>
   1483c:	b158      	cbz	r0, 14856 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x6de>
   1483e:	1ead      	subs	r5, r5, #2
   14840:	2d0a      	cmp	r5, #10
   14842:	d206      	bcs.n	14852 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x6da>
   14844:	e8df f005 	tbb	[pc, r5]
   14848:	05050707 	.word	0x05050707
   1484c:	05050707 	.word	0x05050707
   14850:	0707      	.short	0x0707
   14852:	2008      	movs	r0, #8
   14854:	bd70      	pop	{r4, r5, r6, pc}
   14856:	6920      	ldr	r0, [r4, #16]
   14858:	f7fd fc34 	bl	120c4 <sym_AQNKAYNIT4GTGTVAKOZJZSWZBN4I6FFKO6L5AXA>
   1485c:	b138      	cbz	r0, 1486e <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x6f6>
   1485e:	6920      	ldr	r0, [r4, #16]
   14860:	78c5      	ldrb	r5, [r0, #3]
   14862:	b145      	cbz	r5, 14876 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x6fe>
   14864:	2d01      	cmp	r5, #1
   14866:	d006      	beq.n	14876 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x6fe>
   14868:	2d16      	cmp	r5, #22
   1486a:	d118      	bne.n	1489e <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x726>
   1486c:	e003      	b.n	14876 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x6fe>
   1486e:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
   14872:	f000 bd3d 	b.w	152f0 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1178>
   14876:	68a0      	ldr	r0, [r4, #8]
   14878:	f890 007d 	ldrb.w	r0, [r0, #125]	; 0x7d
   1487c:	f004 fef0 	bl	19660 <sym_J22YCCWNUNOSXHAJQUUQAO7YZP2SNXLIWISZVHI>
   14880:	b168      	cbz	r0, 1489e <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x726>
   14882:	68a1      	ldr	r1, [r4, #8]
   14884:	f891 007d 	ldrb.w	r0, [r1, #125]	; 0x7d
   14888:	281f      	cmp	r0, #31
   1488a:	d008      	beq.n	1489e <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x726>
   1488c:	2820      	cmp	r0, #32
   1488e:	d003      	beq.n	14898 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x720>
   14890:	2d16      	cmp	r5, #22
   14892:	d00c      	beq.n	148ae <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x736>
   14894:	2002      	movs	r0, #2
   14896:	bd70      	pop	{r4, r5, r6, pc}
   14898:	2026      	movs	r0, #38	; 0x26
   1489a:	f881 007d 	strb.w	r0, [r1, #125]	; 0x7d
   1489e:	2d19      	cmp	r5, #25
   148a0:	d207      	bcs.n	148b2 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x73a>
   148a2:	480a      	ldr	r0, [pc, #40]	; (148cc <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x754>)
   148a4:	f850 0025 	ldr.w	r0, [r0, r5, lsl #2]
   148a8:	b118      	cbz	r0, 148b2 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x73a>
   148aa:	4780      	blx	r0
   148ac:	e003      	b.n	148b6 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x73e>
   148ae:	2020      	movs	r0, #32
   148b0:	bd70      	pop	{r4, r5, r6, pc}
   148b2:	f000 fd1d 	bl	152f0 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1178>
   148b6:	68a2      	ldr	r2, [r4, #8]
   148b8:	e9f2 1332 	ldrd	r1, r3, [r2, #200]!	; 0xc8
   148bc:	1c49      	adds	r1, r1, #1
   148be:	f143 0300 	adc.w	r3, r3, #0
   148c2:	e9c2 1300 	strd	r1, r3, [r2]
   148c6:	bd70      	pop	{r4, r5, r6, pc}
   148c8:	2000011c 	.word	0x2000011c
   148cc:	20000130 	.word	0x20000130
   148d0:	b570      	push	{r4, r5, r6, lr}
   148d2:	4c22      	ldr	r4, [pc, #136]	; (1495c <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x7e4>)
   148d4:	78a0      	ldrb	r0, [r4, #2]
   148d6:	0700      	lsls	r0, r0, #28
   148d8:	d53e      	bpl.n	14958 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x7e0>
   148da:	68a0      	ldr	r0, [r4, #8]
   148dc:	3070      	adds	r0, #112	; 0x70
   148de:	f006 f992 	bl	1ac06 <sym_IYZQNCOB4T4XO27DREWRIWJFVHVS355NEDBEGEQ+0x1e>
   148e2:	b148      	cbz	r0, 148f8 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x780>
   148e4:	68a0      	ldr	r0, [r4, #8]
   148e6:	21fe      	movs	r1, #254	; 0xfe
   148e8:	2500      	movs	r5, #0
   148ea:	f880 10ec 	strb.w	r1, [r0, #236]	; 0xec
   148ee:	f890 107e 	ldrb.w	r1, [r0, #126]	; 0x7e
   148f2:	2919      	cmp	r1, #25
   148f4:	d10c      	bne.n	14910 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x798>
   148f6:	e004      	b.n	14902 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x78a>
   148f8:	f240 7157 	movw	r1, #1879	; 0x757
   148fc:	2031      	movs	r0, #49	; 0x31
   148fe:	f7fb fb71 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   14902:	f880 50b3 	strb.w	r5, [r0, #179]	; 0xb3
   14906:	f7ff fd69 	bl	143dc <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x264>
   1490a:	68a0      	ldr	r0, [r4, #8]
   1490c:	f880 507e 	strb.w	r5, [r0, #126]	; 0x7e
   14910:	68a0      	ldr	r0, [r4, #8]
   14912:	f890 107d 	ldrb.w	r1, [r0, #125]	; 0x7d
   14916:	291f      	cmp	r1, #31
   14918:	d002      	beq.n	14920 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x7a8>
   1491a:	2927      	cmp	r1, #39	; 0x27
   1491c:	d113      	bne.n	14946 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x7ce>
   1491e:	e00b      	b.n	14938 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x7c0>
   14920:	f890 007e 	ldrb.w	r0, [r0, #126]	; 0x7e
   14924:	f004 fe9c 	bl	19660 <sym_J22YCCWNUNOSXHAJQUUQAO7YZP2SNXLIWISZVHI>
   14928:	b108      	cbz	r0, 1492e <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x7b6>
   1492a:	2026      	movs	r0, #38	; 0x26
   1492c:	e000      	b.n	14930 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x7b8>
   1492e:	2020      	movs	r0, #32
   14930:	68a1      	ldr	r1, [r4, #8]
   14932:	f881 007d 	strb.w	r0, [r1, #125]	; 0x7d
   14936:	e006      	b.n	14946 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x7ce>
   14938:	2101      	movs	r1, #1
   1493a:	f880 118d 	strb.w	r1, [r0, #397]	; 0x18d
   1493e:	f880 507d 	strb.w	r5, [r0, #125]	; 0x7d
   14942:	f880 50ae 	strb.w	r5, [r0, #174]	; 0xae
   14946:	68a0      	ldr	r0, [r4, #8]
   14948:	f890 1080 	ldrb.w	r1, [r0, #128]	; 0x80
   1494c:	2908      	cmp	r1, #8
   1494e:	d103      	bne.n	14958 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x7e0>
   14950:	2102      	movs	r1, #2
   14952:	7021      	strb	r1, [r4, #0]
   14954:	f880 10ec 	strb.w	r1, [r0, #236]	; 0xec
   14958:	bd70      	pop	{r4, r5, r6, pc}
   1495a:	0000      	.short	0x0000
   1495c:	2000011c 	.word	0x2000011c
   14960:	b5fe      	push	{r1, r2, r3, r4, r5, r6, r7, lr}
   14962:	4605      	mov	r5, r0
   14964:	4668      	mov	r0, sp
   14966:	f7fc fa03 	bl	10d70 <sym_65LA7GM3MU7DDFQKTB75BYTZMPMROSWKS3VXCNI>
   1496a:	b318      	cbz	r0, 149b4 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x83c>
   1496c:	2222      	movs	r2, #34	; 0x22
   1496e:	2100      	movs	r1, #0
   14970:	9800      	ldr	r0, [sp, #0]
   14972:	f003 fc20 	bl	181b6 <sym_VSILKYHVQ5DVF6LG5MG267DQVA3A2XZQ6FSCLXA>
   14976:	2103      	movs	r1, #3
   14978:	9800      	ldr	r0, [sp, #0]
   1497a:	f005 f8f1 	bl	19b60 <sym_KWWW3Q4Z6LMHA6EXR6CMFCOS3QXXZ636XUAHVBY>
   1497e:	9800      	ldr	r0, [sp, #0]
   14980:	7801      	ldrb	r1, [r0, #0]
   14982:	f021 0110 	bic.w	r1, r1, #16
   14986:	7001      	strb	r1, [r0, #0]
   14988:	4629      	mov	r1, r5
   1498a:	f7fd fbc7 	bl	1211c <sym_ASSU5HSD7LU7BXC2C2QNNVLB6AOHO4SQ3KK3OJY>
   1498e:	2100      	movs	r1, #0
   14990:	4c5f      	ldr	r4, [pc, #380]	; (14b10 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x998>)
   14992:	f644 162f 	movw	r6, #18735	; 0x492f
   14996:	2d0e      	cmp	r5, #14
   14998:	d07e      	beq.n	14a98 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x920>
   1499a:	dc0e      	bgt.n	149ba <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x842>
   1499c:	f1a5 0502 	sub.w	r5, r5, #2
   149a0:	2d0c      	cmp	r5, #12
   149a2:	d21c      	bcs.n	149de <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x866>
   149a4:	e8df f005 	tbb	[pc, r5]
   149a8:	aa491b1e 	.word	0xaa491b1e
   149ac:	551b1eaa 	.word	0x551b1eaa
   149b0:	3034aa1b 	.word	0x3034aa1b
   149b4:	f640 1182 	movw	r1, #2434	; 0x982
   149b8:	e0a6      	b.n	14b08 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x990>
   149ba:	2d15      	cmp	r5, #21
   149bc:	d05c      	beq.n	14a78 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x900>
   149be:	dc08      	bgt.n	149d2 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x85a>
   149c0:	2d11      	cmp	r5, #17
   149c2:	d014      	beq.n	149ee <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x876>
   149c4:	2d12      	cmp	r5, #18
   149c6:	d01e      	beq.n	14a06 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x88e>
   149c8:	2d13      	cmp	r5, #19
   149ca:	d01c      	beq.n	14a06 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x88e>
   149cc:	2d14      	cmp	r5, #20
   149ce:	d106      	bne.n	149de <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x866>
   149d0:	e052      	b.n	14a78 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x900>
   149d2:	2d16      	cmp	r5, #22
   149d4:	d027      	beq.n	14a26 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x8ae>
   149d6:	2d17      	cmp	r5, #23
   149d8:	d069      	beq.n	14aae <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x936>
   149da:	2dff      	cmp	r5, #255	; 0xff
   149dc:	d072      	beq.n	14ac4 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x94c>
   149de:	f640 11f8 	movw	r1, #2552	; 0x9f8
   149e2:	e091      	b.n	14b08 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x990>
   149e4:	68a1      	ldr	r1, [r4, #8]
   149e6:	9800      	ldr	r0, [sp, #0]
   149e8:	f891 10ee 	ldrb.w	r1, [r1, #238]	; 0xee
   149ec:	e00e      	b.n	14a0c <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x894>
   149ee:	68a0      	ldr	r0, [r4, #8]
   149f0:	f890 10ee 	ldrb.w	r1, [r0, #238]	; 0xee
   149f4:	9800      	ldr	r0, [sp, #0]
   149f6:	f005 f88f 	bl	19b18 <sym_2AEWUZQ66QOZRZKHF7IFSSSWOGAXMPPQQH7267Y>
   149fa:	68a0      	ldr	r0, [r4, #8]
   149fc:	f890 10ef 	ldrb.w	r1, [r0, #239]	; 0xef
   14a00:	9800      	ldr	r0, [sp, #0]
   14a02:	f005 f88b 	bl	19b1c <sym_AG7JDKFTDFANNIOBH4HEQO2XNU7V2OR3R525SOY>
   14a06:	e079      	b.n	14afc <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x984>
   14a08:	9800      	ldr	r0, [sp, #0]
   14a0a:	2106      	movs	r1, #6
   14a0c:	7101      	strb	r1, [r0, #4]
   14a0e:	e075      	b.n	14afc <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x984>
   14a10:	9800      	ldr	r0, [sp, #0]
   14a12:	220b      	movs	r2, #11
   14a14:	7102      	strb	r2, [r0, #4]
   14a16:	2259      	movs	r2, #89	; 0x59
   14a18:	7142      	strb	r2, [r0, #5]
   14a1a:	7181      	strb	r1, [r0, #6]
   14a1c:	21b0      	movs	r1, #176	; 0xb0
   14a1e:	71c1      	strb	r1, [r0, #7]
   14a20:	2112      	movs	r1, #18
   14a22:	7201      	strb	r1, [r0, #8]
   14a24:	e06a      	b.n	14afc <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x984>
   14a26:	9800      	ldr	r0, [sp, #0]
   14a28:	f8d4 1008 	ldr.w	r1, [r4, #8]
   14a2c:	f891 21b0 	ldrb.w	r2, [r1, #432]	; 0x1b0
   14a30:	7102      	strb	r2, [r0, #4]
   14a32:	f891 11b1 	ldrb.w	r1, [r1, #433]	; 0x1b1
   14a36:	7141      	strb	r1, [r0, #5]
   14a38:	e060      	b.n	14afc <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x984>
   14a3a:	68a1      	ldr	r1, [r4, #8]
   14a3c:	9800      	ldr	r0, [sp, #0]
   14a3e:	f501 718c 	add.w	r1, r1, #280	; 0x118
   14a42:	f005 f87e 	bl	19b42 <sym_GACCOL6OK5AZZZEY5D5QPNSIBJI3JJRDH53DCCY>
   14a46:	68a1      	ldr	r1, [r4, #8]
   14a48:	9800      	ldr	r0, [sp, #0]
   14a4a:	31e4      	adds	r1, #228	; 0xe4
   14a4c:	f005 f876 	bl	19b3c <sym_VUV5X4H4Y5BCHQYQ2OODYEDUWFHSSL4GLPT4S5Q>
   14a50:	e054      	b.n	14afc <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x984>
   14a52:	9101      	str	r1, [sp, #4]
   14a54:	9102      	str	r1, [sp, #8]
   14a56:	f001 fe39 	bl	166cc <sym_PBZPB3PSJJYSQQW7TH2XDGNLD2UYSZR6YJ4ZZNQ>
   14a5a:	68a1      	ldr	r1, [r4, #8]
   14a5c:	4030      	ands	r0, r6
   14a5e:	f891 10bc 	ldrb.w	r1, [r1, #188]	; 0xbc
   14a62:	4001      	ands	r1, r0
   14a64:	f88d 1004 	strb.w	r1, [sp, #4]
   14a68:	0a00      	lsrs	r0, r0, #8
   14a6a:	f88d 0005 	strb.w	r0, [sp, #5]
   14a6e:	a901      	add	r1, sp, #4
   14a70:	9800      	ldr	r0, [sp, #0]
   14a72:	f005 f870 	bl	19b56 <sym_ATMVKJRU6FJAJXHYSHEXCCKRTDJACEACYJQFGVQ>
   14a76:	e041      	b.n	14afc <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x984>
   14a78:	68a0      	ldr	r0, [r4, #8]
   14a7a:	f8b0 104c 	ldrh.w	r1, [r0, #76]	; 0x4c
   14a7e:	9800      	ldr	r0, [sp, #0]
   14a80:	f005 f876 	bl	19b70 <sym_5WASOMRPEYEGPJYIYCZL3MI6RFVOLW4PF3WQWXQ>
   14a84:	68a0      	ldr	r0, [r4, #8]
   14a86:	f8b0 10f0 	ldrh.w	r1, [r0, #240]	; 0xf0
   14a8a:	9800      	ldr	r0, [sp, #0]
   14a8c:	f005 f874 	bl	19b78 <sym_65OGIL725U6FQPGLZMGDICIUHB5S2P2UG7UZGMY>
   14a90:	68a0      	ldr	r0, [r4, #8]
   14a92:	f8b0 1048 	ldrh.w	r1, [r0, #72]	; 0x48
   14a96:	e000      	b.n	14a9a <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x922>
   14a98:	e015      	b.n	14ac6 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x94e>
   14a9a:	9800      	ldr	r0, [sp, #0]
   14a9c:	f005 f870 	bl	19b80 <sym_DPBBMGOHRJRJWIFBTEHPLVVPOEIMHXK2HYFFW2A>
   14aa0:	68a0      	ldr	r0, [r4, #8]
   14aa2:	f8b0 10ee 	ldrh.w	r1, [r0, #238]	; 0xee
   14aa6:	9800      	ldr	r0, [sp, #0]
   14aa8:	f005 f86e 	bl	19b88 <sym_F72ACBYKMJPI25JMH6PCTUEZPH6HMPJHM2HMJDY>
   14aac:	e026      	b.n	14afc <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x984>
   14aae:	68a1      	ldr	r1, [r4, #8]
   14ab0:	f891 01ae 	ldrb.w	r0, [r1, #430]	; 0x1ae
   14ab4:	2801      	cmp	r0, #1
   14ab6:	9800      	ldr	r0, [sp, #0]
   14ab8:	d0b8      	beq.n	14a2c <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x8b4>
   14aba:	f811 2f66 	ldrb.w	r2, [r1, #102]!
   14abe:	7102      	strb	r2, [r0, #4]
   14ac0:	7849      	ldrb	r1, [r1, #1]
   14ac2:	e7b8      	b.n	14a36 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x8be>
   14ac4:	e012      	b.n	14aec <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x974>
   14ac6:	9101      	str	r1, [sp, #4]
   14ac8:	9102      	str	r1, [sp, #8]
   14aca:	f001 fdff 	bl	166cc <sym_PBZPB3PSJJYSQQW7TH2XDGNLD2UYSZR6YJ4ZZNQ>
   14ace:	68a1      	ldr	r1, [r4, #8]
   14ad0:	4030      	ands	r0, r6
   14ad2:	f891 10bc 	ldrb.w	r1, [r1, #188]	; 0xbc
   14ad6:	4001      	ands	r1, r0
   14ad8:	f88d 1004 	strb.w	r1, [sp, #4]
   14adc:	0a00      	lsrs	r0, r0, #8
   14ade:	f88d 0005 	strb.w	r0, [sp, #5]
   14ae2:	a901      	add	r1, sp, #4
   14ae4:	9800      	ldr	r0, [sp, #0]
   14ae6:	f005 f831 	bl	19b4c <sym_ALFHFCPCHQINI4F6NU6LJJP26B4M2FERQPHDBAI>
   14aea:	e007      	b.n	14afc <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x984>
   14aec:	68a0      	ldr	r0, [r4, #8]
   14aee:	f890 218f 	ldrb.w	r2, [r0, #399]	; 0x18f
   14af2:	f8d0 1190 	ldr.w	r1, [r0, #400]	; 0x190
   14af6:	9800      	ldr	r0, [sp, #0]
   14af8:	f005 f812 	bl	19b20 <sym_KDG27CITYLRG66Y5P6H5BVIHPU5DAFDVHM7DSQA>
   14afc:	f7fc f912 	bl	10d24 <sym_AGWGY6I3YKHHV6TMAWL24HN4IKGOB7PZYXPWBRA>
   14b00:	2800      	cmp	r0, #0
   14b02:	d104      	bne.n	14b0e <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x996>
   14b04:	f640 11fc 	movw	r1, #2556	; 0x9fc
   14b08:	2031      	movs	r0, #49	; 0x31
   14b0a:	f7fb fa6b 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   14b0e:	bdfe      	pop	{r1, r2, r3, r4, r5, r6, r7, pc}
   14b10:	2000011c 	.word	0x2000011c
   14b14:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
   14b18:	4c87      	ldr	r4, [pc, #540]	; (14d38 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xbc0>)
   14b1a:	4682      	mov	sl, r0
   14b1c:	4689      	mov	r9, r1
   14b1e:	68a0      	ldr	r0, [r4, #8]
   14b20:	8800      	ldrh	r0, [r0, #0]
   14b22:	f7fb fe9d 	bl	10860 <sym_35ZAQW4ABRMBYES2ZHPK63BHZAFFFC4WMGEJ6NA>
   14b26:	0006      	movs	r6, r0
   14b28:	d00a      	beq.n	14b40 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x9c8>
   14b2a:	8860      	ldrh	r0, [r4, #2]
   14b2c:	f04f 0500 	mov.w	r5, #0
   14b30:	05c0      	lsls	r0, r0, #23
   14b32:	68a0      	ldr	r0, [r4, #8]
   14b34:	d509      	bpl.n	14b4a <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x9d2>
   14b36:	f8a0 50a4 	strh.w	r5, [r0, #164]	; 0xa4
   14b3a:	f880 510c 	strb.w	r5, [r0, #268]	; 0x10c
   14b3e:	e008      	b.n	14b52 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x9da>
   14b40:	f640 51a2 	movw	r1, #3490	; 0xda2
   14b44:	2031      	movs	r0, #49	; 0x31
   14b46:	f7fb fa4d 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   14b4a:	f830 1fa4 	ldrh.w	r1, [r0, #164]!
   14b4e:	1c49      	adds	r1, r1, #1
   14b50:	8001      	strh	r1, [r0, #0]
   14b52:	f001 f8e3 	bl	15d1c <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1ba4>
   14b56:	f04f 0801 	mov.w	r8, #1
   14b5a:	b320      	cbz	r0, 14ba6 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xa2e>
   14b5c:	8860      	ldrh	r0, [r4, #2]
   14b5e:	0500      	lsls	r0, r0, #20
   14b60:	d506      	bpl.n	14b70 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x9f8>
   14b62:	68a0      	ldr	r0, [r4, #8]
   14b64:	f890 1083 	ldrb.w	r1, [r0, #131]	; 0x83
   14b68:	b111      	cbz	r1, 14b70 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x9f8>
   14b6a:	f8c0 5098 	str.w	r5, [r0, #152]	; 0x98
   14b6e:	e01a      	b.n	14ba6 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xa2e>
   14b70:	68a0      	ldr	r0, [r4, #8]
   14b72:	f8d0 1098 	ldr.w	r1, [r0, #152]	; 0x98
   14b76:	1c49      	adds	r1, r1, #1
   14b78:	f8c0 1098 	str.w	r1, [r0, #152]	; 0x98
   14b7c:	f8d0 309c 	ldr.w	r3, [r0, #156]	; 0x9c
   14b80:	428b      	cmp	r3, r1
   14b82:	d301      	bcc.n	14b88 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xa10>
   14b84:	1a5a      	subs	r2, r3, r1
   14b86:	e000      	b.n	14b8a <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xa12>
   14b88:	2200      	movs	r2, #0
   14b8a:	88a7      	ldrh	r7, [r4, #4]
   14b8c:	1d7f      	adds	r7, r7, #5
   14b8e:	42ba      	cmp	r2, r7
   14b90:	d801      	bhi.n	14b96 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xa1e>
   14b92:	f880 80a2 	strb.w	r8, [r0, #162]	; 0xa2
   14b96:	4299      	cmp	r1, r3
   14b98:	d305      	bcc.n	14ba6 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xa2e>
   14b9a:	f8c0 5098 	str.w	r5, [r0, #152]	; 0x98
   14b9e:	f880 81fa 	strb.w	r8, [r0, #506]	; 0x1fa
   14ba2:	f001 f9e9 	bl	15f78 <sym_ZGH42ABHAQFX3NKIMGIK7DGGJ5XWXU2KDVYEOMI>
   14ba6:	8860      	ldrh	r0, [r4, #2]
   14ba8:	f04f 0702 	mov.w	r7, #2
   14bac:	f410 7f40 	tst.w	r0, #768	; 0x300
   14bb0:	d00e      	beq.n	14bd0 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xa58>
   14bb2:	68a0      	ldr	r0, [r4, #8]
   14bb4:	f890 1081 	ldrb.w	r1, [r0, #129]	; 0x81
   14bb8:	b111      	cbz	r1, 14bc0 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xa48>
   14bba:	2903      	cmp	r1, #3
   14bbc:	d108      	bne.n	14bd0 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xa58>
   14bbe:	e002      	b.n	14bc6 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xa4e>
   14bc0:	f880 8081 	strb.w	r8, [r0, #129]	; 0x81
   14bc4:	e001      	b.n	14bca <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xa52>
   14bc6:	f880 7081 	strb.w	r7, [r0, #129]	; 0x81
   14bca:	2101      	movs	r1, #1
   14bcc:	f7fe fd36 	bl	1363c <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI>
   14bd0:	68a0      	ldr	r0, [r4, #8]
   14bd2:	f890 1081 	ldrb.w	r1, [r0, #129]	; 0x81
   14bd6:	2901      	cmp	r1, #1
   14bd8:	d104      	bne.n	14be4 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xa6c>
   14bda:	8861      	ldrh	r1, [r4, #2]
   14bdc:	0549      	lsls	r1, r1, #21
   14bde:	d501      	bpl.n	14be4 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xa6c>
   14be0:	f880 7081 	strb.w	r7, [r0, #129]	; 0x81
   14be4:	f1ba 0f00 	cmp.w	sl, #0
   14be8:	d176      	bne.n	14cd8 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xb60>
   14bea:	78a1      	ldrb	r1, [r4, #2]
   14bec:	0649      	lsls	r1, r1, #25
   14bee:	d502      	bpl.n	14bf6 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xa7e>
   14bf0:	f8a0 5120 	strh.w	r5, [r0, #288]	; 0x120
   14bf4:	e004      	b.n	14c00 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xa88>
   14bf6:	f8b0 1120 	ldrh.w	r1, [r0, #288]	; 0x120
   14bfa:	1c49      	adds	r1, r1, #1
   14bfc:	f8a0 1120 	strh.w	r1, [r0, #288]	; 0x120
   14c00:	4648      	mov	r0, r9
   14c02:	f7ff fdbb 	bl	1477c <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x604>
   14c06:	ea40 0009 	orr.w	r0, r0, r9
   14c0a:	4681      	mov	r9, r0
   14c0c:	f7ff fd20 	bl	14650 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x4d8>
   14c10:	68a7      	ldr	r7, [r4, #8]
   14c12:	f8b7 0100 	ldrh.w	r0, [r7, #256]	; 0x100
   14c16:	1c40      	adds	r0, r0, #1
   14c18:	f8a7 0100 	strh.w	r0, [r7, #256]	; 0x100
   14c1c:	f897 0104 	ldrb.w	r0, [r7, #260]	; 0x104
   14c20:	b128      	cbz	r0, 14c2e <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xab6>
   14c22:	f7fc faaf 	bl	11184 <sym_ZWLSMB33C6NPFOBZGVPV4PN4UKQGSPLLR4WLDFI>
   14c26:	b1b0      	cbz	r0, 14c56 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xade>
   14c28:	f8a7 5100 	strh.w	r5, [r7, #256]	; 0x100
   14c2c:	e013      	b.n	14c56 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xade>
   14c2e:	f7fc f921 	bl	10e74 <sym_Q3RLGT2MQM6S4H2ODVJHPDU44HGSYVXJV7676ZY>
   14c32:	b108      	cbz	r0, 14c38 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xac0>
   14c34:	f8a7 5100 	strh.w	r5, [r7, #256]	; 0x100
   14c38:	f7fc f916 	bl	10e68 <sym_IHWHOAENEU2EYZP2UWQTUC6SSXGS5NNQSIFSEAQ>
   14c3c:	b158      	cbz	r0, 14c56 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xade>
   14c3e:	f897 010c 	ldrb.w	r0, [r7, #268]	; 0x10c
   14c42:	1c40      	adds	r0, r0, #1
   14c44:	b2c0      	uxtb	r0, r0
   14c46:	f887 010c 	strb.w	r0, [r7, #268]	; 0x10c
   14c4a:	2802      	cmp	r0, #2
   14c4c:	d903      	bls.n	14c56 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xade>
   14c4e:	f8a7 5100 	strh.w	r5, [r7, #256]	; 0x100
   14c52:	f887 510c 	strb.w	r5, [r7, #268]	; 0x10c
   14c56:	68a0      	ldr	r0, [r4, #8]
   14c58:	2301      	movs	r3, #1
   14c5a:	2100      	movs	r1, #0
   14c5c:	f890 207e 	ldrb.w	r2, [r0, #126]	; 0x7e
   14c60:	3070      	adds	r0, #112	; 0x70
   14c62:	f004 fcaf 	bl	195c4 <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I>
   14c66:	b920      	cbnz	r0, 14c72 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xafa>
   14c68:	68a0      	ldr	r0, [r4, #8]
   14c6a:	f890 007e 	ldrb.w	r0, [r0, #126]	; 0x7e
   14c6e:	280c      	cmp	r0, #12
   14c70:	d15e      	bne.n	14d30 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xbb8>
   14c72:	68a0      	ldr	r0, [r4, #8]
   14c74:	2301      	movs	r3, #1
   14c76:	2100      	movs	r1, #0
   14c78:	f890 207d 	ldrb.w	r2, [r0, #125]	; 0x7d
   14c7c:	3070      	adds	r0, #112	; 0x70
   14c7e:	f004 fca1 	bl	195c4 <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I>
   14c82:	b350      	cbz	r0, 14cda <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xb62>
   14c84:	68a0      	ldr	r0, [r4, #8]
   14c86:	2301      	movs	r3, #1
   14c88:	2100      	movs	r1, #0
   14c8a:	f890 2080 	ldrb.w	r2, [r0, #128]	; 0x80
   14c8e:	3070      	adds	r0, #112	; 0x70
   14c90:	f004 fc98 	bl	195c4 <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I>
   14c94:	b308      	cbz	r0, 14cda <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xb62>
   14c96:	68a0      	ldr	r0, [r4, #8]
   14c98:	f890 1081 	ldrb.w	r1, [r0, #129]	; 0x81
   14c9c:	2902      	cmp	r1, #2
   14c9e:	d147      	bne.n	14d30 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xbb8>
   14ca0:	f890 010c 	ldrb.w	r0, [r0, #268]	; 0x10c
   14ca4:	b9c8      	cbnz	r0, 14cda <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xb62>
   14ca6:	4630      	mov	r0, r6
   14ca8:	f003 ff6d 	bl	18b86 <sym_B62EJKCCJ4JFC5I4BFTUJG7GNOKGWQ4KKFBS6RI>
   14cac:	b1a8      	cbz	r0, 14cda <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xb62>
   14cae:	68a0      	ldr	r0, [r4, #8]
   14cb0:	3070      	adds	r0, #112	; 0x70
   14cb2:	f005 ffa8 	bl	1ac06 <sym_IYZQNCOB4T4XO27DREWRIWJFVHVS355NEDBEGEQ+0x1e>
   14cb6:	b980      	cbnz	r0, 14cda <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xb62>
   14cb8:	68a1      	ldr	r1, [r4, #8]
   14cba:	f8b1 00fa 	ldrh.w	r0, [r1, #250]	; 0xfa
   14cbe:	2801      	cmp	r0, #1
   14cc0:	d936      	bls.n	14d30 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xbb8>
   14cc2:	f881 8102 	strb.w	r8, [r1, #258]	; 0x102
   14cc6:	f8b1 20a6 	ldrh.w	r2, [r1, #166]	; 0xa6
   14cca:	f8b1 00a4 	ldrh.w	r0, [r1, #164]	; 0xa4
   14cce:	1e93      	subs	r3, r2, #2
   14cd0:	4298      	cmp	r0, r3
   14cd2:	db03      	blt.n	14cdc <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xb64>
   14cd4:	2001      	movs	r0, #1
   14cd6:	e004      	b.n	14ce2 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xb6a>
   14cd8:	e01c      	b.n	14d14 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xb9c>
   14cda:	e029      	b.n	14d30 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xbb8>
   14cdc:	1a10      	subs	r0, r2, r0
   14cde:	1e40      	subs	r0, r0, #1
   14ce0:	b280      	uxth	r0, r0
   14ce2:	f8b1 2100 	ldrh.w	r2, [r1, #256]	; 0x100
   14ce6:	88a3      	ldrh	r3, [r4, #4]
   14ce8:	429a      	cmp	r2, r3
   14cea:	d301      	bcc.n	14cf0 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xb78>
   14cec:	2201      	movs	r2, #1
   14cee:	e002      	b.n	14cf6 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xb7e>
   14cf0:	1a9a      	subs	r2, r3, r2
   14cf2:	1c52      	adds	r2, r2, #1
   14cf4:	b292      	uxth	r2, r2
   14cf6:	4290      	cmp	r0, r2
   14cf8:	d900      	bls.n	14cfc <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xb84>
   14cfa:	4610      	mov	r0, r2
   14cfc:	2801      	cmp	r0, #1
   14cfe:	d101      	bne.n	14d04 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xb8c>
   14d00:	f881 5102 	strb.w	r5, [r1, #258]	; 0x102
   14d04:	68a1      	ldr	r1, [r4, #8]
   14d06:	f8b1 2074 	ldrh.w	r2, [r1, #116]	; 0x74
   14d0a:	4410      	add	r0, r2
   14d0c:	f8a1 00fc 	strh.w	r0, [r1, #252]	; 0xfc
   14d10:	f001 f8ce 	bl	15eb0 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1d38>
   14d14:	78a0      	ldrb	r0, [r4, #2]
   14d16:	464a      	mov	r2, r9
   14d18:	f3c0 1180 	ubfx	r1, r0, #6, #1
   14d1c:	4650      	mov	r0, sl
   14d1e:	f001 f811 	bl	15d44 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1bcc>
   14d22:	68a0      	ldr	r0, [r4, #8]
   14d24:	f880 5103 	strb.w	r5, [r0, #259]	; 0x103
   14d28:	e8bd 47f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
   14d2c:	f7fb bfe4 	b.w	10cf8 <sym_54CHYGRI3UHSVLN5ZOGJESXNRISJW5CS4IYBN7Y>
   14d30:	2001      	movs	r0, #1
   14d32:	68a1      	ldr	r1, [r4, #8]
   14d34:	e7e4      	b.n	14d00 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xb88>
   14d36:	0000      	.short	0x0000
   14d38:	2000011c 	.word	0x2000011c
   14d3c:	b57c      	push	{r2, r3, r4, r5, r6, lr}
   14d3e:	4c58      	ldr	r4, [pc, #352]	; (14ea0 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xd28>)
   14d40:	2301      	movs	r3, #1
   14d42:	2100      	movs	r1, #0
   14d44:	68a0      	ldr	r0, [r4, #8]
   14d46:	f890 207d 	ldrb.w	r2, [r0, #125]	; 0x7d
   14d4a:	3070      	adds	r0, #112	; 0x70
   14d4c:	f004 fc3a 	bl	195c4 <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I>
   14d50:	2800      	cmp	r0, #0
   14d52:	d07d      	beq.n	14e50 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xcd8>
   14d54:	68a0      	ldr	r0, [r4, #8]
   14d56:	f890 11b5 	ldrb.w	r1, [r0, #437]	; 0x1b5
   14d5a:	2500      	movs	r5, #0
   14d5c:	b139      	cbz	r1, 14d6e <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xbf6>
   14d5e:	2100      	movs	r1, #0
   14d60:	200e      	movs	r0, #14
   14d62:	f000 f89f 	bl	14ea4 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xd2c>
   14d66:	68a0      	ldr	r0, [r4, #8]
   14d68:	f880 51b5 	strb.w	r5, [r0, #437]	; 0x1b5
   14d6c:	e095      	b.n	14e9a <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xd22>
   14d6e:	f890 11b4 	ldrb.w	r1, [r0, #436]	; 0x1b4
   14d72:	b119      	cbz	r1, 14d7c <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xc04>
   14d74:	f890 10b6 	ldrb.w	r1, [r0, #182]	; 0xb6
   14d78:	0789      	lsls	r1, r1, #30
   14d7a:	d016      	beq.n	14daa <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xc32>
   14d7c:	f890 11a4 	ldrb.w	r1, [r0, #420]	; 0x1a4
   14d80:	f88d 1004 	strb.w	r1, [sp, #4]
   14d84:	9901      	ldr	r1, [sp, #4]
   14d86:	9101      	str	r1, [sp, #4]
   14d88:	f89d 1004 	ldrb.w	r1, [sp, #4]
   14d8c:	b141      	cbz	r1, 14da0 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xc28>
   14d8e:	f890 11a5 	ldrb.w	r1, [r0, #421]	; 0x1a5
   14d92:	f88d 1000 	strb.w	r1, [sp]
   14d96:	9900      	ldr	r1, [sp, #0]
   14d98:	9100      	str	r1, [sp, #0]
   14d9a:	f89d 1000 	ldrb.w	r1, [sp]
   14d9e:	b189      	cbz	r1, 14dc4 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xc4c>
   14da0:	f890 11ae 	ldrb.w	r1, [r0, #430]	; 0x1ae
   14da4:	2901      	cmp	r1, #1
   14da6:	d02f      	beq.n	14e08 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xc90>
   14da8:	e071      	b.n	14e8e <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xd16>
   14daa:	2100      	movs	r1, #0
   14dac:	200c      	movs	r0, #12
   14dae:	f000 f879 	bl	14ea4 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xd2c>
   14db2:	68a0      	ldr	r0, [r4, #8]
   14db4:	f810 1fb6 	ldrb.w	r1, [r0, #182]!
   14db8:	f041 0101 	orr.w	r1, r1, #1
   14dbc:	7001      	strb	r1, [r0, #0]
   14dbe:	f880 50fe 	strb.w	r5, [r0, #254]	; 0xfe
   14dc2:	e06a      	b.n	14e9a <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xd22>
   14dc4:	f890 107e 	ldrb.w	r1, [r0, #126]	; 0x7e
   14dc8:	2924      	cmp	r1, #36	; 0x24
   14dca:	d01b      	beq.n	14e04 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xc8c>
   14dcc:	f890 107d 	ldrb.w	r1, [r0, #125]	; 0x7d
   14dd0:	2924      	cmp	r1, #36	; 0x24
   14dd2:	d017      	beq.n	14e04 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xc8c>
   14dd4:	f05f 0300 	movs.w	r3, #0
   14dd8:	f500 72cb 	add.w	r2, r0, #406	; 0x196
   14ddc:	f500 71d2 	add.w	r1, r0, #420	; 0x1a4
   14de0:	f004 ffe7 	bl	19db2 <sym_436OKKOGR27QX7FMSZKYSEYLCMU4ZXR5RN4XUBY>
   14de4:	68a0      	ldr	r0, [r4, #8]
   14de6:	f880 51a4 	strb.w	r5, [r0, #420]	; 0x1a4
   14dea:	2100      	movs	r1, #0
   14dec:	2014      	movs	r0, #20
   14dee:	f000 f859 	bl	14ea4 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xd2c>
   14df2:	68a1      	ldr	r1, [r4, #8]
   14df4:	f101 002c 	add.w	r0, r1, #44	; 0x2c
   14df8:	8bc2      	ldrh	r2, [r0, #30]
   14dfa:	f821 2fee 	strh.w	r2, [r1, #238]!
   14dfe:	8c40      	ldrh	r0, [r0, #34]	; 0x22
   14e00:	8048      	strh	r0, [r1, #2]
   14e02:	e04a      	b.n	14e9a <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xd22>
   14e04:	2301      	movs	r3, #1
   14e06:	e7e7      	b.n	14dd8 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xc60>
   14e08:	f890 11af 	ldrb.w	r1, [r0, #431]	; 0x1af
   14e0c:	f88d 1000 	strb.w	r1, [sp]
   14e10:	9900      	ldr	r1, [sp, #0]
   14e12:	9100      	str	r1, [sp, #0]
   14e14:	f89d 1000 	ldrb.w	r1, [sp]
   14e18:	bb31      	cbnz	r1, 14e68 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xcf0>
   14e1a:	f890 207e 	ldrb.w	r2, [r0, #126]	; 0x7e
   14e1e:	2301      	movs	r3, #1
   14e20:	210b      	movs	r1, #11
   14e22:	3070      	adds	r0, #112	; 0x70
   14e24:	f004 fbce 	bl	195c4 <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I>
   14e28:	b9f0      	cbnz	r0, 14e68 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xcf0>
   14e2a:	68a0      	ldr	r0, [r4, #8]
   14e2c:	f890 006a 	ldrb.w	r0, [r0, #106]	; 0x6a
   14e30:	f005 fef1 	bl	1ac16 <sym_IYZQNCOB4T4XO27DREWRIWJFVHVS355NEDBEGEQ+0x2e>
   14e34:	4605      	mov	r5, r0
   14e36:	68a0      	ldr	r0, [r4, #8]
   14e38:	f890 006b 	ldrb.w	r0, [r0, #107]	; 0x6b
   14e3c:	f005 feeb 	bl	1ac16 <sym_IYZQNCOB4T4XO27DREWRIWJFVHVS355NEDBEGEQ+0x2e>
   14e40:	4606      	mov	r6, r0
   14e42:	68a0      	ldr	r0, [r4, #8]
   14e44:	f890 11b0 	ldrb.w	r1, [r0, #432]	; 0x1b0
   14e48:	4628      	mov	r0, r5
   14e4a:	f005 feef 	bl	1ac2c <sym_IYZQNCOB4T4XO27DREWRIWJFVHVS355NEDBEGEQ+0x44>
   14e4e:	e000      	b.n	14e52 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xcda>
   14e50:	e01e      	b.n	14e90 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xd18>
   14e52:	b150      	cbz	r0, 14e6a <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xcf2>
   14e54:	68a0      	ldr	r0, [r4, #8]
   14e56:	f890 11b1 	ldrb.w	r1, [r0, #433]	; 0x1b1
   14e5a:	4630      	mov	r0, r6
   14e5c:	f005 fee6 	bl	1ac2c <sym_IYZQNCOB4T4XO27DREWRIWJFVHVS355NEDBEGEQ+0x44>
   14e60:	b118      	cbz	r0, 14e6a <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xcf2>
   14e62:	2000      	movs	r0, #0
   14e64:	f000 f91c 	bl	150a0 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xf28>
   14e68:	e011      	b.n	14e8e <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xd16>
   14e6a:	68a0      	ldr	r0, [r4, #8]
   14e6c:	2301      	movs	r3, #1
   14e6e:	2103      	movs	r1, #3
   14e70:	f890 207e 	ldrb.w	r2, [r0, #126]	; 0x7e
   14e74:	3070      	adds	r0, #112	; 0x70
   14e76:	f004 fba5 	bl	195c4 <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I>
   14e7a:	b940      	cbnz	r0, 14e8e <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xd16>
   14e7c:	68a0      	ldr	r0, [r4, #8]
   14e7e:	2301      	movs	r3, #1
   14e80:	2102      	movs	r1, #2
   14e82:	f890 207e 	ldrb.w	r2, [r0, #126]	; 0x7e
   14e86:	3070      	adds	r0, #112	; 0x70
   14e88:	f004 fb9c 	bl	195c4 <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I>
   14e8c:	b108      	cbz	r0, 14e92 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xd1a>
   14e8e:	2000      	movs	r0, #0
   14e90:	bd7c      	pop	{r2, r3, r4, r5, r6, pc}
   14e92:	2100      	movs	r1, #0
   14e94:	2016      	movs	r0, #22
   14e96:	f000 f805 	bl	14ea4 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xd2c>
   14e9a:	2001      	movs	r0, #1
   14e9c:	bd7c      	pop	{r2, r3, r4, r5, r6, pc}
   14e9e:	0000      	.short	0x0000
   14ea0:	2000011c 	.word	0x2000011c
   14ea4:	b570      	push	{r4, r5, r6, lr}
   14ea6:	4c0d      	ldr	r4, [pc, #52]	; (14edc <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xd64>)
   14ea8:	4606      	mov	r6, r0
   14eaa:	460d      	mov	r5, r1
   14eac:	68a0      	ldr	r0, [r4, #8]
   14eae:	3070      	adds	r0, #112	; 0x70
   14eb0:	f005 fea9 	bl	1ac06 <sym_IYZQNCOB4T4XO27DREWRIWJFVHVS355NEDBEGEQ+0x1e>
   14eb4:	b120      	cbz	r0, 14ec0 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xd48>
   14eb6:	f640 210f 	movw	r1, #2575	; 0xa0f
   14eba:	2031      	movs	r0, #49	; 0x31
   14ebc:	f7fb f892 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   14ec0:	68a2      	ldr	r2, [r4, #8]
   14ec2:	2000      	movs	r0, #0
   14ec4:	f882 60ec 	strb.w	r6, [r2, #236]	; 0xec
   14ec8:	b115      	cbz	r5, 14ed0 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xd58>
   14eca:	f8a2 00b0 	strh.w	r0, [r2, #176]	; 0xb0
   14ece:	bd70      	pop	{r4, r5, r6, pc}
   14ed0:	f822 0faa 	strh.w	r0, [r2, #170]!
   14ed4:	2001      	movs	r0, #1
   14ed6:	7110      	strb	r0, [r2, #4]
   14ed8:	bd70      	pop	{r4, r5, r6, pc}
   14eda:	0000      	.short	0x0000
   14edc:	2000011c 	.word	0x2000011c
   14ee0:	b570      	push	{r4, r5, r6, lr}
   14ee2:	4d1a      	ldr	r5, [pc, #104]	; (14f4c <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xdd4>)
   14ee4:	2600      	movs	r6, #0
   14ee6:	68ac      	ldr	r4, [r5, #8]
   14ee8:	f894 017b 	ldrb.w	r0, [r4, #379]	; 0x17b
   14eec:	2801      	cmp	r0, #1
   14eee:	d00a      	beq.n	14f06 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xd8e>
   14ef0:	2802      	cmp	r0, #2
   14ef2:	d129      	bne.n	14f48 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xdd0>
   14ef4:	f894 00b4 	ldrb.w	r0, [r4, #180]	; 0xb4
   14ef8:	2106      	movs	r1, #6
   14efa:	b1a0      	cbz	r0, 14f26 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xdae>
   14efc:	f884 10ee 	strb.w	r1, [r4, #238]	; 0xee
   14f00:	2101      	movs	r1, #1
   14f02:	2002      	movs	r0, #2
   14f04:	e01b      	b.n	14f3e <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xdc6>
   14f06:	f894 01c4 	ldrb.w	r0, [r4, #452]	; 0x1c4
   14f0a:	2800      	cmp	r0, #0
   14f0c:	d11c      	bne.n	14f48 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xdd0>
   14f0e:	2200      	movs	r2, #0
   14f10:	f504 70be 	add.w	r0, r4, #380	; 0x17c
   14f14:	f504 7188 	add.w	r1, r4, #272	; 0x110
   14f18:	f104 03d0 	add.w	r3, r4, #208	; 0xd0
   14f1c:	f004 fb0a 	bl	19534 <sym_L64WJ6W52HQBFQCTPO5LHELOWQEJNMIWLQKG6JY>
   14f20:	2101      	movs	r1, #1
   14f22:	2005      	movs	r0, #5
   14f24:	e00b      	b.n	14f3e <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xdc6>
   14f26:	f894 00bc 	ldrb.w	r0, [r4, #188]	; 0xbc
   14f2a:	0740      	lsls	r0, r0, #29
   14f2c:	d505      	bpl.n	14f3a <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xdc2>
   14f2e:	2011      	movs	r0, #17
   14f30:	2203      	movs	r2, #3
   14f32:	f804 2fee 	strb.w	r2, [r4, #238]!
   14f36:	7061      	strb	r1, [r4, #1]
   14f38:	e000      	b.n	14f3c <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xdc4>
   14f3a:	200d      	movs	r0, #13
   14f3c:	2101      	movs	r1, #1
   14f3e:	f7ff ffb1 	bl	14ea4 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xd2c>
   14f42:	68a8      	ldr	r0, [r5, #8]
   14f44:	f880 617b 	strb.w	r6, [r0, #379]	; 0x17b
   14f48:	bd70      	pop	{r4, r5, r6, pc}
   14f4a:	0000      	.short	0x0000
   14f4c:	2000011c 	.word	0x2000011c
   14f50:	b570      	push	{r4, r5, r6, lr}
   14f52:	4a2b      	ldr	r2, [pc, #172]	; (15000 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xe88>)
   14f54:	4603      	mov	r3, r0
   14f56:	8850      	ldrh	r0, [r2, #2]
   14f58:	4318      	orrs	r0, r3
   14f5a:	8050      	strh	r0, [r2, #2]
   14f5c:	4610      	mov	r0, r2
   14f5e:	2b40      	cmp	r3, #64	; 0x40
   14f60:	6880      	ldr	r0, [r0, #8]
   14f62:	d00d      	beq.n	14f80 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xe08>
   14f64:	079e      	lsls	r6, r3, #30
   14f66:	f04f 0500 	mov.w	r5, #0
   14f6a:	f04f 0401 	mov.w	r4, #1
   14f6e:	ea4f 76c3 	mov.w	r6, r3, lsl #31
   14f72:	d50c      	bpl.n	14f8e <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xe16>
   14f74:	b14e      	cbz	r6, 14f8a <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xe12>
   14f76:	f640 510f 	movw	r1, #3343	; 0xd0f
   14f7a:	2031      	movs	r0, #49	; 0x31
   14f7c:	f7fb f832 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   14f80:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
   14f84:	2104      	movs	r1, #4
   14f86:	f7fe bb59 	b.w	1363c <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI>
   14f8a:	60d1      	str	r1, [r2, #12]
   14f8c:	e01c      	b.n	14fc8 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xe50>
   14f8e:	b1c6      	cbz	r6, 14fc2 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xe4a>
   14f90:	6111      	str	r1, [r2, #16]
   14f92:	78c9      	ldrb	r1, [r1, #3]
   14f94:	2906      	cmp	r1, #6
   14f96:	d002      	beq.n	14f9e <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xe26>
   14f98:	290b      	cmp	r1, #11
   14f9a:	d112      	bne.n	14fc2 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xe4a>
   14f9c:	e009      	b.n	14fb2 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xe3a>
   14f9e:	f890 107e 	ldrb.w	r1, [r0, #126]	; 0x7e
   14fa2:	2917      	cmp	r1, #23
   14fa4:	d10d      	bne.n	14fc2 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xe4a>
   14fa6:	2100      	movs	r1, #0
   14fa8:	e9c0 1130 	strd	r1, r1, [r0, #192]	; 0xc0
   14fac:	f880 4082 	strb.w	r4, [r0, #130]	; 0x82
   14fb0:	e007      	b.n	14fc2 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xe4a>
   14fb2:	f890 107e 	ldrb.w	r1, [r0, #126]	; 0x7e
   14fb6:	2911      	cmp	r1, #17
   14fb8:	d103      	bne.n	14fc2 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xe4a>
   14fba:	f880 5082 	strb.w	r5, [r0, #130]	; 0x82
   14fbe:	f880 40b4 	strb.w	r4, [r0, #180]	; 0xb4
   14fc2:	0799      	lsls	r1, r3, #30
   14fc4:	d516      	bpl.n	14ff4 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xe7c>
   14fc6:	68d1      	ldr	r1, [r2, #12]
   14fc8:	78c9      	ldrb	r1, [r1, #3]
   14fca:	2905      	cmp	r1, #5
   14fcc:	d002      	beq.n	14fd4 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xe5c>
   14fce:	290b      	cmp	r1, #11
   14fd0:	d110      	bne.n	14ff4 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xe7c>
   14fd2:	e009      	b.n	14fe8 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xe70>
   14fd4:	f890 107e 	ldrb.w	r1, [r0, #126]	; 0x7e
   14fd8:	2915      	cmp	r1, #21
   14fda:	d10b      	bne.n	14ff4 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xe7c>
   14fdc:	2100      	movs	r1, #0
   14fde:	e9e0 1132 	strd	r1, r1, [r0, #200]!	; 0xc8
   14fe2:	f800 4c45 	strb.w	r4, [r0, #-69]
   14fe6:	e005      	b.n	14ff4 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xe7c>
   14fe8:	f890 107e 	ldrb.w	r1, [r0, #126]	; 0x7e
   14fec:	2910      	cmp	r1, #16
   14fee:	d101      	bne.n	14ff4 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xe7c>
   14ff0:	f880 5083 	strb.w	r5, [r0, #131]	; 0x83
   14ff4:	0698      	lsls	r0, r3, #26
   14ff6:	d501      	bpl.n	14ffc <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xe84>
   14ff8:	2008      	movs	r0, #8
   14ffa:	7050      	strb	r0, [r2, #1]
   14ffc:	bd70      	pop	{r4, r5, r6, pc}
   14ffe:	0000      	.short	0x0000
   15000:	2000011c 	.word	0x2000011c
   15004:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   15008:	4c24      	ldr	r4, [pc, #144]	; (1509c <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xf24>)
   1500a:	2501      	movs	r5, #1
   1500c:	68a2      	ldr	r2, [r4, #8]
   1500e:	f892 0196 	ldrb.w	r0, [r2, #406]	; 0x196
   15012:	b108      	cbz	r0, 15018 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xea0>
   15014:	2701      	movs	r7, #1
   15016:	e000      	b.n	1501a <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xea2>
   15018:	2700      	movs	r7, #0
   1501a:	f892 1197 	ldrb.w	r1, [r2, #407]	; 0x197
   1501e:	b109      	cbz	r1, 15024 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xeac>
   15020:	2601      	movs	r6, #1
   15022:	e000      	b.n	15026 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xeae>
   15024:	2600      	movs	r6, #0
   15026:	b90f      	cbnz	r7, 1502c <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xeb4>
   15028:	f892 006a 	ldrb.w	r0, [r2, #106]	; 0x6a
   1502c:	b90e      	cbnz	r6, 15032 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xeba>
   1502e:	f892 106b 	ldrb.w	r1, [r2, #107]	; 0x6b
   15032:	f102 0362 	add.w	r3, r2, #98	; 0x62
   15036:	7218      	strb	r0, [r3, #8]
   15038:	7259      	strb	r1, [r3, #9]
   1503a:	2001      	movs	r0, #1
   1503c:	7298      	strb	r0, [r3, #10]
   1503e:	f892 01ae 	ldrb.w	r0, [r2, #430]	; 0x1ae
   15042:	2801      	cmp	r0, #1
   15044:	d001      	beq.n	1504a <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xed2>
   15046:	b907      	cbnz	r7, 1504a <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xed2>
   15048:	b116      	cbz	r6, 15050 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xed8>
   1504a:	2000      	movs	r0, #0
   1504c:	f000 f828 	bl	150a0 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xf28>
   15050:	68a0      	ldr	r0, [r4, #8]
   15052:	302c      	adds	r0, #44	; 0x2c
   15054:	f004 ff1c 	bl	19e90 <sym_2T6ENJKRE7MWBMC42J5L6S3EMUNPYUXCPAHD23A>
   15058:	4606      	mov	r6, r0
   1505a:	68a0      	ldr	r0, [r4, #8]
   1505c:	f004 fec4 	bl	19de8 <sym_IPYDOGNKVSD5CNASNRZPFKSG4XKU4ZG4SVERI7Q>
   15060:	b1c0      	cbz	r0, 15094 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xf1c>
   15062:	68a0      	ldr	r0, [r4, #8]
   15064:	302c      	adds	r0, #44	; 0x2c
   15066:	f004 ff13 	bl	19e90 <sym_2T6ENJKRE7MWBMC42J5L6S3EMUNPYUXCPAHD23A>
   1506a:	68a1      	ldr	r1, [r4, #8]
   1506c:	4607      	mov	r7, r0
   1506e:	f501 72ed 	add.w	r2, r1, #474	; 0x1da
   15072:	8808      	ldrh	r0, [r1, #0]
   15074:	312c      	adds	r1, #44	; 0x2c
   15076:	f004 fe78 	bl	19d6a <sym_KQELUVJKUXDWI537IIFYFUVTNDSZOYYQ6RIVVLY>
   1507a:	42be      	cmp	r6, r7
   1507c:	d20a      	bcs.n	15094 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xf1c>
   1507e:	f7f8 fbab 	bl	d7d8 <sym_HVFGTYCGAECGUJHOFSPMGUV2G4PTWWUYTJVAPNA>
   15082:	4601      	mov	r1, r0
   15084:	1bb8      	subs	r0, r7, r6
   15086:	2864      	cmp	r0, #100	; 0x64
   15088:	d200      	bcs.n	1508c <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xf14>
   1508a:	2064      	movs	r0, #100	; 0x64
   1508c:	f7f8 fae2 	bl	d654 <sym_QWOE5H22ZADGJX5JSROW7BOI32Z6PPEEJCISNOQ>
   15090:	b100      	cbz	r0, 15094 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xf1c>
   15092:	2500      	movs	r5, #0
   15094:	4628      	mov	r0, r5
   15096:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
   1509a:	0000      	.short	0x0000
   1509c:	2000011c 	.word	0x2000011c
   150a0:	b510      	push	{r4, lr}
   150a2:	4c10      	ldr	r4, [pc, #64]	; (150e4 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xf6c>)
   150a4:	68a1      	ldr	r1, [r4, #8]
   150a6:	880a      	ldrh	r2, [r1, #0]
   150a8:	f8a1 2206 	strh.w	r2, [r1, #518]	; 0x206
   150ac:	f881 0204 	strb.w	r0, [r1, #516]	; 0x204
   150b0:	f891 006a 	ldrb.w	r0, [r1, #106]	; 0x6a
   150b4:	f005 fdaf 	bl	1ac16 <sym_IYZQNCOB4T4XO27DREWRIWJFVHVS355NEDBEGEQ+0x2e>
   150b8:	68a1      	ldr	r1, [r4, #8]
   150ba:	f881 0208 	strb.w	r0, [r1, #520]	; 0x208
   150be:	f891 006b 	ldrb.w	r0, [r1, #107]	; 0x6b
   150c2:	f005 fda8 	bl	1ac16 <sym_IYZQNCOB4T4XO27DREWRIWJFVHVS355NEDBEGEQ+0x2e>
   150c6:	68a2      	ldr	r2, [r4, #8]
   150c8:	f202 2102 	addw	r1, r2, #514	; 0x202
   150cc:	f882 0209 	strb.w	r0, [r2, #521]	; 0x209
   150d0:	2001      	movs	r0, #1
   150d2:	7008      	strb	r0, [r1, #0]
   150d4:	2000      	movs	r0, #0
   150d6:	f882 01ae 	strb.w	r0, [r2, #430]	; 0x1ae
   150da:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
   150de:	f000 bf4b 	b.w	15f78 <sym_ZGH42ABHAQFX3NKIMGIK7DGGJ5XWXU2KDVYEOMI>
   150e2:	0000      	.short	0x0000
   150e4:	2000011c 	.word	0x2000011c
   150e8:	b510      	push	{r4, lr}
   150ea:	4c15      	ldr	r4, [pc, #84]	; (15140 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xfc8>)
   150ec:	2301      	movs	r3, #1
   150ee:	2100      	movs	r1, #0
   150f0:	68a0      	ldr	r0, [r4, #8]
   150f2:	f890 207e 	ldrb.w	r2, [r0, #126]	; 0x7e
   150f6:	3070      	adds	r0, #112	; 0x70
   150f8:	f004 fa64 	bl	195c4 <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I>
   150fc:	b190      	cbz	r0, 15124 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xfac>
   150fe:	6920      	ldr	r0, [r4, #16]
   15100:	f004 fca7 	bl	19a52 <sym_WMWALCDSCSGIPZVRYNPCN3Z65BL7HB3ZVUDUXCQ>
   15104:	68a1      	ldr	r1, [r4, #8]
   15106:	f8a1 0194 	strh.w	r0, [r1, #404]	; 0x194
   1510a:	f8b1 1074 	ldrh.w	r1, [r1, #116]	; 0x74
   1510e:	f005 fd9b 	bl	1ac48 <sym_IYZQNCOB4T4XO27DREWRIWJFVHVS355NEDBEGEQ+0x60>
   15112:	b148      	cbz	r0, 15128 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xfb0>
   15114:	68a0      	ldr	r0, [r4, #8]
   15116:	2128      	movs	r1, #40	; 0x28
   15118:	f880 1095 	strb.w	r1, [r0, #149]	; 0x95
   1511c:	3076      	adds	r0, #118	; 0x76
   1511e:	2101      	movs	r1, #1
   15120:	7781      	strb	r1, [r0, #30]
   15122:	e00b      	b.n	1513c <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xfc4>
   15124:	2001      	movs	r0, #1
   15126:	bd10      	pop	{r4, pc}
   15128:	68a1      	ldr	r1, [r4, #8]
   1512a:	6920      	ldr	r0, [r4, #16]
   1512c:	f501 71cb 	add.w	r1, r1, #406	; 0x196
   15130:	f004 fc8a 	bl	19a48 <sym_Z4ZI42RGZMV4HNY7AR3E37XXZ7IMFK22Y6ETFMA>
   15134:	68a1      	ldr	r1, [r4, #8]
   15136:	200b      	movs	r0, #11
   15138:	f881 007e 	strb.w	r0, [r1, #126]	; 0x7e
   1513c:	2000      	movs	r0, #0
   1513e:	bd10      	pop	{r4, pc}
   15140:	2000011c 	.word	0x2000011c
   15144:	b570      	push	{r4, r5, r6, lr}
   15146:	4c29      	ldr	r4, [pc, #164]	; (151ec <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1074>)
   15148:	2301      	movs	r3, #1
   1514a:	2100      	movs	r1, #0
   1514c:	68a0      	ldr	r0, [r4, #8]
   1514e:	f890 207e 	ldrb.w	r2, [r0, #126]	; 0x7e
   15152:	3070      	adds	r0, #112	; 0x70
   15154:	f004 fa36 	bl	195c4 <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I>
   15158:	b1b8      	cbz	r0, 1518a <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1012>
   1515a:	2100      	movs	r1, #0
   1515c:	6920      	ldr	r0, [r4, #16]
   1515e:	f004 fc4b 	bl	199f8 <sym_SYUCVPKBWJVHVFRFN5N4446ZSHSJVKBYOSWHGGQ>
   15162:	b1a0      	cbz	r0, 1518e <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1016>
   15164:	6920      	ldr	r0, [r4, #16]
   15166:	68a1      	ldr	r1, [r4, #8]
   15168:	f8b0 000d 	ldrh.w	r0, [r0, #13]
   1516c:	f8a1 0194 	strh.w	r0, [r1, #404]	; 0x194
   15170:	f8b1 1074 	ldrh.w	r1, [r1, #116]	; 0x74
   15174:	f005 fd68 	bl	1ac48 <sym_IYZQNCOB4T4XO27DREWRIWJFVHVS355NEDBEGEQ+0x60>
   15178:	b168      	cbz	r0, 15196 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x101e>
   1517a:	68a0      	ldr	r0, [r4, #8]
   1517c:	2128      	movs	r1, #40	; 0x28
   1517e:	f880 1095 	strb.w	r1, [r0, #149]	; 0x95
   15182:	3076      	adds	r0, #118	; 0x76
   15184:	2101      	movs	r1, #1
   15186:	7781      	strb	r1, [r0, #30]
   15188:	e02e      	b.n	151e8 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1070>
   1518a:	2001      	movs	r0, #1
   1518c:	bd70      	pop	{r4, r5, r6, pc}
   1518e:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
   15192:	f000 b8ad 	b.w	152f0 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1178>
   15196:	6920      	ldr	r0, [r4, #16]
   15198:	f004 fc5e 	bl	19a58 <sym_O2B23O5JYMOMMFH6X6KNGJ752KMNUHBQLRFJPCA>
   1519c:	f004 f9f5 	bl	1958a <sym_3GY4TYJRRJL4WNFV6XN3ATYT4MIF4FYTN3S33RI>
   151a0:	4605      	mov	r5, r0
   151a2:	68a0      	ldr	r0, [r4, #8]
   151a4:	4629      	mov	r1, r5
   151a6:	f8c0 519c 	str.w	r5, [r0, #412]	; 0x19c
   151aa:	6920      	ldr	r0, [r4, #16]
   151ac:	7900      	ldrb	r0, [r0, #4]
   151ae:	f004 fb77 	bl	198a0 <sym_NREHYZNNGMA6T4VUMP47EJMM5IU7BRHAZURXRLQ>
   151b2:	68a1      	ldr	r1, [r4, #8]
   151b4:	f8a1 0196 	strh.w	r0, [r1, #406]	; 0x196
   151b8:	6920      	ldr	r0, [r4, #16]
   151ba:	4629      	mov	r1, r5
   151bc:	f8b0 0005 	ldrh.w	r0, [r0, #5]
   151c0:	f004 fb6a 	bl	19898 <sym_5SQGEOI2QIBONU3LMZVAMW3SSGU24TVE57VDLBA>
   151c4:	68a1      	ldr	r1, [r4, #8]
   151c6:	f8c1 0198 	str.w	r0, [r1, #408]	; 0x198
   151ca:	6920      	ldr	r0, [r4, #16]
   151cc:	f004 fc47 	bl	19a5e <sym_GKNOWO7GMUO66Z63YGKTWG2BRIW6TPGP7PUQ2RQ>
   151d0:	68a1      	ldr	r1, [r4, #8]
   151d2:	f8a1 01a0 	strh.w	r0, [r1, #416]	; 0x1a0
   151d6:	6920      	ldr	r0, [r4, #16]
   151d8:	f004 fc44 	bl	19a64 <sym_CLMBK65KRQWY2JSWG7BYXAJVRACUXOCNFT2IPRY>
   151dc:	68a1      	ldr	r1, [r4, #8]
   151de:	f8a1 01a2 	strh.w	r0, [r1, #418]	; 0x1a2
   151e2:	200d      	movs	r0, #13
   151e4:	f881 007e 	strb.w	r0, [r1, #126]	; 0x7e
   151e8:	2000      	movs	r0, #0
   151ea:	bd70      	pop	{r4, r5, r6, pc}
   151ec:	2000011c 	.word	0x2000011c
   151f0:	b538      	push	{r3, r4, r5, lr}
   151f2:	4c29      	ldr	r4, [pc, #164]	; (15298 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1120>)
   151f4:	2301      	movs	r3, #1
   151f6:	2100      	movs	r1, #0
   151f8:	68a0      	ldr	r0, [r4, #8]
   151fa:	f890 207e 	ldrb.w	r2, [r0, #126]	; 0x7e
   151fe:	3070      	adds	r0, #112	; 0x70
   15200:	f004 f9e0 	bl	195c4 <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I>
   15204:	b970      	cbnz	r0, 15224 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x10ac>
   15206:	68a0      	ldr	r0, [r4, #8]
   15208:	f890 207e 	ldrb.w	r2, [r0, #126]	; 0x7e
   1520c:	2a12      	cmp	r2, #18
   1520e:	d009      	beq.n	15224 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x10ac>
   15210:	2301      	movs	r3, #1
   15212:	2105      	movs	r1, #5
   15214:	3070      	adds	r0, #112	; 0x70
   15216:	f004 f9d5 	bl	195c4 <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I>
   1521a:	b108      	cbz	r0, 15220 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x10a8>
   1521c:	2008      	movs	r0, #8
   1521e:	bd38      	pop	{r3, r4, r5, pc}
   15220:	2001      	movs	r0, #1
   15222:	bd38      	pop	{r3, r4, r5, pc}
   15224:	68a0      	ldr	r0, [r4, #8]
   15226:	f890 00b4 	ldrb.w	r0, [r0, #180]	; 0xb4
   1522a:	b908      	cbnz	r0, 15230 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x10b8>
   1522c:	f7ff f8ca 	bl	143c4 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x24c>
   15230:	68a1      	ldr	r1, [r4, #8]
   15232:	6920      	ldr	r0, [r4, #16]
   15234:	f501 7188 	add.w	r1, r1, #272	; 0x110
   15238:	f004 fc23 	bl	19a82 <sym_LSOEOXZGNVP5DB6ZYJ7WAAXWSU5HO7R25UQZZBQ>
   1523c:	68a1      	ldr	r1, [r4, #8]
   1523e:	6920      	ldr	r0, [r4, #16]
   15240:	31e0      	adds	r1, #224	; 0xe0
   15242:	f004 fc15 	bl	19a70 <sym_3TJYOSQOHQD2677U7JVMG6ZM2AEKI337QVGY7TA>
   15246:	68a1      	ldr	r1, [r4, #8]
   15248:	f891 01cc 	ldrb.w	r0, [r1, #460]	; 0x1cc
   1524c:	f88d 0000 	strb.w	r0, [sp]
   15250:	9800      	ldr	r0, [sp, #0]
   15252:	9000      	str	r0, [sp, #0]
   15254:	f89d 0000 	ldrb.w	r0, [sp]
   15258:	b120      	cbz	r0, 15264 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x10ec>
   1525a:	f44f 7128 	mov.w	r1, #672	; 0x2a0
   1525e:	2031      	movs	r0, #49	; 0x31
   15260:	f7fa fec0 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   15264:	8808      	ldrh	r0, [r1, #0]
   15266:	f8a1 01ce 	strh.w	r0, [r1, #462]	; 0x1ce
   1526a:	f501 71e8 	add.w	r1, r1, #464	; 0x1d0
   1526e:	6920      	ldr	r0, [r4, #16]
   15270:	f004 fc02 	bl	19a78 <sym_GVKSQ3HVAAAYIHJ3KPHNCAN4HXAZB6BCZZN5T2Q>
   15274:	68a1      	ldr	r1, [r4, #8]
   15276:	6920      	ldr	r0, [r4, #16]
   15278:	f501 71ec 	add.w	r1, r1, #472	; 0x1d8
   1527c:	f004 fbf5 	bl	19a6a <sym_RM2CYFWBBAMZ6QU7KT5244O7T6GTURMYRG2CBQQ>
   15280:	68a0      	ldr	r0, [r4, #8]
   15282:	4601      	mov	r1, r0
   15284:	2201      	movs	r2, #1
   15286:	f880 21cc 	strb.w	r2, [r0, #460]	; 0x1cc
   1528a:	2014      	movs	r0, #20
   1528c:	f881 007e 	strb.w	r0, [r1, #126]	; 0x7e
   15290:	f000 fe72 	bl	15f78 <sym_ZGH42ABHAQFX3NKIMGIK7DGGJ5XWXU2KDVYEOMI>
   15294:	2000      	movs	r0, #0
   15296:	bd38      	pop	{r3, r4, r5, pc}
   15298:	2000011c 	.word	0x2000011c
   1529c:	b51c      	push	{r2, r3, r4, lr}
   1529e:	4c13      	ldr	r4, [pc, #76]	; (152ec <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1174>)
   152a0:	68a0      	ldr	r0, [r4, #8]
   152a2:	f890 007f 	ldrb.w	r0, [r0, #127]	; 0x7f
   152a6:	07c0      	lsls	r0, r0, #31
   152a8:	d001      	beq.n	152ae <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1136>
   152aa:	2001      	movs	r0, #1
   152ac:	bd1c      	pop	{r2, r3, r4, pc}
   152ae:	4669      	mov	r1, sp
   152b0:	6920      	ldr	r0, [r4, #16]
   152b2:	f004 fbec 	bl	19a8e <sym_MMYJZLVXCKMFPUNAECUW6DM3QIRIH47IIFXKCBY>
   152b6:	f001 fa09 	bl	166cc <sym_PBZPB3PSJJYSQQW7TH2XDGNLD2UYSZR6YJ4ZZNQ>
   152ba:	f644 112f 	movw	r1, #18735	; 0x492f
   152be:	4008      	ands	r0, r1
   152c0:	f89d 2000 	ldrb.w	r2, [sp]
   152c4:	68a1      	ldr	r1, [r4, #8]
   152c6:	4002      	ands	r2, r0
   152c8:	f801 2fbc 	strb.w	r2, [r1, #188]!
   152cc:	f89d 2001 	ldrb.w	r2, [sp, #1]
   152d0:	ea02 2010 	and.w	r0, r2, r0, lsr #8
   152d4:	7048      	strb	r0, [r1, #1]
   152d6:	f7ff f875 	bl	143c4 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x24c>
   152da:	68a0      	ldr	r0, [r4, #8]
   152dc:	f810 1f7f 	ldrb.w	r1, [r0, #127]!
   152e0:	f041 0101 	orr.w	r1, r1, #1
   152e4:	7001      	strb	r1, [r0, #0]
   152e6:	2000      	movs	r0, #0
   152e8:	bd1c      	pop	{r2, r3, r4, pc}
   152ea:	0000      	.short	0x0000
   152ec:	2000011c 	.word	0x2000011c
   152f0:	4a0a      	ldr	r2, [pc, #40]	; (1531c <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x11a4>)
   152f2:	b510      	push	{r4, lr}
   152f4:	6890      	ldr	r0, [r2, #8]
   152f6:	f890 107f 	ldrb.w	r1, [r0, #127]	; 0x7f
   152fa:	070b      	lsls	r3, r1, #28
   152fc:	d501      	bpl.n	15302 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x118a>
   152fe:	2001      	movs	r0, #1
   15300:	bd10      	pop	{r4, pc}
   15302:	f041 0108 	orr.w	r1, r1, #8
   15306:	f880 107f 	strb.w	r1, [r0, #127]	; 0x7f
   1530a:	6911      	ldr	r1, [r2, #16]
   1530c:	78c9      	ldrb	r1, [r1, #3]
   1530e:	f880 10e9 	strb.w	r1, [r0, #233]	; 0xe9
   15312:	f7ff f857 	bl	143c4 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x24c>
   15316:	2000      	movs	r0, #0
   15318:	bd10      	pop	{r4, pc}
   1531a:	0000      	.short	0x0000
   1531c:	2000011c 	.word	0x2000011c
   15320:	e92d 41fc 	stmdb	sp!, {r2, r3, r4, r5, r6, r7, r8, lr}
   15324:	4c34      	ldr	r4, [pc, #208]	; (153f8 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1280>)
   15326:	68a0      	ldr	r0, [r4, #8]
   15328:	f890 007f 	ldrb.w	r0, [r0, #127]	; 0x7f
   1532c:	f010 0f30 	tst.w	r0, #48	; 0x30
   15330:	d002      	beq.n	15338 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x11c0>
   15332:	2001      	movs	r0, #1
   15334:	e8bd 81fc 	ldmia.w	sp!, {r2, r3, r4, r5, r6, r7, r8, pc}
   15338:	6920      	ldr	r0, [r4, #16]
   1533a:	f004 fbc3 	bl	19ac4 <sym_XNOKOPU7R2ZL4VYDMQPD5QQ2YM2WYINLYLRQ4TI>
   1533e:	b318      	cbz	r0, 15388 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1210>
   15340:	6920      	ldr	r0, [r4, #16]
   15342:	f004 fbb1 	bl	19aa8 <sym_GPYTTEK2KDNR73G6ZAXHATMSQZASIEW24RTZFJA>
   15346:	4607      	mov	r7, r0
   15348:	6920      	ldr	r0, [r4, #16]
   1534a:	f004 fbb1 	bl	19ab0 <sym_WC6UZSDJDS7GHVUUG36QUD3XWMICRFA5JJX42VA>
   1534e:	4606      	mov	r6, r0
   15350:	6920      	ldr	r0, [r4, #16]
   15352:	f004 fba7 	bl	19aa4 <sym_AWXBPGMPTTTWF7DPZL5Q2JQ4QSDFRJFHKF3BIIQ>
   15356:	4605      	mov	r5, r0
   15358:	6920      	ldr	r0, [r4, #16]
   1535a:	f004 fba7 	bl	19aac <sym_IR77N76GC2RMGAYGDAEPSAGD4DPXFGWMASI3OGY>
   1535e:	4601      	mov	r1, r0
   15360:	9700      	str	r7, [sp, #0]
   15362:	68a0      	ldr	r0, [r4, #8]
   15364:	4633      	mov	r3, r6
   15366:	462a      	mov	r2, r5
   15368:	302c      	adds	r0, #44	; 0x2c
   1536a:	f004 fdcb 	bl	19f04 <sym_ONVPV2DV6OK6HG537JAHRS5B7G22RD24D2QGM5A>
   1536e:	78a0      	ldrb	r0, [r4, #2]
   15370:	0780      	lsls	r0, r0, #30
   15372:	d503      	bpl.n	1537c <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1204>
   15374:	68e0      	ldr	r0, [r4, #12]
   15376:	78c0      	ldrb	r0, [r0, #3]
   15378:	2814      	cmp	r0, #20
   1537a:	d009      	beq.n	15390 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1218>
   1537c:	68a0      	ldr	r0, [r4, #8]
   1537e:	f890 007d 	ldrb.w	r0, [r0, #125]	; 0x7d
   15382:	281c      	cmp	r0, #28
   15384:	d004      	beq.n	15390 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1218>
   15386:	e007      	b.n	15398 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1220>
   15388:	e8bd 41fc 	ldmia.w	sp!, {r2, r3, r4, r5, r6, r7, r8, lr}
   1538c:	f7ff bfb0 	b.w	152f0 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1178>
   15390:	68a1      	ldr	r1, [r4, #8]
   15392:	2001      	movs	r0, #1
   15394:	f881 0060 	strb.w	r0, [r1, #96]	; 0x60
   15398:	68a1      	ldr	r1, [r4, #8]
   1539a:	f891 0060 	ldrb.w	r0, [r1, #96]	; 0x60
   1539e:	2801      	cmp	r0, #1
   153a0:	d011      	beq.n	153c6 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x124e>
   153a2:	f891 01a5 	ldrb.w	r0, [r1, #421]	; 0x1a5
   153a6:	f88d 0004 	strb.w	r0, [sp, #4]
   153aa:	9801      	ldr	r0, [sp, #4]
   153ac:	9001      	str	r0, [sp, #4]
   153ae:	f89d 0004 	ldrb.w	r0, [sp, #4]
   153b2:	b940      	cbnz	r0, 153c6 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x124e>
   153b4:	f891 01a4 	ldrb.w	r0, [r1, #420]	; 0x1a4
   153b8:	f88d 0000 	strb.w	r0, [sp]
   153bc:	9800      	ldr	r0, [sp, #0]
   153be:	9000      	str	r0, [sp, #0]
   153c0:	f89d 0000 	ldrb.w	r0, [sp]
   153c4:	b128      	cbz	r0, 153d2 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x125a>
   153c6:	f811 0f7f 	ldrb.w	r0, [r1, #127]!
   153ca:	f040 0010 	orr.w	r0, r0, #16
   153ce:	7008      	strb	r0, [r1, #0]
   153d0:	e00d      	b.n	153ee <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1276>
   153d2:	f891 007f 	ldrb.w	r0, [r1, #127]	; 0x7f
   153d6:	f501 72f4 	add.w	r2, r1, #488	; 0x1e8
   153da:	f040 0020 	orr.w	r0, r0, #32
   153de:	f881 007f 	strb.w	r0, [r1, #127]	; 0x7f
   153e2:	f831 0b2c 	ldrh.w	r0, [r1], #44
   153e6:	f004 fd94 	bl	19f12 <sym_FKGRLSJGPWDG44KYHTBA74A2ZDKPDUWGXHS3E2I>
   153ea:	f000 fdc5 	bl	15f78 <sym_ZGH42ABHAQFX3NKIMGIK7DGGJ5XWXU2KDVYEOMI>
   153ee:	f7fe ffe9 	bl	143c4 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x24c>
   153f2:	2000      	movs	r0, #0
   153f4:	e79e      	b.n	15334 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x11bc>
   153f6:	0000      	.short	0x0000
   153f8:	2000011c 	.word	0x2000011c
   153fc:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
   153fe:	4c1a      	ldr	r4, [pc, #104]	; (15468 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x12f0>)
   15400:	2301      	movs	r3, #1
   15402:	210a      	movs	r1, #10
   15404:	68a0      	ldr	r0, [r4, #8]
   15406:	f890 207d 	ldrb.w	r2, [r0, #125]	; 0x7d
   1540a:	3070      	adds	r0, #112	; 0x70
   1540c:	f004 f8da 	bl	195c4 <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I>
   15410:	b338      	cbz	r0, 15462 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x12ea>
   15412:	6920      	ldr	r0, [r4, #16]
   15414:	f004 fb56 	bl	19ac4 <sym_XNOKOPU7R2ZL4VYDMQPD5QQ2YM2WYINLYLRQ4TI>
   15418:	b1c8      	cbz	r0, 1544e <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x12d6>
   1541a:	6920      	ldr	r0, [r4, #16]
   1541c:	f004 fb44 	bl	19aa8 <sym_GPYTTEK2KDNR73G6ZAXHATMSQZASIEW24RTZFJA>
   15420:	4607      	mov	r7, r0
   15422:	6920      	ldr	r0, [r4, #16]
   15424:	f004 fb44 	bl	19ab0 <sym_WC6UZSDJDS7GHVUUG36QUD3XWMICRFA5JJX42VA>
   15428:	4606      	mov	r6, r0
   1542a:	6920      	ldr	r0, [r4, #16]
   1542c:	f004 fb3a 	bl	19aa4 <sym_AWXBPGMPTTTWF7DPZL5Q2JQ4QSDFRJFHKF3BIIQ>
   15430:	4605      	mov	r5, r0
   15432:	6920      	ldr	r0, [r4, #16]
   15434:	f004 fb3a 	bl	19aac <sym_IR77N76GC2RMGAYGDAEPSAGD4DPXFGWMASI3OGY>
   15438:	4601      	mov	r1, r0
   1543a:	9700      	str	r7, [sp, #0]
   1543c:	68a0      	ldr	r0, [r4, #8]
   1543e:	4633      	mov	r3, r6
   15440:	462a      	mov	r2, r5
   15442:	302c      	adds	r0, #44	; 0x2c
   15444:	f004 fd5e 	bl	19f04 <sym_ONVPV2DV6OK6HG537JAHRS5B7G22RD24D2QGM5A>
   15448:	68a0      	ldr	r0, [r4, #8]
   1544a:	f004 fccd 	bl	19de8 <sym_IPYDOGNKVSD5CNASNRZPFKSG4XKU4ZG4SVERI7Q>
   1544e:	68a1      	ldr	r1, [r4, #8]
   15450:	2000      	movs	r0, #0
   15452:	f881 00ae 	strb.w	r0, [r1, #174]	; 0xae
   15456:	f881 007d 	strb.w	r0, [r1, #125]	; 0x7d
   1545a:	f7ff f977 	bl	1474c <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x5d4>
   1545e:	2000      	movs	r0, #0
   15460:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
   15462:	2001      	movs	r0, #1
   15464:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
   15466:	0000      	.short	0x0000
   15468:	2000011c 	.word	0x2000011c
   1546c:	b510      	push	{r4, lr}
   1546e:	4c09      	ldr	r4, [pc, #36]	; (15494 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x131c>)
   15470:	68a0      	ldr	r0, [r4, #8]
   15472:	f890 007f 	ldrb.w	r0, [r0, #127]	; 0x7f
   15476:	0740      	lsls	r0, r0, #29
   15478:	d501      	bpl.n	1547e <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1306>
   1547a:	2001      	movs	r0, #1
   1547c:	bd10      	pop	{r4, pc}
   1547e:	f7fe ffa1 	bl	143c4 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x24c>
   15482:	68a0      	ldr	r0, [r4, #8]
   15484:	f810 1f7f 	ldrb.w	r1, [r0, #127]!
   15488:	f041 0104 	orr.w	r1, r1, #4
   1548c:	7001      	strb	r1, [r0, #0]
   1548e:	2000      	movs	r0, #0
   15490:	bd10      	pop	{r4, pc}
   15492:	0000      	.short	0x0000
   15494:	2000011c 	.word	0x2000011c
   15498:	b510      	push	{r4, lr}
   1549a:	4c09      	ldr	r4, [pc, #36]	; (154c0 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1348>)
   1549c:	2301      	movs	r3, #1
   1549e:	2109      	movs	r1, #9
   154a0:	68a0      	ldr	r0, [r4, #8]
   154a2:	f890 207d 	ldrb.w	r2, [r0, #125]	; 0x7d
   154a6:	3070      	adds	r0, #112	; 0x70
   154a8:	f004 f88c 	bl	195c4 <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I>
   154ac:	2800      	cmp	r0, #0
   154ae:	d006      	beq.n	154be <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1346>
   154b0:	68a1      	ldr	r1, [r4, #8]
   154b2:	2000      	movs	r0, #0
   154b4:	f801 0fa2 	strb.w	r0, [r1, #162]!
   154b8:	7308      	strb	r0, [r1, #12]
   154ba:	f801 0c25 	strb.w	r0, [r1, #-37]
   154be:	bd10      	pop	{r4, pc}
   154c0:	2000011c 	.word	0x2000011c
   154c4:	b510      	push	{r4, lr}
   154c6:	4c0f      	ldr	r4, [pc, #60]	; (15504 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x138c>)
   154c8:	2301      	movs	r3, #1
   154ca:	2100      	movs	r1, #0
   154cc:	68a0      	ldr	r0, [r4, #8]
   154ce:	f890 207e 	ldrb.w	r2, [r0, #126]	; 0x7e
   154d2:	3070      	adds	r0, #112	; 0x70
   154d4:	f004 f876 	bl	195c4 <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I>
   154d8:	b138      	cbz	r0, 154ea <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1372>
   154da:	f7fe ff73 	bl	143c4 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x24c>
   154de:	68a1      	ldr	r1, [r4, #8]
   154e0:	2010      	movs	r0, #16
   154e2:	f881 007e 	strb.w	r0, [r1, #126]	; 0x7e
   154e6:	2000      	movs	r0, #0
   154e8:	bd10      	pop	{r4, pc}
   154ea:	68a0      	ldr	r0, [r4, #8]
   154ec:	2301      	movs	r3, #1
   154ee:	2105      	movs	r1, #5
   154f0:	f890 207e 	ldrb.w	r2, [r0, #126]	; 0x7e
   154f4:	3070      	adds	r0, #112	; 0x70
   154f6:	f004 f865 	bl	195c4 <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I>
   154fa:	b108      	cbz	r0, 15500 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1388>
   154fc:	2008      	movs	r0, #8
   154fe:	bd10      	pop	{r4, pc}
   15500:	2001      	movs	r0, #1
   15502:	bd10      	pop	{r4, pc}
   15504:	2000011c 	.word	0x2000011c
   15508:	4806      	ldr	r0, [pc, #24]	; (15524 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x13ac>)
   1550a:	6880      	ldr	r0, [r0, #8]
   1550c:	f890 107e 	ldrb.w	r1, [r0, #126]	; 0x7e
   15510:	2911      	cmp	r1, #17
   15512:	d001      	beq.n	15518 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x13a0>
   15514:	2002      	movs	r0, #2
   15516:	4770      	bx	lr
   15518:	2112      	movs	r1, #18
   1551a:	f880 107e 	strb.w	r1, [r0, #126]	; 0x7e
   1551e:	2000      	movs	r0, #0
   15520:	4770      	bx	lr
   15522:	0000      	.short	0x0000
   15524:	2000011c 	.word	0x2000011c
   15528:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
   1552a:	4c34      	ldr	r4, [pc, #208]	; (155fc <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1484>)
   1552c:	2301      	movs	r3, #1
   1552e:	210b      	movs	r1, #11
   15530:	68a0      	ldr	r0, [r4, #8]
   15532:	f890 207e 	ldrb.w	r2, [r0, #126]	; 0x7e
   15536:	3070      	adds	r0, #112	; 0x70
   15538:	f004 f844 	bl	195c4 <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I>
   1553c:	bb78      	cbnz	r0, 1559e <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1426>
   1553e:	68a0      	ldr	r0, [r4, #8]
   15540:	2301      	movs	r3, #1
   15542:	2100      	movs	r1, #0
   15544:	f890 207e 	ldrb.w	r2, [r0, #126]	; 0x7e
   15548:	3070      	adds	r0, #112	; 0x70
   1554a:	f004 f83b 	bl	195c4 <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I>
   1554e:	b320      	cbz	r0, 1559a <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1422>
   15550:	68a0      	ldr	r0, [r4, #8]
   15552:	f890 007d 	ldrb.w	r0, [r0, #125]	; 0x7d
   15556:	2824      	cmp	r0, #36	; 0x24
   15558:	d022      	beq.n	155a0 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1428>
   1555a:	6920      	ldr	r0, [r4, #16]
   1555c:	f004 face 	bl	19afc <sym_RPQNXSNTPADDKXP5RSAMGT6PEA6HJ6WJSJ5DQUA>
   15560:	b300      	cbz	r0, 155a4 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x142c>
   15562:	68a0      	ldr	r0, [r4, #8]
   15564:	f890 10bc 	ldrb.w	r1, [r0, #188]	; 0xbc
   15568:	f041 0104 	orr.w	r1, r1, #4
   1556c:	f880 10bc 	strb.w	r1, [r0, #188]	; 0xbc
   15570:	6921      	ldr	r1, [r4, #16]
   15572:	794a      	ldrb	r2, [r1, #5]
   15574:	f002 0207 	and.w	r2, r2, #7
   15578:	f880 2063 	strb.w	r2, [r0, #99]	; 0x63
   1557c:	7909      	ldrb	r1, [r1, #4]
   1557e:	f001 0107 	and.w	r1, r1, #7
   15582:	f880 1062 	strb.w	r1, [r0, #98]	; 0x62
   15586:	f890 31af 	ldrb.w	r3, [r0, #431]	; 0x1af
   1558a:	f88d 3000 	strb.w	r3, [sp]
   1558e:	9b00      	ldr	r3, [sp, #0]
   15590:	9300      	str	r3, [sp, #0]
   15592:	f89d 3000 	ldrb.w	r3, [sp]
   15596:	bb43      	cbnz	r3, 155ea <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1472>
   15598:	e008      	b.n	155ac <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1434>
   1559a:	2001      	movs	r0, #1
   1559c:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
   1559e:	e7ff      	b.n	155a0 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1428>
   155a0:	2020      	movs	r0, #32
   155a2:	e7fb      	b.n	1559c <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1424>
   155a4:	e8bd 40f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, lr}
   155a8:	f7ff bea2 	b.w	152f0 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1178>
   155ac:	f890 31ae 	ldrb.w	r3, [r0, #430]	; 0x1ae
   155b0:	2b01      	cmp	r3, #1
   155b2:	d01a      	beq.n	155ea <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1472>
   155b4:	f100 036a 	add.w	r3, r0, #106	; 0x6a
   155b8:	2501      	movs	r5, #1
   155ba:	785e      	ldrb	r6, [r3, #1]
   155bc:	428e      	cmp	r6, r1
   155be:	d106      	bne.n	155ce <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1456>
   155c0:	7819      	ldrb	r1, [r3, #0]
   155c2:	4291      	cmp	r1, r2
   155c4:	d103      	bne.n	155ce <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1456>
   155c6:	2102      	movs	r1, #2
   155c8:	f880 11ae 	strb.w	r1, [r0, #430]	; 0x1ae
   155cc:	e00d      	b.n	155ea <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1472>
   155ce:	f500 71ff 	add.w	r1, r0, #510	; 0x1fe
   155d2:	8802      	ldrh	r2, [r0, #0]
   155d4:	f821 2902 	strh.w	r2, [r1], #-2
   155d8:	f890 2062 	ldrb.w	r2, [r0, #98]	; 0x62
   155dc:	710a      	strb	r2, [r1, #4]
   155de:	f890 0063 	ldrb.w	r0, [r0, #99]	; 0x63
   155e2:	7148      	strb	r0, [r1, #5]
   155e4:	700d      	strb	r5, [r1, #0]
   155e6:	f000 fcc7 	bl	15f78 <sym_ZGH42ABHAQFX3NKIMGIK7DGGJ5XWXU2KDVYEOMI>
   155ea:	68a1      	ldr	r1, [r4, #8]
   155ec:	2021      	movs	r0, #33	; 0x21
   155ee:	f881 007e 	strb.w	r0, [r1, #126]	; 0x7e
   155f2:	f7fe fee7 	bl	143c4 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x24c>
   155f6:	2000      	movs	r0, #0
   155f8:	e7d0      	b.n	1559c <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1424>
   155fa:	0000      	.short	0x0000
   155fc:	2000011c 	.word	0x2000011c
   15600:	e92d 43f8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
   15604:	4c4e      	ldr	r4, [pc, #312]	; (15740 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x15c8>)
   15606:	68a0      	ldr	r0, [r4, #8]
   15608:	f890 107d 	ldrb.w	r1, [r0, #125]	; 0x7d
   1560c:	2920      	cmp	r1, #32
   1560e:	d009      	beq.n	15624 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x14ac>
   15610:	f05f 0700 	movs.w	r7, #0
   15614:	f890 107e 	ldrb.w	r1, [r0, #126]	; 0x7e
   15618:	2922      	cmp	r1, #34	; 0x22
   1561a:	d005      	beq.n	15628 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x14b0>
   1561c:	b387      	cbz	r7, 15680 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1508>
   1561e:	f100 057d 	add.w	r5, r0, #125	; 0x7d
   15622:	e003      	b.n	1562c <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x14b4>
   15624:	2701      	movs	r7, #1
   15626:	e7f5      	b.n	15614 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x149c>
   15628:	f100 057e 	add.w	r5, r0, #126	; 0x7e
   1562c:	f810 1fbc 	ldrb.w	r1, [r0, #188]!
   15630:	f041 0104 	orr.w	r1, r1, #4
   15634:	7001      	strb	r1, [r0, #0]
   15636:	6920      	ldr	r0, [r4, #16]
   15638:	f7fc fd54 	bl	120e4 <sym_OIELJZXQUH4XDAK7XBXBJX4CE2IIXWLOTEZEOSI>
   1563c:	f04f 0801 	mov.w	r8, #1
   15640:	2600      	movs	r6, #0
   15642:	b308      	cbz	r0, 15688 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1510>
   15644:	4639      	mov	r1, r7
   15646:	6920      	ldr	r0, [r4, #16]
   15648:	f7fe ff86 	bl	14558 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x3e0>
   1564c:	b1e0      	cbz	r0, 15688 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1510>
   1564e:	466a      	mov	r2, sp
   15650:	6921      	ldr	r1, [r4, #16]
   15652:	68a0      	ldr	r0, [r4, #8]
   15654:	f004 f8da 	bl	1980c <sym_ZX776SCJSI3JTFST57XOZBXAMGDDC7FRRHZEJ7Q>
   15658:	b388      	cbz	r0, 156be <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1546>
   1565a:	6920      	ldr	r0, [r4, #16]
   1565c:	f004 fa2a 	bl	19ab4 <sym_VMI6LAIHFJODZECDSALRIOKPVGLRUJ6WTCP43FY>
   15660:	68a1      	ldr	r1, [r4, #8]
   15662:	f8a1 0194 	strh.w	r0, [r1, #404]	; 0x194
   15666:	f8b1 1074 	ldrh.w	r1, [r1, #116]	; 0x74
   1566a:	f005 faed 	bl	1ac48 <sym_IYZQNCOB4T4XO27DREWRIWJFVHVS355NEDBEGEQ+0x60>
   1566e:	b338      	cbz	r0, 156c0 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1548>
   15670:	68a0      	ldr	r0, [r4, #8]
   15672:	2128      	movs	r1, #40	; 0x28
   15674:	f880 1095 	strb.w	r1, [r0, #149]	; 0x95
   15678:	3076      	adds	r0, #118	; 0x76
   1567a:	f880 801e 	strb.w	r8, [r0, #30]
   1567e:	e053      	b.n	15728 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x15b0>
   15680:	e7ff      	b.n	15682 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x150a>
   15682:	2002      	movs	r0, #2
   15684:	e8bd 83f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
   15688:	68a0      	ldr	r0, [r4, #8]
   1568a:	f04f 0900 	mov.w	r9, #0
   1568e:	f890 11ae 	ldrb.w	r1, [r0, #430]	; 0x1ae
   15692:	2901      	cmp	r1, #1
   15694:	d015      	beq.n	156c2 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x154a>
   15696:	f880 61ae 	strb.w	r6, [r0, #430]	; 0x1ae
   1569a:	b1f7      	cbz	r7, 156da <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1562>
   1569c:	6920      	ldr	r0, [r4, #16]
   1569e:	68a1      	ldr	r1, [r4, #8]
   156a0:	78c0      	ldrb	r0, [r0, #3]
   156a2:	f881 00ea 	strb.w	r0, [r1, #234]	; 0xea
   156a6:	fa08 f200 	lsl.w	r2, r8, r0
   156aa:	f3c2 6000 	ubfx	r0, r2, #24, #1
   156ae:	b160      	cbz	r0, 156ca <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1552>
   156b0:	200a      	movs	r0, #10
   156b2:	f881 007d 	strb.w	r0, [r1, #125]	; 0x7d
   156b6:	f891 00ae 	ldrb.w	r0, [r1, #174]	; 0xae
   156ba:	b9a0      	cbnz	r0, 156e6 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x156e>
   156bc:	e008      	b.n	156d0 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1558>
   156be:	e014      	b.n	156ea <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1572>
   156c0:	e027      	b.n	15712 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x159a>
   156c2:	201e      	movs	r0, #30
   156c4:	f7ff fcec 	bl	150a0 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xf28>
   156c8:	e7e7      	b.n	1569a <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1522>
   156ca:	f240 31cb 	movw	r1, #971	; 0x3cb
   156ce:	e001      	b.n	156d4 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x155c>
   156d0:	f240 31d3 	movw	r1, #979	; 0x3d3
   156d4:	2031      	movs	r0, #49	; 0x31
   156d6:	f7fa fc85 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   156da:	702e      	strb	r6, [r5, #0]
   156dc:	f7fe fe7e 	bl	143dc <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x264>
   156e0:	f7ff fe06 	bl	152f0 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1178>
   156e4:	4681      	mov	r9, r0
   156e6:	4648      	mov	r0, r9
   156e8:	e7cc      	b.n	15684 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x150c>
   156ea:	68a0      	ldr	r0, [r4, #8]
   156ec:	f890 11ae 	ldrb.w	r1, [r0, #430]	; 0x1ae
   156f0:	2901      	cmp	r1, #1
   156f2:	d009      	beq.n	15708 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1590>
   156f4:	f880 61ae 	strb.w	r6, [r0, #430]	; 0x1ae
   156f8:	68a0      	ldr	r0, [r4, #8]
   156fa:	f100 017e 	add.w	r1, r0, #126	; 0x7e
   156fe:	428d      	cmp	r5, r1
   15700:	d112      	bne.n	15728 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x15b0>
   15702:	f880 607e 	strb.w	r6, [r0, #126]	; 0x7e
   15706:	e00f      	b.n	15728 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x15b0>
   15708:	2000      	movs	r0, #0
   1570a:	f7ff fcc9 	bl	150a0 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xf28>
   1570e:	702e      	strb	r6, [r5, #0]
   15710:	e7f2      	b.n	156f8 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1580>
   15712:	68a0      	ldr	r0, [r4, #8]
   15714:	f89d 1000 	ldrb.w	r1, [sp]
   15718:	f880 1196 	strb.w	r1, [r0, #406]	; 0x196
   1571c:	f89d 1001 	ldrb.w	r1, [sp, #1]
   15720:	f880 1197 	strb.w	r1, [r0, #407]	; 0x197
   15724:	2024      	movs	r0, #36	; 0x24
   15726:	7028      	strb	r0, [r5, #0]
   15728:	68a0      	ldr	r0, [r4, #8]
   1572a:	f100 017e 	add.w	r1, r0, #126	; 0x7e
   1572e:	428d      	cmp	r5, r1
   15730:	d102      	bne.n	15738 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x15c0>
   15732:	f7fe fe53 	bl	143dc <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x264>
   15736:	e001      	b.n	1573c <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x15c4>
   15738:	f880 60ae 	strb.w	r6, [r0, #174]	; 0xae
   1573c:	2000      	movs	r0, #0
   1573e:	e7a1      	b.n	15684 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x150c>
   15740:	2000011c 	.word	0x2000011c
   15744:	b510      	push	{r4, lr}
   15746:	4c0a      	ldr	r4, [pc, #40]	; (15770 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x15f8>)
   15748:	68a0      	ldr	r0, [r4, #8]
   1574a:	f810 1fbc 	ldrb.w	r1, [r0, #188]!
   1574e:	f041 0104 	orr.w	r1, r1, #4
   15752:	7001      	strb	r1, [r0, #0]
   15754:	6920      	ldr	r0, [r4, #16]
   15756:	f004 f9db 	bl	19b10 <sym_V37KOABA26BNKOPPXCRMHM2FBYFAD7NU4IA7EIQ>
   1575a:	2816      	cmp	r0, #22
   1575c:	d001      	beq.n	15762 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x15ea>
   1575e:	2000      	movs	r0, #0
   15760:	bd10      	pop	{r4, pc}
   15762:	6920      	ldr	r0, [r4, #16]
   15764:	f004 f9d6 	bl	19b14 <sym_I6A5ME4L4BDSYALCIKK2V6NRQKRM5QI7WNBE2CA>
   15768:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
   1576c:	f7fe be08 	b.w	14380 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x208>
   15770:	2000011c 	.word	0x2000011c
   15774:	4802      	ldr	r0, [pc, #8]	; (15780 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1608>)
   15776:	6900      	ldr	r0, [r0, #16]
   15778:	7900      	ldrb	r0, [r0, #4]
   1577a:	f7fe be01 	b.w	14380 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x208>
   1577e:	0000      	.short	0x0000
   15780:	2000011c 	.word	0x2000011c
   15784:	b510      	push	{r4, lr}
   15786:	4c08      	ldr	r4, [pc, #32]	; (157a8 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1630>)
   15788:	68a0      	ldr	r0, [r4, #8]
   1578a:	f890 007e 	ldrb.w	r0, [r0, #126]	; 0x7e
   1578e:	2817      	cmp	r0, #23
   15790:	d001      	beq.n	15796 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x161e>
   15792:	2002      	movs	r0, #2
   15794:	bd10      	pop	{r4, pc}
   15796:	f7fe fe21 	bl	143dc <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x264>
   1579a:	68a1      	ldr	r1, [r4, #8]
   1579c:	201b      	movs	r0, #27
   1579e:	f881 007e 	strb.w	r0, [r1, #126]	; 0x7e
   157a2:	2000      	movs	r0, #0
   157a4:	bd10      	pop	{r4, pc}
   157a6:	0000      	.short	0x0000
   157a8:	2000011c 	.word	0x2000011c
   157ac:	b510      	push	{r4, lr}
   157ae:	4c0b      	ldr	r4, [pc, #44]	; (157dc <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1664>)
   157b0:	2301      	movs	r3, #1
   157b2:	4619      	mov	r1, r3
   157b4:	68a0      	ldr	r0, [r4, #8]
   157b6:	f890 2080 	ldrb.w	r2, [r0, #128]	; 0x80
   157ba:	3070      	adds	r0, #112	; 0x70
   157bc:	f003 ff02 	bl	195c4 <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I>
   157c0:	b108      	cbz	r0, 157c6 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x164e>
   157c2:	2000      	movs	r0, #0
   157c4:	bd10      	pop	{r4, pc}
   157c6:	6920      	ldr	r0, [r4, #16]
   157c8:	f004 f978 	bl	19abc <sym_WRY64WR3RHFREREX3ZB66OLRGKHGDAUZMHJMBCI>
   157cc:	68a1      	ldr	r1, [r4, #8]
   157ce:	f881 017a 	strb.w	r0, [r1, #378]	; 0x17a
   157d2:	2007      	movs	r0, #7
   157d4:	f881 0080 	strb.w	r0, [r1, #128]	; 0x80
   157d8:	e7f3      	b.n	157c2 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x164a>
   157da:	0000      	.short	0x0000
   157dc:	2000011c 	.word	0x2000011c
   157e0:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   157e4:	4d37      	ldr	r5, [pc, #220]	; (158c4 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x174c>)
   157e6:	2600      	movs	r6, #0
   157e8:	4628      	mov	r0, r5
   157ea:	68a9      	ldr	r1, [r5, #8]
   157ec:	6900      	ldr	r0, [r0, #16]
   157ee:	2701      	movs	r7, #1
   157f0:	f891 307d 	ldrb.w	r3, [r1, #125]	; 0x7d
   157f4:	7900      	ldrb	r0, [r0, #4]
   157f6:	2b0e      	cmp	r3, #14
   157f8:	d101      	bne.n	157fe <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1686>
   157fa:	2812      	cmp	r0, #18
   157fc:	d006      	beq.n	1580c <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1694>
   157fe:	4a31      	ldr	r2, [pc, #196]	; (158c4 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x174c>)
   15800:	2400      	movs	r4, #0
   15802:	6892      	ldr	r2, [r2, #8]
   15804:	32bc      	adds	r2, #188	; 0xbc
   15806:	2b1c      	cmp	r3, #28
   15808:	d004      	beq.n	15814 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x169c>
   1580a:	e005      	b.n	15818 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x16a0>
   1580c:	f7ff fe44 	bl	15498 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1320>
   15810:	4606      	mov	r6, r0
   15812:	e053      	b.n	158bc <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1744>
   15814:	2814      	cmp	r0, #20
   15816:	d002      	beq.n	1581e <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x16a6>
   15818:	2b04      	cmp	r3, #4
   1581a:	d00b      	beq.n	15834 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x16bc>
   1581c:	e00c      	b.n	15838 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x16c0>
   1581e:	f881 407d 	strb.w	r4, [r1, #125]	; 0x7d
   15822:	f881 40ae 	strb.w	r4, [r1, #174]	; 0xae
   15826:	2105      	movs	r1, #5
   15828:	4610      	mov	r0, r2
   1582a:	f005 f99e 	bl	1ab6a <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x670>
   1582e:	f7fe ff8d 	bl	1474c <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x5d4>
   15832:	e043      	b.n	158bc <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1744>
   15834:	280e      	cmp	r0, #14
   15836:	d002      	beq.n	1583e <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x16c6>
   15838:	2b20      	cmp	r3, #32
   1583a:	d00f      	beq.n	1585c <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x16e4>
   1583c:	e010      	b.n	15860 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x16e8>
   1583e:	f881 407d 	strb.w	r4, [r1, #125]	; 0x7d
   15842:	f881 40ae 	strb.w	r4, [r1, #174]	; 0xae
   15846:	8808      	ldrh	r0, [r1, #0]
   15848:	f8a1 020e 	strh.w	r0, [r1, #526]	; 0x20e
   1584c:	201a      	movs	r0, #26
   1584e:	f881 020c 	strb.w	r0, [r1, #524]	; 0x20c
   15852:	f881 720a 	strb.w	r7, [r1, #522]	; 0x20a
   15856:	f000 fb8f 	bl	15f78 <sym_ZGH42ABHAQFX3NKIMGIK7DGGJ5XWXU2KDVYEOMI>
   1585a:	e02f      	b.n	158bc <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1744>
   1585c:	2816      	cmp	r0, #22
   1585e:	d006      	beq.n	1586e <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x16f6>
   15860:	2b26      	cmp	r3, #38	; 0x26
   15862:	d101      	bne.n	15868 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x16f0>
   15864:	2816      	cmp	r0, #22
   15866:	d002      	beq.n	1586e <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x16f6>
   15868:	2817      	cmp	r0, #23
   1586a:	d014      	beq.n	15896 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x171e>
   1586c:	e026      	b.n	158bc <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1744>
   1586e:	f801 4f7d 	strb.w	r4, [r1, #125]!
   15872:	f881 4031 	strb.w	r4, [r1, #49]	; 0x31
   15876:	7848      	ldrb	r0, [r1, #1]
   15878:	2821      	cmp	r0, #33	; 0x21
   1587a:	d01f      	beq.n	158bc <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1744>
   1587c:	2108      	movs	r1, #8
   1587e:	4610      	mov	r0, r2
   15880:	f005 f973 	bl	1ab6a <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x670>
   15884:	68a8      	ldr	r0, [r5, #8]
   15886:	210b      	movs	r1, #11
   15888:	30bc      	adds	r0, #188	; 0xbc
   1588a:	f005 f96e 	bl	1ab6a <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x670>
   1588e:	201a      	movs	r0, #26
   15890:	f7ff fc06 	bl	150a0 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xf28>
   15894:	e012      	b.n	158bc <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1744>
   15896:	f891 007e 	ldrb.w	r0, [r1, #126]	; 0x7e
   1589a:	2822      	cmp	r0, #34	; 0x22
   1589c:	d10e      	bne.n	158bc <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1744>
   1589e:	f881 407e 	strb.w	r4, [r1, #126]	; 0x7e
   158a2:	f7fe fd9b 	bl	143dc <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x264>
   158a6:	68a8      	ldr	r0, [r5, #8]
   158a8:	f890 01ae 	ldrb.w	r0, [r0, #430]	; 0x1ae
   158ac:	2801      	cmp	r0, #1
   158ae:	d102      	bne.n	158b6 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x173e>
   158b0:	2000      	movs	r0, #0
   158b2:	f7ff fbf5 	bl	150a0 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xf28>
   158b6:	68a8      	ldr	r0, [r5, #8]
   158b8:	f880 41ae 	strb.w	r4, [r0, #430]	; 0x1ae
   158bc:	4630      	mov	r0, r6
   158be:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
   158c2:	0000      	.short	0x0000
   158c4:	2000011c 	.word	0x2000011c
   158c8:	b570      	push	{r4, r5, r6, lr}
   158ca:	4c2c      	ldr	r4, [pc, #176]	; (1597c <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1804>)
   158cc:	68a0      	ldr	r0, [r4, #8]
   158ce:	f890 107f 	ldrb.w	r1, [r0, #127]	; 0x7f
   158d2:	0789      	lsls	r1, r1, #30
   158d4:	d507      	bpl.n	158e6 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x176e>
   158d6:	f890 207d 	ldrb.w	r2, [r0, #125]	; 0x7d
   158da:	2301      	movs	r3, #1
   158dc:	2108      	movs	r1, #8
   158de:	3070      	adds	r0, #112	; 0x70
   158e0:	f003 fe70 	bl	195c4 <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I>
   158e4:	b1e8      	cbz	r0, 15922 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x17aa>
   158e6:	68a0      	ldr	r0, [r4, #8]
   158e8:	f890 00b6 	ldrb.w	r0, [r0, #182]	; 0xb6
   158ec:	0780      	lsls	r0, r0, #30
   158ee:	d412      	bmi.n	15916 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x179e>
   158f0:	6920      	ldr	r0, [r4, #16]
   158f2:	f004 f8e5 	bl	19ac0 <sym_FES4SNLGDB2HCH3XYZK52SHDPFDGL5NN3ARGNTY>
   158f6:	68a1      	ldr	r1, [r4, #8]
   158f8:	f881 00b7 	strb.w	r0, [r1, #183]	; 0xb7
   158fc:	6920      	ldr	r0, [r4, #16]
   158fe:	f830 2f05 	ldrh.w	r2, [r0, #5]!
   15902:	f8a1 20b8 	strh.w	r2, [r1, #184]	; 0xb8
   15906:	8840      	ldrh	r0, [r0, #2]
   15908:	f8a1 00ba 	strh.w	r0, [r1, #186]	; 0xba
   1590c:	f811 0fb6 	ldrb.w	r0, [r1, #182]!
   15910:	f040 0002 	orr.w	r0, r0, #2
   15914:	7008      	strb	r0, [r1, #0]
   15916:	68a0      	ldr	r0, [r4, #8]
   15918:	f890 10b6 	ldrb.w	r1, [r0, #182]	; 0xb6
   1591c:	07c9      	lsls	r1, r1, #31
   1591e:	d002      	beq.n	15926 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x17ae>
   15920:	e010      	b.n	15944 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x17cc>
   15922:	2001      	movs	r0, #1
   15924:	bd70      	pop	{r4, r5, r6, pc}
   15926:	f890 107f 	ldrb.w	r1, [r0, #127]	; 0x7f
   1592a:	078a      	lsls	r2, r1, #30
   1592c:	d504      	bpl.n	15938 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x17c0>
   1592e:	f44f 7137 	mov.w	r1, #732	; 0x2dc
   15932:	2031      	movs	r0, #49	; 0x31
   15934:	f7fa fb56 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   15938:	f041 0102 	orr.w	r1, r1, #2
   1593c:	f880 107f 	strb.w	r1, [r0, #127]	; 0x7f
   15940:	f7fe fd40 	bl	143c4 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x24c>
   15944:	68a0      	ldr	r0, [r4, #8]
   15946:	2500      	movs	r5, #0
   15948:	f890 107d 	ldrb.w	r1, [r0, #125]	; 0x7d
   1594c:	2906      	cmp	r1, #6
   1594e:	d105      	bne.n	1595c <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x17e4>
   15950:	f880 507d 	strb.w	r5, [r0, #125]	; 0x7d
   15954:	f880 50ae 	strb.w	r5, [r0, #174]	; 0xae
   15958:	f000 fb0e 	bl	15f78 <sym_ZGH42ABHAQFX3NKIMGIK7DGGJ5XWXU2KDVYEOMI>
   1595c:	68a0      	ldr	r0, [r4, #8]
   1595e:	f890 11b4 	ldrb.w	r1, [r0, #436]	; 0x1b4
   15962:	b149      	cbz	r1, 15978 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1800>
   15964:	f880 51b4 	strb.w	r5, [r0, #436]	; 0x1b4
   15968:	f000 fb06 	bl	15f78 <sym_ZGH42ABHAQFX3NKIMGIK7DGGJ5XWXU2KDVYEOMI>
   1596c:	68a0      	ldr	r0, [r4, #8]
   1596e:	f890 107d 	ldrb.w	r1, [r0, #125]	; 0x7d
   15972:	b909      	cbnz	r1, 15978 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1800>
   15974:	f880 50ae 	strb.w	r5, [r0, #174]	; 0xae
   15978:	2000      	movs	r0, #0
   1597a:	bd70      	pop	{r4, r5, r6, pc}
   1597c:	2000011c 	.word	0x2000011c
   15980:	b510      	push	{r4, lr}
   15982:	4c17      	ldr	r4, [pc, #92]	; (159e0 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1868>)
   15984:	68a3      	ldr	r3, [r4, #8]
   15986:	f893 00f2 	ldrb.w	r0, [r3, #242]	; 0xf2
   1598a:	2808      	cmp	r0, #8
   1598c:	d20e      	bcs.n	159ac <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1834>
   1598e:	f100 0208 	add.w	r2, r0, #8
   15992:	f1c0 0008 	rsb	r0, r0, #8
   15996:	b2c1      	uxtb	r1, r0
   15998:	1898      	adds	r0, r3, r2
   1599a:	f500 7088 	add.w	r0, r0, #272	; 0x110
   1599e:	f7fa fbad 	bl	100fc <sym_4BGPQMJJRBR2ET4K6M3CH3OLXQGTP2TS7FVXINA>
   159a2:	68a1      	ldr	r1, [r4, #8]
   159a4:	f811 2ff2 	ldrb.w	r2, [r1, #242]!
   159a8:	4410      	add	r0, r2
   159aa:	7008      	strb	r0, [r1, #0]
   159ac:	68a3      	ldr	r3, [r4, #8]
   159ae:	f893 00f2 	ldrb.w	r0, [r3, #242]	; 0xf2
   159b2:	3808      	subs	r0, #8
   159b4:	2804      	cmp	r0, #4
   159b6:	d211      	bcs.n	159dc <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1864>
   159b8:	1d02      	adds	r2, r0, #4
   159ba:	f1c0 0004 	rsb	r0, r0, #4
   159be:	b2c1      	uxtb	r1, r0
   159c0:	1898      	adds	r0, r3, r2
   159c2:	30e0      	adds	r0, #224	; 0xe0
   159c4:	f7fa fb9a 	bl	100fc <sym_4BGPQMJJRBR2ET4K6M3CH3OLXQGTP2TS7FVXINA>
   159c8:	68a0      	ldr	r0, [r4, #8]
   159ca:	2100      	movs	r1, #0
   159cc:	f880 10f2 	strb.w	r1, [r0, #242]	; 0xf2
   159d0:	2101      	movs	r1, #1
   159d2:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
   159d6:	2004      	movs	r0, #4
   159d8:	f7ff ba64 	b.w	14ea4 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0xd2c>
   159dc:	bd10      	pop	{r4, pc}
   159de:	0000      	.short	0x0000
   159e0:	2000011c 	.word	0x2000011c
   159e4:	4804      	ldr	r0, [pc, #16]	; (159f8 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1880>)
   159e6:	2127      	movs	r1, #39	; 0x27
   159e8:	6880      	ldr	r0, [r0, #8]
   159ea:	f880 107d 	strb.w	r1, [r0, #125]	; 0x7d
   159ee:	2100      	movs	r1, #0
   159f0:	f880 118c 	strb.w	r1, [r0, #396]	; 0x18c
   159f4:	4770      	bx	lr
   159f6:	0000      	.short	0x0000
   159f8:	2000011c 	.word	0x2000011c
   159fc:	4809      	ldr	r0, [pc, #36]	; (15a24 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x18ac>)
   159fe:	b510      	push	{r4, lr}
   15a00:	6880      	ldr	r0, [r0, #8]
   15a02:	f890 107e 	ldrb.w	r1, [r0, #126]	; 0x7e
   15a06:	2914      	cmp	r1, #20
   15a08:	d004      	beq.n	15a14 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x189c>
   15a0a:	f240 619a 	movw	r1, #1690	; 0x69a
   15a0e:	2031      	movs	r0, #49	; 0x31
   15a10:	f7fa fae8 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   15a14:	2101      	movs	r1, #1
   15a16:	f880 10b3 	strb.w	r1, [r0, #179]	; 0xb3
   15a1a:	2115      	movs	r1, #21
   15a1c:	f880 107e 	strb.w	r1, [r0, #126]	; 0x7e
   15a20:	bd10      	pop	{r4, pc}
   15a22:	0000      	.short	0x0000
   15a24:	2000011c 	.word	0x2000011c
   15a28:	b510      	push	{r4, lr}
   15a2a:	4c0a      	ldr	r4, [pc, #40]	; (15a54 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x18dc>)
   15a2c:	68a0      	ldr	r0, [r4, #8]
   15a2e:	f890 007f 	ldrb.w	r0, [r0, #127]	; 0x7f
   15a32:	07c0      	lsls	r0, r0, #31
   15a34:	d008      	beq.n	15a48 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x18d0>
   15a36:	f7fe fcd1 	bl	143dc <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x264>
   15a3a:	68a0      	ldr	r0, [r4, #8]
   15a3c:	f810 1f7f 	ldrb.w	r1, [r0, #127]!
   15a40:	f021 0101 	bic.w	r1, r1, #1
   15a44:	7001      	strb	r1, [r0, #0]
   15a46:	bd10      	pop	{r4, pc}
   15a48:	f240 6183 	movw	r1, #1667	; 0x683
   15a4c:	2031      	movs	r0, #49	; 0x31
   15a4e:	f7fa fac9 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   15a52:	0000      	.short	0x0000
   15a54:	2000011c 	.word	0x2000011c
   15a58:	b510      	push	{r4, lr}
   15a5a:	4c0a      	ldr	r4, [pc, #40]	; (15a84 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x190c>)
   15a5c:	2301      	movs	r3, #1
   15a5e:	2100      	movs	r1, #0
   15a60:	68a0      	ldr	r0, [r4, #8]
   15a62:	f890 207d 	ldrb.w	r2, [r0, #125]	; 0x7d
   15a66:	3070      	adds	r0, #112	; 0x70
   15a68:	f003 fdac 	bl	195c4 <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I>
   15a6c:	b120      	cbz	r0, 15a78 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1900>
   15a6e:	68a1      	ldr	r1, [r4, #8]
   15a70:	201c      	movs	r0, #28
   15a72:	f881 007d 	strb.w	r0, [r1, #125]	; 0x7d
   15a76:	bd10      	pop	{r4, pc}
   15a78:	f44f 61e1 	mov.w	r1, #1800	; 0x708
   15a7c:	2031      	movs	r0, #49	; 0x31
   15a7e:	f7fa fab1 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   15a82:	0000      	.short	0x0000
   15a84:	2000011c 	.word	0x2000011c
   15a88:	480a      	ldr	r0, [pc, #40]	; (15ab4 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x193c>)
   15a8a:	b510      	push	{r4, lr}
   15a8c:	6880      	ldr	r0, [r0, #8]
   15a8e:	f890 107f 	ldrb.w	r1, [r0, #127]	; 0x7f
   15a92:	f3c1 1201 	ubfx	r2, r1, #4, #2
   15a96:	2a01      	cmp	r2, #1
   15a98:	d004      	beq.n	15aa4 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x192c>
   15a9a:	f240 710f 	movw	r1, #1807	; 0x70f
   15a9e:	2031      	movs	r0, #49	; 0x31
   15aa0:	f7fa faa0 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   15aa4:	f021 0110 	bic.w	r1, r1, #16
   15aa8:	f880 107f 	strb.w	r1, [r0, #127]	; 0x7f
   15aac:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
   15ab0:	f7fe bc94 	b.w	143dc <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x264>
   15ab4:	2000011c 	.word	0x2000011c
   15ab8:	b510      	push	{r4, lr}
   15aba:	4c0a      	ldr	r4, [pc, #40]	; (15ae4 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x196c>)
   15abc:	2301      	movs	r3, #1
   15abe:	2100      	movs	r1, #0
   15ac0:	68a0      	ldr	r0, [r4, #8]
   15ac2:	f890 207d 	ldrb.w	r2, [r0, #125]	; 0x7d
   15ac6:	3070      	adds	r0, #112	; 0x70
   15ac8:	f003 fd7c 	bl	195c4 <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I>
   15acc:	b120      	cbz	r0, 15ad8 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1960>
   15ace:	68a1      	ldr	r1, [r4, #8]
   15ad0:	200e      	movs	r0, #14
   15ad2:	f881 007d 	strb.w	r0, [r1, #125]	; 0x7d
   15ad6:	bd10      	pop	{r4, pc}
   15ad8:	f240 61fb 	movw	r1, #1787	; 0x6fb
   15adc:	2031      	movs	r0, #49	; 0x31
   15ade:	f7fa fa81 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   15ae2:	0000      	.short	0x0000
   15ae4:	2000011c 	.word	0x2000011c
   15ae8:	4804      	ldr	r0, [pc, #16]	; (15afc <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1984>)
   15aea:	6880      	ldr	r0, [r0, #8]
   15aec:	f810 1f7f 	ldrb.w	r1, [r0, #127]!
   15af0:	f021 0104 	bic.w	r1, r1, #4
   15af4:	7001      	strb	r1, [r0, #0]
   15af6:	f7fe bc71 	b.w	143dc <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x264>
   15afa:	0000      	.short	0x0000
   15afc:	2000011c 	.word	0x2000011c
   15b00:	4809      	ldr	r0, [pc, #36]	; (15b28 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x19b0>)
   15b02:	b510      	push	{r4, lr}
   15b04:	6880      	ldr	r0, [r0, #8]
   15b06:	f890 107e 	ldrb.w	r1, [r0, #126]	; 0x7e
   15b0a:	2910      	cmp	r1, #16
   15b0c:	d004      	beq.n	15b18 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x19a0>
   15b0e:	f240 6192 	movw	r1, #1682	; 0x692
   15b12:	2031      	movs	r0, #49	; 0x31
   15b14:	f7fa fa66 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   15b18:	2101      	movs	r1, #1
   15b1a:	f880 10b3 	strb.w	r1, [r0, #179]	; 0xb3
   15b1e:	2111      	movs	r1, #17
   15b20:	f880 107e 	strb.w	r1, [r0, #126]	; 0x7e
   15b24:	bd10      	pop	{r4, pc}
   15b26:	0000      	.short	0x0000
   15b28:	2000011c 	.word	0x2000011c
   15b2c:	b510      	push	{r4, lr}
   15b2e:	4c0a      	ldr	r4, [pc, #40]	; (15b58 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x19e0>)
   15b30:	2301      	movs	r3, #1
   15b32:	2100      	movs	r1, #0
   15b34:	68a0      	ldr	r0, [r4, #8]
   15b36:	f890 207d 	ldrb.w	r2, [r0, #125]	; 0x7d
   15b3a:	3070      	adds	r0, #112	; 0x70
   15b3c:	f003 fd42 	bl	195c4 <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I>
   15b40:	b120      	cbz	r0, 15b4c <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x19d4>
   15b42:	68a1      	ldr	r1, [r4, #8]
   15b44:	201f      	movs	r0, #31
   15b46:	f881 007d 	strb.w	r0, [r1, #125]	; 0x7d
   15b4a:	bd10      	pop	{r4, pc}
   15b4c:	f240 711b 	movw	r1, #1819	; 0x71b
   15b50:	2031      	movs	r0, #49	; 0x31
   15b52:	f7fa fa47 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   15b56:	0000      	.short	0x0000
   15b58:	2000011c 	.word	0x2000011c
   15b5c:	4808      	ldr	r0, [pc, #32]	; (15b80 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1a08>)
   15b5e:	b510      	push	{r4, lr}
   15b60:	6880      	ldr	r0, [r0, #8]
   15b62:	f890 107e 	ldrb.w	r1, [r0, #126]	; 0x7e
   15b66:	2921      	cmp	r1, #33	; 0x21
   15b68:	d005      	beq.n	15b76 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x19fe>
   15b6a:	b121      	cbz	r1, 15b76 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x19fe>
   15b6c:	f240 7122 	movw	r1, #1826	; 0x722
   15b70:	2031      	movs	r0, #49	; 0x31
   15b72:	f7fa fa37 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   15b76:	2122      	movs	r1, #34	; 0x22
   15b78:	f880 107e 	strb.w	r1, [r0, #126]	; 0x7e
   15b7c:	bd10      	pop	{r4, pc}
   15b7e:	0000      	.short	0x0000
   15b80:	2000011c 	.word	0x2000011c
   15b84:	4807      	ldr	r0, [pc, #28]	; (15ba4 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1a2c>)
   15b86:	b510      	push	{r4, lr}
   15b88:	6880      	ldr	r0, [r0, #8]
   15b8a:	f890 107e 	ldrb.w	r1, [r0, #126]	; 0x7e
   15b8e:	2915      	cmp	r1, #21
   15b90:	d004      	beq.n	15b9c <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1a24>
   15b92:	f240 61a7 	movw	r1, #1703	; 0x6a7
   15b96:	2031      	movs	r0, #49	; 0x31
   15b98:	f7fa fa24 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   15b9c:	2119      	movs	r1, #25
   15b9e:	f880 107e 	strb.w	r1, [r0, #126]	; 0x7e
   15ba2:	bd10      	pop	{r4, pc}
   15ba4:	2000011c 	.word	0x2000011c
   15ba8:	4807      	ldr	r0, [pc, #28]	; (15bc8 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1a50>)
   15baa:	b510      	push	{r4, lr}
   15bac:	6880      	ldr	r0, [r0, #8]
   15bae:	f890 107e 	ldrb.w	r1, [r0, #126]	; 0x7e
   15bb2:	2915      	cmp	r1, #21
   15bb4:	d004      	beq.n	15bc0 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1a48>
   15bb6:	f240 61a1 	movw	r1, #1697	; 0x6a1
   15bba:	2031      	movs	r0, #49	; 0x31
   15bbc:	f7fa fa12 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   15bc0:	2117      	movs	r1, #23
   15bc2:	f880 107e 	strb.w	r1, [r0, #126]	; 0x7e
   15bc6:	bd10      	pop	{r4, pc}
   15bc8:	2000011c 	.word	0x2000011c
   15bcc:	b570      	push	{r4, r5, r6, lr}
   15bce:	4d1b      	ldr	r5, [pc, #108]	; (15c3c <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1ac4>)
   15bd0:	68a8      	ldr	r0, [r5, #8]
   15bd2:	f890 107e 	ldrb.w	r1, [r0, #126]	; 0x7e
   15bd6:	291b      	cmp	r1, #27
   15bd8:	d002      	beq.n	15be0 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1a68>
   15bda:	f240 61c1 	movw	r1, #1729	; 0x6c1
   15bde:	e007      	b.n	15bf0 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1a78>
   15be0:	2400      	movs	r4, #0
   15be2:	f880 40b3 	strb.w	r4, [r0, #179]	; 0xb3
   15be6:	f890 11c4 	ldrb.w	r1, [r0, #452]	; 0x1c4
   15bea:	b121      	cbz	r1, 15bf6 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1a7e>
   15bec:	f240 61c5 	movw	r1, #1733	; 0x6c5
   15bf0:	2031      	movs	r0, #49	; 0x31
   15bf2:	f7fa f9f7 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   15bf6:	f890 10b4 	ldrb.w	r1, [r0, #180]	; 0xb4
   15bfa:	b141      	cbz	r1, 15c0e <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1a96>
   15bfc:	f880 40b4 	strb.w	r4, [r0, #180]	; 0xb4
   15c00:	8801      	ldrh	r1, [r0, #0]
   15c02:	f8a0 11c8 	strh.w	r1, [r0, #456]	; 0x1c8
   15c06:	f880 41c6 	strb.w	r4, [r0, #454]	; 0x1c6
   15c0a:	210c      	movs	r1, #12
   15c0c:	e008      	b.n	15c20 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1aa8>
   15c0e:	8801      	ldrh	r1, [r0, #0]
   15c10:	f8a0 11c8 	strh.w	r1, [r0, #456]	; 0x1c8
   15c14:	f880 41c6 	strb.w	r4, [r0, #454]	; 0x1c6
   15c18:	2101      	movs	r1, #1
   15c1a:	f880 11ca 	strb.w	r1, [r0, #458]	; 0x1ca
   15c1e:	210b      	movs	r1, #11
   15c20:	f880 11c4 	strb.w	r1, [r0, #452]	; 0x1c4
   15c24:	8800      	ldrh	r0, [r0, #0]
   15c26:	f7fa fe05 	bl	10834 <sym_YNBBHT54WKEGUNVC6TSBMRGLF67VFWBOYEMKGTQ>
   15c2a:	f003 f945 	bl	18eb8 <sym_56BVXVVSYPZZTDFBHBV4MJAFTYIS7HMITNWUEZQ>
   15c2e:	f000 f9a3 	bl	15f78 <sym_ZGH42ABHAQFX3NKIMGIK7DGGJ5XWXU2KDVYEOMI>
   15c32:	68a8      	ldr	r0, [r5, #8]
   15c34:	f880 407e 	strb.w	r4, [r0, #126]	; 0x7e
   15c38:	bd70      	pop	{r4, r5, r6, pc}
   15c3a:	0000      	.short	0x0000
   15c3c:	2000011c 	.word	0x2000011c
   15c40:	b510      	push	{r4, lr}
   15c42:	4c08      	ldr	r4, [pc, #32]	; (15c64 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1aec>)
   15c44:	2301      	movs	r3, #1
   15c46:	4619      	mov	r1, r3
   15c48:	68a0      	ldr	r0, [r4, #8]
   15c4a:	f890 2080 	ldrb.w	r2, [r0, #128]	; 0x80
   15c4e:	3070      	adds	r0, #112	; 0x70
   15c50:	f003 fcb8 	bl	195c4 <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I>
   15c54:	2800      	cmp	r0, #0
   15c56:	d103      	bne.n	15c60 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1ae8>
   15c58:	68a1      	ldr	r1, [r4, #8]
   15c5a:	2008      	movs	r0, #8
   15c5c:	f881 0080 	strb.w	r0, [r1, #128]	; 0x80
   15c60:	bd10      	pop	{r4, pc}
   15c62:	0000      	.short	0x0000
   15c64:	2000011c 	.word	0x2000011c
   15c68:	4814      	ldr	r0, [pc, #80]	; (15cbc <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1b44>)
   15c6a:	b510      	push	{r4, lr}
   15c6c:	68c1      	ldr	r1, [r0, #12]
   15c6e:	6880      	ldr	r0, [r0, #8]
   15c70:	7909      	ldrb	r1, [r1, #4]
   15c72:	f890 207d 	ldrb.w	r2, [r0, #125]	; 0x7d
   15c76:	2a0a      	cmp	r2, #10
   15c78:	d109      	bne.n	15c8e <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1b16>
   15c7a:	f890 20ea 	ldrb.w	r2, [r0, #234]	; 0xea
   15c7e:	428a      	cmp	r2, r1
   15c80:	d105      	bne.n	15c8e <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1b16>
   15c82:	2100      	movs	r1, #0
   15c84:	f880 107d 	strb.w	r1, [r0, #125]	; 0x7d
   15c88:	f880 10ae 	strb.w	r1, [r0, #174]	; 0xae
   15c8c:	bd10      	pop	{r4, pc}
   15c8e:	f890 207f 	ldrb.w	r2, [r0, #127]	; 0x7f
   15c92:	0713      	lsls	r3, r2, #28
   15c94:	d507      	bpl.n	15ca6 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1b2e>
   15c96:	f022 0108 	bic.w	r1, r2, #8
   15c9a:	f880 107f 	strb.w	r1, [r0, #127]	; 0x7f
   15c9e:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
   15ca2:	f7fe bb9b 	b.w	143dc <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x264>
   15ca6:	29ff      	cmp	r1, #255	; 0xff
   15ca8:	d004      	beq.n	15cb4 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1b3c>
   15caa:	f240 617d 	movw	r1, #1661	; 0x67d
   15cae:	2031      	movs	r0, #49	; 0x31
   15cb0:	f7fa f998 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   15cb4:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
   15cb8:	f7ff be94 	b.w	159e4 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x186c>
   15cbc:	2000011c 	.word	0x2000011c
   15cc0:	b510      	push	{r4, lr}
   15cc2:	4c15      	ldr	r4, [pc, #84]	; (15d18 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1ba0>)
   15cc4:	68a0      	ldr	r0, [r4, #8]
   15cc6:	f890 10b6 	ldrb.w	r1, [r0, #182]	; 0xb6
   15cca:	0789      	lsls	r1, r1, #30
   15ccc:	d411      	bmi.n	15cf2 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1b7a>
   15cce:	f890 207d 	ldrb.w	r2, [r0, #125]	; 0x7d
   15cd2:	2301      	movs	r3, #1
   15cd4:	2100      	movs	r1, #0
   15cd6:	3070      	adds	r0, #112	; 0x70
   15cd8:	f003 fc74 	bl	195c4 <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I>
   15cdc:	b120      	cbz	r0, 15ce8 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1b70>
   15cde:	68a1      	ldr	r1, [r4, #8]
   15ce0:	2006      	movs	r0, #6
   15ce2:	f881 007d 	strb.w	r0, [r1, #125]	; 0x7d
   15ce6:	e009      	b.n	15cfc <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1b84>
   15ce8:	f240 61e7 	movw	r1, #1767	; 0x6e7
   15cec:	2031      	movs	r0, #49	; 0x31
   15cee:	f7fa f979 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   15cf2:	2100      	movs	r1, #0
   15cf4:	f880 10ae 	strb.w	r1, [r0, #174]	; 0xae
   15cf8:	f880 11b4 	strb.w	r1, [r0, #436]	; 0x1b4
   15cfc:	68a0      	ldr	r0, [r4, #8]
   15cfe:	f890 007f 	ldrb.w	r0, [r0, #127]	; 0x7f
   15d02:	0780      	lsls	r0, r0, #30
   15d04:	d507      	bpl.n	15d16 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1b9e>
   15d06:	f7fe fb69 	bl	143dc <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x264>
   15d0a:	68a0      	ldr	r0, [r4, #8]
   15d0c:	f810 1f7f 	ldrb.w	r1, [r0, #127]!
   15d10:	f021 0102 	bic.w	r1, r1, #2
   15d14:	7001      	strb	r1, [r0, #0]
   15d16:	bd10      	pop	{r4, pc}
   15d18:	2000011c 	.word	0x2000011c
   15d1c:	4808      	ldr	r0, [pc, #32]	; (15d40 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1bc8>)
   15d1e:	b510      	push	{r4, lr}
   15d20:	6880      	ldr	r0, [r0, #8]
   15d22:	f890 1083 	ldrb.w	r1, [r0, #131]	; 0x83
   15d26:	b941      	cbnz	r1, 15d3a <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1bc2>
   15d28:	f890 207e 	ldrb.w	r2, [r0, #126]	; 0x7e
   15d2c:	2301      	movs	r3, #1
   15d2e:	2106      	movs	r1, #6
   15d30:	3070      	adds	r0, #112	; 0x70
   15d32:	f003 fc47 	bl	195c4 <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I>
   15d36:	2800      	cmp	r0, #0
   15d38:	d000      	beq.n	15d3c <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1bc4>
   15d3a:	2001      	movs	r0, #1
   15d3c:	bd10      	pop	{r4, pc}
   15d3e:	0000      	.short	0x0000
   15d40:	2000011c 	.word	0x2000011c
   15d44:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
   15d46:	4c59      	ldr	r4, [pc, #356]	; (15eac <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1d34>)
   15d48:	4606      	mov	r6, r0
   15d4a:	4615      	mov	r5, r2
   15d4c:	68a0      	ldr	r0, [r4, #8]
   15d4e:	b109      	cbz	r1, 15d54 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1bdc>
   15d50:	2100      	movs	r1, #0
   15d52:	e004      	b.n	15d5e <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1be6>
   15d54:	f8b0 110e 	ldrh.w	r1, [r0, #270]	; 0x10e
   15d58:	f8b0 20fe 	ldrh.w	r2, [r0, #254]	; 0xfe
   15d5c:	4411      	add	r1, r2
   15d5e:	f8a0 110e 	strh.w	r1, [r0, #270]	; 0x10e
   15d62:	f890 1178 	ldrb.w	r1, [r0, #376]	; 0x178
   15d66:	f88d 1000 	strb.w	r1, [sp]
   15d6a:	9900      	ldr	r1, [sp, #0]
   15d6c:	9100      	str	r1, [sp, #0]
   15d6e:	f89d 1000 	ldrb.w	r1, [sp]
   15d72:	b939      	cbnz	r1, 15d84 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1c0c>
   15d74:	f890 2080 	ldrb.w	r2, [r0, #128]	; 0x80
   15d78:	2301      	movs	r3, #1
   15d7a:	4619      	mov	r1, r3
   15d7c:	3070      	adds	r0, #112	; 0x70
   15d7e:	f003 fc21 	bl	195c4 <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I>
   15d82:	b130      	cbz	r0, 15d92 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1c1a>
   15d84:	68a0      	ldr	r0, [r4, #8]
   15d86:	f830 1fa8 	ldrh.w	r1, [r0, #168]!
   15d8a:	f8b0 2056 	ldrh.w	r2, [r0, #86]	; 0x56
   15d8e:	4411      	add	r1, r2
   15d90:	8001      	strh	r1, [r0, #0]
   15d92:	68a0      	ldr	r0, [r4, #8]
   15d94:	f890 20ae 	ldrb.w	r2, [r0, #174]	; 0xae
   15d98:	b132      	cbz	r2, 15da8 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1c30>
   15d9a:	f8b0 10aa 	ldrh.w	r1, [r0, #170]	; 0xaa
   15d9e:	f8b0 30fe 	ldrh.w	r3, [r0, #254]	; 0xfe
   15da2:	4419      	add	r1, r3
   15da4:	f8a0 10aa 	strh.w	r1, [r0, #170]	; 0xaa
   15da8:	f990 30b2 	ldrsb.w	r3, [r0, #178]	; 0xb2
   15dac:	2b00      	cmp	r3, #0
   15dae:	dd06      	ble.n	15dbe <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1c46>
   15db0:	f8b0 10b0 	ldrh.w	r1, [r0, #176]	; 0xb0
   15db4:	f8b0 70fe 	ldrh.w	r7, [r0, #254]	; 0xfe
   15db8:	4439      	add	r1, r7
   15dba:	f8a0 10b0 	strh.w	r1, [r0, #176]	; 0xb0
   15dbe:	2101      	movs	r1, #1
   15dc0:	273d      	movs	r7, #61	; 0x3d
   15dc2:	b116      	cbz	r6, 15dca <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1c52>
   15dc4:	f880 7095 	strb.w	r7, [r0, #149]	; 0x95
   15dc8:	e012      	b.n	15df0 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1c78>
   15dca:	7824      	ldrb	r4, [r4, #0]
   15dcc:	2c02      	cmp	r4, #2
   15dce:	d009      	beq.n	15de4 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1c6c>
   15dd0:	2c01      	cmp	r4, #1
   15dd2:	d011      	beq.n	15df8 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1c80>
   15dd4:	b33d      	cbz	r5, 15e26 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1cae>
   15dd6:	f100 0294 	add.w	r2, r0, #148	; 0x94
   15dda:	7011      	strb	r1, [r2, #0]
   15ddc:	06e9      	lsls	r1, r5, #27
   15dde:	d50e      	bpl.n	15dfe <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1c86>
   15de0:	211e      	movs	r1, #30
   15de2:	e018      	b.n	15e16 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1c9e>
   15de4:	f890 20ee 	ldrb.w	r2, [r0, #238]	; 0xee
   15de8:	2a06      	cmp	r2, #6
   15dea:	d044      	beq.n	15e76 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1cfe>
   15dec:	2216      	movs	r2, #22
   15dee:	e042      	b.n	15e76 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1cfe>
   15df0:	f100 0294 	add.w	r2, r0, #148	; 0x94
   15df4:	7011      	strb	r1, [r2, #0]
   15df6:	e047      	b.n	15e88 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1d10>
   15df8:	f890 217a 	ldrb.w	r2, [r0, #378]	; 0x17a
   15dfc:	e03b      	b.n	15e76 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1cfe>
   15dfe:	0729      	lsls	r1, r5, #28
   15e00:	d502      	bpl.n	15e08 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1c90>
   15e02:	f880 7095 	strb.w	r7, [r0, #149]	; 0x95
   15e06:	e03f      	b.n	15e88 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1d10>
   15e08:	06a9      	lsls	r1, r5, #26
   15e0a:	d501      	bpl.n	15e10 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1c98>
   15e0c:	2123      	movs	r1, #35	; 0x23
   15e0e:	e002      	b.n	15e16 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1c9e>
   15e10:	07a9      	lsls	r1, r5, #30
   15e12:	d003      	beq.n	15e1c <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1ca4>
   15e14:	212a      	movs	r1, #42	; 0x2a
   15e16:	f880 1095 	strb.w	r1, [r0, #149]	; 0x95
   15e1a:	e035      	b.n	15e88 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1d10>
   15e1c:	f640 41bc 	movw	r1, #3260	; 0xcbc
   15e20:	2031      	movs	r0, #49	; 0x31
   15e22:	f7fa f8df 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   15e26:	b12a      	cbz	r2, 15e34 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1cbc>
   15e28:	f8b0 20aa 	ldrh.w	r2, [r0, #170]	; 0xaa
   15e2c:	f8b0 40ac 	ldrh.w	r4, [r0, #172]	; 0xac
   15e30:	42a2      	cmp	r2, r4
   15e32:	d216      	bcs.n	15e62 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1cea>
   15e34:	2b00      	cmp	r3, #0
   15e36:	dd05      	ble.n	15e44 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1ccc>
   15e38:	f8b0 20b0 	ldrh.w	r2, [r0, #176]	; 0xb0
   15e3c:	f8b0 30ac 	ldrh.w	r3, [r0, #172]	; 0xac
   15e40:	429a      	cmp	r2, r3
   15e42:	d20e      	bcs.n	15e62 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1cea>
   15e44:	f8b0 30a8 	ldrh.w	r3, [r0, #168]	; 0xa8
   15e48:	f8b0 20a6 	ldrh.w	r2, [r0, #166]	; 0xa6
   15e4c:	4293      	cmp	r3, r2
   15e4e:	d30a      	bcc.n	15e66 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1cee>
   15e50:	f890 3178 	ldrb.w	r3, [r0, #376]	; 0x178
   15e54:	f88d 3000 	strb.w	r3, [sp]
   15e58:	9b00      	ldr	r3, [sp, #0]
   15e5a:	9300      	str	r3, [sp, #0]
   15e5c:	f89d 3000 	ldrb.w	r3, [sp]
   15e60:	b10b      	cbz	r3, 15e66 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1cee>
   15e62:	2222      	movs	r2, #34	; 0x22
   15e64:	e007      	b.n	15e76 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1cfe>
   15e66:	f890 3081 	ldrb.w	r3, [r0, #129]	; 0x81
   15e6a:	b13b      	cbz	r3, 15e7c <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1d04>
   15e6c:	f8b0 30a4 	ldrh.w	r3, [r0, #164]	; 0xa4
   15e70:	4293      	cmp	r3, r2
   15e72:	d309      	bcc.n	15e88 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1d10>
   15e74:	2208      	movs	r2, #8
   15e76:	f880 2095 	strb.w	r2, [r0, #149]	; 0x95
   15e7a:	e7b9      	b.n	15df0 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1c78>
   15e7c:	f8b0 20a4 	ldrh.w	r2, [r0, #164]	; 0xa4
   15e80:	2a06      	cmp	r2, #6
   15e82:	d301      	bcc.n	15e88 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1d10>
   15e84:	223e      	movs	r2, #62	; 0x3e
   15e86:	e7f6      	b.n	15e76 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1cfe>
   15e88:	f890 1094 	ldrb.w	r1, [r0, #148]	; 0x94
   15e8c:	f88d 1000 	strb.w	r1, [sp]
   15e90:	9900      	ldr	r1, [sp, #0]
   15e92:	9100      	str	r1, [sp, #0]
   15e94:	f89d 1000 	ldrb.w	r1, [sp]
   15e98:	b119      	cbz	r1, 15ea2 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1d2a>
   15e9a:	e8bd 40f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, lr}
   15e9e:	f004 bea3 	b.w	1abe8 <sym_IYZQNCOB4T4XO27DREWRIWJFVHVS355NEDBEGEQ>
   15ea2:	e8bd 40f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, lr}
   15ea6:	2100      	movs	r1, #0
   15ea8:	f7fd bbc8 	b.w	1363c <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI>
   15eac:	2000011c 	.word	0x2000011c
   15eb0:	b570      	push	{r4, r5, r6, lr}
   15eb2:	4d2d      	ldr	r5, [pc, #180]	; (15f68 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1df0>)
   15eb4:	68a8      	ldr	r0, [r5, #8]
   15eb6:	f890 1081 	ldrb.w	r1, [r0, #129]	; 0x81
   15eba:	b151      	cbz	r1, 15ed2 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1d5a>
   15ebc:	2901      	cmp	r1, #1
   15ebe:	d008      	beq.n	15ed2 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1d5a>
   15ec0:	2902      	cmp	r1, #2
   15ec2:	d009      	beq.n	15ed8 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1d60>
   15ec4:	2903      	cmp	r1, #3
   15ec6:	d007      	beq.n	15ed8 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1d60>
   15ec8:	f640 217a 	movw	r1, #2682	; 0xa7a
   15ecc:	2031      	movs	r0, #49	; 0x31
   15ece:	f7fa f889 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   15ed2:	f8b0 10fc 	ldrh.w	r1, [r0, #252]	; 0xfc
   15ed6:	e035      	b.n	15f44 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1dcc>
   15ed8:	f890 1080 	ldrb.w	r1, [r0, #128]	; 0x80
   15edc:	2908      	cmp	r1, #8
   15ede:	d034      	beq.n	15f4a <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1dd2>
   15ee0:	f8b0 10a4 	ldrh.w	r1, [r0, #164]	; 0xa4
   15ee4:	f8b0 20a6 	ldrh.w	r2, [r0, #166]	; 0xa6
   15ee8:	2400      	movs	r4, #0
   15eea:	1c8b      	adds	r3, r1, #2
   15eec:	429a      	cmp	r2, r3
   15eee:	d306      	bcc.n	15efe <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1d86>
   15ef0:	1a51      	subs	r1, r2, r1
   15ef2:	1e89      	subs	r1, r1, #2
   15ef4:	040c      	lsls	r4, r1, #16
   15ef6:	0c24      	lsrs	r4, r4, #16
   15ef8:	d001      	beq.n	15efe <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1d86>
   15efa:	1e64      	subs	r4, r4, #1
   15efc:	b2a4      	uxth	r4, r4
   15efe:	f890 10a2 	ldrb.w	r1, [r0, #162]	; 0xa2
   15f02:	b139      	cbz	r1, 15f14 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1d9c>
   15f04:	f890 207d 	ldrb.w	r2, [r0, #125]	; 0x7d
   15f08:	2301      	movs	r3, #1
   15f0a:	2109      	movs	r1, #9
   15f0c:	3070      	adds	r0, #112	; 0x70
   15f0e:	f003 fb59 	bl	195c4 <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I>
   15f12:	b330      	cbz	r0, 15f62 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1dea>
   15f14:	f7ff ff02 	bl	15d1c <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1ba4>
   15f18:	b168      	cbz	r0, 15f36 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1dbe>
   15f1a:	68a9      	ldr	r1, [r5, #8]
   15f1c:	2000      	movs	r0, #0
   15f1e:	3198      	adds	r1, #152	; 0x98
   15f20:	c906      	ldmia	r1, {r1, r2}
   15f22:	1c8b      	adds	r3, r1, #2
   15f24:	429a      	cmp	r2, r3
   15f26:	d303      	bcc.n	15f30 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1db8>
   15f28:	1a50      	subs	r0, r2, r1
   15f2a:	1e80      	subs	r0, r0, #2
   15f2c:	d000      	beq.n	15f30 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1db8>
   15f2e:	1e40      	subs	r0, r0, #1
   15f30:	42a0      	cmp	r0, r4
   15f32:	d200      	bcs.n	15f36 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1dbe>
   15f34:	b284      	uxth	r4, r0
   15f36:	b10c      	cbz	r4, 15f3c <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1dc4>
   15f38:	1e64      	subs	r4, r4, #1
   15f3a:	b2a4      	uxth	r4, r4
   15f3c:	68a8      	ldr	r0, [r5, #8]
   15f3e:	f8b0 10fc 	ldrh.w	r1, [r0, #252]	; 0xfc
   15f42:	4421      	add	r1, r4
   15f44:	f8a0 10f8 	strh.w	r1, [r0, #248]	; 0xf8
   15f48:	bd70      	pop	{r4, r5, r6, pc}
   15f4a:	f8b0 10a4 	ldrh.w	r1, [r0, #164]	; 0xa4
   15f4e:	2903      	cmp	r1, #3
   15f50:	d3bf      	bcc.n	15ed2 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1d5a>
   15f52:	f830 1f74 	ldrh.w	r1, [r0, #116]!
   15f56:	8e42      	ldrh	r2, [r0, #50]	; 0x32
   15f58:	4411      	add	r1, r2
   15f5a:	1c49      	adds	r1, r1, #1
   15f5c:	f8a0 1084 	strh.w	r1, [r0, #132]	; 0x84
   15f60:	bd70      	pop	{r4, r5, r6, pc}
   15f62:	2400      	movs	r4, #0
   15f64:	e7ea      	b.n	15f3c <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA+0x1dc4>
   15f66:	0000      	.short	0x0000
   15f68:	2000011c 	.word	0x2000011c

00015f6c <sym_VKBDHCW5KWYFAEZJJBKQNHH4JDURIHHEJCK4SOA>:
   15f6c:	4901      	ldr	r1, [pc, #4]	; (15f74 <sym_VKBDHCW5KWYFAEZJJBKQNHH4JDURIHHEJCK4SOA+0x8>)
   15f6e:	7008      	strb	r0, [r1, #0]
   15f70:	4770      	bx	lr
   15f72:	0000      	.short	0x0000
   15f74:	2000029b 	.word	0x2000029b

00015f78 <sym_ZGH42ABHAQFX3NKIMGIK7DGGJ5XWXU2KDVYEOMI>:
   15f78:	4801      	ldr	r0, [pc, #4]	; (15f80 <sym_ZGH42ABHAQFX3NKIMGIK7DGGJ5XWXU2KDVYEOMI+0x8>)
   15f7a:	7800      	ldrb	r0, [r0, #0]
   15f7c:	f7f9 be5a 	b.w	fc34 <sym_GURZ3AH6X65RGSKYMYNWZVP6HM56LA5MRAQWT6Q>
   15f80:	2000029b 	.word	0x2000029b

00015f84 <sym_Y5RIWFUVP4FHJFYC7FBZKM2MV7INK43TLWQ5URA>:
   15f84:	4903      	ldr	r1, [pc, #12]	; (15f94 <sym_Y5RIWFUVP4FHJFYC7FBZKM2MV7INK43TLWQ5URA+0x10>)
   15f86:	888a      	ldrh	r2, [r1, #4]
   15f88:	8002      	strh	r2, [r0, #0]
   15f8a:	7889      	ldrb	r1, [r1, #2]
   15f8c:	7081      	strb	r1, [r0, #2]
   15f8e:	2000      	movs	r0, #0
   15f90:	4770      	bx	lr
   15f92:	0000      	.short	0x0000
   15f94:	20000f88 	.word	0x20000f88

00015f98 <sym_PAQFQMAKUCMOA6SUTJ7CAX3DYCWNAJLJQFJCDNY>:
   15f98:	b53e      	push	{r1, r2, r3, r4, r5, lr}
   15f9a:	460c      	mov	r4, r1
   15f9c:	4605      	mov	r5, r0
   15f9e:	8800      	ldrh	r0, [r0, #0]
   15fa0:	4669      	mov	r1, sp
   15fa2:	f003 fae5 	bl	19570 <sym_UHWWEFDYCEMO6BV2Q3GVLMFC37EIDJEWGQC2XUA>
   15fa6:	0001      	movs	r1, r0
   15fa8:	f04f 0000 	mov.w	r0, #0
   15fac:	d005      	beq.n	15fba <sym_PAQFQMAKUCMOA6SUTJ7CAX3DYCWNAJLJQFJCDNY+0x22>
   15fae:	f8c4 0002 	str.w	r0, [r4, #2]
   15fb2:	71a0      	strb	r0, [r4, #6]
   15fb4:	8020      	strh	r0, [r4, #0]
   15fb6:	2002      	movs	r0, #2
   15fb8:	bd3e      	pop	{r1, r2, r3, r4, r5, pc}
   15fba:	9901      	ldr	r1, [sp, #4]
   15fbc:	f111 0170 	adds.w	r1, r1, #112	; 0x70
   15fc0:	f881 004e 	strb.w	r0, [r1, #78]	; 0x4e
   15fc4:	f8d1 2016 	ldr.w	r2, [r1, #22]
   15fc8:	f8c4 2002 	str.w	r2, [r4, #2]
   15fcc:	7e8a      	ldrb	r2, [r1, #26]
   15fce:	71a2      	strb	r2, [r4, #6]
   15fd0:	882a      	ldrh	r2, [r5, #0]
   15fd2:	8022      	strh	r2, [r4, #0]
   15fd4:	f891 204e 	ldrb.w	r2, [r1, #78]	; 0x4e
   15fd8:	f88d 2008 	strb.w	r2, [sp, #8]
   15fdc:	9a02      	ldr	r2, [sp, #8]
   15fde:	9202      	str	r2, [sp, #8]
   15fe0:	f89d 2008 	ldrb.w	r2, [sp, #8]
   15fe4:	2a00      	cmp	r2, #0
   15fe6:	d1eb      	bne.n	15fc0 <sym_PAQFQMAKUCMOA6SUTJ7CAX3DYCWNAJLJQFJCDNY+0x28>
   15fe8:	2000      	movs	r0, #0
   15fea:	bd3e      	pop	{r1, r2, r3, r4, r5, pc}

00015fec <sym_CT735EXQUXWPD7TNRP2WWTA3LGLYUEOZMPS7RMI>:
   15fec:	b51c      	push	{r2, r3, r4, lr}
   15fee:	8800      	ldrh	r0, [r0, #0]
   15ff0:	4669      	mov	r1, sp
   15ff2:	f003 fabd 	bl	19570 <sym_UHWWEFDYCEMO6BV2Q3GVLMFC37EIDJEWGQC2XUA>
   15ff6:	2800      	cmp	r0, #0
   15ff8:	d10b      	bne.n	16012 <sym_CT735EXQUXWPD7TNRP2WWTA3LGLYUEOZMPS7RMI+0x26>
   15ffa:	480b      	ldr	r0, [pc, #44]	; (16028 <sym_CT735EXQUXWPD7TNRP2WWTA3LGLYUEOZMPS7RMI+0x3c>)
   15ffc:	7800      	ldrb	r0, [r0, #0]
   15ffe:	b188      	cbz	r0, 16024 <sym_CT735EXQUXWPD7TNRP2WWTA3LGLYUEOZMPS7RMI+0x38>
   16000:	9801      	ldr	r0, [sp, #4]
   16002:	f005 fd16 	bl	1ba32 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x320>
   16006:	b128      	cbz	r0, 16014 <sym_CT735EXQUXWPD7TNRP2WWTA3LGLYUEOZMPS7RMI+0x28>
   16008:	9801      	ldr	r0, [sp, #4]
   1600a:	f890 01b5 	ldrb.w	r0, [r0, #437]	; 0x1b5
   1600e:	b118      	cbz	r0, 16018 <sym_CT735EXQUXWPD7TNRP2WWTA3LGLYUEOZMPS7RMI+0x2c>
   16010:	203a      	movs	r0, #58	; 0x3a
   16012:	bd1c      	pop	{r2, r3, r4, pc}
   16014:	2002      	movs	r0, #2
   16016:	bd1c      	pop	{r2, r3, r4, pc}
   16018:	9901      	ldr	r1, [sp, #4]
   1601a:	2001      	movs	r0, #1
   1601c:	f881 01b5 	strb.w	r0, [r1, #437]	; 0x1b5
   16020:	2000      	movs	r0, #0
   16022:	bd1c      	pop	{r2, r3, r4, pc}
   16024:	2011      	movs	r0, #17
   16026:	bd1c      	pop	{r2, r3, r4, pc}
   16028:	200001f8 	.word	0x200001f8

0001602c <sym_THL6EKGE7AKTO5JDGU45MV33YSIXORBRMDECS2Q>:
   1602c:	b510      	push	{r4, lr}
   1602e:	4604      	mov	r4, r0
   16030:	f005 fcf6 	bl	1ba20 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x30e>
   16034:	b130      	cbz	r0, 16044 <sym_THL6EKGE7AKTO5JDGU45MV33YSIXORBRMDECS2Q+0x18>
   16036:	4804      	ldr	r0, [pc, #16]	; (16048 <sym_THL6EKGE7AKTO5JDGU45MV33YSIXORBRMDECS2Q+0x1c>)
   16038:	8881      	ldrh	r1, [r0, #4]
   1603a:	8021      	strh	r1, [r4, #0]
   1603c:	88c0      	ldrh	r0, [r0, #6]
   1603e:	8060      	strh	r0, [r4, #2]
   16040:	2000      	movs	r0, #0
   16042:	bd10      	pop	{r4, pc}
   16044:	2001      	movs	r0, #1
   16046:	bd10      	pop	{r4, pc}
   16048:	20000200 	.word	0x20000200

0001604c <sym_4POEZKL66A5T3356722OWKNB5CNFKPMV6JI3HEA>:
   1604c:	b53e      	push	{r1, r2, r3, r4, r5, lr}
   1604e:	4605      	mov	r5, r0
   16050:	f000 fb3c 	bl	166cc <sym_PBZPB3PSJJYSQQW7TH2XDGNLD2UYSZR6YJ4ZZNQ>
   16054:	f3c0 2000 	ubfx	r0, r0, #8, #1
   16058:	b310      	cbz	r0, 160a0 <sym_4POEZKL66A5T3356722OWKNB5CNFKPMV6JI3HEA+0x54>
   1605a:	2400      	movs	r4, #0
   1605c:	a802      	add	r0, sp, #8
   1605e:	f88d 4004 	strb.w	r4, [sp, #4]
   16062:	f88d 4008 	strb.w	r4, [sp, #8]
   16066:	9000      	str	r0, [sp, #0]
   16068:	78aa      	ldrb	r2, [r5, #2]
   1606a:	7869      	ldrb	r1, [r5, #1]
   1606c:	7828      	ldrb	r0, [r5, #0]
   1606e:	ab01      	add	r3, sp, #4
   16070:	f005 fd30 	bl	1bad4 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x3c2>
   16074:	2800      	cmp	r0, #0
   16076:	d112      	bne.n	1609e <sym_4POEZKL66A5T3356722OWKNB5CNFKPMV6JI3HEA+0x52>
   16078:	f89d 0004 	ldrb.w	r0, [sp, #4]
   1607c:	f005 fc31 	bl	1b8e2 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x1d0>
   16080:	b180      	cbz	r0, 160a4 <sym_4POEZKL66A5T3356722OWKNB5CNFKPMV6JI3HEA+0x58>
   16082:	f89d 0008 	ldrb.w	r0, [sp, #8]
   16086:	f005 fc2c 	bl	1b8e2 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x1d0>
   1608a:	b158      	cbz	r0, 160a4 <sym_4POEZKL66A5T3356722OWKNB5CNFKPMV6JI3HEA+0x58>
   1608c:	4806      	ldr	r0, [pc, #24]	; (160a8 <sym_4POEZKL66A5T3356722OWKNB5CNFKPMV6JI3HEA+0x5c>)
   1608e:	f89d 1004 	ldrb.w	r1, [sp, #4]
   16092:	7481      	strb	r1, [r0, #18]
   16094:	f89d 1008 	ldrb.w	r1, [sp, #8]
   16098:	74c1      	strb	r1, [r0, #19]
   1609a:	8284      	strh	r4, [r0, #20]
   1609c:	2000      	movs	r0, #0
   1609e:	bd3e      	pop	{r1, r2, r3, r4, r5, pc}
   160a0:	2001      	movs	r0, #1
   160a2:	bd3e      	pop	{r1, r2, r3, r4, r5, pc}
   160a4:	2011      	movs	r0, #17
   160a6:	bd3e      	pop	{r1, r2, r3, r4, r5, pc}
   160a8:	20000f88 	.word	0x20000f88

000160ac <sym_XQWU4MX22DPQIRRYTXBNWTH2DBYK7MH33FME7FI>:
   160ac:	7801      	ldrb	r1, [r0, #0]
   160ae:	b179      	cbz	r1, 160d0 <sym_XQWU4MX22DPQIRRYTXBNWTH2DBYK7MH33FME7FI+0x24>
   160b0:	7841      	ldrb	r1, [r0, #1]
   160b2:	b169      	cbz	r1, 160d0 <sym_XQWU4MX22DPQIRRYTXBNWTH2DBYK7MH33FME7FI+0x24>
   160b4:	8841      	ldrh	r1, [r0, #2]
   160b6:	291b      	cmp	r1, #27
   160b8:	d30a      	bcc.n	160d0 <sym_XQWU4MX22DPQIRRYTXBNWTH2DBYK7MH33FME7FI+0x24>
   160ba:	8881      	ldrh	r1, [r0, #4]
   160bc:	291b      	cmp	r1, #27
   160be:	d307      	bcc.n	160d0 <sym_XQWU4MX22DPQIRRYTXBNWTH2DBYK7MH33FME7FI+0x24>
   160c0:	4904      	ldr	r1, [pc, #16]	; (160d4 <sym_XQWU4MX22DPQIRRYTXBNWTH2DBYK7MH33FME7FI+0x28>)
   160c2:	6802      	ldr	r2, [r0, #0]
   160c4:	f8c1 2002 	str.w	r2, [r1, #2]
   160c8:	8880      	ldrh	r0, [r0, #4]
   160ca:	80c8      	strh	r0, [r1, #6]
   160cc:	2000      	movs	r0, #0
   160ce:	4770      	bx	lr
   160d0:	2012      	movs	r0, #18
   160d2:	4770      	bx	lr
   160d4:	20000f88 	.word	0x20000f88

000160d8 <sym_DVVOECRRYK6EAGDREB2UKKQZT5MAOOUK66XNPTA>:
   160d8:	6800      	ldr	r0, [r0, #0]
   160da:	f240 41e2 	movw	r1, #1250	; 0x4e2
   160de:	4288      	cmp	r0, r1
   160e0:	d303      	bcc.n	160ea <sym_DVVOECRRYK6EAGDREB2UKKQZT5MAOOUK66XNPTA+0x12>
   160e2:	4903      	ldr	r1, [pc, #12]	; (160f0 <sym_DVVOECRRYK6EAGDREB2UKKQZT5MAOOUK66XNPTA+0x18>)
   160e4:	6088      	str	r0, [r1, #8]
   160e6:	2000      	movs	r0, #0
   160e8:	4770      	bx	lr
   160ea:	2012      	movs	r0, #18
   160ec:	4770      	bx	lr
   160ee:	0000      	.short	0x0000
   160f0:	20000f88 	.word	0x20000f88

000160f4 <sym_VBKW2EEGTD4JJSNUU73GLQHLYR7TWOGYRMQYZEY>:
   160f4:	4a03      	ldr	r2, [pc, #12]	; (16104 <sym_VBKW2EEGTD4JJSNUU73GLQHLYR7TWOGYRMQYZEY+0x10>)
   160f6:	e9d2 1200 	ldrd	r1, r2, [r2]
   160fa:	6001      	str	r1, [r0, #0]
   160fc:	6042      	str	r2, [r0, #4]
   160fe:	2000      	movs	r0, #0
   16100:	4770      	bx	lr
   16102:	0000      	.short	0x0000
   16104:	0001656c 	.word	0x0001656c

00016108 <sym_2J7Z7KW3DU67BQ5MXN4KH26NTEF6NAEYXIDNT6Q>:
   16108:	b510      	push	{r4, lr}
   1610a:	2005      	movs	r0, #5
   1610c:	f000 fad4 	bl	166b8 <sym_N6TOG3AODPPFNS6LXFKKIADNGIMUMBS5BXPEFOY>
   16110:	f7fd fe56 	bl	13dc0 <sym_OGXWMXSCK2QG6TOSCWHHS4PII24VSXWVJJIPCDI>
   16114:	4902      	ldr	r1, [pc, #8]	; (16120 <sym_2J7Z7KW3DU67BQ5MXN4KH26NTEF6NAEYXIDNT6Q+0x18>)
   16116:	4801      	ldr	r0, [pc, #4]	; (1611c <sym_2J7Z7KW3DU67BQ5MXN4KH26NTEF6NAEYXIDNT6Q+0x14>)
   16118:	6048      	str	r0, [r1, #4]
   1611a:	bd10      	pop	{r4, pc}
   1611c:	000161ad 	.word	0x000161ad
   16120:	200001f8 	.word	0x200001f8

00016124 <sym_RGKYP5TXYS27EGT6ZHZS5EDDAZK5QGTWLBOBJEA>:
   16124:	b510      	push	{r4, lr}
   16126:	f003 f977 	bl	19418 <sym_BGPX36PUCNVPV3544HQ5RQFY5WG7CJAFVVBI7AY>
   1612a:	f7fb fc73 	bl	11a14 <sym_62DUXM4M5AM4URNPP7IKDX3NCPAODBT4BMADGAY>
   1612e:	f000 fadd 	bl	166ec <sym_MJMICEV3AHUJUDNI6JLXYNXCJNL4PTPUQLXISYA>
   16132:	480f      	ldr	r0, [pc, #60]	; (16170 <sym_RGKYP5TXYS27EGT6ZHZS5EDDAZK5QGTWLBOBJEA+0x4c>)
   16134:	f64f 71ff 	movw	r1, #65535	; 0xffff
   16138:	4b0e      	ldr	r3, [pc, #56]	; (16174 <sym_RGKYP5TXYS27EGT6ZHZS5EDDAZK5QGTWLBOBJEA+0x50>)
   1613a:	81c1      	strh	r1, [r0, #14]
   1613c:	8201      	strh	r1, [r0, #16]
   1613e:	2100      	movs	r1, #0
   16140:	75c1      	strb	r1, [r0, #23]
   16142:	8301      	strh	r1, [r0, #24]
   16144:	8001      	strh	r1, [r0, #0]
   16146:	221b      	movs	r2, #27
   16148:	801a      	strh	r2, [r3, #0]
   1614a:	f44f 74a4 	mov.w	r4, #328	; 0x148
   1614e:	805c      	strh	r4, [r3, #2]
   16150:	809a      	strh	r2, [r3, #4]
   16152:	80dc      	strh	r4, [r3, #6]
   16154:	7481      	strb	r1, [r0, #18]
   16156:	74c1      	strb	r1, [r0, #19]
   16158:	2303      	movs	r3, #3
   1615a:	7083      	strb	r3, [r0, #2]
   1615c:	2302      	movs	r3, #2
   1615e:	70c3      	strb	r3, [r0, #3]
   16160:	8082      	strh	r2, [r0, #4]
   16162:	80c2      	strh	r2, [r0, #6]
   16164:	f640 62a6 	movw	r2, #3750	; 0xea6
   16168:	6082      	str	r2, [r0, #8]
   1616a:	7581      	strb	r1, [r0, #22]
   1616c:	7301      	strb	r1, [r0, #12]
   1616e:	bd10      	pop	{r4, pc}
   16170:	20000f88 	.word	0x20000f88
   16174:	20000200 	.word	0x20000200

00016178 <sym_XOOTGCSEAKA3PUKZW3QYB4DCVC2FKUP2TS5AZ5Q>:
   16178:	b510      	push	{r4, lr}
   1617a:	b158      	cbz	r0, 16194 <sym_XOOTGCSEAKA3PUKZW3QYB4DCVC2FKUP2TS5AZ5Q+0x1c>
   1617c:	490a      	ldr	r1, [pc, #40]	; (161a8 <sym_XOOTGCSEAKA3PUKZW3QYB4DCVC2FKUP2TS5AZ5Q+0x30>)
   1617e:	780a      	ldrb	r2, [r1, #0]
   16180:	b16a      	cbz	r2, 1619e <sym_XOOTGCSEAKA3PUKZW3QYB4DCVC2FKUP2TS5AZ5Q+0x26>
   16182:	2200      	movs	r2, #0
   16184:	7042      	strb	r2, [r0, #1]
   16186:	2303      	movs	r3, #3
   16188:	7003      	strb	r3, [r0, #0]
   1618a:	2301      	movs	r3, #1
   1618c:	7103      	strb	r3, [r0, #4]
   1618e:	700a      	strb	r2, [r1, #0]
   16190:	4618      	mov	r0, r3
   16192:	bd10      	pop	{r4, pc}
   16194:	f641 1146 	movw	r1, #6470	; 0x1946
   16198:	2039      	movs	r0, #57	; 0x39
   1619a:	f7f9 ff23 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   1619e:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
   161a2:	f7fb bfcf 	b.w	12144 <sym_2NLJY3RIUYXQOZYTZ6WNJA5SS4UKGFLVECP5SQA>
   161a6:	0000      	.short	0x0000
   161a8:	20000f88 	.word	0x20000f88
   161ac:	e92d 4ffe 	stmdb	sp!, {r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
   161b0:	4692      	mov	sl, r2
   161b2:	460f      	mov	r7, r1
   161b4:	4681      	mov	r9, r0
   161b6:	f005 fc33 	bl	1ba20 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x30e>
   161ba:	2800      	cmp	r0, #0
   161bc:	d063      	beq.n	16286 <sym_XOOTGCSEAKA3PUKZW3QYB4DCVC2FKUP2TS5AZ5Q+0x10e>
   161be:	4933      	ldr	r1, [pc, #204]	; (1628c <sym_XOOTGCSEAKA3PUKZW3QYB4DCVC2FKUP2TS5AZ5Q+0x114>)
   161c0:	f8b9 2054 	ldrh.w	r2, [r9, #84]	; 0x54
   161c4:	f8b9 6052 	ldrh.w	r6, [r9, #82]	; 0x52
   161c8:	8808      	ldrh	r0, [r1, #0]
   161ca:	4290      	cmp	r0, r2
   161cc:	d300      	bcc.n	161d0 <sym_XOOTGCSEAKA3PUKZW3QYB4DCVC2FKUP2TS5AZ5Q+0x58>
   161ce:	4610      	mov	r0, r2
   161d0:	4680      	mov	r8, r0
   161d2:	8888      	ldrh	r0, [r1, #4]
   161d4:	42b0      	cmp	r0, r6
   161d6:	d200      	bcs.n	161da <sym_XOOTGCSEAKA3PUKZW3QYB4DCVC2FKUP2TS5AZ5Q+0x62>
   161d8:	4606      	mov	r6, r0
   161da:	884c      	ldrh	r4, [r1, #2]
   161dc:	f640 0048 	movw	r0, #2120	; 0x848
   161e0:	4284      	cmp	r4, r0
   161e2:	d300      	bcc.n	161e6 <sym_XOOTGCSEAKA3PUKZW3QYB4DCVC2FKUP2TS5AZ5Q+0x6e>
   161e4:	4604      	mov	r4, r0
   161e6:	88cd      	ldrh	r5, [r1, #6]
   161e8:	4285      	cmp	r5, r0
   161ea:	d300      	bcc.n	161ee <sym_XOOTGCSEAKA3PUKZW3QYB4DCVC2FKUP2TS5AZ5Q+0x76>
   161ec:	4605      	mov	r5, r0
   161ee:	4284      	cmp	r4, r0
   161f0:	d300      	bcc.n	161f4 <sym_XOOTGCSEAKA3PUKZW3QYB4DCVC2FKUP2TS5AZ5Q+0x7c>
   161f2:	4604      	mov	r4, r0
   161f4:	f44f 71a4 	mov.w	r1, #328	; 0x148
   161f8:	2e1b      	cmp	r6, #27
   161fa:	d001      	beq.n	16200 <sym_XOOTGCSEAKA3PUKZW3QYB4DCVC2FKUP2TS5AZ5Q+0x88>
   161fc:	428d      	cmp	r5, r1
   161fe:	d104      	bne.n	1620a <sym_XOOTGCSEAKA3PUKZW3QYB4DCVC2FKUP2TS5AZ5Q+0x92>
   16200:	f1b8 0f1b 	cmp.w	r8, #27
   16204:	d03f      	beq.n	16286 <sym_XOOTGCSEAKA3PUKZW3QYB4DCVC2FKUP2TS5AZ5Q+0x10e>
   16206:	428c      	cmp	r4, r1
   16208:	d03d      	beq.n	16286 <sym_XOOTGCSEAKA3PUKZW3QYB4DCVC2FKUP2TS5AZ5Q+0x10e>
   1620a:	466a      	mov	r2, sp
   1620c:	4651      	mov	r1, sl
   1620e:	4648      	mov	r0, r9
   16210:	f005 fb8a 	bl	1b928 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x216>
   16214:	f8bd 0006 	ldrh.w	r0, [sp, #6]
   16218:	4641      	mov	r1, r8
   1621a:	4540      	cmp	r0, r8
   1621c:	d900      	bls.n	16220 <sym_XOOTGCSEAKA3PUKZW3QYB4DCVC2FKUP2TS5AZ5Q+0xa8>
   1621e:	4608      	mov	r0, r1
   16220:	80f8      	strh	r0, [r7, #6]
   16222:	f8bd 1008 	ldrh.w	r1, [sp, #8]
   16226:	42a1      	cmp	r1, r4
   16228:	d800      	bhi.n	1622c <sym_XOOTGCSEAKA3PUKZW3QYB4DCVC2FKUP2TS5AZ5Q+0xb4>
   1622a:	460c      	mov	r4, r1
   1622c:	813c      	strh	r4, [r7, #8]
   1622e:	f8bd 1002 	ldrh.w	r1, [sp, #2]
   16232:	42b1      	cmp	r1, r6
   16234:	d800      	bhi.n	16238 <sym_XOOTGCSEAKA3PUKZW3QYB4DCVC2FKUP2TS5AZ5Q+0xc0>
   16236:	460e      	mov	r6, r1
   16238:	807e      	strh	r6, [r7, #2]
   1623a:	f8bd 1004 	ldrh.w	r1, [sp, #4]
   1623e:	42a9      	cmp	r1, r5
   16240:	d900      	bls.n	16244 <sym_XOOTGCSEAKA3PUKZW3QYB4DCVC2FKUP2TS5AZ5Q+0xcc>
   16242:	4629      	mov	r1, r5
   16244:	80b9      	strh	r1, [r7, #4]
   16246:	2201      	movs	r2, #1
   16248:	703a      	strb	r2, [r7, #0]
   1624a:	381b      	subs	r0, #27
   1624c:	28e0      	cmp	r0, #224	; 0xe0
   1624e:	d902      	bls.n	16256 <sym_XOOTGCSEAKA3PUKZW3QYB4DCVC2FKUP2TS5AZ5Q+0xde>
   16250:	f640 4172 	movw	r1, #3186	; 0xc72
   16254:	e014      	b.n	16280 <sym_XOOTGCSEAKA3PUKZW3QYB4DCVC2FKUP2TS5AZ5Q+0x108>
   16256:	3e1b      	subs	r6, #27
   16258:	2ee0      	cmp	r6, #224	; 0xe0
   1625a:	d902      	bls.n	16262 <sym_XOOTGCSEAKA3PUKZW3QYB4DCVC2FKUP2TS5AZ5Q+0xea>
   1625c:	f640 4174 	movw	r1, #3188	; 0xc74
   16260:	e00e      	b.n	16280 <sym_XOOTGCSEAKA3PUKZW3QYB4DCVC2FKUP2TS5AZ5Q+0x108>
   16262:	f44f 60e0 	mov.w	r0, #1792	; 0x700
   16266:	f5a4 74a4 	sub.w	r4, r4, #328	; 0x148
   1626a:	4284      	cmp	r4, r0
   1626c:	d902      	bls.n	16274 <sym_XOOTGCSEAKA3PUKZW3QYB4DCVC2FKUP2TS5AZ5Q+0xfc>
   1626e:	f640 4176 	movw	r1, #3190	; 0xc76
   16272:	e005      	b.n	16280 <sym_XOOTGCSEAKA3PUKZW3QYB4DCVC2FKUP2TS5AZ5Q+0x108>
   16274:	f5a1 71a4 	sub.w	r1, r1, #328	; 0x148
   16278:	4281      	cmp	r1, r0
   1627a:	d904      	bls.n	16286 <sym_XOOTGCSEAKA3PUKZW3QYB4DCVC2FKUP2TS5AZ5Q+0x10e>
   1627c:	f640 4178 	movw	r1, #3192	; 0xc78
   16280:	2039      	movs	r0, #57	; 0x39
   16282:	f7f9 feaf 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   16286:	e8bd 8ffe 	ldmia.w	sp!, {r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
   1628a:	0000      	.short	0x0000
   1628c:	20000200 	.word	0x20000200

00016290 <sym_P35ZNYRPUOIDHAE32RQYT4RWXL5RC6UIZKLHPUQ>:
   16290:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   16294:	b088      	sub	sp, #32
   16296:	460c      	mov	r4, r1
   16298:	4606      	mov	r6, r0
   1629a:	f003 ff4c 	bl	1a136 <sym_WGJLFS2PDN6RZG7JWUITZ3W5MGJYYXFXIKI3GGQ>
   1629e:	b198      	cbz	r0, 162c8 <sym_P35ZNYRPUOIDHAE32RQYT4RWXL5RC6UIZKLHPUQ+0x38>
   162a0:	4630      	mov	r0, r6
   162a2:	f003 ff3b 	bl	1a11c <sym_XRU76NANM3C4EMKWQU3DF6CELSRNDV6766IKPJI>
   162a6:	b130      	cbz	r0, 162b6 <sym_P35ZNYRPUOIDHAE32RQYT4RWXL5RC6UIZKLHPUQ+0x26>
   162a8:	f8b4 1001 	ldrh.w	r1, [r4, #1]
   162ac:	2012      	movs	r0, #18
   162ae:	2900      	cmp	r1, #0
   162b0:	d00b      	beq.n	162ca <sym_P35ZNYRPUOIDHAE32RQYT4RWXL5RC6UIZKLHPUQ+0x3a>
   162b2:	2980      	cmp	r1, #128	; 0x80
   162b4:	d809      	bhi.n	162ca <sym_P35ZNYRPUOIDHAE32RQYT4RWXL5RC6UIZKLHPUQ+0x3a>
   162b6:	4630      	mov	r0, r6
   162b8:	f003 ff1f 	bl	1a0fa <sym_JWG2K5Z2IDS7IGZ34EUMCNHIOV34425FH263YQQ>
   162bc:	b140      	cbz	r0, 162d0 <sym_P35ZNYRPUOIDHAE32RQYT4RWXL5RC6UIZKLHPUQ+0x40>
   162be:	4630      	mov	r0, r6
   162c0:	f003 fe97 	bl	19ff2 <sym_NFQK2HO6DBYRYVUCFLRI766EKAAKCM57FJRRS5Y>
   162c4:	b130      	cbz	r0, 162d4 <sym_P35ZNYRPUOIDHAE32RQYT4RWXL5RC6UIZKLHPUQ+0x44>
   162c6:	e009      	b.n	162dc <sym_P35ZNYRPUOIDHAE32RQYT4RWXL5RC6UIZKLHPUQ+0x4c>
   162c8:	2042      	movs	r0, #66	; 0x42
   162ca:	b008      	add	sp, #32
   162cc:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
   162d0:	200c      	movs	r0, #12
   162d2:	e7fa      	b.n	162ca <sym_P35ZNYRPUOIDHAE32RQYT4RWXL5RC6UIZKLHPUQ+0x3a>
   162d4:	4630      	mov	r0, r6
   162d6:	f003 ff1b 	bl	1a110 <sym_TPWVJBQKX2TXZDZ4IZ6XDJYVEDFBPIX3TMZMRCQ>
   162da:	b3a8      	cbz	r0, 16348 <sym_P35ZNYRPUOIDHAE32RQYT4RWXL5RC6UIZKLHPUQ+0xb8>
   162dc:	4630      	mov	r0, r6
   162de:	f004 f8f2 	bl	1a4c6 <sym_GWLFBYMUVMRXAWJAYXMEGM7D57QYGUJF3J77TCA>
   162e2:	2800      	cmp	r0, #0
   162e4:	d1f4      	bne.n	162d0 <sym_P35ZNYRPUOIDHAE32RQYT4RWXL5RC6UIZKLHPUQ+0x40>
   162e6:	4630      	mov	r0, r6
   162e8:	f003 fe9e 	bl	1a028 <sym_OAGVEJLAHKQB2YTTUDIS6TDHXZIVWZXKUMPIBHQ>
   162ec:	2800      	cmp	r0, #0
   162ee:	d1ef      	bne.n	162d0 <sym_P35ZNYRPUOIDHAE32RQYT4RWXL5RC6UIZKLHPUQ+0x40>
   162f0:	4630      	mov	r0, r6
   162f2:	f7fc f97b 	bl	125ec <sym_JIJASGQH4XEEPZL7D35VQHVPKKLANGDBS2M46NQ>
   162f6:	f8b4 0001 	ldrh.w	r0, [r4, #1]
   162fa:	f242 7110 	movw	r1, #10000	; 0x2710
   162fe:	fb00 f801 	mul.w	r8, r0, r1
   16302:	78e1      	ldrb	r1, [r4, #3]
   16304:	4630      	mov	r0, r6
   16306:	f003 feef 	bl	1a0e8 <sym_DG6VHZEFRVR44ESTRZM42ZEBJG4KXT7IVJESA4Y>
   1630a:	4630      	mov	r0, r6
   1630c:	f003 ff02 	bl	1a114 <sym_UEZ3FVWFJ5XVLQBVVAHW7UTXVCC77F7ZYGOMLTQ>
   16310:	b1e8      	cbz	r0, 1634e <sym_P35ZNYRPUOIDHAE32RQYT4RWXL5RC6UIZKLHPUQ+0xbe>
   16312:	2200      	movs	r2, #0
   16314:	4611      	mov	r1, r2
   16316:	a801      	add	r0, sp, #4
   16318:	f7fa f8d0 	bl	104bc <sym_DMJHGENWVWA7ILXIIOOHU6SYMMXUDCUFUUBACLQ>
   1631c:	0004      	movs	r4, r0
   1631e:	d06a      	beq.n	163f6 <sym_P35ZNYRPUOIDHAE32RQYT4RWXL5RC6UIZKLHPUQ+0x166>
   16320:	2100      	movs	r1, #0
   16322:	f7fb fda5 	bl	11e70 <sym_4NT3PFFI5Z6RN57T2HW54HJZ23JEQUTUQPJLJGI>
   16326:	f8bd 0004 	ldrh.w	r0, [sp, #4]
   1632a:	8020      	strh	r0, [r4, #0]
   1632c:	4621      	mov	r1, r4
   1632e:	4630      	mov	r0, r6
   16330:	f003 ff14 	bl	1a15c <sym_4FKJZF4AXR7RHM7IPPZMVUWU7W6MFHLX726TPNY>
   16334:	f005 fb74 	bl	1ba20 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x30e>
   16338:	4d3a      	ldr	r5, [pc, #232]	; (16424 <sym_P35ZNYRPUOIDHAE32RQYT4RWXL5RC6UIZKLHPUQ+0x194>)
   1633a:	2800      	cmp	r0, #0
   1633c:	f104 002c 	add.w	r0, r4, #44	; 0x2c
   16340:	d00f      	beq.n	16362 <sym_P35ZNYRPUOIDHAE32RQYT4RWXL5RC6UIZKLHPUQ+0xd2>
   16342:	88aa      	ldrh	r2, [r5, #4]
   16344:	88e9      	ldrh	r1, [r5, #6]
   16346:	e00e      	b.n	16366 <sym_P35ZNYRPUOIDHAE32RQYT4RWXL5RC6UIZKLHPUQ+0xd6>
   16348:	e7ff      	b.n	1634a <sym_P35ZNYRPUOIDHAE32RQYT4RWXL5RC6UIZKLHPUQ+0xba>
   1634a:	2012      	movs	r0, #18
   1634c:	e7bd      	b.n	162ca <sym_P35ZNYRPUOIDHAE32RQYT4RWXL5RC6UIZKLHPUQ+0x3a>
   1634e:	4642      	mov	r2, r8
   16350:	2100      	movs	r1, #0
   16352:	4630      	mov	r0, r6
   16354:	f7fd f89a 	bl	1348c <sym_5AXOP4FMWSDQG27BL6BIS5GAVXQZMPGL37SAGQA>
   16358:	2800      	cmp	r0, #0
   1635a:	d0b6      	beq.n	162ca <sym_P35ZNYRPUOIDHAE32RQYT4RWXL5RC6UIZKLHPUQ+0x3a>
   1635c:	f241 413b 	movw	r1, #5179	; 0x143b
   16360:	e053      	b.n	1640a <sym_P35ZNYRPUOIDHAE32RQYT4RWXL5RC6UIZKLHPUQ+0x17a>
   16362:	221b      	movs	r2, #27
   16364:	4611      	mov	r1, r2
   16366:	84c2      	strh	r2, [r0, #38]	; 0x26
   16368:	8501      	strh	r1, [r0, #40]	; 0x28
   1636a:	68a8      	ldr	r0, [r5, #8]
   1636c:	62e0      	str	r0, [r4, #44]	; 0x2c
   1636e:	f641 574c 	movw	r7, #7500	; 0x1d4c
   16372:	4630      	mov	r0, r6
   16374:	f003 fed6 	bl	1a124 <sym_BDDELQSYWHVCCHSF6HGFFAORZOC56R54KIF45KY>
   16378:	b910      	cbnz	r0, 16380 <sym_P35ZNYRPUOIDHAE32RQYT4RWXL5RC6UIZKLHPUQ+0xf0>
   1637a:	4630      	mov	r0, r6
   1637c:	f003 feec 	bl	1a158 <sym_4HDCBJCT2JOHNORERPDEH2A3V47FOX6NCTAKLUA>
   16380:	60e7      	str	r7, [r4, #12]
   16382:	8821      	ldrh	r1, [r4, #0]
   16384:	f8ad 1008 	strh.w	r1, [sp, #8]
   16388:	7ca9      	ldrb	r1, [r5, #18]
   1638a:	f88d 100a 	strb.w	r1, [sp, #10]
   1638e:	7ce9      	ldrb	r1, [r5, #19]
   16390:	f88d 100b 	strb.w	r1, [sp, #11]
   16394:	8aa9      	ldrh	r1, [r5, #20]
   16396:	f8ad 100c 	strh.w	r1, [sp, #12]
   1639a:	a905      	add	r1, sp, #20
   1639c:	9100      	str	r1, [sp, #0]
   1639e:	2001      	movs	r0, #1
   163a0:	ab04      	add	r3, sp, #16
   163a2:	aa02      	add	r2, sp, #8
   163a4:	4621      	mov	r1, r4
   163a6:	f005 fafc 	bl	1b9a2 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x290>
   163aa:	b140      	cbz	r0, 163be <sym_P35ZNYRPUOIDHAE32RQYT4RWXL5RC6UIZKLHPUQ+0x12e>
   163ac:	2100      	movs	r1, #0
   163ae:	f8bd 0004 	ldrh.w	r0, [sp, #4]
   163b2:	f7fa f8ad 	bl	10510 <sym_4AWF7EXI3MMHUULTY73E756U3IY5DEXOZ265MZY>
   163b6:	b1f0      	cbz	r0, 163f6 <sym_P35ZNYRPUOIDHAE32RQYT4RWXL5RC6UIZKLHPUQ+0x166>
   163b8:	f241 4187 	movw	r1, #5255	; 0x1487
   163bc:	e025      	b.n	1640a <sym_P35ZNYRPUOIDHAE32RQYT4RWXL5RC6UIZKLHPUQ+0x17a>
   163be:	f89d 0010 	ldrb.w	r0, [sp, #16]
   163c2:	f88d 0018 	strb.w	r0, [sp, #24]
   163c6:	f89d 0014 	ldrb.w	r0, [sp, #20]
   163ca:	f88d 0019 	strb.w	r0, [sp, #25]
   163ce:	f8bd 000c 	ldrh.w	r0, [sp, #12]
   163d2:	f8ad 001a 	strh.w	r0, [sp, #26]
   163d6:	a906      	add	r1, sp, #24
   163d8:	4620      	mov	r0, r4
   163da:	f003 f988 	bl	196ee <sym_6NROXJNXJONASXBRH4ZGPEEQ42PSH3YLRTC74GQ>
   163de:	78e8      	ldrb	r0, [r5, #3]
   163e0:	9000      	str	r0, [sp, #0]
   163e2:	78ab      	ldrb	r3, [r5, #2]
   163e4:	88ea      	ldrh	r2, [r5, #6]
   163e6:	88a9      	ldrh	r1, [r5, #4]
   163e8:	8820      	ldrh	r0, [r4, #0]
   163ea:	f7fa f95d 	bl	106a8 <sym_24NU2MJKHN4R2Z7HXHMPDWTTDYSB32VL6HEQPZA>
   163ee:	b120      	cbz	r0, 163fa <sym_P35ZNYRPUOIDHAE32RQYT4RWXL5RC6UIZKLHPUQ+0x16a>
   163f0:	f241 4192 	movw	r1, #5266	; 0x1492
   163f4:	e009      	b.n	1640a <sym_P35ZNYRPUOIDHAE32RQYT4RWXL5RC6UIZKLHPUQ+0x17a>
   163f6:	2009      	movs	r0, #9
   163f8:	e767      	b.n	162ca <sym_P35ZNYRPUOIDHAE32RQYT4RWXL5RC6UIZKLHPUQ+0x3a>
   163fa:	4642      	mov	r2, r8
   163fc:	4621      	mov	r1, r4
   163fe:	4630      	mov	r0, r6
   16400:	f7fd f844 	bl	1348c <sym_5AXOP4FMWSDQG27BL6BIS5GAVXQZMPGL37SAGQA>
   16404:	b120      	cbz	r0, 16410 <sym_P35ZNYRPUOIDHAE32RQYT4RWXL5RC6UIZKLHPUQ+0x180>
   16406:	f241 4194 	movw	r1, #5268	; 0x1494
   1640a:	2039      	movs	r0, #57	; 0x39
   1640c:	f7f9 fdea 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   16410:	4805      	ldr	r0, [pc, #20]	; (16428 <sym_P35ZNYRPUOIDHAE32RQYT4RWXL5RC6UIZKLHPUQ+0x198>)
   16412:	6843      	ldr	r3, [r0, #4]
   16414:	b123      	cbz	r3, 16420 <sym_P35ZNYRPUOIDHAE32RQYT4RWXL5RC6UIZKLHPUQ+0x190>
   16416:	2200      	movs	r2, #0
   16418:	f504 71d2 	add.w	r1, r4, #420	; 0x1a4
   1641c:	4620      	mov	r0, r4
   1641e:	4798      	blx	r3
   16420:	2000      	movs	r0, #0
   16422:	e752      	b.n	162ca <sym_P35ZNYRPUOIDHAE32RQYT4RWXL5RC6UIZKLHPUQ+0x3a>
   16424:	20000f88 	.word	0x20000f88
   16428:	200001f8 	.word	0x200001f8
   1642c:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   16430:	b088      	sub	sp, #32
   16432:	4604      	mov	r4, r0
   16434:	8800      	ldrh	r0, [r0, #0]
   16436:	a906      	add	r1, sp, #24
   16438:	f003 f89a 	bl	19570 <sym_UHWWEFDYCEMO6BV2Q3GVLMFC37EIDJEWGQC2XUA>
   1643c:	2800      	cmp	r0, #0
   1643e:	d147      	bne.n	164d0 <sym_P35ZNYRPUOIDHAE32RQYT4RWXL5RC6UIZKLHPUQ+0x240>
   16440:	9807      	ldr	r0, [sp, #28]
   16442:	2700      	movs	r7, #0
   16444:	f890 11e8 	ldrb.w	r1, [r0, #488]	; 0x1e8
   16448:	f88d 1008 	strb.w	r1, [sp, #8]
   1644c:	9902      	ldr	r1, [sp, #8]
   1644e:	9102      	str	r1, [sp, #8]
   16450:	f89d 1008 	ldrb.w	r1, [sp, #8]
   16454:	f88d 100c 	strb.w	r1, [sp, #12]
   16458:	f890 107f 	ldrb.w	r1, [r0, #127]	; 0x7f
   1645c:	3070      	adds	r0, #112	; 0x70
   1645e:	0689      	lsls	r1, r1, #26
   16460:	d502      	bpl.n	16468 <sym_P35ZNYRPUOIDHAE32RQYT4RWXL5RC6UIZKLHPUQ+0x1d8>
   16462:	f89d 100c 	ldrb.w	r1, [sp, #12]
   16466:	b149      	cbz	r1, 1647c <sym_P35ZNYRPUOIDHAE32RQYT4RWXL5RC6UIZKLHPUQ+0x1ec>
   16468:	f05f 0100 	movs.w	r1, #0
   1646c:	f88d 1004 	strb.w	r1, [sp, #4]
   16470:	2105      	movs	r1, #5
   16472:	304c      	adds	r0, #76	; 0x4c
   16474:	f004 fbf4 	bl	1ac60 <sym_IYZQNCOB4T4XO27DREWRIWJFVHVS355NEDBEGEQ+0x78>
   16478:	b110      	cbz	r0, 16480 <sym_P35ZNYRPUOIDHAE32RQYT4RWXL5RC6UIZKLHPUQ+0x1f0>
   1647a:	e004      	b.n	16486 <sym_P35ZNYRPUOIDHAE32RQYT4RWXL5RC6UIZKLHPUQ+0x1f6>
   1647c:	2101      	movs	r1, #1
   1647e:	e7f5      	b.n	1646c <sym_P35ZNYRPUOIDHAE32RQYT4RWXL5RC6UIZKLHPUQ+0x1dc>
   16480:	f89d 0004 	ldrb.w	r0, [sp, #4]
   16484:	b318      	cbz	r0, 164ce <sym_P35ZNYRPUOIDHAE32RQYT4RWXL5RC6UIZKLHPUQ+0x23e>
   16486:	8921      	ldrh	r1, [r4, #8]
   16488:	88e0      	ldrh	r0, [r4, #6]
   1648a:	f005 fa3f 	bl	1b90c <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x1fa>
   1648e:	2800      	cmp	r0, #0
   16490:	d11e      	bne.n	164d0 <sym_P35ZNYRPUOIDHAE32RQYT4RWXL5RC6UIZKLHPUQ+0x240>
   16492:	88a1      	ldrh	r1, [r4, #4]
   16494:	8860      	ldrh	r0, [r4, #2]
   16496:	f005 fa39 	bl	1b90c <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x1fa>
   1649a:	2800      	cmp	r0, #0
   1649c:	d118      	bne.n	164d0 <sym_P35ZNYRPUOIDHAE32RQYT4RWXL5RC6UIZKLHPUQ+0x240>
   1649e:	8921      	ldrh	r1, [r4, #8]
   164a0:	88e0      	ldrh	r0, [r4, #6]
   164a2:	f005 fa29 	bl	1b8f8 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x1e6>
   164a6:	2800      	cmp	r0, #0
   164a8:	d112      	bne.n	164d0 <sym_P35ZNYRPUOIDHAE32RQYT4RWXL5RC6UIZKLHPUQ+0x240>
   164aa:	88a1      	ldrh	r1, [r4, #4]
   164ac:	8860      	ldrh	r0, [r4, #2]
   164ae:	f005 fa23 	bl	1b8f8 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x1e6>
   164b2:	0006      	movs	r6, r0
   164b4:	d10c      	bne.n	164d0 <sym_P35ZNYRPUOIDHAE32RQYT4RWXL5RC6UIZKLHPUQ+0x240>
   164b6:	9807      	ldr	r0, [sp, #28]
   164b8:	f500 75d2 	add.w	r5, r0, #420	; 0x1a4
   164bc:	f04f 0801 	mov.w	r8, #1
   164c0:	f885 8001 	strb.w	r8, [r5, #1]
   164c4:	f89d 100c 	ldrb.w	r1, [sp, #12]
   164c8:	b129      	cbz	r1, 164d6 <sym_P35ZNYRPUOIDHAE32RQYT4RWXL5RC6UIZKLHPUQ+0x246>
   164ca:	263a      	movs	r6, #58	; 0x3a
   164cc:	e02f      	b.n	1652e <sym_P35ZNYRPUOIDHAE32RQYT4RWXL5RC6UIZKLHPUQ+0x29e>
   164ce:	201a      	movs	r0, #26
   164d0:	b008      	add	sp, #32
   164d2:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
   164d6:	4639      	mov	r1, r7
   164d8:	aa03      	add	r2, sp, #12
   164da:	f005 fa25 	bl	1b928 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x216>
   164de:	8861      	ldrh	r1, [r4, #2]
   164e0:	f8bd 0012 	ldrh.w	r0, [sp, #18]
   164e4:	4281      	cmp	r1, r0
   164e6:	d200      	bcs.n	164ea <sym_P35ZNYRPUOIDHAE32RQYT4RWXL5RC6UIZKLHPUQ+0x25a>
   164e8:	4608      	mov	r0, r1
   164ea:	80e8      	strh	r0, [r5, #6]
   164ec:	88a1      	ldrh	r1, [r4, #4]
   164ee:	f8bd 0014 	ldrh.w	r0, [sp, #20]
   164f2:	4281      	cmp	r1, r0
   164f4:	d200      	bcs.n	164f8 <sym_P35ZNYRPUOIDHAE32RQYT4RWXL5RC6UIZKLHPUQ+0x268>
   164f6:	4608      	mov	r0, r1
   164f8:	8128      	strh	r0, [r5, #8]
   164fa:	88e2      	ldrh	r2, [r4, #6]
   164fc:	f8bd 100e 	ldrh.w	r1, [sp, #14]
   16500:	428a      	cmp	r2, r1
   16502:	d200      	bcs.n	16506 <sym_P35ZNYRPUOIDHAE32RQYT4RWXL5RC6UIZKLHPUQ+0x276>
   16504:	4611      	mov	r1, r2
   16506:	8069      	strh	r1, [r5, #2]
   16508:	8922      	ldrh	r2, [r4, #8]
   1650a:	f8bd 1010 	ldrh.w	r1, [sp, #16]
   1650e:	428a      	cmp	r2, r1
   16510:	d200      	bcs.n	16514 <sym_P35ZNYRPUOIDHAE32RQYT4RWXL5RC6UIZKLHPUQ+0x284>
   16512:	4611      	mov	r1, r2
   16514:	f640 0248 	movw	r2, #2120	; 0x848
   16518:	80a9      	strh	r1, [r5, #4]
   1651a:	4291      	cmp	r1, r2
   1651c:	d300      	bcc.n	16520 <sym_P35ZNYRPUOIDHAE32RQYT4RWXL5RC6UIZKLHPUQ+0x290>
   1651e:	4611      	mov	r1, r2
   16520:	80a9      	strh	r1, [r5, #4]
   16522:	4290      	cmp	r0, r2
   16524:	d200      	bcs.n	16528 <sym_P35ZNYRPUOIDHAE32RQYT4RWXL5RC6UIZKLHPUQ+0x298>
   16526:	4602      	mov	r2, r0
   16528:	812a      	strh	r2, [r5, #8]
   1652a:	f885 8000 	strb.w	r8, [r5]
   1652e:	706f      	strb	r7, [r5, #1]
   16530:	4630      	mov	r0, r6
   16532:	e7cd      	b.n	164d0 <sym_P35ZNYRPUOIDHAE32RQYT4RWXL5RC6UIZKLHPUQ+0x240>
   16534:	b510      	push	{r4, lr}
   16536:	4604      	mov	r4, r0
   16538:	88c1      	ldrh	r1, [r0, #6]
   1653a:	8880      	ldrh	r0, [r0, #4]
   1653c:	f005 f9e6 	bl	1b90c <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x1fa>
   16540:	2800      	cmp	r0, #0
   16542:	d10f      	bne.n	16564 <sym_P35ZNYRPUOIDHAE32RQYT4RWXL5RC6UIZKLHPUQ+0x2d4>
   16544:	8861      	ldrh	r1, [r4, #2]
   16546:	8820      	ldrh	r0, [r4, #0]
   16548:	f005 f9e0 	bl	1b90c <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x1fa>
   1654c:	2800      	cmp	r0, #0
   1654e:	d109      	bne.n	16564 <sym_P35ZNYRPUOIDHAE32RQYT4RWXL5RC6UIZKLHPUQ+0x2d4>
   16550:	4805      	ldr	r0, [pc, #20]	; (16568 <sym_P35ZNYRPUOIDHAE32RQYT4RWXL5RC6UIZKLHPUQ+0x2d8>)
   16552:	88a1      	ldrh	r1, [r4, #4]
   16554:	8081      	strh	r1, [r0, #4]
   16556:	8821      	ldrh	r1, [r4, #0]
   16558:	8001      	strh	r1, [r0, #0]
   1655a:	88e1      	ldrh	r1, [r4, #6]
   1655c:	80c1      	strh	r1, [r0, #6]
   1655e:	8861      	ldrh	r1, [r4, #2]
   16560:	8041      	strh	r1, [r0, #2]
   16562:	2000      	movs	r0, #0
   16564:	bd10      	pop	{r4, pc}
   16566:	0000      	.short	0x0000
   16568:	20000200 	.word	0x20000200
   1656c:	0b12b00b 	.word	0x0b12b00b
   16570:	12b00059 	.word	0x12b00059
   16574:	05060708 	.word	0x05060708
   16578:	00020304 	.word	0x00020304
   1657c:	f0f4f8fc 	.word	0xf0f4f8fc
   16580:	0304d8ec 	.word	0x0304d8ec
   16584:	f4f8fc00 	.word	0xf4f8fc00
   16588:	00d8ecf0 	.word	0x00d8ecf0

0001658c <sym_G4TIIR7KO3GHFF45HCHTIL3RIPRK2LVDQADUYJQ>:
   1658c:	b510      	push	{r4, lr}
   1658e:	f7ff fced 	bl	15f6c <sym_VKBDHCW5KWYFAEZJJBKQNHH4JDURIHHEJCK4SOA>
   16592:	4804      	ldr	r0, [pc, #16]	; (165a4 <sym_G4TIIR7KO3GHFF45HCHTIL3RIPRK2LVDQADUYJQ+0x18>)
   16594:	6840      	ldr	r0, [r0, #4]
   16596:	f005 fb15 	bl	1bbc4 <sym_UIICDNWE37K7Q6PWKEUSWDTQBQP3XQZ5WN3TYNQ+0x3e>
   1659a:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
   1659e:	f005 b851 	b.w	1b644 <sym_5EMU3BEOS6JCQEXTZ5M5LP72YGJNCV3W3R43AOI>
   165a2:	0000      	.short	0x0000
   165a4:	20000208 	.word	0x20000208

000165a8 <sym_4W26TPGCKOCVVRKXQDBKGXGC2Y5LMZXNKS2QITA>:
   165a8:	b510      	push	{r4, lr}
   165aa:	4c07      	ldr	r4, [pc, #28]	; (165c8 <sym_4W26TPGCKOCVVRKXQDBKGXGC2Y5LMZXNKS2QITA+0x20>)
   165ac:	68a0      	ldr	r0, [r4, #8]
   165ae:	f005 fb09 	bl	1bbc4 <sym_UIICDNWE37K7Q6PWKEUSWDTQBQP3XQZ5WN3TYNQ+0x3e>
   165b2:	68e0      	ldr	r0, [r4, #12]
   165b4:	f005 fb06 	bl	1bbc4 <sym_UIICDNWE37K7Q6PWKEUSWDTQBQP3XQZ5WN3TYNQ+0x3e>
   165b8:	f002 ff2e 	bl	19418 <sym_BGPX36PUCNVPV3544HQ5RQFY5WG7CJAFVVBI7AY>
   165bc:	f7fb fa2a 	bl	11a14 <sym_62DUXM4M5AM4URNPP7IKDX3NCPAODBT4BMADGAY>
   165c0:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
   165c4:	f7ff bdae 	b.w	16124 <sym_RGKYP5TXYS27EGT6ZHZS5EDDAZK5QGTWLBOBJEA>
   165c8:	20000208 	.word	0x20000208

000165cc <sym_EANB2LFFCPDZUHTPF7SNNYVWVGG3AE7JVOONSTY>:
   165cc:	b500      	push	{lr}
   165ce:	4905      	ldr	r1, [pc, #20]	; (165e4 <sym_EANB2LFFCPDZUHTPF7SNNYVWVGG3AE7JVOONSTY+0x18>)
   165d0:	4805      	ldr	r0, [pc, #20]	; (165e8 <sym_EANB2LFFCPDZUHTPF7SNNYVWVGG3AE7JVOONSTY+0x1c>)
   165d2:	f005 fad8 	bl	1bb86 <sym_UIICDNWE37K7Q6PWKEUSWDTQBQP3XQZ5WN3TYNQ>
   165d6:	4804      	ldr	r0, [pc, #16]	; (165e8 <sym_EANB2LFFCPDZUHTPF7SNNYVWVGG3AE7JVOONSTY+0x1c>)
   165d8:	4904      	ldr	r1, [pc, #16]	; (165ec <sym_EANB2LFFCPDZUHTPF7SNNYVWVGG3AE7JVOONSTY+0x20>)
   165da:	1d00      	adds	r0, r0, #4
   165dc:	f85d eb04 	ldr.w	lr, [sp], #4
   165e0:	f005 bad1 	b.w	1bb86 <sym_UIICDNWE37K7Q6PWKEUSWDTQBQP3XQZ5WN3TYNQ>
   165e4:	20000218 	.word	0x20000218
   165e8:	2000020c 	.word	0x2000020c
   165ec:	20000220 	.word	0x20000220

000165f0 <sym_BFBDHRTPYGNRMJSAT7WCAPOXBGIVSWF4E5GFHOA>:
   165f0:	b500      	push	{lr}
   165f2:	4908      	ldr	r1, [pc, #32]	; (16614 <sym_BFBDHRTPYGNRMJSAT7WCAPOXBGIVSWF4E5GFHOA+0x24>)
   165f4:	4808      	ldr	r0, [pc, #32]	; (16618 <sym_BFBDHRTPYGNRMJSAT7WCAPOXBGIVSWF4E5GFHOA+0x28>)
   165f6:	f005 fac6 	bl	1bb86 <sym_UIICDNWE37K7Q6PWKEUSWDTQBQP3XQZ5WN3TYNQ>
   165fa:	4807      	ldr	r0, [pc, #28]	; (16618 <sym_BFBDHRTPYGNRMJSAT7WCAPOXBGIVSWF4E5GFHOA+0x28>)
   165fc:	4907      	ldr	r1, [pc, #28]	; (1661c <sym_BFBDHRTPYGNRMJSAT7WCAPOXBGIVSWF4E5GFHOA+0x2c>)
   165fe:	1d00      	adds	r0, r0, #4
   16600:	f005 fac1 	bl	1bb86 <sym_UIICDNWE37K7Q6PWKEUSWDTQBQP3XQZ5WN3TYNQ>
   16604:	4804      	ldr	r0, [pc, #16]	; (16618 <sym_BFBDHRTPYGNRMJSAT7WCAPOXBGIVSWF4E5GFHOA+0x28>)
   16606:	4906      	ldr	r1, [pc, #24]	; (16620 <sym_BFBDHRTPYGNRMJSAT7WCAPOXBGIVSWF4E5GFHOA+0x30>)
   16608:	3008      	adds	r0, #8
   1660a:	f85d eb04 	ldr.w	lr, [sp], #4
   1660e:	f005 baba 	b.w	1bb86 <sym_UIICDNWE37K7Q6PWKEUSWDTQBQP3XQZ5WN3TYNQ>
   16612:	0000      	.short	0x0000
   16614:	20000244 	.word	0x20000244
   16618:	2000020c 	.word	0x2000020c
   1661c:	2000024c 	.word	0x2000024c
   16620:	2000023c 	.word	0x2000023c

00016624 <sym_PRWTRTI5GPQHIT26MFBSSOCWTUYYRLQLJWD2ZOI>:
   16624:	4801      	ldr	r0, [pc, #4]	; (1662c <sym_PRWTRTI5GPQHIT26MFBSSOCWTUYYRLQLJWD2ZOI+0x8>)
   16626:	7800      	ldrb	r0, [r0, #0]
   16628:	4770      	bx	lr
   1662a:	0000      	.short	0x0000
   1662c:	20000208 	.word	0x20000208
   16630:	b510      	push	{r4, lr}
   16632:	f7fc f953 	bl	128dc <sym_BPVIPCP3IMFHHNRASYWRUQPTOXIXQGWP3DTKXWI>
   16636:	f7fc ffbd 	bl	135b4 <sym_2MTQAETLPZUE4ZJFGJBDUADTDDEDQL67CNLDYRY>
   1663a:	4805      	ldr	r0, [pc, #20]	; (16650 <sym_PRWTRTI5GPQHIT26MFBSSOCWTUYYRLQLJWD2ZOI+0x2c>)
   1663c:	f7fc f934 	bl	128a8 <sym_KC3JIKE7HTERE3Q3BXMRUIDPAENUZKVBIDO6ODY>
   16640:	4905      	ldr	r1, [pc, #20]	; (16658 <sym_PRWTRTI5GPQHIT26MFBSSOCWTUYYRLQLJWD2ZOI+0x34>)
   16642:	4804      	ldr	r0, [pc, #16]	; (16654 <sym_PRWTRTI5GPQHIT26MFBSSOCWTUYYRLQLJWD2ZOI+0x30>)
   16644:	6008      	str	r0, [r1, #0]
   16646:	4906      	ldr	r1, [pc, #24]	; (16660 <sym_PRWTRTI5GPQHIT26MFBSSOCWTUYYRLQLJWD2ZOI+0x3c>)
   16648:	4804      	ldr	r0, [pc, #16]	; (1665c <sym_PRWTRTI5GPQHIT26MFBSSOCWTUYYRLQLJWD2ZOI+0x38>)
   1664a:	6008      	str	r0, [r1, #0]
   1664c:	bd10      	pop	{r4, pc}
   1664e:	0000      	.short	0x0000
   16650:	20001411 	.word	0x20001411
   16654:	000126ad 	.word	0x000126ad
   16658:	20000228 	.word	0x20000228
   1665c:	000121e5 	.word	0x000121e5
   16660:	2000022c 	.word	0x2000022c
   16664:	490c      	ldr	r1, [pc, #48]	; (16698 <sym_PRWTRTI5GPQHIT26MFBSSOCWTUYYRLQLJWD2ZOI+0x74>)
   16666:	b510      	push	{r4, lr}
   16668:	2001      	movs	r0, #1
   1666a:	7008      	strb	r0, [r1, #0]
   1666c:	f7fc f966 	bl	1293c <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY>
   16670:	f7fd fcfe 	bl	14070 <sym_FIYSAC63N2FF462LEI76F5US34JKFTAQDSI2LXA>
   16674:	f002 febe 	bl	193f4 <sym_QXKT3PVMDTZRAAU2QNTWO5VOUEZ4NW6TWISREXY>
   16678:	4808      	ldr	r0, [pc, #32]	; (1669c <sym_PRWTRTI5GPQHIT26MFBSSOCWTUYYRLQLJWD2ZOI+0x78>)
   1667a:	f7fa fc2b 	bl	10ed4 <sym_ULQ236TSMK6UJATLJCXSX5JBKSVB4ZM2NNU74PA>
   1667e:	2000      	movs	r0, #0
   16680:	f7f9 fe8c 	bl	1039c <sym_HNCDHITBYWLO4GMOSPKCO7YXRRWIUQ2IKIZ4C5A>
   16684:	4907      	ldr	r1, [pc, #28]	; (166a4 <sym_PRWTRTI5GPQHIT26MFBSSOCWTUYYRLQLJWD2ZOI+0x80>)
   16686:	4806      	ldr	r0, [pc, #24]	; (166a0 <sym_PRWTRTI5GPQHIT26MFBSSOCWTUYYRLQLJWD2ZOI+0x7c>)
   16688:	6008      	str	r0, [r1, #0]
   1668a:	4908      	ldr	r1, [pc, #32]	; (166ac <sym_PRWTRTI5GPQHIT26MFBSSOCWTUYYRLQLJWD2ZOI+0x88>)
   1668c:	4806      	ldr	r0, [pc, #24]	; (166a8 <sym_PRWTRTI5GPQHIT26MFBSSOCWTUYYRLQLJWD2ZOI+0x84>)
   1668e:	6008      	str	r0, [r1, #0]
   16690:	4908      	ldr	r1, [pc, #32]	; (166b4 <sym_PRWTRTI5GPQHIT26MFBSSOCWTUYYRLQLJWD2ZOI+0x90>)
   16692:	4807      	ldr	r0, [pc, #28]	; (166b0 <sym_PRWTRTI5GPQHIT26MFBSSOCWTUYYRLQLJWD2ZOI+0x8c>)
   16694:	6008      	str	r0, [r1, #0]
   16696:	bd10      	pop	{r4, pc}
   16698:	20000208 	.word	0x20000208
   1669c:	20001411 	.word	0x20001411
   166a0:	00010e81 	.word	0x00010e81
   166a4:	20000238 	.word	0x20000238
   166a8:	00013df1 	.word	0x00013df1
   166ac:	20000234 	.word	0x20000234
   166b0:	00012259 	.word	0x00012259
   166b4:	20000230 	.word	0x20000230

000166b8 <sym_N6TOG3AODPPFNS6LXFKKIADNGIMUMBS5BXPEFOY>:
   166b8:	2101      	movs	r1, #1
   166ba:	4081      	lsls	r1, r0
   166bc:	4802      	ldr	r0, [pc, #8]	; (166c8 <sym_N6TOG3AODPPFNS6LXFKKIADNGIMUMBS5BXPEFOY+0x10>)
   166be:	6802      	ldr	r2, [r0, #0]
   166c0:	4311      	orrs	r1, r2
   166c2:	6001      	str	r1, [r0, #0]
   166c4:	4770      	bx	lr
   166c6:	0000      	.short	0x0000
   166c8:	20000254 	.word	0x20000254

000166cc <sym_PBZPB3PSJJYSQQW7TH2XDGNLD2UYSZR6YJ4ZZNQ>:
   166cc:	4801      	ldr	r0, [pc, #4]	; (166d4 <sym_PBZPB3PSJJYSQQW7TH2XDGNLD2UYSZR6YJ4ZZNQ+0x8>)
   166ce:	6800      	ldr	r0, [r0, #0]
   166d0:	4770      	bx	lr
   166d2:	0000      	.short	0x0000
   166d4:	20000254 	.word	0x20000254

000166d8 <sym_HA7EOSELAQYVMG5UXMJGQLLFEIRQPB7MNOSYOXQ>:
   166d8:	4803      	ldr	r0, [pc, #12]	; (166e8 <sym_HA7EOSELAQYVMG5UXMJGQLLFEIRQPB7MNOSYOXQ+0x10>)
   166da:	8800      	ldrh	r0, [r0, #0]
   166dc:	f3c0 2000 	ubfx	r0, r0, #8, #1
   166e0:	0040      	lsls	r0, r0, #1
   166e2:	1c40      	adds	r0, r0, #1
   166e4:	4770      	bx	lr
   166e6:	0000      	.short	0x0000
   166e8:	20000254 	.word	0x20000254

000166ec <sym_MJMICEV3AHUJUDNI6JLXYNXCJNL4PTPUQLXISYA>:
   166ec:	b510      	push	{r4, lr}
   166ee:	f7f9 f8ed 	bl	f8cc <sym_ETIE3PCEXQYLK2GIVZENQ6V7PLBRV57MB7BDMNY>
   166f2:	2200      	movs	r2, #0
   166f4:	4b08      	ldr	r3, [pc, #32]	; (16718 <sym_MJMICEV3AHUJUDNI6JLXYNXCJNL4PTPUQLXISYA+0x2c>)
   166f6:	4611      	mov	r1, r2
   166f8:	f833 4021 	ldrh.w	r4, [r3, r1, lsl #2]
   166fc:	4284      	cmp	r4, r0
   166fe:	d303      	bcc.n	16708 <sym_MJMICEV3AHUJUDNI6JLXYNXCJNL4PTPUQLXISYA+0x1c>
   16700:	eb03 0081 	add.w	r0, r3, r1, lsl #2
   16704:	7882      	ldrb	r2, [r0, #2]
   16706:	e003      	b.n	16710 <sym_MJMICEV3AHUJUDNI6JLXYNXCJNL4PTPUQLXISYA+0x24>
   16708:	1c49      	adds	r1, r1, #1
   1670a:	b2c9      	uxtb	r1, r1
   1670c:	290c      	cmp	r1, #12
   1670e:	d3f3      	bcc.n	166f8 <sym_MJMICEV3AHUJUDNI6JLXYNXCJNL4PTPUQLXISYA+0xc>
   16710:	4802      	ldr	r0, [pc, #8]	; (1671c <sym_MJMICEV3AHUJUDNI6JLXYNXCJNL4PTPUQLXISYA+0x30>)
   16712:	7002      	strb	r2, [r0, #0]
   16714:	bd10      	pop	{r4, pc}
   16716:	0000      	.short	0x0000
   16718:	0001bc16 	.word	0x0001bc16
   1671c:	2000029c 	.word	0x2000029c

00016720 <sym_MDF364N4PQDEA5ZGP5CB3ZDZVZM5Q32KSEZZ5HI>:
   16720:	b570      	push	{r4, r5, r6, lr}
   16722:	4605      	mov	r5, r0
   16724:	4616      	mov	r6, r2
   16726:	460c      	mov	r4, r1
   16728:	2002      	movs	r0, #2
   1672a:	f000 f9f9 	bl	16b20 <sym_6Q45YYTUN2KDQ5V5UGE3T2LTI5FNGX6WIJYLIDI>
   1672e:	4906      	ldr	r1, [pc, #24]	; (16748 <sym_MDF364N4PQDEA5ZGP5CB3ZDZVZM5Q32KSEZZ5HI+0x28>)
   16730:	2001      	movs	r0, #1
   16732:	1ef6      	subs	r6, r6, #3
   16734:	7008      	strb	r0, [r1, #0]
   16736:	4805      	ldr	r0, [pc, #20]	; (1674c <sym_MDF364N4PQDEA5ZGP5CB3ZDZVZM5Q32KSEZZ5HI+0x2c>)
   16738:	6006      	str	r6, [r0, #0]
   1673a:	4804      	ldr	r0, [pc, #16]	; (1674c <sym_MDF364N4PQDEA5ZGP5CB3ZDZVZM5Q32KSEZZ5HI+0x2c>)
   1673c:	3808      	subs	r0, #8
   1673e:	6005      	str	r5, [r0, #0]
   16740:	1f00      	subs	r0, r0, #4
   16742:	6004      	str	r4, [r0, #0]
   16744:	bd70      	pop	{r4, r5, r6, pc}
   16746:	0000      	.short	0x0000
   16748:	2000029d 	.word	0x2000029d
   1674c:	4000f510 	.word	0x4000f510

00016750 <sym_5DEPI2OGSPXE5OVFBPVFPSPYPRYUQ54QVVXIKNI>:
   16750:	b510      	push	{r4, lr}
   16752:	4c0c      	ldr	r4, [pc, #48]	; (16784 <sym_5DEPI2OGSPXE5OVFBPVFPSPYPRYUQ54QVVXIKNI+0x34>)
   16754:	7820      	ldrb	r0, [r4, #0]
   16756:	b180      	cbz	r0, 1677a <sym_5DEPI2OGSPXE5OVFBPVFPSPYPRYUQ54QVVXIKNI+0x2a>
   16758:	490b      	ldr	r1, [pc, #44]	; (16788 <sym_5DEPI2OGSPXE5OVFBPVFPSPYPRYUQ54QVVXIKNI+0x38>)
   1675a:	f44f 0000 	mov.w	r0, #8388608	; 0x800000
   1675e:	6008      	str	r0, [r1, #0]
   16760:	f000 f86a 	bl	16838 <sym_KZ5CVONZGMGIGNMI7YD6HLN3FXAAJK6OMEJW6BQ+0x48>
   16764:	2100      	movs	r1, #0
   16766:	b120      	cbz	r0, 16772 <sym_5DEPI2OGSPXE5OVFBPVFPSPYPRYUQ54QVVXIKNI+0x22>
   16768:	2001      	movs	r0, #1
   1676a:	7060      	strb	r0, [r4, #1]
   1676c:	4807      	ldr	r0, [pc, #28]	; (1678c <sym_5DEPI2OGSPXE5OVFBPVFPSPYPRYUQ54QVVXIKNI+0x3c>)
   1676e:	6800      	ldr	r0, [r0, #0]
   16770:	e001      	b.n	16776 <sym_5DEPI2OGSPXE5OVFBPVFPSPYPRYUQ54QVVXIKNI+0x26>
   16772:	7061      	strb	r1, [r4, #1]
   16774:	2010      	movs	r0, #16
   16776:	70a0      	strb	r0, [r4, #2]
   16778:	7021      	strb	r1, [r4, #0]
   1677a:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
   1677e:	2000      	movs	r0, #0
   16780:	f000 b9ce 	b.w	16b20 <sym_6Q45YYTUN2KDQ5V5UGE3T2LTI5FNGX6WIJYLIDI>
   16784:	2000029d 	.word	0x2000029d
   16788:	4001f508 	.word	0x4001f508
   1678c:	4000f400 	.word	0x4000f400

00016790 <sym_XCEN5K7VEI2CAO42XW7S3FKM3HKMOCDCUFDX25Y>:
   16790:	b510      	push	{r4, lr}
   16792:	2002      	movs	r0, #2
   16794:	f000 f9c4 	bl	16b20 <sym_6Q45YYTUN2KDQ5V5UGE3T2LTI5FNGX6WIJYLIDI>
   16798:	4904      	ldr	r1, [pc, #16]	; (167ac <sym_XCEN5K7VEI2CAO42XW7S3FKM3HKMOCDCUFDX25Y+0x1c>)
   1679a:	2001      	movs	r0, #1
   1679c:	7008      	strb	r0, [r1, #0]
   1679e:	f000 f859 	bl	16854 <sym_KZ5CVONZGMGIGNMI7YD6HLN3FXAAJK6OMEJW6BQ+0x64>
   167a2:	4903      	ldr	r1, [pc, #12]	; (167b0 <sym_XCEN5K7VEI2CAO42XW7S3FKM3HKMOCDCUFDX25Y+0x20>)
   167a4:	f44f 0000 	mov.w	r0, #8388608	; 0x800000
   167a8:	6008      	str	r0, [r1, #0]
   167aa:	bd10      	pop	{r4, pc}
   167ac:	2000029d 	.word	0x2000029d
   167b0:	4001f504 	.word	0x4001f504

000167b4 <sym_LOTFHGQTFUFWGX7HOTL4Q2XATGIJRVIMCMOYRMA>:
   167b4:	4803      	ldr	r0, [pc, #12]	; (167c4 <sym_LOTFHGQTFUFWGX7HOTL4Q2XATGIJRVIMCMOYRMA+0x10>)
   167b6:	2100      	movs	r1, #0
   167b8:	7001      	strb	r1, [r0, #0]
   167ba:	7041      	strb	r1, [r0, #1]
   167bc:	2110      	movs	r1, #16
   167be:	7081      	strb	r1, [r0, #2]
   167c0:	4770      	bx	lr
   167c2:	0000      	.short	0x0000
   167c4:	2000029d 	.word	0x2000029d

000167c8 <sym_ZQHB3ANU2DANFLJZLZL5U4SPQ2ZDVUAHI35744Y>:
   167c8:	4807      	ldr	r0, [pc, #28]	; (167e8 <sym_ZQHB3ANU2DANFLJZLZL5U4SPQ2ZDVUAHI35744Y+0x20>)
   167ca:	b510      	push	{r4, lr}
   167cc:	7801      	ldrb	r1, [r0, #0]
   167ce:	b141      	cbz	r1, 167e2 <sym_ZQHB3ANU2DANFLJZLZL5U4SPQ2ZDVUAHI35744Y+0x1a>
   167d0:	f000 f832 	bl	16838 <sym_KZ5CVONZGMGIGNMI7YD6HLN3FXAAJK6OMEJW6BQ+0x48>
   167d4:	b118      	cbz	r0, 167de <sym_ZQHB3ANU2DANFLJZLZL5U4SPQ2ZDVUAHI35744Y+0x16>
   167d6:	4805      	ldr	r0, [pc, #20]	; (167ec <sym_ZQHB3ANU2DANFLJZLZL5U4SPQ2ZDVUAHI35744Y+0x24>)
   167d8:	6800      	ldr	r0, [r0, #0]
   167da:	b2c0      	uxtb	r0, r0
   167dc:	bd10      	pop	{r4, pc}
   167de:	2010      	movs	r0, #16
   167e0:	bd10      	pop	{r4, pc}
   167e2:	7880      	ldrb	r0, [r0, #2]
   167e4:	bd10      	pop	{r4, pc}
   167e6:	0000      	.short	0x0000
   167e8:	2000029d 	.word	0x2000029d
   167ec:	4000f400 	.word	0x4000f400

000167f0 <sym_KZ5CVONZGMGIGNMI7YD6HLN3FXAAJK6OMEJW6BQ>:
   167f0:	4808      	ldr	r0, [pc, #32]	; (16814 <sym_KZ5CVONZGMGIGNMI7YD6HLN3FXAAJK6OMEJW6BQ+0x24>)
   167f2:	b510      	push	{r4, lr}
   167f4:	7801      	ldrb	r1, [r0, #0]
   167f6:	b159      	cbz	r1, 16810 <sym_KZ5CVONZGMGIGNMI7YD6HLN3FXAAJK6OMEJW6BQ+0x20>
   167f8:	4807      	ldr	r0, [pc, #28]	; (16818 <sym_KZ5CVONZGMGIGNMI7YD6HLN3FXAAJK6OMEJW6BQ+0x28>)
   167fa:	f8d0 0100 	ldr.w	r0, [r0, #256]	; 0x100
   167fe:	b128      	cbz	r0, 1680c <sym_KZ5CVONZGMGIGNMI7YD6HLN3FXAAJK6OMEJW6BQ+0x1c>
   16800:	f000 f80c 	bl	1681c <sym_KZ5CVONZGMGIGNMI7YD6HLN3FXAAJK6OMEJW6BQ+0x2c>
   16804:	2800      	cmp	r0, #0
   16806:	d000      	beq.n	1680a <sym_KZ5CVONZGMGIGNMI7YD6HLN3FXAAJK6OMEJW6BQ+0x1a>
   16808:	2001      	movs	r0, #1
   1680a:	bd10      	pop	{r4, pc}
   1680c:	2002      	movs	r0, #2
   1680e:	bd10      	pop	{r4, pc}
   16810:	7840      	ldrb	r0, [r0, #1]
   16812:	bd10      	pop	{r4, pc}
   16814:	2000029d 	.word	0x2000029d
   16818:	4000f000 	.word	0x4000f000
   1681c:	4805      	ldr	r0, [pc, #20]	; (16834 <sym_KZ5CVONZGMGIGNMI7YD6HLN3FXAAJK6OMEJW6BQ+0x44>)
   1681e:	f8d0 1104 	ldr.w	r1, [r0, #260]	; 0x104
   16822:	b111      	cbz	r1, 1682a <sym_KZ5CVONZGMGIGNMI7YD6HLN3FXAAJK6OMEJW6BQ+0x3a>
   16824:	f8d0 0108 	ldr.w	r0, [r0, #264]	; 0x108
   16828:	b108      	cbz	r0, 1682e <sym_KZ5CVONZGMGIGNMI7YD6HLN3FXAAJK6OMEJW6BQ+0x3e>
   1682a:	2000      	movs	r0, #0
   1682c:	4770      	bx	lr
   1682e:	2001      	movs	r0, #1
   16830:	4770      	bx	lr
   16832:	0000      	.short	0x0000
   16834:	4000f000 	.word	0x4000f000
   16838:	4805      	ldr	r0, [pc, #20]	; (16850 <sym_KZ5CVONZGMGIGNMI7YD6HLN3FXAAJK6OMEJW6BQ+0x60>)
   1683a:	b510      	push	{r4, lr}
   1683c:	f8d0 0100 	ldr.w	r0, [r0, #256]	; 0x100
   16840:	b120      	cbz	r0, 1684c <sym_KZ5CVONZGMGIGNMI7YD6HLN3FXAAJK6OMEJW6BQ+0x5c>
   16842:	f7ff ffeb 	bl	1681c <sym_KZ5CVONZGMGIGNMI7YD6HLN3FXAAJK6OMEJW6BQ+0x2c>
   16846:	b108      	cbz	r0, 1684c <sym_KZ5CVONZGMGIGNMI7YD6HLN3FXAAJK6OMEJW6BQ+0x5c>
   16848:	2001      	movs	r0, #1
   1684a:	bd10      	pop	{r4, pc}
   1684c:	2000      	movs	r0, #0
   1684e:	bd10      	pop	{r4, pc}
   16850:	4000f000 	.word	0x4000f000
   16854:	4804      	ldr	r0, [pc, #16]	; (16868 <sym_KZ5CVONZGMGIGNMI7YD6HLN3FXAAJK6OMEJW6BQ+0x78>)
   16856:	2100      	movs	r1, #0
   16858:	f8c0 1100 	str.w	r1, [r0, #256]	; 0x100
   1685c:	f8c0 1104 	str.w	r1, [r0, #260]	; 0x104
   16860:	f8c0 1108 	str.w	r1, [r0, #264]	; 0x108
   16864:	4770      	bx	lr
   16866:	0000      	.short	0x0000
   16868:	4000f000 	.word	0x4000f000

0001686c <sym_VD2RNA2VIHLNDCPSVYBEMTIWUZPQSJTQESN32OQ>:
   1686c:	4a08      	ldr	r2, [pc, #32]	; (16890 <sym_VD2RNA2VIHLNDCPSVYBEMTIWUZPQSJTQESN32OQ+0x24>)
   1686e:	b510      	push	{r4, lr}
   16870:	e9c2 0102 	strd	r0, r1, [r2, #8]
   16874:	4907      	ldr	r1, [pc, #28]	; (16894 <sym_VD2RNA2VIHLNDCPSVYBEMTIWUZPQSJTQESN32OQ+0x28>)
   16876:	4610      	mov	r0, r2
   16878:	f7f9 fa88 	bl	fd8c <mpsl_fem_lna_configuration_set>
   1687c:	2800      	cmp	r0, #0
   1687e:	d005      	beq.n	1688c <sym_VD2RNA2VIHLNDCPSVYBEMTIWUZPQSJTQESN32OQ+0x20>
   16880:	1c40      	adds	r0, r0, #1
   16882:	d003      	beq.n	1688c <sym_VD2RNA2VIHLNDCPSVYBEMTIWUZPQSJTQESN32OQ+0x20>
   16884:	217d      	movs	r1, #125	; 0x7d
   16886:	2040      	movs	r0, #64	; 0x40
   16888:	f7f9 fbac 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   1688c:	bd10      	pop	{r4, pc}
   1688e:	0000      	.short	0x0000
   16890:	20000258 	.word	0x20000258
   16894:	000168c4 	.word	0x000168c4

00016898 <sym_WDGETGVBCYUKUDGN6Q77INXYI367WBVME2GNBIA>:
   16898:	4a08      	ldr	r2, [pc, #32]	; (168bc <sym_WDGETGVBCYUKUDGN6Q77INXYI367WBVME2GNBIA+0x24>)
   1689a:	b510      	push	{r4, lr}
   1689c:	e9c2 0102 	strd	r0, r1, [r2, #8]
   168a0:	4907      	ldr	r1, [pc, #28]	; (168c0 <sym_WDGETGVBCYUKUDGN6Q77INXYI367WBVME2GNBIA+0x28>)
   168a2:	4610      	mov	r0, r2
   168a4:	f7f9 fa7e 	bl	fda4 <mpsl_fem_pa_configuration_set>
   168a8:	2800      	cmp	r0, #0
   168aa:	d005      	beq.n	168b8 <sym_WDGETGVBCYUKUDGN6Q77INXYI367WBVME2GNBIA+0x20>
   168ac:	1c40      	adds	r0, r0, #1
   168ae:	d003      	beq.n	168b8 <sym_WDGETGVBCYUKUDGN6Q77INXYI367WBVME2GNBIA+0x20>
   168b0:	2172      	movs	r1, #114	; 0x72
   168b2:	2040      	movs	r0, #64	; 0x40
   168b4:	f7f9 fb96 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   168b8:	bd10      	pop	{r4, pc}
   168ba:	0000      	.short	0x0000
   168bc:	20000258 	.word	0x20000258
   168c0:	000168c4 	.word	0x000168c4
   168c4:	00000001 	.word	0x00000001
   168c8:	40001110 	.word	0x40001110
	...

000168dc <sym_22JCIW4C6LSZ3V42YCFUILVJXIYNO6LT32CM3KA>:
   168dc:	4a07      	ldr	r2, [pc, #28]	; (168fc <sym_22JCIW4C6LSZ3V42YCFUILVJXIYNO6LT32CM3KA+0x20>)
   168de:	b510      	push	{r4, lr}
   168e0:	7853      	ldrb	r3, [r2, #1]
   168e2:	b133      	cbz	r3, 168f2 <sym_22JCIW4C6LSZ3V42YCFUILVJXIYNO6LT32CM3KA+0x16>
   168e4:	4b06      	ldr	r3, [pc, #24]	; (16900 <sym_22JCIW4C6LSZ3V42YCFUILVJXIYNO6LT32CM3KA+0x24>)
   168e6:	6019      	str	r1, [r3, #0]
   168e8:	1d19      	adds	r1, r3, #4
   168ea:	6008      	str	r0, [r1, #0]
   168ec:	2001      	movs	r0, #1
   168ee:	7090      	strb	r0, [r2, #2]
   168f0:	bd10      	pop	{r4, pc}
   168f2:	21ba      	movs	r1, #186	; 0xba
   168f4:	203c      	movs	r0, #60	; 0x3c
   168f6:	f7f9 fb75 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   168fa:	0000      	.short	0x0000
   168fc:	200002a0 	.word	0x200002a0
   16900:	4000f50c 	.word	0x4000f50c

00016904 <sym_4I2C6AYYQEX2MYPQ34VVID6NN2QN3BJ3ZHVD6VY>:
   16904:	4809      	ldr	r0, [pc, #36]	; (1692c <sym_4I2C6AYYQEX2MYPQ34VVID6NN2QN3BJ3ZHVD6VY+0x28>)
   16906:	b510      	push	{r4, lr}
   16908:	7801      	ldrb	r1, [r0, #0]
   1690a:	b151      	cbz	r1, 16922 <sym_4I2C6AYYQEX2MYPQ34VVID6NN2QN3BJ3ZHVD6VY+0x1e>
   1690c:	7880      	ldrb	r0, [r0, #2]
   1690e:	b140      	cbz	r0, 16922 <sym_4I2C6AYYQEX2MYPQ34VVID6NN2QN3BJ3ZHVD6VY+0x1e>
   16910:	4907      	ldr	r1, [pc, #28]	; (16930 <sym_4I2C6AYYQEX2MYPQ34VVID6NN2QN3BJ3ZHVD6VY+0x2c>)
   16912:	2000      	movs	r0, #0
   16914:	f8c1 0104 	str.w	r0, [r1, #260]	; 0x104
   16918:	4906      	ldr	r1, [pc, #24]	; (16934 <sym_4I2C6AYYQEX2MYPQ34VVID6NN2QN3BJ3ZHVD6VY+0x30>)
   1691a:	f04f 7000 	mov.w	r0, #33554432	; 0x2000000
   1691e:	6008      	str	r0, [r1, #0]
   16920:	bd10      	pop	{r4, pc}
   16922:	21e1      	movs	r1, #225	; 0xe1
   16924:	203c      	movs	r0, #60	; 0x3c
   16926:	f7f9 fb5d 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   1692a:	0000      	.short	0x0000
   1692c:	200002a0 	.word	0x200002a0
   16930:	4000f000 	.word	0x4000f000
   16934:	4001f504 	.word	0x4001f504

00016938 <sym_VIDE7XVSTT4HHX2MQJX6VUVABAKVNGIPRTLRLEQ>:
   16938:	b570      	push	{r4, r5, r6, lr}
   1693a:	4c0b      	ldr	r4, [pc, #44]	; (16968 <sym_VIDE7XVSTT4HHX2MQJX6VUVABAKVNGIPRTLRLEQ+0x30>)
   1693c:	2500      	movs	r5, #0
   1693e:	7820      	ldrb	r0, [r4, #0]
   16940:	b158      	cbz	r0, 1695a <sym_VIDE7XVSTT4HHX2MQJX6VUVABAKVNGIPRTLRLEQ+0x22>
   16942:	f000 f8e5 	bl	16b10 <sym_FYMYD324TMLKJZE62CZN4WTXFSPL6FPU2SZH6CI+0x78>
   16946:	4809      	ldr	r0, [pc, #36]	; (1696c <sym_VIDE7XVSTT4HHX2MQJX6VUVABAKVNGIPRTLRLEQ+0x34>)
   16948:	f8d0 0104 	ldr.w	r0, [r0, #260]	; 0x104
   1694c:	b118      	cbz	r0, 16956 <sym_VIDE7XVSTT4HHX2MQJX6VUVABAKVNGIPRTLRLEQ+0x1e>
   1694e:	4808      	ldr	r0, [pc, #32]	; (16970 <sym_VIDE7XVSTT4HHX2MQJX6VUVABAKVNGIPRTLRLEQ+0x38>)
   16950:	6800      	ldr	r0, [r0, #0]
   16952:	70e0      	strb	r0, [r4, #3]
   16954:	e000      	b.n	16958 <sym_VIDE7XVSTT4HHX2MQJX6VUVABAKVNGIPRTLRLEQ+0x20>
   16956:	70e5      	strb	r5, [r4, #3]
   16958:	7025      	strb	r5, [r4, #0]
   1695a:	2000      	movs	r0, #0
   1695c:	f000 f8e0 	bl	16b20 <sym_6Q45YYTUN2KDQ5V5UGE3T2LTI5FNGX6WIJYLIDI>
   16960:	7065      	strb	r5, [r4, #1]
   16962:	70a5      	strb	r5, [r4, #2]
   16964:	bd70      	pop	{r4, r5, r6, pc}
   16966:	0000      	.short	0x0000
   16968:	200002a0 	.word	0x200002a0
   1696c:	4000f000 	.word	0x4000f000
   16970:	4000f400 	.word	0x4000f400

00016974 <sym_DIQ77CQKBNLT2RKVUGPP4YVKDKLZF55UNZMI3OI>:
   16974:	480d      	ldr	r0, [pc, #52]	; (169ac <sym_DIQ77CQKBNLT2RKVUGPP4YVKDKLZF55UNZMI3OI+0x38>)
   16976:	b510      	push	{r4, lr}
   16978:	7801      	ldrb	r1, [r0, #0]
   1697a:	b191      	cbz	r1, 169a2 <sym_DIQ77CQKBNLT2RKVUGPP4YVKDKLZF55UNZMI3OI+0x2e>
   1697c:	7880      	ldrb	r0, [r0, #2]
   1697e:	b180      	cbz	r0, 169a2 <sym_DIQ77CQKBNLT2RKVUGPP4YVKDKLZF55UNZMI3OI+0x2e>
   16980:	490b      	ldr	r1, [pc, #44]	; (169b0 <sym_DIQ77CQKBNLT2RKVUGPP4YVKDKLZF55UNZMI3OI+0x3c>)
   16982:	2000      	movs	r0, #0
   16984:	f8c1 0104 	str.w	r0, [r1, #260]	; 0x104
   16988:	4a0a      	ldr	r2, [pc, #40]	; (169b4 <sym_DIQ77CQKBNLT2RKVUGPP4YVKDKLZF55UNZMI3OI+0x40>)
   1698a:	f44f 3000 	mov.w	r0, #131072	; 0x20000
   1698e:	6010      	str	r0, [r2, #0]
   16990:	f8d1 2100 	ldr.w	r2, [r1, #256]	; 0x100
   16994:	2a01      	cmp	r2, #1
   16996:	d103      	bne.n	169a0 <sym_DIQ77CQKBNLT2RKVUGPP4YVKDKLZF55UNZMI3OI+0x2c>
   16998:	604a      	str	r2, [r1, #4]
   1699a:	4906      	ldr	r1, [pc, #24]	; (169b4 <sym_DIQ77CQKBNLT2RKVUGPP4YVKDKLZF55UNZMI3OI+0x40>)
   1699c:	1d09      	adds	r1, r1, #4
   1699e:	6008      	str	r0, [r1, #0]
   169a0:	bd10      	pop	{r4, pc}
   169a2:	21d1      	movs	r1, #209	; 0xd1
   169a4:	203c      	movs	r0, #60	; 0x3c
   169a6:	f7f9 fb1d 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   169aa:	0000      	.short	0x0000
   169ac:	200002a0 	.word	0x200002a0
   169b0:	4000f000 	.word	0x4000f000
   169b4:	4001f504 	.word	0x4001f504

000169b8 <sym_TRMXENGHOH4VBQQZPIN222FLCEFU3Z3CD5C47DY>:
   169b8:	4803      	ldr	r0, [pc, #12]	; (169c8 <sym_TRMXENGHOH4VBQQZPIN222FLCEFU3Z3CD5C47DY+0x10>)
   169ba:	2100      	movs	r1, #0
   169bc:	7001      	strb	r1, [r0, #0]
   169be:	7041      	strb	r1, [r0, #1]
   169c0:	7081      	strb	r1, [r0, #2]
   169c2:	70c1      	strb	r1, [r0, #3]
   169c4:	4770      	bx	lr
   169c6:	0000      	.short	0x0000
   169c8:	200002a0 	.word	0x200002a0

000169cc <sym_MUKS2K4XHEO5KLGXCUFTXLVFMPPIE6EHDYEDH6I>:
   169cc:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   169d0:	4605      	mov	r5, r0
   169d2:	461c      	mov	r4, r3
   169d4:	4690      	mov	r8, r2
   169d6:	460f      	mov	r7, r1
   169d8:	2001      	movs	r0, #1
   169da:	f000 f8a1 	bl	16b20 <sym_6Q45YYTUN2KDQ5V5UGE3T2LTI5FNGX6WIJYLIDI>
   169de:	4e12      	ldr	r6, [pc, #72]	; (16a28 <sym_MUKS2K4XHEO5KLGXCUFTXLVFMPPIE6EHDYEDH6I+0x5c>)
   169e0:	4812      	ldr	r0, [pc, #72]	; (16a2c <sym_MUKS2K4XHEO5KLGXCUFTXLVFMPPIE6EHDYEDH6I+0x60>)
   169e2:	7134      	strb	r4, [r6, #4]
   169e4:	6007      	str	r7, [r0, #0]
   169e6:	4911      	ldr	r1, [pc, #68]	; (16a2c <sym_MUKS2K4XHEO5KLGXCUFTXLVFMPPIE6EHDYEDH6I+0x60>)
   169e8:	ea45 4004 	orr.w	r0, r5, r4, lsl #16
   169ec:	1f09      	subs	r1, r1, #4
   169ee:	f040 7080 	orr.w	r0, r0, #16777216	; 0x1000000
   169f2:	6008      	str	r0, [r1, #0]
   169f4:	f001 fb13 	bl	1801e <sym_QPP3IZFSWHUV4JQ6ODMIVIARPB4PQYUFESV7BRQ>
   169f8:	b938      	cbnz	r0, 16a0a <sym_MUKS2K4XHEO5KLGXCUFTXLVFMPPIE6EHDYEDH6I+0x3e>
   169fa:	480c      	ldr	r0, [pc, #48]	; (16a2c <sym_MUKS2K4XHEO5KLGXCUFTXLVFMPPIE6EHDYEDH6I+0x60>)
   169fc:	3010      	adds	r0, #16
   169fe:	6801      	ldr	r1, [r0, #0]
   16a00:	f021 01ff 	bic.w	r1, r1, #255	; 0xff
   16a04:	ea41 0108 	orr.w	r1, r1, r8
   16a08:	6001      	str	r1, [r0, #0]
   16a0a:	f000 f881 	bl	16b10 <sym_FYMYD324TMLKJZE62CZN4WTXFSPL6FPU2SZH6CI+0x78>
   16a0e:	b93d      	cbnz	r5, 16a20 <sym_MUKS2K4XHEO5KLGXCUFTXLVFMPPIE6EHDYEDH6I+0x54>
   16a10:	4808      	ldr	r0, [pc, #32]	; (16a34 <sym_MUKS2K4XHEO5KLGXCUFTXLVFMPPIE6EHDYEDH6I+0x68>)
   16a12:	4a07      	ldr	r2, [pc, #28]	; (16a30 <sym_MUKS2K4XHEO5KLGXCUFTXLVFMPPIE6EHDYEDH6I+0x64>)
   16a14:	4906      	ldr	r1, [pc, #24]	; (16a30 <sym_MUKS2K4XHEO5KLGXCUFTXLVFMPPIE6EHDYEDH6I+0x64>)
   16a16:	3afc      	subs	r2, #252	; 0xfc
   16a18:	f8c0 1510 	str.w	r1, [r0, #1296]	; 0x510
   16a1c:	f8c0 2514 	str.w	r2, [r0, #1300]	; 0x514
   16a20:	2001      	movs	r0, #1
   16a22:	7070      	strb	r0, [r6, #1]
   16a24:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
   16a28:	200002a0 	.word	0x200002a0
   16a2c:	4000f508 	.word	0x4000f508
   16a30:	4000f100 	.word	0x4000f100
   16a34:	4001f088 	.word	0x4001f088

00016a38 <sym_VIFUXGNF7FG74OI2LAA4BDNI2IEW34DKB3GJ6TI>:
   16a38:	4808      	ldr	r0, [pc, #32]	; (16a5c <sym_VIFUXGNF7FG74OI2LAA4BDNI2IEW34DKB3GJ6TI+0x24>)
   16a3a:	b510      	push	{r4, lr}
   16a3c:	7841      	ldrb	r1, [r0, #1]
   16a3e:	b149      	cbz	r1, 16a54 <sym_VIFUXGNF7FG74OI2LAA4BDNI2IEW34DKB3GJ6TI+0x1c>
   16a40:	2101      	movs	r1, #1
   16a42:	7001      	strb	r1, [r0, #0]
   16a44:	4806      	ldr	r0, [pc, #24]	; (16a60 <sym_VIFUXGNF7FG74OI2LAA4BDNI2IEW34DKB3GJ6TI+0x28>)
   16a46:	2200      	movs	r2, #0
   16a48:	f8c0 2100 	str.w	r2, [r0, #256]	; 0x100
   16a4c:	f8c0 2200 	str.w	r2, [r0, #512]	; 0x200
   16a50:	6001      	str	r1, [r0, #0]
   16a52:	bd10      	pop	{r4, pc}
   16a54:	21c5      	movs	r1, #197	; 0xc5
   16a56:	203c      	movs	r0, #60	; 0x3c
   16a58:	f7f9 fac4 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   16a5c:	200002a0 	.word	0x200002a0
   16a60:	4000f000 	.word	0x4000f000

00016a64 <sym_3CD5EC6VYR6RXXLO3FXSZQ37BOYSM63APF5D5BA>:
   16a64:	4806      	ldr	r0, [pc, #24]	; (16a80 <sym_3CD5EC6VYR6RXXLO3FXSZQ37BOYSM63APF5D5BA+0x1c>)
   16a66:	7801      	ldrb	r1, [r0, #0]
   16a68:	b141      	cbz	r1, 16a7c <sym_3CD5EC6VYR6RXXLO3FXSZQ37BOYSM63APF5D5BA+0x18>
   16a6a:	4806      	ldr	r0, [pc, #24]	; (16a84 <sym_3CD5EC6VYR6RXXLO3FXSZQ37BOYSM63APF5D5BA+0x20>)
   16a6c:	f8d0 0104 	ldr.w	r0, [r0, #260]	; 0x104
   16a70:	2800      	cmp	r0, #0
   16a72:	d002      	beq.n	16a7a <sym_3CD5EC6VYR6RXXLO3FXSZQ37BOYSM63APF5D5BA+0x16>
   16a74:	4804      	ldr	r0, [pc, #16]	; (16a88 <sym_3CD5EC6VYR6RXXLO3FXSZQ37BOYSM63APF5D5BA+0x24>)
   16a76:	6800      	ldr	r0, [r0, #0]
   16a78:	b2c0      	uxtb	r0, r0
   16a7a:	4770      	bx	lr
   16a7c:	78c0      	ldrb	r0, [r0, #3]
   16a7e:	4770      	bx	lr
   16a80:	200002a0 	.word	0x200002a0
   16a84:	4000f000 	.word	0x4000f000
   16a88:	4000f400 	.word	0x4000f400

00016a8c <sym_QQVHHHKNBN5TJBK4NCDSUYAMXMOEHFSL7HE7RRA>:
   16a8c:	4901      	ldr	r1, [pc, #4]	; (16a94 <sym_QQVHHHKNBN5TJBK4NCDSUYAMXMOEHFSL7HE7RRA+0x8>)
   16a8e:	2001      	movs	r0, #1
   16a90:	6088      	str	r0, [r1, #8]
   16a92:	4770      	bx	lr
   16a94:	4000f000 	.word	0x4000f000

00016a98 <sym_FYMYD324TMLKJZE62CZN4WTXFSPL6FPU2SZH6CI>:
   16a98:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
   16a9c:	2800      	cmp	r0, #0
   16a9e:	d02e      	beq.n	16afe <sym_FYMYD324TMLKJZE62CZN4WTXFSPL6FPU2SZH6CI+0x66>
   16aa0:	4818      	ldr	r0, [pc, #96]	; (16b04 <sym_FYMYD324TMLKJZE62CZN4WTXFSPL6FPU2SZH6CI+0x6c>)
   16aa2:	7800      	ldrb	r0, [r0, #0]
   16aa4:	b1b0      	cbz	r0, 16ad4 <sym_FYMYD324TMLKJZE62CZN4WTXFSPL6FPU2SZH6CI+0x3c>
   16aa6:	4d18      	ldr	r5, [pc, #96]	; (16b08 <sym_FYMYD324TMLKJZE62CZN4WTXFSPL6FPU2SZH6CI+0x70>)
   16aa8:	f8d5 0104 	ldr.w	r0, [r5, #260]	; 0x104
   16aac:	2800      	cmp	r0, #0
   16aae:	d126      	bne.n	16afe <sym_FYMYD324TMLKJZE62CZN4WTXFSPL6FPU2SZH6CI+0x66>
   16ab0:	2702      	movs	r7, #2
   16ab2:	f8c5 7304 	str.w	r7, [r5, #772]	; 0x304
   16ab6:	4c15      	ldr	r4, [pc, #84]	; (16b0c <sym_FYMYD324TMLKJZE62CZN4WTXFSPL6FPU2SZH6CI+0x74>)
   16ab8:	6820      	ldr	r0, [r4, #0]
   16aba:	43c0      	mvns	r0, r0
   16abc:	f340 1600 	sbfx	r6, r0, #4, #1
   16ac0:	6820      	ldr	r0, [r4, #0]
   16ac2:	f040 0010 	orr.w	r0, r0, #16
   16ac6:	6020      	str	r0, [r4, #0]
   16ac8:	f44f 4800 	mov.w	r8, #32768	; 0x8000
   16acc:	f04f 29e0 	mov.w	r9, #3758153728	; 0xe000e000
   16ad0:	1c76      	adds	r6, r6, #1
   16ad2:	e009      	b.n	16ae8 <sym_FYMYD324TMLKJZE62CZN4WTXFSPL6FPU2SZH6CI+0x50>
   16ad4:	f240 1153 	movw	r1, #339	; 0x153
   16ad8:	203c      	movs	r0, #60	; 0x3c
   16ada:	f7f9 fa83 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   16ade:	bf00      	nop
   16ae0:	f8c9 8280 	str.w	r8, [r9, #640]	; 0x280
   16ae4:	f7f9 f8fc 	bl	fce0 <sym_PAD7XREQQORPXRJMXMW2EYVS4S43S42A5D43SBA>
   16ae8:	f8d5 0104 	ldr.w	r0, [r5, #260]	; 0x104
   16aec:	2800      	cmp	r0, #0
   16aee:	d0f7      	beq.n	16ae0 <sym_FYMYD324TMLKJZE62CZN4WTXFSPL6FPU2SZH6CI+0x48>
   16af0:	b91e      	cbnz	r6, 16afa <sym_FYMYD324TMLKJZE62CZN4WTXFSPL6FPU2SZH6CI+0x62>
   16af2:	6820      	ldr	r0, [r4, #0]
   16af4:	f020 0010 	bic.w	r0, r0, #16
   16af8:	6020      	str	r0, [r4, #0]
   16afa:	f8c5 7308 	str.w	r7, [r5, #776]	; 0x308
   16afe:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
   16b02:	0000      	.short	0x0000
   16b04:	200002a0 	.word	0x200002a0
   16b08:	4000f000 	.word	0x4000f000
   16b0c:	e000ed10 	.word	0xe000ed10
   16b10:	4902      	ldr	r1, [pc, #8]	; (16b1c <sym_FYMYD324TMLKJZE62CZN4WTXFSPL6FPU2SZH6CI+0x84>)
   16b12:	4801      	ldr	r0, [pc, #4]	; (16b18 <sym_FYMYD324TMLKJZE62CZN4WTXFSPL6FPU2SZH6CI+0x80>)
   16b14:	6008      	str	r0, [r1, #0]
   16b16:	4770      	bx	lr
   16b18:	02020000 	.word	0x02020000
   16b1c:	4001f508 	.word	0x4001f508

00016b20 <sym_6Q45YYTUN2KDQ5V5UGE3T2LTI5FNGX6WIJYLIDI>:
   16b20:	b510      	push	{r4, lr}
   16b22:	4604      	mov	r4, r0
   16b24:	f000 f822 	bl	16b6c <sym_6Q45YYTUN2KDQ5V5UGE3T2LTI5FNGX6WIJYLIDI+0x4c>
   16b28:	2c00      	cmp	r4, #0
   16b2a:	d017      	beq.n	16b5c <sym_6Q45YYTUN2KDQ5V5UGE3T2LTI5FNGX6WIJYLIDI+0x3c>
   16b2c:	4a0c      	ldr	r2, [pc, #48]	; (16b60 <sym_6Q45YYTUN2KDQ5V5UGE3T2LTI5FNGX6WIJYLIDI+0x40>)
   16b2e:	480c      	ldr	r0, [pc, #48]	; (16b60 <sym_6Q45YYTUN2KDQ5V5UGE3T2LTI5FNGX6WIJYLIDI+0x40>)
   16b30:	490c      	ldr	r1, [pc, #48]	; (16b64 <sym_6Q45YYTUN2KDQ5V5UGE3T2LTI5FNGX6WIJYLIDI+0x44>)
   16b32:	3214      	adds	r2, #20
   16b34:	4b0c      	ldr	r3, [pc, #48]	; (16b68 <sym_6Q45YYTUN2KDQ5V5UGE3T2LTI5FNGX6WIJYLIDI+0x48>)
   16b36:	2c01      	cmp	r4, #1
   16b38:	d005      	beq.n	16b46 <sym_6Q45YYTUN2KDQ5V5UGE3T2LTI5FNGX6WIJYLIDI+0x26>
   16b3a:	2c02      	cmp	r4, #2
   16b3c:	d008      	beq.n	16b50 <sym_6Q45YYTUN2KDQ5V5UGE3T2LTI5FNGX6WIJYLIDI+0x30>
   16b3e:	2183      	movs	r1, #131	; 0x83
   16b40:	203d      	movs	r0, #61	; 0x3d
   16b42:	f7f9 fa4f 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   16b46:	2402      	movs	r4, #2
   16b48:	6004      	str	r4, [r0, #0]
   16b4a:	6011      	str	r1, [r2, #0]
   16b4c:	0620      	lsls	r0, r4, #24
   16b4e:	e004      	b.n	16b5a <sym_6Q45YYTUN2KDQ5V5UGE3T2LTI5FNGX6WIJYLIDI+0x3a>
   16b50:	2403      	movs	r4, #3
   16b52:	6004      	str	r4, [r0, #0]
   16b54:	6011      	str	r1, [r2, #0]
   16b56:	f44f 0000 	mov.w	r0, #8388608	; 0x800000
   16b5a:	6018      	str	r0, [r3, #0]
   16b5c:	bd10      	pop	{r4, pc}
   16b5e:	0000      	.short	0x0000
   16b60:	4000f500 	.word	0x4000f500
   16b64:	20001513 	.word	0x20001513
   16b68:	4001f504 	.word	0x4001f504
   16b6c:	4804      	ldr	r0, [pc, #16]	; (16b80 <sym_6Q45YYTUN2KDQ5V5UGE3T2LTI5FNGX6WIJYLIDI+0x60>)
   16b6e:	2100      	movs	r1, #0
   16b70:	6001      	str	r1, [r0, #0]
   16b72:	6001      	str	r1, [r0, #0]
   16b74:	4903      	ldr	r1, [pc, #12]	; (16b84 <sym_6Q45YYTUN2KDQ5V5UGE3T2LTI5FNGX6WIJYLIDI+0x64>)
   16b76:	f04f 7020 	mov.w	r0, #41943040	; 0x2800000
   16b7a:	6008      	str	r0, [r1, #0]
   16b7c:	4770      	bx	lr
   16b7e:	0000      	.short	0x0000
   16b80:	4000f500 	.word	0x4000f500
   16b84:	4001f508 	.word	0x4001f508

00016b88 <sym_PCLF3MATC3G3MYGRPG4ATMGCS6N4B7M5CSF2C2Y>:
   16b88:	4805      	ldr	r0, [pc, #20]	; (16ba0 <sym_PCLF3MATC3G3MYGRPG4ATMGCS6N4B7M5CSF2C2Y+0x18>)
   16b8a:	f8d0 1200 	ldr.w	r1, [r0, #512]	; 0x200
   16b8e:	f021 0140 	bic.w	r1, r1, #64	; 0x40
   16b92:	f8c0 1200 	str.w	r1, [r0, #512]	; 0x200
   16b96:	4903      	ldr	r1, [pc, #12]	; (16ba4 <sym_PCLF3MATC3G3MYGRPG4ATMGCS6N4B7M5CSF2C2Y+0x1c>)
   16b98:	2000      	movs	r0, #0
   16b9a:	6008      	str	r0, [r1, #0]
   16b9c:	4770      	bx	lr
   16b9e:	0000      	.short	0x0000
   16ba0:	40001000 	.word	0x40001000
   16ba4:	40001560 	.word	0x40001560

00016ba8 <sym_RXYEX777ZXB2E2DXJWDBCV7AAHWTCHNTLOSENBY>:
   16ba8:	4904      	ldr	r1, [pc, #16]	; (16bbc <sym_RXYEX777ZXB2E2DXJWDBCV7AAHWTCHNTLOSENBY+0x14>)
   16baa:	6008      	str	r0, [r1, #0]
   16bac:	4804      	ldr	r0, [pc, #16]	; (16bc0 <sym_RXYEX777ZXB2E2DXJWDBCV7AAHWTCHNTLOSENBY+0x18>)
   16bae:	f8d0 1200 	ldr.w	r1, [r0, #512]	; 0x200
   16bb2:	f041 0140 	orr.w	r1, r1, #64	; 0x40
   16bb6:	f8c0 1200 	str.w	r1, [r0, #512]	; 0x200
   16bba:	4770      	bx	lr
   16bbc:	40001560 	.word	0x40001560
   16bc0:	40001000 	.word	0x40001000

00016bc4 <sym_BNUQ5CI25DXEDLVOULTXPCKLL6P4CJJYO4G535I>:
   16bc4:	4801      	ldr	r0, [pc, #4]	; (16bcc <sym_BNUQ5CI25DXEDLVOULTXPCKLL6P4CJJYO4G535I+0x8>)
   16bc6:	f890 0022 	ldrb.w	r0, [r0, #34]	; 0x22
   16bca:	4770      	bx	lr
   16bcc:	20000fcc 	.word	0x20000fcc

00016bd0 <sym_A5S3P57NWYYY5XJWBYERU6H4QSVP5TCTU7HKA5Y>:
   16bd0:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
   16bd2:	4c1e      	ldr	r4, [pc, #120]	; (16c4c <sym_A5S3P57NWYYY5XJWBYERU6H4QSVP5TCTU7HKA5Y+0x7c>)
   16bd4:	f8d4 0304 	ldr.w	r0, [r4, #772]	; 0x304
   16bd8:	2710      	movs	r7, #16
   16bda:	f3c0 1600 	ubfx	r6, r0, #4, #1
   16bde:	f8c4 7308 	str.w	r7, [r4, #776]	; 0x308
   16be2:	2002      	movs	r0, #2
   16be4:	f8c4 0200 	str.w	r0, [r4, #512]	; 0x200
   16be8:	4819      	ldr	r0, [pc, #100]	; (16c50 <sym_A5S3P57NWYYY5XJWBYERU6H4QSVP5TCTU7HKA5Y+0x80>)
   16bea:	2500      	movs	r5, #0
   16bec:	491a      	ldr	r1, [pc, #104]	; (16c58 <sym_A5S3P57NWYYY5XJWBYERU6H4QSVP5TCTU7HKA5Y+0x88>)
   16bee:	f880 502c 	strb.w	r5, [r0, #44]	; 0x2c
   16bf2:	4818      	ldr	r0, [pc, #96]	; (16c54 <sym_A5S3P57NWYYY5XJWBYERU6H4QSVP5TCTU7HKA5Y+0x84>)
   16bf4:	6008      	str	r0, [r1, #0]
   16bf6:	4819      	ldr	r0, [pc, #100]	; (16c5c <sym_A5S3P57NWYYY5XJWBYERU6H4QSVP5TCTU7HKA5Y+0x8c>)
   16bf8:	6800      	ldr	r0, [r0, #0]
   16bfa:	b1b0      	cbz	r0, 16c2a <sym_A5S3P57NWYYY5XJWBYERU6H4QSVP5TCTU7HKA5Y+0x5a>
   16bfc:	20ff      	movs	r0, #255	; 0xff
   16bfe:	f88d 0000 	strb.w	r0, [sp]
   16c02:	f8c4 5110 	str.w	r5, [r4, #272]	; 0x110
   16c06:	2001      	movs	r0, #1
   16c08:	6120      	str	r0, [r4, #16]
   16c0a:	e004      	b.n	16c16 <sym_A5S3P57NWYYY5XJWBYERU6H4QSVP5TCTU7HKA5Y+0x46>
   16c0c:	f89d 0000 	ldrb.w	r0, [sp]
   16c10:	1e40      	subs	r0, r0, #1
   16c12:	f88d 0000 	strb.w	r0, [sp]
   16c16:	f89d 0000 	ldrb.w	r0, [sp]
   16c1a:	b118      	cbz	r0, 16c24 <sym_A5S3P57NWYYY5XJWBYERU6H4QSVP5TCTU7HKA5Y+0x54>
   16c1c:	f8d4 0110 	ldr.w	r0, [r4, #272]	; 0x110
   16c20:	2800      	cmp	r0, #0
   16c22:	d0f3      	beq.n	16c0c <sym_A5S3P57NWYYY5XJWBYERU6H4QSVP5TCTU7HKA5Y+0x3c>
   16c24:	f89d 0000 	ldrb.w	r0, [sp]
   16c28:	b150      	cbz	r0, 16c40 <sym_A5S3P57NWYYY5XJWBYERU6H4QSVP5TCTU7HKA5Y+0x70>
   16c2a:	f000 fcb1 	bl	17590 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0xe8>
   16c2e:	f8c4 5110 	str.w	r5, [r4, #272]	; 0x110
   16c32:	f000 fe29 	bl	17888 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x3e0>
   16c36:	2e00      	cmp	r6, #0
   16c38:	d001      	beq.n	16c3e <sym_A5S3P57NWYYY5XJWBYERU6H4QSVP5TCTU7HKA5Y+0x6e>
   16c3a:	f8c4 7304 	str.w	r7, [r4, #772]	; 0x304
   16c3e:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
   16c40:	f240 71a3 	movw	r1, #1955	; 0x7a3
   16c44:	203e      	movs	r0, #62	; 0x3e
   16c46:	f7f9 f9cd 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   16c4a:	0000      	.short	0x0000
   16c4c:	40001000 	.word	0x40001000
   16c50:	20000fcc 	.word	0x20000fcc
   16c54:	0c0e0000 	.word	0x0c0e0000
   16c58:	4001f508 	.word	0x4001f508
   16c5c:	40001550 	.word	0x40001550

00016c60 <sym_6PPYXQQOLTVZ6DHASA45P4Y6MOJ5US37OHECCGI>:
   16c60:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   16c64:	4c1f      	ldr	r4, [pc, #124]	; (16ce4 <sym_6PPYXQQOLTVZ6DHASA45P4Y6MOJ5US37OHECCGI+0x84>)
   16c66:	4607      	mov	r7, r0
   16c68:	4688      	mov	r8, r1
   16c6a:	f894 002c 	ldrb.w	r0, [r4, #44]	; 0x2c
   16c6e:	07c1      	lsls	r1, r0, #31
   16c70:	d018      	beq.n	16ca4 <sym_6PPYXQQOLTVZ6DHASA45P4Y6MOJ5US37OHECCGI+0x44>
   16c72:	4a1d      	ldr	r2, [pc, #116]	; (16ce8 <sym_6PPYXQQOLTVZ6DHASA45P4Y6MOJ5US37OHECCGI+0x88>)
   16c74:	f04f 6140 	mov.w	r1, #201326592	; 0xc000000
   16c78:	6011      	str	r1, [r2, #0]
   16c7a:	4d1c      	ldr	r5, [pc, #112]	; (16cec <sym_6PPYXQQOLTVZ6DHASA45P4Y6MOJ5US37OHECCGI+0x8c>)
   16c7c:	f8d5 1200 	ldr.w	r1, [r5, #512]	; 0x200
   16c80:	f041 0101 	orr.w	r1, r1, #1
   16c84:	f8c5 1200 	str.w	r1, [r5, #512]	; 0x200
   16c88:	f040 0002 	orr.w	r0, r0, #2
   16c8c:	f884 002c 	strb.w	r0, [r4, #44]	; 0x2c
   16c90:	4640      	mov	r0, r8
   16c92:	f000 fe5d 	bl	17950 <sym_BAE5AID2574UQHWOKHY55745PJT6HXY2EXKBH7Y>
   16c96:	f000 fc29 	bl	174ec <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x44>
   16c9a:	2601      	movs	r6, #1
   16c9c:	b13f      	cbz	r7, 16cae <sym_6PPYXQQOLTVZ6DHASA45P4Y6MOJ5US37OHECCGI+0x4e>
   16c9e:	2f01      	cmp	r7, #1
   16ca0:	d00e      	beq.n	16cc0 <sym_6PPYXQQOLTVZ6DHASA45P4Y6MOJ5US37OHECCGI+0x60>
   16ca2:	e016      	b.n	16cd2 <sym_6PPYXQQOLTVZ6DHASA45P4Y6MOJ5US37OHECCGI+0x72>
   16ca4:	f240 612d 	movw	r1, #1581	; 0x62d
   16ca8:	203e      	movs	r0, #62	; 0x3e
   16caa:	f7f9 f99b 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   16cae:	4640      	mov	r0, r8
   16cb0:	f000 fc3c 	bl	1752c <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x84>
   16cb4:	4640      	mov	r0, r8
   16cb6:	f000 fbfd 	bl	174b4 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0xc>
   16cba:	7266      	strb	r6, [r4, #9]
   16cbc:	602e      	str	r6, [r5, #0]
   16cbe:	e008      	b.n	16cd2 <sym_6PPYXQQOLTVZ6DHASA45P4Y6MOJ5US37OHECCGI+0x72>
   16cc0:	f000 fc5c 	bl	1757c <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0xd4>
   16cc4:	f000 fdaa 	bl	1781c <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x374>
   16cc8:	2002      	movs	r0, #2
   16cca:	7260      	strb	r0, [r4, #9]
   16ccc:	f000 fcd2 	bl	17674 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x1cc>
   16cd0:	606e      	str	r6, [r5, #4]
   16cd2:	4807      	ldr	r0, [pc, #28]	; (16cf0 <sym_6PPYXQQOLTVZ6DHASA45P4Y6MOJ5US37OHECCGI+0x90>)
   16cd4:	64c6      	str	r6, [r0, #76]	; 0x4c
   16cd6:	4807      	ldr	r0, [pc, #28]	; (16cf4 <sym_6PPYXQQOLTVZ6DHASA45P4Y6MOJ5US37OHECCGI+0x94>)
   16cd8:	6801      	ldr	r1, [r0, #0]
   16cda:	4638      	mov	r0, r7
   16cdc:	e8bd 41f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, lr}
   16ce0:	f005 b850 	b.w	1bd84 <sym_K7DVDHTWL3F7TVQBJD7AJF4MCRCM54IIDUOJLTY+0x4>
   16ce4:	20000fcc 	.word	0x20000fcc
   16ce8:	4001f504 	.word	0x4001f504
   16cec:	40001000 	.word	0x40001000
   16cf0:	40008000 	.word	0x40008000
   16cf4:	4000854c 	.word	0x4000854c

00016cf8 <sym_WJZCKVDJU3WW5NVNH77DPRGYVZQLD372GLDYO6I>:
   16cf8:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
   16cfc:	4d35      	ldr	r5, [pc, #212]	; (16dd4 <sym_WJZCKVDJU3WW5NVNH77DPRGYVZQLD372GLDYO6I+0xdc>)
   16cfe:	4606      	mov	r6, r0
   16d00:	f04f 6040 	mov.w	r0, #201326592	; 0xc000000
   16d04:	4689      	mov	r9, r1
   16d06:	6028      	str	r0, [r5, #0]
   16d08:	4c33      	ldr	r4, [pc, #204]	; (16dd8 <sym_WJZCKVDJU3WW5NVNH77DPRGYVZQLD372GLDYO6I+0xe0>)
   16d0a:	f894 002c 	ldrb.w	r0, [r4, #44]	; 0x2c
   16d0e:	f040 0002 	orr.w	r0, r0, #2
   16d12:	f884 002c 	strb.w	r0, [r4, #44]	; 0x2c
   16d16:	4608      	mov	r0, r1
   16d18:	f000 fe1a 	bl	17950 <sym_BAE5AID2574UQHWOKHY55745PJT6HXY2EXKBH7Y>
   16d1c:	f000 fbe6 	bl	174ec <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x44>
   16d20:	f8df 80b8 	ldr.w	r8, [pc, #184]	; 16ddc <sym_WJZCKVDJU3WW5NVNH77DPRGYVZQLD372GLDYO6I+0xe4>
   16d24:	2700      	movs	r7, #0
   16d26:	b116      	cbz	r6, 16d2e <sym_WJZCKVDJU3WW5NVNH77DPRGYVZQLD372GLDYO6I+0x36>
   16d28:	2e01      	cmp	r6, #1
   16d2a:	d027      	beq.n	16d7c <sym_WJZCKVDJU3WW5NVNH77DPRGYVZQLD372GLDYO6I+0x84>
   16d2c:	e03f      	b.n	16dae <sym_WJZCKVDJU3WW5NVNH77DPRGYVZQLD372GLDYO6I+0xb6>
   16d2e:	4648      	mov	r0, r9
   16d30:	f000 fbfc 	bl	1752c <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x84>
   16d34:	79e0      	ldrb	r0, [r4, #7]
   16d36:	2801      	cmp	r0, #1
   16d38:	d105      	bne.n	16d46 <sym_WJZCKVDJU3WW5NVNH77DPRGYVZQLD372GLDYO6I+0x4e>
   16d3a:	f8d8 1200 	ldr.w	r1, [r8, #512]	; 0x200
   16d3e:	f041 0108 	orr.w	r1, r1, #8
   16d42:	f8c8 1200 	str.w	r1, [r8, #512]	; 0x200
   16d46:	4648      	mov	r0, r9
   16d48:	f000 fbb4 	bl	174b4 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0xc>
   16d4c:	2001      	movs	r0, #1
   16d4e:	7260      	strb	r0, [r4, #9]
   16d50:	6aa0      	ldr	r0, [r4, #40]	; 0x28
   16d52:	f440 1080 	orr.w	r0, r0, #1048576	; 0x100000
   16d56:	62a0      	str	r0, [r4, #40]	; 0x28
   16d58:	f44f 1080 	mov.w	r0, #1048576	; 0x100000
   16d5c:	6028      	str	r0, [r5, #0]
   16d5e:	f44f 717a 	mov.w	r1, #1000	; 0x3e8
   16d62:	f1b9 0f02 	cmp.w	r9, #2
   16d66:	d007      	beq.n	16d78 <sym_WJZCKVDJU3WW5NVNH77DPRGYVZQLD372GLDYO6I+0x80>
   16d68:	f640 0034 	movw	r0, #2100	; 0x834
   16d6c:	f649 72ec 	movw	r2, #40940	; 0x9fec
   16d70:	4410      	add	r0, r2
   16d72:	fbb0 f7f1 	udiv	r7, r0, r1
   16d76:	e01a      	b.n	16dae <sym_WJZCKVDJU3WW5NVNH77DPRGYVZQLD372GLDYO6I+0xb6>
   16d78:	4608      	mov	r0, r1
   16d7a:	e7f7      	b.n	16d6c <sym_WJZCKVDJU3WW5NVNH77DPRGYVZQLD372GLDYO6I+0x74>
   16d7c:	f000 fbfe 	bl	1757c <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0xd4>
   16d80:	f000 fd4c 	bl	1781c <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x374>
   16d84:	79e0      	ldrb	r0, [r4, #7]
   16d86:	2801      	cmp	r0, #1
   16d88:	d105      	bne.n	16d96 <sym_WJZCKVDJU3WW5NVNH77DPRGYVZQLD372GLDYO6I+0x9e>
   16d8a:	f8d8 1200 	ldr.w	r1, [r8, #512]	; 0x200
   16d8e:	f041 0104 	orr.w	r1, r1, #4
   16d92:	f8c8 1200 	str.w	r1, [r8, #512]	; 0x200
   16d96:	2002      	movs	r0, #2
   16d98:	7260      	strb	r0, [r4, #9]
   16d9a:	6aa0      	ldr	r0, [r4, #40]	; 0x28
   16d9c:	f440 1000 	orr.w	r0, r0, #2097152	; 0x200000
   16da0:	62a0      	str	r0, [r4, #40]	; 0x28
   16da2:	f44f 1000 	mov.w	r0, #2097152	; 0x200000
   16da6:	6028      	str	r0, [r5, #0]
   16da8:	2729      	movs	r7, #41	; 0x29
   16daa:	f000 fc63 	bl	17674 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x1cc>
   16dae:	f000 fc4d 	bl	1764c <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x1a4>
   16db2:	f001 f80b 	bl	17dcc <sym_AQI4OLZLNAFMKTQHPKXO3EVYHTLAOB676ZYU7WY>
   16db6:	6800      	ldr	r0, [r0, #0]
   16db8:	2801      	cmp	r0, #1
   16dba:	d006      	beq.n	16dca <sym_WJZCKVDJU3WW5NVNH77DPRGYVZQLD372GLDYO6I+0xd2>
   16dbc:	2100      	movs	r1, #0
   16dbe:	4630      	mov	r0, r6
   16dc0:	f004 ffe0 	bl	1bd84 <sym_K7DVDHTWL3F7TVQBJD7AJF4MCRCM54IIDUOJLTY+0x4>
   16dc4:	4638      	mov	r0, r7
   16dc6:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
   16dca:	f7ff ff01 	bl	16bd0 <sym_A5S3P57NWYYY5XJWBYERU6H4QSVP5TCTU7HKA5Y>
   16dce:	2000      	movs	r0, #0
   16dd0:	e7f9      	b.n	16dc6 <sym_WJZCKVDJU3WW5NVNH77DPRGYVZQLD372GLDYO6I+0xce>
   16dd2:	0000      	.short	0x0000
   16dd4:	4001f504 	.word	0x4001f504
   16dd8:	20000fcc 	.word	0x20000fcc
   16ddc:	40001000 	.word	0x40001000

00016de0 <sym_LSYZDZOMTD6BKKRX25HIBNLFKSFDXBS3PS4UKOY>:
   16de0:	4a02      	ldr	r2, [pc, #8]	; (16dec <sym_LSYZDZOMTD6BKKRX25HIBNLFKSFDXBS3PS4UKOY+0xc>)
   16de2:	6b13      	ldr	r3, [r2, #48]	; 0x30
   16de4:	6003      	str	r3, [r0, #0]
   16de6:	6b50      	ldr	r0, [r2, #52]	; 0x34
   16de8:	6008      	str	r0, [r1, #0]
   16dea:	4770      	bx	lr
   16dec:	20000fcc 	.word	0x20000fcc

00016df0 <sym_YG4UROEKVB7ZBE5TWHLNJHYKSFBTXGBYAX3RXRI>:
   16df0:	b510      	push	{r4, lr}
   16df2:	c81d      	ldmia	r0, {r0, r2, r3, r4}
   16df4:	4901      	ldr	r1, [pc, #4]	; (16dfc <sym_YG4UROEKVB7ZBE5TWHLNJHYKSFBTXGBYAX3RXRI+0xc>)
   16df6:	e881 001d 	stmia.w	r1, {r0, r2, r3, r4}
   16dfa:	bd10      	pop	{r4, pc}
   16dfc:	20000fbc 	.word	0x20000fbc

00016e00 <sym_7CIQBS4FNO23MS6BAN7Q3LK45R62DBPT5FNCWOA>:
   16e00:	490e      	ldr	r1, [pc, #56]	; (16e3c <sym_7CIQBS4FNO23MS6BAN7Q3LK45R62DBPT5FNCWOA+0x3c>)
   16e02:	b510      	push	{r4, lr}
   16e04:	69ca      	ldr	r2, [r1, #28]
   16e06:	4282      	cmp	r2, r0
   16e08:	d302      	bcc.n	16e10 <sym_7CIQBS4FNO23MS6BAN7Q3LK45R62DBPT5FNCWOA+0x10>
   16e0a:	f44f 6102 	mov.w	r1, #2080	; 0x820
   16e0e:	e00a      	b.n	16e26 <sym_7CIQBS4FNO23MS6BAN7Q3LK45R62DBPT5FNCWOA+0x26>
   16e10:	2201      	movs	r2, #1
   16e12:	730a      	strb	r2, [r1, #12]
   16e14:	6108      	str	r0, [r1, #16]
   16e16:	490a      	ldr	r1, [pc, #40]	; (16e40 <sym_7CIQBS4FNO23MS6BAN7Q3LK45R62DBPT5FNCWOA+0x40>)
   16e18:	644a      	str	r2, [r1, #68]	; 0x44
   16e1a:	4a0a      	ldr	r2, [pc, #40]	; (16e44 <sym_7CIQBS4FNO23MS6BAN7Q3LK45R62DBPT5FNCWOA+0x44>)
   16e1c:	6813      	ldr	r3, [r2, #0]
   16e1e:	4283      	cmp	r3, r0
   16e20:	d304      	bcc.n	16e2c <sym_7CIQBS4FNO23MS6BAN7Q3LK45R62DBPT5FNCWOA+0x2c>
   16e22:	f640 0129 	movw	r1, #2089	; 0x829
   16e26:	203e      	movs	r0, #62	; 0x3e
   16e28:	f7f9 f8dc 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   16e2c:	2300      	movs	r3, #0
   16e2e:	f8c1 3144 	str.w	r3, [r1, #324]	; 0x144
   16e32:	6010      	str	r0, [r2, #0]
   16e34:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
   16e38:	f000 bcfe 	b.w	17838 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x390>
   16e3c:	20000fcc 	.word	0x20000fcc
   16e40:	40008000 	.word	0x40008000
   16e44:	40008544 	.word	0x40008544

00016e48 <sym_Y6HXZQJARJ7FDWKGPREPQGRRGDOQMXHDALUK6KY>:
   16e48:	b570      	push	{r4, r5, r6, lr}
   16e4a:	4c10      	ldr	r4, [pc, #64]	; (16e8c <sym_Y6HXZQJARJ7FDWKGPREPQGRRGDOQMXHDALUK6KY+0x44>)
   16e4c:	4606      	mov	r6, r0
   16e4e:	2002      	movs	r0, #2
   16e50:	7320      	strb	r0, [r4, #12]
   16e52:	2596      	movs	r5, #150	; 0x96
   16e54:	f000 f866 	bl	16f24 <sym_ARLNRKQ66P65CL63VENK3NR6NFAZLWPJOOVV7RQ>
   16e58:	4602      	mov	r2, r0
   16e5a:	f894 0021 	ldrb.w	r0, [r4, #33]	; 0x21
   16e5e:	f894 1020 	ldrb.w	r1, [r4, #32]
   16e62:	2801      	cmp	r0, #1
   16e64:	d00d      	beq.n	16e82 <sym_Y6HXZQJARJ7FDWKGPREPQGRRGDOQMXHDALUK6KY+0x3a>
   16e66:	4628      	mov	r0, r5
   16e68:	f004 ffa4 	bl	1bdb4 <sym_55XNA7W2CQFJPCH62ZAKHLPISYHJ7KMNREEN6EA>
   16e6c:	4908      	ldr	r1, [pc, #32]	; (16e90 <sym_Y6HXZQJARJ7FDWKGPREPQGRRGDOQMXHDALUK6KY+0x48>)
   16e6e:	6120      	str	r0, [r4, #16]
   16e70:	2000      	movs	r0, #0
   16e72:	f8c1 0144 	str.w	r0, [r1, #324]	; 0x144
   16e76:	6921      	ldr	r1, [r4, #16]
   16e78:	69e0      	ldr	r0, [r4, #28]
   16e7a:	4408      	add	r0, r1
   16e7c:	4905      	ldr	r1, [pc, #20]	; (16e94 <sym_Y6HXZQJARJ7FDWKGPREPQGRRGDOQMXHDALUK6KY+0x4c>)
   16e7e:	6008      	str	r0, [r1, #0]
   16e80:	bd70      	pop	{r4, r5, r6, pc}
   16e82:	4633      	mov	r3, r6
   16e84:	4628      	mov	r0, r5
   16e86:	f004 ffb1 	bl	1bdec <sym_7VLVVPDI26BVJ64XQBSGXOQYGQA4VH5APIPDGYA>
   16e8a:	e7ef      	b.n	16e6c <sym_Y6HXZQJARJ7FDWKGPREPQGRRGDOQMXHDALUK6KY+0x24>
   16e8c:	20000fcc 	.word	0x20000fcc
   16e90:	40008000 	.word	0x40008000
   16e94:	40008544 	.word	0x40008544

00016e98 <sym_YUNWMAOOL6VPZ57LS54EAM7TJ65IEHYU7XKGKUI>:
   16e98:	b510      	push	{r4, lr}
   16e9a:	f001 f8dc 	bl	18056 <sym_YNH6KDZL2GMJ2KPUX5DEER63BRE7IOGBY3KCQAQ>
   16e9e:	2800      	cmp	r0, #0
   16ea0:	d006      	beq.n	16eb0 <sym_YUNWMAOOL6VPZ57LS54EAM7TJ65IEHYU7XKGKUI+0x18>
   16ea2:	4804      	ldr	r0, [pc, #16]	; (16eb4 <sym_YUNWMAOOL6VPZ57LS54EAM7TJ65IEHYU7XKGKUI+0x1c>)
   16ea4:	6801      	ldr	r1, [r0, #0]
   16ea6:	f021 0101 	bic.w	r1, r1, #1
   16eaa:	f041 7180 	orr.w	r1, r1, #16777216	; 0x1000000
   16eae:	6001      	str	r1, [r0, #0]
   16eb0:	bd10      	pop	{r4, pc}
   16eb2:	0000      	.short	0x0000
   16eb4:	40001774 	.word	0x40001774

00016eb8 <sym_RUQBFILZ5CHV2AAL6C3D2J5Y33TCCAPZTHBGZ3A>:
   16eb8:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   16ebc:	2238      	movs	r2, #56	; 0x38
   16ebe:	2100      	movs	r1, #0
   16ec0:	4813      	ldr	r0, [pc, #76]	; (16f10 <sym_RUQBFILZ5CHV2AAL6C3D2J5Y33TCCAPZTHBGZ3A+0x58>)
   16ec2:	f001 f978 	bl	181b6 <sym_VSILKYHVQ5DVF6LG5MG267DQVA3A2XZQ6FSCLXA>
   16ec6:	f000 fcdf 	bl	17888 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x3e0>
   16eca:	f001 f87d 	bl	17fc8 <sym_5EMXP3L6SPQSCAJKKRH62ZOKJCCSKLI3WEX2WHY>
   16ece:	4d11      	ldr	r5, [pc, #68]	; (16f14 <sym_RUQBFILZ5CHV2AAL6C3D2J5Y33TCCAPZTHBGZ3A+0x5c>)
   16ed0:	4e10      	ldr	r6, [pc, #64]	; (16f14 <sym_RUQBFILZ5CHV2AAL6C3D2J5Y33TCCAPZTHBGZ3A+0x5c>)
   16ed2:	2400      	movs	r4, #0
   16ed4:	4f0f      	ldr	r7, [pc, #60]	; (16f14 <sym_RUQBFILZ5CHV2AAL6C3D2J5Y33TCCAPZTHBGZ3A+0x5c>)
   16ed6:	3508      	adds	r5, #8
   16ed8:	3610      	adds	r6, #16
   16eda:	b928      	cbnz	r0, 16ee8 <sym_RUQBFILZ5CHV2AAL6C3D2J5Y33TCCAPZTHBGZ3A+0x30>
   16edc:	f001 f88b 	bl	17ff6 <sym_H2QJCU2ORTYAFBAQQ2FHUYIAZO4HCXEKCQ4SS2Q>
   16ee0:	b910      	cbnz	r0, 16ee8 <sym_RUQBFILZ5CHV2AAL6C3D2J5Y33TCCAPZTHBGZ3A+0x30>
   16ee2:	f001 f892 	bl	1800a <sym_SWIBDSDMHUYNCG5ZWLB52J7NETJIUBPCO5IIQFA>
   16ee6:	b108      	cbz	r0, 16eec <sym_RUQBFILZ5CHV2AAL6C3D2J5Y33TCCAPZTHBGZ3A+0x34>
   16ee8:	2224      	movs	r2, #36	; 0x24
   16eea:	e006      	b.n	16efa <sym_RUQBFILZ5CHV2AAL6C3D2J5Y33TCCAPZTHBGZ3A+0x42>
   16eec:	f001 f8cd 	bl	1808a <sym_USR4MDT6VMTQLOGKNN4MALBZ3GJPD2KOEY4HFAQ>
   16ef0:	b910      	cbnz	r0, 16ef8 <sym_RUQBFILZ5CHV2AAL6C3D2J5Y33TCCAPZTHBGZ3A+0x40>
   16ef2:	f001 f8c0 	bl	18076 <sym_6PVOPWDLWTXOTRZZ7LP36TLYTLPTQHNAUQNFHEA>
   16ef6:	b140      	cbz	r0, 16f0a <sym_RUQBFILZ5CHV2AAL6C3D2J5Y33TCCAPZTHBGZ3A+0x52>
   16ef8:	2240      	movs	r2, #64	; 0x40
   16efa:	21ff      	movs	r1, #255	; 0xff
   16efc:	4638      	mov	r0, r7
   16efe:	f001 f95a 	bl	181b6 <sym_VSILKYHVQ5DVF6LG5MG267DQVA3A2XZQ6FSCLXA>
   16f02:	602c      	str	r4, [r5, #0]
   16f04:	6034      	str	r4, [r6, #0]
   16f06:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
   16f0a:	2238      	movs	r2, #56	; 0x38
   16f0c:	e7f5      	b.n	16efa <sym_RUQBFILZ5CHV2AAL6C3D2J5Y33TCCAPZTHBGZ3A+0x42>
   16f0e:	0000      	.short	0x0000
   16f10:	20000fcc 	.word	0x20000fcc
   16f14:	40000e00 	.word	0x40000e00

00016f18 <sym_GI7KSEEMTJQ7HR2XTQJ6A3EAB54YYLMWKNL2RBA>:
   16f18:	4801      	ldr	r0, [pc, #4]	; (16f20 <sym_GI7KSEEMTJQ7HR2XTQJ6A3EAB54YYLMWKNL2RBA+0x8>)
   16f1a:	69c0      	ldr	r0, [r0, #28]
   16f1c:	4770      	bx	lr
   16f1e:	0000      	.short	0x0000
   16f20:	20000fcc 	.word	0x20000fcc

00016f24 <sym_ARLNRKQ66P65CL63VENK3NR6NFAZLWPJOOVV7RQ>:
   16f24:	4814      	ldr	r0, [pc, #80]	; (16f78 <sym_ARLNRKQ66P65CL63VENK3NR6NFAZLWPJOOVV7RQ+0x54>)
   16f26:	b510      	push	{r4, lr}
   16f28:	f890 1021 	ldrb.w	r1, [r0, #33]	; 0x21
   16f2c:	7a40      	ldrb	r0, [r0, #9]
   16f2e:	b141      	cbz	r1, 16f42 <sym_ARLNRKQ66P65CL63VENK3NR6NFAZLWPJOOVV7RQ+0x1e>
   16f30:	2902      	cmp	r1, #2
   16f32:	d00b      	beq.n	16f4c <sym_ARLNRKQ66P65CL63VENK3NR6NFAZLWPJOOVV7RQ+0x28>
   16f34:	2802      	cmp	r0, #2
   16f36:	d009      	beq.n	16f4c <sym_ARLNRKQ66P65CL63VENK3NR6NFAZLWPJOOVV7RQ+0x28>
   16f38:	2901      	cmp	r1, #1
   16f3a:	d00b      	beq.n	16f54 <sym_ARLNRKQ66P65CL63VENK3NR6NFAZLWPJOOVV7RQ+0x30>
   16f3c:	2801      	cmp	r0, #1
   16f3e:	d009      	beq.n	16f54 <sym_ARLNRKQ66P65CL63VENK3NR6NFAZLWPJOOVV7RQ+0x30>
   16f40:	e015      	b.n	16f6e <sym_ARLNRKQ66P65CL63VENK3NR6NFAZLWPJOOVV7RQ+0x4a>
   16f42:	2800      	cmp	r0, #0
   16f44:	d1f6      	bne.n	16f34 <sym_ARLNRKQ66P65CL63VENK3NR6NFAZLWPJOOVV7RQ+0x10>
   16f46:	f44f 71d9 	mov.w	r1, #434	; 0x1b2
   16f4a:	e00d      	b.n	16f68 <sym_ARLNRKQ66P65CL63VENK3NR6NFAZLWPJOOVV7RQ+0x44>
   16f4c:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
   16f50:	f000 bc16 	b.w	17780 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x2d8>
   16f54:	4809      	ldr	r0, [pc, #36]	; (16f7c <sym_ARLNRKQ66P65CL63VENK3NR6NFAZLWPJOOVV7RQ+0x58>)
   16f56:	6800      	ldr	r0, [r0, #0]
   16f58:	f000 000f 	and.w	r0, r0, #15
   16f5c:	2803      	cmp	r0, #3
   16f5e:	d006      	beq.n	16f6e <sym_ARLNRKQ66P65CL63VENK3NR6NFAZLWPJOOVV7RQ+0x4a>
   16f60:	2804      	cmp	r0, #4
   16f62:	d006      	beq.n	16f72 <sym_ARLNRKQ66P65CL63VENK3NR6NFAZLWPJOOVV7RQ+0x4e>
   16f64:	f240 11e7 	movw	r1, #487	; 0x1e7
   16f68:	203e      	movs	r0, #62	; 0x3e
   16f6a:	f7f9 f83b 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   16f6e:	2001      	movs	r0, #1
   16f70:	bd10      	pop	{r4, pc}
   16f72:	2002      	movs	r0, #2
   16f74:	bd10      	pop	{r4, pc}
   16f76:	0000      	.short	0x0000
   16f78:	20000fcc 	.word	0x20000fcc
   16f7c:	40001510 	.word	0x40001510

00016f80 <sym_YKV5VFBUMD7K2LRWZ6WWYBEL5ESMQ4SDYYBDIPI>:
   16f80:	4801      	ldr	r0, [pc, #4]	; (16f88 <sym_YKV5VFBUMD7K2LRWZ6WWYBEL5ESMQ4SDYYBDIPI+0x8>)
   16f82:	6980      	ldr	r0, [r0, #24]
   16f84:	4770      	bx	lr
   16f86:	0000      	.short	0x0000
   16f88:	20000fcc 	.word	0x20000fcc

00016f8c <sym_2YSDS7VWGMSD5CN64D2VGQIYXBV3A6NJCHWFZEY>:
   16f8c:	b510      	push	{r4, lr}
   16f8e:	f000 fc61 	bl	17854 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x3ac>
   16f92:	f7ff fe1d 	bl	16bd0 <sym_A5S3P57NWYYY5XJWBYERU6H4QSVP5TCTU7HKA5Y>
   16f96:	f004 fe8b 	bl	1bcb0 <sym_DSSXRKAIB7ZUK7R2G3EQLOMJRLX6MVTLTDBXFXI>
   16f9a:	480f      	ldr	r0, [pc, #60]	; (16fd8 <sym_2YSDS7VWGMSD5CN64D2VGQIYXBV3A6NJCHWFZEY+0x4c>)
   16f9c:	4a0f      	ldr	r2, [pc, #60]	; (16fdc <sym_2YSDS7VWGMSD5CN64D2VGQIYXBV3A6NJCHWFZEY+0x50>)
   16f9e:	6a81      	ldr	r1, [r0, #40]	; 0x28
   16fa0:	f441 0180 	orr.w	r1, r1, #4194304	; 0x400000
   16fa4:	6011      	str	r1, [r2, #0]
   16fa6:	2400      	movs	r4, #0
   16fa8:	6284      	str	r4, [r0, #40]	; 0x28
   16faa:	7304      	strb	r4, [r0, #12]
   16fac:	61c4      	str	r4, [r0, #28]
   16fae:	6184      	str	r4, [r0, #24]
   16fb0:	f000 fc50 	bl	17854 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x3ac>
   16fb4:	480a      	ldr	r0, [pc, #40]	; (16fe0 <sym_2YSDS7VWGMSD5CN64D2VGQIYXBV3A6NJCHWFZEY+0x54>)
   16fb6:	f8c0 4148 	str.w	r4, [r0, #328]	; 0x148
   16fba:	f8c0 4144 	str.w	r4, [r0, #324]	; 0x144
   16fbe:	f8c0 4140 	str.w	r4, [r0, #320]	; 0x140
   16fc2:	f8c0 414c 	str.w	r4, [r0, #332]	; 0x14c
   16fc6:	2001      	movs	r0, #1
   16fc8:	f004 feab 	bl	1bd22 <sym_XPKSFPKFBNSTZZU4FUMGC3XRHAVS24BBL53HRMA+0x32>
   16fcc:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
   16fd0:	2001      	movs	r0, #1
   16fd2:	f004 be99 	b.w	1bd08 <sym_XPKSFPKFBNSTZZU4FUMGC3XRHAVS24BBL53HRMA+0x18>
   16fd6:	0000      	.short	0x0000
   16fd8:	20000fcc 	.word	0x20000fcc
   16fdc:	4001f508 	.word	0x4001f508
   16fe0:	40008000 	.word	0x40008000

00016fe4 <sym_JQ5GTNCJKXERB3SSKQRXLQOKWJQVRNEOVZZZVXI>:
   16fe4:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   16fe8:	2001      	movs	r0, #1
   16fea:	f004 fe9a 	bl	1bd22 <sym_XPKSFPKFBNSTZZU4FUMGC3XRHAVS24BBL53HRMA+0x32>
   16fee:	4838      	ldr	r0, [pc, #224]	; (170d0 <sym_JQ5GTNCJKXERB3SSKQRXLQOKWJQVRNEOVZZZVXI+0xec>)
   16ff0:	2400      	movs	r4, #0
   16ff2:	6004      	str	r4, [r0, #0]
   16ff4:	2601      	movs	r6, #1
   16ff6:	6006      	str	r6, [r0, #0]
   16ff8:	f001 f81d 	bl	18036 <sym_6AONFMPWPBAZBMQ4KY5PX7QPX2FM4UPZQRFPZSQ>
   16ffc:	4d35      	ldr	r5, [pc, #212]	; (170d4 <sym_JQ5GTNCJKXERB3SSKQRXLQOKWJQVRNEOVZZZVXI+0xf0>)
   16ffe:	b118      	cbz	r0, 17008 <sym_JQ5GTNCJKXERB3SSKQRXLQOKWJQVRNEOVZZZVXI+0x24>
   17000:	6828      	ldr	r0, [r5, #0]
   17002:	f440 6080 	orr.w	r0, r0, #1024	; 0x400
   17006:	6028      	str	r0, [r5, #0]
   17008:	f001 f809 	bl	1801e <sym_QPP3IZFSWHUV4JQ6ODMIVIARPB4PQYUFESV7BRQ>
   1700c:	b128      	cbz	r0, 1701a <sym_JQ5GTNCJKXERB3SSKQRXLQOKWJQVRNEOVZZZVXI+0x36>
   1700e:	6828      	ldr	r0, [r5, #0]
   17010:	4931      	ldr	r1, [pc, #196]	; (170d8 <sym_JQ5GTNCJKXERB3SSKQRXLQOKWJQVRNEOVZZZVXI+0xf4>)
   17012:	f020 0069 	bic.w	r0, r0, #105	; 0x69
   17016:	4308      	orrs	r0, r1
   17018:	6028      	str	r0, [r5, #0]
   1701a:	f001 f81c 	bl	18056 <sym_YNH6KDZL2GMJ2KPUX5DEER63BRE7IOGBY3KCQAQ>
   1701e:	b138      	cbz	r0, 17030 <sym_JQ5GTNCJKXERB3SSKQRXLQOKWJQVRNEOVZZZVXI+0x4c>
   17020:	482c      	ldr	r0, [pc, #176]	; (170d4 <sym_JQ5GTNCJKXERB3SSKQRXLQOKWJQVRNEOVZZZVXI+0xf0>)
   17022:	1d00      	adds	r0, r0, #4
   17024:	6801      	ldr	r1, [r0, #0]
   17026:	f421 417f 	bic.w	r1, r1, #65280	; 0xff00
   1702a:	f441 51b0 	orr.w	r1, r1, #5632	; 0x1600
   1702e:	6001      	str	r1, [r0, #0]
   17030:	4928      	ldr	r1, [pc, #160]	; (170d4 <sym_JQ5GTNCJKXERB3SSKQRXLQOKWJQVRNEOVZZZVXI+0xf0>)
   17032:	482a      	ldr	r0, [pc, #168]	; (170dc <sym_JQ5GTNCJKXERB3SSKQRXLQOKWJQVRNEOVZZZVXI+0xf8>)
   17034:	313c      	adds	r1, #60	; 0x3c
   17036:	6008      	str	r0, [r1, #0]
   17038:	f7f8 fec0 	bl	fdbc <mpsl_fem_device_config_254_apply_get>
   1703c:	b140      	cbz	r0, 17050 <sym_JQ5GTNCJKXERB3SSKQRXLQOKWJQVRNEOVZZZVXI+0x6c>
   1703e:	f04f 5080 	mov.w	r0, #268435456	; 0x10000000
   17042:	f8d0 0330 	ldr.w	r0, [r0, #816]	; 0x330
   17046:	1c41      	adds	r1, r0, #1
   17048:	d002      	beq.n	17050 <sym_JQ5GTNCJKXERB3SSKQRXLQOKWJQVRNEOVZZZVXI+0x6c>
   1704a:	4922      	ldr	r1, [pc, #136]	; (170d4 <sym_JQ5GTNCJKXERB3SSKQRXLQOKWJQVRNEOVZZZVXI+0xf0>)
   1704c:	3110      	adds	r1, #16
   1704e:	6008      	str	r0, [r1, #0]
   17050:	f04f 2010 	mov.w	r0, #268439552	; 0x10001000
   17054:	6e00      	ldr	r0, [r0, #96]	; 0x60
   17056:	1c41      	adds	r1, r0, #1
   17058:	d004      	beq.n	17064 <sym_JQ5GTNCJKXERB3SSKQRXLQOKWJQVRNEOVZZZVXI+0x80>
   1705a:	4921      	ldr	r1, [pc, #132]	; (170e0 <sym_JQ5GTNCJKXERB3SSKQRXLQOKWJQVRNEOVZZZVXI+0xfc>)
   1705c:	680a      	ldr	r2, [r1, #0]
   1705e:	f360 4217 	bfi	r2, r0, #16, #8
   17062:	600a      	str	r2, [r1, #0]
   17064:	491e      	ldr	r1, [pc, #120]	; (170e0 <sym_JQ5GTNCJKXERB3SSKQRXLQOKWJQVRNEOVZZZVXI+0xfc>)
   17066:	f240 605b 	movw	r0, #1627	; 0x65b
   1706a:	3954      	subs	r1, #84	; 0x54
   1706c:	6008      	str	r0, [r1, #0]
   1706e:	1f09      	subs	r1, r1, #4
   17070:	f240 1003 	movw	r0, #259	; 0x103
   17074:	6008      	str	r0, [r1, #0]
   17076:	1f08      	subs	r0, r1, #4
   17078:	6006      	str	r6, [r0, #0]
   1707a:	2001      	movs	r0, #1
   1707c:	f000 fc68 	bl	17950 <sym_BAE5AID2574UQHWOKHY55745PJT6HXY2EXKBH7Y>
   17080:	4917      	ldr	r1, [pc, #92]	; (170e0 <sym_JQ5GTNCJKXERB3SSKQRXLQOKWJQVRNEOVZZZVXI+0xfc>)
   17082:	f240 1001 	movw	r0, #257	; 0x101
   17086:	31c4      	adds	r1, #196	; 0xc4
   17088:	6008      	str	r0, [r1, #0]
   1708a:	4e16      	ldr	r6, [pc, #88]	; (170e4 <sym_JQ5GTNCJKXERB3SSKQRXLQOKWJQVRNEOVZZZVXI+0x100>)
   1708c:	2502      	movs	r5, #2
   1708e:	f8c6 5200 	str.w	r5, [r6, #512]	; 0x200
   17092:	4916      	ldr	r1, [pc, #88]	; (170ec <sym_JQ5GTNCJKXERB3SSKQRXLQOKWJQVRNEOVZZZVXI+0x108>)
   17094:	4814      	ldr	r0, [pc, #80]	; (170e8 <sym_JQ5GTNCJKXERB3SSKQRXLQOKWJQVRNEOVZZZVXI+0x104>)
   17096:	6008      	str	r0, [r1, #0]
   17098:	4815      	ldr	r0, [pc, #84]	; (170f0 <sym_JQ5GTNCJKXERB3SSKQRXLQOKWJQVRNEOVZZZVXI+0x10c>)
   1709a:	4f16      	ldr	r7, [pc, #88]	; (170f4 <sym_JQ5GTNCJKXERB3SSKQRXLQOKWJQVRNEOVZZZVXI+0x110>)
   1709c:	f506 7600 	add.w	r6, r6, #512	; 0x200
   170a0:	8604      	strh	r4, [r0, #48]	; 0x30
   170a2:	3010      	adds	r0, #16
   170a4:	61c4      	str	r4, [r0, #28]
   170a6:	f880 402c 	strb.w	r4, [r0, #44]	; 0x2c
   170aa:	703c      	strb	r4, [r7, #0]
   170ac:	2001      	movs	r0, #1
   170ae:	f004 fe2b 	bl	1bd08 <sym_XPKSFPKFBNSTZZU4FUMGC3XRHAVS24BBL53HRMA+0x18>
   170b2:	2010      	movs	r0, #16
   170b4:	f8c6 0104 	str.w	r0, [r6, #260]	; 0x104
   170b8:	f04f 20e0 	mov.w	r0, #3758153728	; 0xe000e000
   170bc:	f8c0 5100 	str.w	r5, [r0, #256]	; 0x100
   170c0:	6878      	ldr	r0, [r7, #4]
   170c2:	2800      	cmp	r0, #0
   170c4:	d002      	beq.n	170cc <sym_JQ5GTNCJKXERB3SSKQRXLQOKWJQVRNEOVZZZVXI+0xe8>
   170c6:	e8bd 41f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, lr}
   170ca:	4700      	bx	r0
   170cc:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
   170d0:	40001ffc 	.word	0x40001ffc
   170d4:	4000173c 	.word	0x4000173c
   170d8:	80000096 	.word	0x80000096
   170dc:	8900002c 	.word	0x8900002c
   170e0:	4000158c 	.word	0x4000158c
   170e4:	40001000 	.word	0x40001000
   170e8:	0c0e0000 	.word	0x0c0e0000
   170ec:	4001f508 	.word	0x4001f508
   170f0:	20000fbc 	.word	0x20000fbc
   170f4:	20000270 	.word	0x20000270

000170f8 <sym_HE5JGYEZFIITGQL7PMATDHSORSCK7HJIY5UXOZA>:
   170f8:	4901      	ldr	r1, [pc, #4]	; (17100 <sym_HE5JGYEZFIITGQL7PMATDHSORSCK7HJIY5UXOZA+0x8>)
   170fa:	7508      	strb	r0, [r1, #20]
   170fc:	4770      	bx	lr
   170fe:	0000      	.short	0x0000
   17100:	20000fcc 	.word	0x20000fcc

00017104 <sym_LPFN6QJEOHBT4AP2K7MEYWDZW35U5VHIHXOA54I>:
   17104:	4904      	ldr	r1, [pc, #16]	; (17118 <sym_LPFN6QJEOHBT4AP2K7MEYWDZW35U5VHIHXOA54I+0x14>)
   17106:	6008      	str	r0, [r1, #0]
   17108:	4804      	ldr	r0, [pc, #16]	; (1711c <sym_LPFN6QJEOHBT4AP2K7MEYWDZW35U5VHIHXOA54I+0x18>)
   1710a:	f810 1f2c 	ldrb.w	r1, [r0, #44]!
   1710e:	f041 0101 	orr.w	r1, r1, #1
   17112:	7001      	strb	r1, [r0, #0]
   17114:	f000 ba62 	b.w	175dc <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x134>
   17118:	40001504 	.word	0x40001504
   1711c:	20000fcc 	.word	0x20000fcc

00017120 <sym_E7IS652W2J5N5UTHP752WOA4YNSR7E5S5H4J2AA>:
   17120:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
   17124:	4e35      	ldr	r6, [pc, #212]	; (171fc <sym_E7IS652W2J5N5UTHP752WOA4YNSR7E5S5H4J2AA+0xdc>)
   17126:	4607      	mov	r7, r0
   17128:	f04f 6040 	mov.w	r0, #201326592	; 0xc000000
   1712c:	468a      	mov	sl, r1
   1712e:	4614      	mov	r4, r2
   17130:	6030      	str	r0, [r6, #0]
   17132:	4610      	mov	r0, r2
   17134:	f000 fc0c 	bl	17950 <sym_BAE5AID2574UQHWOKHY55745PJT6HXY2EXKBH7Y>
   17138:	f000 f9d8 	bl	174ec <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x44>
   1713c:	f8df 90c0 	ldr.w	r9, [pc, #192]	; 17200 <sym_E7IS652W2J5N5UTHP752WOA4YNSR7E5S5H4J2AA+0xe0>
   17140:	4d30      	ldr	r5, [pc, #192]	; (17204 <sym_E7IS652W2J5N5UTHP752WOA4YNSR7E5S5H4J2AA+0xe4>)
   17142:	f04f 0801 	mov.w	r8, #1
   17146:	b127      	cbz	r7, 17152 <sym_E7IS652W2J5N5UTHP752WOA4YNSR7E5S5H4J2AA+0x32>
   17148:	2f01      	cmp	r7, #1
   1714a:	d01d      	beq.n	17188 <sym_E7IS652W2J5N5UTHP752WOA4YNSR7E5S5H4J2AA+0x68>
   1714c:	f240 7122 	movw	r1, #1826	; 0x722
   17150:	e04a      	b.n	171e8 <sym_E7IS652W2J5N5UTHP752WOA4YNSR7E5S5H4J2AA+0xc8>
   17152:	4620      	mov	r0, r4
   17154:	f000 f9ea 	bl	1752c <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x84>
   17158:	4620      	mov	r0, r4
   1715a:	f000 f9ab 	bl	174b4 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0xc>
   1715e:	2c02      	cmp	r4, #2
   17160:	d00f      	beq.n	17182 <sym_E7IS652W2J5N5UTHP752WOA4YNSR7E5S5H4J2AA+0x62>
   17162:	f640 0034 	movw	r0, #2100	; 0x834
   17166:	bf00      	nop
   17168:	f649 51f8 	movw	r1, #40440	; 0x9df8
   1716c:	4401      	add	r1, r0
   1716e:	4650      	mov	r0, sl
   17170:	f000 fb92 	bl	17898 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x3f0>
   17174:	4604      	mov	r4, r0
   17176:	4648      	mov	r0, r9
   17178:	f000 fb7a 	bl	17870 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x3c8>
   1717c:	f885 8009 	strb.w	r8, [r5, #9]
   17180:	e014      	b.n	171ac <sym_E7IS652W2J5N5UTHP752WOA4YNSR7E5S5H4J2AA+0x8c>
   17182:	f44f 707a 	mov.w	r0, #1000	; 0x3e8
   17186:	e7ef      	b.n	17168 <sym_E7IS652W2J5N5UTHP752WOA4YNSR7E5S5H4J2AA+0x48>
   17188:	f000 f9f8 	bl	1757c <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0xd4>
   1718c:	f000 fb46 	bl	1781c <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x374>
   17190:	f000 fa70 	bl	17674 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x1cc>
   17194:	f649 71ba 	movw	r1, #40890	; 0x9fba
   17198:	4650      	mov	r0, sl
   1719a:	f000 fb7d 	bl	17898 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x3f0>
   1719e:	4604      	mov	r4, r0
   171a0:	4817      	ldr	r0, [pc, #92]	; (17200 <sym_E7IS652W2J5N5UTHP752WOA4YNSR7E5S5H4J2AA+0xe0>)
   171a2:	1d00      	adds	r0, r0, #4
   171a4:	f000 fb64 	bl	17870 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x3c8>
   171a8:	2002      	movs	r0, #2
   171aa:	7268      	strb	r0, [r5, #9]
   171ac:	4816      	ldr	r0, [pc, #88]	; (17208 <sym_E7IS652W2J5N5UTHP752WOA4YNSR7E5S5H4J2AA+0xe8>)
   171ae:	6004      	str	r4, [r0, #0]
   171b0:	4917      	ldr	r1, [pc, #92]	; (17210 <sym_E7IS652W2J5N5UTHP752WOA4YNSR7E5S5H4J2AA+0xf0>)
   171b2:	4816      	ldr	r0, [pc, #88]	; (1720c <sym_E7IS652W2J5N5UTHP752WOA4YNSR7E5S5H4J2AA+0xec>)
   171b4:	f8c1 0510 	str.w	r0, [r1, #1296]	; 0x510
   171b8:	6aa8      	ldr	r0, [r5, #40]	; 0x28
   171ba:	f440 2000 	orr.w	r0, r0, #524288	; 0x80000
   171be:	62a8      	str	r0, [r5, #40]	; 0x28
   171c0:	f04f 6000 	mov.w	r0, #134217728	; 0x8000000
   171c4:	6030      	str	r0, [r6, #0]
   171c6:	2110      	movs	r1, #16
   171c8:	f8c9 1304 	str.w	r1, [r9, #772]	; 0x304
   171cc:	1200      	asrs	r0, r0, #8
   171ce:	6030      	str	r0, [r6, #0]
   171d0:	f000 fa3c 	bl	1764c <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x1a4>
   171d4:	490f      	ldr	r1, [pc, #60]	; (17214 <sym_E7IS652W2J5N5UTHP752WOA4YNSR7E5S5H4J2AA+0xf4>)
   171d6:	f8c1 804c 	str.w	r8, [r1, #76]	; 0x4c
   171da:	480b      	ldr	r0, [pc, #44]	; (17208 <sym_E7IS652W2J5N5UTHP752WOA4YNSR7E5S5H4J2AA+0xe8>)
   171dc:	300c      	adds	r0, #12
   171de:	6800      	ldr	r0, [r0, #0]
   171e0:	42a0      	cmp	r0, r4
   171e2:	d304      	bcc.n	171ee <sym_E7IS652W2J5N5UTHP752WOA4YNSR7E5S5H4J2AA+0xce>
   171e4:	f240 7149 	movw	r1, #1865	; 0x749
   171e8:	203e      	movs	r0, #62	; 0x3e
   171ea:	f7f8 fefb 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   171ee:	4621      	mov	r1, r4
   171f0:	4638      	mov	r0, r7
   171f2:	e8bd 47f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
   171f6:	f004 bdc5 	b.w	1bd84 <sym_K7DVDHTWL3F7TVQBJD7AJF4MCRCM54IIDUOJLTY+0x4>
   171fa:	0000      	.short	0x0000
   171fc:	4001f504 	.word	0x4001f504
   17200:	40001000 	.word	0x40001000
   17204:	20000fcc 	.word	0x20000fcc
   17208:	40008540 	.word	0x40008540
   1720c:	40008140 	.word	0x40008140
   17210:	4001f098 	.word	0x4001f098
   17214:	40008000 	.word	0x40008000

00017218 <sym_MBOR6QO7CTIMBTL5BVPURKFTQFZYFCUOAZ3M43Q>:
   17218:	4b0d      	ldr	r3, [pc, #52]	; (17250 <sym_MBOR6QO7CTIMBTL5BVPURKFTQFZYFCUOAZ3M43Q+0x38>)
   1721a:	b510      	push	{r4, lr}
   1721c:	71d8      	strb	r0, [r3, #7]
   1721e:	729a      	strb	r2, [r3, #10]
   17220:	b151      	cbz	r1, 17238 <sym_MBOR6QO7CTIMBTL5BVPURKFTQFZYFCUOAZ3M43Q+0x20>
   17222:	2002      	movs	r0, #2
   17224:	7218      	strb	r0, [r3, #8]
   17226:	2801      	cmp	r0, #1
   17228:	d008      	beq.n	1723c <sym_MBOR6QO7CTIMBTL5BVPURKFTQFZYFCUOAZ3M43Q+0x24>
   1722a:	2802      	cmp	r0, #2
   1722c:	d00f      	beq.n	1724e <sym_MBOR6QO7CTIMBTL5BVPURKFTQFZYFCUOAZ3M43Q+0x36>
   1722e:	f640 112a 	movw	r1, #2346	; 0x92a
   17232:	203e      	movs	r0, #62	; 0x3e
   17234:	f7f8 fed6 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   17238:	2001      	movs	r0, #1
   1723a:	e7f3      	b.n	17224 <sym_MBOR6QO7CTIMBTL5BVPURKFTQFZYFCUOAZ3M43Q+0xc>
   1723c:	7a58      	ldrb	r0, [r3, #9]
   1723e:	2802      	cmp	r0, #2
   17240:	d105      	bne.n	1724e <sym_MBOR6QO7CTIMBTL5BVPURKFTQFZYFCUOAZ3M43Q+0x36>
   17242:	f000 f99b 	bl	1757c <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0xd4>
   17246:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
   1724a:	f000 bae7 	b.w	1781c <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x374>
   1724e:	bd10      	pop	{r4, pc}
   17250:	20000fcc 	.word	0x20000fcc

00017254 <sym_VEC44ISWPJAJ32J57NYIBEMC7Q6QEP7J6SVR4BQ>:
   17254:	4901      	ldr	r1, [pc, #4]	; (1725c <sym_VEC44ISWPJAJ32J57NYIBEMC7Q6QEP7J6SVR4BQ+0x8>)
   17256:	2000      	movs	r0, #0
   17258:	6008      	str	r0, [r1, #0]
   1725a:	4770      	bx	lr
   1725c:	40008540 	.word	0x40008540

00017260 <sym_EZCFQXKGAFHY5HQVJOXWDLO45XWMEJQY5WUGZNI>:
   17260:	490a      	ldr	r1, [pc, #40]	; (1728c <sym_EZCFQXKGAFHY5HQVJOXWDLO45XWMEJQY5WUGZNI+0x2c>)
   17262:	b508      	push	{r3, lr}
   17264:	f8d1 211c 	ldr.w	r2, [r1, #284]	; 0x11c
   17268:	2a01      	cmp	r2, #1
   1726a:	d001      	beq.n	17270 <sym_EZCFQXKGAFHY5HQVJOXWDLO45XWMEJQY5WUGZNI+0x10>
   1726c:	2000      	movs	r0, #0
   1726e:	bd08      	pop	{r3, pc}
   17270:	4a07      	ldr	r2, [pc, #28]	; (17290 <sym_EZCFQXKGAFHY5HQVJOXWDLO45XWMEJQY5WUGZNI+0x30>)
   17272:	6812      	ldr	r2, [r2, #0]
   17274:	f002 027f 	and.w	r2, r2, #127	; 0x7f
   17278:	4252      	negs	r2, r2
   1727a:	7002      	strb	r2, [r0, #0]
   1727c:	2000      	movs	r0, #0
   1727e:	f8c1 011c 	str.w	r0, [r1, #284]	; 0x11c
   17282:	4804      	ldr	r0, [pc, #16]	; (17294 <sym_EZCFQXKGAFHY5HQVJOXWDLO45XWMEJQY5WUGZNI+0x34>)
   17284:	6800      	ldr	r0, [r0, #0]
   17286:	9000      	str	r0, [sp, #0]
   17288:	2001      	movs	r0, #1
   1728a:	bd08      	pop	{r3, pc}
   1728c:	40001000 	.word	0x40001000
   17290:	40001548 	.word	0x40001548
   17294:	4000111c 	.word	0x4000111c

00017298 <sym_YLRTPBVG5ROXKOW4KXUYITRUY3FD2MVZW5LF7ZA>:
   17298:	4a03      	ldr	r2, [pc, #12]	; (172a8 <sym_YLRTPBVG5ROXKOW4KXUYITRUY3FD2MVZW5LF7ZA+0x10>)
   1729a:	0e01      	lsrs	r1, r0, #24
   1729c:	6011      	str	r1, [r2, #0]
   1729e:	4902      	ldr	r1, [pc, #8]	; (172a8 <sym_YLRTPBVG5ROXKOW4KXUYITRUY3FD2MVZW5LF7ZA+0x10>)
   172a0:	0200      	lsls	r0, r0, #8
   172a2:	3908      	subs	r1, #8
   172a4:	6008      	str	r0, [r1, #0]
   172a6:	4770      	bx	lr
   172a8:	40001524 	.word	0x40001524

000172ac <sym_XD56LJG2JTRU4Q2V7WCY72EI3VTZICA3O4ERV2A>:
   172ac:	6800      	ldr	r0, [r0, #0]
   172ae:	4902      	ldr	r1, [pc, #8]	; (172b8 <sym_XD56LJG2JTRU4Q2V7WCY72EI3VTZICA3O4ERV2A+0xc>)
   172b0:	f020 407f 	bic.w	r0, r0, #4278190080	; 0xff000000
   172b4:	6008      	str	r0, [r1, #0]
   172b6:	4770      	bx	lr
   172b8:	4000153c 	.word	0x4000153c

000172bc <sym_EP3VAQLFLMU6UK5OW5A7IAQVZXTY4K6PQMSEVLY>:
   172bc:	b510      	push	{r4, lr}
   172be:	f000 fb23 	bl	17908 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x460>
   172c2:	4806      	ldr	r0, [pc, #24]	; (172dc <sym_EP3VAQLFLMU6UK5OW5A7IAQVZXTY4K6PQMSEVLY+0x20>)
   172c4:	6800      	ldr	r0, [r0, #0]
   172c6:	2803      	cmp	r0, #3
   172c8:	d001      	beq.n	172ce <sym_EP3VAQLFLMU6UK5OW5A7IAQVZXTY4K6PQMSEVLY+0x12>
   172ca:	280b      	cmp	r0, #11
   172cc:	d104      	bne.n	172d8 <sym_EP3VAQLFLMU6UK5OW5A7IAQVZXTY4K6PQMSEVLY+0x1c>
   172ce:	f240 218a 	movw	r1, #650	; 0x28a
   172d2:	203e      	movs	r0, #62	; 0x3e
   172d4:	f7f8 fe86 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   172d8:	bd10      	pop	{r4, pc}
   172da:	0000      	.short	0x0000
   172dc:	40001550 	.word	0x40001550

000172e0 <sym_ZQE76VUU7S5U7DETTZA65E75LHFWL5PGRN4JPHI>:
   172e0:	4901      	ldr	r1, [pc, #4]	; (172e8 <sym_ZQE76VUU7S5U7DETTZA65E75LHFWL5PGRN4JPHI+0x8>)
   172e2:	7548      	strb	r0, [r1, #21]
   172e4:	4770      	bx	lr
   172e6:	0000      	.short	0x0000
   172e8:	20000fcc 	.word	0x20000fcc

000172ec <sym_EMR2H7KEGRFFKS6A4P3ZPPGOJSTVXLGRI25MEYQ>:
   172ec:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
   172f0:	4d51      	ldr	r5, [pc, #324]	; (17438 <sym_EMR2H7KEGRFFKS6A4P3ZPPGOJSTVXLGRI25MEYQ+0x14c>)
   172f2:	2701      	movs	r7, #1
   172f4:	64ef      	str	r7, [r5, #76]	; 0x4c
   172f6:	4851      	ldr	r0, [pc, #324]	; (1743c <sym_EMR2H7KEGRFFKS6A4P3ZPPGOJSTVXLGRI25MEYQ+0x150>)
   172f8:	f8d0 9000 	ldr.w	r9, [r0]
   172fc:	4850      	ldr	r0, [pc, #320]	; (17440 <sym_EMR2H7KEGRFFKS6A4P3ZPPGOJSTVXLGRI25MEYQ+0x154>)
   172fe:	6800      	ldr	r0, [r0, #0]
   17300:	4c50      	ldr	r4, [pc, #320]	; (17444 <sym_EMR2H7KEGRFFKS6A4P3ZPPGOJSTVXLGRI25MEYQ+0x158>)
   17302:	e9c4 090c 	strd	r0, r9, [r4, #48]	; 0x30
   17306:	f000 f943 	bl	17590 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0xe8>
   1730a:	494f      	ldr	r1, [pc, #316]	; (17448 <sym_EMR2H7KEGRFFKS6A4P3ZPPGOJSTVXLGRI25MEYQ+0x15c>)
   1730c:	6aa0      	ldr	r0, [r4, #40]	; 0x28
   1730e:	6008      	str	r0, [r1, #0]
   17310:	f8df a138 	ldr.w	sl, [pc, #312]	; 1744c <sym_EMR2H7KEGRFFKS6A4P3ZPPGOJSTVXLGRI25MEYQ+0x160>
   17314:	2600      	movs	r6, #0
   17316:	62a6      	str	r6, [r4, #40]	; 0x28
   17318:	f8da 1200 	ldr.w	r1, [sl, #512]	; 0x200
   1731c:	f240 121d 	movw	r2, #285	; 0x11d
   17320:	4391      	bics	r1, r2
   17322:	f8ca 1200 	str.w	r1, [sl, #512]	; 0x200
   17326:	f884 602c 	strb.w	r6, [r4, #44]	; 0x2c
   1732a:	f8da 010c 	ldr.w	r0, [sl, #268]	; 0x10c
   1732e:	b900      	cbnz	r0, 17332 <sym_EMR2H7KEGRFFKS6A4P3ZPPGOJSTVXLGRI25MEYQ+0x46>
   17330:	64af      	str	r7, [r5, #72]	; 0x48
   17332:	f000 f9b1 	bl	17698 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x1f0>
   17336:	4605      	mov	r5, r0
   17338:	4840      	ldr	r0, [pc, #256]	; (1743c <sym_EMR2H7KEGRFFKS6A4P3ZPPGOJSTVXLGRI25MEYQ+0x150>)
   1733a:	1f00      	subs	r0, r0, #4
   1733c:	6800      	ldr	r0, [r0, #0]
   1733e:	61e0      	str	r0, [r4, #28]
   17340:	f7ff fdf0 	bl	16f24 <sym_ARLNRKQ66P65CL63VENK3NR6NFAZLWPJOOVV7RQ>
   17344:	f884 0020 	strb.w	r0, [r4, #32]
   17348:	7a60      	ldrb	r0, [r4, #9]
   1734a:	f884 0021 	strb.w	r0, [r4, #33]	; 0x21
   1734e:	61a6      	str	r6, [r4, #24]
   17350:	4e3f      	ldr	r6, [pc, #252]	; (17450 <sym_EMR2H7KEGRFFKS6A4P3ZPPGOJSTVXLGRI25MEYQ+0x164>)
   17352:	07a8      	lsls	r0, r5, #30
   17354:	d501      	bpl.n	1735a <sym_EMR2H7KEGRFFKS6A4P3ZPPGOJSTVXLGRI25MEYQ+0x6e>
   17356:	6830      	ldr	r0, [r6, #0]
   17358:	61a0      	str	r0, [r4, #24]
   1735a:	0728      	lsls	r0, r5, #28
   1735c:	d501      	bpl.n	17362 <sym_EMR2H7KEGRFFKS6A4P3ZPPGOJSTVXLGRI25MEYQ+0x76>
   1735e:	6830      	ldr	r0, [r6, #0]
   17360:	61a0      	str	r0, [r4, #24]
   17362:	f04f 0800 	mov.w	r8, #0
   17366:	4649      	mov	r1, r9
   17368:	4628      	mov	r0, r5
   1736a:	f000 fa1d 	bl	177a8 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x300>
   1736e:	b918      	cbnz	r0, 17378 <sym_EMR2H7KEGRFFKS6A4P3ZPPGOJSTVXLGRI25MEYQ+0x8c>
   17370:	f8ca 7010 	str.w	r7, [sl, #16]
   17374:	f04f 0801 	mov.w	r8, #1
   17378:	4f32      	ldr	r7, [pc, #200]	; (17444 <sym_EMR2H7KEGRFFKS6A4P3ZPPGOJSTVXLGRI25MEYQ+0x158>)
   1737a:	07e8      	lsls	r0, r5, #31
   1737c:	f1a7 0710 	sub.w	r7, r7, #16
   17380:	d002      	beq.n	17388 <sym_EMR2H7KEGRFFKS6A4P3ZPPGOJSTVXLGRI25MEYQ+0x9c>
   17382:	6838      	ldr	r0, [r7, #0]
   17384:	4780      	blx	r0
   17386:	e031      	b.n	173ec <sym_EMR2H7KEGRFFKS6A4P3ZPPGOJSTVXLGRI25MEYQ+0x100>
   17388:	07a8      	lsls	r0, r5, #30
   1738a:	d526      	bpl.n	173da <sym_EMR2H7KEGRFFKS6A4P3ZPPGOJSTVXLGRI25MEYQ+0xee>
   1738c:	0768      	lsls	r0, r5, #29
   1738e:	d41e      	bmi.n	173ce <sym_EMR2H7KEGRFFKS6A4P3ZPPGOJSTVXLGRI25MEYQ+0xe2>
   17390:	f000 fe61 	bl	18056 <sym_YNH6KDZL2GMJ2KPUX5DEER63BRE7IOGBY3KCQAQ>
   17394:	b9d8      	cbnz	r0, 173ce <sym_EMR2H7KEGRFFKS6A4P3ZPPGOJSTVXLGRI25MEYQ+0xe2>
   17396:	f000 fe4e 	bl	18036 <sym_6AONFMPWPBAZBMQ4KY5PX7QPX2FM4UPZQRFPZSQ>
   1739a:	b9c0      	cbnz	r0, 173ce <sym_EMR2H7KEGRFFKS6A4P3ZPPGOJSTVXLGRI25MEYQ+0xe2>
   1739c:	482d      	ldr	r0, [pc, #180]	; (17454 <sym_EMR2H7KEGRFFKS6A4P3ZPPGOJSTVXLGRI25MEYQ+0x168>)
   1739e:	6800      	ldr	r0, [r0, #0]
   173a0:	f3c0 5c42 	ubfx	ip, r0, #21, #3
   173a4:	f3c0 6300 	ubfx	r3, r0, #24, #1
   173a8:	f000 020f 	and.w	r2, r0, #15
   173ac:	f3c0 1103 	ubfx	r1, r0, #4, #4
   173b0:	f3c0 2003 	ubfx	r0, r0, #8, #4
   173b4:	b15b      	cbz	r3, 173ce <sym_EMR2H7KEGRFFKS6A4P3ZPPGOJSTVXLGRI25MEYQ+0xe2>
   173b6:	b10a      	cbz	r2, 173bc <sym_EMR2H7KEGRFFKS6A4P3ZPPGOJSTVXLGRI25MEYQ+0xd0>
   173b8:	b101      	cbz	r1, 173bc <sym_EMR2H7KEGRFFKS6A4P3ZPPGOJSTVXLGRI25MEYQ+0xd0>
   173ba:	b940      	cbnz	r0, 173ce <sym_EMR2H7KEGRFFKS6A4P3ZPPGOJSTVXLGRI25MEYQ+0xe2>
   173bc:	4825      	ldr	r0, [pc, #148]	; (17454 <sym_EMR2H7KEGRFFKS6A4P3ZPPGOJSTVXLGRI25MEYQ+0x168>)
   173be:	1d00      	adds	r0, r0, #4
   173c0:	6800      	ldr	r0, [r0, #0]
   173c2:	b120      	cbz	r0, 173ce <sym_EMR2H7KEGRFFKS6A4P3ZPPGOJSTVXLGRI25MEYQ+0xe2>
   173c4:	f1bc 0f03 	cmp.w	ip, #3
   173c8:	d201      	bcs.n	173ce <sym_EMR2H7KEGRFFKS6A4P3ZPPGOJSTVXLGRI25MEYQ+0xe2>
   173ca:	f045 0504 	orr.w	r5, r5, #4
   173ce:	f345 0080 	sbfx	r0, r5, #2, #1
   173d2:	4641      	mov	r1, r8
   173d4:	1c40      	adds	r0, r0, #1
   173d6:	687a      	ldr	r2, [r7, #4]
   173d8:	e007      	b.n	173ea <sym_EMR2H7KEGRFFKS6A4P3ZPPGOJSTVXLGRI25MEYQ+0xfe>
   173da:	f015 0f28 	tst.w	r5, #40	; 0x28
   173de:	d005      	beq.n	173ec <sym_EMR2H7KEGRFFKS6A4P3ZPPGOJSTVXLGRI25MEYQ+0x100>
   173e0:	f345 1140 	sbfx	r1, r5, #5, #1
   173e4:	68ba      	ldr	r2, [r7, #8]
   173e6:	4640      	mov	r0, r8
   173e8:	1c49      	adds	r1, r1, #1
   173ea:	4790      	blx	r2
   173ec:	06e8      	lsls	r0, r5, #27
   173ee:	d501      	bpl.n	173f4 <sym_EMR2H7KEGRFFKS6A4P3ZPPGOJSTVXLGRI25MEYQ+0x108>
   173f0:	68f8      	ldr	r0, [r7, #12]
   173f2:	4780      	blx	r0
   173f4:	7a60      	ldrb	r0, [r4, #9]
   173f6:	2802      	cmp	r0, #2
   173f8:	d11b      	bne.n	17432 <sym_EMR2H7KEGRFFKS6A4P3ZPPGOJSTVXLGRI25MEYQ+0x146>
   173fa:	7b20      	ldrb	r0, [r4, #12]
   173fc:	2800      	cmp	r0, #0
   173fe:	d018      	beq.n	17432 <sym_EMR2H7KEGRFFKS6A4P3ZPPGOJSTVXLGRI25MEYQ+0x146>
   17400:	2802      	cmp	r0, #2
   17402:	d004      	beq.n	1740e <sym_EMR2H7KEGRFFKS6A4P3ZPPGOJSTVXLGRI25MEYQ+0x122>
   17404:	2801      	cmp	r0, #1
   17406:	d006      	beq.n	17416 <sym_EMR2H7KEGRFFKS6A4P3ZPPGOJSTVXLGRI25MEYQ+0x12a>
   17408:	f640 3103 	movw	r1, #2819	; 0xb03
   1740c:	e009      	b.n	17422 <sym_EMR2H7KEGRFFKS6A4P3ZPPGOJSTVXLGRI25MEYQ+0x136>
   1740e:	6921      	ldr	r1, [r4, #16]
   17410:	69e0      	ldr	r0, [r4, #28]
   17412:	4408      	add	r0, r1
   17414:	e008      	b.n	17428 <sym_EMR2H7KEGRFFKS6A4P3ZPPGOJSTVXLGRI25MEYQ+0x13c>
   17416:	69e1      	ldr	r1, [r4, #28]
   17418:	6920      	ldr	r0, [r4, #16]
   1741a:	4288      	cmp	r0, r1
   1741c:	d804      	bhi.n	17428 <sym_EMR2H7KEGRFFKS6A4P3ZPPGOJSTVXLGRI25MEYQ+0x13c>
   1741e:	f640 3104 	movw	r1, #2820	; 0xb04
   17422:	203e      	movs	r0, #62	; 0x3e
   17424:	f7f8 fdde 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   17428:	6030      	str	r0, [r6, #0]
   1742a:	e8bd 47f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
   1742e:	f000 ba03 	b.w	17838 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x390>
   17432:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
   17436:	0000      	.short	0x0000
   17438:	40008000 	.word	0x40008000
   1743c:	4000854c 	.word	0x4000854c
   17440:	4000b504 	.word	0x4000b504
   17444:	20000fcc 	.word	0x20000fcc
   17448:	4001f508 	.word	0x4001f508
   1744c:	40001000 	.word	0x40001000
   17450:	40008544 	.word	0x40008544
   17454:	40001450 	.word	0x40001450

00017458 <sym_53FPWJRYQVPJEOZPLNZO6VOSTP72TYV5A36KFIY>:
   17458:	b570      	push	{r4, r5, r6, lr}
   1745a:	4b11      	ldr	r3, [pc, #68]	; (174a0 <sym_53FPWJRYQVPJEOZPLNZO6VOSTP72TYV5A36KFIY+0x48>)
   1745c:	888c      	ldrh	r4, [r1, #4]
   1745e:	eb03 0380 	add.w	r3, r3, r0, lsl #2
   17462:	f8c3 4620 	str.w	r4, [r3, #1568]	; 0x620
   17466:	780c      	ldrb	r4, [r1, #0]
   17468:	f8d1 1001 	ldr.w	r1, [r1, #1]
   1746c:	ea44 2101 	orr.w	r1, r4, r1, lsl #8
   17470:	f8c3 1600 	str.w	r1, [r3, #1536]	; 0x600
   17474:	4d0b      	ldr	r5, [pc, #44]	; (174a4 <sym_53FPWJRYQVPJEOZPLNZO6VOSTP72TYV5A36KFIY+0x4c>)
   17476:	6829      	ldr	r1, [r5, #0]
   17478:	f100 0608 	add.w	r6, r0, #8
   1747c:	2401      	movs	r4, #1
   1747e:	fa04 f306 	lsl.w	r3, r4, r6
   17482:	b132      	cbz	r2, 17492 <sym_53FPWJRYQVPJEOZPLNZO6VOSTP72TYV5A36KFIY+0x3a>
   17484:	2a01      	cmp	r2, #1
   17486:	d006      	beq.n	17496 <sym_53FPWJRYQVPJEOZPLNZO6VOSTP72TYV5A36KFIY+0x3e>
   17488:	f240 41c1 	movw	r1, #1217	; 0x4c1
   1748c:	203e      	movs	r0, #62	; 0x3e
   1748e:	f7f8 fda9 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   17492:	4399      	bics	r1, r3
   17494:	e000      	b.n	17498 <sym_53FPWJRYQVPJEOZPLNZO6VOSTP72TYV5A36KFIY+0x40>
   17496:	4319      	orrs	r1, r3
   17498:	4084      	lsls	r4, r0
   1749a:	430c      	orrs	r4, r1
   1749c:	602c      	str	r4, [r5, #0]
   1749e:	bd70      	pop	{r4, r5, r6, pc}
   174a0:	40001000 	.word	0x40001000
   174a4:	40001640 	.word	0x40001640

000174a8 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY>:
   174a8:	4901      	ldr	r1, [pc, #4]	; (174b0 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x8>)
   174aa:	2001      	movs	r0, #1
   174ac:	7008      	strb	r0, [r1, #0]
   174ae:	4770      	bx	lr
   174b0:	20000270 	.word	0x20000270
   174b4:	b510      	push	{r4, lr}
   174b6:	4604      	mov	r4, r0
   174b8:	f000 fdcd 	bl	18056 <sym_YNH6KDZL2GMJ2KPUX5DEER63BRE7IOGBY3KCQAQ>
   174bc:	2800      	cmp	r0, #0
   174be:	d00e      	beq.n	174de <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x36>
   174c0:	4a09      	ldr	r2, [pc, #36]	; (174e8 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x40>)
   174c2:	6811      	ldr	r1, [r2, #0]
   174c4:	0650      	lsls	r0, r2, #25
   174c6:	2c02      	cmp	r4, #2
   174c8:	f8d0 0320 	ldr.w	r0, [r0, #800]	; 0x320
   174cc:	d008      	beq.n	174e0 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x38>
   174ce:	f3c0 2006 	ubfx	r0, r0, #8, #7
   174d2:	bf00      	nop
   174d4:	f421 41fe 	bic.w	r1, r1, #32512	; 0x7f00
   174d8:	ea41 2000 	orr.w	r0, r1, r0, lsl #8
   174dc:	6010      	str	r0, [r2, #0]
   174de:	bd10      	pop	{r4, pc}
   174e0:	f3c0 6006 	ubfx	r0, r0, #24, #7
   174e4:	e7f6      	b.n	174d4 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x2c>
   174e6:	0000      	.short	0x0000
   174e8:	40001588 	.word	0x40001588
   174ec:	480d      	ldr	r0, [pc, #52]	; (17524 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x7c>)
   174ee:	7d40      	ldrb	r0, [r0, #21]
   174f0:	2825      	cmp	r0, #37	; 0x25
   174f2:	d007      	beq.n	17504 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x5c>
   174f4:	2826      	cmp	r0, #38	; 0x26
   174f6:	d007      	beq.n	17508 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x60>
   174f8:	2827      	cmp	r0, #39	; 0x27
   174fa:	d007      	beq.n	1750c <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x64>
   174fc:	280a      	cmp	r0, #10
   174fe:	d807      	bhi.n	17510 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x68>
   17500:	2204      	movs	r2, #4
   17502:	e006      	b.n	17512 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x6a>
   17504:	2102      	movs	r1, #2
   17506:	e007      	b.n	17518 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x70>
   17508:	211a      	movs	r1, #26
   1750a:	e005      	b.n	17518 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x70>
   1750c:	2150      	movs	r1, #80	; 0x50
   1750e:	e003      	b.n	17518 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x70>
   17510:	2206      	movs	r2, #6
   17512:	eb02 0140 	add.w	r1, r2, r0, lsl #1
   17516:	b2c9      	uxtb	r1, r1
   17518:	4a03      	ldr	r2, [pc, #12]	; (17528 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x80>)
   1751a:	6011      	str	r1, [r2, #0]
   1751c:	4902      	ldr	r1, [pc, #8]	; (17528 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x80>)
   1751e:	314c      	adds	r1, #76	; 0x4c
   17520:	6008      	str	r0, [r1, #0]
   17522:	4770      	bx	lr
   17524:	20000fcc 	.word	0x20000fcc
   17528:	40001508 	.word	0x40001508
   1752c:	4912      	ldr	r1, [pc, #72]	; (17578 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0xd0>)
   1752e:	b508      	push	{r3, lr}
   17530:	f991 2014 	ldrsb.w	r2, [r1, #20]
   17534:	7d49      	ldrb	r1, [r1, #21]
   17536:	2801      	cmp	r0, #1
   17538:	d00a      	beq.n	17550 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0xa8>
   1753a:	2802      	cmp	r0, #2
   1753c:	d00a      	beq.n	17554 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0xac>
   1753e:	2804      	cmp	r0, #4
   17540:	d00a      	beq.n	17558 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0xb0>
   17542:	2808      	cmp	r0, #8
   17544:	d00a      	beq.n	1755c <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0xb4>
   17546:	f240 31da 	movw	r1, #986	; 0x3da
   1754a:	2006      	movs	r0, #6
   1754c:	f7f8 fd4a 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   17550:	2000      	movs	r0, #0
   17552:	e004      	b.n	1755e <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0xb6>
   17554:	2001      	movs	r0, #1
   17556:	e002      	b.n	1755e <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0xb6>
   17558:	2003      	movs	r0, #3
   1755a:	e000      	b.n	1755e <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0xb6>
   1755c:	2002      	movs	r0, #2
   1755e:	466b      	mov	r3, sp
   17560:	f7f5 f848 	bl	c5f4 <sym_QV6CME4HLWJA6KQZ7HE7ECNT7UGKOYHKNHH6E7I>
   17564:	b118      	cbz	r0, 1756e <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0xc6>
   17566:	f240 41f3 	movw	r1, #1267	; 0x4f3
   1756a:	203e      	movs	r0, #62	; 0x3e
   1756c:	e7ee      	b.n	1754c <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0xa4>
   1756e:	f99d 0000 	ldrsb.w	r0, [sp]
   17572:	f000 f9e7 	bl	17944 <sym_L4JTLGMK2AWYAAPRB3O77773SG36X2NTZJ3FAHA>
   17576:	bd08      	pop	{r3, pc}
   17578:	20000fcc 	.word	0x20000fcc
   1757c:	4803      	ldr	r0, [pc, #12]	; (1758c <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0xe4>)
   1757e:	7a01      	ldrb	r1, [r0, #8]
   17580:	2901      	cmp	r1, #1
   17582:	d102      	bne.n	1758a <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0xe2>
   17584:	7a80      	ldrb	r0, [r0, #10]
   17586:	f7ff bfd1 	b.w	1752c <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x84>
   1758a:	4770      	bx	lr
   1758c:	20000fcc 	.word	0x20000fcc
   17590:	4805      	ldr	r0, [pc, #20]	; (175a8 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x100>)
   17592:	7a40      	ldrb	r0, [r0, #9]
   17594:	2801      	cmp	r0, #1
   17596:	d003      	beq.n	175a0 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0xf8>
   17598:	2802      	cmp	r0, #2
   1759a:	d103      	bne.n	175a4 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0xfc>
   1759c:	f004 bb70 	b.w	1bc80 <sym_PKZI2LNJRQFOGPY3Z6D7ENZHA2LDIAEYXBTZBJQ>
   175a0:	f004 bb7a 	b.w	1bc98 <sym_N6LF7X4QYONFKAWQRSSHARQMQTFUHJR6FXUMIWQ>
   175a4:	4770      	bx	lr
   175a6:	0000      	.short	0x0000
   175a8:	20000fcc 	.word	0x20000fcc
   175ac:	4809      	ldr	r0, [pc, #36]	; (175d4 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x12c>)
   175ae:	b508      	push	{r3, lr}
   175b0:	2100      	movs	r1, #0
   175b2:	f8c0 1100 	str.w	r1, [r0, #256]	; 0x100
   175b6:	f8c0 110c 	str.w	r1, [r0, #268]	; 0x10c
   175ba:	f8c0 1110 	str.w	r1, [r0, #272]	; 0x110
   175be:	f8c0 1104 	str.w	r1, [r0, #260]	; 0x104
   175c2:	f8c0 1114 	str.w	r1, [r0, #276]	; 0x114
   175c6:	f8c0 1118 	str.w	r1, [r0, #280]	; 0x118
   175ca:	4803      	ldr	r0, [pc, #12]	; (175d8 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x130>)
   175cc:	6800      	ldr	r0, [r0, #0]
   175ce:	9000      	str	r0, [sp, #0]
   175d0:	bd08      	pop	{r3, pc}
   175d2:	0000      	.short	0x0000
   175d4:	40001000 	.word	0x40001000
   175d8:	40001118 	.word	0x40001118
   175dc:	4816      	ldr	r0, [pc, #88]	; (17638 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x190>)
   175de:	b510      	push	{r4, lr}
   175e0:	f890 002c 	ldrb.w	r0, [r0, #44]	; 0x2c
   175e4:	07c1      	lsls	r1, r0, #31
   175e6:	d026      	beq.n	17636 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x18e>
   175e8:	0781      	lsls	r1, r0, #30
   175ea:	d513      	bpl.n	17614 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x16c>
   175ec:	4813      	ldr	r0, [pc, #76]	; (1763c <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x194>)
   175ee:	f8d0 1200 	ldr.w	r1, [r0, #512]	; 0x200
   175f2:	f041 0101 	orr.w	r1, r1, #1
   175f6:	f8c0 1200 	str.w	r1, [r0, #512]	; 0x200
   175fa:	4811      	ldr	r0, [pc, #68]	; (17640 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x198>)
   175fc:	6800      	ldr	r0, [r0, #0]
   175fe:	280b      	cmp	r0, #11
   17600:	d005      	beq.n	1760e <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x166>
   17602:	280a      	cmp	r0, #10
   17604:	d003      	beq.n	1760e <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x166>
   17606:	2803      	cmp	r0, #3
   17608:	d001      	beq.n	1760e <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x166>
   1760a:	2802      	cmp	r0, #2
   1760c:	d113      	bne.n	17636 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x18e>
   1760e:	f240 5123 	movw	r1, #1315	; 0x523
   17612:	e00d      	b.n	17630 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x188>
   17614:	0740      	lsls	r0, r0, #29
   17616:	d50e      	bpl.n	17636 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x18e>
   17618:	4808      	ldr	r0, [pc, #32]	; (1763c <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x194>)
   1761a:	490a      	ldr	r1, [pc, #40]	; (17644 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x19c>)
   1761c:	3008      	adds	r0, #8
   1761e:	f8c1 0514 	str.w	r0, [r1, #1300]	; 0x514
   17622:	4809      	ldr	r0, [pc, #36]	; (17648 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x1a0>)
   17624:	f8d0 0140 	ldr.w	r0, [r0, #320]	; 0x140
   17628:	2801      	cmp	r0, #1
   1762a:	d104      	bne.n	17636 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x18e>
   1762c:	f240 512a 	movw	r1, #1322	; 0x52a
   17630:	203e      	movs	r0, #62	; 0x3e
   17632:	f7f8 fcd7 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   17636:	bd10      	pop	{r4, pc}
   17638:	20000fcc 	.word	0x20000fcc
   1763c:	40001000 	.word	0x40001000
   17640:	40001550 	.word	0x40001550
   17644:	4001f098 	.word	0x4001f098
   17648:	40008000 	.word	0x40008000
   1764c:	4808      	ldr	r0, [pc, #32]	; (17670 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x1c8>)
   1764e:	4601      	mov	r1, r0
   17650:	79c2      	ldrb	r2, [r0, #7]
   17652:	f891 102c 	ldrb.w	r1, [r1, #44]	; 0x2c
   17656:	b112      	cbz	r2, 1765e <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x1b6>
   17658:	2a01      	cmp	r2, #1
   1765a:	d003      	beq.n	17664 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x1bc>
   1765c:	e006      	b.n	1766c <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x1c4>
   1765e:	f041 0102 	orr.w	r1, r1, #2
   17662:	e001      	b.n	17668 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x1c0>
   17664:	f041 0104 	orr.w	r1, r1, #4
   17668:	f880 102c 	strb.w	r1, [r0, #44]	; 0x2c
   1766c:	f7ff bfb6 	b.w	175dc <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x134>
   17670:	20000fcc 	.word	0x20000fcc
   17674:	b510      	push	{r4, lr}
   17676:	f000 fcee 	bl	18056 <sym_YNH6KDZL2GMJ2KPUX5DEER63BRE7IOGBY3KCQAQ>
   1767a:	2800      	cmp	r0, #0
   1767c:	d108      	bne.n	17690 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x1e8>
   1767e:	f000 fcda 	bl	18036 <sym_6AONFMPWPBAZBMQ4KY5PX7QPX2FM4UPZQRFPZSQ>
   17682:	2800      	cmp	r0, #0
   17684:	d104      	bne.n	17690 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x1e8>
   17686:	4803      	ldr	r0, [pc, #12]	; (17694 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x1ec>)
   17688:	6801      	ldr	r1, [r0, #0]
   1768a:	f441 21c0 	orr.w	r1, r1, #393216	; 0x60000
   1768e:	6001      	str	r1, [r0, #0]
   17690:	bd10      	pop	{r4, pc}
   17692:	0000      	.short	0x0000
   17694:	40001568 	.word	0x40001568
   17698:	b538      	push	{r3, r4, r5, lr}
   1769a:	4d32      	ldr	r5, [pc, #200]	; (17764 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x2bc>)
   1769c:	2400      	movs	r4, #0
   1769e:	7b28      	ldrb	r0, [r5, #12]
   176a0:	b120      	cbz	r0, 176ac <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x204>
   176a2:	4831      	ldr	r0, [pc, #196]	; (17768 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x2c0>)
   176a4:	f8d0 0144 	ldr.w	r0, [r0, #324]	; 0x144
   176a8:	2801      	cmp	r0, #1
   176aa:	d007      	beq.n	176bc <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x214>
   176ac:	2200      	movs	r2, #0
   176ae:	7a69      	ldrb	r1, [r5, #9]
   176b0:	482e      	ldr	r0, [pc, #184]	; (1776c <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x2c4>)
   176b2:	2901      	cmp	r1, #1
   176b4:	d004      	beq.n	176c0 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x218>
   176b6:	2902      	cmp	r1, #2
   176b8:	d00a      	beq.n	176d0 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x228>
   176ba:	e019      	b.n	176f0 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x248>
   176bc:	2201      	movs	r2, #1
   176be:	e7f6      	b.n	176ae <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x206>
   176c0:	f8d0 110c 	ldr.w	r1, [r0, #268]	; 0x10c
   176c4:	2901      	cmp	r1, #1
   176c6:	d001      	beq.n	176cc <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x224>
   176c8:	2400      	movs	r4, #0
   176ca:	e011      	b.n	176f0 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x248>
   176cc:	2408      	movs	r4, #8
   176ce:	e00f      	b.n	176f0 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x248>
   176d0:	f8d0 110c 	ldr.w	r1, [r0, #268]	; 0x10c
   176d4:	2901      	cmp	r1, #1
   176d6:	d006      	beq.n	176e6 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x23e>
   176d8:	2100      	movs	r1, #0
   176da:	4b25      	ldr	r3, [pc, #148]	; (17770 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x2c8>)
   176dc:	681b      	ldr	r3, [r3, #0]
   176de:	2b01      	cmp	r3, #1
   176e0:	d003      	beq.n	176ea <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x242>
   176e2:	2404      	movs	r4, #4
   176e4:	e002      	b.n	176ec <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x244>
   176e6:	2102      	movs	r1, #2
   176e8:	e7f7      	b.n	176da <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x232>
   176ea:	2400      	movs	r4, #0
   176ec:	430c      	orrs	r4, r1
   176ee:	4314      	orrs	r4, r2
   176f0:	f014 0f0b 	tst.w	r4, #11
   176f4:	d105      	bne.n	17702 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x25a>
   176f6:	f8d0 1110 	ldr.w	r1, [r0, #272]	; 0x110
   176fa:	2901      	cmp	r1, #1
   176fc:	d029      	beq.n	17752 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x2aa>
   176fe:	2100      	movs	r1, #0
   17700:	430c      	orrs	r4, r1
   17702:	491c      	ldr	r1, [pc, #112]	; (17774 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x2cc>)
   17704:	7809      	ldrb	r1, [r1, #0]
   17706:	b1d1      	cbz	r1, 1773e <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x296>
   17708:	491b      	ldr	r1, [pc, #108]	; (17778 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x2d0>)
   1770a:	6809      	ldr	r1, [r1, #0]
   1770c:	f011 0fff 	tst.w	r1, #255	; 0xff
   17710:	d003      	beq.n	1771a <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x272>
   17712:	f8d0 2114 	ldr.w	r2, [r0, #276]	; 0x114
   17716:	2a01      	cmp	r2, #1
   17718:	d000      	beq.n	1771c <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x274>
   1771a:	2200      	movs	r2, #0
   1771c:	f885 2022 	strb.w	r2, [r5, #34]	; 0x22
   17720:	f011 0fff 	tst.w	r1, #255	; 0xff
   17724:	d003      	beq.n	1772e <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x286>
   17726:	f8d0 0118 	ldr.w	r0, [r0, #280]	; 0x118
   1772a:	2801      	cmp	r0, #1
   1772c:	d000      	beq.n	17730 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x288>
   1772e:	2000      	movs	r0, #0
   17730:	f885 0023 	strb.w	r0, [r5, #35]	; 0x23
   17734:	480e      	ldr	r0, [pc, #56]	; (17770 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x2c8>)
   17736:	3010      	adds	r0, #16
   17738:	6800      	ldr	r0, [r0, #0]
   1773a:	f885 0024 	strb.w	r0, [r5, #36]	; 0x24
   1773e:	f7ff ff35 	bl	175ac <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x104>
   17742:	06e0      	lsls	r0, r4, #27
   17744:	d509      	bpl.n	1775a <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x2b2>
   17746:	0720      	lsls	r0, r4, #28
   17748:	d407      	bmi.n	1775a <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x2b2>
   1774a:	7a68      	ldrb	r0, [r5, #9]
   1774c:	2801      	cmp	r0, #1
   1774e:	d002      	beq.n	17756 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x2ae>
   17750:	e003      	b.n	1775a <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x2b2>
   17752:	2110      	movs	r1, #16
   17754:	e7d4      	b.n	17700 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x258>
   17756:	f044 0420 	orr.w	r4, r4, #32
   1775a:	4808      	ldr	r0, [pc, #32]	; (1777c <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x2d4>)
   1775c:	6800      	ldr	r0, [r0, #0]
   1775e:	9000      	str	r0, [sp, #0]
   17760:	4620      	mov	r0, r4
   17762:	bd38      	pop	{r3, r4, r5, pc}
   17764:	20000fcc 	.word	0x20000fcc
   17768:	40008000 	.word	0x40008000
   1776c:	40001000 	.word	0x40001000
   17770:	40001400 	.word	0x40001400
   17774:	20000270 	.word	0x20000270
   17778:	40001640 	.word	0x40001640
   1777c:	40008144 	.word	0x40008144
   17780:	4808      	ldr	r0, [pc, #32]	; (177a4 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x2fc>)
   17782:	b510      	push	{r4, lr}
   17784:	6800      	ldr	r0, [r0, #0]
   17786:	f000 000f 	and.w	r0, r0, #15
   1778a:	2803      	cmp	r0, #3
   1778c:	d006      	beq.n	1779c <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x2f4>
   1778e:	2804      	cmp	r0, #4
   17790:	d006      	beq.n	177a0 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x2f8>
   17792:	f240 2112 	movw	r1, #530	; 0x212
   17796:	203e      	movs	r0, #62	; 0x3e
   17798:	f7f8 fc24 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   1779c:	2001      	movs	r0, #1
   1779e:	bd10      	pop	{r4, pc}
   177a0:	2002      	movs	r0, #2
   177a2:	bd10      	pop	{r4, pc}
   177a4:	40001510 	.word	0x40001510
   177a8:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   177ac:	4c19      	ldr	r4, [pc, #100]	; (17814 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x36c>)
   177ae:	460d      	mov	r5, r1
   177b0:	7a21      	ldrb	r1, [r4, #8]
   177b2:	b129      	cbz	r1, 177c0 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x318>
   177b4:	f010 0f11 	tst.w	r0, #17
   177b8:	d00b      	beq.n	177d2 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x32a>
   177ba:	f7ff fa09 	bl	16bd0 <sym_A5S3P57NWYYY5XJWBYERU6H4QSVP5TCTU7HKA5Y>
   177be:	e027      	b.n	17810 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x368>
   177c0:	4915      	ldr	r1, [pc, #84]	; (17818 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x370>)
   177c2:	f04f 6040 	mov.w	r0, #201326592	; 0xc000000
   177c6:	6008      	str	r0, [r1, #0]
   177c8:	f000 f85e 	bl	17888 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x3e0>
   177cc:	2000      	movs	r0, #0
   177ce:	7320      	strb	r0, [r4, #12]
   177d0:	e01e      	b.n	17810 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x368>
   177d2:	2901      	cmp	r1, #1
   177d4:	d001      	beq.n	177da <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x332>
   177d6:	2601      	movs	r6, #1
   177d8:	e000      	b.n	177dc <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x334>
   177da:	2600      	movs	r6, #0
   177dc:	79e0      	ldrb	r0, [r4, #7]
   177de:	2801      	cmp	r0, #1
   177e0:	d00e      	beq.n	17800 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x358>
   177e2:	2700      	movs	r7, #0
   177e4:	f000 f850 	bl	17888 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x3e0>
   177e8:	2196      	movs	r1, #150	; 0x96
   177ea:	4630      	mov	r0, r6
   177ec:	f000 f862 	bl	178b4 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x40c>
   177f0:	4601      	mov	r1, r0
   177f2:	b14f      	cbz	r7, 17808 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x360>
   177f4:	353b      	adds	r5, #59	; 0x3b
   177f6:	428d      	cmp	r5, r1
   177f8:	d904      	bls.n	17804 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x35c>
   177fa:	2000      	movs	r0, #0
   177fc:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
   17800:	2701      	movs	r7, #1
   17802:	e7ef      	b.n	177e4 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x33c>
   17804:	2001      	movs	r0, #1
   17806:	71e0      	strb	r0, [r4, #7]
   17808:	7aa2      	ldrb	r2, [r4, #10]
   1780a:	4630      	mov	r0, r6
   1780c:	f7ff fc88 	bl	17120 <sym_E7IS652W2J5N5UTHP752WOA4YNSR7E5S5H4J2AA>
   17810:	2001      	movs	r0, #1
   17812:	e7f3      	b.n	177fc <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x354>
   17814:	20000fcc 	.word	0x20000fcc
   17818:	4001f508 	.word	0x4001f508
   1781c:	4805      	ldr	r0, [pc, #20]	; (17834 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x38c>)
   1781e:	2100      	movs	r1, #0
   17820:	f8c0 111c 	str.w	r1, [r0, #284]	; 0x11c
   17824:	f8d0 1200 	ldr.w	r1, [r0, #512]	; 0x200
   17828:	f441 7188 	orr.w	r1, r1, #272	; 0x110
   1782c:	f8c0 1200 	str.w	r1, [r0, #512]	; 0x200
   17830:	4770      	bx	lr
   17832:	0000      	.short	0x0000
   17834:	40001000 	.word	0x40001000
   17838:	4804      	ldr	r0, [pc, #16]	; (1784c <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x3a4>)
   1783a:	6a81      	ldr	r1, [r0, #40]	; 0x28
   1783c:	f441 0180 	orr.w	r1, r1, #4194304	; 0x400000
   17840:	6281      	str	r1, [r0, #40]	; 0x28
   17842:	4903      	ldr	r1, [pc, #12]	; (17850 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x3a8>)
   17844:	f44f 0080 	mov.w	r0, #4194304	; 0x400000
   17848:	6008      	str	r0, [r1, #0]
   1784a:	4770      	bx	lr
   1784c:	20000fcc 	.word	0x20000fcc
   17850:	4001f504 	.word	0x4001f504
   17854:	4905      	ldr	r1, [pc, #20]	; (1786c <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x3c4>)
   17856:	2000      	movs	r0, #0
   17858:	6008      	str	r0, [r1, #0]
   1785a:	1f09      	subs	r1, r1, #4
   1785c:	6008      	str	r0, [r1, #0]
   1785e:	1f09      	subs	r1, r1, #4
   17860:	6008      	str	r0, [r1, #0]
   17862:	4902      	ldr	r1, [pc, #8]	; (1786c <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x3c4>)
   17864:	1d09      	adds	r1, r1, #4
   17866:	6008      	str	r0, [r1, #0]
   17868:	4770      	bx	lr
   1786a:	0000      	.short	0x0000
   1786c:	40008548 	.word	0x40008548
   17870:	4903      	ldr	r1, [pc, #12]	; (17880 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x3d8>)
   17872:	79c9      	ldrb	r1, [r1, #7]
   17874:	2900      	cmp	r1, #0
   17876:	d102      	bne.n	1787e <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x3d6>
   17878:	4902      	ldr	r1, [pc, #8]	; (17884 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x3dc>)
   1787a:	f8c1 0514 	str.w	r0, [r1, #1300]	; 0x514
   1787e:	4770      	bx	lr
   17880:	20000fcc 	.word	0x20000fcc
   17884:	4001f098 	.word	0x4001f098
   17888:	4802      	ldr	r0, [pc, #8]	; (17894 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x3ec>)
   1788a:	2100      	movs	r1, #0
   1788c:	71c1      	strb	r1, [r0, #7]
   1788e:	7201      	strb	r1, [r0, #8]
   17890:	7241      	strb	r1, [r0, #9]
   17892:	4770      	bx	lr
   17894:	20000fcc 	.word	0x20000fcc
   17898:	4a05      	ldr	r2, [pc, #20]	; (178b0 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x408>)
   1789a:	79d2      	ldrb	r2, [r2, #7]
   1789c:	2a01      	cmp	r2, #1
   1789e:	d006      	beq.n	178ae <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x406>
   178a0:	f44f 727a 	mov.w	r2, #1000	; 0x3e8
   178a4:	f501 71fa 	add.w	r1, r1, #500	; 0x1f4
   178a8:	fbb1 f1f2 	udiv	r1, r1, r2
   178ac:	1a40      	subs	r0, r0, r1
   178ae:	4770      	bx	lr
   178b0:	20000fcc 	.word	0x20000fcc
   178b4:	b570      	push	{r4, r5, r6, lr}
   178b6:	4c13      	ldr	r4, [pc, #76]	; (17904 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x45c>)
   178b8:	4603      	mov	r3, r0
   178ba:	460d      	mov	r5, r1
   178bc:	f894 2021 	ldrb.w	r2, [r4, #33]	; 0x21
   178c0:	2000      	movs	r0, #0
   178c2:	b15a      	cbz	r2, 178dc <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x434>
   178c4:	4621      	mov	r1, r4
   178c6:	f891 1020 	ldrb.w	r1, [r1, #32]
   178ca:	b163      	cbz	r3, 178e6 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x43e>
   178cc:	2b01      	cmp	r3, #1
   178ce:	d111      	bne.n	178f4 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x44c>
   178d0:	2a01      	cmp	r2, #1
   178d2:	4628      	mov	r0, r5
   178d4:	d012      	beq.n	178fc <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x454>
   178d6:	f004 faad 	bl	1be34 <sym_2EA2WBXQOKCTPMK7YNDR6QM6MTGHJCDTPZEXNNA>
   178da:	e009      	b.n	178f0 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x448>
   178dc:	f240 7166 	movw	r1, #1894	; 0x766
   178e0:	203e      	movs	r0, #62	; 0x3e
   178e2:	f7f8 fb7f 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   178e6:	2a01      	cmp	r2, #1
   178e8:	4628      	mov	r0, r5
   178ea:	d004      	beq.n	178f6 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x44e>
   178ec:	f004 fab0 	bl	1be50 <sym_KM5SKFVNZKDXUQ7BDD3RZ5UCA5E3ZDVNWYJVR3Y>
   178f0:	69e1      	ldr	r1, [r4, #28]
   178f2:	4408      	add	r0, r1
   178f4:	bd70      	pop	{r4, r5, r6, pc}
   178f6:	f004 fac5 	bl	1be84 <sym_WGW6HZ6PNLYQSUJALICWZO27AY5UJWYCU6B6ACI>
   178fa:	e7f9      	b.n	178f0 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x448>
   178fc:	f004 fab3 	bl	1be66 <sym_WD6EQ3FQVKOAARDWHQJJC5SVKHQS7A2MF5YDCPA>
   17900:	e7f6      	b.n	178f0 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x448>
   17902:	0000      	.short	0x0000
   17904:	20000fcc 	.word	0x20000fcc
   17908:	b510      	push	{r4, lr}
   1790a:	2200      	movs	r2, #0
   1790c:	2901      	cmp	r1, #1
   1790e:	d008      	beq.n	17922 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x47a>
   17910:	2902      	cmp	r1, #2
   17912:	d004      	beq.n	1791e <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x476>
   17914:	f240 2169 	movw	r1, #617	; 0x269
   17918:	203e      	movs	r0, #62	; 0x3e
   1791a:	f7f8 fb63 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   1791e:	f04f 7280 	mov.w	r2, #16777216	; 0x1000000
   17922:	4905      	ldr	r1, [pc, #20]	; (17938 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x490>)
   17924:	430a      	orrs	r2, r1
   17926:	4905      	ldr	r1, [pc, #20]	; (1793c <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x494>)
   17928:	600a      	str	r2, [r1, #0]
   1792a:	4905      	ldr	r1, [pc, #20]	; (17940 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x498>)
   1792c:	4308      	orrs	r0, r1
   1792e:	4903      	ldr	r1, [pc, #12]	; (1793c <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x494>)
   17930:	1d09      	adds	r1, r1, #4
   17932:	6008      	str	r0, [r1, #0]
   17934:	bd10      	pop	{r4, pc}
   17936:	0000      	.short	0x0000
   17938:	00100108 	.word	0x00100108
   1793c:	40001514 	.word	0x40001514
   17940:	02030000 	.word	0x02030000

00017944 <sym_L4JTLGMK2AWYAAPRB3O77773SG36X2NTZJ3FAHA>:
   17944:	4901      	ldr	r1, [pc, #4]	; (1794c <sym_L4JTLGMK2AWYAAPRB3O77773SG36X2NTZJ3FAHA+0x8>)
   17946:	b2c0      	uxtb	r0, r0
   17948:	6008      	str	r0, [r1, #0]
   1794a:	4770      	bx	lr
   1794c:	4000150c 	.word	0x4000150c

00017950 <sym_BAE5AID2574UQHWOKHY55745PJT6HXY2EXKBH7Y>:
   17950:	b510      	push	{r4, lr}
   17952:	4907      	ldr	r1, [pc, #28]	; (17970 <sym_BAE5AID2574UQHWOKHY55745PJT6HXY2EXKBH7Y+0x20>)
   17954:	2801      	cmp	r0, #1
   17956:	d005      	beq.n	17964 <sym_BAE5AID2574UQHWOKHY55745PJT6HXY2EXKBH7Y+0x14>
   17958:	2802      	cmp	r0, #2
   1795a:	d005      	beq.n	17968 <sym_BAE5AID2574UQHWOKHY55745PJT6HXY2EXKBH7Y+0x18>
   1795c:	218b      	movs	r1, #139	; 0x8b
   1795e:	203f      	movs	r0, #63	; 0x3f
   17960:	f7f8 fb40 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   17964:	2003      	movs	r0, #3
   17966:	e000      	b.n	1796a <sym_BAE5AID2574UQHWOKHY55745PJT6HXY2EXKBH7Y+0x1a>
   17968:	2004      	movs	r0, #4
   1796a:	6008      	str	r0, [r1, #0]
   1796c:	bd10      	pop	{r4, pc}
   1796e:	0000      	.short	0x0000
   17970:	40001510 	.word	0x40001510

00017974 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY>:
   17974:	4770      	bx	lr
   17976:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   1797a:	000d      	movs	r5, r1
   1797c:	4604      	mov	r4, r0
   1797e:	f04f 0602 	mov.w	r6, #2
   17982:	f04f 0701 	mov.w	r7, #1
   17986:	d008      	beq.n	1799a <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x26>
   17988:	7828      	ldrb	r0, [r5, #0]
   1798a:	b1d0      	cbz	r0, 179c2 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x4e>
   1798c:	2801      	cmp	r0, #1
   1798e:	d007      	beq.n	179a0 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x2c>
   17990:	2802      	cmp	r0, #2
   17992:	d014      	beq.n	179be <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x4a>
   17994:	2803      	cmp	r0, #3
   17996:	d13b      	bne.n	17a10 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x9c>
   17998:	e016      	b.n	179c8 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x54>
   1799a:	f880 7020 	strb.w	r7, [r0, #32]
   1799e:	e00e      	b.n	179be <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x4a>
   179a0:	6868      	ldr	r0, [r5, #4]
   179a2:	28c8      	cmp	r0, #200	; 0xc8
   179a4:	d303      	bcc.n	179ae <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x3a>
   179a6:	2104      	movs	r1, #4
   179a8:	f7f5 fe54 	bl	d654 <sym_QWOE5H22ZADGJX5JSROW7BOI32Z6PPEEJCISNOQ>
   179ac:	b108      	cbz	r0, 179b2 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x3e>
   179ae:	2600      	movs	r6, #0
   179b0:	e007      	b.n	179c2 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x4e>
   179b2:	4620      	mov	r0, r4
   179b4:	6869      	ldr	r1, [r5, #4]
   179b6:	f000 f92a 	bl	17c0e <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x29a>
   179ba:	2601      	movs	r6, #1
   179bc:	e001      	b.n	179c2 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x4e>
   179be:	f7f4 fe61 	bl	c684 <sym_QV6CME4HLWJA6KQZ7HE7ECNT7UGKOYHKNHH6E7I+0x90>
   179c2:	4630      	mov	r0, r6
   179c4:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
   179c8:	7820      	ldrb	r0, [r4, #0]
   179ca:	2800      	cmp	r0, #0
   179cc:	d1f7      	bne.n	179be <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x4a>
   179ce:	6868      	ldr	r0, [r5, #4]
   179d0:	f7f4 fe2a 	bl	c628 <sym_QV6CME4HLWJA6KQZ7HE7ECNT7UGKOYHKNHH6E7I+0x34>
   179d4:	b1e0      	cbz	r0, 17a10 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x9c>
   179d6:	6869      	ldr	r1, [r5, #4]
   179d8:	7808      	ldrb	r0, [r1, #0]
   179da:	b128      	cbz	r0, 179e8 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x74>
   179dc:	78a0      	ldrb	r0, [r4, #2]
   179de:	2805      	cmp	r0, #5
   179e0:	d007      	beq.n	179f2 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x7e>
   179e2:	f240 117b 	movw	r1, #379	; 0x17b
   179e6:	e010      	b.n	17a0a <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x96>
   179e8:	4620      	mov	r0, r4
   179ea:	f000 f918 	bl	17c1e <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x2aa>
   179ee:	7067      	strb	r7, [r4, #1]
   179f0:	e7e5      	b.n	179be <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x4a>
   179f2:	4620      	mov	r0, r4
   179f4:	f000 f927 	bl	17c46 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x2d2>
   179f8:	78e0      	ldrb	r0, [r4, #3]
   179fa:	f104 010c 	add.w	r1, r4, #12
   179fe:	f000 f80a 	bl	17a16 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0xa2>
   17a02:	2800      	cmp	r0, #0
   17a04:	d1db      	bne.n	179be <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x4a>
   17a06:	f240 117d 	movw	r1, #381	; 0x17d
   17a0a:	206a      	movs	r0, #106	; 0x6a
   17a0c:	f7f8 f842 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
   17a10:	f884 7020 	strb.w	r7, [r4, #32]
   17a14:	e7d3      	b.n	179be <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x4a>
   17a16:	f7f6 b869 	b.w	daec <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY>
   17a1a:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   17a1e:	460d      	mov	r5, r1
   17a20:	0004      	movs	r4, r0
   17a22:	d00b      	beq.n	17a3c <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0xc8>
   17a24:	7926      	ldrb	r6, [r4, #4]
   17a26:	2700      	movs	r7, #0
   17a28:	2002      	movs	r0, #2
   17a2a:	2d09      	cmp	r5, #9
   17a2c:	d27b      	bcs.n	17b26 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x1b2>
   17a2e:	e8df f005 	tbb	[pc, r5]
   17a32:	1008      	.short	0x1008
   17a34:	645b2e2e 	.word	0x645b2e2e
   17a38:	0086977c 	.word	0x0086977c
   17a3c:	f240 1195 	movw	r1, #405	; 0x195
   17a40:	e0e2      	b.n	17c08 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x294>
   17a42:	78a0      	ldrb	r0, [r4, #2]
   17a44:	2804      	cmp	r0, #4
   17a46:	d06f      	beq.n	17b28 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x1b4>
   17a48:	2803      	cmp	r0, #3
   17a4a:	d0fc      	beq.n	17a46 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0xd2>
   17a4c:	f44f 71d0 	mov.w	r1, #416	; 0x1a0
   17a50:	e0da      	b.n	17c08 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x294>
   17a52:	78a0      	ldrb	r0, [r4, #2]
   17a54:	2804      	cmp	r0, #4
   17a56:	d004      	beq.n	17a62 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0xee>
   17a58:	2803      	cmp	r0, #3
   17a5a:	d002      	beq.n	17a62 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0xee>
   17a5c:	f44f 71d2 	mov.w	r1, #420	; 0x1a4
   17a60:	e0d2      	b.n	17c08 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x294>
   17a62:	2005      	movs	r0, #5
   17a64:	70a0      	strb	r0, [r4, #2]
   17a66:	f884 7020 	strb.w	r7, [r4, #32]
   17a6a:	7820      	ldrb	r0, [r4, #0]
   17a6c:	bb80      	cbnz	r0, 17ad0 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x15c>
   17a6e:	2100      	movs	r1, #0
   17a70:	4620      	mov	r0, r4
   17a72:	f000 f8cc 	bl	17c0e <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x29a>
   17a76:	7b20      	ldrb	r0, [r4, #12]
   17a78:	2801      	cmp	r0, #1
   17a7a:	d004      	beq.n	17a86 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x112>
   17a7c:	69a0      	ldr	r0, [r4, #24]
   17a7e:	61e0      	str	r0, [r4, #28]
   17a80:	2100      	movs	r1, #0
   17a82:	68a2      	ldr	r2, [r4, #8]
   17a84:	e041      	b.n	17b0a <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x196>
   17a86:	78e0      	ldrb	r0, [r4, #3]
   17a88:	f7f5 ff0c 	bl	d8a4 <sym_W447CEMR6K6QRW3N63PRPIR7NK6ENOSBFXLCPRQ>
   17a8c:	e7f7      	b.n	17a7e <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x10a>
   17a8e:	78a1      	ldrb	r1, [r4, #2]
   17a90:	2904      	cmp	r1, #4
   17a92:	d004      	beq.n	17a9e <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x12a>
   17a94:	2903      	cmp	r1, #3
   17a96:	d002      	beq.n	17a9e <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x12a>
   17a98:	f44f 71e1 	mov.w	r1, #450	; 0x1c2
   17a9c:	e0b4      	b.n	17c08 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x294>
   17a9e:	7822      	ldrb	r2, [r4, #0]
   17aa0:	b122      	cbz	r2, 17aac <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x138>
   17aa2:	4621      	mov	r1, r4
   17aa4:	4630      	mov	r0, r6
   17aa6:	f000 f8e6 	bl	17c76 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x302>
   17aaa:	e0a4      	b.n	17bf6 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x282>
   17aac:	2904      	cmp	r1, #4
   17aae:	d000      	beq.n	17ab2 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x13e>
   17ab0:	2001      	movs	r0, #1
   17ab2:	70a0      	strb	r0, [r4, #2]
   17ab4:	68a2      	ldr	r2, [r4, #8]
   17ab6:	2d02      	cmp	r5, #2
   17ab8:	d00b      	beq.n	17ad2 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x15e>
   17aba:	2106      	movs	r1, #6
   17abc:	4630      	mov	r0, r6
   17abe:	4790      	blx	r2
   17ac0:	2800      	cmp	r0, #0
   17ac2:	d06b      	beq.n	17b9c <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x228>
   17ac4:	7800      	ldrb	r0, [r0, #0]
   17ac6:	2800      	cmp	r0, #0
   17ac8:	d068      	beq.n	17b9c <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x228>
   17aca:	f44f 71ee 	mov.w	r1, #476	; 0x1dc
   17ace:	e09b      	b.n	17c08 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x294>
   17ad0:	e031      	b.n	17b36 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x1c2>
   17ad2:	2105      	movs	r1, #5
   17ad4:	4630      	mov	r0, r6
   17ad6:	4790      	blx	r2
   17ad8:	2800      	cmp	r0, #0
   17ada:	d071      	beq.n	17bc0 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x24c>
   17adc:	7800      	ldrb	r0, [r0, #0]
   17ade:	2800      	cmp	r0, #0
   17ae0:	d06e      	beq.n	17bc0 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x24c>
   17ae2:	f240 11d7 	movw	r1, #471	; 0x1d7
   17ae6:	e08f      	b.n	17c08 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x294>
   17ae8:	78a0      	ldrb	r0, [r4, #2]
   17aea:	2805      	cmp	r0, #5
   17aec:	d002      	beq.n	17af4 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x180>
   17aee:	f240 11e3 	movw	r1, #483	; 0x1e3
   17af2:	e089      	b.n	17c08 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x294>
   17af4:	2102      	movs	r1, #2
   17af6:	68a2      	ldr	r2, [r4, #8]
   17af8:	e007      	b.n	17b0a <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x196>
   17afa:	78a0      	ldrb	r0, [r4, #2]
   17afc:	2805      	cmp	r0, #5
   17afe:	d002      	beq.n	17b06 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x192>
   17b00:	f240 11e9 	movw	r1, #489	; 0x1e9
   17b04:	e080      	b.n	17c08 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x294>
   17b06:	68a2      	ldr	r2, [r4, #8]
   17b08:	2101      	movs	r1, #1
   17b0a:	4630      	mov	r0, r6
   17b0c:	4790      	blx	r2
   17b0e:	4601      	mov	r1, r0
   17b10:	4620      	mov	r0, r4
   17b12:	f7ff ff30 	bl	17976 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x2>
   17b16:	2802      	cmp	r0, #2
   17b18:	d06d      	beq.n	17bf6 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x282>
   17b1a:	b3f0      	cbz	r0, 17b9a <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x226>
   17b1c:	2801      	cmp	r0, #1
   17b1e:	d064      	beq.n	17bea <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x276>
   17b20:	f240 2129 	movw	r1, #553	; 0x229
   17b24:	e070      	b.n	17c08 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x294>
   17b26:	e05d      	b.n	17be4 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x270>
   17b28:	e067      	b.n	17bfa <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x286>
   17b2a:	78a0      	ldrb	r0, [r4, #2]
   17b2c:	2805      	cmp	r0, #5
   17b2e:	d002      	beq.n	17b36 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x1c2>
   17b30:	f240 11ef 	movw	r1, #495	; 0x1ef
   17b34:	e068      	b.n	17c08 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x294>
   17b36:	e8bd 41f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, lr}
   17b3a:	f7f4 bda3 	b.w	c684 <sym_QV6CME4HLWJA6KQZ7HE7ECNT7UGKOYHKNHH6E7I+0x90>
   17b3e:	78a0      	ldrb	r0, [r4, #2]
   17b40:	2805      	cmp	r0, #5
   17b42:	d002      	beq.n	17b4a <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x1d6>
   17b44:	f44f 71fa 	mov.w	r1, #500	; 0x1f4
   17b48:	e05e      	b.n	17c08 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x294>
   17b4a:	68a2      	ldr	r2, [r4, #8]
   17b4c:	210a      	movs	r1, #10
   17b4e:	4630      	mov	r0, r6
   17b50:	4790      	blx	r2
   17b52:	4601      	mov	r1, r0
   17b54:	4620      	mov	r0, r4
   17b56:	f7ff ff0e 	bl	17976 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x2>
   17b5a:	f240 11f7 	movw	r1, #503	; 0x1f7
   17b5e:	e053      	b.n	17c08 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x294>
   17b60:	78a1      	ldrb	r1, [r4, #2]
   17b62:	2905      	cmp	r1, #5
   17b64:	d006      	beq.n	17b74 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x200>
   17b66:	7862      	ldrb	r2, [r4, #1]
   17b68:	b10a      	cbz	r2, 17b6e <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x1fa>
   17b6a:	2903      	cmp	r1, #3
   17b6c:	d002      	beq.n	17b74 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x200>
   17b6e:	f240 11fb 	movw	r1, #507	; 0x1fb
   17b72:	e049      	b.n	17c08 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x294>
   17b74:	7821      	ldrb	r1, [r4, #0]
   17b76:	b129      	cbz	r1, 17b84 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x210>
   17b78:	4621      	mov	r1, r4
   17b7a:	4630      	mov	r0, r6
   17b7c:	e8bd 41f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, lr}
   17b80:	f000 b879 	b.w	17c76 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x302>
   17b84:	f894 1020 	ldrb.w	r1, [r4, #32]
   17b88:	b189      	cbz	r1, 17bae <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x23a>
   17b8a:	f884 7020 	strb.w	r7, [r4, #32]
   17b8e:	70a0      	strb	r0, [r4, #2]
   17b90:	68a2      	ldr	r2, [r4, #8]
   17b92:	2108      	movs	r1, #8
   17b94:	4630      	mov	r0, r6
   17b96:	4790      	blx	r2
   17b98:	e001      	b.n	17b9e <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x22a>
   17b9a:	e029      	b.n	17bf0 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x27c>
   17b9c:	e02b      	b.n	17bf6 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x282>
   17b9e:	2800      	cmp	r0, #0
   17ba0:	d00e      	beq.n	17bc0 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x24c>
   17ba2:	7800      	ldrb	r0, [r0, #0]
   17ba4:	2800      	cmp	r0, #0
   17ba6:	d00b      	beq.n	17bc0 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x24c>
   17ba8:	f240 2107 	movw	r1, #519	; 0x207
   17bac:	e02c      	b.n	17c08 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x294>
   17bae:	7861      	ldrb	r1, [r4, #1]
   17bb0:	b159      	cbz	r1, 17bca <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x256>
   17bb2:	78e0      	ldrb	r0, [r4, #3]
   17bb4:	f104 010c 	add.w	r1, r4, #12
   17bb8:	f7ff ff2d 	bl	17a16 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0xa2>
   17bbc:	b110      	cbz	r0, 17bc4 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x250>
   17bbe:	7067      	strb	r7, [r4, #1]
   17bc0:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
   17bc4:	f240 210b 	movw	r1, #523	; 0x20b
   17bc8:	e01e      	b.n	17c08 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x294>
   17bca:	70a0      	strb	r0, [r4, #2]
   17bcc:	68a2      	ldr	r2, [r4, #8]
   17bce:	2107      	movs	r1, #7
   17bd0:	4630      	mov	r0, r6
   17bd2:	4790      	blx	r2
   17bd4:	2800      	cmp	r0, #0
   17bd6:	d0f3      	beq.n	17bc0 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x24c>
   17bd8:	7800      	ldrb	r0, [r0, #0]
   17bda:	2800      	cmp	r0, #0
   17bdc:	d0f0      	beq.n	17bc0 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x24c>
   17bde:	f240 2113 	movw	r1, #531	; 0x213
   17be2:	e011      	b.n	17c08 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x294>
   17be4:	f44f 7106 	mov.w	r1, #536	; 0x218
   17be8:	e00e      	b.n	17c08 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x294>
   17bea:	2104      	movs	r1, #4
   17bec:	68a2      	ldr	r2, [r4, #8]
   17bee:	e78c      	b.n	17b0a <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x196>
   17bf0:	2103      	movs	r1, #3
   17bf2:	68a2      	ldr	r2, [r4, #8]
   17bf4:	e789      	b.n	17b0a <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x196>
   17bf6:	2d00      	cmp	r5, #0
   17bf8:	d1e2      	bne.n	17bc0 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x24c>
   17bfa:	f000 f8ea 	bl	17dd2 <sym_WGWJTNZTDUUYDCZS4UGNX4L4JID5HLG6XRROR3Q>
   17bfe:	6800      	ldr	r0, [r0, #0]
   17c00:	2800      	cmp	r0, #0
   17c02:	d0dd      	beq.n	17bc0 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x24c>
   17c04:	f240 2133 	movw	r1, #563	; 0x233
   17c08:	206a      	movs	r0, #106	; 0x6a
   17c0a:	f7f7 ff43 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
   17c0e:	4602      	mov	r2, r0
   17c10:	7b03      	ldrb	r3, [r0, #12]
   17c12:	6900      	ldr	r0, [r0, #16]
   17c14:	4408      	add	r0, r1
   17c16:	6110      	str	r0, [r2, #16]
   17c18:	3859      	subs	r0, #89	; 0x59
   17c1a:	f7f6 bdfb 	b.w	e814 <sym_URFU24FFGR2HYB6CCPIPKPNZNMTWHKDYOATUJNY>
   17c1e:	2201      	movs	r2, #1
   17c20:	7302      	strb	r2, [r0, #12]
   17c22:	2200      	movs	r2, #0
   17c24:	75c2      	strb	r2, [r0, #23]
   17c26:	222b      	movs	r2, #43	; 0x2b
   17c28:	8282      	strh	r2, [r0, #20]
   17c2a:	794a      	ldrb	r2, [r1, #5]
   17c2c:	b14a      	cbz	r2, 17c42 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x2ce>
   17c2e:	2204      	movs	r2, #4
   17c30:	7582      	strb	r2, [r0, #22]
   17c32:	688a      	ldr	r2, [r1, #8]
   17c34:	326a      	adds	r2, #106	; 0x6a
   17c36:	6102      	str	r2, [r0, #16]
   17c38:	68c9      	ldr	r1, [r1, #12]
   17c3a:	6181      	str	r1, [r0, #24]
   17c3c:	2103      	movs	r1, #3
   17c3e:	7081      	strb	r1, [r0, #2]
   17c40:	4770      	bx	lr
   17c42:	2203      	movs	r2, #3
   17c44:	e7f4      	b.n	17c30 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x2bc>
   17c46:	b510      	push	{r4, lr}
   17c48:	4604      	mov	r4, r0
   17c4a:	2000      	movs	r0, #0
   17c4c:	7320      	strb	r0, [r4, #12]
   17c4e:	75e0      	strb	r0, [r4, #23]
   17c50:	202b      	movs	r0, #43	; 0x2b
   17c52:	82a0      	strh	r0, [r4, #20]
   17c54:	7948      	ldrb	r0, [r1, #5]
   17c56:	b160      	cbz	r0, 17c72 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x2fe>
   17c58:	2004      	movs	r0, #4
   17c5a:	75a0      	strb	r0, [r4, #22]
   17c5c:	68c8      	ldr	r0, [r1, #12]
   17c5e:	306a      	adds	r0, #106	; 0x6a
   17c60:	6120      	str	r0, [r4, #16]
   17c62:	6889      	ldr	r1, [r1, #8]
   17c64:	69e0      	ldr	r0, [r4, #28]
   17c66:	f7f5 fdc7 	bl	d7f8 <sym_2O2USXABBLL6KC7E5NJFOHR6JLZMSV4AU5ZYH3Q>
   17c6a:	61a0      	str	r0, [r4, #24]
   17c6c:	2004      	movs	r0, #4
   17c6e:	70a0      	strb	r0, [r4, #2]
   17c70:	bd10      	pop	{r4, pc}
   17c72:	2003      	movs	r0, #3
   17c74:	e7f1      	b.n	17c5a <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x2e6>
   17c76:	b570      	push	{r4, r5, r6, lr}
   17c78:	4605      	mov	r5, r0
   17c7a:	460c      	mov	r4, r1
   17c7c:	78c8      	ldrb	r0, [r1, #3]
   17c7e:	f7f6 fb91 	bl	e3a4 <sym_CFZK3G6ZC4ONUAYO2UALWQ4CBO7A6ADNAS2FS7Y>
   17c82:	b178      	cbz	r0, 17ca4 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x330>
   17c84:	4620      	mov	r0, r4
   17c86:	f000 f810 	bl	17caa <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x336>
   17c8a:	68a2      	ldr	r2, [r4, #8]
   17c8c:	2109      	movs	r1, #9
   17c8e:	4628      	mov	r0, r5
   17c90:	4790      	blx	r2
   17c92:	2800      	cmp	r0, #0
   17c94:	d008      	beq.n	17ca8 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x334>
   17c96:	7800      	ldrb	r0, [r0, #0]
   17c98:	2800      	cmp	r0, #0
   17c9a:	d005      	beq.n	17ca8 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x334>
   17c9c:	21db      	movs	r1, #219	; 0xdb
   17c9e:	206a      	movs	r0, #106	; 0x6a
   17ca0:	f7f7 fef8 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
   17ca4:	21d7      	movs	r1, #215	; 0xd7
   17ca6:	e7fa      	b.n	17c9e <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x32a>
   17ca8:	bd70      	pop	{r4, r5, r6, pc}
   17caa:	2100      	movs	r1, #0
   17cac:	7081      	strb	r1, [r0, #2]
   17cae:	7001      	strb	r1, [r0, #0]
   17cb0:	7041      	strb	r1, [r0, #1]
   17cb2:	4770      	bx	lr

00017cb4 <sym_47MBMNER75N2M6YIZRIF4DAHSAATJOMK3LAIDCY>:
   17cb4:	b570      	push	{r4, r5, r6, lr}
   17cb6:	f7f4 fd3f 	bl	c738 <sym_SKFSQME5SGNPYLL7B75KY7PHXFYWSRI2HSTT45A>
   17cba:	4605      	mov	r5, r0
   17cbc:	2400      	movs	r4, #0
   17cbe:	e006      	b.n	17cce <sym_47MBMNER75N2M6YIZRIF4DAHSAATJOMK3LAIDCY+0x1a>
   17cc0:	4620      	mov	r0, r4
   17cc2:	f7f4 fd3f 	bl	c744 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ>
   17cc6:	f7ff fff0 	bl	17caa <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x336>
   17cca:	1c64      	adds	r4, r4, #1
   17ccc:	b2e4      	uxtb	r4, r4
   17cce:	42ac      	cmp	r4, r5
   17cd0:	d3f6      	bcc.n	17cc0 <sym_47MBMNER75N2M6YIZRIF4DAHSAATJOMK3LAIDCY+0xc>
   17cd2:	bd70      	pop	{r4, r5, r6, pc}

00017cd4 <mpsl_timeslot_request>:
   17cd4:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   17cd8:	460d      	mov	r5, r1
   17cda:	f7f4 fd33 	bl	c744 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ>
   17cde:	0004      	movs	r4, r0
   17ce0:	d007      	beq.n	17cf2 <mpsl_timeslot_request+0x1e>
   17ce2:	78a0      	ldrb	r0, [r4, #2]
   17ce4:	f06f 0622 	mvn.w	r6, #34	; 0x22
   17ce8:	2801      	cmp	r0, #1
   17cea:	d006      	beq.n	17cfa <mpsl_timeslot_request+0x26>
   17cec:	2802      	cmp	r0, #2
   17cee:	d110      	bne.n	17d12 <mpsl_timeslot_request+0x3e>
   17cf0:	e003      	b.n	17cfa <mpsl_timeslot_request+0x26>
   17cf2:	f06f 0001 	mvn.w	r0, #1
   17cf6:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
   17cfa:	f06f 0715 	mvn.w	r7, #21
   17cfe:	b155      	cbz	r5, 17d16 <mpsl_timeslot_request+0x42>
   17d00:	4628      	mov	r0, r5
   17d02:	f7f4 fc91 	bl	c628 <sym_QV6CME4HLWJA6KQZ7HE7ECNT7UGKOYHKNHH6E7I+0x34>
   17d06:	b130      	cbz	r0, 17d16 <mpsl_timeslot_request+0x42>
   17d08:	7828      	ldrb	r0, [r5, #0]
   17d0a:	b130      	cbz	r0, 17d1a <mpsl_timeslot_request+0x46>
   17d0c:	78a0      	ldrb	r0, [r4, #2]
   17d0e:	2802      	cmp	r0, #2
   17d10:	d008      	beq.n	17d24 <mpsl_timeslot_request+0x50>
   17d12:	4630      	mov	r0, r6
   17d14:	e7ef      	b.n	17cf6 <mpsl_timeslot_request+0x22>
   17d16:	4638      	mov	r0, r7
   17d18:	e7ed      	b.n	17cf6 <mpsl_timeslot_request+0x22>
   17d1a:	4629      	mov	r1, r5
   17d1c:	4620      	mov	r0, r4
   17d1e:	f7ff ff7e 	bl	17c1e <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x2aa>
   17d22:	e003      	b.n	17d2c <mpsl_timeslot_request+0x58>
   17d24:	4629      	mov	r1, r5
   17d26:	4620      	mov	r0, r4
   17d28:	f7ff ff8d 	bl	17c46 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x2d2>
   17d2c:	78e0      	ldrb	r0, [r4, #3]
   17d2e:	f104 010c 	add.w	r1, r4, #12
   17d32:	f7ff fe70 	bl	17a16 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0xa2>
   17d36:	b108      	cbz	r0, 17d3c <mpsl_timeslot_request+0x68>
   17d38:	2000      	movs	r0, #0
   17d3a:	e7dc      	b.n	17cf6 <mpsl_timeslot_request+0x22>
   17d3c:	f240 21ae 	movw	r1, #686	; 0x2ae
   17d40:	206a      	movs	r0, #106	; 0x6a
   17d42:	f7f7 fea7 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>

00017d46 <mpsl_timeslot_session_close>:
   17d46:	b510      	push	{r4, lr}
   17d48:	4604      	mov	r4, r0
   17d4a:	f7f4 fcfb 	bl	c744 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ>
   17d4e:	0001      	movs	r1, r0
   17d50:	d004      	beq.n	17d5c <mpsl_timeslot_session_close+0x16>
   17d52:	7808      	ldrb	r0, [r1, #0]
   17d54:	f06f 0222 	mvn.w	r2, #34	; 0x22
   17d58:	b968      	cbnz	r0, 17d76 <mpsl_timeslot_session_close+0x30>
   17d5a:	e002      	b.n	17d62 <mpsl_timeslot_session_close+0x1c>
   17d5c:	f06f 0001 	mvn.w	r0, #1
   17d60:	bd10      	pop	{r4, pc}
   17d62:	7888      	ldrb	r0, [r1, #2]
   17d64:	b138      	cbz	r0, 17d76 <mpsl_timeslot_session_close+0x30>
   17d66:	2802      	cmp	r0, #2
   17d68:	d007      	beq.n	17d7a <mpsl_timeslot_session_close+0x34>
   17d6a:	2801      	cmp	r0, #1
   17d6c:	d005      	beq.n	17d7a <mpsl_timeslot_session_close+0x34>
   17d6e:	2001      	movs	r0, #1
   17d70:	7008      	strb	r0, [r1, #0]
   17d72:	2000      	movs	r0, #0
   17d74:	bd10      	pop	{r4, pc}
   17d76:	4610      	mov	r0, r2
   17d78:	bd10      	pop	{r4, pc}
   17d7a:	4620      	mov	r0, r4
   17d7c:	f7ff ff7b 	bl	17c76 <sym_GOBFCYOOXGGHCGCZKQ3FVSI5A765LRERAGT3CSY+0x302>
   17d80:	e7f7      	b.n	17d72 <mpsl_timeslot_session_close+0x2c>

00017d82 <mpsl_timeslot_session_count_set>:
   17d82:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   17d86:	460e      	mov	r6, r1
   17d88:	4607      	mov	r7, r0
   17d8a:	f7f4 fcd5 	bl	c738 <sym_SKFSQME5SGNPYLL7B75KY7PHXFYWSRI2HSTT45A>
   17d8e:	4605      	mov	r5, r0
   17d90:	2400      	movs	r4, #0
   17d92:	e00a      	b.n	17daa <mpsl_timeslot_session_count_set+0x28>
   17d94:	4620      	mov	r0, r4
   17d96:	f7f4 fcd5 	bl	c744 <sym_4RNEPYYQOFM4LAOGLN2TB27X7L3XBISTGAWYOHQ>
   17d9a:	7880      	ldrb	r0, [r0, #2]
   17d9c:	b118      	cbz	r0, 17da6 <mpsl_timeslot_session_count_set+0x24>
   17d9e:	f04f 30ff 	mov.w	r0, #4294967295
   17da2:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
   17da6:	1c64      	adds	r4, r4, #1
   17da8:	b2e4      	uxtb	r4, r4
   17daa:	42ac      	cmp	r4, r5
   17dac:	d3f2      	bcc.n	17d94 <mpsl_timeslot_session_count_set+0x12>
   17dae:	2e08      	cmp	r6, #8
   17db0:	d902      	bls.n	17db8 <mpsl_timeslot_session_count_set+0x36>
   17db2:	f06f 0015 	mvn.w	r0, #21
   17db6:	e7f4      	b.n	17da2 <mpsl_timeslot_session_count_set+0x20>
   17db8:	b117      	cbz	r7, 17dc0 <mpsl_timeslot_session_count_set+0x3e>
   17dba:	4631      	mov	r1, r6
   17dbc:	4638      	mov	r0, r7
   17dbe:	e001      	b.n	17dc4 <mpsl_timeslot_session_count_set+0x42>
   17dc0:	2100      	movs	r1, #0
   17dc2:	4608      	mov	r0, r1
   17dc4:	e8bd 41f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, lr}
   17dc8:	f7f4 bca2 	b.w	c710 <sym_WTOZYVN52TSAPXLTHQQLG45KSAFDDSBJMHMFM6Q>

00017dcc <sym_AQI4OLZLNAFMKTQHPKXO3EVYHTLAOB676ZYU7WY>:
   17dcc:	2000      	movs	r0, #0
   17dce:	f7f7 ba9f 	b.w	f310 <sym_CQWZ455IMTLTPY5LEEZHXHRRNX223B3HTDD45HA>

00017dd2 <sym_WGWJTNZTDUUYDCZS4UGNX4L4JID5HLG6XRROR3Q>:
   17dd2:	2000      	movs	r0, #0
   17dd4:	f7f7 ba82 	b.w	f2dc <sym_DY4TH3UYBBOUULSDPZZ7Y6J5DTNRGWFEBHJXKVA>

00017dd8 <sym_KN3Y3AMHXOHKS2EMALWM5VNLRDL2MPKHIP6XPDA>:
   17dd8:	b510      	push	{r4, lr}
   17dda:	f7f6 ff6b 	bl	ecb4 <sym_M4DIQOXJAE3BNHQBIUCZXAABSM24CWUEJOCU7DY>
   17dde:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
   17de2:	f000 b800 	b.w	17de6 <sym_XYQTP7YX2XFVREW5KFDH2NNPGRIPEHKIO2RURYI>

00017de6 <sym_XYQTP7YX2XFVREW5KFDH2NNPGRIPEHKIO2RURYI>:
   17de6:	0a41      	lsrs	r1, r0, #9
   17de8:	f643 5209 	movw	r2, #15625	; 0x3d09
   17dec:	4351      	muls	r1, r2
   17dee:	f3c0 0008 	ubfx	r0, r0, #0, #9
   17df2:	fb10 f002 	smulbb	r0, r0, r2
   17df6:	f500 7080 	add.w	r0, r0, #256	; 0x100
   17dfa:	eb01 2050 	add.w	r0, r1, r0, lsr #9
   17dfe:	4770      	bx	lr

00017e00 <MPSL_IRQ_RADIO_Handler>:
   17e00:	f7f5 bd64 	b.w	d8cc <sym_UY2NI5OOASY6266A2A7GY3XEUA5M2CDE2WTVEIY>
   17e04:	2800      	cmp	r0, #0
   17e06:	db09      	blt.n	17e1c <MPSL_IRQ_RADIO_Handler+0x1c>
   17e08:	f000 021f 	and.w	r2, r0, #31
   17e0c:	2101      	movs	r1, #1
   17e0e:	4091      	lsls	r1, r2
   17e10:	0940      	lsrs	r0, r0, #5
   17e12:	0080      	lsls	r0, r0, #2
   17e14:	f100 20e0 	add.w	r0, r0, #3758153728	; 0xe000e000
   17e18:	f8c0 1280 	str.w	r1, [r0, #640]	; 0x280
   17e1c:	4770      	bx	lr
   17e1e:	2800      	cmp	r0, #0
   17e20:	db0d      	blt.n	17e3e <MPSL_IRQ_RADIO_Handler+0x3e>
   17e22:	f000 021f 	and.w	r2, r0, #31
   17e26:	2101      	movs	r1, #1
   17e28:	4091      	lsls	r1, r2
   17e2a:	0940      	lsrs	r0, r0, #5
   17e2c:	0080      	lsls	r0, r0, #2
   17e2e:	f100 20e0 	add.w	r0, r0, #3758153728	; 0xe000e000
   17e32:	f8c0 1180 	str.w	r1, [r0, #384]	; 0x180
   17e36:	f3bf 8f4f 	dsb	sy
   17e3a:	f3bf 8f6f 	isb	sy
   17e3e:	4770      	bx	lr

00017e40 <sym_XEJLNUQGS5P4R5IXDJFF6NE6C2FZWRZYDQOGMPI>:
   17e40:	b570      	push	{r4, r5, r6, lr}
   17e42:	4602      	mov	r2, r0
   17e44:	2000      	movs	r0, #0
   17e46:	2900      	cmp	r1, #0
   17e48:	d01d      	beq.n	17e86 <sym_XEJLNUQGS5P4R5IXDJFF6NE6C2FZWRZYDQOGMPI+0x46>
   17e4a:	fba2 0101 	umull	r0, r1, r2, r1
   17e4e:	0a40      	lsrs	r0, r0, #9
   17e50:	ea40 50c1 	orr.w	r0, r0, r1, lsl #23
   17e54:	0a49      	lsrs	r1, r1, #9
   17e56:	1c40      	adds	r0, r0, #1
   17e58:	f141 0100 	adc.w	r1, r1, #0
   17e5c:	f240 72a1 	movw	r2, #1953	; 0x7a1
   17e60:	1883      	adds	r3, r0, r2
   17e62:	f141 0100 	adc.w	r1, r1, #0
   17e66:	1c5b      	adds	r3, r3, #1
   17e68:	f141 0400 	adc.w	r4, r1, #0
   17e6c:	2100      	movs	r1, #0
   17e6e:	f1d3 33ff 	rsbs	r3, r3, #4294967295
   17e72:	41a1      	sbcs	r1, r4
   17e74:	d203      	bcs.n	17e7e <sym_XEJLNUQGS5P4R5IXDJFF6NE6C2FZWRZYDQOGMPI+0x3e>
   17e76:	2171      	movs	r1, #113	; 0x71
   17e78:	206d      	movs	r0, #109	; 0x6d
   17e7a:	f7f7 fe0b 	bl	fa94 <sym_S2UAPMFVIQXDUOA6CV7GJMB33TYHEUH5D6LHO5Q>
   17e7e:	f500 60f4 	add.w	r0, r0, #1952	; 0x7a0
   17e82:	fbb0 f0f2 	udiv	r0, r0, r2
   17e86:	bd70      	pop	{r4, r5, r6, pc}
   17e88:	5840      	ldr	r0, [r0, r1]
   17e8a:	2800      	cmp	r0, #0
   17e8c:	d000      	beq.n	17e90 <sym_XEJLNUQGS5P4R5IXDJFF6NE6C2FZWRZYDQOGMPI+0x50>
   17e8e:	2001      	movs	r0, #1
   17e90:	4770      	bx	lr
   17e92:	f8d0 240c 	ldr.w	r2, [r0, #1036]	; 0x40c
   17e96:	f8d0 040c 	ldr.w	r0, [r0, #1036]	; 0x40c
   17e9a:	f002 0201 	and.w	r2, r2, #1
   17e9e:	03c0      	lsls	r0, r0, #15
   17ea0:	d503      	bpl.n	17eaa <sym_XEJLNUQGS5P4R5IXDJFF6NE6C2FZWRZYDQOGMPI+0x6a>
   17ea2:	428a      	cmp	r2, r1
   17ea4:	d101      	bne.n	17eaa <sym_XEJLNUQGS5P4R5IXDJFF6NE6C2FZWRZYDQOGMPI+0x6a>
   17ea6:	2001      	movs	r0, #1
   17ea8:	4770      	bx	lr
   17eaa:	2000      	movs	r0, #0
   17eac:	4770      	bx	lr

00017eae <sym_TIWHB6UQGI33JQCQDL7C2BRAEXCRAFYENVN6QEI>:
   17eae:	b510      	push	{r4, lr}
   17eb0:	2101      	movs	r1, #1
   17eb2:	0788      	lsls	r0, r1, #30
   17eb4:	f7f7 fdac 	bl	fa10 <sym_7BUNPUBNWNFVXXIMNFFNK765OVON5LBIUZ66QRI+0x10>
   17eb8:	2800      	cmp	r0, #0
   17eba:	d000      	beq.n	17ebe <sym_TIWHB6UQGI33JQCQDL7C2BRAEXCRAFYENVN6QEI+0x10>
   17ebc:	2001      	movs	r0, #1
   17ebe:	bd10      	pop	{r4, pc}

00017ec0 <sym_IFJHPQV3B4EIN6OIUP3LZSPJBF5HLX2VYD323GA>:
   17ec0:	f04f 4080 	mov.w	r0, #1073741824	; 0x40000000
   17ec4:	2101      	movs	r1, #1
   17ec6:	6001      	str	r1, [r0, #0]
   17ec8:	4770      	bx	lr

00017eca <sym_LZEJCP3HZIBKMJQC47UQXAHGCQ52QF47EXOH2WA>:
   17eca:	f04f 4180 	mov.w	r1, #1073741824	; 0x40000000
   17ece:	f8d1 2418 	ldr.w	r2, [r1, #1048]	; 0x418
   17ed2:	f8d1 1418 	ldr.w	r1, [r1, #1048]	; 0x418
   17ed6:	f002 0203 	and.w	r2, r2, #3
   17eda:	03c9      	lsls	r1, r1, #15
   17edc:	d503      	bpl.n	17ee6 <sym_LZEJCP3HZIBKMJQC47UQXAHGCQ52QF47EXOH2WA+0x1c>
   17ede:	4282      	cmp	r2, r0
   17ee0:	d101      	bne.n	17ee6 <sym_LZEJCP3HZIBKMJQC47UQXAHGCQ52QF47EXOH2WA+0x1c>
   17ee2:	2001      	movs	r0, #1
   17ee4:	4770      	bx	lr
   17ee6:	2000      	movs	r0, #0
   17ee8:	4770      	bx	lr

00017eea <sym_AL7FCNVVCF72BNYCTLA5UGAWCQFXFPGE2ULTWOA>:
   17eea:	b510      	push	{r4, lr}
   17eec:	2100      	movs	r1, #0
   17eee:	f04f 4080 	mov.w	r0, #1073741824	; 0x40000000
   17ef2:	f7f7 fd8d 	bl	fa10 <sym_7BUNPUBNWNFVXXIMNFFNK765OVON5LBIUZ66QRI+0x10>
   17ef6:	2800      	cmp	r0, #0
   17ef8:	d000      	beq.n	17efc <sym_AL7FCNVVCF72BNYCTLA5UGAWCQFXFPGE2ULTWOA+0x12>
   17efa:	2001      	movs	r0, #1
   17efc:	bd10      	pop	{r4, pc}
   17efe:	2800      	cmp	r0, #0
   17f00:	db09      	blt.n	17f16 <sym_AL7FCNVVCF72BNYCTLA5UGAWCQFXFPGE2ULTWOA+0x2c>
   17f02:	f000 021f 	and.w	r2, r0, #31
   17f06:	2101      	movs	r1, #1
   17f08:	4091      	lsls	r1, r2
   17f0a:	0940      	lsrs	r0, r0, #5
   17f0c:	0080      	lsls	r0, r0, #2
   17f0e:	f100 20e0 	add.w	r0, r0, #3758153728	; 0xe000e000
   17f12:	f8c0 1280 	str.w	r1, [r0, #640]	; 0x280
   17f16:	4770      	bx	lr
   17f18:	2800      	cmp	r0, #0
   17f1a:	db0d      	blt.n	17f38 <sym_AL7FCNVVCF72BNYCTLA5UGAWCQFXFPGE2ULTWOA+0x4e>
   17f1c:	f000 021f 	and.w	r2, r0, #31
   17f20:	2101      	movs	r1, #1
   17f22:	4091      	lsls	r1, r2
   17f24:	0940      	lsrs	r0, r0, #5
   17f26:	0080      	lsls	r0, r0, #2
   17f28:	f100 20e0 	add.w	r0, r0, #3758153728	; 0xe000e000
   17f2c:	f8c0 1180 	str.w	r1, [r0, #384]	; 0x180
   17f30:	f3bf 8f4f 	dsb	sy
   17f34:	f3bf 8f6f 	isb	sy
   17f38:	4770      	bx	lr
   17f3a:	1000      	.short	0x1000
   17f3c:	00fa0002 	.word	0x00fa0002
   17f40:	53fe0000 	.word	0x53fe0000
   17f44:	eb1b71a0 	.word	0xeb1b71a0
   17f48:	cf331095 	.word	0xcf331095
   17f4c:	9563c946 	.word	0x9563c946
   17f50:	38295ebe 	.word	0x38295ebe
   17f54:	736e      	.short	0x736e
   17f56:	2800      	cmp	r0, #0
   17f58:	db09      	blt.n	17f6e <sym_AL7FCNVVCF72BNYCTLA5UGAWCQFXFPGE2ULTWOA+0x84>
   17f5a:	f000 021f 	and.w	r2, r0, #31
   17f5e:	2101      	movs	r1, #1
   17f60:	4091      	lsls	r1, r2
   17f62:	0940      	lsrs	r0, r0, #5
   17f64:	0080      	lsls	r0, r0, #2
   17f66:	f100 20e0 	add.w	r0, r0, #3758153728	; 0xe000e000
   17f6a:	f8c0 1280 	str.w	r1, [r0, #640]	; 0x280
   17f6e:	4770      	bx	lr

00017f70 <sym_AR22FPVUFSZMVYMQBBXG7EEZNA2HPS2RLAKRPBA>:
   17f70:	f3ef 8110 	mrs	r1, PRIMASK
   17f74:	b672      	cpsid	i
   17f76:	7802      	ldrb	r2, [r0, #0]
   17f78:	2a01      	cmp	r2, #1
   17f7a:	d001      	beq.n	17f80 <sym_AR22FPVUFSZMVYMQBBXG7EEZNA2HPS2RLAKRPBA+0x10>
   17f7c:	2201      	movs	r2, #1
   17f7e:	e000      	b.n	17f82 <sym_AR22FPVUFSZMVYMQBBXG7EEZNA2HPS2RLAKRPBA+0x12>
   17f80:	2200      	movs	r2, #0
   17f82:	2301      	movs	r3, #1
   17f84:	7003      	strb	r3, [r0, #0]
   17f86:	b901      	cbnz	r1, 17f8a <sym_AR22FPVUFSZMVYMQBBXG7EEZNA2HPS2RLAKRPBA+0x1a>
   17f88:	b662      	cpsie	i
   17f8a:	b10a      	cbz	r2, 17f90 <sym_AR22FPVUFSZMVYMQBBXG7EEZNA2HPS2RLAKRPBA+0x20>
   17f8c:	2000      	movs	r0, #0
   17f8e:	4770      	bx	lr
   17f90:	f06f 0022 	mvn.w	r0, #34	; 0x22
   17f94:	4770      	bx	lr

00017f96 <sym_YS3AHD7GWBHZEQHPIQANPGALEXB4QGY5O2DQKRY>:
   17f96:	2100      	movs	r1, #0
   17f98:	7001      	strb	r1, [r0, #0]
   17f9a:	4608      	mov	r0, r1
   17f9c:	4770      	bx	lr

00017f9e <sym_OWJYSTADR5I36MIHWNPICVB7CMCWNSFIZPFXQ2Q>:
   17f9e:	f3ef 8110 	mrs	r1, PRIMASK
   17fa2:	b672      	cpsid	i
   17fa4:	2200      	movs	r2, #0
   17fa6:	7002      	strb	r2, [r0, #0]
   17fa8:	b901      	cbnz	r1, 17fac <sym_OWJYSTADR5I36MIHWNPICVB7CMCWNSFIZPFXQ2Q+0xe>
   17faa:	b662      	cpsie	i
   17fac:	2000      	movs	r0, #0
   17fae:	4770      	bx	lr

00017fb0 <mpsl_low_priority_process>:
   17fb0:	f7f7 be5c 	b.w	fc6c <sym_VWGRUQT3LYZHLYS5KJ7UOCJEHLDJTWH4RVJBGKQ>

00017fb4 <sym_BN6ZO2NBHRGKZ2NRQYWFBXVGKNG6Y5K55UNAWGA>:
   17fb4:	f04f 5080 	mov.w	r0, #268435456	; 0x10000000
   17fb8:	f8d0 0130 	ldr.w	r0, [r0, #304]	; 0x130
   17fbc:	280f      	cmp	r0, #15
   17fbe:	d001      	beq.n	17fc4 <sym_BN6ZO2NBHRGKZ2NRQYWFBXVGKNG6Y5K55UNAWGA+0x10>
   17fc0:	2000      	movs	r0, #0
   17fc2:	4770      	bx	lr
   17fc4:	2001      	movs	r0, #1
   17fc6:	4770      	bx	lr

00017fc8 <sym_5EMXP3L6SPQSCAJKKRH62ZOKJCCSKLI3WEX2WHY>:
   17fc8:	f04f 5080 	mov.w	r0, #268435456	; 0x10000000
   17fcc:	f8d0 0130 	ldr.w	r0, [r0, #304]	; 0x130
   17fd0:	280a      	cmp	r0, #10
   17fd2:	d001      	beq.n	17fd8 <sym_5EMXP3L6SPQSCAJKKRH62ZOKJCCSKLI3WEX2WHY+0x10>
   17fd4:	2000      	movs	r0, #0
   17fd6:	4770      	bx	lr
   17fd8:	2001      	movs	r0, #1
   17fda:	4770      	bx	lr

00017fdc <sym_NQG4U7UYIQILZLC5ENYCA4NQMQM6PBAZC345PPA>:
   17fdc:	b500      	push	{lr}
   17fde:	f7ff fff3 	bl	17fc8 <sym_5EMXP3L6SPQSCAJKKRH62ZOKJCCSKLI3WEX2WHY>
   17fe2:	b120      	cbz	r0, 17fee <sym_NQG4U7UYIQILZLC5ENYCA4NQMQM6PBAZC345PPA+0x12>
   17fe4:	f04f 5080 	mov.w	r0, #268435456	; 0x10000000
   17fe8:	f8d0 0134 	ldr.w	r0, [r0, #308]	; 0x134
   17fec:	b108      	cbz	r0, 17ff2 <sym_NQG4U7UYIQILZLC5ENYCA4NQMQM6PBAZC345PPA+0x16>
   17fee:	2000      	movs	r0, #0
   17ff0:	bd00      	pop	{pc}
   17ff2:	2001      	movs	r0, #1
   17ff4:	bd00      	pop	{pc}

00017ff6 <sym_H2QJCU2ORTYAFBAQQ2FHUYIAZO4HCXEKCQ4SS2Q>:
   17ff6:	f04f 5080 	mov.w	r0, #268435456	; 0x10000000
   17ffa:	f8d0 0130 	ldr.w	r0, [r0, #304]	; 0x130
   17ffe:	280e      	cmp	r0, #14
   18000:	d001      	beq.n	18006 <sym_H2QJCU2ORTYAFBAQQ2FHUYIAZO4HCXEKCQ4SS2Q+0x10>
   18002:	2000      	movs	r0, #0
   18004:	4770      	bx	lr
   18006:	2001      	movs	r0, #1
   18008:	4770      	bx	lr

0001800a <sym_SWIBDSDMHUYNCG5ZWLB52J7NETJIUBPCO5IIQFA>:
   1800a:	f04f 5080 	mov.w	r0, #268435456	; 0x10000000
   1800e:	f8d0 0130 	ldr.w	r0, [r0, #304]	; 0x130
   18012:	2810      	cmp	r0, #16
   18014:	d001      	beq.n	1801a <sym_SWIBDSDMHUYNCG5ZWLB52J7NETJIUBPCO5IIQFA+0x10>
   18016:	2000      	movs	r0, #0
   18018:	4770      	bx	lr
   1801a:	2001      	movs	r0, #1
   1801c:	4770      	bx	lr

0001801e <sym_QPP3IZFSWHUV4JQ6ODMIVIARPB4PQYUFESV7BRQ>:
   1801e:	f04f 5080 	mov.w	r0, #268435456	; 0x10000000
   18022:	f8d0 0130 	ldr.w	r0, [r0, #304]	; 0x130
   18026:	2806      	cmp	r0, #6
   18028:	d003      	beq.n	18032 <sym_QPP3IZFSWHUV4JQ6ODMIVIARPB4PQYUFESV7BRQ+0x14>
   1802a:	1c40      	adds	r0, r0, #1
   1802c:	d001      	beq.n	18032 <sym_QPP3IZFSWHUV4JQ6ODMIVIARPB4PQYUFESV7BRQ+0x14>
   1802e:	2000      	movs	r0, #0
   18030:	4770      	bx	lr
   18032:	2001      	movs	r0, #1
   18034:	4770      	bx	lr

00018036 <sym_6AONFMPWPBAZBMQ4KY5PX7QPX2FM4UPZQRFPZSQ>:
   18036:	b500      	push	{lr}
   18038:	f7ff fff1 	bl	1801e <sym_QPP3IZFSWHUV4JQ6ODMIVIARPB4PQYUFESV7BRQ>
   1803c:	b148      	cbz	r0, 18052 <sym_6AONFMPWPBAZBMQ4KY5PX7QPX2FM4UPZQRFPZSQ+0x1c>
   1803e:	f04f 5080 	mov.w	r0, #268435456	; 0x10000000
   18042:	f8d0 0134 	ldr.w	r0, [r0, #308]	; 0x134
   18046:	2806      	cmp	r0, #6
   18048:	d303      	bcc.n	18052 <sym_6AONFMPWPBAZBMQ4KY5PX7QPX2FM4UPZQRFPZSQ+0x1c>
   1804a:	1c40      	adds	r0, r0, #1
   1804c:	d001      	beq.n	18052 <sym_6AONFMPWPBAZBMQ4KY5PX7QPX2FM4UPZQRFPZSQ+0x1c>
   1804e:	2001      	movs	r0, #1
   18050:	bd00      	pop	{pc}
   18052:	2000      	movs	r0, #0
   18054:	bd00      	pop	{pc}

00018056 <sym_YNH6KDZL2GMJ2KPUX5DEER63BRE7IOGBY3KCQAQ>:
   18056:	b500      	push	{lr}
   18058:	f7ff ffe1 	bl	1801e <sym_QPP3IZFSWHUV4JQ6ODMIVIARPB4PQYUFESV7BRQ>
   1805c:	b138      	cbz	r0, 1806e <sym_YNH6KDZL2GMJ2KPUX5DEER63BRE7IOGBY3KCQAQ+0x18>
   1805e:	f04f 5080 	mov.w	r0, #268435456	; 0x10000000
   18062:	f8d0 0134 	ldr.w	r0, [r0, #308]	; 0x134
   18066:	2806      	cmp	r0, #6
   18068:	d303      	bcc.n	18072 <sym_YNH6KDZL2GMJ2KPUX5DEER63BRE7IOGBY3KCQAQ+0x1c>
   1806a:	1c40      	adds	r0, r0, #1
   1806c:	d001      	beq.n	18072 <sym_YNH6KDZL2GMJ2KPUX5DEER63BRE7IOGBY3KCQAQ+0x1c>
   1806e:	2000      	movs	r0, #0
   18070:	bd00      	pop	{pc}
   18072:	2001      	movs	r0, #1
   18074:	bd00      	pop	{pc}

00018076 <sym_6PVOPWDLWTXOTRZZ7LP36TLYTLPTQHNAUQNFHEA>:
   18076:	f04f 5080 	mov.w	r0, #268435456	; 0x10000000
   1807a:	f8d0 0130 	ldr.w	r0, [r0, #304]	; 0x130
   1807e:	280d      	cmp	r0, #13
   18080:	d001      	beq.n	18086 <sym_6PVOPWDLWTXOTRZZ7LP36TLYTLPTQHNAUQNFHEA+0x10>
   18082:	2000      	movs	r0, #0
   18084:	4770      	bx	lr
   18086:	2001      	movs	r0, #1
   18088:	4770      	bx	lr

0001808a <sym_USR4MDT6VMTQLOGKNN4MALBZ3GJPD2KOEY4HFAQ>:
   1808a:	f04f 5080 	mov.w	r0, #268435456	; 0x10000000
   1808e:	f8d0 0130 	ldr.w	r0, [r0, #304]	; 0x130
   18092:	2808      	cmp	r0, #8
   18094:	d001      	beq.n	1809a <sym_USR4MDT6VMTQLOGKNN4MALBZ3GJPD2KOEY4HFAQ+0x10>
   18096:	2000      	movs	r0, #0
   18098:	4770      	bx	lr
   1809a:	2001      	movs	r0, #1
   1809c:	4770      	bx	lr

0001809e <sym_K65IFLJONCLHPD5IQ4ENBWGA3PVI55UHZKOIVDQ>:
   1809e:	2a00      	cmp	r2, #0
   180a0:	bf04      	itt	eq
   180a2:	2000      	moveq	r0, #0
   180a4:	4770      	bxeq	lr
   180a6:	1e52      	subs	r2, r2, #1
   180a8:	d007      	beq.n	180ba <sym_K65IFLJONCLHPD5IQ4ENBWGA3PVI55UHZKOIVDQ+0x1c>
   180aa:	7803      	ldrb	r3, [r0, #0]
   180ac:	f891 c000 	ldrb.w	ip, [r1]
   180b0:	4563      	cmp	r3, ip
   180b2:	bf04      	itt	eq
   180b4:	1c40      	addeq	r0, r0, #1
   180b6:	1c49      	addeq	r1, r1, #1
   180b8:	d0f5      	beq.n	180a6 <sym_K65IFLJONCLHPD5IQ4ENBWGA3PVI55UHZKOIVDQ+0x8>
   180ba:	7800      	ldrb	r0, [r0, #0]
   180bc:	7809      	ldrb	r1, [r1, #0]
   180be:	1a40      	subs	r0, r0, r1
   180c0:	4770      	bx	lr

000180c2 <sym_DQONLUECJTIEYFOFJXXAPJO4POIAJKJNKBGVN5A>:
   180c2:	b4f0      	push	{r4, r5, r6, r7}
   180c4:	ea80 0c01 	eor.w	ip, r0, r1
   180c8:	4603      	mov	r3, r0
   180ca:	f01c 0f03 	tst.w	ip, #3
   180ce:	d13c      	bne.n	1814a <sym_DQONLUECJTIEYFOFJXXAPJO4POIAJKJNKBGVN5A+0x88>
   180d0:	f013 0f03 	tst.w	r3, #3
   180d4:	d00b      	beq.n	180ee <sym_DQONLUECJTIEYFOFJXXAPJO4POIAJKJNKBGVN5A+0x2c>
   180d6:	2a00      	cmp	r2, #0
   180d8:	bf04      	itt	eq
   180da:	bcf0      	popeq	{r4, r5, r6, r7}
   180dc:	4770      	bxeq	lr
   180de:	f811 cb01 	ldrb.w	ip, [r1], #1
   180e2:	f803 cb01 	strb.w	ip, [r3], #1
   180e6:	1e52      	subs	r2, r2, #1
   180e8:	f013 0f03 	tst.w	r3, #3
   180ec:	d1f3      	bne.n	180d6 <sym_DQONLUECJTIEYFOFJXXAPJO4POIAJKJNKBGVN5A+0x14>
   180ee:	2a03      	cmp	r2, #3
   180f0:	d94f      	bls.n	18192 <sym_DQONLUECJTIEYFOFJXXAPJO4POIAJKJNKBGVN5A+0xd0>
   180f2:	f1b2 4f00 	cmp.w	r2, #2147483648	; 0x80000000
   180f6:	d24c      	bcs.n	18192 <sym_DQONLUECJTIEYFOFJXXAPJO4POIAJKJNKBGVN5A+0xd0>
   180f8:	f1c2 0c00 	rsb	ip, r2, #0
   180fc:	ea4f 74ec 	mov.w	r4, ip, asr #31
   18100:	eb0c 7c94 	add.w	ip, ip, r4, lsr #30
   18104:	ea4f 0cac 	mov.w	ip, ip, asr #2
   18108:	f1cc 0c00 	rsb	ip, ip, #0
   1810c:	f1bc 0f00 	cmp.w	ip, #0
   18110:	dd1b      	ble.n	1814a <sym_DQONLUECJTIEYFOFJXXAPJO4POIAJKJNKBGVN5A+0x88>
   18112:	1f0d      	subs	r5, r1, #4
   18114:	1f1c      	subs	r4, r3, #4
   18116:	f01c 0f01 	tst.w	ip, #1
   1811a:	d003      	beq.n	18124 <sym_DQONLUECJTIEYFOFJXXAPJO4POIAJKJNKBGVN5A+0x62>
   1811c:	f855 6f04 	ldr.w	r6, [r5, #4]!
   18120:	f844 6f04 	str.w	r6, [r4, #4]!
   18124:	ea5f 066c 	movs.w	r6, ip, asr #1
   18128:	d007      	beq.n	1813a <sym_DQONLUECJTIEYFOFJXXAPJO4POIAJKJNKBGVN5A+0x78>
   1812a:	686f      	ldr	r7, [r5, #4]
   1812c:	6067      	str	r7, [r4, #4]
   1812e:	f855 7f08 	ldr.w	r7, [r5, #8]!
   18132:	f844 7f08 	str.w	r7, [r4, #8]!
   18136:	1e76      	subs	r6, r6, #1
   18138:	d1f7      	bne.n	1812a <sym_DQONLUECJTIEYFOFJXXAPJO4POIAJKJNKBGVN5A+0x68>
   1813a:	eb01 018c 	add.w	r1, r1, ip, lsl #2
   1813e:	eb03 038c 	add.w	r3, r3, ip, lsl #2
   18142:	f1cc 0c00 	rsb	ip, ip, #0
   18146:	eb02 028c 	add.w	r2, r2, ip, lsl #2
   1814a:	2a00      	cmp	r2, #0
   1814c:	bf04      	itt	eq
   1814e:	bcf0      	popeq	{r4, r5, r6, r7}
   18150:	4770      	bxeq	lr
   18152:	f1b2 4f00 	cmp.w	r2, #2147483648	; 0x80000000
   18156:	d226      	bcs.n	181a6 <sym_DQONLUECJTIEYFOFJXXAPJO4POIAJKJNKBGVN5A+0xe4>
   18158:	2a00      	cmp	r2, #0
   1815a:	bfdc      	itt	le
   1815c:	bcf0      	pople	{r4, r5, r6, r7}
   1815e:	4770      	bxle	lr
   18160:	1e49      	subs	r1, r1, #1
   18162:	1e5b      	subs	r3, r3, #1
   18164:	f012 0f01 	tst.w	r2, #1
   18168:	d003      	beq.n	18172 <sym_DQONLUECJTIEYFOFJXXAPJO4POIAJKJNKBGVN5A+0xb0>
   1816a:	f811 cf01 	ldrb.w	ip, [r1, #1]!
   1816e:	f803 cf01 	strb.w	ip, [r3, #1]!
   18172:	1052      	asrs	r2, r2, #1
   18174:	bf04      	itt	eq
   18176:	bcf0      	popeq	{r4, r5, r6, r7}
   18178:	4770      	bxeq	lr
   1817a:	f891 c001 	ldrb.w	ip, [r1, #1]
   1817e:	f883 c001 	strb.w	ip, [r3, #1]
   18182:	f811 cf02 	ldrb.w	ip, [r1, #2]!
   18186:	f803 cf02 	strb.w	ip, [r3, #2]!
   1818a:	1e52      	subs	r2, r2, #1
   1818c:	d1f5      	bne.n	1817a <sym_DQONLUECJTIEYFOFJXXAPJO4POIAJKJNKBGVN5A+0xb8>
   1818e:	bcf0      	pop	{r4, r5, r6, r7}
   18190:	4770      	bx	lr
   18192:	2a04      	cmp	r2, #4
   18194:	d3d9      	bcc.n	1814a <sym_DQONLUECJTIEYFOFJXXAPJO4POIAJKJNKBGVN5A+0x88>
   18196:	f851 cb04 	ldr.w	ip, [r1], #4
   1819a:	1f12      	subs	r2, r2, #4
   1819c:	f843 cb04 	str.w	ip, [r3], #4
   181a0:	2a04      	cmp	r2, #4
   181a2:	d2f8      	bcs.n	18196 <sym_DQONLUECJTIEYFOFJXXAPJO4POIAJKJNKBGVN5A+0xd4>
   181a4:	e7d1      	b.n	1814a <sym_DQONLUECJTIEYFOFJXXAPJO4POIAJKJNKBGVN5A+0x88>
   181a6:	f811 cb01 	ldrb.w	ip, [r1], #1
   181aa:	f803 cb01 	strb.w	ip, [r3], #1
   181ae:	1e52      	subs	r2, r2, #1
   181b0:	d1f9      	bne.n	181a6 <sym_DQONLUECJTIEYFOFJXXAPJO4POIAJKJNKBGVN5A+0xe4>
   181b2:	bcf0      	pop	{r4, r5, r6, r7}
   181b4:	4770      	bx	lr

000181b6 <sym_VSILKYHVQ5DVF6LG5MG267DQVA3A2XZQ6FSCLXA>:
   181b6:	b470      	push	{r4, r5, r6}
   181b8:	4603      	mov	r3, r0
   181ba:	f001 0cff 	and.w	ip, r1, #255	; 0xff
   181be:	f010 0f03 	tst.w	r0, #3
   181c2:	d009      	beq.n	181d8 <sym_VSILKYHVQ5DVF6LG5MG267DQVA3A2XZQ6FSCLXA+0x22>
   181c4:	2a00      	cmp	r2, #0
   181c6:	bf04      	itt	eq
   181c8:	bc70      	popeq	{r4, r5, r6}
   181ca:	4770      	bxeq	lr
   181cc:	f803 cb01 	strb.w	ip, [r3], #1
   181d0:	1e52      	subs	r2, r2, #1
   181d2:	f013 0f03 	tst.w	r3, #3
   181d6:	d1f5      	bne.n	181c4 <sym_VSILKYHVQ5DVF6LG5MG267DQVA3A2XZQ6FSCLXA+0xe>
   181d8:	b2c9      	uxtb	r1, r1
   181da:	ea41 2101 	orr.w	r1, r1, r1, lsl #8
   181de:	ea41 4501 	orr.w	r5, r1, r1, lsl #16
   181e2:	2a03      	cmp	r2, #3
   181e4:	d939      	bls.n	1825a <sym_VSILKYHVQ5DVF6LG5MG267DQVA3A2XZQ6FSCLXA+0xa4>
   181e6:	f1b2 4f00 	cmp.w	r2, #2147483648	; 0x80000000
   181ea:	d236      	bcs.n	1825a <sym_VSILKYHVQ5DVF6LG5MG267DQVA3A2XZQ6FSCLXA+0xa4>
   181ec:	4251      	negs	r1, r2
   181ee:	17cc      	asrs	r4, r1, #31
   181f0:	eb01 7194 	add.w	r1, r1, r4, lsr #30
   181f4:	1089      	asrs	r1, r1, #2
   181f6:	424e      	negs	r6, r1
   181f8:	2e00      	cmp	r6, #0
   181fa:	dd11      	ble.n	18220 <sym_VSILKYHVQ5DVF6LG5MG267DQVA3A2XZQ6FSCLXA+0x6a>
   181fc:	1f19      	subs	r1, r3, #4
   181fe:	f016 0f01 	tst.w	r6, #1
   18202:	bf18      	it	ne
   18204:	f841 5f04 	strne.w	r5, [r1, #4]!
   18208:	1074      	asrs	r4, r6, #1
   1820a:	d004      	beq.n	18216 <sym_VSILKYHVQ5DVF6LG5MG267DQVA3A2XZQ6FSCLXA+0x60>
   1820c:	604d      	str	r5, [r1, #4]
   1820e:	f841 5f08 	str.w	r5, [r1, #8]!
   18212:	1e64      	subs	r4, r4, #1
   18214:	d1fa      	bne.n	1820c <sym_VSILKYHVQ5DVF6LG5MG267DQVA3A2XZQ6FSCLXA+0x56>
   18216:	4271      	negs	r1, r6
   18218:	eb03 0386 	add.w	r3, r3, r6, lsl #2
   1821c:	eb02 0281 	add.w	r2, r2, r1, lsl #2
   18220:	2a00      	cmp	r2, #0
   18222:	bf04      	itt	eq
   18224:	bc70      	popeq	{r4, r5, r6}
   18226:	4770      	bxeq	lr
   18228:	f1b2 4f00 	cmp.w	r2, #2147483648	; 0x80000000
   1822c:	d21d      	bcs.n	1826a <sym_VSILKYHVQ5DVF6LG5MG267DQVA3A2XZQ6FSCLXA+0xb4>
   1822e:	2a00      	cmp	r2, #0
   18230:	bfdc      	itt	le
   18232:	bc70      	pople	{r4, r5, r6}
   18234:	4770      	bxle	lr
   18236:	1e59      	subs	r1, r3, #1
   18238:	f012 0f01 	tst.w	r2, #1
   1823c:	bf18      	it	ne
   1823e:	f801 cf01 	strbne.w	ip, [r1, #1]!
   18242:	1052      	asrs	r2, r2, #1
   18244:	bf04      	itt	eq
   18246:	bc70      	popeq	{r4, r5, r6}
   18248:	4770      	bxeq	lr
   1824a:	f881 c001 	strb.w	ip, [r1, #1]
   1824e:	f801 cf02 	strb.w	ip, [r1, #2]!
   18252:	1e52      	subs	r2, r2, #1
   18254:	d1f9      	bne.n	1824a <sym_VSILKYHVQ5DVF6LG5MG267DQVA3A2XZQ6FSCLXA+0x94>
   18256:	bc70      	pop	{r4, r5, r6}
   18258:	4770      	bx	lr
   1825a:	2a04      	cmp	r2, #4
   1825c:	d3e0      	bcc.n	18220 <sym_VSILKYHVQ5DVF6LG5MG267DQVA3A2XZQ6FSCLXA+0x6a>
   1825e:	1f12      	subs	r2, r2, #4
   18260:	f843 5b04 	str.w	r5, [r3], #4
   18264:	2a04      	cmp	r2, #4
   18266:	d2fa      	bcs.n	1825e <sym_VSILKYHVQ5DVF6LG5MG267DQVA3A2XZQ6FSCLXA+0xa8>
   18268:	e7da      	b.n	18220 <sym_VSILKYHVQ5DVF6LG5MG267DQVA3A2XZQ6FSCLXA+0x6a>
   1826a:	f803 cb01 	strb.w	ip, [r3], #1
   1826e:	1e52      	subs	r2, r2, #1
   18270:	d1fb      	bne.n	1826a <sym_VSILKYHVQ5DVF6LG5MG267DQVA3A2XZQ6FSCLXA+0xb4>
   18272:	bc70      	pop	{r4, r5, r6}
   18274:	4770      	bx	lr
   18276:	f04f 30ff 	mov.w	r0, #4294967295
   1827a:	4770      	bx	lr
   1827c:	2000      	movs	r0, #0
   1827e:	4770      	bx	lr
   18280:	2000      	movs	r0, #0
   18282:	4770      	bx	lr
   18284:	f04f 30ff 	mov.w	r0, #4294967295
   18288:	4770      	bx	lr
   1828a:	4770      	bx	lr
   1828c:	4770      	bx	lr
   1828e:	2000      	movs	r0, #0
   18290:	4770      	bx	lr
   18292:	f04f 30ff 	mov.w	r0, #4294967295
   18296:	4770      	bx	lr
   18298:	f04f 30ff 	mov.w	r0, #4294967295
   1829c:	4770      	bx	lr
   1829e:	2100      	movs	r1, #0
   182a0:	7001      	strb	r1, [r0, #0]
   182a2:	4770      	bx	lr
   182a4:	f04f 30ff 	mov.w	r0, #4294967295
   182a8:	4770      	bx	lr
   182aa:	f04f 30ff 	mov.w	r0, #4294967295
   182ae:	4770      	bx	lr
   182b0:	2000      	movs	r0, #0
   182b2:	4770      	bx	lr
   182b4:	e92d 41fc 	stmdb	sp!, {r2, r3, r4, r5, r6, r7, r8, lr}
   182b8:	4605      	mov	r5, r0
   182ba:	f100 0003 	add.w	r0, r0, #3
   182be:	f020 0003 	bic.w	r0, r0, #3
   182c2:	460c      	mov	r4, r1
   182c4:	9000      	str	r0, [sp, #0]
   182c6:	7849      	ldrb	r1, [r1, #1]
   182c8:	f88d 1004 	strb.w	r1, [sp, #4]
   182cc:	78a1      	ldrb	r1, [r4, #2]
   182ce:	0016      	movs	r6, r2
   182d0:	f88d 1005 	strb.w	r1, [sp, #5]
   182d4:	d000      	beq.n	182d8 <sym_VSILKYHVQ5DVF6LG5MG267DQVA3A2XZQ6FSCLXA+0x122>
   182d6:	2000      	movs	r0, #0
   182d8:	a901      	add	r1, sp, #4
   182da:	f7f8 f889 	bl	103f0 <sym_EQ53CEL7EDVHMFMHMFPRRQU46C5YKKFEBAACFOA>
   182de:	9900      	ldr	r1, [sp, #0]
   182e0:	4408      	add	r0, r1
   182e2:	9000      	str	r0, [sp, #0]
   182e4:	78a1      	ldrb	r1, [r4, #2]
   182e6:	b141      	cbz	r1, 182fa <sym_VSILKYHVQ5DVF6LG5MG267DQVA3A2XZQ6FSCLXA+0x144>
   182e8:	8a63      	ldrh	r3, [r4, #18]
   182ea:	78e2      	ldrb	r2, [r4, #3]
   182ec:	b106      	cbz	r6, 182f0 <sym_VSILKYHVQ5DVF6LG5MG267DQVA3A2XZQ6FSCLXA+0x13a>
   182ee:	2000      	movs	r0, #0
   182f0:	f7f8 fb0e 	bl	10910 <sym_YL4RMM7WH2QQSRTLJX7L5Q2F5KYIEZ5IWMCN3UQ>
   182f4:	9900      	ldr	r1, [sp, #0]
   182f6:	4408      	add	r0, r1
   182f8:	9000      	str	r0, [sp, #0]
   182fa:	4632      	mov	r2, r6
   182fc:	4621      	mov	r1, r4
   182fe:	4668      	mov	r0, sp
   18300:	f000 f808 	bl	18314 <sym_VSILKYHVQ5DVF6LG5MG267DQVA3A2XZQ6FSCLXA+0x15e>
   18304:	9800      	ldr	r0, [sp, #0]
   18306:	1dc0      	adds	r0, r0, #7
   18308:	f020 0007 	bic.w	r0, r0, #7
   1830c:	9000      	str	r0, [sp, #0]
   1830e:	1b40      	subs	r0, r0, r5
   18310:	e8bd 81fc 	ldmia.w	sp!, {r2, r3, r4, r5, r6, r7, r8, pc}
   18314:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
   18318:	4606      	mov	r6, r0
   1831a:	460c      	mov	r4, r1
   1831c:	7808      	ldrb	r0, [r1, #0]
   1831e:	7849      	ldrb	r1, [r1, #1]
   18320:	2700      	movs	r7, #0
   18322:	4408      	add	r0, r1
   18324:	4691      	mov	r9, r2
   18326:	f000 08ff 	and.w	r8, r0, #255	; 0xff
   1832a:	463d      	mov	r5, r7
   1832c:	e00e      	b.n	1834c <sym_VSILKYHVQ5DVF6LG5MG267DQVA3A2XZQ6FSCLXA+0x196>
   1832e:	7a23      	ldrb	r3, [r4, #8]
   18330:	2b02      	cmp	r3, #2
   18332:	d200      	bcs.n	18336 <sym_VSILKYHVQ5DVF6LG5MG267DQVA3A2XZQ6FSCLXA+0x180>
   18334:	2302      	movs	r3, #2
   18336:	79e2      	ldrb	r2, [r4, #7]
   18338:	2a03      	cmp	r2, #3
   1833a:	d200      	bcs.n	1833e <sym_VSILKYHVQ5DVF6LG5MG267DQVA3A2XZQ6FSCLXA+0x188>
   1833c:	2203      	movs	r2, #3
   1833e:	79a1      	ldrb	r1, [r4, #6]
   18340:	7960      	ldrb	r0, [r4, #5]
   18342:	f000 fef8 	bl	19136 <sym_WDNTHBFS7DQM3AR7WDCR7ZEICFH5ZM5PJ35BRPY>
   18346:	1c6d      	adds	r5, r5, #1
   18348:	4407      	add	r7, r0
   1834a:	b2ed      	uxtb	r5, r5
   1834c:	4545      	cmp	r5, r8
   1834e:	d3ee      	bcc.n	1832e <sym_VSILKYHVQ5DVF6LG5MG267DQVA3A2XZQ6FSCLXA+0x178>
   18350:	6830      	ldr	r0, [r6, #0]
   18352:	1cc0      	adds	r0, r0, #3
   18354:	f020 0003 	bic.w	r0, r0, #3
   18358:	6030      	str	r0, [r6, #0]
   1835a:	f1b9 0f00 	cmp.w	r9, #0
   1835e:	d000      	beq.n	18362 <sym_VSILKYHVQ5DVF6LG5MG267DQVA3A2XZQ6FSCLXA+0x1ac>
   18360:	2000      	movs	r0, #0
   18362:	463a      	mov	r2, r7
   18364:	4641      	mov	r1, r8
   18366:	f7f8 fa1d 	bl	107a4 <sym_6DYG6C6ROXZA67GZINNB2XIQHL3KE2RCKK4QFXA>
   1836a:	6831      	ldr	r1, [r6, #0]
   1836c:	4408      	add	r0, r1
   1836e:	6030      	str	r0, [r6, #0]
   18370:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}

00018374 <sdc_soc_ecb_block_encrypt>:
   18374:	b530      	push	{r4, r5, lr}
   18376:	460d      	mov	r5, r1
   18378:	b08d      	sub	sp, #52	; 0x34
   1837a:	4614      	mov	r4, r2
   1837c:	4601      	mov	r1, r0
   1837e:	2210      	movs	r2, #16
   18380:	4668      	mov	r0, sp
   18382:	f7ff fe9e 	bl	180c2 <sym_DQONLUECJTIEYFOFJXXAPJO4POIAJKJNKBGVN5A>
   18386:	2210      	movs	r2, #16
   18388:	4629      	mov	r1, r5
   1838a:	a804      	add	r0, sp, #16
   1838c:	f7ff fe99 	bl	180c2 <sym_DQONLUECJTIEYFOFJXXAPJO4POIAJKJNKBGVN5A>
   18390:	4668      	mov	r0, sp
   18392:	f7f8 fbd3 	bl	10b3c <sym_2ZCOT6ZEUU54S36NE627GOZVLBS26AFIUJKNLBI>
   18396:	b118      	cbz	r0, 183a0 <sdc_soc_ecb_block_encrypt+0x2c>
   18398:	f06f 0015 	mvn.w	r0, #21
   1839c:	b00d      	add	sp, #52	; 0x34
   1839e:	bd30      	pop	{r4, r5, pc}
   183a0:	2210      	movs	r2, #16
   183a2:	4620      	mov	r0, r4
   183a4:	a908      	add	r1, sp, #32
   183a6:	f7ff fe8c 	bl	180c2 <sym_DQONLUECJTIEYFOFJXXAPJO4POIAJKJNKBGVN5A>
   183aa:	2000      	movs	r0, #0
   183ac:	e7f6      	b.n	1839c <sdc_soc_ecb_block_encrypt+0x28>

000183ae <sym_4IISVSOLVFJB5JBTYDAEGXSTM4YG5MOTRTRY33A>:
   183ae:	2000      	movs	r0, #0
   183b0:	4770      	bx	lr

000183b2 <sym_J4YPB5V427LGVECR3WQM2YMQSYACGT77QKJSI3I>:
   183b2:	b53e      	push	{r1, r2, r3, r4, r5, lr}
   183b4:	4604      	mov	r4, r0
   183b6:	1d01      	adds	r1, r0, #4
   183b8:	4668      	mov	r0, sp
   183ba:	f7f9 ffeb 	bl	12394 <sym_BBCGHL23UJV466BYW2SHQ2OBUQH4NLFTPMY4GQA>
   183be:	2800      	cmp	r0, #0
   183c0:	d004      	beq.n	183cc <sym_J4YPB5V427LGVECR3WQM2YMQSYACGT77QKJSI3I+0x1a>
   183c2:	4669      	mov	r1, sp
   183c4:	4620      	mov	r0, r4
   183c6:	f000 f848 	bl	1845a <sym_CNH7SD2WCGFAHI2ANQOF3HHV2F3WYQDABEB6D2I>
   183ca:	2001      	movs	r0, #1
   183cc:	bd3e      	pop	{r1, r2, r3, r4, r5, pc}

000183ce <sym_PVKZWZJ5CJJGE5FITE5FOMMY5J4BUV2COWMQKSY>:
   183ce:	b50e      	push	{r1, r2, r3, lr}
   183d0:	4601      	mov	r1, r0
   183d2:	4668      	mov	r0, sp
   183d4:	f000 f827 	bl	18426 <sym_BR3ZWQHTEOP3TTXZR25GQZOEPSGL2XNSEOFSTEI>
   183d8:	4668      	mov	r0, sp
   183da:	f7fa f805 	bl	123e8 <sym_ZUFGUNQKQRINYDDQ2AFT3BJLR3IFVV6WJFPT3PA>
   183de:	bd0e      	pop	{r1, r2, r3, pc}

000183e0 <sym_DUIEI4YTK3TJQ2V3W7PLOGVTWVPNDBBG4WJWTAQ>:
   183e0:	b510      	push	{r4, lr}
   183e2:	4604      	mov	r4, r0
   183e4:	4620      	mov	r0, r4
   183e6:	f7f7 fef1 	bl	101cc <sym_MEYOCD6AYGN6BYYH5M35H6GLLMHM6TYBBTCW2LI+0x50>
   183ea:	2800      	cmp	r0, #0
   183ec:	d006      	beq.n	183fc <sym_DUIEI4YTK3TJQ2V3W7PLOGVTWVPNDBBG4WJWTAQ+0x1c>
   183ee:	78a1      	ldrb	r1, [r4, #2]
   183f0:	7820      	ldrb	r0, [r4, #0]
   183f2:	f000 f804 	bl	183fe <sym_DUIEI4YTK3TJQ2V3W7PLOGVTWVPNDBBG4WJWTAQ+0x1e>
   183f6:	2800      	cmp	r0, #0
   183f8:	d0f4      	beq.n	183e4 <sym_DUIEI4YTK3TJQ2V3W7PLOGVTWVPNDBBG4WJWTAQ+0x4>
   183fa:	2001      	movs	r0, #1
   183fc:	bd10      	pop	{r4, pc}
   183fe:	b570      	push	{r4, r5, r6, lr}
   18400:	460c      	mov	r4, r1
   18402:	4605      	mov	r5, r0
   18404:	f7f7 ff54 	bl	102b0 <sym_Z7NJGBYWCKFTEHRYWAIDKWPEUN45273QSWUA5CY>
   18408:	2800      	cmp	r0, #0
   1840a:	d002      	beq.n	18412 <sym_DUIEI4YTK3TJQ2V3W7PLOGVTWVPNDBBG4WJWTAQ+0x32>
   1840c:	2d3e      	cmp	r5, #62	; 0x3e
   1840e:	d001      	beq.n	18414 <sym_DUIEI4YTK3TJQ2V3W7PLOGVTWVPNDBBG4WJWTAQ+0x34>
   18410:	2001      	movs	r0, #1
   18412:	bd70      	pop	{r4, r5, r6, pc}
   18414:	2c12      	cmp	r4, #18
   18416:	d004      	beq.n	18422 <sym_DUIEI4YTK3TJQ2V3W7PLOGVTWVPNDBBG4WJWTAQ+0x42>
   18418:	4620      	mov	r0, r4
   1841a:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
   1841e:	f7f7 bf63 	b.w	102e8 <sym_CEENVC5DZRUT7MGF5LABXKT4NV7YUL5F6EX6TEQ>
   18422:	2000      	movs	r0, #0
   18424:	bd70      	pop	{r4, r5, r6, pc}

00018426 <sym_BR3ZWQHTEOP3TTXZR25GQZOEPSGL2XNSEOFSTEI>:
   18426:	880a      	ldrh	r2, [r1, #0]
   18428:	f3c2 020b 	ubfx	r2, r2, #0, #12
   1842c:	8002      	strh	r2, [r0, #0]
   1842e:	884a      	ldrh	r2, [r1, #2]
   18430:	8042      	strh	r2, [r0, #2]
   18432:	784a      	ldrb	r2, [r1, #1]
   18434:	0993      	lsrs	r3, r2, #6
   18436:	2200      	movs	r2, #0
   18438:	7142      	strb	r2, [r0, #5]
   1843a:	784b      	ldrb	r3, [r1, #1]
   1843c:	f3c3 1301 	ubfx	r3, r3, #4, #2
   18440:	b11b      	cbz	r3, 1844a <sym_BR3ZWQHTEOP3TTXZR25GQZOEPSGL2XNSEOFSTEI+0x24>
   18442:	2b01      	cmp	r3, #1
   18444:	d005      	beq.n	18452 <sym_BR3ZWQHTEOP3TTXZR25GQZOEPSGL2XNSEOFSTEI+0x2c>
   18446:	2b02      	cmp	r3, #2
   18448:	d005      	beq.n	18456 <sym_BR3ZWQHTEOP3TTXZR25GQZOEPSGL2XNSEOFSTEI+0x30>
   1844a:	7102      	strb	r2, [r0, #4]
   1844c:	1d09      	adds	r1, r1, #4
   1844e:	6081      	str	r1, [r0, #8]
   18450:	4770      	bx	lr
   18452:	2201      	movs	r2, #1
   18454:	e7f9      	b.n	1844a <sym_BR3ZWQHTEOP3TTXZR25GQZOEPSGL2XNSEOFSTEI+0x24>
   18456:	2202      	movs	r2, #2
   18458:	e7f7      	b.n	1844a <sym_BR3ZWQHTEOP3TTXZR25GQZOEPSGL2XNSEOFSTEI+0x24>

0001845a <sym_CNH7SD2WCGFAHI2ANQOF3HHV2F3WYQDABEB6D2I>:
   1845a:	b510      	push	{r4, lr}
   1845c:	460c      	mov	r4, r1
   1845e:	7809      	ldrb	r1, [r1, #0]
   18460:	7001      	strb	r1, [r0, #0]
   18462:	7841      	ldrb	r1, [r0, #1]
   18464:	f021 010f 	bic.w	r1, r1, #15
   18468:	7041      	strb	r1, [r0, #1]
   1846a:	8822      	ldrh	r2, [r4, #0]
   1846c:	f3c2 2203 	ubfx	r2, r2, #8, #4
   18470:	4311      	orrs	r1, r2
   18472:	7041      	strb	r1, [r0, #1]
   18474:	78a2      	ldrb	r2, [r4, #2]
   18476:	7082      	strb	r2, [r0, #2]
   18478:	8862      	ldrh	r2, [r4, #2]
   1847a:	f021 0130 	bic.w	r1, r1, #48	; 0x30
   1847e:	0a12      	lsrs	r2, r2, #8
   18480:	70c2      	strb	r2, [r0, #3]
   18482:	7041      	strb	r1, [r0, #1]
   18484:	7922      	ldrb	r2, [r4, #4]
   18486:	f002 0203 	and.w	r2, r2, #3
   1848a:	ea41 1102 	orr.w	r1, r1, r2, lsl #4
   1848e:	f021 01c0 	bic.w	r1, r1, #192	; 0xc0
   18492:	7041      	strb	r1, [r0, #1]
   18494:	7962      	ldrb	r2, [r4, #5]
   18496:	ea41 1182 	orr.w	r1, r1, r2, lsl #6
   1849a:	7041      	strb	r1, [r0, #1]
   1849c:	68a1      	ldr	r1, [r4, #8]
   1849e:	1d02      	adds	r2, r0, #4
   184a0:	4291      	cmp	r1, r2
   184a2:	d006      	beq.n	184b2 <sym_CNH7SD2WCGFAHI2ANQOF3HHV2F3WYQDABEB6D2I+0x58>
   184a4:	8862      	ldrh	r2, [r4, #2]
   184a6:	2afb      	cmp	r2, #251	; 0xfb
   184a8:	d300      	bcc.n	184ac <sym_CNH7SD2WCGFAHI2ANQOF3HHV2F3WYQDABEB6D2I+0x52>
   184aa:	22fb      	movs	r2, #251	; 0xfb
   184ac:	1d00      	adds	r0, r0, #4
   184ae:	f7ff fe08 	bl	180c2 <sym_DQONLUECJTIEYFOFJXXAPJO4POIAJKJNKBGVN5A>
   184b2:	78a0      	ldrb	r0, [r4, #2]
   184b4:	1d00      	adds	r0, r0, #4
   184b6:	b2c0      	uxtb	r0, r0
   184b8:	bd10      	pop	{r4, pc}

000184ba <sym_XMQQMVD4MD6DRWNW2DWSCGOMJHFY3IX7NXUHTGI>:
   184ba:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   184be:	4604      	mov	r4, r0
   184c0:	780f      	ldrb	r7, [r1, #0]
   184c2:	2000      	movs	r0, #0
   184c4:	250c      	movs	r5, #12
   184c6:	2605      	movs	r6, #5
   184c8:	223e      	movs	r2, #62	; 0x3e
   184ca:	23ff      	movs	r3, #255	; 0xff
   184cc:	2f1b      	cmp	r7, #27
   184ce:	d27d      	bcs.n	185cc <sym_XMQQMVD4MD6DRWNW2DWSCGOMJHFY3IX7NXUHTGI+0x112>
   184d0:	e8df f007 	tbb	[pc, r7]
   184d4:	27250eea 	.word	0x27250eea
   184d8:	816d632d 	.word	0x816d632d
   184dc:	bcb1af9b 	.word	0xbcb1af9b
   184e0:	eaf4e2c7 	.word	0xeaf4e2c7
   184e4:	d5d231ea 	.word	0xd5d231ea
   184e8:	eff0f1fd 	.word	0xeff0f1fd
   184ec:	00ecedee 	.word	0x00ecedee
   184f0:	7025      	strb	r5, [r4, #0]
   184f2:	7908      	ldrb	r0, [r1, #4]
   184f4:	70a0      	strb	r0, [r4, #2]
   184f6:	7948      	ldrb	r0, [r1, #5]
   184f8:	70e0      	strb	r0, [r4, #3]
   184fa:	f8b1 0005 	ldrh.w	r0, [r1, #5]
   184fe:	0a00      	lsrs	r0, r0, #8
   18500:	7120      	strb	r0, [r4, #4]
   18502:	79c8      	ldrb	r0, [r1, #7]
   18504:	7160      	strb	r0, [r4, #5]
   18506:	7a08      	ldrb	r0, [r1, #8]
   18508:	71a0      	strb	r0, [r4, #6]
   1850a:	8908      	ldrh	r0, [r1, #8]
   1850c:	0a00      	lsrs	r0, r0, #8
   1850e:	71e0      	strb	r0, [r4, #7]
   18510:	7a88      	ldrb	r0, [r1, #10]
   18512:	7220      	strb	r0, [r4, #8]
   18514:	8948      	ldrh	r0, [r1, #10]
   18516:	0a00      	lsrs	r0, r0, #8
   18518:	7260      	strb	r0, [r4, #9]
   1851a:	2008      	movs	r0, #8
   1851c:	e0c2      	b.n	186a4 <sym_XMQQMVD4MD6DRWNW2DWSCGOMJHFY3IX7NXUHTGI+0x1ea>
   1851e:	2010      	movs	r0, #16
   18520:	e000      	b.n	18524 <sym_XMQQMVD4MD6DRWNW2DWSCGOMJHFY3IX7NXUHTGI+0x6a>
   18522:	201a      	movs	r0, #26
   18524:	7020      	strb	r0, [r4, #0]
   18526:	7908      	ldrb	r0, [r1, #4]
   18528:	70a0      	strb	r0, [r4, #2]
   1852a:	2001      	movs	r0, #1
   1852c:	e0ba      	b.n	186a4 <sym_XMQQMVD4MD6DRWNW2DWSCGOMJHFY3IX7NXUHTGI+0x1ea>
   1852e:	4620      	mov	r0, r4
   18530:	f000 f946 	bl	187c0 <sym_QMF6WGBSHHRI7BTYKZGNY3YBGTOTAZDDWYJFVQQ>
   18534:	e0b4      	b.n	186a0 <sym_XMQQMVD4MD6DRWNW2DWSCGOMJHFY3IX7NXUHTGI+0x1e6>
   18536:	7022      	strb	r2, [r4, #0]
   18538:	200a      	movs	r0, #10
   1853a:	70a0      	strb	r0, [r4, #2]
   1853c:	f811 0f04 	ldrb.w	r0, [r1, #4]!
   18540:	70e0      	strb	r0, [r4, #3]
   18542:	7888      	ldrb	r0, [r1, #2]
   18544:	7120      	strb	r0, [r4, #4]
   18546:	8848      	ldrh	r0, [r1, #2]
   18548:	0a00      	lsrs	r0, r0, #8
   1854a:	7160      	strb	r0, [r4, #5]
   1854c:	7908      	ldrb	r0, [r1, #4]
   1854e:	71a0      	strb	r0, [r4, #6]
   18550:	7948      	ldrb	r0, [r1, #5]
   18552:	71e0      	strb	r0, [r4, #7]
   18554:	f8d1 0006 	ldr.w	r0, [r1, #6]
   18558:	60a0      	str	r0, [r4, #8]
   1855a:	8948      	ldrh	r0, [r1, #10]
   1855c:	81a0      	strh	r0, [r4, #12]
   1855e:	68c8      	ldr	r0, [r1, #12]
   18560:	f8c4 000e 	str.w	r0, [r4, #14]
   18564:	8a08      	ldrh	r0, [r1, #16]
   18566:	8260      	strh	r0, [r4, #18]
   18568:	f8d1 0012 	ldr.w	r0, [r1, #18]
   1856c:	6160      	str	r0, [r4, #20]
   1856e:	8ac8      	ldrh	r0, [r1, #22]
   18570:	8320      	strh	r0, [r4, #24]
   18572:	7e08      	ldrb	r0, [r1, #24]
   18574:	76a0      	strb	r0, [r4, #26]
   18576:	8b08      	ldrh	r0, [r1, #24]
   18578:	0a00      	lsrs	r0, r0, #8
   1857a:	76e0      	strb	r0, [r4, #27]
   1857c:	7e88      	ldrb	r0, [r1, #26]
   1857e:	7720      	strb	r0, [r4, #28]
   18580:	8b48      	ldrh	r0, [r1, #26]
   18582:	0a00      	lsrs	r0, r0, #8
   18584:	7760      	strb	r0, [r4, #29]
   18586:	7f08      	ldrb	r0, [r1, #28]
   18588:	77a0      	strb	r0, [r4, #30]
   1858a:	8b88      	ldrh	r0, [r1, #28]
   1858c:	0a00      	lsrs	r0, r0, #8
   1858e:	77e0      	strb	r0, [r4, #31]
   18590:	7f88      	ldrb	r0, [r1, #30]
   18592:	f884 0020 	strb.w	r0, [r4, #32]
   18596:	201f      	movs	r0, #31
   18598:	e084      	b.n	186a4 <sym_XMQQMVD4MD6DRWNW2DWSCGOMJHFY3IX7NXUHTGI+0x1ea>
   1859a:	7022      	strb	r2, [r4, #0]
   1859c:	2014      	movs	r0, #20
   1859e:	70a0      	strb	r0, [r4, #2]
   185a0:	7908      	ldrb	r0, [r1, #4]
   185a2:	70e0      	strb	r0, [r4, #3]
   185a4:	8888      	ldrh	r0, [r1, #4]
   185a6:	0a00      	lsrs	r0, r0, #8
   185a8:	7120      	strb	r0, [r4, #4]
   185aa:	7988      	ldrb	r0, [r1, #6]
   185ac:	e0a7      	b.n	186fe <sym_XMQQMVD4MD6DRWNW2DWSCGOMJHFY3IX7NXUHTGI+0x244>
   185ae:	7022      	strb	r2, [r4, #0]
   185b0:	2004      	movs	r0, #4
   185b2:	70a0      	strb	r0, [r4, #2]
   185b4:	7908      	ldrb	r0, [r1, #4]
   185b6:	70e0      	strb	r0, [r4, #3]
   185b8:	7988      	ldrb	r0, [r1, #6]
   185ba:	7120      	strb	r0, [r4, #4]
   185bc:	88c8      	ldrh	r0, [r1, #6]
   185be:	0a00      	lsrs	r0, r0, #8
   185c0:	7160      	strb	r0, [r4, #5]
   185c2:	6888      	ldr	r0, [r1, #8]
   185c4:	f8c4 0006 	str.w	r0, [r4, #6]
   185c8:	68c8      	ldr	r0, [r1, #12]
   185ca:	e000      	b.n	185ce <sym_XMQQMVD4MD6DRWNW2DWSCGOMJHFY3IX7NXUHTGI+0x114>
   185cc:	e06c      	b.n	186a8 <sym_XMQQMVD4MD6DRWNW2DWSCGOMJHFY3IX7NXUHTGI+0x1ee>
   185ce:	f8c4 000a 	str.w	r0, [r4, #10]
   185d2:	200c      	movs	r0, #12
   185d4:	e066      	b.n	186a4 <sym_XMQQMVD4MD6DRWNW2DWSCGOMJHFY3IX7NXUHTGI+0x1ea>
   185d6:	7022      	strb	r2, [r4, #0]
   185d8:	2003      	movs	r0, #3
   185da:	70a0      	strb	r0, [r4, #2]
   185dc:	7908      	ldrb	r0, [r1, #4]
   185de:	70e0      	strb	r0, [r4, #3]
   185e0:	7988      	ldrb	r0, [r1, #6]
   185e2:	7120      	strb	r0, [r4, #4]
   185e4:	88c8      	ldrh	r0, [r1, #6]
   185e6:	0a00      	lsrs	r0, r0, #8
   185e8:	7160      	strb	r0, [r4, #5]
   185ea:	7a08      	ldrb	r0, [r1, #8]
   185ec:	71a0      	strb	r0, [r4, #6]
   185ee:	8908      	ldrh	r0, [r1, #8]
   185f0:	0a00      	lsrs	r0, r0, #8
   185f2:	71e0      	strb	r0, [r4, #7]
   185f4:	7a88      	ldrb	r0, [r1, #10]
   185f6:	7220      	strb	r0, [r4, #8]
   185f8:	8948      	ldrh	r0, [r1, #10]
   185fa:	0a00      	lsrs	r0, r0, #8
   185fc:	7260      	strb	r0, [r4, #9]
   185fe:	7b08      	ldrb	r0, [r1, #12]
   18600:	72a0      	strb	r0, [r4, #10]
   18602:	8988      	ldrh	r0, [r1, #12]
   18604:	0a00      	lsrs	r0, r0, #8
   18606:	72e0      	strb	r0, [r4, #11]
   18608:	e0d8      	b.n	187bc <sym_XMQQMVD4MD6DRWNW2DWSCGOMJHFY3IX7NXUHTGI+0x302>
   1860a:	7022      	strb	r2, [r4, #0]
   1860c:	70a6      	strb	r6, [r4, #2]
   1860e:	7908      	ldrb	r0, [r1, #4]
   18610:	70e0      	strb	r0, [r4, #3]
   18612:	8888      	ldrh	r0, [r1, #4]
   18614:	0a00      	lsrs	r0, r0, #8
   18616:	7120      	strb	r0, [r4, #4]
   18618:	f8d1 0006 	ldr.w	r0, [r1, #6]
   1861c:	f8c4 0005 	str.w	r0, [r4, #5]
   18620:	f8d1 000a 	ldr.w	r0, [r1, #10]
   18624:	f8c4 0009 	str.w	r0, [r4, #9]
   18628:	89c8      	ldrh	r0, [r1, #14]
   1862a:	f8a4 000d 	strh.w	r0, [r4, #13]
   1862e:	200d      	movs	r0, #13
   18630:	e038      	b.n	186a4 <sym_XMQQMVD4MD6DRWNW2DWSCGOMJHFY3IX7NXUHTGI+0x1ea>
   18632:	2011      	movs	r0, #17
   18634:	e043      	b.n	186be <sym_XMQQMVD4MD6DRWNW2DWSCGOMJHFY3IX7NXUHTGI+0x204>
   18636:	7026      	strb	r6, [r4, #0]
   18638:	7908      	ldrb	r0, [r1, #4]
   1863a:	70a0      	strb	r0, [r4, #2]
   1863c:	7948      	ldrb	r0, [r1, #5]
   1863e:	70e0      	strb	r0, [r4, #3]
   18640:	f8b1 0005 	ldrh.w	r0, [r1, #5]
   18644:	0a00      	lsrs	r0, r0, #8
   18646:	7120      	strb	r0, [r4, #4]
   18648:	79c8      	ldrb	r0, [r1, #7]
   1864a:	e058      	b.n	186fe <sym_XMQQMVD4MD6DRWNW2DWSCGOMJHFY3IX7NXUHTGI+0x244>
   1864c:	2008      	movs	r0, #8
   1864e:	7020      	strb	r0, [r4, #0]
   18650:	7908      	ldrb	r0, [r1, #4]
   18652:	70a0      	strb	r0, [r4, #2]
   18654:	7988      	ldrb	r0, [r1, #6]
   18656:	70e0      	strb	r0, [r4, #3]
   18658:	88c8      	ldrh	r0, [r1, #6]
   1865a:	0a00      	lsrs	r0, r0, #8
   1865c:	7120      	strb	r0, [r4, #4]
   1865e:	7a08      	ldrb	r0, [r1, #8]
   18660:	e04d      	b.n	186fe <sym_XMQQMVD4MD6DRWNW2DWSCGOMJHFY3IX7NXUHTGI+0x244>
   18662:	2030      	movs	r0, #48	; 0x30
   18664:	7020      	strb	r0, [r4, #0]
   18666:	7908      	ldrb	r0, [r1, #4]
   18668:	70a0      	strb	r0, [r4, #2]
   1866a:	7988      	ldrb	r0, [r1, #6]
   1866c:	70e0      	strb	r0, [r4, #3]
   1866e:	88c8      	ldrh	r0, [r1, #6]
   18670:	0a00      	lsrs	r0, r0, #8
   18672:	7120      	strb	r0, [r4, #4]
   18674:	2003      	movs	r0, #3
   18676:	e015      	b.n	186a4 <sym_XMQQMVD4MD6DRWNW2DWSCGOMJHFY3IX7NXUHTGI+0x1ea>
   18678:	7022      	strb	r2, [r4, #0]
   1867a:	2007      	movs	r0, #7
   1867c:	e044      	b.n	18708 <sym_XMQQMVD4MD6DRWNW2DWSCGOMJHFY3IX7NXUHTGI+0x24e>
   1867e:	7022      	strb	r2, [r4, #0]
   18680:	70a5      	strb	r5, [r4, #2]
   18682:	7908      	ldrb	r0, [r1, #4]
   18684:	70e0      	strb	r0, [r4, #3]
   18686:	7988      	ldrb	r0, [r1, #6]
   18688:	7120      	strb	r0, [r4, #4]
   1868a:	88c8      	ldrh	r0, [r1, #6]
   1868c:	0a00      	lsrs	r0, r0, #8
   1868e:	7160      	strb	r0, [r4, #5]
   18690:	7a08      	ldrb	r0, [r1, #8]
   18692:	71a0      	strb	r0, [r4, #6]
   18694:	7a48      	ldrb	r0, [r1, #9]
   18696:	e027      	b.n	186e8 <sym_XMQQMVD4MD6DRWNW2DWSCGOMJHFY3IX7NXUHTGI+0x22e>
   18698:	4620      	mov	r0, r4
   1869a:	1d09      	adds	r1, r1, #4
   1869c:	f7f7 fdda 	bl	10254 <sym_MEYOCD6AYGN6BYYH5M35H6GLLMHM6TYBBTCW2LI+0xd8>
   186a0:	2800      	cmp	r0, #0
   186a2:	d001      	beq.n	186a8 <sym_XMQQMVD4MD6DRWNW2DWSCGOMJHFY3IX7NXUHTGI+0x1ee>
   186a4:	7060      	strb	r0, [r4, #1]
   186a6:	1c80      	adds	r0, r0, #2
   186a8:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
   186ac:	e073      	b.n	18796 <sym_XMQQMVD4MD6DRWNW2DWSCGOMJHFY3IX7NXUHTGI+0x2dc>
   186ae:	e047      	b.n	18740 <sym_XMQQMVD4MD6DRWNW2DWSCGOMJHFY3IX7NXUHTGI+0x286>
   186b0:	e028      	b.n	18704 <sym_XMQQMVD4MD6DRWNW2DWSCGOMJHFY3IX7NXUHTGI+0x24a>
   186b2:	e053      	b.n	1875c <sym_XMQQMVD4MD6DRWNW2DWSCGOMJHFY3IX7NXUHTGI+0x2a2>
   186b4:	e061      	b.n	1877a <sym_XMQQMVD4MD6DRWNW2DWSCGOMJHFY3IX7NXUHTGI+0x2c0>
   186b6:	e01a      	b.n	186ee <sym_XMQQMVD4MD6DRWNW2DWSCGOMJHFY3IX7NXUHTGI+0x234>
   186b8:	e009      	b.n	186ce <sym_XMQQMVD4MD6DRWNW2DWSCGOMJHFY3IX7NXUHTGI+0x214>
   186ba:	e7ff      	b.n	186bc <sym_XMQQMVD4MD6DRWNW2DWSCGOMJHFY3IX7NXUHTGI+0x202>
   186bc:	2057      	movs	r0, #87	; 0x57
   186be:	7020      	strb	r0, [r4, #0]
   186c0:	7908      	ldrb	r0, [r1, #4]
   186c2:	70a0      	strb	r0, [r4, #2]
   186c4:	8888      	ldrh	r0, [r1, #4]
   186c6:	0a00      	lsrs	r0, r0, #8
   186c8:	70e0      	strb	r0, [r4, #3]
   186ca:	2002      	movs	r0, #2
   186cc:	e7ea      	b.n	186a4 <sym_XMQQMVD4MD6DRWNW2DWSCGOMJHFY3IX7NXUHTGI+0x1ea>
   186ce:	7022      	strb	r2, [r4, #0]
   186d0:	2012      	movs	r0, #18
   186d2:	70a0      	strb	r0, [r4, #2]
   186d4:	7908      	ldrb	r0, [r1, #4]
   186d6:	70e0      	strb	r0, [r4, #3]
   186d8:	7948      	ldrb	r0, [r1, #5]
   186da:	7120      	strb	r0, [r4, #4]
   186dc:	7988      	ldrb	r0, [r1, #6]
   186de:	7160      	strb	r0, [r4, #5]
   186e0:	88c8      	ldrh	r0, [r1, #6]
   186e2:	0a00      	lsrs	r0, r0, #8
   186e4:	71a0      	strb	r0, [r4, #6]
   186e6:	7a08      	ldrb	r0, [r1, #8]
   186e8:	71e0      	strb	r0, [r4, #7]
   186ea:	2006      	movs	r0, #6
   186ec:	e7da      	b.n	186a4 <sym_XMQQMVD4MD6DRWNW2DWSCGOMJHFY3IX7NXUHTGI+0x1ea>
   186ee:	7023      	strb	r3, [r4, #0]
   186f0:	20a1      	movs	r0, #161	; 0xa1
   186f2:	70a0      	strb	r0, [r4, #2]
   186f4:	7908      	ldrb	r0, [r1, #4]
   186f6:	70e0      	strb	r0, [r4, #3]
   186f8:	7948      	ldrb	r0, [r1, #5]
   186fa:	7120      	strb	r0, [r4, #4]
   186fc:	2000      	movs	r0, #0
   186fe:	7160      	strb	r0, [r4, #5]
   18700:	2004      	movs	r0, #4
   18702:	e7cf      	b.n	186a4 <sym_XMQQMVD4MD6DRWNW2DWSCGOMJHFY3IX7NXUHTGI+0x1ea>
   18704:	7023      	strb	r3, [r4, #0]
   18706:	20a2      	movs	r0, #162	; 0xa2
   18708:	70a0      	strb	r0, [r4, #2]
   1870a:	7908      	ldrb	r0, [r1, #4]
   1870c:	70e0      	strb	r0, [r4, #3]
   1870e:	8888      	ldrh	r0, [r1, #4]
   18710:	0a00      	lsrs	r0, r0, #8
   18712:	7120      	strb	r0, [r4, #4]
   18714:	7988      	ldrb	r0, [r1, #6]
   18716:	7160      	strb	r0, [r4, #5]
   18718:	88c8      	ldrh	r0, [r1, #6]
   1871a:	0a00      	lsrs	r0, r0, #8
   1871c:	71a0      	strb	r0, [r4, #6]
   1871e:	7a08      	ldrb	r0, [r1, #8]
   18720:	71e0      	strb	r0, [r4, #7]
   18722:	8908      	ldrh	r0, [r1, #8]
   18724:	0a00      	lsrs	r0, r0, #8
   18726:	7220      	strb	r0, [r4, #8]
   18728:	7a88      	ldrb	r0, [r1, #10]
   1872a:	7260      	strb	r0, [r4, #9]
   1872c:	8948      	ldrh	r0, [r1, #10]
   1872e:	0a00      	lsrs	r0, r0, #8
   18730:	72a0      	strb	r0, [r4, #10]
   18732:	7b08      	ldrb	r0, [r1, #12]
   18734:	72e0      	strb	r0, [r4, #11]
   18736:	8988      	ldrh	r0, [r1, #12]
   18738:	0a00      	lsrs	r0, r0, #8
   1873a:	7320      	strb	r0, [r4, #12]
   1873c:	200b      	movs	r0, #11
   1873e:	e7b1      	b.n	186a4 <sym_XMQQMVD4MD6DRWNW2DWSCGOMJHFY3IX7NXUHTGI+0x1ea>
   18740:	7023      	strb	r3, [r4, #0]
   18742:	20a3      	movs	r0, #163	; 0xa3
   18744:	70a0      	strb	r0, [r4, #2]
   18746:	7908      	ldrb	r0, [r1, #4]
   18748:	70e0      	strb	r0, [r4, #3]
   1874a:	8888      	ldrh	r0, [r1, #4]
   1874c:	0a00      	lsrs	r0, r0, #8
   1874e:	7120      	strb	r0, [r4, #4]
   18750:	7988      	ldrb	r0, [r1, #6]
   18752:	7160      	strb	r0, [r4, #5]
   18754:	79c8      	ldrb	r0, [r1, #7]
   18756:	71a0      	strb	r0, [r4, #6]
   18758:	2005      	movs	r0, #5
   1875a:	e7a3      	b.n	186a4 <sym_XMQQMVD4MD6DRWNW2DWSCGOMJHFY3IX7NXUHTGI+0x1ea>
   1875c:	7022      	strb	r2, [r4, #0]
   1875e:	2013      	movs	r0, #19
   18760:	70a0      	strb	r0, [r4, #2]
   18762:	7908      	ldrb	r0, [r1, #4]
   18764:	70e0      	strb	r0, [r4, #3]
   18766:	7948      	ldrb	r0, [r1, #5]
   18768:	7120      	strb	r0, [r4, #4]
   1876a:	f8d1 0006 	ldr.w	r0, [r1, #6]
   1876e:	f8c4 0005 	str.w	r0, [r4, #5]
   18772:	8948      	ldrh	r0, [r1, #10]
   18774:	f8a4 0009 	strh.w	r0, [r4, #9]
   18778:	e020      	b.n	187bc <sym_XMQQMVD4MD6DRWNW2DWSCGOMJHFY3IX7NXUHTGI+0x302>
   1877a:	7023      	strb	r3, [r4, #0]
   1877c:	20a4      	movs	r0, #164	; 0xa4
   1877e:	70a0      	strb	r0, [r4, #2]
   18780:	7908      	ldrb	r0, [r1, #4]
   18782:	70e0      	strb	r0, [r4, #3]
   18784:	8888      	ldrh	r0, [r1, #4]
   18786:	0a00      	lsrs	r0, r0, #8
   18788:	7120      	strb	r0, [r4, #4]
   1878a:	7988      	ldrb	r0, [r1, #6]
   1878c:	7160      	strb	r0, [r4, #5]
   1878e:	79c8      	ldrb	r0, [r1, #7]
   18790:	71a0      	strb	r0, [r4, #6]
   18792:	2007      	movs	r0, #7
   18794:	e786      	b.n	186a4 <sym_XMQQMVD4MD6DRWNW2DWSCGOMJHFY3IX7NXUHTGI+0x1ea>
   18796:	7023      	strb	r3, [r4, #0]
   18798:	2080      	movs	r0, #128	; 0x80
   1879a:	70a0      	strb	r0, [r4, #2]
   1879c:	888a      	ldrh	r2, [r1, #4]
   1879e:	f8a4 2003 	strh.w	r2, [r4, #3]
   187a2:	88ca      	ldrh	r2, [r1, #6]
   187a4:	f8a4 2005 	strh.w	r2, [r4, #5]
   187a8:	7a0a      	ldrb	r2, [r1, #8]
   187aa:	71e2      	strb	r2, [r4, #7]
   187ac:	7a4a      	ldrb	r2, [r1, #9]
   187ae:	8122      	strh	r2, [r4, #8]
   187b0:	7a8a      	ldrb	r2, [r1, #10]
   187b2:	72a2      	strb	r2, [r4, #10]
   187b4:	7ac9      	ldrb	r1, [r1, #11]
   187b6:	f001 0101 	and.w	r1, r1, #1
   187ba:	72e1      	strb	r1, [r4, #11]
   187bc:	200a      	movs	r0, #10
   187be:	e771      	b.n	186a4 <sym_XMQQMVD4MD6DRWNW2DWSCGOMJHFY3IX7NXUHTGI+0x1ea>

000187c0 <sym_QMF6WGBSHHRI7BTYKZGNY3YBGTOTAZDDWYJFVQQ>:
   187c0:	223e      	movs	r2, #62	; 0x3e
   187c2:	7002      	strb	r2, [r0, #0]
   187c4:	2201      	movs	r2, #1
   187c6:	7082      	strb	r2, [r0, #2]
   187c8:	790a      	ldrb	r2, [r1, #4]
   187ca:	70c2      	strb	r2, [r0, #3]
   187cc:	798a      	ldrb	r2, [r1, #6]
   187ce:	7102      	strb	r2, [r0, #4]
   187d0:	88ca      	ldrh	r2, [r1, #6]
   187d2:	0a12      	lsrs	r2, r2, #8
   187d4:	7142      	strb	r2, [r0, #5]
   187d6:	7a0a      	ldrb	r2, [r1, #8]
   187d8:	7182      	strb	r2, [r0, #6]
   187da:	7a4a      	ldrb	r2, [r1, #9]
   187dc:	71c2      	strb	r2, [r0, #7]
   187de:	f8d1 200a 	ldr.w	r2, [r1, #10]
   187e2:	6082      	str	r2, [r0, #8]
   187e4:	89ca      	ldrh	r2, [r1, #14]
   187e6:	8182      	strh	r2, [r0, #12]
   187e8:	7c0a      	ldrb	r2, [r1, #16]
   187ea:	7382      	strb	r2, [r0, #14]
   187ec:	8a0a      	ldrh	r2, [r1, #16]
   187ee:	0a12      	lsrs	r2, r2, #8
   187f0:	73c2      	strb	r2, [r0, #15]
   187f2:	7c8a      	ldrb	r2, [r1, #18]
   187f4:	7402      	strb	r2, [r0, #16]
   187f6:	8a4a      	ldrh	r2, [r1, #18]
   187f8:	0a12      	lsrs	r2, r2, #8
   187fa:	7442      	strb	r2, [r0, #17]
   187fc:	7d0a      	ldrb	r2, [r1, #20]
   187fe:	7482      	strb	r2, [r0, #18]
   18800:	8a8a      	ldrh	r2, [r1, #20]
   18802:	0a12      	lsrs	r2, r2, #8
   18804:	74c2      	strb	r2, [r0, #19]
   18806:	7d89      	ldrb	r1, [r1, #22]
   18808:	7501      	strb	r1, [r0, #20]
   1880a:	2013      	movs	r0, #19
   1880c:	4770      	bx	lr

0001880e <sym_3TBFCFZXCYDY6GUKVOWTISOQWWIRT2CJTYIBX5Y>:
   1880e:	223e      	movs	r2, #62	; 0x3e
   18810:	7002      	strb	r2, [r0, #0]
   18812:	2201      	movs	r2, #1
   18814:	7082      	strb	r2, [r0, #2]
   18816:	f811 2f04 	ldrb.w	r2, [r1, #4]!
   1881a:	70c2      	strb	r2, [r0, #3]
   1881c:	788a      	ldrb	r2, [r1, #2]
   1881e:	7102      	strb	r2, [r0, #4]
   18820:	884a      	ldrh	r2, [r1, #2]
   18822:	0a12      	lsrs	r2, r2, #8
   18824:	7142      	strb	r2, [r0, #5]
   18826:	790a      	ldrb	r2, [r1, #4]
   18828:	7182      	strb	r2, [r0, #6]
   1882a:	794a      	ldrb	r2, [r1, #5]
   1882c:	71c2      	strb	r2, [r0, #7]
   1882e:	f8d1 2006 	ldr.w	r2, [r1, #6]
   18832:	6082      	str	r2, [r0, #8]
   18834:	894a      	ldrh	r2, [r1, #10]
   18836:	8182      	strh	r2, [r0, #12]
   18838:	7e0a      	ldrb	r2, [r1, #24]
   1883a:	7382      	strb	r2, [r0, #14]
   1883c:	8b0a      	ldrh	r2, [r1, #24]
   1883e:	0a12      	lsrs	r2, r2, #8
   18840:	73c2      	strb	r2, [r0, #15]
   18842:	7e8a      	ldrb	r2, [r1, #26]
   18844:	7402      	strb	r2, [r0, #16]
   18846:	8b4a      	ldrh	r2, [r1, #26]
   18848:	0a12      	lsrs	r2, r2, #8
   1884a:	7442      	strb	r2, [r0, #17]
   1884c:	7f0a      	ldrb	r2, [r1, #28]
   1884e:	7482      	strb	r2, [r0, #18]
   18850:	8b8a      	ldrh	r2, [r1, #28]
   18852:	0a12      	lsrs	r2, r2, #8
   18854:	74c2      	strb	r2, [r0, #19]
   18856:	7f89      	ldrb	r1, [r1, #30]
   18858:	7501      	strb	r1, [r0, #20]
   1885a:	2113      	movs	r1, #19
   1885c:	7041      	strb	r1, [r0, #1]
   1885e:	4608      	mov	r0, r1
   18860:	4770      	bx	lr

00018862 <sdc_hci_data_get>:
   18862:	b510      	push	{r4, lr}
   18864:	b120      	cbz	r0, 18870 <sdc_hci_data_get+0xe>
   18866:	f7ff fda4 	bl	183b2 <sym_J4YPB5V427LGVECR3WQM2YMQSYACGT77QKJSI3I>
   1886a:	b120      	cbz	r0, 18876 <sdc_hci_data_get+0x14>
   1886c:	2000      	movs	r0, #0
   1886e:	bd10      	pop	{r4, pc}
   18870:	f06f 0015 	mvn.w	r0, #21
   18874:	bd10      	pop	{r4, pc}
   18876:	f06f 0022 	mvn.w	r0, #34	; 0x22
   1887a:	bd10      	pop	{r4, pc}

0001887c <sdc_hci_data_put>:
   1887c:	b510      	push	{r4, lr}
   1887e:	f06f 0415 	mvn.w	r4, #21
   18882:	b120      	cbz	r0, 1888e <sdc_hci_data_put+0x12>
   18884:	f7ff fda3 	bl	183ce <sym_PVKZWZJ5CJJGE5FITE5FOMMY5J4BUV2COWMQKSY>
   18888:	b108      	cbz	r0, 1888e <sdc_hci_data_put+0x12>
   1888a:	2000      	movs	r0, #0
   1888c:	bd10      	pop	{r4, pc}
   1888e:	4620      	mov	r0, r4
   18890:	bd10      	pop	{r4, pc}

00018892 <sdc_hci_evt_get>:
   18892:	b510      	push	{r4, lr}
   18894:	b120      	cbz	r0, 188a0 <sdc_hci_evt_get+0xe>
   18896:	f7ff fda3 	bl	183e0 <sym_DUIEI4YTK3TJQ2V3W7PLOGVTWVPNDBBG4WJWTAQ>
   1889a:	b120      	cbz	r0, 188a6 <sdc_hci_evt_get+0x14>
   1889c:	2000      	movs	r0, #0
   1889e:	bd10      	pop	{r4, pc}
   188a0:	f06f 0015 	mvn.w	r0, #21
   188a4:	bd10      	pop	{r4, pc}
   188a6:	f06f 0022 	mvn.w	r0, #34	; 0x22
   188aa:	bd10      	pop	{r4, pc}

000188ac <sdc_hci_cmd_cb_read_authenticated_payload_timeout>:
   188ac:	f002 be4a 	b.w	1b544 <sym_AB3LPEZLZTHWVJYT4X3CSIX3UJONE76BJDZFP2Y>

000188b0 <sdc_hci_cmd_cb_read_transmit_power_level>:
   188b0:	f002 be8c 	b.w	1b5cc <sym_Q3C2XSZVED7JHVMCJN53G6AXVXF3ZOUR7A37OEQ>

000188b4 <sdc_hci_cmd_cb_set_event_mask>:
   188b4:	b510      	push	{r4, lr}
   188b6:	f7f7 fd2b 	bl	10310 <sym_TU2SMBIUC7JL6C3K2XB6727DQLBLV5LEGIMZAFQ>
   188ba:	2000      	movs	r0, #0
   188bc:	bd10      	pop	{r4, pc}

000188be <sdc_hci_cmd_cb_set_event_mask_page_2>:
   188be:	b510      	push	{r4, lr}
   188c0:	f7f7 fd34 	bl	1032c <sym_CIVMWIRGIOQ374UFFPIFNN4ZGKYK2FRKTT6YRYA>
   188c4:	2000      	movs	r0, #0
   188c6:	bd10      	pop	{r4, pc}

000188c8 <sdc_hci_cmd_cb_write_authenticated_payload_timeout>:
   188c8:	f002 be9c 	b.w	1b604 <sym_ULWM63O6UPJLQWAHX3MM6KEQT4NBSDWNEO3LSBY>

000188cc <sdc_hci_cmd_vs_conn_event_extend>:
   188cc:	b508      	push	{r3, lr}
   188ce:	7800      	ldrb	r0, [r0, #0]
   188d0:	f88d 0000 	strb.w	r0, [sp]
   188d4:	4668      	mov	r0, sp
   188d6:	f002 fd4c 	bl	1b372 <sym_J2SUO2NMPPNDQZAGB2FE5TAXJFMJ5FZXKAPNVFQ>
   188da:	bd08      	pop	{r3, pc}

000188dc <sdc_hci_cmd_vs_conn_update>:
   188dc:	2001      	movs	r0, #1
   188de:	4770      	bx	lr

000188e0 <sdc_hci_cmd_vs_event_length_set>:
   188e0:	f7fd bbfa 	b.w	160d8 <sym_DVVOECRRYK6EAGDREB2UKKQZT5MAOOUK66XNPTA>

000188e4 <sdc_hci_cmd_vs_llpm_mode_set>:
   188e4:	2001      	movs	r0, #1
   188e6:	4770      	bx	lr

000188e8 <sdc_hci_cmd_vs_qos_conn_event_report_enable>:
   188e8:	7800      	ldrb	r0, [r0, #0]
   188ea:	b100      	cbz	r0, 188ee <sdc_hci_cmd_vs_qos_conn_event_report_enable+0x6>
   188ec:	2001      	movs	r0, #1
   188ee:	f002 bcc5 	b.w	1b27c <sym_2USEL6R2GGJMMFO4XRNC6NIEFTFUU2HPLL2Z6FQ>

000188f2 <sdc_hci_cmd_vs_zephyr_read_key_hierarchy_roots>:
   188f2:	b570      	push	{r4, r5, r6, lr}
   188f4:	4605      	mov	r5, r0
   188f6:	2210      	movs	r2, #16
   188f8:	2100      	movs	r1, #0
   188fa:	f7ff fc5c 	bl	181b6 <sym_VSILKYHVQ5DVF6LG5MG267DQVA3A2XZQ6FSCLXA>
   188fe:	2210      	movs	r2, #16
   18900:	2100      	movs	r1, #0
   18902:	f105 0010 	add.w	r0, r5, #16
   18906:	f7ff fc56 	bl	181b6 <sym_VSILKYHVQ5DVF6LG5MG267DQVA3A2XZQ6FSCLXA>
   1890a:	f04f 5480 	mov.w	r4, #268435456	; 0x10000000
   1890e:	f8d4 0080 	ldr.w	r0, [r4, #128]	; 0x80
   18912:	1c40      	adds	r0, r0, #1
   18914:	d10b      	bne.n	1892e <sdc_hci_cmd_vs_zephyr_read_key_hierarchy_roots+0x3c>
   18916:	f8d4 0084 	ldr.w	r0, [r4, #132]	; 0x84
   1891a:	1c40      	adds	r0, r0, #1
   1891c:	d107      	bne.n	1892e <sdc_hci_cmd_vs_zephyr_read_key_hierarchy_roots+0x3c>
   1891e:	f8d4 0088 	ldr.w	r0, [r4, #136]	; 0x88
   18922:	1c40      	adds	r0, r0, #1
   18924:	d103      	bne.n	1892e <sdc_hci_cmd_vs_zephyr_read_key_hierarchy_roots+0x3c>
   18926:	f8d4 008c 	ldr.w	r0, [r4, #140]	; 0x8c
   1892a:	1c40      	adds	r0, r0, #1
   1892c:	d00b      	beq.n	18946 <sdc_hci_cmd_vs_zephyr_read_key_hierarchy_roots+0x54>
   1892e:	f8d4 0080 	ldr.w	r0, [r4, #128]	; 0x80
   18932:	6128      	str	r0, [r5, #16]
   18934:	f8d4 0084 	ldr.w	r0, [r4, #132]	; 0x84
   18938:	6168      	str	r0, [r5, #20]
   1893a:	f8d4 0088 	ldr.w	r0, [r4, #136]	; 0x88
   1893e:	61a8      	str	r0, [r5, #24]
   18940:	f8d4 008c 	ldr.w	r0, [r4, #140]	; 0x8c
   18944:	61e8      	str	r0, [r5, #28]
   18946:	2000      	movs	r0, #0
   18948:	f7f8 fa78 	bl	10e3c <sym_AO3U45UEGFLUPMT565ZR5UWUQUONF5AKILLCT3A>
   1894c:	b918      	cbnz	r0, 18956 <sdc_hci_cmd_vs_zephyr_read_key_hierarchy_roots+0x64>
   1894e:	f8d4 00a0 	ldr.w	r0, [r4, #160]	; 0xa0
   18952:	07c0      	lsls	r0, r0, #31
   18954:	d118      	bne.n	18988 <sdc_hci_cmd_vs_zephyr_read_key_hierarchy_roots+0x96>
   18956:	f8d4 0090 	ldr.w	r0, [r4, #144]	; 0x90
   1895a:	1c40      	adds	r0, r0, #1
   1895c:	d10b      	bne.n	18976 <sdc_hci_cmd_vs_zephyr_read_key_hierarchy_roots+0x84>
   1895e:	f8d4 0094 	ldr.w	r0, [r4, #148]	; 0x94
   18962:	1c40      	adds	r0, r0, #1
   18964:	d107      	bne.n	18976 <sdc_hci_cmd_vs_zephyr_read_key_hierarchy_roots+0x84>
   18966:	f8d4 0098 	ldr.w	r0, [r4, #152]	; 0x98
   1896a:	1c40      	adds	r0, r0, #1
   1896c:	d103      	bne.n	18976 <sdc_hci_cmd_vs_zephyr_read_key_hierarchy_roots+0x84>
   1896e:	f8d4 009c 	ldr.w	r0, [r4, #156]	; 0x9c
   18972:	1c40      	adds	r0, r0, #1
   18974:	d008      	beq.n	18988 <sdc_hci_cmd_vs_zephyr_read_key_hierarchy_roots+0x96>
   18976:	f854 0f90 	ldr.w	r0, [r4, #144]!
   1897a:	6028      	str	r0, [r5, #0]
   1897c:	6860      	ldr	r0, [r4, #4]
   1897e:	6068      	str	r0, [r5, #4]
   18980:	68a0      	ldr	r0, [r4, #8]
   18982:	60a8      	str	r0, [r5, #8]
   18984:	68e0      	ldr	r0, [r4, #12]
   18986:	60e8      	str	r0, [r5, #12]
   18988:	2000      	movs	r0, #0
   1898a:	bd70      	pop	{r4, r5, r6, pc}

0001898c <sdc_hci_cmd_vs_zephyr_read_static_addresses>:
   1898c:	b570      	push	{r4, r5, r6, lr}
   1898e:	f04f 5580 	mov.w	r5, #268435456	; 0x10000000
   18992:	4604      	mov	r4, r0
   18994:	f8d5 00a4 	ldr.w	r0, [r5, #164]	; 0xa4
   18998:	1c40      	adds	r0, r0, #1
   1899a:	d105      	bne.n	189a8 <sdc_hci_cmd_vs_zephyr_read_static_addresses+0x1c>
   1899c:	f8d5 00a8 	ldr.w	r0, [r5, #168]	; 0xa8
   189a0:	43c0      	mvns	r0, r0
   189a2:	0400      	lsls	r0, r0, #16
   189a4:	0c00      	lsrs	r0, r0, #16
   189a6:	d03a      	beq.n	18a1e <sdc_hci_cmd_vs_zephyr_read_static_addresses+0x92>
   189a8:	f8d5 00a0 	ldr.w	r0, [r5, #160]	; 0xa0
   189ac:	07c0      	lsls	r0, r0, #31
   189ae:	d036      	beq.n	18a1e <sdc_hci_cmd_vs_zephyr_read_static_addresses+0x92>
   189b0:	f8d5 00a4 	ldr.w	r0, [r5, #164]	; 0xa4
   189b4:	f8c4 0001 	str.w	r0, [r4, #1]
   189b8:	f8d5 00a8 	ldr.w	r0, [r5, #168]	; 0xa8
   189bc:	f8a4 0005 	strh.w	r0, [r4, #5]
   189c0:	79a0      	ldrb	r0, [r4, #6]
   189c2:	f040 00c0 	orr.w	r0, r0, #192	; 0xc0
   189c6:	71a0      	strb	r0, [r4, #6]
   189c8:	f8d5 0090 	ldr.w	r0, [r5, #144]	; 0x90
   189cc:	1c40      	adds	r0, r0, #1
   189ce:	d00f      	beq.n	189f0 <sdc_hci_cmd_vs_zephyr_read_static_addresses+0x64>
   189d0:	f8d5 0094 	ldr.w	r0, [r5, #148]	; 0x94
   189d4:	1c40      	adds	r0, r0, #1
   189d6:	d00b      	beq.n	189f0 <sdc_hci_cmd_vs_zephyr_read_static_addresses+0x64>
   189d8:	f8d5 0098 	ldr.w	r0, [r5, #152]	; 0x98
   189dc:	1c40      	adds	r0, r0, #1
   189de:	d007      	beq.n	189f0 <sdc_hci_cmd_vs_zephyr_read_static_addresses+0x64>
   189e0:	f8d5 009c 	ldr.w	r0, [r5, #156]	; 0x9c
   189e4:	1c40      	adds	r0, r0, #1
   189e6:	d003      	beq.n	189f0 <sdc_hci_cmd_vs_zephyr_read_static_addresses+0x64>
   189e8:	2000      	movs	r0, #0
   189ea:	f7f8 fa27 	bl	10e3c <sym_AO3U45UEGFLUPMT565ZR5UWUQUONF5AKILLCT3A>
   189ee:	b140      	cbz	r0, 18a02 <sdc_hci_cmd_vs_zephyr_read_static_addresses+0x76>
   189f0:	2210      	movs	r2, #16
   189f2:	2100      	movs	r1, #0
   189f4:	1de0      	adds	r0, r4, #7
   189f6:	f7ff fbde 	bl	181b6 <sym_VSILKYHVQ5DVF6LG5MG267DQVA3A2XZQ6FSCLXA>
   189fa:	2001      	movs	r0, #1
   189fc:	7020      	strb	r0, [r4, #0]
   189fe:	2000      	movs	r0, #0
   18a00:	bd70      	pop	{r4, r5, r6, pc}
   18a02:	f855 0f90 	ldr.w	r0, [r5, #144]!
   18a06:	f8c4 0007 	str.w	r0, [r4, #7]
   18a0a:	6868      	ldr	r0, [r5, #4]
   18a0c:	f8c4 000b 	str.w	r0, [r4, #11]
   18a10:	68a8      	ldr	r0, [r5, #8]
   18a12:	f8c4 000f 	str.w	r0, [r4, #15]
   18a16:	68e8      	ldr	r0, [r5, #12]
   18a18:	f8c4 0013 	str.w	r0, [r4, #19]
   18a1c:	e7ed      	b.n	189fa <sdc_hci_cmd_vs_zephyr_read_static_addresses+0x6e>
   18a1e:	2000      	movs	r0, #0
   18a20:	e7ec      	b.n	189fc <sdc_hci_cmd_vs_zephyr_read_static_addresses+0x70>

00018a22 <sdc_hci_cmd_vs_zephyr_write_bd_addr>:
   18a22:	f002 bc98 	b.w	1b356 <sym_4JSL5B25NNB5WWK7I5BGUTCTKEZ4HYLOODANEEQ>

00018a26 <sdc_hci_cmd_ip_read_bd_addr>:
   18a26:	f002 bd9e 	b.w	1b566 <sym_5KZ3ESY4NUZKM5COQRZJAL6CXWIG2JSPGHV3RPQ>

00018a2a <sdc_hci_cmd_ip_read_local_version_information>:
   18a2a:	f7fd bb63 	b.w	160f4 <sym_VBKW2EEGTD4JJSNUU73GLQHLYR7TWOGYRMQYZEY>

00018a2e <sdc_hci_cmd_le_add_device_to_resolving_list>:
   18a2e:	f002 b97c 	b.w	1ad2a <sym_E3GR2VF26UUA2VWZ2Y3HIYXNU3SITAZBGOK2GXA>

00018a32 <sdc_hci_cmd_le_add_device_to_white_list>:
   18a32:	f002 b995 	b.w	1ad60 <sym_JNP3XPG2S47QWEENF5PX2JQ36HNB7C2PPNDBQRI>

00018a36 <sdc_hci_cmd_le_clear_resolving_list>:
   18a36:	f002 b9aa 	b.w	1ad8e <sym_OH2GYDTNQL2GOMT5N64M2LRDK6O2PDY6H2CP6VA>

00018a3a <sdc_hci_cmd_le_clear_white_list>:
   18a3a:	f002 b9b5 	b.w	1ada8 <sym_UL6TXQTTOV34QCAIQPVPFYEQSUUJPIEN42CTITI>

00018a3e <sdc_hci_cmd_le_encrypt>:
   18a3e:	f002 b9bd 	b.w	1adbc <sym_V4G4DUSXVGCZMSYXHZZWQMKMNZCZVEEIBVCQ7EQ>

00018a42 <sdc_hci_cmd_le_long_term_key_request_negative_reply>:
   18a42:	8802      	ldrh	r2, [r0, #0]
   18a44:	800a      	strh	r2, [r1, #0]
   18a46:	f002 b9c2 	b.w	1adce <sym_FYIHUHKV4DLEPRADEPLDQO3YFUPWZFWRUJ4JAOA>

00018a4a <sdc_hci_cmd_le_long_term_key_request_reply>:
   18a4a:	8802      	ldrh	r2, [r0, #0]
   18a4c:	800a      	strh	r2, [r1, #0]
   18a4e:	f002 b9d7 	b.w	1ae00 <sym_NLJDQQVQW4HF3HHWCCOGCGX457WQXW2LVV5NUTI>

00018a52 <sdc_hci_cmd_le_rand>:
   18a52:	f002 b9ff 	b.w	1ae54 <sym_PMB4FUQR4IQVAL4FOP3PPQDDXYDFQIUYDVZ6DGY>

00018a56 <sdc_hci_cmd_le_read_adv_physical_channel_tx_power>:
   18a56:	f002 ba03 	b.w	1ae60 <sym_IZN3QWH7I4A7OX5E6DK53W35W3UX25DTZ6CQ57Q>

00018a5a <sdc_hci_cmd_le_read_buffer_size>:
   18a5a:	f7fd ba93 	b.w	15f84 <sym_Y5RIWFUVP4FHJFYC7FBZKM2MV7INK43TLWQ5URA>

00018a5e <sdc_hci_cmd_le_read_channel_map>:
   18a5e:	f7fd ba9b 	b.w	15f98 <sym_PAQFQMAKUCMOA6SUTJ7CAX3DYCWNAJLJQFJCDNY>

00018a62 <sdc_hci_cmd_le_read_max_data_length>:
   18a62:	f002 ba06 	b.w	1ae72 <sym_IS5N626FV5MT54PZIWSKFZUUH6WWJWJ46G6YN3A>

00018a66 <sdc_hci_cmd_le_read_phy>:
   18a66:	f002 ba14 	b.w	1ae92 <sym_VT6ZFFM2E7JNVAG5YLSPAZYR4HOPL3X5GX3IH7A>

00018a6a <sdc_hci_cmd_le_read_remote_features>:
   18a6a:	f7fd babf 	b.w	15fec <sym_CT735EXQUXWPD7TNRP2WWTA3LGLYUEOZMPS7RMI>

00018a6e <sdc_hci_cmd_le_read_resolving_list_size>:
   18a6e:	f002 ba3b 	b.w	1aee8 <sym_JLDLLKBNDO6T4E6HHXX2AI4IG5EDEVR7ET3G3HY>

00018a72 <sdc_hci_cmd_le_read_suggested_default_data_length>:
   18a72:	f7fd badb 	b.w	1602c <sym_THL6EKGE7AKTO5JDGU45MV33YSIXORBRMDECS2Q>

00018a76 <sdc_hci_cmd_le_read_transmit_power>:
   18a76:	f002 ba3b 	b.w	1aef0 <sym_KQ364TAUBSTGBVLC6BUZ6LU5UQACEISDV2KKO5I>

00018a7a <sdc_hci_cmd_le_read_white_list_size>:
   18a7a:	f002 ba42 	b.w	1af02 <sym_5OKDNHIYSDG2NFFB242VCRESG3W37YENBGQLRBA>

00018a7e <sdc_hci_cmd_le_remove_device_from_resolving_list>:
   18a7e:	f002 ba44 	b.w	1af0a <sym_2DIQZNL4PQ4LJGTNCUPMO2N2CADFMWHJOSUVSUQ>

00018a82 <sdc_hci_cmd_le_remove_device_from_white_list>:
   18a82:	f002 ba5b 	b.w	1af3c <sym_FQNF6KMIBMQDKYS2BJP6ZB7BLEET53WUIWQK6FA>

00018a86 <sdc_hci_cmd_le_set_address_resolution_enable>:
   18a86:	f002 ba6e 	b.w	1af66 <sym_Z6SWMDBE3FHPASES2GEZRCNTNJKSKBQXPSTEH5Q>

00018a8a <sdc_hci_cmd_le_set_adv_data>:
   18a8a:	f002 ba7a 	b.w	1af82 <sym_KXE6R52JHXVKOK6AHXAXVCPJHWR4FK73UB2AK7I>

00018a8e <sdc_hci_cmd_le_set_adv_enable>:
   18a8e:	f002 ba8d 	b.w	1afac <sym_JU2KBYZVAT7EYGVZA4FU7TNK2PDUQNCWUBE5MWQ>

00018a92 <sdc_hci_cmd_le_set_adv_params>:
   18a92:	f002 babe 	b.w	1b012 <sym_CC522QK4M5MTSPVPJNGJXKYD5O54FC2LFC3D3QI>

00018a96 <sdc_hci_cmd_le_set_data_length>:
   18a96:	f002 bb51 	b.w	1b13c <sym_Q5GJELDUJDXPR5M7PG33JSPACOMZ32BYQV2DESA>

00018a9a <sdc_hci_cmd_le_set_default_phy>:
   18a9a:	f7fd bad7 	b.w	1604c <sym_4POEZKL66A5T3356722OWKNB5CNFKPMV6JI3HEA>

00018a9e <sdc_hci_cmd_le_set_event_mask>:
   18a9e:	b510      	push	{r4, lr}
   18aa0:	f7f7 fc30 	bl	10304 <sym_PPT6FEOF2T6DRALMCRRTUI7CHLEPBAN25HYV3KQ>
   18aa4:	2000      	movs	r0, #0
   18aa6:	bd10      	pop	{r4, pc}

00018aa8 <sdc_hci_cmd_le_set_phy>:
   18aa8:	f002 bb6f 	b.w	1b18a <sym_MBHLAUPQK3H6ERLQXCLUB2AQHB6N7MDDZSUQGSI>

00018aac <sdc_hci_cmd_le_set_privacy_mode>:
   18aac:	f002 bb8d 	b.w	1b1ca <sym_HKQ7V7ZRT4GLUXECWBIODAWUF4IIDSU455UZJBA>

00018ab0 <sdc_hci_cmd_le_set_random_address>:
   18ab0:	f002 bba1 	b.w	1b1f6 <sym_NITRJIWYGM7PLEIQEII3QZID3O3DS62GXB3UYIA>

00018ab4 <sdc_hci_cmd_le_set_resolvable_private_address_timeout>:
   18ab4:	f002 bbad 	b.w	1b212 <sym_4J2T42QEEBU4YII5BYQOO72J6O3T642SRZXZNQI>

00018ab8 <sdc_hci_cmd_le_set_scan_response_data>:
   18ab8:	f002 bbb4 	b.w	1b224 <sym_XYKOVFYGOSL56Y753SKDQGINYTUFZGQJGBB54WI>

00018abc <sdc_hci_cmd_le_write_suggested_default_data_length>:
   18abc:	f002 bbc7 	b.w	1b24e <sym_JYVNTINWWHBNIBW6ZPFJYFKZBQTI25EUE75U36Y>

00018ac0 <sdc_hci_cmd_lc_disconnect>:
   18ac0:	f002 b8df 	b.w	1ac82 <sym_CY3FVUNSUUR4I46K644NW3FXSFSLG3ETQWBRBHQ>

00018ac4 <sdc_hci_cmd_lc_read_remote_version_information>:
   18ac4:	f002 bd5b 	b.w	1b57e <sym_IP3LLUNJTDBIIPB3UG65MJFJZABGVNT2GN3EQPY>
   18ac8:	b570      	push	{r4, r5, r6, lr}
   18aca:	880b      	ldrh	r3, [r1, #0]
   18acc:	7f04      	ldrb	r4, [r0, #28]
   18ace:	f100 0524 	add.w	r5, r0, #36	; 0x24
   18ad2:	f423 4600 	bic.w	r6, r3, #32768	; 0x8000
   18ad6:	8802      	ldrh	r2, [r0, #0]
   18ad8:	4435      	add	r5, r6
   18ada:	1da4      	adds	r4, r4, #6
   18adc:	882d      	ldrh	r5, [r5, #0]
   18ade:	4422      	add	r2, r4
   18ae0:	b292      	uxth	r2, r2
   18ae2:	4425      	add	r5, r4
   18ae4:	1e54      	subs	r4, r2, #1
   18ae6:	442c      	add	r4, r5
   18ae8:	fb94 f4f2 	sdiv	r4, r4, r2
   18aec:	fb02 6204 	mla	r2, r2, r4, r6
   18af0:	8840      	ldrh	r0, [r0, #2]
   18af2:	b292      	uxth	r2, r2
   18af4:	4290      	cmp	r0, r2
   18af6:	d903      	bls.n	18b00 <sdc_hci_cmd_lc_read_remote_version_information+0x3c>
   18af8:	f403 4000 	and.w	r0, r3, #32768	; 0x8000
   18afc:	4310      	orrs	r0, r2
   18afe:	e002      	b.n	18b06 <sdc_hci_cmd_lc_read_remote_version_information+0x42>
   18b00:	f44f 4000 	mov.w	r0, #32768	; 0x8000
   18b04:	4398      	bics	r0, r3
   18b06:	8008      	strh	r0, [r1, #0]
   18b08:	bd70      	pop	{r4, r5, r6, pc}
   18b0a:	f420 4200 	bic.w	r2, r0, #32768	; 0x8000
   18b0e:	f421 4300 	bic.w	r3, r1, #32768	; 0x8000
   18b12:	429a      	cmp	r2, r3
   18b14:	d107      	bne.n	18b26 <sdc_hci_cmd_lc_read_remote_version_information+0x62>
   18b16:	f400 4000 	and.w	r0, r0, #32768	; 0x8000
   18b1a:	f401 4100 	and.w	r1, r1, #32768	; 0x8000
   18b1e:	4288      	cmp	r0, r1
   18b20:	d001      	beq.n	18b26 <sdc_hci_cmd_lc_read_remote_version_information+0x62>
   18b22:	2001      	movs	r0, #1
   18b24:	4770      	bx	lr
   18b26:	2000      	movs	r0, #0
   18b28:	4770      	bx	lr

00018b2a <sym_BZ7Z4RQ3DCP67RU5HKR6L76AI2EU62TP34WUI5Q>:
   18b2a:	b570      	push	{r4, r5, r6, lr}
   18b2c:	7f00      	ldrb	r0, [r0, #28]
   18b2e:	461c      	mov	r4, r3
   18b30:	1d80      	adds	r0, r0, #6
   18b32:	4408      	add	r0, r1
   18b34:	4613      	mov	r3, r2
   18b36:	8809      	ldrh	r1, [r1, #0]
   18b38:	9a04      	ldr	r2, [sp, #16]
   18b3a:	1cc9      	adds	r1, r1, #3
   18b3c:	b289      	uxth	r1, r1
   18b3e:	1915      	adds	r5, r2, r4
   18b40:	1ec0      	subs	r0, r0, #3
   18b42:	428d      	cmp	r5, r1
   18b44:	d805      	bhi.n	18b52 <sym_BZ7Z4RQ3DCP67RU5HKR6L76AI2EU62TP34WUI5Q+0x28>
   18b46:	1881      	adds	r1, r0, r2
   18b48:	4622      	mov	r2, r4
   18b4a:	4618      	mov	r0, r3
   18b4c:	f7ff fab9 	bl	180c2 <sym_DQONLUECJTIEYFOFJXXAPJO4POIAJKJNKBGVN5A>
   18b50:	e000      	b.n	18b54 <sym_BZ7Z4RQ3DCP67RU5HKR6L76AI2EU62TP34WUI5Q+0x2a>
   18b52:	2400      	movs	r4, #0
   18b54:	4620      	mov	r0, r4
   18b56:	bd70      	pop	{r4, r5, r6, pc}

00018b58 <sym_KYAZRCYN475PHPCZD6L3YCVO72SQVA3SBOAY44Q>:
   18b58:	b570      	push	{r4, r5, r6, lr}
   18b5a:	7f00      	ldrb	r0, [r0, #28]
   18b5c:	461c      	mov	r4, r3
   18b5e:	1d80      	adds	r0, r0, #6
   18b60:	4408      	add	r0, r1
   18b62:	4613      	mov	r3, r2
   18b64:	8809      	ldrh	r1, [r1, #0]
   18b66:	9a04      	ldr	r2, [sp, #16]
   18b68:	1cc9      	adds	r1, r1, #3
   18b6a:	b289      	uxth	r1, r1
   18b6c:	1915      	adds	r5, r2, r4
   18b6e:	1ec0      	subs	r0, r0, #3
   18b70:	428d      	cmp	r5, r1
   18b72:	d805      	bhi.n	18b80 <sym_KYAZRCYN475PHPCZD6L3YCVO72SQVA3SBOAY44Q+0x28>
   18b74:	4410      	add	r0, r2
   18b76:	4622      	mov	r2, r4
   18b78:	4619      	mov	r1, r3
   18b7a:	f7ff faa2 	bl	180c2 <sym_DQONLUECJTIEYFOFJXXAPJO4POIAJKJNKBGVN5A>
   18b7e:	e000      	b.n	18b82 <sym_KYAZRCYN475PHPCZD6L3YCVO72SQVA3SBOAY44Q+0x2a>
   18b80:	2400      	movs	r4, #0
   18b82:	4620      	mov	r0, r4
   18b84:	bd70      	pop	{r4, r5, r6, pc}

00018b86 <sym_B62EJKCCJ4JFC5I4BFTUJG7GNOKGWQ4KKFBS6RI>:
   18b86:	8881      	ldrh	r1, [r0, #4]
   18b88:	88c0      	ldrh	r0, [r0, #6]
   18b8a:	4288      	cmp	r0, r1
   18b8c:	d101      	bne.n	18b92 <sym_B62EJKCCJ4JFC5I4BFTUJG7GNOKGWQ4KKFBS6RI+0xc>
   18b8e:	2001      	movs	r0, #1
   18b90:	4770      	bx	lr
   18b92:	2000      	movs	r0, #0
   18b94:	4770      	bx	lr

00018b96 <sym_WHJLTAWCA7L5AI7ZKZA7BNI7MYWDHIXTL45XGEI>:
   18b96:	8881      	ldrh	r1, [r0, #4]
   18b98:	8900      	ldrh	r0, [r0, #8]
   18b9a:	4288      	cmp	r0, r1
   18b9c:	d101      	bne.n	18ba2 <sym_WHJLTAWCA7L5AI7ZKZA7BNI7MYWDHIXTL45XGEI+0xc>
   18b9e:	2001      	movs	r0, #1
   18ba0:	4770      	bx	lr
   18ba2:	2000      	movs	r0, #0
   18ba4:	4770      	bx	lr

00018ba6 <sym_UOYZDE3MDLGPDL5S5WKUFLPYH4DJIMF3BJSBDYA>:
   18ba6:	b570      	push	{r4, r5, r6, lr}
   18ba8:	4604      	mov	r4, r0
   18baa:	f100 0124 	add.w	r1, r0, #36	; 0x24
   18bae:	8880      	ldrh	r0, [r0, #4]
   18bb0:	f420 4000 	bic.w	r0, r0, #32768	; 0x8000
   18bb4:	4401      	add	r1, r0
   18bb6:	8a20      	ldrh	r0, [r4, #16]
   18bb8:	2800      	cmp	r0, #0
   18bba:	d01a      	beq.n	18bf2 <sym_UOYZDE3MDLGPDL5S5WKUFLPYH4DJIMF3BJSBDYA+0x4c>
   18bbc:	89a2      	ldrh	r2, [r4, #12]
   18bbe:	2500      	movs	r5, #0
   18bc0:	4410      	add	r0, r2
   18bc2:	b280      	uxth	r0, r0
   18bc4:	81a0      	strh	r0, [r4, #12]
   18bc6:	880a      	ldrh	r2, [r1, #0]
   18bc8:	4290      	cmp	r0, r2
   18bca:	d905      	bls.n	18bd8 <sym_UOYZDE3MDLGPDL5S5WKUFLPYH4DJIMF3BJSBDYA+0x32>
   18bcc:	f240 1163 	movw	r1, #355	; 0x163
   18bd0:	f04f 0014 	mov.w	r0, #20
   18bd4:	f7f7 fa06 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   18bd8:	d109      	bne.n	18bee <sym_UOYZDE3MDLGPDL5S5WKUFLPYH4DJIMF3BJSBDYA+0x48>
   18bda:	69a0      	ldr	r0, [r4, #24]
   18bdc:	b108      	cbz	r0, 18be2 <sym_UOYZDE3MDLGPDL5S5WKUFLPYH4DJIMF3BJSBDYA+0x3c>
   18bde:	7f40      	ldrb	r0, [r0, #29]
   18be0:	7088      	strb	r0, [r1, #2]
   18be2:	f104 0104 	add.w	r1, r4, #4
   18be6:	4620      	mov	r0, r4
   18be8:	f7ff ff6e 	bl	18ac8 <sdc_hci_cmd_lc_read_remote_version_information+0x4>
   18bec:	81a5      	strh	r5, [r4, #12]
   18bee:	8225      	strh	r5, [r4, #16]
   18bf0:	2001      	movs	r0, #1
   18bf2:	bd70      	pop	{r4, r5, r6, pc}

00018bf4 <sym_3LZ364FVGUVSOSH6XGIFMW5SY36X7BQXDOES46Y>:
   18bf4:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
   18bf6:	4604      	mov	r4, r0
   18bf8:	f100 0324 	add.w	r3, r0, #36	; 0x24
   18bfc:	88c0      	ldrh	r0, [r0, #6]
   18bfe:	460e      	mov	r6, r1
   18c00:	f420 4700 	bic.w	r7, r0, #32768	; 0x8000
   18c04:	8a60      	ldrh	r0, [r4, #18]
   18c06:	19d9      	adds	r1, r3, r7
   18c08:	b108      	cbz	r0, 18c0e <sym_3LZ364FVGUVSOSH6XGIFMW5SY36X7BQXDOES46Y+0x1a>
   18c0a:	42b0      	cmp	r0, r6
   18c0c:	d201      	bcs.n	18c12 <sym_3LZ364FVGUVSOSH6XGIFMW5SY36X7BQXDOES46Y+0x1e>
   18c0e:	2000      	movs	r0, #0
   18c10:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
   18c12:	89e0      	ldrh	r0, [r4, #14]
   18c14:	2500      	movs	r5, #0
   18c16:	b140      	cbz	r0, 18c2a <sym_3LZ364FVGUVSOSH6XGIFMW5SY36X7BQXDOES46Y+0x36>
   18c18:	f8b1 c000 	ldrh.w	ip, [r1]
   18c1c:	4560      	cmp	r0, ip
   18c1e:	d008      	beq.n	18c32 <sym_3LZ364FVGUVSOSH6XGIFMW5SY36X7BQXDOES46Y+0x3e>
   18c20:	f240 214b 	movw	r1, #587	; 0x24b
   18c24:	2014      	movs	r0, #20
   18c26:	f7f7 f9dd 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   18c2a:	7f60      	ldrb	r0, [r4, #29]
   18c2c:	7088      	strb	r0, [r1, #2]
   18c2e:	800d      	strh	r5, [r1, #0]
   18c30:	e00e      	b.n	18c50 <sym_3LZ364FVGUVSOSH6XGIFMW5SY36X7BQXDOES46Y+0x5c>
   18c32:	f894 c01c 	ldrb.w	ip, [r4, #28]
   18c36:	4418      	add	r0, r3
   18c38:	f10c 0c06 	add.w	ip, ip, #6
   18c3c:	44bc      	add	ip, r7
   18c3e:	4460      	add	r0, ip
   18c40:	f8b4 c01e 	ldrh.w	ip, [r4, #30]
   18c44:	f820 cc03 	strh.w	ip, [r0, #-3]
   18c48:	f894 c020 	ldrb.w	ip, [r4, #32]
   18c4c:	f800 cc01 	strb.w	ip, [r0, #-1]
   18c50:	89e0      	ldrh	r0, [r4, #14]
   18c52:	4430      	add	r0, r6
   18c54:	81e0      	strh	r0, [r4, #14]
   18c56:	8808      	ldrh	r0, [r1, #0]
   18c58:	4430      	add	r0, r6
   18c5a:	8008      	strh	r0, [r1, #0]
   18c5c:	b19a      	cbz	r2, 18c86 <sym_3LZ364FVGUVSOSH6XGIFMW5SY36X7BQXDOES46Y+0x92>
   18c5e:	1da1      	adds	r1, r4, #6
   18c60:	4620      	mov	r0, r4
   18c62:	f7ff ff31 	bl	18ac8 <sdc_hci_cmd_lc_read_remote_version_information+0x4>
   18c66:	81e5      	strh	r5, [r4, #14]
   18c68:	7f60      	ldrb	r0, [r4, #29]
   18c6a:	1c40      	adds	r0, r0, #1
   18c6c:	7760      	strb	r0, [r4, #29]
   18c6e:	7da0      	ldrb	r0, [r4, #22]
   18c70:	f88d 0000 	strb.w	r0, [sp]
   18c74:	9800      	ldr	r0, [sp, #0]
   18c76:	9000      	str	r0, [sp, #0]
   18c78:	f89d 0000 	ldrb.w	r0, [sp]
   18c7c:	b178      	cbz	r0, 18c9e <sym_3LZ364FVGUVSOSH6XGIFMW5SY36X7BQXDOES46Y+0xaa>
   18c7e:	88e0      	ldrh	r0, [r4, #6]
   18c80:	82a0      	strh	r0, [r4, #20]
   18c82:	75a5      	strb	r5, [r4, #22]
   18c84:	e00b      	b.n	18c9e <sym_3LZ364FVGUVSOSH6XGIFMW5SY36X7BQXDOES46Y+0xaa>
   18c86:	7f20      	ldrb	r0, [r4, #28]
   18c88:	89e1      	ldrh	r1, [r4, #14]
   18c8a:	1d80      	adds	r0, r0, #6
   18c8c:	4438      	add	r0, r7
   18c8e:	4419      	add	r1, r3
   18c90:	4408      	add	r0, r1
   18c92:	f830 1d03 	ldrh.w	r1, [r0, #-3]!
   18c96:	83e1      	strh	r1, [r4, #30]
   18c98:	7880      	ldrb	r0, [r0, #2]
   18c9a:	f884 0020 	strb.w	r0, [r4, #32]
   18c9e:	8265      	strh	r5, [r4, #18]
   18ca0:	2001      	movs	r0, #1
   18ca2:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}

00018ca4 <sym_Q4EW623JZHY67RB7U4Z2L2SMI5ENWIDFL23JZHQ>:
   18ca4:	b510      	push	{r4, lr}
   18ca6:	4604      	mov	r4, r0
   18ca8:	88c0      	ldrh	r0, [r0, #6]
   18caa:	88a1      	ldrh	r1, [r4, #4]
   18cac:	4281      	cmp	r1, r0
   18cae:	d007      	beq.n	18cc0 <sym_Q4EW623JZHY67RB7U4Z2L2SMI5ENWIDFL23JZHQ+0x1c>
   18cb0:	89a0      	ldrh	r0, [r4, #12]
   18cb2:	b928      	cbnz	r0, 18cc0 <sym_Q4EW623JZHY67RB7U4Z2L2SMI5ENWIDFL23JZHQ+0x1c>
   18cb4:	8a20      	ldrh	r0, [r4, #16]
   18cb6:	b918      	cbnz	r0, 18cc0 <sym_Q4EW623JZHY67RB7U4Z2L2SMI5ENWIDFL23JZHQ+0x1c>
   18cb8:	88a0      	ldrh	r0, [r4, #4]
   18cba:	8aa1      	ldrh	r1, [r4, #20]
   18cbc:	4288      	cmp	r0, r1
   18cbe:	d101      	bne.n	18cc4 <sym_Q4EW623JZHY67RB7U4Z2L2SMI5ENWIDFL23JZHQ+0x20>
   18cc0:	2000      	movs	r0, #0
   18cc2:	bd10      	pop	{r4, pc}
   18cc4:	1d21      	adds	r1, r4, #4
   18cc6:	4620      	mov	r0, r4
   18cc8:	f7ff fefe 	bl	18ac8 <sdc_hci_cmd_lc_read_remote_version_information+0x4>
   18ccc:	2000      	movs	r0, #0
   18cce:	8220      	strh	r0, [r4, #16]
   18cd0:	2001      	movs	r0, #1
   18cd2:	bd10      	pop	{r4, pc}

00018cd4 <sym_TDLIKQLE652KPCFAMYL33G6BKGPHRLYLWNEOTHQ>:
   18cd4:	b510      	push	{r4, lr}
   18cd6:	4604      	mov	r4, r0
   18cd8:	f100 0224 	add.w	r2, r0, #36	; 0x24
   18cdc:	88c0      	ldrh	r0, [r0, #6]
   18cde:	f420 4000 	bic.w	r0, r0, #32768	; 0x8000
   18ce2:	4402      	add	r2, r0
   18ce4:	8820      	ldrh	r0, [r4, #0]
   18ce6:	2845      	cmp	r0, #69	; 0x45
   18ce8:	d200      	bcs.n	18cec <sym_TDLIKQLE652KPCFAMYL33G6BKGPHRLYLWNEOTHQ+0x18>
   18cea:	2045      	movs	r0, #69	; 0x45
   18cec:	4288      	cmp	r0, r1
   18cee:	d204      	bcs.n	18cfa <sym_TDLIKQLE652KPCFAMYL33G6BKGPHRLYLWNEOTHQ+0x26>
   18cf0:	f240 1119 	movw	r1, #281	; 0x119
   18cf4:	2014      	movs	r0, #20
   18cf6:	f7f7 f975 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   18cfa:	7de0      	ldrb	r0, [r4, #23]
   18cfc:	2800      	cmp	r0, #0
   18cfe:	d003      	beq.n	18d08 <sym_TDLIKQLE652KPCFAMYL33G6BKGPHRLYLWNEOTHQ+0x34>
   18d00:	8810      	ldrh	r0, [r2, #0]
   18d02:	4288      	cmp	r0, r1
   18d04:	d201      	bcs.n	18d0a <sym_TDLIKQLE652KPCFAMYL33G6BKGPHRLYLWNEOTHQ+0x36>
   18d06:	2000      	movs	r0, #0
   18d08:	bd10      	pop	{r4, pc}
   18d0a:	8011      	strh	r1, [r2, #0]
   18d0c:	1da1      	adds	r1, r4, #6
   18d0e:	4620      	mov	r0, r4
   18d10:	f7ff feda 	bl	18ac8 <sdc_hci_cmd_lc_read_remote_version_information+0x4>
   18d14:	2000      	movs	r0, #0
   18d16:	75e0      	strb	r0, [r4, #23]
   18d18:	2001      	movs	r0, #1
   18d1a:	bd10      	pop	{r4, pc}

00018d1c <sym_AGKH6DJXHZN325DC6K3C4NU6N7PERJHJNP4AFDI>:
   18d1c:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   18d20:	8941      	ldrh	r1, [r0, #10]
   18d22:	8886      	ldrh	r6, [r0, #4]
   18d24:	4604      	mov	r4, r0
   18d26:	2500      	movs	r5, #0
   18d28:	f100 070a 	add.w	r7, r0, #10
   18d2c:	e006      	b.n	18d3c <sym_AGKH6DJXHZN325DC6K3C4NU6N7PERJHJNP4AFDI+0x20>
   18d2e:	4639      	mov	r1, r7
   18d30:	4620      	mov	r0, r4
   18d32:	f7ff fec9 	bl	18ac8 <sdc_hci_cmd_lc_read_remote_version_information+0x4>
   18d36:	1c6d      	adds	r5, r5, #1
   18d38:	8961      	ldrh	r1, [r4, #10]
   18d3a:	b2ad      	uxth	r5, r5
   18d3c:	42b1      	cmp	r1, r6
   18d3e:	d1f6      	bne.n	18d2e <sym_AGKH6DJXHZN325DC6K3C4NU6N7PERJHJNP4AFDI+0x12>
   18d40:	4628      	mov	r0, r5
   18d42:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}

00018d46 <sym_RZ3AO5KZJYCPFG5YW4CBZQF5SRGN3BPTEGBY47I>:
   18d46:	b530      	push	{r4, r5, lr}
   18d48:	88c4      	ldrh	r4, [r0, #6]
   18d4a:	8881      	ldrh	r1, [r0, #4]
   18d4c:	f100 0224 	add.w	r2, r0, #36	; 0x24
   18d50:	f421 4300 	bic.w	r3, r1, #32768	; 0x8000
   18d54:	4413      	add	r3, r2
   18d56:	8882      	ldrh	r2, [r0, #4]
   18d58:	8a85      	ldrh	r5, [r0, #20]
   18d5a:	42aa      	cmp	r2, r5
   18d5c:	d012      	beq.n	18d84 <sym_RZ3AO5KZJYCPFG5YW4CBZQF5SRGN3BPTEGBY47I+0x3e>
   18d5e:	42a1      	cmp	r1, r4
   18d60:	d010      	beq.n	18d84 <sym_RZ3AO5KZJYCPFG5YW4CBZQF5SRGN3BPTEGBY47I+0x3e>
   18d62:	8981      	ldrh	r1, [r0, #12]
   18d64:	b971      	cbnz	r1, 18d84 <sym_RZ3AO5KZJYCPFG5YW4CBZQF5SRGN3BPTEGBY47I+0x3e>
   18d66:	6982      	ldr	r2, [r0, #24]
   18d68:	b172      	cbz	r2, 18d88 <sym_RZ3AO5KZJYCPFG5YW4CBZQF5SRGN3BPTEGBY47I+0x42>
   18d6a:	4610      	mov	r0, r2
   18d6c:	f7ff ff13 	bl	18b96 <sym_WHJLTAWCA7L5AI7ZKZA7BNI7MYWDHIXTL45XGEI>
   18d70:	b950      	cbnz	r0, 18d88 <sym_RZ3AO5KZJYCPFG5YW4CBZQF5SRGN3BPTEGBY47I+0x42>
   18d72:	8910      	ldrh	r0, [r2, #8]
   18d74:	3224      	adds	r2, #36	; 0x24
   18d76:	f420 4000 	bic.w	r0, r0, #32768	; 0x8000
   18d7a:	4410      	add	r0, r2
   18d7c:	7899      	ldrb	r1, [r3, #2]
   18d7e:	7880      	ldrb	r0, [r0, #2]
   18d80:	4288      	cmp	r0, r1
   18d82:	d101      	bne.n	18d88 <sym_RZ3AO5KZJYCPFG5YW4CBZQF5SRGN3BPTEGBY47I+0x42>
   18d84:	2000      	movs	r0, #0
   18d86:	bd30      	pop	{r4, r5, pc}
   18d88:	4618      	mov	r0, r3
   18d8a:	bd30      	pop	{r4, r5, pc}

00018d8c <sym_DY52YMZFQPMDNFDSVZDQLPFIWKOSXIQIEKUVZNY>:
   18d8c:	7f00      	ldrb	r0, [r0, #28]
   18d8e:	1d80      	adds	r0, r0, #6
   18d90:	4408      	add	r0, r1
   18d92:	1ec0      	subs	r0, r0, #3
   18d94:	6010      	str	r0, [r2, #0]
   18d96:	8808      	ldrh	r0, [r1, #0]
   18d98:	4770      	bx	lr

00018d9a <sym_XCF2HHS4DO2JW2ILCF4RJW66HXXYOROBK7NUPMY>:
   18d9a:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   18d9e:	460e      	mov	r6, r1
   18da0:	88c1      	ldrh	r1, [r0, #6]
   18da2:	8902      	ldrh	r2, [r0, #8]
   18da4:	4604      	mov	r4, r0
   18da6:	f100 0824 	add.w	r8, r0, #36	; 0x24
   18daa:	8800      	ldrh	r0, [r0, #0]
   18dac:	f421 4500 	bic.w	r5, r1, #32768	; 0x8000
   18db0:	f422 4700 	bic.w	r7, r2, #32768	; 0x8000
   18db4:	2845      	cmp	r0, #69	; 0x45
   18db6:	d200      	bcs.n	18dba <sym_XCF2HHS4DO2JW2ILCF4RJW66HXXYOROBK7NUPMY+0x20>
   18db8:	2045      	movs	r0, #69	; 0x45
   18dba:	42b0      	cmp	r0, r6
   18dbc:	d203      	bcs.n	18dc6 <sym_XCF2HHS4DO2JW2ILCF4RJW66HXXYOROBK7NUPMY+0x2c>
   18dbe:	21db      	movs	r1, #219	; 0xdb
   18dc0:	2014      	movs	r0, #20
   18dc2:	f7f7 f90f 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   18dc6:	4610      	mov	r0, r2
   18dc8:	f7ff fe9f 	bl	18b0a <sdc_hci_cmd_lc_read_remote_version_information+0x46>
   18dcc:	b110      	cbz	r0, 18dd4 <sym_XCF2HHS4DO2JW2ILCF4RJW66HXXYOROBK7NUPMY+0x3a>
   18dce:	2000      	movs	r0, #0
   18dd0:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
   18dd4:	42af      	cmp	r7, r5
   18dd6:	d908      	bls.n	18dea <sym_XCF2HHS4DO2JW2ILCF4RJW66HXXYOROBK7NUPMY+0x50>
   18dd8:	7f21      	ldrb	r1, [r4, #28]
   18dda:	1b78      	subs	r0, r7, r5
   18ddc:	1a40      	subs	r0, r0, r1
   18dde:	1f80      	subs	r0, r0, #6
   18de0:	4286      	cmp	r6, r0
   18de2:	dd02      	ble.n	18dea <sym_XCF2HHS4DO2JW2ILCF4RJW66HXXYOROBK7NUPMY+0x50>
   18de4:	2000      	movs	r0, #0
   18de6:	75e0      	strb	r0, [r4, #23]
   18de8:	e7f1      	b.n	18dce <sym_XCF2HHS4DO2JW2ILCF4RJW66HXXYOROBK7NUPMY+0x34>
   18dea:	eb08 0005 	add.w	r0, r8, r5
   18dee:	2101      	movs	r1, #1
   18df0:	8006      	strh	r6, [r0, #0]
   18df2:	75e1      	strb	r1, [r4, #23]
   18df4:	e7ec      	b.n	18dd0 <sym_XCF2HHS4DO2JW2ILCF4RJW66HXXYOROBK7NUPMY+0x36>

00018df6 <sym_4WKKRRMMNLQOCTRGC2MVIREG5QOCFUEL67TBUQY>:
   18df6:	b538      	push	{r3, r4, r5, lr}
   18df8:	88c4      	ldrh	r4, [r0, #6]
   18dfa:	8881      	ldrh	r1, [r0, #4]
   18dfc:	f100 0224 	add.w	r2, r0, #36	; 0x24
   18e00:	f421 4300 	bic.w	r3, r1, #32768	; 0x8000
   18e04:	441a      	add	r2, r3
   18e06:	42a1      	cmp	r1, r4
   18e08:	d010      	beq.n	18e2c <sym_4WKKRRMMNLQOCTRGC2MVIREG5QOCFUEL67TBUQY+0x36>
   18e0a:	8983      	ldrh	r3, [r0, #12]
   18e0c:	8a05      	ldrh	r5, [r0, #16]
   18e0e:	8812      	ldrh	r2, [r2, #0]
   18e10:	442b      	add	r3, r5
   18e12:	4293      	cmp	r3, r2
   18e14:	d308      	bcc.n	18e28 <sym_4WKKRRMMNLQOCTRGC2MVIREG5QOCFUEL67TBUQY+0x32>
   18e16:	f8ad 1000 	strh.w	r1, [sp]
   18e1a:	4669      	mov	r1, sp
   18e1c:	f7ff fe54 	bl	18ac8 <sdc_hci_cmd_lc_read_remote_version_information+0x4>
   18e20:	f8bd 0000 	ldrh.w	r0, [sp]
   18e24:	42a0      	cmp	r0, r4
   18e26:	d001      	beq.n	18e2c <sym_4WKKRRMMNLQOCTRGC2MVIREG5QOCFUEL67TBUQY+0x36>
   18e28:	2001      	movs	r0, #1
   18e2a:	bd38      	pop	{r3, r4, r5, pc}
   18e2c:	2000      	movs	r0, #0
   18e2e:	bd38      	pop	{r3, r4, r5, pc}

00018e30 <sym_47GVMLF7NXDJBYC2TPU2ES3ZL6CP4GIPWKYYWBI>:
   18e30:	b570      	push	{r4, r5, r6, lr}
   18e32:	88c6      	ldrh	r6, [r0, #6]
   18e34:	8885      	ldrh	r5, [r0, #4]
   18e36:	4603      	mov	r3, r0
   18e38:	f100 0424 	add.w	r4, r0, #36	; 0x24
   18e3c:	f425 4000 	bic.w	r0, r5, #32768	; 0x8000
   18e40:	4420      	add	r0, r4
   18e42:	42b5      	cmp	r5, r6
   18e44:	d102      	bne.n	18e4c <sym_47GVMLF7NXDJBYC2TPU2ES3ZL6CP4GIPWKYYWBI+0x1c>
   18e46:	2000      	movs	r0, #0
   18e48:	8218      	strh	r0, [r3, #16]
   18e4a:	bd70      	pop	{r4, r5, r6, pc}
   18e4c:	8804      	ldrh	r4, [r0, #0]
   18e4e:	899d      	ldrh	r5, [r3, #12]
   18e50:	7f1e      	ldrb	r6, [r3, #28]
   18e52:	1b64      	subs	r4, r4, r5
   18e54:	4435      	add	r5, r6
   18e56:	4428      	add	r0, r5
   18e58:	880d      	ldrh	r5, [r1, #0]
   18e5a:	b2a4      	uxth	r4, r4
   18e5c:	1cc0      	adds	r0, r0, #3
   18e5e:	42a5      	cmp	r5, r4
   18e60:	d900      	bls.n	18e64 <sym_47GVMLF7NXDJBYC2TPU2ES3ZL6CP4GIPWKYYWBI+0x34>
   18e62:	800c      	strh	r4, [r1, #0]
   18e64:	899c      	ldrh	r4, [r3, #12]
   18e66:	b124      	cbz	r4, 18e72 <sym_47GVMLF7NXDJBYC2TPU2ES3ZL6CP4GIPWKYYWBI+0x42>
   18e68:	2400      	movs	r4, #0
   18e6a:	7014      	strb	r4, [r2, #0]
   18e6c:	8809      	ldrh	r1, [r1, #0]
   18e6e:	8219      	strh	r1, [r3, #16]
   18e70:	bd70      	pop	{r4, r5, r6, pc}
   18e72:	2401      	movs	r4, #1
   18e74:	e7f9      	b.n	18e6a <sym_47GVMLF7NXDJBYC2TPU2ES3ZL6CP4GIPWKYYWBI+0x3a>

00018e76 <sym_ZOHQLKBCZOR3A7YQVK6MVD6IEOARIBONHUTW4FY>:
   18e76:	b508      	push	{r3, lr}
   18e78:	8a81      	ldrh	r1, [r0, #20]
   18e7a:	f5a1 427f 	sub.w	r2, r1, #65280	; 0xff00
   18e7e:	3aff      	subs	r2, #255	; 0xff
   18e80:	d008      	beq.n	18e94 <sym_ZOHQLKBCZOR3A7YQVK6MVD6IEOARIBONHUTW4FY+0x1e>
   18e82:	7d82      	ldrb	r2, [r0, #22]
   18e84:	f88d 2000 	strb.w	r2, [sp]
   18e88:	9a00      	ldr	r2, [sp, #0]
   18e8a:	9200      	str	r2, [sp, #0]
   18e8c:	f89d 2000 	ldrb.w	r2, [sp]
   18e90:	b952      	cbnz	r2, 18ea8 <sym_ZOHQLKBCZOR3A7YQVK6MVD6IEOARIBONHUTW4FY+0x32>
   18e92:	e004      	b.n	18e9e <sym_ZOHQLKBCZOR3A7YQVK6MVD6IEOARIBONHUTW4FY+0x28>
   18e94:	f44f 7162 	mov.w	r1, #904	; 0x388
   18e98:	2014      	movs	r0, #20
   18e9a:	f7f7 f8a3 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   18e9e:	8880      	ldrh	r0, [r0, #4]
   18ea0:	4281      	cmp	r1, r0
   18ea2:	d101      	bne.n	18ea8 <sym_ZOHQLKBCZOR3A7YQVK6MVD6IEOARIBONHUTW4FY+0x32>
   18ea4:	2000      	movs	r0, #0
   18ea6:	bd08      	pop	{r3, pc}
   18ea8:	2001      	movs	r0, #1
   18eaa:	bd08      	pop	{r3, pc}

00018eac <sym_4Z7443SGSMJBRM7TLEVRIFXZXBZ34MHB7IK5ETY>:
   18eac:	f64f 71ff 	movw	r1, #65535	; 0xffff
   18eb0:	8281      	strh	r1, [r0, #20]
   18eb2:	2100      	movs	r1, #0
   18eb4:	7581      	strb	r1, [r0, #22]
   18eb6:	4770      	bx	lr

00018eb8 <sym_56BVXVVSYPZZTDFBHBV4MJAFTYIS7HMITNWUEZQ>:
   18eb8:	b510      	push	{r4, lr}
   18eba:	8a81      	ldrh	r1, [r0, #20]
   18ebc:	f5a1 427f 	sub.w	r2, r1, #65280	; 0xff00
   18ec0:	3aff      	subs	r2, #255	; 0xff
   18ec2:	d004      	beq.n	18ece <sym_56BVXVVSYPZZTDFBHBV4MJAFTYIS7HMITNWUEZQ+0x16>
   18ec4:	f44f 7159 	mov.w	r1, #868	; 0x364
   18ec8:	2014      	movs	r0, #20
   18eca:	f7f7 f88b 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   18ece:	88c1      	ldrh	r1, [r0, #6]
   18ed0:	8281      	strh	r1, [r0, #20]
   18ed2:	89c1      	ldrh	r1, [r0, #14]
   18ed4:	b109      	cbz	r1, 18eda <sym_56BVXVVSYPZZTDFBHBV4MJAFTYIS7HMITNWUEZQ+0x22>
   18ed6:	2101      	movs	r1, #1
   18ed8:	e000      	b.n	18edc <sym_56BVXVVSYPZZTDFBHBV4MJAFTYIS7HMITNWUEZQ+0x24>
   18eda:	2100      	movs	r1, #0
   18edc:	7581      	strb	r1, [r0, #22]
   18ede:	bd10      	pop	{r4, pc}

00018ee0 <sym_A7PVZLRTORLFMETW3GOBE4DG32WTH46LP2SW5QQ>:
   18ee0:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   18ee4:	461d      	mov	r5, r3
   18ee6:	4616      	mov	r6, r2
   18ee8:	9f06      	ldr	r7, [sp, #24]
   18eea:	460b      	mov	r3, r1
   18eec:	4604      	mov	r4, r0
   18eee:	463a      	mov	r2, r7
   18ef0:	4629      	mov	r1, r5
   18ef2:	4630      	mov	r0, r6
   18ef4:	f000 f84f 	bl	18f96 <sym_E56LW5YVGUG6HP2OML5URHI7K2KCWX5ULQKQOKY>
   18ef8:	4283      	cmp	r3, r0
   18efa:	d201      	bcs.n	18f00 <sym_A7PVZLRTORLFMETW3GOBE4DG32WTH46LP2SW5QQ+0x20>
   18efc:	21a8      	movs	r1, #168	; 0xa8
   18efe:	e018      	b.n	18f32 <sym_A7PVZLRTORLFMETW3GOBE4DG32WTH46LP2SW5QQ+0x52>
   18f00:	1ce0      	adds	r0, r4, #3
   18f02:	f020 0103 	bic.w	r1, r0, #3
   18f06:	4620      	mov	r0, r4
   18f08:	42a1      	cmp	r1, r4
   18f0a:	d001      	beq.n	18f10 <sym_A7PVZLRTORLFMETW3GOBE4DG32WTH46LP2SW5QQ+0x30>
   18f0c:	21a9      	movs	r1, #169	; 0xa9
   18f0e:	e010      	b.n	18f32 <sym_A7PVZLRTORLFMETW3GOBE4DG32WTH46LP2SW5QQ+0x52>
   18f10:	2224      	movs	r2, #36	; 0x24
   18f12:	2100      	movs	r1, #0
   18f14:	f7ff f94f 	bl	181b6 <sym_VSILKYHVQ5DVF6LG5MG267DQVA3A2XZQ6FSCLXA>
   18f18:	f64f 70ff 	movw	r0, #65535	; 0xffff
   18f1c:	82a0      	strh	r0, [r4, #20]
   18f1e:	19a8      	adds	r0, r5, r6
   18f20:	1d80      	adds	r0, r0, #6
   18f22:	4378      	muls	r0, r7
   18f24:	b280      	uxth	r0, r0
   18f26:	7725      	strb	r5, [r4, #28]
   18f28:	8060      	strh	r0, [r4, #2]
   18f2a:	f5b0 4f00 	cmp.w	r0, #32768	; 0x8000
   18f2e:	d903      	bls.n	18f38 <sym_A7PVZLRTORLFMETW3GOBE4DG32WTH46LP2SW5QQ+0x58>
   18f30:	21af      	movs	r1, #175	; 0xaf
   18f32:	2014      	movs	r0, #20
   18f34:	f7f7 f856 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   18f38:	8026      	strh	r6, [r4, #0]
   18f3a:	2000      	movs	r0, #0
   18f3c:	7760      	strb	r0, [r4, #29]
   18f3e:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}

00018f42 <sym_SSKIYGWPVDNEN7KR2D37H7PSUNCWATTS2JUNCZI>:
   18f42:	6181      	str	r1, [r0, #24]
   18f44:	6188      	str	r0, [r1, #24]
   18f46:	4770      	bx	lr

00018f48 <sym_PTZ4EWNTFK5S5TZGCBNFETDF37P4DBX7VGM33II>:
   18f48:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   18f4c:	460b      	mov	r3, r1
   18f4e:	4604      	mov	r4, r0
   18f50:	f100 0124 	add.w	r1, r0, #36	; 0x24
   18f54:	8905      	ldrh	r5, [r0, #8]
   18f56:	8946      	ldrh	r6, [r0, #10]
   18f58:	8880      	ldrh	r0, [r0, #4]
   18f5a:	f425 4700 	bic.w	r7, r5, #32768	; 0x8000
   18f5e:	4439      	add	r1, r7
   18f60:	460f      	mov	r7, r1
   18f62:	4285      	cmp	r5, r0
   18f64:	d102      	bne.n	18f6c <sym_PTZ4EWNTFK5S5TZGCBNFETDF37P4DBX7VGM33II+0x24>
   18f66:	2000      	movs	r0, #0
   18f68:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
   18f6c:	b10a      	cbz	r2, 18f72 <sym_PTZ4EWNTFK5S5TZGCBNFETDF37P4DBX7VGM33II+0x2a>
   18f6e:	1cc8      	adds	r0, r1, #3
   18f70:	6010      	str	r0, [r2, #0]
   18f72:	b123      	cbz	r3, 18f7e <sym_PTZ4EWNTFK5S5TZGCBNFETDF37P4DBX7VGM33II+0x36>
   18f74:	7f22      	ldrb	r2, [r4, #28]
   18f76:	1cf9      	adds	r1, r7, #3
   18f78:	4618      	mov	r0, r3
   18f7a:	f7ff f8a2 	bl	180c2 <sym_DQONLUECJTIEYFOFJXXAPJO4POIAJKJNKBGVN5A>
   18f7e:	883f      	ldrh	r7, [r7, #0]
   18f80:	f104 0108 	add.w	r1, r4, #8
   18f84:	4620      	mov	r0, r4
   18f86:	f7ff fd9f 	bl	18ac8 <sdc_hci_cmd_lc_read_remote_version_information+0x4>
   18f8a:	42b5      	cmp	r5, r6
   18f8c:	d101      	bne.n	18f92 <sym_PTZ4EWNTFK5S5TZGCBNFETDF37P4DBX7VGM33II+0x4a>
   18f8e:	8920      	ldrh	r0, [r4, #8]
   18f90:	8160      	strh	r0, [r4, #10]
   18f92:	4638      	mov	r0, r7
   18f94:	e7e8      	b.n	18f68 <sym_PTZ4EWNTFK5S5TZGCBNFETDF37P4DBX7VGM33II+0x20>

00018f96 <sym_E56LW5YVGUG6HP2OML5URHI7K2KCWX5ULQKQOKY>:
   18f96:	4401      	add	r1, r0
   18f98:	1d89      	adds	r1, r1, #6
   18f9a:	4351      	muls	r1, r2
   18f9c:	b28a      	uxth	r2, r1
   18f9e:	2100      	movs	r1, #0
   18fa0:	2845      	cmp	r0, #69	; 0x45
   18fa2:	d201      	bcs.n	18fa8 <sym_E56LW5YVGUG6HP2OML5URHI7K2KCWX5ULQKQOKY+0x12>
   18fa4:	f1c0 0145 	rsb	r1, r0, #69	; 0x45
   18fa8:	3224      	adds	r2, #36	; 0x24
   18faa:	1850      	adds	r0, r2, r1
   18fac:	b280      	uxth	r0, r0
   18fae:	4770      	bx	lr

00018fb0 <sym_4DUZAAZKVNAL6VUHN4XAFX35FQKJS4D7DISLHDI>:
   18fb0:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
   18fb4:	4688      	mov	r8, r1
   18fb6:	88c1      	ldrh	r1, [r0, #6]
   18fb8:	4604      	mov	r4, r0
   18fba:	8900      	ldrh	r0, [r0, #8]
   18fbc:	f421 4600 	bic.w	r6, r1, #32768	; 0x8000
   18fc0:	f104 0524 	add.w	r5, r4, #36	; 0x24
   18fc4:	f420 4700 	bic.w	r7, r0, #32768	; 0x8000
   18fc8:	eb05 0906 	add.w	r9, r5, r6
   18fcc:	f7ff fd9d 	bl	18b0a <sdc_hci_cmd_lc_read_remote_version_information+0x46>
   18fd0:	2200      	movs	r2, #0
   18fd2:	b998      	cbnz	r0, 18ffc <sym_4DUZAAZKVNAL6VUHN4XAFX35FQKJS4D7DISLHDI+0x4c>
   18fd4:	8820      	ldrh	r0, [r4, #0]
   18fd6:	2845      	cmp	r0, #69	; 0x45
   18fd8:	d200      	bcs.n	18fdc <sym_4DUZAAZKVNAL6VUHN4XAFX35FQKJS4D7DISLHDI+0x2c>
   18fda:	2045      	movs	r0, #69	; 0x45
   18fdc:	42b7      	cmp	r7, r6
   18fde:	d906      	bls.n	18fee <sym_4DUZAAZKVNAL6VUHN4XAFX35FQKJS4D7DISLHDI+0x3e>
   18fe0:	7f23      	ldrb	r3, [r4, #28]
   18fe2:	1bb9      	subs	r1, r7, r6
   18fe4:	1ac9      	subs	r1, r1, r3
   18fe6:	1f89      	subs	r1, r1, #6
   18fe8:	4281      	cmp	r1, r0
   18fea:	da00      	bge.n	18fee <sym_4DUZAAZKVNAL6VUHN4XAFX35FQKJS4D7DISLHDI+0x3e>
   18fec:	4608      	mov	r0, r1
   18fee:	89e1      	ldrh	r1, [r4, #14]
   18ff0:	b111      	cbz	r1, 18ff8 <sym_4DUZAAZKVNAL6VUHN4XAFX35FQKJS4D7DISLHDI+0x48>
   18ff2:	f8b9 3000 	ldrh.w	r3, [r9]
   18ff6:	1ac0      	subs	r0, r0, r3
   18ff8:	4540      	cmp	r0, r8
   18ffa:	da03      	bge.n	19004 <sym_4DUZAAZKVNAL6VUHN4XAFX35FQKJS4D7DISLHDI+0x54>
   18ffc:	8262      	strh	r2, [r4, #18]
   18ffe:	2000      	movs	r0, #0
   19000:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
   19004:	7f20      	ldrb	r0, [r4, #28]
   19006:	4429      	add	r1, r5
   19008:	1d80      	adds	r0, r0, #6
   1900a:	4430      	add	r0, r6
   1900c:	4408      	add	r0, r1
   1900e:	f8a4 8012 	strh.w	r8, [r4, #18]
   19012:	1ec0      	subs	r0, r0, #3
   19014:	e7f4      	b.n	19000 <sym_4DUZAAZKVNAL6VUHN4XAFX35FQKJS4D7DISLHDI+0x50>

00019016 <sym_W4P456NK4DQPUF5QVP3W7JSFZJTVGAOKAMSTNSQ>:
   19016:	2100      	movs	r1, #0
   19018:	81c1      	strh	r1, [r0, #14]
   1901a:	8241      	strh	r1, [r0, #18]
   1901c:	7581      	strb	r1, [r0, #22]
   1901e:	4770      	bx	lr

00019020 <sym_JTNP7UFMKYWSFCHJEA5IASO3QVW3HK4YV6YOJYQ>:
   19020:	b570      	push	{r4, r5, r6, lr}
   19022:	2300      	movs	r3, #0
   19024:	2908      	cmp	r1, #8
   19026:	d204      	bcs.n	19032 <sym_JTNP7UFMKYWSFCHJEA5IASO3QVW3HK4YV6YOJYQ+0x12>
   19028:	f240 11cb 	movw	r1, #459	; 0x1cb
   1902c:	2015      	movs	r0, #21
   1902e:	f7f6 ffd9 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   19032:	6802      	ldr	r2, [r0, #0]
   19034:	b90a      	cbnz	r2, 1903a <sym_JTNP7UFMKYWSFCHJEA5IASO3QVW3HK4YV6YOJYQ+0x1a>
   19036:	e01e      	b.n	19076 <sym_JTNP7UFMKYWSFCHJEA5IASO3QVW3HK4YV6YOJYQ+0x56>
   19038:	4610      	mov	r0, r2
   1903a:	6802      	ldr	r2, [r0, #0]
   1903c:	8893      	ldrh	r3, [r2, #4]
   1903e:	428b      	cmp	r3, r1
   19040:	d002      	beq.n	19048 <sym_JTNP7UFMKYWSFCHJEA5IASO3QVW3HK4YV6YOJYQ+0x28>
   19042:	6813      	ldr	r3, [r2, #0]
   19044:	2b00      	cmp	r3, #0
   19046:	d1f7      	bne.n	19038 <sym_JTNP7UFMKYWSFCHJEA5IASO3QVW3HK4YV6YOJYQ+0x18>
   19048:	8894      	ldrh	r4, [r2, #4]
   1904a:	4613      	mov	r3, r2
   1904c:	428c      	cmp	r4, r1
   1904e:	d101      	bne.n	19054 <sym_JTNP7UFMKYWSFCHJEA5IASO3QVW3HK4YV6YOJYQ+0x34>
   19050:	6811      	ldr	r1, [r2, #0]
   19052:	e00d      	b.n	19070 <sym_JTNP7UFMKYWSFCHJEA5IASO3QVW3HK4YV6YOJYQ+0x50>
   19054:	f101 0508 	add.w	r5, r1, #8
   19058:	b2ae      	uxth	r6, r5
   1905a:	2500      	movs	r5, #0
   1905c:	42b4      	cmp	r4, r6
   1905e:	d309      	bcc.n	19074 <sym_JTNP7UFMKYWSFCHJEA5IASO3QVW3HK4YV6YOJYQ+0x54>
   19060:	1a64      	subs	r4, r4, r1
   19062:	4411      	add	r1, r2
   19064:	600d      	str	r5, [r1, #0]
   19066:	808c      	strh	r4, [r1, #4]
   19068:	6802      	ldr	r2, [r0, #0]
   1906a:	6812      	ldr	r2, [r2, #0]
   1906c:	6002      	str	r2, [r0, #0]
   1906e:	600a      	str	r2, [r1, #0]
   19070:	6001      	str	r1, [r0, #0]
   19072:	e000      	b.n	19076 <sym_JTNP7UFMKYWSFCHJEA5IASO3QVW3HK4YV6YOJYQ+0x56>
   19074:	2300      	movs	r3, #0
   19076:	4618      	mov	r0, r3
   19078:	bd70      	pop	{r4, r5, r6, pc}

0001907a <sym_T2KVJXUKBW7E6DZMIXB2ENUQYG6P2TBYLXO3PAY>:
   1907a:	b510      	push	{r4, lr}
   1907c:	000c      	movs	r4, r1
   1907e:	d006      	beq.n	1908e <sym_T2KVJXUKBW7E6DZMIXB2ENUQYG6P2TBYLXO3PAY+0x14>
   19080:	2c08      	cmp	r4, #8
   19082:	d209      	bcs.n	19098 <sym_T2KVJXUKBW7E6DZMIXB2ENUQYG6P2TBYLXO3PAY+0x1e>
   19084:	f240 1195 	movw	r1, #405	; 0x195
   19088:	2015      	movs	r0, #21
   1908a:	f7f6 ffab 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   1908e:	b108      	cbz	r0, 19094 <sym_T2KVJXUKBW7E6DZMIXB2ENUQYG6P2TBYLXO3PAY+0x1a>
   19090:	2100      	movs	r1, #0
   19092:	6001      	str	r1, [r0, #0]
   19094:	2000      	movs	r0, #0
   19096:	bd10      	pop	{r4, pc}
   19098:	b118      	cbz	r0, 190a2 <sym_T2KVJXUKBW7E6DZMIXB2ENUQYG6P2TBYLXO3PAY+0x28>
   1909a:	b2a1      	uxth	r1, r4
   1909c:	6800      	ldr	r0, [r0, #0]
   1909e:	f000 f814 	bl	190ca <sym_B627VJPECYREV5OY4VJ652ISBA4XGPKVOUJ747A+0xe>
   190a2:	1d20      	adds	r0, r4, #4
   190a4:	bd10      	pop	{r4, pc}

000190a6 <sym_4FRIF7JGOVTE7JZ3KYQVPKX5PKSXGKCIHE6GQDY>:
   190a6:	2100      	movs	r1, #0
   190a8:	6802      	ldr	r2, [r0, #0]
   190aa:	e003      	b.n	190b4 <sym_4FRIF7JGOVTE7JZ3KYQVPKX5PKSXGKCIHE6GQDY+0xe>
   190ac:	8893      	ldrh	r3, [r2, #4]
   190ae:	6812      	ldr	r2, [r2, #0]
   190b0:	4419      	add	r1, r3
   190b2:	b289      	uxth	r1, r1
   190b4:	2a00      	cmp	r2, #0
   190b6:	d1f9      	bne.n	190ac <sym_4FRIF7JGOVTE7JZ3KYQVPKX5PKSXGKCIHE6GQDY+0x6>
   190b8:	f000 b807 	b.w	190ca <sym_B627VJPECYREV5OY4VJ652ISBA4XGPKVOUJ747A+0xe>

000190bc <sym_B627VJPECYREV5OY4VJ652ISBA4XGPKVOUJ747A>:
   190bc:	2300      	movs	r3, #0
   190be:	600b      	str	r3, [r1, #0]
   190c0:	808a      	strh	r2, [r1, #4]
   190c2:	6802      	ldr	r2, [r0, #0]
   190c4:	600a      	str	r2, [r1, #0]
   190c6:	6001      	str	r1, [r0, #0]
   190c8:	4770      	bx	lr
   190ca:	2300      	movs	r3, #0
   190cc:	6043      	str	r3, [r0, #4]
   190ce:	1d02      	adds	r2, r0, #4
   190d0:	8101      	strh	r1, [r0, #8]
   190d2:	6002      	str	r2, [r0, #0]
   190d4:	4770      	bx	lr

000190d6 <sym_7JFC7IFAJQVPYCQHAIUKZ626ISM3VUWBEEXY7WI>:
   190d6:	f5a0 437f 	sub.w	r3, r0, #65280	; 0xff00
   190da:	3bff      	subs	r3, #255	; 0xff
   190dc:	d001      	beq.n	190e2 <sym_7JFC7IFAJQVPYCQHAIUKZ626ISM3VUWBEEXY7WI+0xc>
   190de:	2902      	cmp	r1, #2
   190e0:	d301      	bcc.n	190e6 <sym_7JFC7IFAJQVPYCQHAIUKZ626ISM3VUWBEEXY7WI+0x10>
   190e2:	2000      	movs	r0, #0
   190e4:	4770      	bx	lr
   190e6:	f7f7 ba45 	b.w	10574 <sym_4AWF7EXI3MMHUULTY73E756U3IY5DEXOZ265MZY+0x64>

000190ea <sym_5X75WALYYBUWN4XT5LYOZBIGSZHVNFKF5J4CSQI>:
   190ea:	f5a0 427f 	sub.w	r2, r0, #65280	; 0xff00
   190ee:	3aff      	subs	r2, #255	; 0xff
   190f0:	d001      	beq.n	190f6 <sym_5X75WALYYBUWN4XT5LYOZBIGSZHVNFKF5J4CSQI+0xc>
   190f2:	2902      	cmp	r1, #2
   190f4:	d301      	bcc.n	190fa <sym_5X75WALYYBUWN4XT5LYOZBIGSZHVNFKF5J4CSQI+0x10>
   190f6:	2000      	movs	r0, #0
   190f8:	4770      	bx	lr
   190fa:	f7f7 ba75 	b.w	105e8 <sym_4AWF7EXI3MMHUULTY73E756U3IY5DEXOZ265MZY+0xd8>

000190fe <sym_3SKPFA625PNDCAQQU2M5BY77GYLRCXEEFZ5JBTY>:
   190fe:	b570      	push	{r4, r5, r6, lr}
   19100:	4605      	mov	r5, r0
   19102:	460c      	mov	r4, r1
   19104:	4608      	mov	r0, r1
   19106:	f000 f96e 	bl	193e6 <sym_RFDF52I45CER5LUFD5R474FWGPTOSAHNLW6EPTI>
   1910a:	b108      	cbz	r0, 19110 <sym_3SKPFA625PNDCAQQU2M5BY77GYLRCXEEFZ5JBTY+0x12>
   1910c:	2010      	movs	r0, #16
   1910e:	bd70      	pop	{r4, r5, r6, pc}
   19110:	2d02      	cmp	r5, #2
   19112:	d301      	bcc.n	19118 <sym_3SKPFA625PNDCAQQU2M5BY77GYLRCXEEFZ5JBTY+0x1a>
   19114:	2007      	movs	r0, #7
   19116:	bd70      	pop	{r4, r5, r6, pc}
   19118:	7025      	strb	r5, [r4, #0]
   1911a:	2000      	movs	r0, #0
   1911c:	8060      	strh	r0, [r4, #2]
   1911e:	bd70      	pop	{r4, r5, r6, pc}
   19120:	b510      	push	{r4, lr}
   19122:	4604      	mov	r4, r0
   19124:	f7f7 faac 	bl	10680 <sym_4AWF7EXI3MMHUULTY73E756U3IY5DEXOZ265MZY+0x170>
   19128:	42a0      	cmp	r0, r4
   1912a:	d901      	bls.n	19130 <sym_3SKPFA625PNDCAQQU2M5BY77GYLRCXEEFZ5JBTY+0x32>
   1912c:	2001      	movs	r0, #1
   1912e:	bd10      	pop	{r4, pc}
   19130:	2000      	movs	r0, #0
   19132:	bd10      	pop	{r4, pc}
   19134:	4770      	bx	lr

00019136 <sym_WDNTHBFS7DQM3AR7WDCR7ZEICFH5ZM5PJ35BRPY>:
   19136:	b570      	push	{r4, r5, r6, lr}
   19138:	460e      	mov	r6, r1
   1913a:	461d      	mov	r5, r3
   1913c:	4611      	mov	r1, r2
   1913e:	f000 f811 	bl	19164 <sym_WDNTHBFS7DQM3AR7WDCR7ZEICFH5ZM5PJ35BRPY+0x2e>
   19142:	4604      	mov	r4, r0
   19144:	4629      	mov	r1, r5
   19146:	4630      	mov	r0, r6
   19148:	f000 f803 	bl	19152 <sym_WDNTHBFS7DQM3AR7WDCR7ZEICFH5ZM5PJ35BRPY+0x1c>
   1914c:	4420      	add	r0, r4
   1914e:	1d00      	adds	r0, r0, #4
   19150:	bd70      	pop	{r4, r5, r6, pc}
   19152:	b510      	push	{r4, lr}
   19154:	460a      	mov	r2, r1
   19156:	2101      	movs	r1, #1
   19158:	f7ff ff1d 	bl	18f96 <sym_E56LW5YVGUG6HP2OML5URHI7K2KCWX5ULQKQOKY>
   1915c:	1cc0      	adds	r0, r0, #3
   1915e:	f020 0003 	bic.w	r0, r0, #3
   19162:	bd10      	pop	{r4, pc}
   19164:	b510      	push	{r4, lr}
   19166:	460a      	mov	r2, r1
   19168:	2101      	movs	r1, #1
   1916a:	f7ff ff14 	bl	18f96 <sym_E56LW5YVGUG6HP2OML5URHI7K2KCWX5ULQKQOKY>
   1916e:	1cc0      	adds	r0, r0, #3
   19170:	f020 0003 	bic.w	r0, r0, #3
   19174:	bd10      	pop	{r4, pc}
   19176:	b109      	cbz	r1, 1917c <sym_WDNTHBFS7DQM3AR7WDCR7ZEICFH5ZM5PJ35BRPY+0x46>
   19178:	2100      	movs	r1, #0
   1917a:	e000      	b.n	1917e <sym_WDNTHBFS7DQM3AR7WDCR7ZEICFH5ZM5PJ35BRPY+0x48>
   1917c:	2102      	movs	r1, #2
   1917e:	1843      	adds	r3, r0, r1
   19180:	7d1a      	ldrb	r2, [r3, #20]
   19182:	2a02      	cmp	r2, #2
   19184:	d008      	beq.n	19198 <sym_WDNTHBFS7DQM3AR7WDCR7ZEICFH5ZM5PJ35BRPY+0x62>
   19186:	7d5b      	ldrb	r3, [r3, #21]
   19188:	2b02      	cmp	r3, #2
   1918a:	d009      	beq.n	191a0 <sym_WDNTHBFS7DQM3AR7WDCR7ZEICFH5ZM5PJ35BRPY+0x6a>
   1918c:	2a03      	cmp	r2, #3
   1918e:	d003      	beq.n	19198 <sym_WDNTHBFS7DQM3AR7WDCR7ZEICFH5ZM5PJ35BRPY+0x62>
   19190:	2b03      	cmp	r3, #3
   19192:	d005      	beq.n	191a0 <sym_WDNTHBFS7DQM3AR7WDCR7ZEICFH5ZM5PJ35BRPY+0x6a>
   19194:	2000      	movs	r0, #0
   19196:	4770      	bx	lr
   19198:	eb00 0041 	add.w	r0, r0, r1, lsl #1
   1919c:	8b00      	ldrh	r0, [r0, #24]
   1919e:	4770      	bx	lr
   191a0:	eb00 0041 	add.w	r0, r0, r1, lsl #1
   191a4:	8b40      	ldrh	r0, [r0, #26]
   191a6:	4770      	bx	lr
   191a8:	b109      	cbz	r1, 191ae <sym_WDNTHBFS7DQM3AR7WDCR7ZEICFH5ZM5PJ35BRPY+0x78>
   191aa:	2100      	movs	r1, #0
   191ac:	e000      	b.n	191b0 <sym_WDNTHBFS7DQM3AR7WDCR7ZEICFH5ZM5PJ35BRPY+0x7a>
   191ae:	2102      	movs	r1, #2
   191b0:	eb00 0041 	add.w	r0, r0, r1, lsl #1
   191b4:	8b01      	ldrh	r1, [r0, #24]
   191b6:	b911      	cbnz	r1, 191be <sym_WDNTHBFS7DQM3AR7WDCR7ZEICFH5ZM5PJ35BRPY+0x88>
   191b8:	8b40      	ldrh	r0, [r0, #26]
   191ba:	2800      	cmp	r0, #0
   191bc:	d000      	beq.n	191c0 <sym_WDNTHBFS7DQM3AR7WDCR7ZEICFH5ZM5PJ35BRPY+0x8a>
   191be:	2001      	movs	r0, #1
   191c0:	4770      	bx	lr
   191c2:	b538      	push	{r3, r4, r5, lr}
   191c4:	7883      	ldrb	r3, [r0, #2]
   191c6:	f88d 3000 	strb.w	r3, [sp]
   191ca:	9b00      	ldr	r3, [sp, #0]
   191cc:	9300      	str	r3, [sp, #0]
   191ce:	f89d 3000 	ldrb.w	r3, [sp]
   191d2:	b953      	cbnz	r3, 191ea <sym_WDNTHBFS7DQM3AR7WDCR7ZEICFH5ZM5PJ35BRPY+0xb4>
   191d4:	b10a      	cbz	r2, 191da <sym_WDNTHBFS7DQM3AR7WDCR7ZEICFH5ZM5PJ35BRPY+0xa4>
   191d6:	2300      	movs	r3, #0
   191d8:	e000      	b.n	191dc <sym_WDNTHBFS7DQM3AR7WDCR7ZEICFH5ZM5PJ35BRPY+0xa6>
   191da:	2302      	movs	r3, #2
   191dc:	18c2      	adds	r2, r0, r3
   191de:	7d14      	ldrb	r4, [r2, #20]
   191e0:	2c02      	cmp	r4, #2
   191e2:	d004      	beq.n	191ee <sym_WDNTHBFS7DQM3AR7WDCR7ZEICFH5ZM5PJ35BRPY+0xb8>
   191e4:	7d52      	ldrb	r2, [r2, #21]
   191e6:	2a02      	cmp	r2, #2
   191e8:	d004      	beq.n	191f4 <sym_WDNTHBFS7DQM3AR7WDCR7ZEICFH5ZM5PJ35BRPY+0xbe>
   191ea:	2000      	movs	r0, #0
   191ec:	bd38      	pop	{r3, r4, r5, pc}
   191ee:	461a      	mov	r2, r3
   191f0:	1c5b      	adds	r3, r3, #1
   191f2:	e000      	b.n	191f6 <sym_WDNTHBFS7DQM3AR7WDCR7ZEICFH5ZM5PJ35BRPY+0xc0>
   191f4:	1c5a      	adds	r2, r3, #1
   191f6:	b181      	cbz	r1, 1921a <sym_WDNTHBFS7DQM3AR7WDCR7ZEICFH5ZM5PJ35BRPY+0xe4>
   191f8:	18c5      	adds	r5, r0, r3
   191fa:	2400      	movs	r4, #0
   191fc:	eb00 0343 	add.w	r3, r0, r3, lsl #1
   19200:	752c      	strb	r4, [r5, #20]
   19202:	831c      	strh	r4, [r3, #24]
   19204:	2303      	movs	r3, #3
   19206:	1884      	adds	r4, r0, r2
   19208:	7523      	strb	r3, [r4, #20]
   1920a:	eb00 0382 	add.w	r3, r0, r2, lsl #2
   1920e:	eb00 0042 	add.w	r0, r0, r2, lsl #1
   19212:	685b      	ldr	r3, [r3, #4]
   19214:	600b      	str	r3, [r1, #0]
   19216:	8b00      	ldrh	r0, [r0, #24]
   19218:	8088      	strh	r0, [r1, #4]
   1921a:	2001      	movs	r0, #1
   1921c:	bd38      	pop	{r3, r4, r5, pc}
   1921e:	b510      	push	{r4, lr}
   19220:	b109      	cbz	r1, 19226 <sym_WDNTHBFS7DQM3AR7WDCR7ZEICFH5ZM5PJ35BRPY+0xf0>
   19222:	2100      	movs	r1, #0
   19224:	e000      	b.n	19228 <sym_WDNTHBFS7DQM3AR7WDCR7ZEICFH5ZM5PJ35BRPY+0xf2>
   19226:	2102      	movs	r1, #2
   19228:	1843      	adds	r3, r0, r1
   1922a:	7d1c      	ldrb	r4, [r3, #20]
   1922c:	4294      	cmp	r4, r2
   1922e:	d103      	bne.n	19238 <sym_WDNTHBFS7DQM3AR7WDCR7ZEICFH5ZM5PJ35BRPY+0x102>
   19230:	eb00 0041 	add.w	r0, r0, r1, lsl #1
   19234:	8b00      	ldrh	r0, [r0, #24]
   19236:	bd10      	pop	{r4, pc}
   19238:	7d5b      	ldrb	r3, [r3, #21]
   1923a:	4293      	cmp	r3, r2
   1923c:	d103      	bne.n	19246 <sym_WDNTHBFS7DQM3AR7WDCR7ZEICFH5ZM5PJ35BRPY+0x110>
   1923e:	eb00 0041 	add.w	r0, r0, r1, lsl #1
   19242:	8b40      	ldrh	r0, [r0, #26]
   19244:	bd10      	pop	{r4, pc}
   19246:	2000      	movs	r0, #0
   19248:	bd10      	pop	{r4, pc}
   1924a:	f5b0 7fff 	cmp.w	r0, #510	; 0x1fe
   1924e:	d201      	bcs.n	19254 <sym_WDNTHBFS7DQM3AR7WDCR7ZEICFH5ZM5PJ35BRPY+0x11e>
   19250:	0841      	lsrs	r1, r0, #1
   19252:	e000      	b.n	19256 <sym_WDNTHBFS7DQM3AR7WDCR7ZEICFH5ZM5PJ35BRPY+0x120>
   19254:	21ff      	movs	r1, #255	; 0xff
   19256:	1a40      	subs	r0, r0, r1
   19258:	f240 6172 	movw	r1, #1650	; 0x672
   1925c:	4288      	cmp	r0, r1
   1925e:	db00      	blt.n	19262 <sym_WDNTHBFS7DQM3AR7WDCR7ZEICFH5ZM5PJ35BRPY+0x12c>
   19260:	4608      	mov	r0, r1
   19262:	b280      	uxth	r0, r0
   19264:	4770      	bx	lr

00019266 <sym_RIJIFYF46ZRKFDPA3GKV7WCH2VGEUEP6MVN4JFI>:
   19266:	2101      	movs	r1, #1
   19268:	f7ff bf85 	b.w	19176 <sym_WDNTHBFS7DQM3AR7WDCR7ZEICFH5ZM5PJ35BRPY+0x40>

0001926c <sym_YBUOIVJGKD57C5J4XCQFOKF4I5XT74ICLDOCNXA>:
   1926c:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   19270:	4606      	mov	r6, r0
   19272:	f342 0780 	sbfx	r7, r2, #2, #1
   19276:	7848      	ldrb	r0, [r1, #1]
   19278:	460c      	mov	r4, r1
   1927a:	f022 0504 	bic.w	r5, r2, #4
   1927e:	1c7f      	adds	r7, r7, #1
   19280:	b100      	cbz	r0, 19284 <sym_YBUOIVJGKD57C5J4XCQFOKF4I5XT74ICLDOCNXA+0x18>
   19282:	b90d      	cbnz	r5, 19288 <sym_YBUOIVJGKD57C5J4XCQFOKF4I5XT74ICLDOCNXA+0x1c>
   19284:	4328      	orrs	r0, r5
   19286:	d104      	bne.n	19292 <sym_YBUOIVJGKD57C5J4XCQFOKF4I5XT74ICLDOCNXA+0x26>
   19288:	b145      	cbz	r5, 1929c <sym_YBUOIVJGKD57C5J4XCQFOKF4I5XT74ICLDOCNXA+0x30>
   1928a:	2100      	movs	r1, #0
   1928c:	4620      	mov	r0, r4
   1928e:	f7f7 faff 	bl	10890 <sym_35ZAQW4ABRMBYES2ZHPK63BHZAFFFC4WMGEJ6NA+0x30>
   19292:	2101      	movs	r1, #1
   19294:	70a1      	strb	r1, [r4, #2]
   19296:	b11f      	cbz	r7, 192a0 <sym_YBUOIVJGKD57C5J4XCQFOKF4I5XT74ICLDOCNXA+0x34>
   19298:	2000      	movs	r0, #0
   1929a:	e002      	b.n	192a2 <sym_YBUOIVJGKD57C5J4XCQFOKF4I5XT74ICLDOCNXA+0x36>
   1929c:	2101      	movs	r1, #1
   1929e:	e7f5      	b.n	1928c <sym_YBUOIVJGKD57C5J4XCQFOKF4I5XT74ICLDOCNXA+0x20>
   192a0:	2002      	movs	r0, #2
   192a2:	1822      	adds	r2, r4, r0
   192a4:	7d12      	ldrb	r2, [r2, #20]
   192a6:	2a03      	cmp	r2, #3
   192a8:	d102      	bne.n	192b0 <sym_YBUOIVJGKD57C5J4XCQFOKF4I5XT74ICLDOCNXA+0x44>
   192aa:	2d02      	cmp	r5, #2
   192ac:	d000      	beq.n	192b0 <sym_YBUOIVJGKD57C5J4XCQFOKF4I5XT74ICLDOCNXA+0x44>
   192ae:	1c40      	adds	r0, r0, #1
   192b0:	1822      	adds	r2, r4, r0
   192b2:	7511      	strb	r1, [r2, #20]
   192b4:	eb04 0140 	add.w	r1, r4, r0, lsl #1
   192b8:	2200      	movs	r2, #0
   192ba:	eb04 0080 	add.w	r0, r4, r0, lsl #2
   192be:	830a      	strh	r2, [r1, #24]
   192c0:	6840      	ldr	r0, [r0, #4]
   192c2:	70a2      	strb	r2, [r4, #2]
   192c4:	4631      	mov	r1, r6
   192c6:	f362 010f 	bfi	r1, r2, #0, #16
   192ca:	e9c6 0100 	strd	r0, r1, [r6]
   192ce:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}

000192d2 <sym_F5SXUQLY6DFZ5NXKJ4VFIGAK52D6AM5LN2AJKSY>:
   192d2:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   192d6:	461e      	mov	r6, r3
   192d8:	4613      	mov	r3, r2
   192da:	4604      	mov	r4, r0
   192dc:	b109      	cbz	r1, 192e2 <sym_F5SXUQLY6DFZ5NXKJ4VFIGAK52D6AM5LN2AJKSY+0x10>
   192de:	2000      	movs	r0, #0
   192e0:	e000      	b.n	192e4 <sym_F5SXUQLY6DFZ5NXKJ4VFIGAK52D6AM5LN2AJKSY+0x12>
   192e2:	2002      	movs	r0, #2
   192e4:	2101      	movs	r1, #1
   192e6:	70a1      	strb	r1, [r4, #2]
   192e8:	1821      	adds	r1, r4, r0
   192ea:	7d0a      	ldrb	r2, [r1, #20]
   192ec:	2a01      	cmp	r2, #1
   192ee:	d003      	beq.n	192f8 <sym_F5SXUQLY6DFZ5NXKJ4VFIGAK52D6AM5LN2AJKSY+0x26>
   192f0:	7d49      	ldrb	r1, [r1, #21]
   192f2:	2901      	cmp	r1, #1
   192f4:	d10c      	bne.n	19310 <sym_F5SXUQLY6DFZ5NXKJ4VFIGAK52D6AM5LN2AJKSY+0x3e>
   192f6:	1c40      	adds	r0, r0, #1
   192f8:	eb04 0540 	add.w	r5, r4, r0, lsl #1
   192fc:	2700      	movs	r7, #0
   192fe:	8b29      	ldrh	r1, [r5, #24]
   19300:	f8b5 c020 	ldrh.w	ip, [r5, #32]
   19304:	198a      	adds	r2, r1, r6
   19306:	4562      	cmp	r2, ip
   19308:	d905      	bls.n	19316 <sym_F5SXUQLY6DFZ5NXKJ4VFIGAK52D6AM5LN2AJKSY+0x44>
   1930a:	4420      	add	r0, r4
   1930c:	832f      	strh	r7, [r5, #24]
   1930e:	7507      	strb	r7, [r0, #20]
   19310:	2000      	movs	r0, #0
   19312:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
   19316:	eb04 0080 	add.w	r0, r4, r0, lsl #2
   1931a:	4632      	mov	r2, r6
   1931c:	6840      	ldr	r0, [r0, #4]
   1931e:	4408      	add	r0, r1
   19320:	4619      	mov	r1, r3
   19322:	f7fe fece 	bl	180c2 <sym_DQONLUECJTIEYFOFJXXAPJO4POIAJKJNKBGVN5A>
   19326:	8b28      	ldrh	r0, [r5, #24]
   19328:	4430      	add	r0, r6
   1932a:	8328      	strh	r0, [r5, #24]
   1932c:	70a7      	strb	r7, [r4, #2]
   1932e:	2001      	movs	r0, #1
   19330:	e7ef      	b.n	19312 <sym_F5SXUQLY6DFZ5NXKJ4VFIGAK52D6AM5LN2AJKSY+0x40>

00019332 <sym_SYX5A4D5YT7FQ4PORL5PYZ5T6BOBVEZRWNZWOOA>:
   19332:	2202      	movs	r2, #2
   19334:	2100      	movs	r1, #0
   19336:	f7ff bf72 	b.w	1921e <sym_WDNTHBFS7DQM3AR7WDCR7ZEICFH5ZM5PJ35BRPY+0xe8>

0001933a <sym_Z3P3D5U3YDA66QTFRMTODYQPS5XZL7N2E3M2DIY>:
   1933a:	b510      	push	{r4, lr}
   1933c:	2101      	movs	r1, #1
   1933e:	f7ff ff33 	bl	191a8 <sym_WDNTHBFS7DQM3AR7WDCR7ZEICFH5ZM5PJ35BRPY+0x72>
   19342:	2800      	cmp	r0, #0
   19344:	d000      	beq.n	19348 <sym_Z3P3D5U3YDA66QTFRMTODYQPS5XZL7N2E3M2DIY+0xe>
   19346:	2001      	movs	r0, #1
   19348:	bd10      	pop	{r4, pc}

0001934a <sym_VPXIA5P4C72CY3ME4ZVXBADOKEG5S4C7Z7QZZFA>:
   1934a:	2201      	movs	r2, #1
   1934c:	f7ff bf39 	b.w	191c2 <sym_WDNTHBFS7DQM3AR7WDCR7ZEICFH5ZM5PJ35BRPY+0x8c>

00019350 <sym_MF4WRTQNYFRYRFGW7FZUI3ZAYNQZ5EQ54QSK6JQ>:
   19350:	2200      	movs	r2, #0
   19352:	f7ff bf36 	b.w	191c2 <sym_WDNTHBFS7DQM3AR7WDCR7ZEICFH5ZM5PJ35BRPY+0x8c>

00019356 <sym_OC5GPSERLPE7TKXSCU3QAZ62H3OM4MWFYV7WX2I>:
   19356:	b570      	push	{r4, r5, r6, lr}
   19358:	b109      	cbz	r1, 1935e <sym_OC5GPSERLPE7TKXSCU3QAZ62H3OM4MWFYV7WX2I+0x8>
   1935a:	2300      	movs	r3, #0
   1935c:	e000      	b.n	19360 <sym_OC5GPSERLPE7TKXSCU3QAZ62H3OM4MWFYV7WX2I+0xa>
   1935e:	2302      	movs	r3, #2
   19360:	2101      	movs	r1, #1
   19362:	7081      	strb	r1, [r0, #2]
   19364:	18c1      	adds	r1, r0, r3
   19366:	2402      	movs	r4, #2
   19368:	7d0d      	ldrb	r5, [r1, #20]
   1936a:	2d01      	cmp	r5, #1
   1936c:	d007      	beq.n	1937e <sym_OC5GPSERLPE7TKXSCU3QAZ62H3OM4MWFYV7WX2I+0x28>
   1936e:	7d4d      	ldrb	r5, [r1, #21]
   19370:	2d01      	cmp	r5, #1
   19372:	d009      	beq.n	19388 <sym_OC5GPSERLPE7TKXSCU3QAZ62H3OM4MWFYV7WX2I+0x32>
   19374:	f44f 718b 	mov.w	r1, #278	; 0x116
   19378:	2009      	movs	r0, #9
   1937a:	f7f6 fe33 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   1937e:	eb00 0343 	add.w	r3, r0, r3, lsl #1
   19382:	831a      	strh	r2, [r3, #24]
   19384:	750c      	strb	r4, [r1, #20]
   19386:	e003      	b.n	19390 <sym_OC5GPSERLPE7TKXSCU3QAZ62H3OM4MWFYV7WX2I+0x3a>
   19388:	eb00 0343 	add.w	r3, r0, r3, lsl #1
   1938c:	835a      	strh	r2, [r3, #26]
   1938e:	754c      	strb	r4, [r1, #21]
   19390:	2100      	movs	r1, #0
   19392:	7081      	strb	r1, [r0, #2]
   19394:	bd70      	pop	{r4, r5, r6, pc}

00019396 <sym_SCCFLYV5KOPRJ5S7RGDC2KDSCCHMKXYC3EQIE6A>:
   19396:	2101      	movs	r1, #1
   19398:	7001      	strb	r1, [r0, #0]
   1939a:	4770      	bx	lr

0001939c <sym_DPFAWTOI3GRLXCS5TV5FXLZJNKWMRLYTLT4DRFY>:
   1939c:	2201      	movs	r2, #1
   1939e:	4611      	mov	r1, r2
   193a0:	f7ff bf3d 	b.w	1921e <sym_WDNTHBFS7DQM3AR7WDCR7ZEICFH5ZM5PJ35BRPY+0xe8>

000193a4 <sym_27RZBWKBTESKUPVNN3E7RHYQU6UH4RT372SK2WA>:
   193a4:	2201      	movs	r2, #1
   193a6:	2100      	movs	r1, #0
   193a8:	f7ff bf39 	b.w	1921e <sym_WDNTHBFS7DQM3AR7WDCR7ZEICFH5ZM5PJ35BRPY+0xe8>

000193ac <sym_MJFFFAJVV3IQTOJK6UL2575XXGCEKTIIFXD5MAQ>:
   193ac:	2100      	movs	r1, #0
   193ae:	f7ff bee2 	b.w	19176 <sym_WDNTHBFS7DQM3AR7WDCR7ZEICFH5ZM5PJ35BRPY+0x40>
   193b2:	2800      	cmp	r0, #0
   193b4:	db09      	blt.n	193ca <sym_MJFFFAJVV3IQTOJK6UL2575XXGCEKTIIFXD5MAQ+0x1e>
   193b6:	f000 021f 	and.w	r2, r0, #31
   193ba:	2101      	movs	r1, #1
   193bc:	4091      	lsls	r1, r2
   193be:	0940      	lsrs	r0, r0, #5
   193c0:	0080      	lsls	r0, r0, #2
   193c2:	f100 20e0 	add.w	r0, r0, #3758153728	; 0xe000e000
   193c6:	f8c0 1280 	str.w	r1, [r0, #640]	; 0x280
   193ca:	4770      	bx	lr

000193cc <sym_GZE6QJRFTCG2MERGOKENHWFRYSCC5S3WEXUU47A>:
   193cc:	f7f7 bbb6 	b.w	10b3c <sym_2ZCOT6ZEUU54S36NE627GOZVLBS26AFIUJKNLBI>

000193d0 <sym_TEFIALEYGDWZNVCI6J2TWNGI7MKU467ZDEG2H4A>:
   193d0:	f04f 4180 	mov.w	r1, #1073741824	; 0x40000000
   193d4:	2000      	movs	r0, #0
   193d6:	f8c1 0108 	str.w	r0, [r1, #264]	; 0x108
   193da:	f04f 21e0 	mov.w	r1, #3758153728	; 0xe000e000
   193de:	2001      	movs	r0, #1
   193e0:	f8c1 0100 	str.w	r0, [r1, #256]	; 0x100
   193e4:	4770      	bx	lr

000193e6 <sym_RFDF52I45CER5LUFD5R474FWGPTOSAHNLW6EPTI>:
   193e6:	b108      	cbz	r0, 193ec <sym_RFDF52I45CER5LUFD5R474FWGPTOSAHNLW6EPTI+0x6>
   193e8:	2000      	movs	r0, #0
   193ea:	4770      	bx	lr
   193ec:	2001      	movs	r0, #1
   193ee:	4770      	bx	lr

000193f0 <sym_REO6MG4FRJTNQQ56RDJDYGEWFEO5TFVYGRW6OLI>:
   193f0:	f7f7 bcea 	b.w	10dc8 <sym_MJCF2WRL4I323V23HKVENOJWV5IXH54R5X6LJRY+0x20>

000193f4 <sym_QXKT3PVMDTZRAAU2QNTWO5VOUEZ4NW6TWISREXY>:
   193f4:	f7f7 bcd8 	b.w	10da8 <sym_MJCF2WRL4I323V23HKVENOJWV5IXH54R5X6LJRY>

000193f8 <sym_FEGTISSRZOTQRK4SD4MRDIWBV3TTZYGCCKXTY4Y>:
   193f8:	b510      	push	{r4, lr}
   193fa:	2900      	cmp	r1, #0
   193fc:	4604      	mov	r4, r0
   193fe:	f04f 0106 	mov.w	r1, #6
   19402:	d002      	beq.n	1940a <sym_FEGTISSRZOTQRK4SD4MRDIWBV3TTZYGCCKXTY4Y+0x12>
   19404:	f7f6 fe7a 	bl	100fc <sym_4BGPQMJJRBR2ET4K6M3CH3OLXQGTP2TS7FVXINA>
   19408:	e001      	b.n	1940e <sym_FEGTISSRZOTQRK4SD4MRDIWBV3TTZYGCCKXTY4Y+0x16>
   1940a:	f7f6 fe93 	bl	10134 <sym_CVMXQJYKHZVHIOMGOYEICPLVAIQNUBL6USVNZSA>
   1940e:	7960      	ldrb	r0, [r4, #5]
   19410:	f020 00c0 	bic.w	r0, r0, #192	; 0xc0
   19414:	7160      	strb	r0, [r4, #5]
   19416:	bd10      	pop	{r4, pc}

00019418 <sym_BGPX36PUCNVPV3544HQ5RQFY5WG7CJAFVVBI7AY>:
   19418:	4770      	bx	lr

0001941a <sym_BLMJ5IIKWMCUMGRAJC47JTAD5DUGOY4TIBII5HY>:
   1941a:	b530      	push	{r4, r5, lr}
   1941c:	460c      	mov	r4, r1
   1941e:	4605      	mov	r5, r0
   19420:	b08d      	sub	sp, #52	; 0x34
   19422:	f04f 0103 	mov.w	r1, #3
   19426:	f104 0003 	add.w	r0, r4, #3
   1942a:	b112      	cbz	r2, 19432 <sym_BLMJ5IIKWMCUMGRAJC47JTAD5DUGOY4TIBII5HY+0x18>
   1942c:	f7f6 fe66 	bl	100fc <sym_4BGPQMJJRBR2ET4K6M3CH3OLXQGTP2TS7FVXINA>
   19430:	e001      	b.n	19436 <sym_BLMJ5IIKWMCUMGRAJC47JTAD5DUGOY4TIBII5HY+0x1c>
   19432:	f7f6 fe7f 	bl	10134 <sym_CVMXQJYKHZVHIOMGOYEICPLVAIQNUBL6USVNZSA>
   19436:	7960      	ldrb	r0, [r4, #5]
   19438:	220d      	movs	r2, #13
   1943a:	f020 00c0 	bic.w	r0, r0, #192	; 0xc0
   1943e:	f040 0040 	orr.w	r0, r0, #64	; 0x40
   19442:	7160      	strb	r0, [r4, #5]
   19444:	2100      	movs	r1, #0
   19446:	a804      	add	r0, sp, #16
   19448:	f7fe feb5 	bl	181b6 <sym_VSILKYHVQ5DVF6LG5MG267DQVA3A2XZQ6FSCLXA>
   1944c:	78e0      	ldrb	r0, [r4, #3]
   1944e:	f88d 001f 	strb.w	r0, [sp, #31]
   19452:	7920      	ldrb	r0, [r4, #4]
   19454:	f88d 001e 	strb.w	r0, [sp, #30]
   19458:	7960      	ldrb	r0, [r4, #5]
   1945a:	f88d 001d 	strb.w	r0, [sp, #29]
   1945e:	2210      	movs	r2, #16
   19460:	4629      	mov	r1, r5
   19462:	4668      	mov	r0, sp
   19464:	f7fe fe2d 	bl	180c2 <sym_DQONLUECJTIEYFOFJXXAPJO4POIAJKJNKBGVN5A>
   19468:	4668      	mov	r0, sp
   1946a:	f7ff ffaf 	bl	193cc <sym_GZE6QJRFTCG2MERGOKENHWFRYSCC5S3WEXUU47A>
   1946e:	f89d 002f 	ldrb.w	r0, [sp, #47]	; 0x2f
   19472:	7020      	strb	r0, [r4, #0]
   19474:	f89d 002e 	ldrb.w	r0, [sp, #46]	; 0x2e
   19478:	7060      	strb	r0, [r4, #1]
   1947a:	f89d 002d 	ldrb.w	r0, [sp, #45]	; 0x2d
   1947e:	70a0      	strb	r0, [r4, #2]
   19480:	b00d      	add	sp, #52	; 0x34
   19482:	bd30      	pop	{r4, r5, pc}

00019484 <sym_DQHYQ3HZODNGY32MUV2QBXEWNH7ASP5VOSVL45Q>:
   19484:	f7f8 b87e 	b.w	11584 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ+0x3d4>
   19488:	07c1      	lsls	r1, r0, #31
   1948a:	d001      	beq.n	19490 <sym_DQHYQ3HZODNGY32MUV2QBXEWNH7ASP5VOSVL45Q+0xc>
   1948c:	2001      	movs	r0, #1
   1948e:	4770      	bx	lr
   19490:	0780      	lsls	r0, r0, #30
   19492:	d501      	bpl.n	19498 <sym_DQHYQ3HZODNGY32MUV2QBXEWNH7ASP5VOSVL45Q+0x14>
   19494:	2002      	movs	r0, #2
   19496:	4770      	bx	lr
   19498:	2000      	movs	r0, #0
   1949a:	4770      	bx	lr
   1949c:	b510      	push	{r4, lr}
   1949e:	2801      	cmp	r0, #1
   194a0:	d008      	beq.n	194b4 <sym_DQHYQ3HZODNGY32MUV2QBXEWNH7ASP5VOSVL45Q+0x30>
   194a2:	2802      	cmp	r0, #2
   194a4:	d004      	beq.n	194b0 <sym_DQHYQ3HZODNGY32MUV2QBXEWNH7ASP5VOSVL45Q+0x2c>
   194a6:	f240 319a 	movw	r1, #922	; 0x39a
   194aa:	2006      	movs	r0, #6
   194ac:	f7f6 fd9a 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   194b0:	2001      	movs	r0, #1
   194b2:	bd10      	pop	{r4, pc}
   194b4:	2000      	movs	r0, #0
   194b6:	bd10      	pop	{r4, pc}
   194b8:	2900      	cmp	r1, #0
   194ba:	d004      	beq.n	194c6 <sym_DQHYQ3HZODNGY32MUV2QBXEWNH7ASP5VOSVL45Q+0x42>
   194bc:	2801      	cmp	r0, #1
   194be:	d003      	beq.n	194c8 <sym_DQHYQ3HZODNGY32MUV2QBXEWNH7ASP5VOSVL45Q+0x44>
   194c0:	2901      	cmp	r1, #1
   194c2:	d001      	beq.n	194c8 <sym_DQHYQ3HZODNGY32MUV2QBXEWNH7ASP5VOSVL45Q+0x44>
   194c4:	2002      	movs	r0, #2
   194c6:	4770      	bx	lr
   194c8:	2001      	movs	r0, #1
   194ca:	4770      	bx	lr
   194cc:	f7ff bcb0 	b.w	18e30 <sym_47GVMLF7NXDJBYC2TPU2ES3ZL6CP4GIPWKYYWBI>

000194d0 <sym_2X6ZBBHQKFJV27I6OQZLD4IRAL5JANEGA5N34WA>:
   194d0:	2101      	movs	r1, #1
   194d2:	f7f8 bbe7 	b.w	11ca4 <sym_NCQ5WTBCV7DGPK3QI3SSY5XGKOI2SE3XFCTKQKY+0x74>

000194d6 <sym_GKUVQYGVTZ7DKWBNC3M5TXN4XZ4Q6TUJFSFOWBA>:
   194d6:	b510      	push	{r4, lr}
   194d8:	f002 fbc0 	bl	1bc5c <sym_ZG4AW57AAT4BVE2J2CU4KMCCWK46ENDRPKBYXEQ>
   194dc:	b118      	cbz	r0, 194e6 <sym_GKUVQYGVTZ7DKWBNC3M5TXN4XZ4Q6TUJFSFOWBA+0x10>
   194de:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
   194e2:	f7fd b971 	b.w	167c8 <sym_ZQHB3ANU2DANFLJZLZL5U4SPQ2ZDVUAHI35744Y>
   194e6:	20ff      	movs	r0, #255	; 0xff
   194e8:	bd10      	pop	{r4, pc}

000194ea <sym_QW6JOH7RCJIC2YFNJEURX5QNB5EIQT646EHIWEA>:
   194ea:	b510      	push	{r4, lr}
   194ec:	f7f8 fc22 	bl	11d34 <sym_NCQ5WTBCV7DGPK3QI3SSY5XGKOI2SE3XFCTKQKY+0x104>
   194f0:	2810      	cmp	r0, #16
   194f2:	d003      	beq.n	194fc <sym_QW6JOH7RCJIC2YFNJEURX5QNB5EIQT646EHIWEA+0x12>
   194f4:	f7f8 fbee 	bl	11cd4 <sym_NCQ5WTBCV7DGPK3QI3SSY5XGKOI2SE3XFCTKQKY+0xa4>
   194f8:	2810      	cmp	r0, #16
   194fa:	d100      	bne.n	194fe <sym_QW6JOH7RCJIC2YFNJEURX5QNB5EIQT646EHIWEA+0x14>
   194fc:	2008      	movs	r0, #8
   194fe:	bd10      	pop	{r4, pc}

00019500 <sym_G6YVAU2J75AOT237PVQAC5AEQMWPZ6OKE6ASZAI>:
   19500:	b510      	push	{r4, lr}
   19502:	f7f8 fc17 	bl	11d34 <sym_NCQ5WTBCV7DGPK3QI3SSY5XGKOI2SE3XFCTKQKY+0x104>
   19506:	2810      	cmp	r0, #16
   19508:	d007      	beq.n	1951a <sym_G6YVAU2J75AOT237PVQAC5AEQMWPZ6OKE6ASZAI+0x1a>
   1950a:	f7f8 fbe3 	bl	11cd4 <sym_NCQ5WTBCV7DGPK3QI3SSY5XGKOI2SE3XFCTKQKY+0xa4>
   1950e:	2810      	cmp	r0, #16
   19510:	d003      	beq.n	1951a <sym_G6YVAU2J75AOT237PVQAC5AEQMWPZ6OKE6ASZAI+0x1a>
   19512:	f7f8 fc57 	bl	11dc4 <sym_NCQ5WTBCV7DGPK3QI3SSY5XGKOI2SE3XFCTKQKY+0x194>
   19516:	2001      	movs	r0, #1
   19518:	bd10      	pop	{r4, pc}
   1951a:	2000      	movs	r0, #0
   1951c:	bd10      	pop	{r4, pc}

0001951e <sym_JAE5CJ34QIQM34DAKQFWDERFAUN5NXFJM57HRLY>:
   1951e:	b510      	push	{r4, lr}
   19520:	f7f8 fc08 	bl	11d34 <sym_NCQ5WTBCV7DGPK3QI3SSY5XGKOI2SE3XFCTKQKY+0x104>
   19524:	2810      	cmp	r0, #16
   19526:	d003      	beq.n	19530 <sym_JAE5CJ34QIQM34DAKQFWDERFAUN5NXFJM57HRLY+0x12>
   19528:	f7f8 fc94 	bl	11e54 <sym_NCQ5WTBCV7DGPK3QI3SSY5XGKOI2SE3XFCTKQKY+0x224>
   1952c:	2001      	movs	r0, #1
   1952e:	bd10      	pop	{r4, pc}
   19530:	2000      	movs	r0, #0
   19532:	bd10      	pop	{r4, pc}

00019534 <sym_L64WJ6W52HQBFQCTPO5LHELOWQEJNMIWLQKG6JY>:
   19534:	b570      	push	{r4, r5, r6, lr}
   19536:	460e      	mov	r6, r1
   19538:	b08c      	sub	sp, #48	; 0x30
   1953a:	4614      	mov	r4, r2
   1953c:	4601      	mov	r1, r0
   1953e:	461d      	mov	r5, r3
   19540:	2210      	movs	r2, #16
   19542:	4668      	mov	r0, sp
   19544:	f000 f91a 	bl	1977c <sym_C5MZWIO7BXLJIO65K7CGSHP3SLST2VORSHVBOVI>
   19548:	2210      	movs	r2, #16
   1954a:	4631      	mov	r1, r6
   1954c:	a804      	add	r0, sp, #16
   1954e:	f000 f915 	bl	1977c <sym_C5MZWIO7BXLJIO65K7CGSHP3SLST2VORSHVBOVI>
   19552:	4668      	mov	r0, sp
   19554:	f7ff ff3a 	bl	193cc <sym_GZE6QJRFTCG2MERGOKENHWFRYSCC5S3WEXUU47A>
   19558:	a908      	add	r1, sp, #32
   1955a:	f04f 0210 	mov.w	r2, #16
   1955e:	4628      	mov	r0, r5
   19560:	b11c      	cbz	r4, 1956a <sym_L64WJ6W52HQBFQCTPO5LHELOWQEJNMIWLQKG6JY+0x36>
   19562:	f000 f90b 	bl	1977c <sym_C5MZWIO7BXLJIO65K7CGSHP3SLST2VORSHVBOVI>
   19566:	b00c      	add	sp, #48	; 0x30
   19568:	bd70      	pop	{r4, r5, r6, pc}
   1956a:	f7fe fdaa 	bl	180c2 <sym_DQONLUECJTIEYFOFJXXAPJO4POIAJKJNKBGVN5A>
   1956e:	e7fa      	b.n	19566 <sym_L64WJ6W52HQBFQCTPO5LHELOWQEJNMIWLQKG6JY+0x32>

00019570 <sym_UHWWEFDYCEMO6BV2Q3GVLMFC37EIDJEWGQC2XUA>:
   19570:	b510      	push	{r4, lr}
   19572:	460c      	mov	r4, r1
   19574:	2100      	movs	r1, #0
   19576:	f7ff fdb8 	bl	190ea <sym_5X75WALYYBUWN4XT5LYOZBIGSZHVNFKF5J4CSQI>
   1957a:	6060      	str	r0, [r4, #4]
   1957c:	b118      	cbz	r0, 19586 <sym_UHWWEFDYCEMO6BV2Q3GVLMFC37EIDJEWGQC2XUA+0x16>
   1957e:	2001      	movs	r0, #1
   19580:	7020      	strb	r0, [r4, #0]
   19582:	2000      	movs	r0, #0
   19584:	bd10      	pop	{r4, pc}
   19586:	2002      	movs	r0, #2
   19588:	bd10      	pop	{r4, pc}

0001958a <sym_3GY4TYJRRJL4WNFV6XN3ATYT4MIF4FYTN3S33RI>:
   1958a:	f240 41e2 	movw	r1, #1250	; 0x4e2
   1958e:	4348      	muls	r0, r1
   19590:	4770      	bx	lr

00019592 <sym_DSAIJDVMFSSNYDQYP4G3W4ZBYTG4PAWPSVOBJ2Y>:
   19592:	f240 41e2 	movw	r1, #1250	; 0x4e2
   19596:	fbb0 f0f1 	udiv	r0, r0, r1
   1959a:	b280      	uxth	r0, r0
   1959c:	4770      	bx	lr

0001959e <sym_75VOI5ZNFW3OXMHUCY2QF6IZX2BBZSQKA7XVCPQ>:
   1959e:	b570      	push	{r4, r5, r6, lr}
   195a0:	4604      	mov	r4, r0
   195a2:	4290      	cmp	r0, r2
   195a4:	d20b      	bcs.n	195be <sym_75VOI5ZNFW3OXMHUCY2QF6IZX2BBZSQKA7XVCPQ+0x20>
   195a6:	1b10      	subs	r0, r2, r4
   195a8:	2864      	cmp	r0, #100	; 0x64
   195aa:	d200      	bcs.n	195ae <sym_75VOI5ZNFW3OXMHUCY2QF6IZX2BBZSQKA7XVCPQ+0x10>
   195ac:	2064      	movs	r0, #100	; 0x64
   195ae:	1825      	adds	r5, r4, r0
   195b0:	428d      	cmp	r5, r1
   195b2:	d803      	bhi.n	195bc <sym_75VOI5ZNFW3OXMHUCY2QF6IZX2BBZSQKA7XVCPQ+0x1e>
   195b4:	2104      	movs	r1, #4
   195b6:	f7f4 f84d 	bl	d654 <sym_QWOE5H22ZADGJX5JSROW7BOI32Z6PPEEJCISNOQ>
   195ba:	b108      	cbz	r0, 195c0 <sym_75VOI5ZNFW3OXMHUCY2QF6IZX2BBZSQKA7XVCPQ+0x22>
   195bc:	4620      	mov	r0, r4
   195be:	bd70      	pop	{r4, r5, r6, pc}
   195c0:	4628      	mov	r0, r5
   195c2:	bd70      	pop	{r4, r5, r6, pc}

000195c4 <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I>:
   195c4:	b510      	push	{r4, lr}
   195c6:	f1a2 030f 	sub.w	r3, r2, #15
   195ca:	290c      	cmp	r1, #12
   195cc:	d244      	bcs.n	19658 <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I+0x94>
   195ce:	e8df f001 	tbb	[pc, r1]
   195d2:	0806      	.short	0x0806
   195d4:	1815120d 	.word	0x1815120d
   195d8:	4127241c 	.word	0x4127241c
   195dc:	312a      	.short	0x312a
   195de:	b3c2      	cbz	r2, 19652 <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I+0x8e>
   195e0:	e03a      	b.n	19658 <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I+0x94>
   195e2:	2a07      	cmp	r2, #7
   195e4:	d03a      	beq.n	1965c <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I+0x98>
   195e6:	2a08      	cmp	r2, #8
   195e8:	d038      	beq.n	1965c <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I+0x98>
   195ea:	e035      	b.n	19658 <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I+0x94>
   195ec:	2a0c      	cmp	r2, #12
   195ee:	d035      	beq.n	1965c <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I+0x98>
   195f0:	2a0b      	cmp	r2, #11
   195f2:	d033      	beq.n	1965c <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I+0x98>
   195f4:	e030      	b.n	19658 <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I+0x94>
   195f6:	2a0d      	cmp	r2, #13
   195f8:	d030      	beq.n	1965c <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I+0x98>
   195fa:	e02d      	b.n	19658 <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I+0x94>
   195fc:	2b0c      	cmp	r3, #12
   195fe:	d92d      	bls.n	1965c <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I+0x98>
   19600:	e02a      	b.n	19658 <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I+0x94>
   19602:	3a10      	subs	r2, #16
   19604:	2a0b      	cmp	r2, #11
   19606:	d929      	bls.n	1965c <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I+0x98>
   19608:	e026      	b.n	19658 <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I+0x94>
   1960a:	2b03      	cmp	r3, #3
   1960c:	d926      	bls.n	1965c <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I+0x98>
   1960e:	f890 0044 	ldrb.w	r0, [r0, #68]	; 0x44
   19612:	b308      	cbz	r0, 19658 <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I+0x94>
   19614:	2a1b      	cmp	r2, #27
   19616:	d921      	bls.n	1965c <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I+0x98>
   19618:	e01e      	b.n	19658 <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I+0x94>
   1961a:	2a04      	cmp	r2, #4
   1961c:	d01e      	beq.n	1965c <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I+0x98>
   1961e:	e01b      	b.n	19658 <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I+0x94>
   19620:	2a06      	cmp	r2, #6
   19622:	d01b      	beq.n	1965c <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I+0x98>
   19624:	e018      	b.n	19658 <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I+0x94>
   19626:	2a1c      	cmp	r2, #28
   19628:	d018      	beq.n	1965c <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I+0x98>
   1962a:	2a1d      	cmp	r2, #29
   1962c:	d016      	beq.n	1965c <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I+0x98>
   1962e:	2a1e      	cmp	r2, #30
   19630:	d014      	beq.n	1965c <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I+0x98>
   19632:	e011      	b.n	19658 <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I+0x94>
   19634:	2a1f      	cmp	r2, #31
   19636:	d011      	beq.n	1965c <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I+0x98>
   19638:	2a20      	cmp	r2, #32
   1963a:	d00f      	beq.n	1965c <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I+0x98>
   1963c:	2a21      	cmp	r2, #33	; 0x21
   1963e:	d00d      	beq.n	1965c <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I+0x98>
   19640:	2a22      	cmp	r2, #34	; 0x22
   19642:	d00b      	beq.n	1965c <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I+0x98>
   19644:	2a23      	cmp	r2, #35	; 0x23
   19646:	d009      	beq.n	1965c <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I+0x98>
   19648:	2a24      	cmp	r2, #36	; 0x24
   1964a:	d007      	beq.n	1965c <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I+0x98>
   1964c:	2a26      	cmp	r2, #38	; 0x26
   1964e:	d005      	beq.n	1965c <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I+0x98>
   19650:	e002      	b.n	19658 <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I+0x94>
   19652:	e003      	b.n	1965c <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I+0x98>
   19654:	2a0e      	cmp	r2, #14
   19656:	d001      	beq.n	1965c <sym_76SF2THVWBBVUHDFLIXMTXOYE2LFAIMVFAFT26I+0x98>
   19658:	2000      	movs	r0, #0
   1965a:	bd10      	pop	{r4, pc}
   1965c:	2001      	movs	r0, #1
   1965e:	bd10      	pop	{r4, pc}

00019660 <sym_J22YCCWNUNOSXHAJQUUQAO7YZP2SNXLIWISZVHI>:
   19660:	280c      	cmp	r0, #12
   19662:	d013      	beq.n	1968c <sym_J22YCCWNUNOSXHAJQUUQAO7YZP2SNXLIWISZVHI+0x2c>
   19664:	280b      	cmp	r0, #11
   19666:	d011      	beq.n	1968c <sym_J22YCCWNUNOSXHAJQUUQAO7YZP2SNXLIWISZVHI+0x2c>
   19668:	280d      	cmp	r0, #13
   1966a:	d00f      	beq.n	1968c <sym_J22YCCWNUNOSXHAJQUUQAO7YZP2SNXLIWISZVHI+0x2c>
   1966c:	281f      	cmp	r0, #31
   1966e:	d00d      	beq.n	1968c <sym_J22YCCWNUNOSXHAJQUUQAO7YZP2SNXLIWISZVHI+0x2c>
   19670:	2820      	cmp	r0, #32
   19672:	d00b      	beq.n	1968c <sym_J22YCCWNUNOSXHAJQUUQAO7YZP2SNXLIWISZVHI+0x2c>
   19674:	2821      	cmp	r0, #33	; 0x21
   19676:	d009      	beq.n	1968c <sym_J22YCCWNUNOSXHAJQUUQAO7YZP2SNXLIWISZVHI+0x2c>
   19678:	2822      	cmp	r0, #34	; 0x22
   1967a:	d007      	beq.n	1968c <sym_J22YCCWNUNOSXHAJQUUQAO7YZP2SNXLIWISZVHI+0x2c>
   1967c:	2823      	cmp	r0, #35	; 0x23
   1967e:	d005      	beq.n	1968c <sym_J22YCCWNUNOSXHAJQUUQAO7YZP2SNXLIWISZVHI+0x2c>
   19680:	2824      	cmp	r0, #36	; 0x24
   19682:	d003      	beq.n	1968c <sym_J22YCCWNUNOSXHAJQUUQAO7YZP2SNXLIWISZVHI+0x2c>
   19684:	2826      	cmp	r0, #38	; 0x26
   19686:	d001      	beq.n	1968c <sym_J22YCCWNUNOSXHAJQUUQAO7YZP2SNXLIWISZVHI+0x2c>
   19688:	2000      	movs	r0, #0
   1968a:	4770      	bx	lr
   1968c:	2001      	movs	r0, #1
   1968e:	4770      	bx	lr

00019690 <sym_CMGYAOMYUJOSH7VMLD3ENK3VLSIPR3DVYN2F44Y>:
   19690:	f011 0f0c 	tst.w	r1, #12
   19694:	d016      	beq.n	196c4 <sym_CMGYAOMYUJOSH7VMLD3ENK3VLSIPR3DVYN2F44Y+0x34>
   19696:	074a      	lsls	r2, r1, #29
   19698:	f44f 7116 	mov.w	r1, #600	; 0x258
   1969c:	2a00      	cmp	r2, #0
   1969e:	da02      	bge.n	196a6 <sym_CMGYAOMYUJOSH7VMLD3ENK3VLSIPR3DVYN2F44Y+0x16>
   196a0:	f04f 0210 	mov.w	r2, #16
   196a4:	e001      	b.n	196aa <sym_CMGYAOMYUJOSH7VMLD3ENK3VLSIPR3DVYN2F44Y+0x1a>
   196a6:	f04f 0240 	mov.w	r2, #64	; 0x40
   196aa:	da01      	bge.n	196b0 <sym_CMGYAOMYUJOSH7VMLD3ENK3VLSIPR3DVYN2F44Y+0x20>
   196ac:	f04f 0196 	mov.w	r1, #150	; 0x96
   196b0:	f501 71bc 	add.w	r1, r1, #376	; 0x178
   196b4:	eba0 0301 	sub.w	r3, r0, r1
   196b8:	4288      	cmp	r0, r1
   196ba:	d910      	bls.n	196de <sym_CMGYAOMYUJOSH7VMLD3ENK3VLSIPR3DVYN2F44Y+0x4e>
   196bc:	fb93 f0f2 	sdiv	r0, r3, r2
   196c0:	b280      	uxth	r0, r0
   196c2:	4770      	bx	lr
   196c4:	2902      	cmp	r1, #2
   196c6:	d002      	beq.n	196ce <sym_CMGYAOMYUJOSH7VMLD3ENK3VLSIPR3DVYN2F44Y+0x3e>
   196c8:	2870      	cmp	r0, #112	; 0x70
   196ca:	d80a      	bhi.n	196e2 <sym_CMGYAOMYUJOSH7VMLD3ENK3VLSIPR3DVYN2F44Y+0x52>
   196cc:	e007      	b.n	196de <sym_CMGYAOMYUJOSH7VMLD3ENK3VLSIPR3DVYN2F44Y+0x4e>
   196ce:	283c      	cmp	r0, #60	; 0x3c
   196d0:	d905      	bls.n	196de <sym_CMGYAOMYUJOSH7VMLD3ENK3VLSIPR3DVYN2F44Y+0x4e>
   196d2:	383c      	subs	r0, #60	; 0x3c
   196d4:	17c1      	asrs	r1, r0, #31
   196d6:	eb00 7091 	add.w	r0, r0, r1, lsr #30
   196da:	1080      	asrs	r0, r0, #2
   196dc:	e7f0      	b.n	196c0 <sym_CMGYAOMYUJOSH7VMLD3ENK3VLSIPR3DVYN2F44Y+0x30>
   196de:	2000      	movs	r0, #0
   196e0:	e7ee      	b.n	196c0 <sym_CMGYAOMYUJOSH7VMLD3ENK3VLSIPR3DVYN2F44Y+0x30>
   196e2:	3870      	subs	r0, #112	; 0x70
   196e4:	17c1      	asrs	r1, r0, #31
   196e6:	eb00 7051 	add.w	r0, r0, r1, lsr #29
   196ea:	10c0      	asrs	r0, r0, #3
   196ec:	e7e8      	b.n	196c0 <sym_CMGYAOMYUJOSH7VMLD3ENK3VLSIPR3DVYN2F44Y+0x30>

000196ee <sym_6NROXJNXJONASXBRH4ZGPEEQ42PSH3YLRTC74GQ>:
   196ee:	6809      	ldr	r1, [r1, #0]
   196f0:	f8c0 1066 	str.w	r1, [r0, #102]	; 0x66
   196f4:	4770      	bx	lr

000196f6 <sym_FRDCUWW6PTM2YTBQLG5XNT6WJGPFH2XWEMJXJRI>:
   196f6:	07c1      	lsls	r1, r0, #31
   196f8:	d001      	beq.n	196fe <sym_FRDCUWW6PTM2YTBQLG5XNT6WJGPFH2XWEMJXJRI+0x8>
   196fa:	2001      	movs	r0, #1
   196fc:	4770      	bx	lr
   196fe:	0781      	lsls	r1, r0, #30
   19700:	d501      	bpl.n	19706 <sym_FRDCUWW6PTM2YTBQLG5XNT6WJGPFH2XWEMJXJRI+0x10>
   19702:	2002      	movs	r0, #2
   19704:	4770      	bx	lr
   19706:	0740      	lsls	r0, r0, #29
   19708:	d501      	bpl.n	1970e <sym_FRDCUWW6PTM2YTBQLG5XNT6WJGPFH2XWEMJXJRI+0x18>
   1970a:	2008      	movs	r0, #8
   1970c:	4770      	bx	lr
   1970e:	2000      	movs	r0, #0
   19710:	4770      	bx	lr

00019712 <sym_QOK2KYWK62QNZBQRPK2GPAU2IEJXSELK32IAUUA>:
   19712:	b510      	push	{r4, lr}
   19714:	f640 12c4 	movw	r2, #2500	; 0x9c4
   19718:	2901      	cmp	r1, #1
   1971a:	d006      	beq.n	1972a <sym_QOK2KYWK62QNZBQRPK2GPAU2IEJXSELK32IAUUA+0x18>
   1971c:	2902      	cmp	r1, #2
   1971e:	d005      	beq.n	1972c <sym_QOK2KYWK62QNZBQRPK2GPAU2IEJXSELK32IAUUA+0x1a>
   19720:	f240 31c6 	movw	r1, #966	; 0x3c6
   19724:	2029      	movs	r0, #41	; 0x29
   19726:	f7f6 fc5d 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   1972a:	b108      	cbz	r0, 19730 <sym_QOK2KYWK62QNZBQRPK2GPAU2IEJXSELK32IAUUA+0x1e>
   1972c:	4610      	mov	r0, r2
   1972e:	bd10      	pop	{r4, pc}
   19730:	f240 40e2 	movw	r0, #1250	; 0x4e2
   19734:	bd10      	pop	{r4, pc}

00019736 <sym_K4XFYUFHWSS4WLYRDTKOJ7STOPYHBKAJBCXHBBY>:
   19736:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   1973a:	460c      	mov	r4, r1
   1973c:	4605      	mov	r5, r0
   1973e:	68c6      	ldr	r6, [r0, #12]
   19740:	f7f4 fba2 	bl	de88 <sym_CVH6S6LMSFPC2RM6I6LYWFRVOJUD3A6OCMG7AAI>
   19744:	b198      	cbz	r0, 1976e <sym_K4XFYUFHWSS4WLYRDTKOJ7STOPYHBKAJBCXHBBY+0x38>
   19746:	b1bc      	cbz	r4, 19778 <sym_K4XFYUFHWSS4WLYRDTKOJ7STOPYHBKAJBCXHBBY+0x42>
   19748:	4630      	mov	r0, r6
   1974a:	68e9      	ldr	r1, [r5, #12]
   1974c:	f7f4 f886 	bl	d85c <sym_VDVM4QLBTRUPEGCBUXIK25LH2KVQWBZXHRBYEFY>
   19750:	2800      	cmp	r0, #0
   19752:	dd11      	ble.n	19778 <sym_K4XFYUFHWSS4WLYRDTKOJ7STOPYHBKAJBCXHBBY+0x42>
   19754:	4420      	add	r0, r4
   19756:	1e40      	subs	r0, r0, #1
   19758:	fbb0 f7f4 	udiv	r7, r0, r4
   1975c:	fb07 f104 	mul.w	r1, r7, r4
   19760:	4630      	mov	r0, r6
   19762:	f7f4 f849 	bl	d7f8 <sym_2O2USXABBLL6KC7E5NJFOHR6JLZMSV4AU5ZYH3Q>
   19766:	60e8      	str	r0, [r5, #12]
   19768:	4638      	mov	r0, r7
   1976a:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
   1976e:	f240 214b 	movw	r1, #587	; 0x24b
   19772:	2029      	movs	r0, #41	; 0x29
   19774:	f7f6 fc36 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   19778:	2000      	movs	r0, #0
   1977a:	e7f6      	b.n	1976a <sym_K4XFYUFHWSS4WLYRDTKOJ7STOPYHBKAJBCXHBBY+0x34>

0001977c <sym_C5MZWIO7BXLJIO65K7CGSHP3SLST2VORSHVBOVI>:
   1977c:	b530      	push	{r4, r5, lr}
   1977e:	4613      	mov	r3, r2
   19780:	e006      	b.n	19790 <sym_C5MZWIO7BXLJIO65K7CGSHP3SLST2VORSHVBOVI+0x14>
   19782:	18cc      	adds	r4, r1, r3
   19784:	1ad5      	subs	r5, r2, r3
   19786:	f814 4c01 	ldrb.w	r4, [r4, #-1]
   1978a:	1e5b      	subs	r3, r3, #1
   1978c:	5544      	strb	r4, [r0, r5]
   1978e:	b2db      	uxtb	r3, r3
   19790:	2b00      	cmp	r3, #0
   19792:	d1f6      	bne.n	19782 <sym_C5MZWIO7BXLJIO65K7CGSHP3SLST2VORSHVBOVI+0x6>
   19794:	bd30      	pop	{r4, r5, pc}

00019796 <sym_ATHPLOWBGAIKG7V5SSPNEEN27AC3OGL2HEWE4II>:
   19796:	b538      	push	{r3, r4, r5, lr}
   19798:	4605      	mov	r5, r0
   1979a:	460c      	mov	r4, r1
   1979c:	4668      	mov	r0, sp
   1979e:	f7fd fd5f 	bl	17260 <sym_EZCFQXKGAFHY5HQVJOXWDLO45XWMEJQY5WUGZNI>
   197a2:	b310      	cbz	r0, 197ea <sym_ATHPLOWBGAIKG7V5SSPNEEN27AC3OGL2HEWE4II+0x54>
   197a4:	f99d 0000 	ldrsb.w	r0, [sp]
   197a8:	7260      	strb	r0, [r4, #9]
   197aa:	f894 1023 	ldrb.w	r1, [r4, #35]	; 0x23
   197ae:	72a1      	strb	r1, [r4, #10]
   197b0:	f994 100b 	ldrsb.w	r1, [r4, #11]
   197b4:	2200      	movs	r2, #0
   197b6:	1a41      	subs	r1, r0, r1
   197b8:	d500      	bpl.n	197bc <sym_ATHPLOWBGAIKG7V5SSPNEEN27AC3OGL2HEWE4II+0x26>
   197ba:	4249      	negs	r1, r1
   197bc:	f895 3027 	ldrb.w	r3, [r5, #39]	; 0x27
   197c0:	428b      	cmp	r3, r1
   197c2:	dc10      	bgt.n	197e6 <sym_ATHPLOWBGAIKG7V5SSPNEEN27AC3OGL2HEWE4II+0x50>
   197c4:	2bff      	cmp	r3, #255	; 0xff
   197c6:	d00e      	beq.n	197e6 <sym_ATHPLOWBGAIKG7V5SSPNEEN27AC3OGL2HEWE4II+0x50>
   197c8:	7b21      	ldrb	r1, [r4, #12]
   197ca:	1c49      	adds	r1, r1, #1
   197cc:	b2c9      	uxtb	r1, r1
   197ce:	7321      	strb	r1, [r4, #12]
   197d0:	f895 3028 	ldrb.w	r3, [r5, #40]	; 0x28
   197d4:	4299      	cmp	r1, r3
   197d6:	d802      	bhi.n	197de <sym_ATHPLOWBGAIKG7V5SSPNEEN27AC3OGL2HEWE4II+0x48>
   197d8:	7ae1      	ldrb	r1, [r4, #11]
   197da:	297f      	cmp	r1, #127	; 0x7f
   197dc:	d103      	bne.n	197e6 <sym_ATHPLOWBGAIKG7V5SSPNEEN27AC3OGL2HEWE4II+0x50>
   197de:	72e0      	strb	r0, [r4, #11]
   197e0:	2000      	movs	r0, #0
   197e2:	7320      	strb	r0, [r4, #12]
   197e4:	2201      	movs	r2, #1
   197e6:	4610      	mov	r0, r2
   197e8:	bd38      	pop	{r3, r4, r5, pc}
   197ea:	207f      	movs	r0, #127	; 0x7f
   197ec:	7260      	strb	r0, [r4, #9]
   197ee:	2000      	movs	r0, #0
   197f0:	bd38      	pop	{r3, r4, r5, pc}

000197f2 <sym_3LQGLF52CJLOKQOJSNFVLTD3CW6GGPJMARVGQNQ>:
   197f2:	2300      	movs	r3, #0
   197f4:	6283      	str	r3, [r0, #40]	; 0x28
   197f6:	8602      	strh	r2, [r0, #48]	; 0x30
   197f8:	f240 2371 	movw	r3, #625	; 0x271
   197fc:	435a      	muls	r2, r3
   197fe:	eb01 1202 	add.w	r2, r1, r2, lsl #4
   19802:	1e52      	subs	r2, r2, #1
   19804:	fbb2 f1f1 	udiv	r1, r2, r1
   19808:	62c1      	str	r1, [r0, #44]	; 0x2c
   1980a:	4770      	bx	lr

0001980c <sym_ZX776SCJSI3JTFST57XOZBXAMGDDC7FRRHZEJ7Q>:
   1980c:	e92d 5ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, ip, lr}
   19810:	4607      	mov	r7, r0
   19812:	4690      	mov	r8, r2
   19814:	468b      	mov	fp, r1
   19816:	2601      	movs	r6, #1
   19818:	4608      	mov	r0, r1
   1981a:	f000 f941 	bl	19aa0 <sym_GRRIKVTWBW2KWQ7YPR62UQBT5XVQYKO2LIWXODY>
   1981e:	4682      	mov	sl, r0
   19820:	4658      	mov	r0, fp
   19822:	f000 f949 	bl	19ab8 <sym_6HFAHFLWDMEYCQ4GR3OXMWUSK4H5E4C2QPT3NZA>
   19826:	4681      	mov	r9, r0
   19828:	f7ff ff65 	bl	196f6 <sym_FRDCUWW6PTM2YTBQLG5XNT6WJGPFH2XWEMJXJRI>
   1982c:	4604      	mov	r4, r0
   1982e:	4650      	mov	r0, sl
   19830:	f7ff ff61 	bl	196f6 <sym_FRDCUWW6PTM2YTBQLG5XNT6WJGPFH2XWEMJXJRI>
   19834:	4605      	mov	r5, r0
   19836:	ea54 0005 	orrs.w	r0, r4, r5
   1983a:	d100      	bne.n	1983e <sym_ZX776SCJSI3JTFST57XOZBXAMGDDC7FRRHZEJ7Q+0x32>
   1983c:	2600      	movs	r6, #0
   1983e:	f7fc ff4b 	bl	166d8 <sym_HA7EOSELAQYVMG5UXMJGQLLFEIRQPB7MNOSYOXQ>
   19842:	ea10 0f09 	tst.w	r0, r9
   19846:	d100      	bne.n	1984a <sym_ZX776SCJSI3JTFST57XOZBXAMGDDC7FRRHZEJ7Q+0x3e>
   19848:	2400      	movs	r4, #0
   1984a:	f7fc ff45 	bl	166d8 <sym_HA7EOSELAQYVMG5UXMJGQLLFEIRQPB7MNOSYOXQ>
   1984e:	ea10 0f0a 	tst.w	r0, sl
   19852:	d100      	bne.n	19856 <sym_ZX776SCJSI3JTFST57XOZBXAMGDDC7FRRHZEJ7Q+0x4a>
   19854:	2500      	movs	r5, #0
   19856:	f897 006a 	ldrb.w	r0, [r7, #106]	; 0x6a
   1985a:	42a0      	cmp	r0, r4
   1985c:	d100      	bne.n	19860 <sym_ZX776SCJSI3JTFST57XOZBXAMGDDC7FRRHZEJ7Q+0x54>
   1985e:	2400      	movs	r4, #0
   19860:	f888 4000 	strb.w	r4, [r8]
   19864:	f897 006b 	ldrb.w	r0, [r7, #107]	; 0x6b
   19868:	42a8      	cmp	r0, r5
   1986a:	d100      	bne.n	1986e <sym_ZX776SCJSI3JTFST57XOZBXAMGDDC7FRRHZEJ7Q+0x62>
   1986c:	2500      	movs	r5, #0
   1986e:	f888 5001 	strb.w	r5, [r8, #1]
   19872:	b974      	cbnz	r4, 19892 <sym_ZX776SCJSI3JTFST57XOZBXAMGDDC7FRRHZEJ7Q+0x86>
   19874:	b96d      	cbnz	r5, 19892 <sym_ZX776SCJSI3JTFST57XOZBXAMGDDC7FRRHZEJ7Q+0x86>
   19876:	4658      	mov	r0, fp
   19878:	f000 f91c 	bl	19ab4 <sym_VMI6LAIHFJODZECDSALRIOKPVGLRUJ6WTCP43FY>
   1987c:	f8b7 1074 	ldrh.w	r1, [r7, #116]	; 0x74
   19880:	1a40      	subs	r0, r0, r1
   19882:	b200      	sxth	r0, r0
   19884:	f647 71fe 	movw	r1, #32766	; 0x7ffe
   19888:	4288      	cmp	r0, r1
   1988a:	dc01      	bgt.n	19890 <sym_ZX776SCJSI3JTFST57XOZBXAMGDDC7FRRHZEJ7Q+0x84>
   1988c:	2800      	cmp	r0, #0
   1988e:	dc00      	bgt.n	19892 <sym_ZX776SCJSI3JTFST57XOZBXAMGDDC7FRRHZEJ7Q+0x86>
   19890:	2600      	movs	r6, #0
   19892:	4630      	mov	r0, r6
   19894:	e8bd 9ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, ip, pc}

00019898 <sym_5SQGEOI2QIBONU3LMZVAMW3SSGU24TVE57VDLBA>:
   19898:	f240 41e2 	movw	r1, #1250	; 0x4e2
   1989c:	4348      	muls	r0, r1
   1989e:	4770      	bx	lr

000198a0 <sym_NREHYZNNGMA6T4VUMP47EJMM5IU7BRHAZURXRLQ>:
   198a0:	f240 41e2 	movw	r1, #1250	; 0x4e2
   198a4:	fb10 f001 	smulbb	r0, r0, r1
   198a8:	4770      	bx	lr

000198aa <sym_35JWAFJL2IEYRDNORVIQ7BBAS7FQNUVOFCLQNSQ>:
   198aa:	b510      	push	{r4, lr}
   198ac:	2300      	movs	r3, #0
   198ae:	461a      	mov	r2, r3
   198b0:	e003      	b.n	198ba <sym_35JWAFJL2IEYRDNORVIQ7BBAS7FQNUVOFCLQNSQ+0x10>
   198b2:	5c84      	ldrb	r4, [r0, r2]
   198b4:	4323      	orrs	r3, r4
   198b6:	1c52      	adds	r2, r2, #1
   198b8:	b2d2      	uxtb	r2, r2
   198ba:	428a      	cmp	r2, r1
   198bc:	d3f9      	bcc.n	198b2 <sym_35JWAFJL2IEYRDNORVIQ7BBAS7FQNUVOFCLQNSQ+0x8>
   198be:	b10b      	cbz	r3, 198c4 <sym_35JWAFJL2IEYRDNORVIQ7BBAS7FQNUVOFCLQNSQ+0x1a>
   198c0:	2000      	movs	r0, #0
   198c2:	bd10      	pop	{r4, pc}
   198c4:	2001      	movs	r0, #1
   198c6:	bd10      	pop	{r4, pc}

000198c8 <sym_EMRT7PRPOJDVU5Z5ET5VJFU2CWFE2OMTIKS35RA>:
   198c8:	b510      	push	{r4, lr}
   198ca:	4604      	mov	r4, r0
   198cc:	f890 0020 	ldrb.w	r0, [r0, #32]
   198d0:	b108      	cbz	r0, 198d6 <sym_EMRT7PRPOJDVU5Z5ET5VJFU2CWFE2OMTIKS35RA+0xe>
   198d2:	2825      	cmp	r0, #37	; 0x25
   198d4:	d901      	bls.n	198da <sym_EMRT7PRPOJDVU5Z5ET5VJFU2CWFE2OMTIKS35RA+0x12>
   198d6:	2012      	movs	r0, #18
   198d8:	bd10      	pop	{r4, pc}
   198da:	b12a      	cbz	r2, 198e8 <sym_EMRT7PRPOJDVU5Z5ET5VJFU2CWFE2OMTIKS35RA+0x20>
   198dc:	7d60      	ldrb	r0, [r4, #21]
   198de:	b128      	cbz	r0, 198ec <sym_EMRT7PRPOJDVU5Z5ET5VJFU2CWFE2OMTIKS35RA+0x24>
   198e0:	2801      	cmp	r0, #1
   198e2:	d009      	beq.n	198f8 <sym_EMRT7PRPOJDVU5Z5ET5VJFU2CWFE2OMTIKS35RA+0x30>
   198e4:	201f      	movs	r0, #31
   198e6:	bd10      	pop	{r4, pc}
   198e8:	2000      	movs	r0, #0
   198ea:	bd10      	pop	{r4, pc}
   198ec:	4620      	mov	r0, r4
   198ee:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
   198f2:	4611      	mov	r1, r2
   198f4:	f7f8 bba2 	b.w	1203c <sym_KHCOV3Y476ESNIVYZPGAZMIYAIZNR3YMGCWNDEQ+0xa8>
   198f8:	88a2      	ldrh	r2, [r4, #4]
   198fa:	6909      	ldr	r1, [r1, #16]
   198fc:	f104 0015 	add.w	r0, r4, #21
   19900:	f7f8 fb48 	bl	11f94 <sym_KHCOV3Y476ESNIVYZPGAZMIYAIZNR3YMGCWNDEQ>
   19904:	f884 0023 	strb.w	r0, [r4, #35]	; 0x23
   19908:	e7ee      	b.n	198e8 <sym_EMRT7PRPOJDVU5Z5ET5VJFU2CWFE2OMTIKS35RA+0x20>

0001990a <sym_DGQRK6XVXAAPQDRCJOVOHOTQ47PE7QQ4MNBOW5I>:
   1990a:	b530      	push	{r4, r5, lr}
   1990c:	1c42      	adds	r2, r0, #1
   1990e:	428a      	cmp	r2, r1
   19910:	d004      	beq.n	1991c <sym_DGQRK6XVXAAPQDRCJOVOHOTQ47PE7QQ4MNBOW5I+0x12>
   19912:	680a      	ldr	r2, [r1, #0]
   19914:	f8c0 2001 	str.w	r2, [r0, #1]
   19918:	7909      	ldrb	r1, [r1, #4]
   1991a:	7141      	strb	r1, [r0, #5]
   1991c:	7941      	ldrb	r1, [r0, #5]
   1991e:	f001 011f 	and.w	r1, r1, #31
   19922:	7141      	strb	r1, [r0, #5]
   19924:	2100      	movs	r1, #0
   19926:	72c1      	strb	r1, [r0, #11]
   19928:	1843      	adds	r3, r0, r1
   1992a:	1c49      	adds	r1, r1, #1
   1992c:	785c      	ldrb	r4, [r3, #1]
   1992e:	b2c9      	uxtb	r1, r1
   19930:	f004 0201 	and.w	r2, r4, #1
   19934:	0864      	lsrs	r4, r4, #1
   19936:	f004 0501 	and.w	r5, r4, #1
   1993a:	4415      	add	r5, r2
   1993c:	0862      	lsrs	r2, r4, #1
   1993e:	f002 0401 	and.w	r4, r2, #1
   19942:	442c      	add	r4, r5
   19944:	0852      	lsrs	r2, r2, #1
   19946:	f002 0501 	and.w	r5, r2, #1
   1994a:	442c      	add	r4, r5
   1994c:	0852      	lsrs	r2, r2, #1
   1994e:	f002 0501 	and.w	r5, r2, #1
   19952:	442c      	add	r4, r5
   19954:	0852      	lsrs	r2, r2, #1
   19956:	f002 0501 	and.w	r5, r2, #1
   1995a:	442c      	add	r4, r5
   1995c:	0852      	lsrs	r2, r2, #1
   1995e:	f002 0501 	and.w	r5, r2, #1
   19962:	442c      	add	r4, r5
   19964:	eb04 0252 	add.w	r2, r4, r2, lsr #1
   19968:	719a      	strb	r2, [r3, #6]
   1996a:	7ac3      	ldrb	r3, [r0, #11]
   1996c:	2905      	cmp	r1, #5
   1996e:	441a      	add	r2, r3
   19970:	72c2      	strb	r2, [r0, #11]
   19972:	d3d9      	bcc.n	19928 <sym_DGQRK6XVXAAPQDRCJOVOHOTQ47PE7QQ4MNBOW5I+0x1e>
   19974:	bd30      	pop	{r4, r5, pc}
   19976:	b570      	push	{r4, r5, r6, lr}
   19978:	f8d0 201f 	ldr.w	r2, [r0, #31]
   1997c:	f890 3023 	ldrb.w	r3, [r0, #35]	; 0x23
   19980:	f012 0fff 	tst.w	r2, #255	; 0xff
   19984:	f023 031f 	bic.w	r3, r3, #31
   19988:	d108      	bne.n	1999c <sym_DGQRK6XVXAAPQDRCJOVOHOTQ47PE7QQ4MNBOW5I+0x92>
   1998a:	f3c2 2407 	ubfx	r4, r2, #8, #8
   1998e:	b92c      	cbnz	r4, 1999c <sym_DGQRK6XVXAAPQDRCJOVOHOTQ47PE7QQ4MNBOW5I+0x92>
   19990:	f3c2 4407 	ubfx	r4, r2, #16, #8
   19994:	b914      	cbnz	r4, 1999c <sym_DGQRK6XVXAAPQDRCJOVOHOTQ47PE7QQ4MNBOW5I+0x92>
   19996:	0e12      	lsrs	r2, r2, #24
   19998:	d100      	bne.n	1999c <sym_DGQRK6XVXAAPQDRCJOVOHOTQ47PE7QQ4MNBOW5I+0x92>
   1999a:	b35b      	cbz	r3, 199f4 <sym_DGQRK6XVXAAPQDRCJOVOHOTQ47PE7QQ4MNBOW5I+0xea>
   1999c:	f8b0 2019 	ldrh.w	r2, [r0, #25]
   199a0:	f8b0 501b 	ldrh.w	r5, [r0, #27]
   199a4:	f8b0 4017 	ldrh.w	r4, [r0, #23]
   199a8:	7d83      	ldrb	r3, [r0, #22]
   199aa:	b141      	cbz	r1, 199be <sym_DGQRK6XVXAAPQDRCJOVOHOTQ47PE7QQ4MNBOW5I+0xb4>
   199ac:	f5b2 6f50 	cmp.w	r2, #3328	; 0xd00
   199b0:	d905      	bls.n	199be <sym_DGQRK6XVXAAPQDRCJOVOHOTQ47PE7QQ4MNBOW5I+0xb4>
   199b2:	f640 5107 	movw	r1, #3335	; 0xd07
   199b6:	428a      	cmp	r2, r1
   199b8:	d801      	bhi.n	199be <sym_DGQRK6XVXAAPQDRCJOVOHOTQ47PE7QQ4MNBOW5I+0xb4>
   199ba:	2101      	movs	r1, #1
   199bc:	e000      	b.n	199c0 <sym_DGQRK6XVXAAPQDRCJOVOHOTQ47PE7QQ4MNBOW5I+0xb6>
   199be:	2100      	movs	r1, #0
   199c0:	7846      	ldrb	r6, [r0, #1]
   199c2:	2e22      	cmp	r6, #34	; 0x22
   199c4:	d116      	bne.n	199f4 <sym_DGQRK6XVXAAPQDRCJOVOHOTQ47PE7QQ4MNBOW5I+0xea>
   199c6:	b959      	cbnz	r1, 199e0 <sym_DGQRK6XVXAAPQDRCJOVOHOTQ47PE7QQ4MNBOW5I+0xd6>
   199c8:	1f91      	subs	r1, r2, #6
   199ca:	f640 467a 	movw	r6, #3194	; 0xc7a
   199ce:	42b1      	cmp	r1, r6
   199d0:	d810      	bhi.n	199f4 <sym_DGQRK6XVXAAPQDRCJOVOHOTQ47PE7QQ4MNBOW5I+0xea>
   199d2:	b17b      	cbz	r3, 199f4 <sym_DGQRK6XVXAAPQDRCJOVOHOTQ47PE7QQ4MNBOW5I+0xea>
   199d4:	2b08      	cmp	r3, #8
   199d6:	d80d      	bhi.n	199f4 <sym_DGQRK6XVXAAPQDRCJOVOHOTQ47PE7QQ4MNBOW5I+0xea>
   199d8:	4293      	cmp	r3, r2
   199da:	d20b      	bcs.n	199f4 <sym_DGQRK6XVXAAPQDRCJOVOHOTQ47PE7QQ4MNBOW5I+0xea>
   199dc:	4294      	cmp	r4, r2
   199de:	d809      	bhi.n	199f4 <sym_DGQRK6XVXAAPQDRCJOVOHOTQ47PE7QQ4MNBOW5I+0xea>
   199e0:	f5b5 7ffa 	cmp.w	r5, #500	; 0x1f4
   199e4:	d206      	bcs.n	199f4 <sym_DGQRK6XVXAAPQDRCJOVOHOTQ47PE7QQ4MNBOW5I+0xea>
   199e6:	f8b0 001d 	ldrh.w	r0, [r0, #29]
   199ea:	f5b0 6f48 	cmp.w	r0, #3200	; 0xc80
   199ee:	d801      	bhi.n	199f4 <sym_DGQRK6XVXAAPQDRCJOVOHOTQ47PE7QQ4MNBOW5I+0xea>
   199f0:	2001      	movs	r0, #1
   199f2:	bd70      	pop	{r4, r5, r6, pc}
   199f4:	2000      	movs	r0, #0
   199f6:	bd70      	pop	{r4, r5, r6, pc}

000199f8 <sym_SYUCVPKBWJVHVFRFN5N4446ZSHSJVKBYOSWHGGQ>:
   199f8:	b570      	push	{r4, r5, r6, lr}
   199fa:	f8b0 2007 	ldrh.w	r2, [r0, #7]
   199fe:	f8b0 5009 	ldrh.w	r5, [r0, #9]
   19a02:	f830 4f05 	ldrh.w	r4, [r0, #5]!
   19a06:	f810 3c01 	ldrb.w	r3, [r0, #-1]
   19a0a:	88c0      	ldrh	r0, [r0, #6]
   19a0c:	b131      	cbz	r1, 19a1c <sym_SYUCVPKBWJVHVFRFN5N4446ZSHSJVKBYOSWHGGQ+0x24>
   19a0e:	f5b2 6f50 	cmp.w	r2, #3328	; 0xd00
   19a12:	d903      	bls.n	19a1c <sym_SYUCVPKBWJVHVFRFN5N4446ZSHSJVKBYOSWHGGQ+0x24>
   19a14:	f640 5107 	movw	r1, #3335	; 0xd07
   19a18:	428a      	cmp	r2, r1
   19a1a:	d90b      	bls.n	19a34 <sym_SYUCVPKBWJVHVFRFN5N4446ZSHSJVKBYOSWHGGQ+0x3c>
   19a1c:	1f91      	subs	r1, r2, #6
   19a1e:	f640 467a 	movw	r6, #3194	; 0xc7a
   19a22:	42b1      	cmp	r1, r6
   19a24:	d80e      	bhi.n	19a44 <sym_SYUCVPKBWJVHVFRFN5N4446ZSHSJVKBYOSWHGGQ+0x4c>
   19a26:	b16b      	cbz	r3, 19a44 <sym_SYUCVPKBWJVHVFRFN5N4446ZSHSJVKBYOSWHGGQ+0x4c>
   19a28:	2b08      	cmp	r3, #8
   19a2a:	d80b      	bhi.n	19a44 <sym_SYUCVPKBWJVHVFRFN5N4446ZSHSJVKBYOSWHGGQ+0x4c>
   19a2c:	4293      	cmp	r3, r2
   19a2e:	d209      	bcs.n	19a44 <sym_SYUCVPKBWJVHVFRFN5N4446ZSHSJVKBYOSWHGGQ+0x4c>
   19a30:	4294      	cmp	r4, r2
   19a32:	d807      	bhi.n	19a44 <sym_SYUCVPKBWJVHVFRFN5N4446ZSHSJVKBYOSWHGGQ+0x4c>
   19a34:	f5b5 7ffa 	cmp.w	r5, #500	; 0x1f4
   19a38:	d204      	bcs.n	19a44 <sym_SYUCVPKBWJVHVFRFN5N4446ZSHSJVKBYOSWHGGQ+0x4c>
   19a3a:	f5b0 6f48 	cmp.w	r0, #3200	; 0xc80
   19a3e:	d801      	bhi.n	19a44 <sym_SYUCVPKBWJVHVFRFN5N4446ZSHSJVKBYOSWHGGQ+0x4c>
   19a40:	2001      	movs	r0, #1
   19a42:	bd70      	pop	{r4, r5, r6, pc}
   19a44:	2000      	movs	r0, #0
   19a46:	bd70      	pop	{r4, r5, r6, pc}

00019a48 <sym_Z4ZI42RGZMV4HNY7AR3E37XXZ7IMFK22Y6ETFMA>:
   19a48:	6842      	ldr	r2, [r0, #4]
   19a4a:	600a      	str	r2, [r1, #0]
   19a4c:	7a00      	ldrb	r0, [r0, #8]
   19a4e:	7108      	strb	r0, [r1, #4]
   19a50:	4770      	bx	lr

00019a52 <sym_WMWALCDSCSGIPZVRYNPCN3Z65BL7HB3ZVUDUXCQ>:
   19a52:	f8b0 0009 	ldrh.w	r0, [r0, #9]
   19a56:	4770      	bx	lr

00019a58 <sym_O2B23O5JYMOMMFH6X6KNGJ752KMNUHBQLRFJPCA>:
   19a58:	f8b0 0007 	ldrh.w	r0, [r0, #7]
   19a5c:	4770      	bx	lr

00019a5e <sym_GKNOWO7GMUO66Z63YGKTWG2BRIW6TPGP7PUQ2RQ>:
   19a5e:	f8b0 0009 	ldrh.w	r0, [r0, #9]
   19a62:	4770      	bx	lr

00019a64 <sym_CLMBK65KRQWY2JSWG7BYXAJVRACUXOCNFT2IPRY>:
   19a64:	f8b0 000b 	ldrh.w	r0, [r0, #11]
   19a68:	4770      	bx	lr

00019a6a <sym_RM2CYFWBBAMZ6QU7KT5244O7T6GTURMYRG2CBQQ>:
   19a6a:	8980      	ldrh	r0, [r0, #12]
   19a6c:	8008      	strh	r0, [r1, #0]
   19a6e:	4770      	bx	lr

00019a70 <sym_3TJYOSQOHQD2677U7JVMG6ZM2AEKI337QVGY7TA>:
   19a70:	f8d0 0016 	ldr.w	r0, [r0, #22]
   19a74:	6008      	str	r0, [r1, #0]
   19a76:	4770      	bx	lr

00019a78 <sym_GVKSQ3HVAAAYIHJ3KPHNCAN4HXAZB6BCZZN5T2Q>:
   19a78:	6842      	ldr	r2, [r0, #4]
   19a7a:	600a      	str	r2, [r1, #0]
   19a7c:	6880      	ldr	r0, [r0, #8]
   19a7e:	6048      	str	r0, [r1, #4]
   19a80:	4770      	bx	lr

00019a82 <sym_LSOEOXZGNVP5DB6ZYJ7WAAXWSU5HO7R25UQZZBQ>:
   19a82:	f850 2f0e 	ldr.w	r2, [r0, #14]!
   19a86:	600a      	str	r2, [r1, #0]
   19a88:	6840      	ldr	r0, [r0, #4]
   19a8a:	6048      	str	r0, [r1, #4]
   19a8c:	4770      	bx	lr

00019a8e <sym_MMYJZLVXCKMFPUNAECUW6DM3QIRIH47IIFXKCBY>:
   19a8e:	6842      	ldr	r2, [r0, #4]
   19a90:	600a      	str	r2, [r1, #0]
   19a92:	6880      	ldr	r0, [r0, #8]
   19a94:	6048      	str	r0, [r1, #4]
   19a96:	4770      	bx	lr

00019a98 <sym_66SPI42RVSYPTJAEZPQR5PX32WQ6ZUXVEH3D2OI>:
   19a98:	7800      	ldrb	r0, [r0, #0]
   19a9a:	f000 0003 	and.w	r0, r0, #3
   19a9e:	4770      	bx	lr

00019aa0 <sym_GRRIKVTWBW2KWQ7YPR62UQBT5XVQYKO2LIWXODY>:
   19aa0:	7900      	ldrb	r0, [r0, #4]
   19aa2:	4770      	bx	lr

00019aa4 <sym_AWXBPGMPTTTWF7DPZL5Q2JQ4QSDFRJFHKF3BIIQ>:
   19aa4:	8880      	ldrh	r0, [r0, #4]
   19aa6:	4770      	bx	lr

00019aa8 <sym_GPYTTEK2KDNR73G6ZAXHATMSQZASIEW24RTZFJA>:
   19aa8:	88c0      	ldrh	r0, [r0, #6]
   19aaa:	4770      	bx	lr

00019aac <sym_IR77N76GC2RMGAYGDAEPSAGD4DPXFGWMASI3OGY>:
   19aac:	8900      	ldrh	r0, [r0, #8]
   19aae:	4770      	bx	lr

00019ab0 <sym_WC6UZSDJDS7GHVUUG36QUD3XWMICRFA5JJX42VA>:
   19ab0:	8940      	ldrh	r0, [r0, #10]
   19ab2:	4770      	bx	lr

00019ab4 <sym_VMI6LAIHFJODZECDSALRIOKPVGLRUJ6WTCP43FY>:
   19ab4:	88c0      	ldrh	r0, [r0, #6]
   19ab6:	4770      	bx	lr

00019ab8 <sym_6HFAHFLWDMEYCQ4GR3OXMWUSK4H5E4C2QPT3NZA>:
   19ab8:	7940      	ldrb	r0, [r0, #5]
   19aba:	4770      	bx	lr

00019abc <sym_WRY64WR3RHFREREX3ZB66OLRGKHGDAUZMHJMBCI>:
   19abc:	7900      	ldrb	r0, [r0, #4]
   19abe:	4770      	bx	lr

00019ac0 <sym_FES4SNLGDB2HCH3XYZK52SHDPFDGL5NN3ARGNTY>:
   19ac0:	7900      	ldrb	r0, [r0, #4]
   19ac2:	4770      	bx	lr

00019ac4 <sym_XNOKOPU7R2ZL4VYDMQPD5QQ2YM2WYINLYLRQ4TI>:
   19ac4:	8901      	ldrh	r1, [r0, #8]
   19ac6:	291b      	cmp	r1, #27
   19ac8:	d30c      	bcc.n	19ae4 <sym_XNOKOPU7R2ZL4VYDMQPD5QQ2YM2WYINLYLRQ4TI+0x20>
   19aca:	8941      	ldrh	r1, [r0, #10]
   19acc:	f44f 72a4 	mov.w	r2, #328	; 0x148
   19ad0:	4291      	cmp	r1, r2
   19ad2:	d307      	bcc.n	19ae4 <sym_XNOKOPU7R2ZL4VYDMQPD5QQ2YM2WYINLYLRQ4TI+0x20>
   19ad4:	8881      	ldrh	r1, [r0, #4]
   19ad6:	291b      	cmp	r1, #27
   19ad8:	d304      	bcc.n	19ae4 <sym_XNOKOPU7R2ZL4VYDMQPD5QQ2YM2WYINLYLRQ4TI+0x20>
   19ada:	88c0      	ldrh	r0, [r0, #6]
   19adc:	4290      	cmp	r0, r2
   19ade:	d301      	bcc.n	19ae4 <sym_XNOKOPU7R2ZL4VYDMQPD5QQ2YM2WYINLYLRQ4TI+0x20>
   19ae0:	2001      	movs	r0, #1
   19ae2:	4770      	bx	lr
   19ae4:	2000      	movs	r0, #0
   19ae6:	4770      	bx	lr

00019ae8 <sym_Z7V4WMT2JDSQSNPCH2UEJH6H44L3L7UHMRIWAOA>:
   19ae8:	b510      	push	{r4, lr}
   19aea:	29fb      	cmp	r1, #251	; 0xfb
   19aec:	d904      	bls.n	19af8 <sym_Z7V4WMT2JDSQSNPCH2UEJH6H44L3L7UHMRIWAOA+0x10>
   19aee:	f44f 61af 	mov.w	r1, #1400	; 0x578
   19af2:	202a      	movs	r0, #42	; 0x2a
   19af4:	f7f6 fa76 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   19af8:	7041      	strb	r1, [r0, #1]
   19afa:	bd10      	pop	{r4, pc}

00019afc <sym_RPQNXSNTPADDKXP5RSAMGT6PEA6HJ6WJSJ5DQUA>:
   19afc:	7901      	ldrb	r1, [r0, #4]
   19afe:	0749      	lsls	r1, r1, #29
   19b00:	d004      	beq.n	19b0c <sym_RPQNXSNTPADDKXP5RSAMGT6PEA6HJ6WJSJ5DQUA+0x10>
   19b02:	7940      	ldrb	r0, [r0, #5]
   19b04:	0740      	lsls	r0, r0, #29
   19b06:	d001      	beq.n	19b0c <sym_RPQNXSNTPADDKXP5RSAMGT6PEA6HJ6WJSJ5DQUA+0x10>
   19b08:	2001      	movs	r0, #1
   19b0a:	4770      	bx	lr
   19b0c:	2000      	movs	r0, #0
   19b0e:	4770      	bx	lr

00019b10 <sym_V37KOABA26BNKOPPXCRMHM2FBYFAD7NU4IA7EIQ>:
   19b10:	7900      	ldrb	r0, [r0, #4]
   19b12:	4770      	bx	lr

00019b14 <sym_I6A5ME4L4BDSYALCIKK2V6NRQKRM5QI7WNBE2CA>:
   19b14:	7940      	ldrb	r0, [r0, #5]
   19b16:	4770      	bx	lr

00019b18 <sym_2AEWUZQ66QOZRZKHF7IFSSSWOGAXMPPQQH7267Y>:
   19b18:	7101      	strb	r1, [r0, #4]
   19b1a:	4770      	bx	lr

00019b1c <sym_AG7JDKFTDFANNIOBH4HEQO2XNU7V2OR3R525SOY>:
   19b1c:	7141      	strb	r1, [r0, #5]
   19b1e:	4770      	bx	lr

00019b20 <sym_KDG27CITYLRG66Y5P6H5BVIHPU5DAFDVHM7DSQA>:
   19b20:	b510      	push	{r4, lr}
   19b22:	2a1b      	cmp	r2, #27
   19b24:	d904      	bls.n	19b30 <sym_KDG27CITYLRG66Y5P6H5BVIHPU5DAFDVHM7DSQA+0x10>
   19b26:	f240 31df 	movw	r1, #991	; 0x3df
   19b2a:	202a      	movs	r0, #42	; 0x2a
   19b2c:	f7f6 fa5a 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   19b30:	7042      	strb	r2, [r0, #1]
   19b32:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
   19b36:	1cc0      	adds	r0, r0, #3
   19b38:	f7fe bac3 	b.w	180c2 <sym_DQONLUECJTIEYFOFJXXAPJO4POIAJKJNKBGVN5A>

00019b3c <sym_VUV5X4H4Y5BCHQYQ2OODYEDUWFHSSL4GLPT4S5Q>:
   19b3c:	6809      	ldr	r1, [r1, #0]
   19b3e:	60c1      	str	r1, [r0, #12]
   19b40:	4770      	bx	lr

00019b42 <sym_GACCOL6OK5AZZZEY5D5QPNSIBJI3JJRDH53DCCY>:
   19b42:	680a      	ldr	r2, [r1, #0]
   19b44:	6042      	str	r2, [r0, #4]
   19b46:	6849      	ldr	r1, [r1, #4]
   19b48:	6081      	str	r1, [r0, #8]
   19b4a:	4770      	bx	lr

00019b4c <sym_ALFHFCPCHQINI4F6NU6LJJP26B4M2FERQPHDBAI>:
   19b4c:	680a      	ldr	r2, [r1, #0]
   19b4e:	6042      	str	r2, [r0, #4]
   19b50:	6849      	ldr	r1, [r1, #4]
   19b52:	6081      	str	r1, [r0, #8]
   19b54:	4770      	bx	lr

00019b56 <sym_ATMVKJRU6FJAJXHYSHEXCCKRTDJACEACYJQFGVQ>:
   19b56:	680a      	ldr	r2, [r1, #0]
   19b58:	6042      	str	r2, [r0, #4]
   19b5a:	6849      	ldr	r1, [r1, #4]
   19b5c:	6081      	str	r1, [r0, #8]
   19b5e:	4770      	bx	lr

00019b60 <sym_KWWW3Q4Z6LMHA6EXR6CMFCOS3QXXZ636XUAHVBY>:
   19b60:	7802      	ldrb	r2, [r0, #0]
   19b62:	f001 0103 	and.w	r1, r1, #3
   19b66:	f022 0203 	bic.w	r2, r2, #3
   19b6a:	430a      	orrs	r2, r1
   19b6c:	7002      	strb	r2, [r0, #0]
   19b6e:	4770      	bx	lr

00019b70 <sym_5WASOMRPEYEGPJYIYCZL3MI6RFVOLW4PF3WQWXQ>:
   19b70:	7101      	strb	r1, [r0, #4]
   19b72:	0a09      	lsrs	r1, r1, #8
   19b74:	7141      	strb	r1, [r0, #5]
   19b76:	4770      	bx	lr

00019b78 <sym_65OGIL725U6FQPGLZMGDICIUHB5S2P2UG7UZGMY>:
   19b78:	7181      	strb	r1, [r0, #6]
   19b7a:	0a09      	lsrs	r1, r1, #8
   19b7c:	71c1      	strb	r1, [r0, #7]
   19b7e:	4770      	bx	lr

00019b80 <sym_DPBBMGOHRJRJWIFBTEHPLVVPOEIMHXK2HYFFW2A>:
   19b80:	7201      	strb	r1, [r0, #8]
   19b82:	0a09      	lsrs	r1, r1, #8
   19b84:	7241      	strb	r1, [r0, #9]
   19b86:	4770      	bx	lr

00019b88 <sym_F72ACBYKMJPI25JMH6PCTUEZPH6HMPJHM2HMJDY>:
   19b88:	7281      	strb	r1, [r0, #10]
   19b8a:	0a09      	lsrs	r1, r1, #8
   19b8c:	72c1      	strb	r1, [r0, #11]
   19b8e:	4770      	bx	lr

00019b90 <sym_7FFMBSDVRVZYH5XO7CHX33376QMIMFS3BQD5N7I>:
   19b90:	7802      	ldrb	r2, [r0, #0]
   19b92:	f002 020f 	and.w	r2, r2, #15
   19b96:	2a03      	cmp	r2, #3
   19b98:	d003      	beq.n	19ba2 <sym_7FFMBSDVRVZYH5XO7CHX33376QMIMFS3BQD5N7I+0x12>
   19b9a:	2a05      	cmp	r2, #5
   19b9c:	d104      	bne.n	19ba8 <sym_7FFMBSDVRVZYH5XO7CHX33376QMIMFS3BQD5N7I+0x18>
   19b9e:	f7ff beea 	b.w	19976 <sym_DGQRK6XVXAAPQDRCJOVOHOTQ47PE7QQ4MNBOW5I+0x6c>
   19ba2:	7840      	ldrb	r0, [r0, #1]
   19ba4:	280c      	cmp	r0, #12
   19ba6:	d001      	beq.n	19bac <sym_7FFMBSDVRVZYH5XO7CHX33376QMIMFS3BQD5N7I+0x1c>
   19ba8:	2000      	movs	r0, #0
   19baa:	4770      	bx	lr
   19bac:	2001      	movs	r0, #1
   19bae:	4770      	bx	lr

00019bb0 <sym_AIYUY22PH5CFYGFYYYX5TRDP6GAU3UXOBISKF2I>:
   19bb0:	b570      	push	{r4, r5, r6, lr}
   19bb2:	4614      	mov	r4, r2
   19bb4:	4605      	mov	r5, r0
   19bb6:	2a1f      	cmp	r2, #31
   19bb8:	d903      	bls.n	19bc2 <sym_AIYUY22PH5CFYGFYYYX5TRDP6GAU3UXOBISKF2I+0x12>
   19bba:	21b2      	movs	r1, #178	; 0xb2
   19bbc:	202a      	movs	r0, #42	; 0x2a
   19bbe:	f7f6 fa11 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   19bc2:	f105 0009 	add.w	r0, r5, #9
   19bc6:	f7fe fa7c 	bl	180c2 <sym_DQONLUECJTIEYFOFJXXAPJO4POIAJKJNKBGVN5A>
   19bca:	1da4      	adds	r4, r4, #6
   19bcc:	706c      	strb	r4, [r5, #1]
   19bce:	bd70      	pop	{r4, r5, r6, pc}

00019bd0 <sym_ZJ2REXSOGBKJNHWVNXMDASZYI7CQBWWO2RMVAVY>:
   19bd0:	b510      	push	{r4, lr}
   19bd2:	7802      	ldrb	r2, [r0, #0]
   19bd4:	f001 030f 	and.w	r3, r1, #15
   19bd8:	f022 020f 	bic.w	r2, r2, #15
   19bdc:	431a      	orrs	r2, r3
   19bde:	7002      	strb	r2, [r0, #0]
   19be0:	2907      	cmp	r1, #7
   19be2:	d20c      	bcs.n	19bfe <sym_ZJ2REXSOGBKJNHWVNXMDASZYI7CQBWWO2RMVAVY+0x2e>
   19be4:	e8df f001 	tbb	[pc, r1]
   19be8:	06040604 	.word	0x06040604
   19bec:	00040804 	.word	0x00040804
   19bf0:	2106      	movs	r1, #6
   19bf2:	e002      	b.n	19bfa <sym_ZJ2REXSOGBKJNHWVNXMDASZYI7CQBWWO2RMVAVY+0x2a>
   19bf4:	210c      	movs	r1, #12
   19bf6:	e000      	b.n	19bfa <sym_ZJ2REXSOGBKJNHWVNXMDASZYI7CQBWWO2RMVAVY+0x2a>
   19bf8:	2122      	movs	r1, #34	; 0x22
   19bfa:	7041      	strb	r1, [r0, #1]
   19bfc:	bd10      	pop	{r4, pc}
   19bfe:	216e      	movs	r1, #110	; 0x6e
   19c00:	202a      	movs	r0, #42	; 0x2a
   19c02:	f7f6 f9ef 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>

00019c06 <sym_6GC7CC2BUFLCMQVOZDACHKZEET4WUCXSLEMHSCY>:
   19c06:	680a      	ldr	r2, [r1, #0]
   19c08:	f840 2f09 	str.w	r2, [r0, #9]!
   19c0c:	8889      	ldrh	r1, [r1, #4]
   19c0e:	8081      	strh	r1, [r0, #4]
   19c10:	4770      	bx	lr

00019c12 <sym_6FJEZEEBKMCAKI6FMPGNQ7TUXYDPYPEPSNJFOMQ>:
   19c12:	7802      	ldrb	r2, [r0, #0]
   19c14:	f022 0280 	bic.w	r2, r2, #128	; 0x80
   19c18:	ea42 12c1 	orr.w	r2, r2, r1, lsl #7
   19c1c:	7002      	strb	r2, [r0, #0]
   19c1e:	4770      	bx	lr

00019c20 <sym_5JID42ESVW3PB7AVBNALO6R7DLTBIV3DUQMUPQY>:
   19c20:	680a      	ldr	r2, [r1, #0]
   19c22:	f840 2f03 	str.w	r2, [r0, #3]!
   19c26:	8889      	ldrh	r1, [r1, #4]
   19c28:	8081      	strh	r1, [r0, #4]
   19c2a:	4770      	bx	lr

00019c2c <sym_K5Q3WMSYKQOD5SDB35E6WH2TTH6JWICUFV7AXJA>:
   19c2c:	7802      	ldrb	r2, [r0, #0]
   19c2e:	2340      	movs	r3, #64	; 0x40
   19c30:	f022 0240 	bic.w	r2, r2, #64	; 0x40
   19c34:	ea03 1181 	and.w	r1, r3, r1, lsl #6
   19c38:	430a      	orrs	r2, r1
   19c3a:	7002      	strb	r2, [r0, #0]
   19c3c:	4770      	bx	lr

00019c3e <sym_MAMY3D3622JJLMFKLRQXSRTVOPUNWAAGSSCAVMY>:
   19c3e:	b570      	push	{r4, r5, r6, lr}
   19c40:	4614      	mov	r4, r2
   19c42:	4605      	mov	r5, r0
   19c44:	2a1f      	cmp	r2, #31
   19c46:	d903      	bls.n	19c50 <sym_MAMY3D3622JJLMFKLRQXSRTVOPUNWAAGSSCAVMY+0x12>
   19c48:	21d4      	movs	r1, #212	; 0xd4
   19c4a:	202a      	movs	r0, #42	; 0x2a
   19c4c:	f7f6 f9ca 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   19c50:	f105 0009 	add.w	r0, r5, #9
   19c54:	f7fe fa35 	bl	180c2 <sym_DQONLUECJTIEYFOFJXXAPJO4POIAJKJNKBGVN5A>
   19c58:	1da4      	adds	r4, r4, #6
   19c5a:	706c      	strb	r4, [r5, #1]
   19c5c:	bd70      	pop	{r4, r5, r6, pc}

00019c5e <sym_G7K5H2CRWCUUAX5LJNXCL36PP3OLK3XX7TBLE3I>:
   19c5e:	2101      	movs	r1, #1
   19c60:	f000 b853 	b.w	19d0a <sym_24AALTDC2IQ6VNWU2ALOY4V3RG5R2RARTUG4AZY+0xa6>

00019c64 <sym_24AALTDC2IQ6VNWU2ALOY4V3RG5R2RARTUG4AZY>:
   19c64:	6841      	ldr	r1, [r0, #4]
   19c66:	2200      	movs	r2, #0
   19c68:	f891 3102 	ldrb.w	r3, [r1, #258]	; 0x102
   19c6c:	2b00      	cmp	r3, #0
   19c6e:	d004      	beq.n	19c7a <sym_24AALTDC2IQ6VNWU2ALOY4V3RG5R2RARTUG4AZY+0x16>
   19c70:	f881 2102 	strb.w	r2, [r1, #258]	; 0x102
   19c74:	6840      	ldr	r0, [r0, #4]
   19c76:	f000 bc40 	b.w	1a4fa <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY>
   19c7a:	4770      	bx	lr
   19c7c:	e92d 41fc 	stmdb	sp!, {r2, r3, r4, r5, r6, r7, r8, lr}
   19c80:	460e      	mov	r6, r1
   19c82:	f5a0 417f 	sub.w	r1, r0, #65280	; 0xff00
   19c86:	4617      	mov	r7, r2
   19c88:	39ff      	subs	r1, #255	; 0xff
   19c8a:	d014      	beq.n	19cb6 <sym_24AALTDC2IQ6VNWU2ALOY4V3RG5R2RARTUG4AZY+0x52>
   19c8c:	8030      	strh	r0, [r6, #0]
   19c8e:	2100      	movs	r1, #0
   19c90:	7171      	strb	r1, [r6, #5]
   19c92:	f7f6 fdcf 	bl	10834 <sym_YNBBHT54WKEGUNVC6TSBMRGLF67VFWBOYEMKGTQ>
   19c96:	4604      	mov	r4, r0
   19c98:	f7ff f855 	bl	18d46 <sym_RZ3AO5KZJYCPFG5YW4CBZQF5SRGN3BPTEGBY47I>
   19c9c:	0005      	movs	r5, r0
   19c9e:	d00a      	beq.n	19cb6 <sym_24AALTDC2IQ6VNWU2ALOY4V3RG5R2RARTUG4AZY+0x52>
   19ca0:	4620      	mov	r0, r4
   19ca2:	4629      	mov	r1, r5
   19ca4:	aa01      	add	r2, sp, #4
   19ca6:	f7ff f871 	bl	18d8c <sym_DY52YMZFQPMDNFDSVZDQLPFIWKOSXIQIEKUVZNY>
   19caa:	8070      	strh	r0, [r6, #2]
   19cac:	b130      	cbz	r0, 19cbc <sym_24AALTDC2IQ6VNWU2ALOY4V3RG5R2RARTUG4AZY+0x58>
   19cae:	28fb      	cmp	r0, #251	; 0xfb
   19cb0:	d906      	bls.n	19cc0 <sym_24AALTDC2IQ6VNWU2ALOY4V3RG5R2RARTUG4AZY+0x5c>
   19cb2:	21c9      	movs	r1, #201	; 0xc9
   19cb4:	e026      	b.n	19d04 <sym_24AALTDC2IQ6VNWU2ALOY4V3RG5R2RARTUG4AZY+0xa0>
   19cb6:	2000      	movs	r0, #0
   19cb8:	e8bd 81fc 	ldmia.w	sp!, {r2, r3, r4, r5, r6, r7, r8, pc}
   19cbc:	21c8      	movs	r1, #200	; 0xc8
   19cbe:	e021      	b.n	19d04 <sym_24AALTDC2IQ6VNWU2ALOY4V3RG5R2RARTUG4AZY+0xa0>
   19cc0:	9801      	ldr	r0, [sp, #4]
   19cc2:	f7ff fee9 	bl	19a98 <sym_66SPI42RVSYPTJAEZPQR5PX32WQ6ZUXVEH3D2OI>
   19cc6:	2801      	cmp	r0, #1
   19cc8:	d003      	beq.n	19cd2 <sym_24AALTDC2IQ6VNWU2ALOY4V3RG5R2RARTUG4AZY+0x6e>
   19cca:	2802      	cmp	r0, #2
   19ccc:	d001      	beq.n	19cd2 <sym_24AALTDC2IQ6VNWU2ALOY4V3RG5R2RARTUG4AZY+0x6e>
   19cce:	21d8      	movs	r1, #216	; 0xd8
   19cd0:	e018      	b.n	19d04 <sym_24AALTDC2IQ6VNWU2ALOY4V3RG5R2RARTUG4AZY+0xa0>
   19cd2:	7130      	strb	r0, [r6, #4]
   19cd4:	4629      	mov	r1, r5
   19cd6:	8873      	ldrh	r3, [r6, #2]
   19cd8:	2503      	movs	r5, #3
   19cda:	4620      	mov	r0, r4
   19cdc:	463a      	mov	r2, r7
   19cde:	9500      	str	r5, [sp, #0]
   19ce0:	f7fe ff23 	bl	18b2a <sym_BZ7Z4RQ3DCP67RU5HKR6L76AI2EU62TP34WUI5Q>
   19ce4:	4620      	mov	r0, r4
   19ce6:	60b7      	str	r7, [r6, #8]
   19ce8:	f7fe ffdc 	bl	18ca4 <sym_Q4EW623JZHY67RB7U4Z2L2SMI5ENWIDFL23JZHQ>
   19cec:	b138      	cbz	r0, 19cfe <sym_24AALTDC2IQ6VNWU2ALOY4V3RG5R2RARTUG4AZY+0x9a>
   19cee:	2100      	movs	r1, #0
   19cf0:	4620      	mov	r0, r4
   19cf2:	460a      	mov	r2, r1
   19cf4:	f7ff f928 	bl	18f48 <sym_PTZ4EWNTFK5S5TZGCBNFETDF37P4DBX7VGM33II>
   19cf8:	b118      	cbz	r0, 19d02 <sym_24AALTDC2IQ6VNWU2ALOY4V3RG5R2RARTUG4AZY+0x9e>
   19cfa:	2001      	movs	r0, #1
   19cfc:	e7dc      	b.n	19cb8 <sym_24AALTDC2IQ6VNWU2ALOY4V3RG5R2RARTUG4AZY+0x54>
   19cfe:	21e8      	movs	r1, #232	; 0xe8
   19d00:	e000      	b.n	19d04 <sym_24AALTDC2IQ6VNWU2ALOY4V3RG5R2RARTUG4AZY+0xa0>
   19d02:	21ed      	movs	r1, #237	; 0xed
   19d04:	202b      	movs	r0, #43	; 0x2b
   19d06:	f7f6 f96d 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   19d0a:	e92d 41fc 	stmdb	sp!, {r2, r3, r4, r5, r6, r7, r8, lr}
   19d0e:	4604      	mov	r4, r0
   19d10:	460e      	mov	r6, r1
   19d12:	2000      	movs	r0, #0
   19d14:	f7f6 fb5e 	bl	103d4 <sym_XHE47EZYHONCPR22HUAZULMCALDJINMYREOFDEI>
   19d18:	4605      	mov	r5, r0
   19d1a:	2000      	movs	r0, #0
   19d1c:	b916      	cbnz	r6, 19d24 <sym_24AALTDC2IQ6VNWU2ALOY4V3RG5R2RARTUG4AZY+0xc0>
   19d1e:	2001      	movs	r0, #1
   19d20:	f7f6 fb58 	bl	103d4 <sym_XHE47EZYHONCPR22HUAZULMCALDJINMYREOFDEI>
   19d24:	2600      	movs	r6, #0
   19d26:	46b0      	mov	r8, r6
   19d28:	182f      	adds	r7, r5, r0
   19d2a:	e017      	b.n	19d5c <sym_24AALTDC2IQ6VNWU2ALOY4V3RG5R2RARTUG4AZY+0xf8>
   19d2c:	8820      	ldrh	r0, [r4, #0]
   19d2e:	1c40      	adds	r0, r0, #1
   19d30:	b280      	uxth	r0, r0
   19d32:	8020      	strh	r0, [r4, #0]
   19d34:	42b8      	cmp	r0, r7
   19d36:	d302      	bcc.n	19d3e <sym_24AALTDC2IQ6VNWU2ALOY4V3RG5R2RARTUG4AZY+0xda>
   19d38:	4640      	mov	r0, r8
   19d3a:	f8a4 8000 	strh.w	r8, [r4]
   19d3e:	b280      	uxth	r0, r0
   19d40:	42a8      	cmp	r0, r5
   19d42:	d304      	bcc.n	19d4e <sym_24AALTDC2IQ6VNWU2ALOY4V3RG5R2RARTUG4AZY+0xea>
   19d44:	42b8      	cmp	r0, r7
   19d46:	d202      	bcs.n	19d4e <sym_24AALTDC2IQ6VNWU2ALOY4V3RG5R2RARTUG4AZY+0xea>
   19d48:	2000      	movs	r0, #0
   19d4a:	e8bd 81fc 	ldmia.w	sp!, {r2, r3, r4, r5, r6, r7, r8, pc}
   19d4e:	4669      	mov	r1, sp
   19d50:	f7ff fc0e 	bl	19570 <sym_UHWWEFDYCEMO6BV2Q3GVLMFC37EIDJEWGQC2XUA>
   19d54:	2800      	cmp	r0, #0
   19d56:	d0f8      	beq.n	19d4a <sym_24AALTDC2IQ6VNWU2ALOY4V3RG5R2RARTUG4AZY+0xe6>
   19d58:	1c76      	adds	r6, r6, #1
   19d5a:	b2f6      	uxtb	r6, r6
   19d5c:	42b7      	cmp	r7, r6
   19d5e:	d8e5      	bhi.n	19d2c <sym_24AALTDC2IQ6VNWU2ALOY4V3RG5R2RARTUG4AZY+0xc8>
   19d60:	f64f 70ff 	movw	r0, #65535	; 0xffff
   19d64:	8020      	strh	r0, [r4, #0]
   19d66:	2012      	movs	r0, #18
   19d68:	e7ef      	b.n	19d4a <sym_24AALTDC2IQ6VNWU2ALOY4V3RG5R2RARTUG4AZY+0xe6>

00019d6a <sym_KQELUVJKUXDWI537IIFYFUVTNDSZOYYQ6RIVVLY>:
   19d6a:	b570      	push	{r4, r5, r6, lr}
   19d6c:	8050      	strh	r0, [r2, #2]
   19d6e:	890c      	ldrh	r4, [r1, #8]
   19d70:	8094      	strh	r4, [r2, #4]
   19d72:	898b      	ldrh	r3, [r1, #12]
   19d74:	80d3      	strh	r3, [r2, #6]
   19d76:	8948      	ldrh	r0, [r1, #10]
   19d78:	8110      	strh	r0, [r2, #8]
   19d7a:	89cd      	ldrh	r5, [r1, #14]
   19d7c:	8155      	strh	r5, [r2, #10]
   19d7e:	8dce      	ldrh	r6, [r1, #46]	; 0x2e
   19d80:	42ae      	cmp	r6, r5
   19d82:	d108      	bne.n	19d96 <sym_KQELUVJKUXDWI537IIFYFUVTNDSZOYYQ6RIVVLY+0x2c>
   19d84:	8d4d      	ldrh	r5, [r1, #42]	; 0x2a
   19d86:	4285      	cmp	r5, r0
   19d88:	d105      	bne.n	19d96 <sym_KQELUVJKUXDWI537IIFYFUVTNDSZOYYQ6RIVVLY+0x2c>
   19d8a:	8e0d      	ldrh	r5, [r1, #48]	; 0x30
   19d8c:	429d      	cmp	r5, r3
   19d8e:	d102      	bne.n	19d96 <sym_KQELUVJKUXDWI537IIFYFUVTNDSZOYYQ6RIVVLY+0x2c>
   19d90:	8d8b      	ldrh	r3, [r1, #44]	; 0x2c
   19d92:	42a3      	cmp	r3, r4
   19d94:	d001      	beq.n	19d9a <sym_KQELUVJKUXDWI537IIFYFUVTNDSZOYYQ6RIVVLY+0x30>
   19d96:	2301      	movs	r3, #1
   19d98:	e000      	b.n	19d9c <sym_KQELUVJKUXDWI537IIFYFUVTNDSZOYYQ6RIVVLY+0x32>
   19d9a:	2300      	movs	r3, #0
   19d9c:	7313      	strb	r3, [r2, #12]
   19d9e:	8548      	strh	r0, [r1, #42]	; 0x2a
   19da0:	8950      	ldrh	r0, [r2, #10]
   19da2:	85c8      	strh	r0, [r1, #46]	; 0x2e
   19da4:	8890      	ldrh	r0, [r2, #4]
   19da6:	8588      	strh	r0, [r1, #44]	; 0x2c
   19da8:	88d0      	ldrh	r0, [r2, #6]
   19daa:	8608      	strh	r0, [r1, #48]	; 0x30
   19dac:	2001      	movs	r0, #1
   19dae:	7010      	strb	r0, [r2, #0]
   19db0:	bd70      	pop	{r4, r5, r6, pc}

00019db2 <sym_436OKKOGR27QX7FMSZKYSEYLCMU4ZXR5RN4XUBY>:
   19db2:	b510      	push	{r4, lr}
   19db4:	888c      	ldrh	r4, [r1, #4]
   19db6:	890a      	ldrh	r2, [r1, #8]
   19db8:	884b      	ldrh	r3, [r1, #2]
   19dba:	88c9      	ldrh	r1, [r1, #6]
   19dbc:	f8a0 3048 	strh.w	r3, [r0, #72]	; 0x48
   19dc0:	f8a0 104c 	strh.w	r1, [r0, #76]	; 0x4c
   19dc4:	f8a0 404a 	strh.w	r4, [r0, #74]	; 0x4a
   19dc8:	f8a0 204e 	strh.w	r2, [r0, #78]	; 0x4e
   19dcc:	bd10      	pop	{r4, pc}

00019dce <sym_XRSFUVJVALTQXGE7INRI3M6HEEON3PEMDM73SDI>:
   19dce:	b570      	push	{r4, r5, r6, lr}
   19dd0:	4615      	mov	r5, r2
   19dd2:	460c      	mov	r4, r1
   19dd4:	f000 f8c7 	bl	19f66 <sym_FKGRLSJGPWDG44KYHTBA74A2ZDKPDUWGXHS3E2I+0x54>
   19dd8:	3096      	adds	r0, #150	; 0x96
   19dda:	4428      	add	r0, r5
   19ddc:	42a0      	cmp	r0, r4
   19dde:	d801      	bhi.n	19de4 <sym_XRSFUVJVALTQXGE7INRI3M6HEEON3PEMDM73SDI+0x16>
   19de0:	1a20      	subs	r0, r4, r0
   19de2:	bd70      	pop	{r4, r5, r6, pc}
   19de4:	2000      	movs	r0, #0
   19de6:	bd70      	pop	{r4, r5, r6, pc}

00019de8 <sym_IPYDOGNKVSD5CNASNRZPFKSG4XKU4ZG4SVERI7Q>:
   19de8:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
   19dec:	4604      	mov	r4, r0
   19dee:	8ec7      	ldrh	r7, [r0, #54]	; 0x36
   19df0:	8f46      	ldrh	r6, [r0, #58]	; 0x3a
   19df2:	f8b0 504c 	ldrh.w	r5, [r0, #76]	; 0x4c
   19df6:	f8b0 0040 	ldrh.w	r0, [r0, #64]	; 0x40
   19dfa:	4285      	cmp	r5, r0
   19dfc:	d300      	bcc.n	19e00 <sym_IPYDOGNKVSD5CNASNRZPFKSG4XKU4ZG4SVERI7Q+0x18>
   19dfe:	4605      	mov	r5, r0
   19e00:	4620      	mov	r0, r4
   19e02:	f894 106b 	ldrb.w	r1, [r4, #107]	; 0x6b
   19e06:	f000 f89e 	bl	19f46 <sym_FKGRLSJGPWDG44KYHTBA74A2ZDKPDUWGXHS3E2I+0x34>
   19e0a:	4601      	mov	r1, r0
   19e0c:	86e5      	strh	r5, [r4, #54]	; 0x36
   19e0e:	8761      	strh	r1, [r4, #58]	; 0x3a
   19e10:	8fa2      	ldrh	r2, [r4, #60]	; 0x3c
   19e12:	f104 002c 	add.w	r0, r4, #44	; 0x2c
   19e16:	8fe3      	ldrh	r3, [r4, #62]	; 0x3e
   19e18:	4680      	mov	r8, r0
   19e1a:	42aa      	cmp	r2, r5
   19e1c:	d200      	bcs.n	19e20 <sym_IPYDOGNKVSD5CNASNRZPFKSG4XKU4ZG4SVERI7Q+0x38>
   19e1e:	462a      	mov	r2, r5
   19e20:	428b      	cmp	r3, r1
   19e22:	d200      	bcs.n	19e26 <sym_IPYDOGNKVSD5CNASNRZPFKSG4XKU4ZG4SVERI7Q+0x3e>
   19e24:	460b      	mov	r3, r1
   19e26:	8202      	strh	r2, [r0, #16]
   19e28:	f8a8 3012 	strh.w	r3, [r8, #18]
   19e2c:	42bd      	cmp	r5, r7
   19e2e:	d101      	bne.n	19e34 <sym_IPYDOGNKVSD5CNASNRZPFKSG4XKU4ZG4SVERI7Q+0x4c>
   19e30:	42b1      	cmp	r1, r6
   19e32:	d001      	beq.n	19e38 <sym_IPYDOGNKVSD5CNASNRZPFKSG4XKU4ZG4SVERI7Q+0x50>
   19e34:	2001      	movs	r0, #1
   19e36:	e000      	b.n	19e3a <sym_IPYDOGNKVSD5CNASNRZPFKSG4XKU4ZG4SVERI7Q+0x52>
   19e38:	2000      	movs	r0, #0
   19e3a:	4681      	mov	r9, r0
   19e3c:	f8b4 5048 	ldrh.w	r5, [r4, #72]	; 0x48
   19e40:	f8b4 0042 	ldrh.w	r0, [r4, #66]	; 0x42
   19e44:	8ea7      	ldrh	r7, [r4, #52]	; 0x34
   19e46:	8f26      	ldrh	r6, [r4, #56]	; 0x38
   19e48:	4285      	cmp	r5, r0
   19e4a:	d300      	bcc.n	19e4e <sym_IPYDOGNKVSD5CNASNRZPFKSG4XKU4ZG4SVERI7Q+0x66>
   19e4c:	4605      	mov	r5, r0
   19e4e:	f894 106a 	ldrb.w	r1, [r4, #106]	; 0x6a
   19e52:	4620      	mov	r0, r4
   19e54:	f000 f87f 	bl	19f56 <sym_FKGRLSJGPWDG44KYHTBA74A2ZDKPDUWGXHS3E2I+0x44>
   19e58:	f894 1060 	ldrb.w	r1, [r4, #96]	; 0x60
   19e5c:	2902      	cmp	r1, #2
   19e5e:	d108      	bne.n	19e72 <sym_IPYDOGNKVSD5CNASNRZPFKSG4XKU4ZG4SVERI7Q+0x8a>
   19e60:	42af      	cmp	r7, r5
   19e62:	d200      	bcs.n	19e66 <sym_IPYDOGNKVSD5CNASNRZPFKSG4XKU4ZG4SVERI7Q+0x7e>
   19e64:	463d      	mov	r5, r7
   19e66:	4286      	cmp	r6, r0
   19e68:	d200      	bcs.n	19e6c <sym_IPYDOGNKVSD5CNASNRZPFKSG4XKU4ZG4SVERI7Q+0x84>
   19e6a:	4630      	mov	r0, r6
   19e6c:	2100      	movs	r1, #0
   19e6e:	f884 1060 	strb.w	r1, [r4, #96]	; 0x60
   19e72:	f8a8 5008 	strh.w	r5, [r8, #8]
   19e76:	f8a8 000c 	strh.w	r0, [r8, #12]
   19e7a:	42bd      	cmp	r5, r7
   19e7c:	d101      	bne.n	19e82 <sym_IPYDOGNKVSD5CNASNRZPFKSG4XKU4ZG4SVERI7Q+0x9a>
   19e7e:	42b0      	cmp	r0, r6
   19e80:	d001      	beq.n	19e86 <sym_IPYDOGNKVSD5CNASNRZPFKSG4XKU4ZG4SVERI7Q+0x9e>
   19e82:	2001      	movs	r0, #1
   19e84:	e000      	b.n	19e88 <sym_IPYDOGNKVSD5CNASNRZPFKSG4XKU4ZG4SVERI7Q+0xa0>
   19e86:	2000      	movs	r0, #0
   19e88:	ea40 0009 	orr.w	r0, r0, r9
   19e8c:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}

00019e90 <sym_2T6ENJKRE7MWBMC42J5L6S3EMUNPYUXCPAHD23A>:
   19e90:	6840      	ldr	r0, [r0, #4]
   19e92:	4770      	bx	lr

00019e94 <sym_EO2RG5OKHPJZIBYGTP56VVOSGXFYZ4DGV24KLDY>:
   19e94:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   19e98:	4616      	mov	r6, r2
   19e9a:	460f      	mov	r7, r1
   19e9c:	4604      	mov	r4, r0
   19e9e:	f000 f862 	bl	19f66 <sym_FKGRLSJGPWDG44KYHTBA74A2ZDKPDUWGXHS3E2I+0x54>
   19ea2:	4605      	mov	r5, r0
   19ea4:	463a      	mov	r2, r7
   19ea6:	68e1      	ldr	r1, [r4, #12]
   19ea8:	6ae0      	ldr	r0, [r4, #44]	; 0x2c
   19eaa:	f000 f847 	bl	19f3c <sym_FKGRLSJGPWDG44KYHTBA74A2ZDKPDUWGXHS3E2I+0x2a>
   19eae:	19a9      	adds	r1, r5, r6
   19eb0:	4281      	cmp	r1, r0
   19eb2:	d300      	bcc.n	19eb6 <sym_EO2RG5OKHPJZIBYGTP56VVOSGXFYZ4DGV24KLDY+0x22>
   19eb4:	4608      	mov	r0, r1
   19eb6:	6320      	str	r0, [r4, #48]	; 0x30
   19eb8:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}

00019ebc <sym_43VAZS4NQXUMOPHD7W7SYFZ3WJ6KGQYQH6UOYPQ>:
   19ebc:	221b      	movs	r2, #27
   19ebe:	8402      	strh	r2, [r0, #32]
   19ec0:	8382      	strh	r2, [r0, #28]
   19ec2:	82c2      	strh	r2, [r0, #22]
   19ec4:	8282      	strh	r2, [r0, #20]
   19ec6:	8142      	strh	r2, [r0, #10]
   19ec8:	8202      	strh	r2, [r0, #16]
   19eca:	8102      	strh	r2, [r0, #8]
   19ecc:	8542      	strh	r2, [r0, #42]	; 0x2a
   19ece:	8582      	strh	r2, [r0, #44]	; 0x2c
   19ed0:	8482      	strh	r2, [r0, #36]	; 0x24
   19ed2:	2900      	cmp	r1, #0
   19ed4:	d10a      	bne.n	19eec <sym_43VAZS4NQXUMOPHD7W7SYFZ3WJ6KGQYQH6UOYPQ+0x30>
   19ed6:	f44f 71a4 	mov.w	r1, #328	; 0x148
   19eda:	8441      	strh	r1, [r0, #34]	; 0x22
   19edc:	83c1      	strh	r1, [r0, #30]
   19ede:	8341      	strh	r1, [r0, #26]
   19ee0:	8301      	strh	r1, [r0, #24]
   19ee2:	81c1      	strh	r1, [r0, #14]
   19ee4:	8241      	strh	r1, [r0, #18]
   19ee6:	8181      	strh	r1, [r0, #12]
   19ee8:	85c1      	strh	r1, [r0, #46]	; 0x2e
   19eea:	8601      	strh	r1, [r0, #48]	; 0x30
   19eec:	4770      	bx	lr

00019eee <sym_NEHMDBQBGZXV6OFKIS4NBQDVMDAPMSPSGUQZB7A>:
   19eee:	6800      	ldr	r0, [r0, #0]
   19ef0:	f101 029c 	add.w	r2, r1, #156	; 0x9c
   19ef4:	4290      	cmp	r0, r2
   19ef6:	d903      	bls.n	19f00 <sym_NEHMDBQBGZXV6OFKIS4NBQDVMDAPMSPSGUQZB7A+0x12>
   19ef8:	1a40      	subs	r0, r0, r1
   19efa:	389c      	subs	r0, #156	; 0x9c
   19efc:	0840      	lsrs	r0, r0, #1
   19efe:	4770      	bx	lr
   19f00:	2000      	movs	r0, #0
   19f02:	4770      	bx	lr

00019f04 <sym_ONVPV2DV6OK6HG537JAHRS5B7G22RD24D2QGM5A>:
   19f04:	b510      	push	{r4, lr}
   19f06:	9c02      	ldr	r4, [sp, #8]
   19f08:	8281      	strh	r1, [r0, #20]
   19f0a:	82c2      	strh	r2, [r0, #22]
   19f0c:	8303      	strh	r3, [r0, #24]
   19f0e:	8344      	strh	r4, [r0, #26]
   19f10:	bd10      	pop	{r4, pc}

00019f12 <sym_FKGRLSJGPWDG44KYHTBA74A2ZDKPDUWGXHS3E2I>:
   19f12:	8050      	strh	r0, [r2, #2]
   19f14:	8a88      	ldrh	r0, [r1, #20]
   19f16:	8090      	strh	r0, [r2, #4]
   19f18:	8ac8      	ldrh	r0, [r1, #22]
   19f1a:	80d0      	strh	r0, [r2, #6]
   19f1c:	8b08      	ldrh	r0, [r1, #24]
   19f1e:	8110      	strh	r0, [r2, #8]
   19f20:	8b48      	ldrh	r0, [r1, #26]
   19f22:	8150      	strh	r0, [r2, #10]
   19f24:	2001      	movs	r0, #1
   19f26:	7010      	strb	r0, [r2, #0]
   19f28:	4770      	bx	lr
   19f2a:	2902      	cmp	r1, #2
   19f2c:	d003      	beq.n	19f36 <sym_FKGRLSJGPWDG44KYHTBA74A2ZDKPDUWGXHS3E2I+0x24>
   19f2e:	00c0      	lsls	r0, r0, #3
   19f30:	3070      	adds	r0, #112	; 0x70
   19f32:	b280      	uxth	r0, r0
   19f34:	4770      	bx	lr
   19f36:	0080      	lsls	r0, r0, #2
   19f38:	303c      	adds	r0, #60	; 0x3c
   19f3a:	e7fa      	b.n	19f32 <sym_FKGRLSJGPWDG44KYHTBA74A2ZDKPDUWGXHS3E2I+0x20>
   19f3c:	4288      	cmp	r0, r1
   19f3e:	d300      	bcc.n	19f42 <sym_FKGRLSJGPWDG44KYHTBA74A2ZDKPDUWGXHS3E2I+0x30>
   19f40:	4608      	mov	r0, r1
   19f42:	1a80      	subs	r0, r0, r2
   19f44:	4770      	bx	lr
   19f46:	f8b0 104e 	ldrh.w	r1, [r0, #78]	; 0x4e
   19f4a:	f8b0 0044 	ldrh.w	r0, [r0, #68]	; 0x44
   19f4e:	4281      	cmp	r1, r0
   19f50:	d200      	bcs.n	19f54 <sym_FKGRLSJGPWDG44KYHTBA74A2ZDKPDUWGXHS3E2I+0x42>
   19f52:	4608      	mov	r0, r1
   19f54:	4770      	bx	lr
   19f56:	f8b0 104a 	ldrh.w	r1, [r0, #74]	; 0x4a
   19f5a:	f8b0 0046 	ldrh.w	r0, [r0, #70]	; 0x46
   19f5e:	4281      	cmp	r1, r0
   19f60:	d200      	bcs.n	19f64 <sym_FKGRLSJGPWDG44KYHTBA74A2ZDKPDUWGXHS3E2I+0x52>
   19f62:	4608      	mov	r0, r1
   19f64:	4770      	bx	lr
   19f66:	2196      	movs	r1, #150	; 0x96
   19f68:	f890 306b 	ldrb.w	r3, [r0, #107]	; 0x6b
   19f6c:	f890 206a 	ldrb.w	r2, [r0, #106]	; 0x6a
   19f70:	f000 b800 	b.w	19f74 <sym_FKGRLSJGPWDG44KYHTBA74A2ZDKPDUWGXHS3E2I+0x62>
   19f74:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   19f78:	460d      	mov	r5, r1
   19f7a:	4606      	mov	r6, r0
   19f7c:	4698      	mov	r8, r3
   19f7e:	4617      	mov	r7, r2
   19f80:	8e80      	ldrh	r0, [r0, #52]	; 0x34
   19f82:	4611      	mov	r1, r2
   19f84:	f7ff ffd1 	bl	19f2a <sym_FKGRLSJGPWDG44KYHTBA74A2ZDKPDUWGXHS3E2I+0x18>
   19f88:	4604      	mov	r4, r0
   19f8a:	4639      	mov	r1, r7
   19f8c:	4630      	mov	r0, r6
   19f8e:	f7ff ffe2 	bl	19f56 <sym_FKGRLSJGPWDG44KYHTBA74A2ZDKPDUWGXHS3E2I+0x44>
   19f92:	42a0      	cmp	r0, r4
   19f94:	d200      	bcs.n	19f98 <sym_FKGRLSJGPWDG44KYHTBA74A2ZDKPDUWGXHS3E2I+0x86>
   19f96:	4604      	mov	r4, r0
   19f98:	8fb0      	ldrh	r0, [r6, #60]	; 0x3c
   19f9a:	4641      	mov	r1, r8
   19f9c:	f7ff ffc5 	bl	19f2a <sym_FKGRLSJGPWDG44KYHTBA74A2ZDKPDUWGXHS3E2I+0x18>
   19fa0:	4607      	mov	r7, r0
   19fa2:	4641      	mov	r1, r8
   19fa4:	4630      	mov	r0, r6
   19fa6:	f7ff ffce 	bl	19f46 <sym_FKGRLSJGPWDG44KYHTBA74A2ZDKPDUWGXHS3E2I+0x34>
   19faa:	42b8      	cmp	r0, r7
   19fac:	d300      	bcc.n	19fb0 <sym_FKGRLSJGPWDG44KYHTBA74A2ZDKPDUWGXHS3E2I+0x9e>
   19fae:	4638      	mov	r0, r7
   19fb0:	4420      	add	r0, r4
   19fb2:	4428      	add	r0, r5
   19fb4:	1d80      	adds	r0, r0, #6
   19fb6:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
   19fba:	2801      	cmp	r0, #1
   19fbc:	d102      	bne.n	19fc4 <sym_FKGRLSJGPWDG44KYHTBA74A2ZDKPDUWGXHS3E2I+0xb2>
   19fbe:	7948      	ldrb	r0, [r1, #5]
   19fc0:	0980      	lsrs	r0, r0, #6
   19fc2:	d001      	beq.n	19fc8 <sym_FKGRLSJGPWDG44KYHTBA74A2ZDKPDUWGXHS3E2I+0xb6>
   19fc4:	2000      	movs	r0, #0
   19fc6:	4770      	bx	lr
   19fc8:	2001      	movs	r0, #1
   19fca:	4770      	bx	lr
   19fcc:	2801      	cmp	r0, #1
   19fce:	d106      	bne.n	19fde <sym_FKGRLSJGPWDG44KYHTBA74A2ZDKPDUWGXHS3E2I+0xcc>
   19fd0:	7948      	ldrb	r0, [r1, #5]
   19fd2:	2101      	movs	r1, #1
   19fd4:	ebb1 1f90 	cmp.w	r1, r0, lsr #6
   19fd8:	d101      	bne.n	19fde <sym_FKGRLSJGPWDG44KYHTBA74A2ZDKPDUWGXHS3E2I+0xcc>
   19fda:	2001      	movs	r0, #1
   19fdc:	4770      	bx	lr
   19fde:	2000      	movs	r0, #0
   19fe0:	4770      	bx	lr
   19fe2:	2802      	cmp	r0, #2
   19fe4:	d003      	beq.n	19fee <sym_FKGRLSJGPWDG44KYHTBA74A2ZDKPDUWGXHS3E2I+0xdc>
   19fe6:	2803      	cmp	r0, #3
   19fe8:	d001      	beq.n	19fee <sym_FKGRLSJGPWDG44KYHTBA74A2ZDKPDUWGXHS3E2I+0xdc>
   19fea:	2000      	movs	r0, #0
   19fec:	4770      	bx	lr
   19fee:	2001      	movs	r0, #1
   19ff0:	4770      	bx	lr

00019ff2 <sym_NFQK2HO6DBYRYVUCFLRI766EKAAKCM57FJRRS5Y>:
   19ff2:	b510      	push	{r4, lr}
   19ff4:	4604      	mov	r4, r0
   19ff6:	7c00      	ldrb	r0, [r0, #16]
   19ff8:	f7ff fff3 	bl	19fe2 <sym_FKGRLSJGPWDG44KYHTBA74A2ZDKPDUWGXHS3E2I+0xd0>
   19ffc:	b148      	cbz	r0, 1a012 <sym_NFQK2HO6DBYRYVUCFLRI766EKAAKCM57FJRRS5Y+0x20>
   19ffe:	f894 004f 	ldrb.w	r0, [r4, #79]	; 0x4f
   1a002:	f104 0150 	add.w	r1, r4, #80	; 0x50
   1a006:	f7ff fa70 	bl	194ea <sym_QW6JOH7RCJIC2YFNJEURX5QNB5EIQT646EHIWEA>
   1a00a:	2808      	cmp	r0, #8
   1a00c:	d001      	beq.n	1a012 <sym_NFQK2HO6DBYRYVUCFLRI766EKAAKCM57FJRRS5Y+0x20>
   1a00e:	2001      	movs	r0, #1
   1a010:	bd10      	pop	{r4, pc}
   1a012:	7c20      	ldrb	r0, [r4, #16]
   1a014:	b118      	cbz	r0, 1a01e <sym_NFQK2HO6DBYRYVUCFLRI766EKAAKCM57FJRRS5Y+0x2c>
   1a016:	2802      	cmp	r0, #2
   1a018:	d001      	beq.n	1a01e <sym_NFQK2HO6DBYRYVUCFLRI766EKAAKCM57FJRRS5Y+0x2c>
   1a01a:	7de0      	ldrb	r0, [r4, #23]
   1a01c:	bd10      	pop	{r4, pc}
   1a01e:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
   1a022:	2000      	movs	r0, #0
   1a024:	f7f6 bf0a 	b.w	10e3c <sym_AO3U45UEGFLUPMT565ZR5UWUQUONF5AKILLCT3A>

0001a028 <sym_OAGVEJLAHKQB2YTTUDIS6TDHXZIVWZXKUMPIBHQ>:
   1a028:	b508      	push	{r3, lr}
   1a02a:	f890 1064 	ldrb.w	r1, [r0, #100]	; 0x64
   1a02e:	f88d 1000 	strb.w	r1, [sp]
   1a032:	9900      	ldr	r1, [sp, #0]
   1a034:	9100      	str	r1, [sp, #0]
   1a036:	f89d 1000 	ldrb.w	r1, [sp]
   1a03a:	b109      	cbz	r1, 1a040 <sym_OAGVEJLAHKQB2YTTUDIS6TDHXZIVWZXKUMPIBHQ+0x18>
   1a03c:	2001      	movs	r0, #1
   1a03e:	bd08      	pop	{r3, pc}
   1a040:	f890 0086 	ldrb.w	r0, [r0, #134]	; 0x86
   1a044:	f88d 0000 	strb.w	r0, [sp]
   1a048:	9800      	ldr	r0, [sp, #0]
   1a04a:	9000      	str	r0, [sp, #0]
   1a04c:	f89d 0000 	ldrb.w	r0, [sp]
   1a050:	2000      	movs	r0, #0
   1a052:	bd08      	pop	{r3, pc}

0001a054 <sym_2ORNMU44KG57RJ5GYPW4FCTEFWDXBHWXYAE3J6I>:
   1a054:	20ff      	movs	r0, #255	; 0xff
   1a056:	7008      	strb	r0, [r1, #0]
   1a058:	6ac8      	ldr	r0, [r1, #44]	; 0x2c
   1a05a:	f7ff b99c 	b.w	19396 <sym_SCCFLYV5KOPRJ5S7RGDC2KDSCCHMKXYC3EQIE6A>

0001a05e <sym_YA57TPZ3CLQ6C73TD2RIGTELUAMYOOAKHU5T7RQ>:
   1a05e:	b51c      	push	{r2, r3, r4, lr}
   1a060:	4604      	mov	r4, r0
   1a062:	22d4      	movs	r2, #212	; 0xd4
   1a064:	2100      	movs	r1, #0
   1a066:	f7fe f8a6 	bl	181b6 <sym_VSILKYHVQ5DVF6LG5MG267DQVA3A2XZQ6FSCLXA>
   1a06a:	20ff      	movs	r0, #255	; 0xff
   1a06c:	7020      	strb	r0, [r4, #0]
   1a06e:	207f      	movs	r0, #127	; 0x7f
   1a070:	f884 0026 	strb.w	r0, [r4, #38]	; 0x26
   1a074:	2013      	movs	r0, #19
   1a076:	8060      	strh	r0, [r4, #2]
   1a078:	f7f6 fc9c 	bl	109b4 <sym_47U6MZ7GC5PU2CVEGYFSZO6JE3OMJD4DVLRAUZQ>
   1a07c:	4601      	mov	r1, r0
   1a07e:	62e0      	str	r0, [r4, #44]	; 0x2c
   1a080:	2200      	movs	r2, #0
   1a082:	4668      	mov	r0, sp
   1a084:	f7ff f8f2 	bl	1926c <sym_YBUOIVJGKD57C5J4XCQFOKF4I5XT74ICLDOCNXA>
   1a088:	2200      	movs	r2, #0
   1a08a:	2101      	movs	r1, #1
   1a08c:	6ae0      	ldr	r0, [r4, #44]	; 0x2c
   1a08e:	f7ff f962 	bl	19356 <sym_OC5GPSERLPE7TKXSCU3QAZ62H3OM4MWFYV7WX2I>
   1a092:	2204      	movs	r2, #4
   1a094:	4668      	mov	r0, sp
   1a096:	6ae1      	ldr	r1, [r4, #44]	; 0x2c
   1a098:	f7ff f8e8 	bl	1926c <sym_YBUOIVJGKD57C5J4XCQFOKF4I5XT74ICLDOCNXA>
   1a09c:	2200      	movs	r2, #0
   1a09e:	4611      	mov	r1, r2
   1a0a0:	6ae0      	ldr	r0, [r4, #44]	; 0x2c
   1a0a2:	f7ff f958 	bl	19356 <sym_OC5GPSERLPE7TKXSCU3QAZ62H3OM4MWFYV7WX2I>
   1a0a6:	2000      	movs	r0, #0
   1a0a8:	73a0      	strb	r0, [r4, #14]
   1a0aa:	f104 0020 	add.w	r0, r4, #32
   1a0ae:	e8bd 401c 	ldmia.w	sp!, {r2, r3, r4, lr}
   1a0b2:	f000 b962 	b.w	1a37a <sym_32MURW7CSXICOYPMCVOPRARLMRLK4UASNCF4JWQ>

0001a0b6 <sym_U7WTPI24N35WTMGPC25KDS7Q3PHHHS7M5KI6IPY>:
   1a0b6:	7880      	ldrb	r0, [r0, #2]
   1a0b8:	f3c0 0080 	ubfx	r0, r0, #2, #1
   1a0bc:	b108      	cbz	r0, 1a0c2 <sym_U7WTPI24N35WTMGPC25KDS7Q3PHHHS7M5KI6IPY+0xc>
   1a0be:	2000      	movs	r0, #0
   1a0c0:	4770      	bx	lr
   1a0c2:	201f      	movs	r0, #31
   1a0c4:	4770      	bx	lr

0001a0c6 <sym_2K3JTQJLCTROZQI43ERT7GF5BTQ3SMAJXYMCVJI>:
   1a0c6:	f7f8 bfb7 	b.w	13038 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x3ec>

0001a0ca <sym_RYQA5YFFRJZLTYB2ISC2Y3WUY3XB3LBBL37F22Q>:
   1a0ca:	6880      	ldr	r0, [r0, #8]
   1a0cc:	4770      	bx	lr

0001a0ce <sym_GNUIHYMK3THJZQYGL7BBI74HDMHN6SBQQRVNSAY>:
   1a0ce:	2001      	movs	r0, #1
   1a0d0:	4770      	bx	lr

0001a0d2 <sym_3NMQXTBVJ27TN5IIVET3BSKEAUONNKTPZTYP2HY>:
   1a0d2:	b510      	push	{r4, lr}
   1a0d4:	4604      	mov	r4, r0
   1a0d6:	3020      	adds	r0, #32
   1a0d8:	f000 f90f 	bl	1a2fa <sym_STP6UONGXHZIIGYZLLHSWZFO5DU7227CCUKBTDQ>
   1a0dc:	8861      	ldrh	r1, [r4, #2]
   1a0de:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
   1a0e2:	2228      	movs	r2, #40	; 0x28
   1a0e4:	f7f9 b986 	b.w	133f4 <sym_6FVWF5AWPR7EN7BPHS4APSIUXYFZQTTZCMRDKPY>

0001a0e8 <sym_DG6VHZEFRVR44ESTRZM42ZEBJG4KXT7IVJESA4Y>:
   1a0e8:	2200      	movs	r2, #0
   1a0ea:	6282      	str	r2, [r0, #40]	; 0x28
   1a0ec:	8843      	ldrh	r3, [r0, #2]
   1a0ee:	2b1d      	cmp	r3, #29
   1a0f0:	d001      	beq.n	1a0f6 <sym_DG6VHZEFRVR44ESTRZM42ZEBJG4KXT7IVJESA4Y+0xe>
   1a0f2:	7341      	strb	r1, [r0, #13]
   1a0f4:	4770      	bx	lr
   1a0f6:	7342      	strb	r2, [r0, #13]
   1a0f8:	4770      	bx	lr

0001a0fa <sym_JWG2K5Z2IDS7IGZ34EUMCNHIOV34425FH263YQQ>:
   1a0fa:	b510      	push	{r4, lr}
   1a0fc:	2400      	movs	r4, #0
   1a0fe:	6ac0      	ldr	r0, [r0, #44]	; 0x2c
   1a100:	f7ff f917 	bl	19332 <sym_SYX5A4D5YT7FQ4PORL5PYZ5T6BOBVEZRWNZWOOA>
   1a104:	b100      	cbz	r0, 1a108 <sym_JWG2K5Z2IDS7IGZ34EUMCNHIOV34425FH263YQQ+0xe>
   1a106:	2001      	movs	r0, #1
   1a108:	4384      	bics	r4, r0
   1a10a:	f084 0001 	eor.w	r0, r4, #1
   1a10e:	bd10      	pop	{r4, pc}

0001a110 <sym_TPWVJBQKX2TXZDZ4IZ6XDJYVEDFBPIX3TMZMRCQ>:
   1a110:	2000      	movs	r0, #0
   1a112:	4770      	bx	lr

0001a114 <sym_UEZ3FVWFJ5XVLQBVVAHW7UTXVCC77F7ZYGOMLTQ>:
   1a114:	7880      	ldrb	r0, [r0, #2]
   1a116:	f000 0001 	and.w	r0, r0, #1
   1a11a:	4770      	bx	lr

0001a11c <sym_XRU76NANM3C4EMKWQU3DF6CELSRNDV6766IKPJI>:
   1a11c:	7880      	ldrb	r0, [r0, #2]
   1a11e:	f3c0 00c0 	ubfx	r0, r0, #3, #1
   1a122:	4770      	bx	lr

0001a124 <sym_BDDELQSYWHVCCHSF6HGFFAORZOC56R54KIF45KY>:
   1a124:	2001      	movs	r0, #1
   1a126:	4770      	bx	lr

0001a128 <sym_NGJGZTNK6YIH3QX2NKB6A6MT7N5AOKWA6ZOOANQ>:
   1a128:	7880      	ldrb	r0, [r0, #2]
   1a12a:	f3c0 0040 	ubfx	r0, r0, #1, #1
   1a12e:	4770      	bx	lr

0001a130 <sym_L5UCRJFFWEVVII5IYG6PAKIQHXM34B62KO6ERPY>:
   1a130:	f990 000e 	ldrsb.w	r0, [r0, #14]
   1a134:	4770      	bx	lr

0001a136 <sym_WGJLFS2PDN6RZG7JWUITZ3W5MGJYYXFXIKI3GGQ>:
   1a136:	7800      	ldrb	r0, [r0, #0]
   1a138:	28ff      	cmp	r0, #255	; 0xff
   1a13a:	d001      	beq.n	1a140 <sym_WGJLFS2PDN6RZG7JWUITZ3W5MGJYYXFXIKI3GGQ+0xa>
   1a13c:	2001      	movs	r0, #1
   1a13e:	4770      	bx	lr
   1a140:	2000      	movs	r0, #0
   1a142:	4770      	bx	lr

0001a144 <sym_UDZCFPCYSG5E2MUJ3CH3H5GF4YJLF3Y6KNH3ZRQ>:
   1a144:	680a      	ldr	r2, [r1, #0]
   1a146:	f840 2f11 	str.w	r2, [r0, #17]!
   1a14a:	8889      	ldrh	r1, [r1, #4]
   1a14c:	8081      	strh	r1, [r0, #4]
   1a14e:	2101      	movs	r1, #1
   1a150:	7181      	strb	r1, [r0, #6]
   1a152:	4770      	bx	lr

0001a154 <sym_2T6B57C7Z3NDT5ASKUJUGCCL3DBEO2AO4XX23BI>:
   1a154:	7b00      	ldrb	r0, [r0, #12]
   1a156:	4770      	bx	lr

0001a158 <sym_4HDCBJCT2JOHNORERPDEH2A3V47FOX6NCTAKLUA>:
   1a158:	2001      	movs	r0, #1
   1a15a:	4770      	bx	lr

0001a15c <sym_4FKJZF4AXR7RHM7IPPZMVUWU7W6MFHLX726TPNY>:
   1a15c:	61c1      	str	r1, [r0, #28]
   1a15e:	4770      	bx	lr

0001a160 <sym_WAXMY55QAGCTLTIDQV34FPT2PPSDRT5VDN7EYYY>:
   1a160:	f880 1060 	strb.w	r1, [r0, #96]	; 0x60
   1a164:	4770      	bx	lr

0001a166 <sym_RPDYS5TXULS3Z2BQR7IFNSOINXPPN4LN764SRIY>:
   1a166:	b570      	push	{r4, r5, r6, lr}
   1a168:	4604      	mov	r4, r0
   1a16a:	7880      	ldrb	r0, [r0, #2]
   1a16c:	2501      	movs	r5, #1
   1a16e:	f3c0 00c0 	ubfx	r0, r0, #3, #1
   1a172:	b138      	cbz	r0, 1a184 <sym_RPDYS5TXULS3Z2BQR7IFNSOINXPPN4LN764SRIY+0x1e>
   1a174:	233c      	movs	r3, #60	; 0x3c
   1a176:	22ff      	movs	r2, #255	; 0xff
   1a178:	4620      	mov	r0, r4
   1a17a:	69e1      	ldr	r1, [r4, #28]
   1a17c:	f7f8 ff88 	bl	13090 <sym_KBJ4SX4MJK4IAM4DI3ILSISVXIP6O72O62TW3OQ+0x444>
   1a180:	f884 5064 	strb.w	r5, [r4, #100]	; 0x64
   1a184:	78a0      	ldrb	r0, [r4, #2]
   1a186:	07c0      	lsls	r0, r0, #31
   1a188:	f7fb fef6 	bl	15f78 <sym_ZGH42ABHAQFX3NKIMGIK7DGGJ5XWXU2KDVYEOMI>
   1a18c:	f884 5061 	strb.w	r5, [r4, #97]	; 0x61
   1a190:	bd70      	pop	{r4, r5, r6, pc}

0001a192 <sym_H6NC6L6VJY74V6C72Y6E5P4HGSZIVJQXMUOQZ5Y>:
   1a192:	7bc0      	ldrb	r0, [r0, #15]
   1a194:	2800      	cmp	r0, #0
   1a196:	d000      	beq.n	1a19a <sym_H6NC6L6VJY74V6C72Y6E5P4HGSZIVJQXMUOQZ5Y+0x8>
   1a198:	2001      	movs	r0, #1
   1a19a:	4770      	bx	lr
   1a19c:	b510      	push	{r4, lr}
   1a19e:	f7ff f9a4 	bl	194ea <sym_QW6JOH7RCJIC2YFNJEURX5QNB5EIQT646EHIWEA>
   1a1a2:	4604      	mov	r4, r0
   1a1a4:	f7f7 fcf2 	bl	11b8c <sym_QEQGMTIGG3AOZQY7JM4T2FY2O3KM2UFUMT6Q7PI>
   1a1a8:	b138      	cbz	r0, 1a1ba <sym_H6NC6L6VJY74V6C72Y6E5P4HGSZIVJQXMUOQZ5Y+0x28>
   1a1aa:	4620      	mov	r0, r4
   1a1ac:	f7f7 fc26 	bl	119fc <sym_PLOW4TMGVQT52FP2ERNRL6S5EELE2YO563WRPJA>
   1a1b0:	b118      	cbz	r0, 1a1ba <sym_H6NC6L6VJY74V6C72Y6E5P4HGSZIVJQXMUOQZ5Y+0x28>
   1a1b2:	2110      	movs	r1, #16
   1a1b4:	f7ff fb79 	bl	198aa <sym_35JWAFJL2IEYRDNORVIQ7BBAS7FQNUVOFCLQNSQ>
   1a1b8:	b108      	cbz	r0, 1a1be <sym_H6NC6L6VJY74V6C72Y6E5P4HGSZIVJQXMUOQZ5Y+0x2c>
   1a1ba:	2000      	movs	r0, #0
   1a1bc:	bd10      	pop	{r4, pc}
   1a1be:	2001      	movs	r0, #1
   1a1c0:	bd10      	pop	{r4, pc}
   1a1c2:	2101      	movs	r1, #1
   1a1c4:	f7f8 bbc2 	b.w	1294c <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0x10>
   1a1c8:	2101      	movs	r1, #1
   1a1ca:	f7f8 bbbf 	b.w	1294c <sym_I72BLVRK23UDT6KM4GEW6EVDLN4L7QB2CLD4CMY+0x10>
   1a1ce:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   1a1d2:	4604      	mov	r4, r0
   1a1d4:	2700      	movs	r7, #0
   1a1d6:	704f      	strb	r7, [r1, #1]
   1a1d8:	2011      	movs	r0, #17
   1a1da:	460d      	mov	r5, r1
   1a1dc:	7008      	strb	r0, [r1, #0]
   1a1de:	2220      	movs	r2, #32
   1a1e0:	f104 0166 	add.w	r1, r4, #102	; 0x66
   1a1e4:	1d28      	adds	r0, r5, #4
   1a1e6:	f7fd ff6c 	bl	180c2 <sym_DQONLUECJTIEYFOFJXXAPJO4POIAJKJNKBGVN5A>
   1a1ea:	2601      	movs	r6, #1
   1a1ec:	722e      	strb	r6, [r5, #8]
   1a1ee:	f884 7064 	strb.w	r7, [r4, #100]	; 0x64
   1a1f2:	7928      	ldrb	r0, [r5, #4]
   1a1f4:	2800      	cmp	r0, #0
   1a1f6:	d111      	bne.n	1a21c <sym_H6NC6L6VJY74V6C72Y6E5P4HGSZIVJQXMUOQZ5Y+0x8a>
   1a1f8:	88e8      	ldrh	r0, [r5, #6]
   1a1fa:	f8a4 0090 	strh.w	r0, [r4, #144]	; 0x90
   1a1fe:	69e0      	ldr	r0, [r4, #28]
   1a200:	f890 1085 	ldrb.w	r1, [r0, #133]	; 0x85
   1a204:	f884 1092 	strb.w	r1, [r4, #146]	; 0x92
   1a208:	f884 608e 	strb.w	r6, [r4, #142]	; 0x8e
   1a20c:	8800      	ldrh	r0, [r0, #0]
   1a20e:	f7f6 fb11 	bl	10834 <sym_YNBBHT54WKEGUNVC6TSBMRGLF67VFWBOYEMKGTQ>
   1a212:	f7fe fe4b 	bl	18eac <sym_4Z7443SGSMJBRM7TLEVRIFXZXBZ34MHB7IK5ETY>
   1a216:	69e0      	ldr	r0, [r4, #28]
   1a218:	f880 6070 	strb.w	r6, [r0, #112]	; 0x70
   1a21c:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
   1a220:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   1a224:	4604      	mov	r4, r0
   1a226:	460f      	mov	r7, r1
   1a228:	7e40      	ldrb	r0, [r0, #25]
   1a22a:	f7f7 fba7 	bl	1197c <sym_F2LWAH27IT4H2IA7TZWGNABUCWINGT6MWXH2WIA>
   1a22e:	4606      	mov	r6, r0
   1a230:	7e20      	ldrb	r0, [r4, #24]
   1a232:	f104 0549 	add.w	r5, r4, #73	; 0x49
   1a236:	b120      	cbz	r0, 1a242 <sym_H6NC6L6VJY74V6C72Y6E5P4HGSZIVJQXMUOQZ5Y+0xb0>
   1a238:	b11e      	cbz	r6, 1a242 <sym_H6NC6L6VJY74V6C72Y6E5P4HGSZIVJQXMUOQZ5Y+0xb0>
   1a23a:	7e60      	ldrb	r0, [r4, #25]
   1a23c:	f7f7 fb92 	bl	11964 <sym_BAUTABQSJLBAZ6GNH7KOF4MJMAA6NF7CDAZNOEQ>
   1a240:	b1a0      	cbz	r0, 1a26c <sym_H6NC6L6VJY74V6C72Y6E5P4HGSZIVJQXMUOQZ5Y+0xda>
   1a242:	f894 0062 	ldrb.w	r0, [r4, #98]	; 0x62
   1a246:	2800      	cmp	r0, #0
   1a248:	d024      	beq.n	1a294 <sym_H6NC6L6VJY74V6C72Y6E5P4HGSZIVJQXMUOQZ5Y+0x102>
   1a24a:	7ea0      	ldrb	r0, [r4, #26]
   1a24c:	2800      	cmp	r0, #0
   1a24e:	d021      	beq.n	1a294 <sym_H6NC6L6VJY74V6C72Y6E5P4HGSZIVJQXMUOQZ5Y+0x102>
   1a250:	f894 0048 	ldrb.w	r0, [r4, #72]	; 0x48
   1a254:	4629      	mov	r1, r5
   1a256:	f7ff feb9 	bl	19fcc <sym_FKGRLSJGPWDG44KYHTBA74A2ZDKPDUWGXHS3E2I+0xba>
   1a25a:	b1a8      	cbz	r0, 1a288 <sym_H6NC6L6VJY74V6C72Y6E5P4HGSZIVJQXMUOQZ5Y+0xf6>
   1a25c:	f7f7 fb7e 	bl	1195c <sym_3Q2UQ65DVTXA3EZPN34QXGGEFSEA6HOSHLFXCMI>
   1a260:	463a      	mov	r2, r7
   1a262:	4629      	mov	r1, r5
   1a264:	e8bd 41f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, lr}
   1a268:	f7ff b8d7 	b.w	1941a <sym_BLMJ5IIKWMCUMGRAJC47JTAD5DUGOY4TIBII5HY>
   1a26c:	2001      	movs	r0, #1
   1a26e:	f884 0048 	strb.w	r0, [r4, #72]	; 0x48
   1a272:	463a      	mov	r2, r7
   1a274:	4629      	mov	r1, r5
   1a276:	4630      	mov	r0, r6
   1a278:	f7ff f8cf 	bl	1941a <sym_BLMJ5IIKWMCUMGRAJC47JTAD5DUGOY4TIBII5HY>
   1a27c:	7e61      	ldrb	r1, [r4, #25]
   1a27e:	4628      	mov	r0, r5
   1a280:	e8bd 41f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, lr}
   1a284:	f7f7 bb86 	b.w	11994 <sym_GV7ZEDU63KACGR6K3NXW7W7XARTADNTCQ3P2HLA>
   1a288:	4639      	mov	r1, r7
   1a28a:	4628      	mov	r0, r5
   1a28c:	e8bd 41f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, lr}
   1a290:	f7ff b8b2 	b.w	193f8 <sym_FEGTISSRZOTQRK4SD4MRDIWBV3TTZYGCCKXTY4Y>
   1a294:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
   1a298:	b510      	push	{r4, lr}
   1a29a:	4604      	mov	r4, r0
   1a29c:	4608      	mov	r0, r1
   1a29e:	f7fd f81f 	bl	172e0 <sym_ZQE76VUU7S5U7DETTZA65E75LHFWL5PGRN4JPHI>
   1a2a2:	7921      	ldrb	r1, [r4, #4]
   1a2a4:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
   1a2a8:	2025      	movs	r0, #37	; 0x25
   1a2aa:	f001 bd69 	b.w	1bd80 <sym_K7DVDHTWL3F7TVQBJD7AJF4MCRCM54IIDUOJLTY>
   1a2ae:	b510      	push	{r4, lr}
   1a2b0:	4604      	mov	r4, r0
   1a2b2:	3026      	adds	r0, #38	; 0x26
   1a2b4:	f7fc ffd4 	bl	17260 <sym_EZCFQXKGAFHY5HQVJOXWDLO45XWMEJQY5WUGZNI>
   1a2b8:	2800      	cmp	r0, #0
   1a2ba:	d102      	bne.n	1a2c2 <sym_H6NC6L6VJY74V6C72Y6E5P4HGSZIVJQXMUOQZ5Y+0x130>
   1a2bc:	207f      	movs	r0, #127	; 0x7f
   1a2be:	f884 0026 	strb.w	r0, [r4, #38]	; 0x26
   1a2c2:	bd10      	pop	{r4, pc}
   1a2c4:	7802      	ldrb	r2, [r0, #0]
   1a2c6:	2320      	movs	r3, #32
   1a2c8:	f022 0220 	bic.w	r2, r2, #32
   1a2cc:	ea03 1141 	and.w	r1, r3, r1, lsl #5
   1a2d0:	430a      	orrs	r2, r1
   1a2d2:	7002      	strb	r2, [r0, #0]
   1a2d4:	4770      	bx	lr

0001a2d6 <sym_XD3FX5TVO57NBJG4QV33FUOBCL7SNGB4OOT7C3Y>:
   1a2d6:	b570      	push	{r4, r5, r6, lr}
   1a2d8:	7001      	strb	r1, [r0, #0]
   1a2da:	7042      	strb	r2, [r0, #1]
   1a2dc:	4614      	mov	r4, r2
   1a2de:	460d      	mov	r5, r1
   1a2e0:	7880      	ldrb	r0, [r0, #2]
   1a2e2:	f000 f87f 	bl	1a3e4 <sym_UEYPZKGY2IF5BYZ3QDKK4LEW4OE7NWR6DH5XEZQ+0x5c>
   1a2e6:	fb10 f005 	smulbb	r0, r0, r5
   1a2ea:	4360      	muls	r0, r4
   1a2ec:	28ff      	cmp	r0, #255	; 0xff
   1a2ee:	d303      	bcc.n	1a2f8 <sym_XD3FX5TVO57NBJG4QV33FUOBCL7SNGB4OOT7C3Y+0x22>
   1a2f0:	215c      	movs	r1, #92	; 0x5c
   1a2f2:	202e      	movs	r0, #46	; 0x2e
   1a2f4:	f7f5 fe76 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   1a2f8:	bd70      	pop	{r4, r5, r6, pc}

0001a2fa <sym_STP6UONGXHZIIGYZLLHSWZFO5DU7227CCUKBTDQ>:
   1a2fa:	b510      	push	{r4, lr}
   1a2fc:	4604      	mov	r4, r0
   1a2fe:	7880      	ldrb	r0, [r0, #2]
   1a300:	f000 f870 	bl	1a3e4 <sym_UEYPZKGY2IF5BYZ3QDKK4LEW4OE7NWR6DH5XEZQ+0x5c>
   1a304:	7861      	ldrb	r1, [r4, #1]
   1a306:	7822      	ldrb	r2, [r4, #0]
   1a308:	fb11 f102 	smulbb	r1, r1, r2
   1a30c:	4348      	muls	r0, r1
   1a30e:	b2c0      	uxtb	r0, r0
   1a310:	bd10      	pop	{r4, pc}

0001a312 <sym_GDGGQ5EKEJNZBTEWASFQ2LUSL4TZGNXHPD7BDQA>:
   1a312:	b510      	push	{r4, lr}
   1a314:	4604      	mov	r4, r0
   1a316:	f000 f84d 	bl	1a3b4 <sym_UEYPZKGY2IF5BYZ3QDKK4LEW4OE7NWR6DH5XEZQ+0x2c>
   1a31a:	7961      	ldrb	r1, [r4, #5]
   1a31c:	1c49      	adds	r1, r1, #1
   1a31e:	b2c9      	uxtb	r1, r1
   1a320:	7161      	strb	r1, [r4, #5]
   1a322:	7862      	ldrb	r2, [r4, #1]
   1a324:	4291      	cmp	r1, r2
   1a326:	d10b      	bne.n	1a340 <sym_GDGGQ5EKEJNZBTEWASFQ2LUSL4TZGNXHPD7BDQA+0x2e>
   1a328:	2200      	movs	r2, #0
   1a32a:	7162      	strb	r2, [r4, #5]
   1a32c:	78e1      	ldrb	r1, [r4, #3]
   1a32e:	4301      	orrs	r1, r0
   1a330:	70e1      	strb	r1, [r4, #3]
   1a332:	78a3      	ldrb	r3, [r4, #2]
   1a334:	4299      	cmp	r1, r3
   1a336:	d103      	bne.n	1a340 <sym_GDGGQ5EKEJNZBTEWASFQ2LUSL4TZGNXHPD7BDQA+0x2e>
   1a338:	70e2      	strb	r2, [r4, #3]
   1a33a:	7921      	ldrb	r1, [r4, #4]
   1a33c:	1c49      	adds	r1, r1, #1
   1a33e:	7121      	strb	r1, [r4, #4]
   1a340:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
   1a344:	f000 b825 	b.w	1a392 <sym_UEYPZKGY2IF5BYZ3QDKK4LEW4OE7NWR6DH5XEZQ+0xa>

0001a348 <sym_YZ554N3225FHWC7CK3UNRUMI3O4SGFLKXVRCFXA>:
   1a348:	7081      	strb	r1, [r0, #2]
   1a34a:	4770      	bx	lr

0001a34c <sym_4U2RA2RXIRU5BEMWZTHT3PETZK6K62P2SAJVWHA>:
   1a34c:	b570      	push	{r4, r5, r6, lr}
   1a34e:	4604      	mov	r4, r0
   1a350:	7880      	ldrb	r0, [r0, #2]
   1a352:	f000 f847 	bl	1a3e4 <sym_UEYPZKGY2IF5BYZ3QDKK4LEW4OE7NWR6DH5XEZQ+0x5c>
   1a356:	7861      	ldrb	r1, [r4, #1]
   1a358:	fb11 f500 	smulbb	r5, r1, r0
   1a35c:	78e0      	ldrb	r0, [r4, #3]
   1a35e:	f000 f841 	bl	1a3e4 <sym_UEYPZKGY2IF5BYZ3QDKK4LEW4OE7NWR6DH5XEZQ+0x5c>
   1a362:	7861      	ldrb	r1, [r4, #1]
   1a364:	7962      	ldrb	r2, [r4, #5]
   1a366:	fb10 2001 	smlabb	r0, r0, r1, r2
   1a36a:	7821      	ldrb	r1, [r4, #0]
   1a36c:	7922      	ldrb	r2, [r4, #4]
   1a36e:	1a89      	subs	r1, r1, r2
   1a370:	fb11 f105 	smulbb	r1, r1, r5
   1a374:	1a08      	subs	r0, r1, r0
   1a376:	b2c0      	uxtb	r0, r0
   1a378:	bd70      	pop	{r4, r5, r6, pc}

0001a37a <sym_32MURW7CSXICOYPMCVOPRARLMRLK4UASNCF4JWQ>:
   1a37a:	2100      	movs	r1, #0
   1a37c:	6001      	str	r1, [r0, #0]
   1a37e:	8081      	strh	r1, [r0, #4]
   1a380:	2101      	movs	r1, #1
   1a382:	7041      	strb	r1, [r0, #1]
   1a384:	7001      	strb	r1, [r0, #0]
   1a386:	4770      	bx	lr

0001a388 <sym_UEYPZKGY2IF5BYZ3QDKK4LEW4OE7NWR6DH5XEZQ>:
   1a388:	2100      	movs	r1, #0
   1a38a:	70c1      	strb	r1, [r0, #3]
   1a38c:	7141      	strb	r1, [r0, #5]
   1a38e:	7101      	strb	r1, [r0, #4]
   1a390:	4770      	bx	lr
   1a392:	b510      	push	{r4, lr}
   1a394:	2801      	cmp	r0, #1
   1a396:	d007      	beq.n	1a3a8 <sym_UEYPZKGY2IF5BYZ3QDKK4LEW4OE7NWR6DH5XEZQ+0x20>
   1a398:	2802      	cmp	r0, #2
   1a39a:	d007      	beq.n	1a3ac <sym_UEYPZKGY2IF5BYZ3QDKK4LEW4OE7NWR6DH5XEZQ+0x24>
   1a39c:	2804      	cmp	r0, #4
   1a39e:	d007      	beq.n	1a3b0 <sym_UEYPZKGY2IF5BYZ3QDKK4LEW4OE7NWR6DH5XEZQ+0x28>
   1a3a0:	2139      	movs	r1, #57	; 0x39
   1a3a2:	202e      	movs	r0, #46	; 0x2e
   1a3a4:	f7f5 fe1e 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   1a3a8:	2025      	movs	r0, #37	; 0x25
   1a3aa:	bd10      	pop	{r4, pc}
   1a3ac:	2026      	movs	r0, #38	; 0x26
   1a3ae:	bd10      	pop	{r4, pc}
   1a3b0:	2027      	movs	r0, #39	; 0x27
   1a3b2:	bd10      	pop	{r4, pc}
   1a3b4:	4601      	mov	r1, r0
   1a3b6:	2000      	movs	r0, #0
   1a3b8:	788a      	ldrb	r2, [r1, #2]
   1a3ba:	07d3      	lsls	r3, r2, #31
   1a3bc:	d002      	beq.n	1a3c4 <sym_UEYPZKGY2IF5BYZ3QDKK4LEW4OE7NWR6DH5XEZQ+0x3c>
   1a3be:	78cb      	ldrb	r3, [r1, #3]
   1a3c0:	07db      	lsls	r3, r3, #31
   1a3c2:	d006      	beq.n	1a3d2 <sym_UEYPZKGY2IF5BYZ3QDKK4LEW4OE7NWR6DH5XEZQ+0x4a>
   1a3c4:	0793      	lsls	r3, r2, #30
   1a3c6:	d506      	bpl.n	1a3d6 <sym_UEYPZKGY2IF5BYZ3QDKK4LEW4OE7NWR6DH5XEZQ+0x4e>
   1a3c8:	78cb      	ldrb	r3, [r1, #3]
   1a3ca:	079b      	lsls	r3, r3, #30
   1a3cc:	d403      	bmi.n	1a3d6 <sym_UEYPZKGY2IF5BYZ3QDKK4LEW4OE7NWR6DH5XEZQ+0x4e>
   1a3ce:	2002      	movs	r0, #2
   1a3d0:	4770      	bx	lr
   1a3d2:	2001      	movs	r0, #1
   1a3d4:	4770      	bx	lr
   1a3d6:	0752      	lsls	r2, r2, #29
   1a3d8:	d5fc      	bpl.n	1a3d4 <sym_UEYPZKGY2IF5BYZ3QDKK4LEW4OE7NWR6DH5XEZQ+0x4c>
   1a3da:	78c9      	ldrb	r1, [r1, #3]
   1a3dc:	0749      	lsls	r1, r1, #29
   1a3de:	d4f9      	bmi.n	1a3d4 <sym_UEYPZKGY2IF5BYZ3QDKK4LEW4OE7NWR6DH5XEZQ+0x4c>
   1a3e0:	2004      	movs	r0, #4
   1a3e2:	4770      	bx	lr
   1a3e4:	f3c0 0180 	ubfx	r1, r0, #2, #1
   1a3e8:	f3c0 0240 	ubfx	r2, r0, #1, #1
   1a3ec:	4411      	add	r1, r2
   1a3ee:	f000 0001 	and.w	r0, r0, #1
   1a3f2:	4408      	add	r0, r1
   1a3f4:	4770      	bx	lr

0001a3f6 <sym_FHGEXLJ7V34P3MECCDTYSDEZTZHFJ2TXYSFZQHQ>:
   1a3f6:	f240 315a 	movw	r1, #858	; 0x35a
   1a3fa:	4348      	muls	r0, r1
   1a3fc:	4770      	bx	lr

0001a3fe <sym_USXJ3USYRHE5AVFUSG2J2G7QDHRASPG75ESP25A>:
   1a3fe:	f240 20ef 	movw	r0, #751	; 0x2ef
   1a402:	4770      	bx	lr
   1a404:	041c020e 	.word	0x041c020e
   1a408:	0c600630 	.word	0x0c600630
   1a40c:	06b4035a 	.word	0x06b4035a
   1a410:	0bf505c5 	.word	0x0bf505c5
   1a414:	01a31225 	.word	0x01a31225
   1a418:	05bf03b1 	.word	0x05bf03b1
   1a41c:	064902ef 	.word	0x064902ef
   1a420:	09a3      	.short	0x09a3

0001a422 <sym_3ZNIOFG7XMX7YS4WHN4QVNG3AVWN2QVSTHUWDXQ>:
   1a422:	b510      	push	{r4, lr}
   1a424:	f890 10d0 	ldrb.w	r1, [r0, #208]	; 0xd0
   1a428:	b109      	cbz	r1, 1a42e <sym_3ZNIOFG7XMX7YS4WHN4QVNG3AVWN2QVSTHUWDXQ+0xc>
   1a42a:	2000      	movs	r0, #0
   1a42c:	bd10      	pop	{r4, pc}
   1a42e:	f8d0 10cc 	ldr.w	r1, [r0, #204]	; 0xcc
   1a432:	b949      	cbnz	r1, 1a448 <sym_3ZNIOFG7XMX7YS4WHN4QVNG3AVWN2QVSTHUWDXQ+0x26>
   1a434:	f890 10a8 	ldrb.w	r1, [r0, #168]	; 0xa8
   1a438:	b131      	cbz	r1, 1a448 <sym_3ZNIOFG7XMX7YS4WHN4QVNG3AVWN2QVSTHUWDXQ+0x26>
   1a43a:	e9d0 122b 	ldrd	r1, r2, [r0, #172]	; 0xac
   1a43e:	428a      	cmp	r2, r1
   1a440:	d902      	bls.n	1a448 <sym_3ZNIOFG7XMX7YS4WHN4QVNG3AVWN2QVSTHUWDXQ+0x26>
   1a442:	f7ff fe90 	bl	1a166 <sym_RPDYS5TXULS3Z2BQR7IFNSOINXPPN4LN764SRIY>
   1a446:	e7f0      	b.n	1a42a <sym_3ZNIOFG7XMX7YS4WHN4QVNG3AVWN2QVSTHUWDXQ+0x8>
   1a448:	2001      	movs	r0, #1
   1a44a:	bd10      	pop	{r4, pc}

0001a44c <sym_FY3JF6XBXLAG22E42UPFUU55A3QFAFZDUGSPAPY>:
   1a44c:	b510      	push	{r4, lr}
   1a44e:	b131      	cbz	r1, 1a45e <sym_FY3JF6XBXLAG22E42UPFUU55A3QFAFZDUGSPAPY+0x12>
   1a450:	2901      	cmp	r1, #1
   1a452:	d008      	beq.n	1a466 <sym_FY3JF6XBXLAG22E42UPFUU55A3QFAFZDUGSPAPY+0x1a>
   1a454:	f240 718a 	movw	r1, #1930	; 0x78a
   1a458:	2030      	movs	r0, #48	; 0x30
   1a45a:	f7f5 fdc3 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   1a45e:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
   1a462:	f000 b9d4 	b.w	1a80e <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x314>
   1a466:	2100      	movs	r1, #0
   1a468:	f880 10a8 	strb.w	r1, [r0, #168]	; 0xa8
   1a46c:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
   1a470:	f000 b93b 	b.w	1a6ea <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x1f0>

0001a474 <sym_IWCITVPPUY332JRWMVJAKISCC47TLWX26E2MXOI>:
   1a474:	b510      	push	{r4, lr}
   1a476:	4604      	mov	r4, r0
   1a478:	f890 00b4 	ldrb.w	r0, [r0, #180]	; 0xb4
   1a47c:	2800      	cmp	r0, #0
   1a47e:	d019      	beq.n	1a4b4 <sym_IWCITVPPUY332JRWMVJAKISCC47TLWX26E2MXOI+0x40>
   1a480:	2001      	movs	r0, #1
   1a482:	f884 00d0 	strb.w	r0, [r4, #208]	; 0xd0
   1a486:	4601      	mov	r1, r0
   1a488:	4620      	mov	r0, r4
   1a48a:	f7ff fe69 	bl	1a160 <sym_WAXMY55QAGCTLTIDQV34FPT2PPSDRT5VDN7EYYY>
   1a48e:	f894 00b4 	ldrb.w	r0, [r4, #180]	; 0xb4
   1a492:	b170      	cbz	r0, 1a4b2 <sym_IWCITVPPUY332JRWMVJAKISCC47TLWX26E2MXOI+0x3e>
   1a494:	f814 0fa0 	ldrb.w	r0, [r4, #160]!
   1a498:	f7f3 fe58 	bl	e14c <sym_R4Y3KWNYX4PGGLE5X2L7DXMWMJUY3DOXD7LSUKY>
   1a49c:	7820      	ldrb	r0, [r4, #0]
   1a49e:	f7f3 ffa3 	bl	e3e8 <sym_DQFOGVCNU4NTOMWSL3IYDNCMIXT2LT7SZHL5IHI>
   1a4a2:	f814 09a0 	ldrb.w	r0, [r4], #-160
   1a4a6:	f7f3 ff7d 	bl	e3a4 <sym_CFZK3G6ZC4ONUAYO2UALWQ4CBO7A6ADNAS2FS7Y>
   1a4aa:	b120      	cbz	r0, 1a4b6 <sym_IWCITVPPUY332JRWMVJAKISCC47TLWX26E2MXOI+0x42>
   1a4ac:	2000      	movs	r0, #0
   1a4ae:	f884 00b4 	strb.w	r0, [r4, #180]	; 0xb4
   1a4b2:	2000      	movs	r0, #0
   1a4b4:	bd10      	pop	{r4, pc}
   1a4b6:	f240 210f 	movw	r1, #527	; 0x20f
   1a4ba:	2030      	movs	r0, #48	; 0x30
   1a4bc:	f7f5 fd92 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>

0001a4c0 <sym_WI2RDLNIWKOV64CKFZ2EF2DRND265I3CYCBNK6A>:
   1a4c0:	f8d0 00a4 	ldr.w	r0, [r0, #164]	; 0xa4
   1a4c4:	4770      	bx	lr

0001a4c6 <sym_GWLFBYMUVMRXAWJAYXMEGM7D57QYGUJF3J77TCA>:
   1a4c6:	f890 00b4 	ldrb.w	r0, [r0, #180]	; 0xb4
   1a4ca:	4770      	bx	lr

0001a4cc <sym_6PZGCXLPPNIPYHSAJRHQXJCKUI2SGZWI2B4DQZA>:
   1a4cc:	b50e      	push	{r1, r2, r3, lr}
   1a4ce:	4669      	mov	r1, sp
   1a4d0:	2001      	movs	r0, #1
   1a4d2:	f7fe fe14 	bl	190fe <sym_3SKPFA625PNDCAQQU2M5BY77GYLRCXEEFZ5JBTY>
   1a4d6:	b138      	cbz	r0, 1a4e8 <sym_6PZGCXLPPNIPYHSAJRHQXJCKUI2SGZWI2B4DQZA+0x1c>
   1a4d8:	f44f 71a1 	mov.w	r1, #322	; 0x142
   1a4dc:	2030      	movs	r0, #48	; 0x30
   1a4de:	f7f5 fd81 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   1a4e2:	9802      	ldr	r0, [sp, #8]
   1a4e4:	f7ff ffc6 	bl	1a474 <sym_IWCITVPPUY332JRWMVJAKISCC47TLWX26E2MXOI>
   1a4e8:	4668      	mov	r0, sp
   1a4ea:	f7f5 ffc1 	bl	10470 <sym_6I4XEOIW7LI2E3Z53L54ZHQQHYICXR4H4JQWXLA>
   1a4ee:	2800      	cmp	r0, #0
   1a4f0:	d0f7      	beq.n	1a4e2 <sym_6PZGCXLPPNIPYHSAJRHQXJCKUI2SGZWI2B4DQZA+0x16>
   1a4f2:	f7f9 f8fb 	bl	136ec <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0xb0>
   1a4f6:	2000      	movs	r0, #0
   1a4f8:	bd0e      	pop	{r1, r2, r3, pc}

0001a4fa <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY>:
   1a4fa:	b57c      	push	{r2, r3, r4, r5, r6, lr}
   1a4fc:	4604      	mov	r4, r0
   1a4fe:	f890 0103 	ldrb.w	r0, [r0, #259]	; 0x103
   1a502:	2800      	cmp	r0, #0
   1a504:	d153      	bne.n	1a5ae <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0xb4>
   1a506:	f894 0134 	ldrb.w	r0, [r4, #308]	; 0x134
   1a50a:	2803      	cmp	r0, #3
   1a50c:	d14f      	bne.n	1a5ae <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0xb4>
   1a50e:	f7fd fc63 	bl	17dd8 <sym_KN3Y3AMHXOHKS2EMALWM5VNLRDL2MPKHIP6XPDA>
   1a512:	4601      	mov	r1, r0
   1a514:	f8d4 015c 	ldr.w	r0, [r4, #348]	; 0x15c
   1a518:	f7f3 f9a0 	bl	d85c <sym_VDVM4QLBTRUPEGCBUXIK25LH2KVQWBZXHRBYEFY>
   1a51c:	2800      	cmp	r0, #0
   1a51e:	dd46      	ble.n	1a5ae <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0xb4>
   1a520:	68e1      	ldr	r1, [r4, #12]
   1a522:	b111      	cbz	r1, 1a52a <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x30>
   1a524:	fbb0 f0f1 	udiv	r0, r0, r1
   1a528:	e000      	b.n	1a52c <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x32>
   1a52a:	2000      	movs	r0, #0
   1a52c:	f8b4 1074 	ldrh.w	r1, [r4, #116]	; 0x74
   1a530:	1c40      	adds	r0, r0, #1
   1a532:	4408      	add	r0, r1
   1a534:	f8a4 0144 	strh.w	r0, [r4, #324]	; 0x144
   1a538:	f8b4 0144 	ldrh.w	r0, [r4, #324]	; 0x144
   1a53c:	f8b4 10fc 	ldrh.w	r1, [r4, #252]	; 0xfc
   1a540:	1a08      	subs	r0, r1, r0
   1a542:	b200      	sxth	r0, r0
   1a544:	2800      	cmp	r0, #0
   1a546:	dd32      	ble.n	1a5ae <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0xb4>
   1a548:	f894 0168 	ldrb.w	r0, [r4, #360]	; 0x168
   1a54c:	f7f3 fdfe 	bl	e14c <sym_R4Y3KWNYX4PGGLE5X2L7DXMWMJUY3DOXD7LSUKY>
   1a550:	2800      	cmp	r0, #0
   1a552:	d02c      	beq.n	1a5ae <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0xb4>
   1a554:	2001      	movs	r0, #1
   1a556:	f884 0149 	strb.w	r0, [r4, #329]	; 0x149
   1a55a:	f8b4 00a6 	ldrh.w	r0, [r4, #166]	; 0xa6
   1a55e:	f8b4 10a4 	ldrh.w	r1, [r4, #164]	; 0xa4
   1a562:	ae01      	add	r6, sp, #4
   1a564:	1a40      	subs	r0, r0, r1
   1a566:	f8b4 1074 	ldrh.w	r1, [r4, #116]	; 0x74
   1a56a:	1e40      	subs	r0, r0, #1
   1a56c:	4408      	add	r0, r1
   1a56e:	b285      	uxth	r5, r0
   1a570:	e017      	b.n	1a5a2 <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0xa8>
   1a572:	9600      	str	r6, [sp, #0]
   1a574:	f8b4 1144 	ldrh.w	r1, [r4, #324]	; 0x144
   1a578:	2300      	movs	r3, #0
   1a57a:	2201      	movs	r2, #1
   1a57c:	4620      	mov	r0, r4
   1a57e:	f7f9 f985 	bl	1388c <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x250>
   1a582:	2800      	cmp	r0, #0
   1a584:	d013      	beq.n	1a5ae <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0xb4>
   1a586:	2801      	cmp	r0, #1
   1a588:	d004      	beq.n	1a594 <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x9a>
   1a58a:	f240 610c 	movw	r1, #1548	; 0x60c
   1a58e:	2030      	movs	r0, #48	; 0x30
   1a590:	f7f5 fd28 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   1a594:	f8b4 0144 	ldrh.w	r0, [r4, #324]	; 0x144
   1a598:	f8bd 1004 	ldrh.w	r1, [sp, #4]
   1a59c:	4408      	add	r0, r1
   1a59e:	f8a4 0144 	strh.w	r0, [r4, #324]	; 0x144
   1a5a2:	f8b4 0144 	ldrh.w	r0, [r4, #324]	; 0x144
   1a5a6:	1a28      	subs	r0, r5, r0
   1a5a8:	b200      	sxth	r0, r0
   1a5aa:	2800      	cmp	r0, #0
   1a5ac:	dae1      	bge.n	1a572 <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x78>
   1a5ae:	bd7c      	pop	{r2, r3, r4, r5, r6, pc}
   1a5b0:	2000      	movs	r0, #0
   1a5b2:	4770      	bx	lr
   1a5b4:	b570      	push	{r4, r5, r6, lr}
   1a5b6:	4604      	mov	r4, r0
   1a5b8:	2601      	movs	r6, #1
   1a5ba:	f000 f90c 	bl	1a7d6 <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x2dc>
   1a5be:	f8a4 00c0 	strh.w	r0, [r4, #192]	; 0xc0
   1a5c2:	2000      	movs	r0, #0
   1a5c4:	f884 00b8 	strb.w	r0, [r4, #184]	; 0xb8
   1a5c8:	2001      	movs	r0, #1
   1a5ca:	f884 00c3 	strb.w	r0, [r4, #195]	; 0xc3
   1a5ce:	f894 00a8 	ldrb.w	r0, [r4, #168]	; 0xa8
   1a5d2:	f104 05b8 	add.w	r5, r4, #184	; 0xb8
   1a5d6:	b160      	cbz	r0, 1a5f2 <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0xf8>
   1a5d8:	f44f 717a 	mov.w	r1, #1000	; 0x3e8
   1a5dc:	f8d4 00c4 	ldr.w	r0, [r4, #196]	; 0xc4
   1a5e0:	f7f3 f90a 	bl	d7f8 <sym_2O2USXABBLL6KC7E5NJFOHR6JLZMSV4AU5ZYH3Q>
   1a5e4:	f8c4 00c4 	str.w	r0, [r4, #196]	; 0xc4
   1a5e8:	2100      	movs	r1, #0
   1a5ea:	4628      	mov	r0, r5
   1a5ec:	f7ff f8a3 	bl	19736 <sym_K4XFYUFHWSS4WLYRDTKOJ7STOPYHBKAJBCXHBBY>
   1a5f0:	e00f      	b.n	1a612 <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x118>
   1a5f2:	4620      	mov	r0, r4
   1a5f4:	f7ff fd69 	bl	1a0ca <sym_RYQA5YFFRJZLTYB2ISC2Y3WUY3XB3LBBL37F22Q>
   1a5f8:	4606      	mov	r6, r0
   1a5fa:	4631      	mov	r1, r6
   1a5fc:	f8d4 00c4 	ldr.w	r0, [r4, #196]	; 0xc4
   1a600:	f7f3 f8fa 	bl	d7f8 <sym_2O2USXABBLL6KC7E5NJFOHR6JLZMSV4AU5ZYH3Q>
   1a604:	f8c4 00c4 	str.w	r0, [r4, #196]	; 0xc4
   1a608:	4631      	mov	r1, r6
   1a60a:	4628      	mov	r0, r5
   1a60c:	f7ff f893 	bl	19736 <sym_K4XFYUFHWSS4WLYRDTKOJ7STOPYHBKAJBCXHBBY>
   1a610:	1c46      	adds	r6, r0, #1
   1a612:	f8b4 00c8 	ldrh.w	r0, [r4, #200]	; 0xc8
   1a616:	1c41      	adds	r1, r0, #1
   1a618:	290a      	cmp	r1, #10
   1a61a:	d202      	bcs.n	1a622 <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x128>
   1a61c:	4430      	add	r0, r6
   1a61e:	f8a4 00c8 	strh.w	r0, [r4, #200]	; 0xc8
   1a622:	f8d4 00a4 	ldr.w	r0, [r4, #164]	; 0xa4
   1a626:	b130      	cbz	r0, 1a636 <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x13c>
   1a628:	f8b4 00c8 	ldrh.w	r0, [r4, #200]	; 0xc8
   1a62c:	1c40      	adds	r0, r0, #1
   1a62e:	280a      	cmp	r0, #10
   1a630:	d301      	bcc.n	1a636 <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x13c>
   1a632:	2002      	movs	r0, #2
   1a634:	e000      	b.n	1a638 <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x13e>
   1a636:	2003      	movs	r0, #3
   1a638:	f884 00c2 	strb.w	r0, [r4, #194]	; 0xc2
   1a63c:	2100      	movs	r1, #0
   1a63e:	4620      	mov	r0, r4
   1a640:	f000 f822 	bl	1a688 <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x18e>
   1a644:	b120      	cbz	r0, 1a650 <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x156>
   1a646:	4620      	mov	r0, r4
   1a648:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
   1a64c:	f000 b80d 	b.w	1a66a <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x170>
   1a650:	f894 00a0 	ldrb.w	r0, [r4, #160]	; 0xa0
   1a654:	4629      	mov	r1, r5
   1a656:	f000 f8bc 	bl	1a7d2 <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x2d8>
   1a65a:	2800      	cmp	r0, #0
   1a65c:	d104      	bne.n	1a668 <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x16e>
   1a65e:	f240 61ad 	movw	r1, #1709	; 0x6ad
   1a662:	2030      	movs	r0, #48	; 0x30
   1a664:	f7f5 fcbe 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   1a668:	bd70      	pop	{r4, r5, r6, pc}
   1a66a:	b510      	push	{r4, lr}
   1a66c:	4604      	mov	r4, r0
   1a66e:	f814 0fa0 	ldrb.w	r0, [r4, #160]!
   1a672:	f7f3 fe97 	bl	e3a4 <sym_CFZK3G6ZC4ONUAYO2UALWQ4CBO7A6ADNAS2FS7Y>
   1a676:	2000      	movs	r0, #0
   1a678:	7520      	strb	r0, [r4, #20]
   1a67a:	bd10      	pop	{r4, pc}
   1a67c:	b510      	push	{r4, lr}
   1a67e:	f7ff fd28 	bl	1a0d2 <sym_3NMQXTBVJ27TN5IIVET3BSKEAUONNKTPZTYP2HY>
   1a682:	f500 7084 	add.w	r0, r0, #264	; 0x108
   1a686:	bd10      	pop	{r4, pc}
   1a688:	b570      	push	{r4, r5, r6, lr}
   1a68a:	4604      	mov	r4, r0
   1a68c:	f890 00d0 	ldrb.w	r0, [r0, #208]	; 0xd0
   1a690:	460d      	mov	r5, r1
   1a692:	b108      	cbz	r0, 1a698 <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x19e>
   1a694:	2001      	movs	r0, #1
   1a696:	bd70      	pop	{r4, r5, r6, pc}
   1a698:	f8d4 00cc 	ldr.w	r0, [r4, #204]	; 0xcc
   1a69c:	b1a8      	cbz	r0, 1a6ca <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x1d0>
   1a69e:	4620      	mov	r0, r4
   1a6a0:	f7ff fd13 	bl	1a0ca <sym_RYQA5YFFRJZLTYB2ISC2Y3WUY3XB3LBBL37F22Q>
   1a6a4:	4405      	add	r5, r0
   1a6a6:	4620      	mov	r0, r4
   1a6a8:	f7ff ffe8 	bl	1a67c <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x182>
   1a6ac:	1941      	adds	r1, r0, r5
   1a6ae:	f8d4 00cc 	ldr.w	r0, [r4, #204]	; 0xcc
   1a6b2:	4288      	cmp	r0, r1
   1a6b4:	d206      	bcs.n	1a6c4 <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x1ca>
   1a6b6:	2001      	movs	r0, #1
   1a6b8:	f8c4 00cc 	str.w	r0, [r4, #204]	; 0xcc
   1a6bc:	4620      	mov	r0, r4
   1a6be:	f7ff fd52 	bl	1a166 <sym_RPDYS5TXULS3Z2BQR7IFNSOINXPPN4LN764SRIY>
   1a6c2:	e7e7      	b.n	1a694 <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x19a>
   1a6c4:	1b40      	subs	r0, r0, r5
   1a6c6:	f8c4 00cc 	str.w	r0, [r4, #204]	; 0xcc
   1a6ca:	2000      	movs	r0, #0
   1a6cc:	bd70      	pop	{r4, r5, r6, pc}
   1a6ce:	b510      	push	{r4, lr}
   1a6d0:	4604      	mov	r4, r0
   1a6d2:	f890 006b 	ldrb.w	r0, [r0, #107]	; 0x6b
   1a6d6:	f000 f9a3 	bl	1aa20 <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x526>
   1a6da:	4602      	mov	r2, r0
   1a6dc:	4620      	mov	r0, r4
   1a6de:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
   1a6e2:	f240 1117 	movw	r1, #279	; 0x117
   1a6e6:	f7ff bbd5 	b.w	19e94 <sym_EO2RG5OKHPJZIBYGTP56VVOSGXFYZ4DGV24KLDY>
   1a6ea:	b510      	push	{r4, lr}
   1a6ec:	f7fc fc4e 	bl	16f8c <sym_2YSDS7VWGMSD5CN64D2VGQIYXBV3A6NJCHWFZEY>
   1a6f0:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
   1a6f4:	f7f3 bfac 	b.w	e650 <sym_SFR5TVV24PZRIRC5QGOHL2X436PUHKRY2QWKP5Y>
   1a6f8:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
   1a6fc:	4604      	mov	r4, r0
   1a6fe:	f890 014a 	ldrb.w	r0, [r0, #330]	; 0x14a
   1a702:	2800      	cmp	r0, #0
   1a704:	d051      	beq.n	1a7aa <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x2b0>
   1a706:	f894 0134 	ldrb.w	r0, [r4, #308]	; 0x134
   1a70a:	2803      	cmp	r0, #3
   1a70c:	d14d      	bne.n	1a7aa <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x2b0>
   1a70e:	f894 906b 	ldrb.w	r9, [r4, #107]	; 0x6b
   1a712:	f001 fa7e 	bl	1bc12 <sym_R2552DB5ZKNDWW24PBGEV77VCDBC44WVAYRCUXQ>
   1a716:	4605      	mov	r5, r0
   1a718:	f894 0175 	ldrb.w	r0, [r4, #373]	; 0x175
   1a71c:	f7f8 ffd8 	bl	136d0 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x94>
   1a720:	4428      	add	r0, r5
   1a722:	b286      	uxth	r6, r0
   1a724:	f894 0175 	ldrb.w	r0, [r4, #373]	; 0x175
   1a728:	f7f8 ffd2 	bl	136d0 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x94>
   1a72c:	f500 60c8 	add.w	r0, r0, #1600	; 0x640
   1a730:	fa1f f880 	uxth.w	r8, r0
   1a734:	4648      	mov	r0, r9
   1a736:	f001 fb05 	bl	1bd44 <sym_V67AIMSO57NYVNGXZF2PDQSJQJLITHU4KD4CKAY>
   1a73a:	f8d4 1170 	ldr.w	r1, [r4, #368]	; 0x170
   1a73e:	1a0d      	subs	r5, r1, r0
   1a740:	4648      	mov	r0, r9
   1a742:	f001 fb0d 	bl	1bd60 <sym_UX6VBOIQ7ULLMX3I6UDFOFZ6IT2DVZKKVIEVRMY>
   1a746:	f44f 7a7a 	mov.w	sl, #1000	; 0x3e8
   1a74a:	f200 30e7 	addw	r0, r0, #999	; 0x3e7
   1a74e:	fbb0 f0fa 	udiv	r0, r0, sl
   1a752:	1a2d      	subs	r5, r5, r0
   1a754:	4648      	mov	r0, r9
   1a756:	f001 faf5 	bl	1bd44 <sym_V67AIMSO57NYVNGXZF2PDQSJQJLITHU4KD4CKAY>
   1a75a:	f8d4 1108 	ldr.w	r1, [r4, #264]	; 0x108
   1a75e:	1a0f      	subs	r7, r1, r0
   1a760:	4648      	mov	r0, r9
   1a762:	f001 fafd 	bl	1bd60 <sym_UX6VBOIQ7ULLMX3I6UDFOFZ6IT2DVZKKVIEVRMY>
   1a766:	f24a 31a1 	movw	r1, #41889	; 0xa3a1
   1a76a:	4401      	add	r1, r0
   1a76c:	fbb1 f0fa 	udiv	r0, r1, sl
   1a770:	1a39      	subs	r1, r7, r0
   1a772:	f1a1 0060 	sub.w	r0, r1, #96	; 0x60
   1a776:	4370      	muls	r0, r6
   1a778:	fbb0 f2f8 	udiv	r2, r0, r8
   1a77c:	2029      	movs	r0, #41	; 0x29
   1a77e:	eb00 0051 	add.w	r0, r0, r1, lsr #1
   1a782:	3260      	adds	r2, #96	; 0x60
   1a784:	eba0 0152 	sub.w	r1, r0, r2, lsr #1
   1a788:	eb00 0052 	add.w	r0, r0, r2, lsr #1
   1a78c:	42a9      	cmp	r1, r5
   1a78e:	d801      	bhi.n	1a794 <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x29a>
   1a790:	4285      	cmp	r5, r0
   1a792:	d901      	bls.n	1a798 <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x29e>
   1a794:	f7f5 f8a0 	bl	f8d8 <sym_UG7CMBAYEZEKSKQK753P4TBTSPUXVRWUS6QJJOA>
   1a798:	4631      	mov	r1, r6
   1a79a:	68e0      	ldr	r0, [r4, #12]
   1a79c:	f7fd fb50 	bl	17e40 <sym_XEJLNUQGS5P4R5IXDJFF6NE6C2FZWRZYDQOGMPI>
   1a7a0:	2100      	movs	r1, #0
   1a7a2:	f8c4 013c 	str.w	r0, [r4, #316]	; 0x13c
   1a7a6:	f884 114a 	strb.w	r1, [r4, #330]	; 0x14a
   1a7aa:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
   1a7ae:	b570      	push	{r4, r5, r6, lr}
   1a7b0:	460c      	mov	r4, r1
   1a7b2:	4605      	mov	r5, r0
   1a7b4:	f001 fad4 	bl	1bd60 <sym_UX6VBOIQ7ULLMX3I6UDFOFZ6IT2DVZKKVIEVRMY>
   1a7b8:	f24a 31a1 	movw	r1, #41889	; 0xa3a1
   1a7bc:	4408      	add	r0, r1
   1a7be:	f44f 717a 	mov.w	r1, #1000	; 0x3e8
   1a7c2:	fbb0 f6f1 	udiv	r6, r0, r1
   1a7c6:	4628      	mov	r0, r5
   1a7c8:	f001 fabc 	bl	1bd44 <sym_V67AIMSO57NYVNGXZF2PDQSJQJLITHU4KD4CKAY>
   1a7cc:	4430      	add	r0, r6
   1a7ce:	4420      	add	r0, r4
   1a7d0:	bd70      	pop	{r4, r5, r6, pc}
   1a7d2:	f7f3 b98b 	b.w	daec <sym_NFDFVOR5BUFND4TNTGYIYR4ARXJRXWSQ4PVFUKY>
   1a7d6:	b510      	push	{r4, lr}
   1a7d8:	4604      	mov	r4, r0
   1a7da:	f7ff fca3 	bl	1a124 <sym_BDDELQSYWHVCCHSF6HGFFAORZOC56R54KIF45KY>
   1a7de:	b1a0      	cbz	r0, 1a80a <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x310>
   1a7e0:	4620      	mov	r0, r4
   1a7e2:	f7ff fc97 	bl	1a114 <sym_UEZ3FVWFJ5XVLQBVVAHW7UTXVCC77F7ZYGOMLTQ>
   1a7e6:	b918      	cbnz	r0, 1a7f0 <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x2f6>
   1a7e8:	4620      	mov	r0, r4
   1a7ea:	f7ff fc9d 	bl	1a128 <sym_NGJGZTNK6YIH3QX2NKB6A6MT7N5AOKWA6ZOOANQ>
   1a7ee:	b120      	cbz	r0, 1a7fa <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x300>
   1a7f0:	2449      	movs	r4, #73	; 0x49
   1a7f2:	f001 fa73 	bl	1bcdc <sym_5IC6CLAWUNEEDICBRGJBLMKHCLXAQK6XSBR2I2I>
   1a7f6:	b928      	cbnz	r0, 1a804 <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x30a>
   1a7f8:	e001      	b.n	1a7fe <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x304>
   1a7fa:	2442      	movs	r4, #66	; 0x42
   1a7fc:	e7f9      	b.n	1a7f2 <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x2f8>
   1a7fe:	f001 fa63 	bl	1bcc8 <sym_WFMAMHLWHE7QJLGLEMKA2L5X3GX23U2AG4FLMAA>
   1a802:	b100      	cbz	r0, 1a806 <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x30c>
   1a804:	1de4      	adds	r4, r4, #7
   1a806:	4620      	mov	r0, r4
   1a808:	bd10      	pop	{r4, pc}
   1a80a:	206b      	movs	r0, #107	; 0x6b
   1a80c:	bd10      	pop	{r4, pc}
   1a80e:	b570      	push	{r4, r5, r6, lr}
   1a810:	4604      	mov	r4, r0
   1a812:	f890 00a1 	ldrb.w	r0, [r0, #161]	; 0xa1
   1a816:	2500      	movs	r5, #0
   1a818:	b118      	cbz	r0, 1a822 <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x328>
   1a81a:	2001      	movs	r0, #1
   1a81c:	f000 f887 	bl	1a92e <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x434>
   1a820:	4605      	mov	r5, r0
   1a822:	4620      	mov	r0, r4
   1a824:	f7ff fc51 	bl	1a0ca <sym_RYQA5YFFRJZLTYB2ISC2Y3WUY3XB3LBBL37F22Q>
   1a828:	1941      	adds	r1, r0, r5
   1a82a:	f8d4 00c4 	ldr.w	r0, [r4, #196]	; 0xc4
   1a82e:	34b8      	adds	r4, #184	; 0xb8
   1a830:	f7f2 ffe2 	bl	d7f8 <sym_2O2USXABBLL6KC7E5NJFOHR6JLZMSV4AU5ZYH3Q>
   1a834:	2600      	movs	r6, #0
   1a836:	60e0      	str	r0, [r4, #12]
   1a838:	f804 6b0b 	strb.w	r6, [r4], #11
   1a83c:	2001      	movs	r0, #1
   1a83e:	f804 0901 	strb.w	r0, [r4], #-1
   1a842:	2003      	movs	r0, #3
   1a844:	f804 09c2 	strb.w	r0, [r4], #-194
   1a848:	4620      	mov	r0, r4
   1a84a:	f7ff ffc4 	bl	1a7d6 <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x2dc>
   1a84e:	f8a4 00c0 	strh.w	r0, [r4, #192]	; 0xc0
   1a852:	4629      	mov	r1, r5
   1a854:	4620      	mov	r0, r4
   1a856:	f7ff ff17 	bl	1a688 <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x18e>
   1a85a:	b930      	cbnz	r0, 1a86a <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x370>
   1a85c:	f894 00a0 	ldrb.w	r0, [r4, #160]	; 0xa0
   1a860:	f104 01b8 	add.w	r1, r4, #184	; 0xb8
   1a864:	f7ff ffb5 	bl	1a7d2 <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x2d8>
   1a868:	b128      	cbz	r0, 1a876 <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x37c>
   1a86a:	f8a4 60c8 	strh.w	r6, [r4, #200]	; 0xc8
   1a86e:	e8bd 4070 	ldmia.w	sp!, {r4, r5, r6, lr}
   1a872:	f7ff bf3a 	b.w	1a6ea <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x1f0>
   1a876:	f240 61f6 	movw	r1, #1782	; 0x6f6
   1a87a:	2030      	movs	r0, #48	; 0x30
   1a87c:	f7f5 fbb2 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   1a880:	b510      	push	{r4, lr}
   1a882:	4604      	mov	r4, r0
   1a884:	2000      	movs	r0, #0
   1a886:	f884 0134 	strb.w	r0, [r4, #308]	; 0x134
   1a88a:	f894 0168 	ldrb.w	r0, [r4, #360]	; 0x168
   1a88e:	f7f3 fd89 	bl	e3a4 <sym_CFZK3G6ZC4ONUAYO2UALWQ4CBO7A6ADNAS2FS7Y>
   1a892:	2020      	movs	r0, #32
   1a894:	f884 0168 	strb.w	r0, [r4, #360]	; 0x168
   1a898:	bd10      	pop	{r4, pc}
   1a89a:	e92d 43f8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
   1a89e:	2500      	movs	r5, #0
   1a8a0:	f880 50a8 	strb.w	r5, [r0, #168]	; 0xa8
   1a8a4:	f8d0 60c4 	ldr.w	r6, [r0, #196]	; 0xc4
   1a8a8:	4688      	mov	r8, r1
   1a8aa:	4604      	mov	r4, r0
   1a8ac:	f880 50b4 	strb.w	r5, [r0, #180]	; 0xb4
   1a8b0:	2701      	movs	r7, #1
   1a8b2:	f880 70b5 	strb.w	r7, [r0, #181]	; 0xb5
   1a8b6:	f8d0 00a4 	ldr.w	r0, [r0, #164]	; 0xa4
   1a8ba:	4639      	mov	r1, r7
   1a8bc:	34a0      	adds	r4, #160	; 0xa0
   1a8be:	f7f7 fad7 	bl	11e70 <sym_4NT3PFFI5Z6RN57T2HW54HJZ23JEQUTUQPJLJGI>
   1a8c2:	6860      	ldr	r0, [r4, #4]
   1a8c4:	f8c0 615c 	str.w	r6, [r0, #348]	; 0x15c
   1a8c8:	6861      	ldr	r1, [r4, #4]
   1a8ca:	7820      	ldrb	r0, [r4, #0]
   1a8cc:	f881 0168 	strb.w	r0, [r1, #360]	; 0x168
   1a8d0:	6861      	ldr	r1, [r4, #4]
   1a8d2:	f8c1 816c 	str.w	r8, [r1, #364]	; 0x16c
   1a8d6:	6860      	ldr	r0, [r4, #4]
   1a8d8:	f8c0 6160 	str.w	r6, [r0, #352]	; 0x160
   1a8dc:	6864      	ldr	r4, [r4, #4]
   1a8de:	f884 5134 	strb.w	r5, [r4, #308]	; 0x134
   1a8e2:	2300      	movs	r3, #0
   1a8e4:	f8a4 5164 	strh.w	r5, [r4, #356]	; 0x164
   1a8e8:	461a      	mov	r2, r3
   1a8ea:	4619      	mov	r1, r3
   1a8ec:	4620      	mov	r0, r4
   1a8ee:	9500      	str	r5, [sp, #0]
   1a8f0:	f7f8 ffcc 	bl	1388c <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x250>
   1a8f4:	b120      	cbz	r0, 1a900 <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x406>
   1a8f6:	f240 2123 	movw	r1, #547	; 0x223
   1a8fa:	2030      	movs	r0, #48	; 0x30
   1a8fc:	f7f5 fb72 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   1a900:	f8c4 5130 	str.w	r5, [r4, #304]	; 0x130
   1a904:	f8c4 5128 	str.w	r5, [r4, #296]	; 0x128
   1a908:	f884 7134 	strb.w	r7, [r4, #308]	; 0x134
   1a90c:	f8a4 5146 	strh.w	r5, [r4, #326]	; 0x146
   1a910:	f8a4 5144 	strh.w	r5, [r4, #324]	; 0x144
   1a914:	f504 7498 	add.w	r4, r4, #304	; 0x130
   1a918:	7665      	strb	r5, [r4, #25]
   1a91a:	f834 0cbc 	ldrh.w	r0, [r4, #-188]
   1a91e:	1e40      	subs	r0, r0, #1
   1a920:	f824 0cbc 	strh.w	r0, [r4, #-188]
   1a924:	86e5      	strh	r5, [r4, #54]	; 0x36
   1a926:	e8bd 43f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
   1a92a:	f7ff bede 	b.w	1a6ea <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x1f0>
   1a92e:	b508      	push	{r3, lr}
   1a930:	2800      	cmp	r0, #0
   1a932:	f04f 0101 	mov.w	r1, #1
   1a936:	4668      	mov	r0, sp
   1a938:	d002      	beq.n	1a940 <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x446>
   1a93a:	f7f5 fbdf 	bl	100fc <sym_4BGPQMJJRBR2ET4K6M3CH3OLXQGTP2TS7FVXINA>
   1a93e:	e001      	b.n	1a944 <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x44a>
   1a940:	f7f5 fbea 	bl	10118 <sym_RC3WH4TL55HJBAU6BTOKWYOXZCF7BBTLBHIRO6A>
   1a944:	f89d 0000 	ldrb.w	r0, [sp]
   1a948:	f242 7110 	movw	r1, #10000	; 0x2710
   1a94c:	0200      	lsls	r0, r0, #8
   1a94e:	fbb0 f2f1 	udiv	r2, r0, r1
   1a952:	fb01 0012 	mls	r0, r1, r2, r0
   1a956:	bd08      	pop	{r3, pc}
   1a958:	b510      	push	{r4, lr}
   1a95a:	0004      	movs	r4, r0
   1a95c:	d008      	beq.n	1a970 <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x476>
   1a95e:	2909      	cmp	r1, #9
   1a960:	d25c      	bcs.n	1aa1c <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x522>
   1a962:	e8df f001 	tbb	[pc, r1]
   1a966:	3607      	.short	0x3607
   1a968:	5b3a3e3e 	.word	0x5b3a3e3e
   1a96c:	00574a43 	.word	0x00574a43
   1a970:	219c      	movs	r1, #156	; 0x9c
   1a972:	e050      	b.n	1aa16 <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x51c>
   1a974:	2100      	movs	r1, #0
   1a976:	f8c4 1170 	str.w	r1, [r4, #368]	; 0x170
   1a97a:	f894 1148 	ldrb.w	r1, [r4, #328]	; 0x148
   1a97e:	4620      	mov	r0, r4
   1a980:	b189      	cbz	r1, 1a9a6 <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x4ac>
   1a982:	f8b0 2146 	ldrh.w	r2, [r0, #326]	; 0x146
   1a986:	f8b0 1074 	ldrh.w	r1, [r0, #116]	; 0x74
   1a98a:	428a      	cmp	r2, r1
   1a98c:	d106      	bne.n	1a99c <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x4a2>
   1a98e:	f8b0 20fc 	ldrh.w	r2, [r0, #252]	; 0xfc
   1a992:	1a51      	subs	r1, r2, r1
   1a994:	f8a0 10fe 	strh.w	r1, [r0, #254]	; 0xfe
   1a998:	4611      	mov	r1, r2
   1a99a:	e00d      	b.n	1a9b8 <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x4be>
   1a99c:	1a51      	subs	r1, r2, r1
   1a99e:	f8a0 10fe 	strh.w	r1, [r0, #254]	; 0xfe
   1a9a2:	b291      	uxth	r1, r2
   1a9a4:	e008      	b.n	1a9b8 <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x4be>
   1a9a6:	f8b0 1144 	ldrh.w	r1, [r0, #324]	; 0x144
   1a9aa:	f8b0 2074 	ldrh.w	r2, [r0, #116]	; 0x74
   1a9ae:	1a89      	subs	r1, r1, r2
   1a9b0:	f8a0 10fe 	strh.w	r1, [r0, #254]	; 0xfe
   1a9b4:	f8b0 1144 	ldrh.w	r1, [r0, #324]	; 0x144
   1a9b8:	f8a0 1074 	strh.w	r1, [r0, #116]	; 0x74
   1a9bc:	f8d0 1158 	ldr.w	r1, [r0, #344]	; 0x158
   1a9c0:	f8c0 115c 	str.w	r1, [r0, #348]	; 0x15c
   1a9c4:	f7f9 fbd8 	bl	14178 <sym_GRKUQI62F6CK2HPCZKZRWSZ3PZVCGXTWPZAIMJA>
   1a9c8:	4620      	mov	r0, r4
   1a9ca:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
   1a9ce:	f7f9 b9c1 	b.w	13d54 <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x718>
   1a9d2:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
   1a9d6:	f000 b905 	b.w	1abe4 <sym_RUQGL7Y7CEVCWXKLY62UGVRWLQYUPKUGTSH7NVY>
   1a9da:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
   1a9de:	f7fc bc85 	b.w	172ec <sym_EMR2H7KEGRFFKS6A4P3ZPPGOJSTVXLGRI25MEYQ>
   1a9e2:	4620      	mov	r0, r4
   1a9e4:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
   1a9e8:	f000 b827 	b.w	1aa3a <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x540>
   1a9ec:	2001      	movs	r0, #1
   1a9ee:	f7f2 fe21 	bl	d634 <sym_RWBLK2534FJMTER76IYUPZQ3YF74JEALZ2OBIDI>
   1a9f2:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
   1a9f6:	f7fe bd45 	b.w	19484 <sym_DQHYQ3HZODNGY32MUV2QBXEWNH7ASP5VOSVL45Q>
   1a9fa:	f894 0134 	ldrb.w	r0, [r4, #308]	; 0x134
   1a9fe:	2804      	cmp	r0, #4
   1aa00:	d001      	beq.n	1aa06 <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x50c>
   1aa02:	21be      	movs	r1, #190	; 0xbe
   1aa04:	e007      	b.n	1aa16 <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x51c>
   1aa06:	4620      	mov	r0, r4
   1aa08:	f7ff ff3a 	bl	1a880 <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x386>
   1aa0c:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
   1aa10:	f7fb bab2 	b.w	15f78 <sym_ZGH42ABHAQFX3NKIMGIK7DGGJ5XWXU2KDVYEOMI>
   1aa14:	21c7      	movs	r1, #199	; 0xc7
   1aa16:	2030      	movs	r0, #48	; 0x30
   1aa18:	f7f5 fae4 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   1aa1c:	21cb      	movs	r1, #203	; 0xcb
   1aa1e:	e7fa      	b.n	1aa16 <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x51c>
   1aa20:	b510      	push	{r4, lr}
   1aa22:	f001 f99d 	bl	1bd60 <sym_UX6VBOIQ7ULLMX3I6UDFOFZ6IT2DVZKKVIEVRMY>
   1aa26:	f64d 7141 	movw	r1, #57153	; 0xdf41
   1aa2a:	4408      	add	r0, r1
   1aa2c:	f44f 717a 	mov.w	r1, #1000	; 0x3e8
   1aa30:	fbb0 f0f1 	udiv	r0, r0, r1
   1aa34:	f200 1075 	addw	r0, r0, #373	; 0x175
   1aa38:	bd10      	pop	{r4, pc}
   1aa3a:	b57c      	push	{r2, r3, r4, r5, r6, lr}
   1aa3c:	4604      	mov	r4, r0
   1aa3e:	f7fd f9cb 	bl	17dd8 <sym_KN3Y3AMHXOHKS2EMALWM5VNLRDL2MPKHIP6XPDA>
   1aa42:	4601      	mov	r1, r0
   1aa44:	f8d4 015c 	ldr.w	r0, [r4, #348]	; 0x15c
   1aa48:	f7f2 ff08 	bl	d85c <sym_VDVM4QLBTRUPEGCBUXIK25LH2KVQWBZXHRBYEFY>
   1aa4c:	68e1      	ldr	r1, [r4, #12]
   1aa4e:	b111      	cbz	r1, 1aa56 <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x55c>
   1aa50:	fbb0 f0f1 	udiv	r0, r0, r1
   1aa54:	e000      	b.n	1aa58 <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x55e>
   1aa56:	2000      	movs	r0, #0
   1aa58:	f894 107e 	ldrb.w	r1, [r4, #126]	; 0x7e
   1aa5c:	290d      	cmp	r1, #13
   1aa5e:	d00c      	beq.n	1aa7a <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x580>
   1aa60:	f8b4 2074 	ldrh.w	r2, [r4, #116]	; 0x74
   1aa64:	f8b4 1146 	ldrh.w	r1, [r4, #326]	; 0x146
   1aa68:	1813      	adds	r3, r2, r0
   1aa6a:	1acb      	subs	r3, r1, r3
   1aa6c:	b21b      	sxth	r3, r3
   1aa6e:	2b00      	cmp	r3, #0
   1aa70:	db06      	blt.n	1aa80 <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x586>
   1aa72:	1c49      	adds	r1, r1, #1
   1aa74:	f8a4 1146 	strh.w	r1, [r4, #326]	; 0x146
   1aa78:	e006      	b.n	1aa88 <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x58e>
   1aa7a:	f8b4 0146 	ldrh.w	r0, [r4, #326]	; 0x146
   1aa7e:	e012      	b.n	1aaa6 <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x5ac>
   1aa80:	1c40      	adds	r0, r0, #1
   1aa82:	4410      	add	r0, r2
   1aa84:	f8a4 0146 	strh.w	r0, [r4, #326]	; 0x146
   1aa88:	f894 0149 	ldrb.w	r0, [r4, #329]	; 0x149
   1aa8c:	f88d 0000 	strb.w	r0, [sp]
   1aa90:	9800      	ldr	r0, [sp, #0]
   1aa92:	9000      	str	r0, [sp, #0]
   1aa94:	f89d 0000 	ldrb.w	r0, [sp]
   1aa98:	b940      	cbnz	r0, 1aaac <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x5b2>
   1aa9a:	f8b4 0146 	ldrh.w	r0, [r4, #326]	; 0x146
   1aa9e:	f8b4 10fc 	ldrh.w	r1, [r4, #252]	; 0xfc
   1aaa2:	4288      	cmp	r0, r1
   1aaa4:	d102      	bne.n	1aaac <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x5b2>
   1aaa6:	1c40      	adds	r0, r0, #1
   1aaa8:	f8a4 0146 	strh.w	r0, [r4, #326]	; 0x146
   1aaac:	f8b4 0166 	ldrh.w	r0, [r4, #358]	; 0x166
   1aab0:	1c40      	adds	r0, r0, #1
   1aab2:	f8a4 0166 	strh.w	r0, [r4, #358]	; 0x166
   1aab6:	f8b4 00a6 	ldrh.w	r0, [r4, #166]	; 0xa6
   1aaba:	f8b4 10a4 	ldrh.w	r1, [r4, #164]	; 0xa4
   1aabe:	1a40      	subs	r0, r0, r1
   1aac0:	f8b4 1074 	ldrh.w	r1, [r4, #116]	; 0x74
   1aac4:	1e40      	subs	r0, r0, #1
   1aac6:	4408      	add	r0, r1
   1aac8:	b285      	uxth	r5, r0
   1aaca:	e026      	b.n	1ab1a <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x620>
   1aacc:	a801      	add	r0, sp, #4
   1aace:	2300      	movs	r3, #0
   1aad0:	9000      	str	r0, [sp, #0]
   1aad2:	461a      	mov	r2, r3
   1aad4:	4620      	mov	r0, r4
   1aad6:	f7f8 fed9 	bl	1388c <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI+0x250>
   1aada:	2800      	cmp	r0, #0
   1aadc:	d038      	beq.n	1ab50 <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x656>
   1aade:	2801      	cmp	r0, #1
   1aae0:	d004      	beq.n	1aaec <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x5f2>
   1aae2:	f240 6159 	movw	r1, #1625	; 0x659
   1aae6:	2030      	movs	r0, #48	; 0x30
   1aae8:	f7f5 fa7c 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   1aaec:	f8b4 0146 	ldrh.w	r0, [r4, #326]	; 0x146
   1aaf0:	f8b4 10f8 	ldrh.w	r1, [r4, #248]	; 0xf8
   1aaf4:	1a42      	subs	r2, r0, r1
   1aaf6:	b212      	sxth	r2, r2
   1aaf8:	2a00      	cmp	r2, #0
   1aafa:	da09      	bge.n	1ab10 <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x616>
   1aafc:	f8bd 2004 	ldrh.w	r2, [sp, #4]
   1ab00:	4402      	add	r2, r0
   1ab02:	1aaa      	subs	r2, r5, r2
   1ab04:	b212      	sxth	r2, r2
   1ab06:	2a00      	cmp	r2, #0
   1ab08:	da02      	bge.n	1ab10 <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x616>
   1ab0a:	f8a4 1146 	strh.w	r1, [r4, #326]	; 0x146
   1ab0e:	e004      	b.n	1ab1a <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x620>
   1ab10:	f8bd 1004 	ldrh.w	r1, [sp, #4]
   1ab14:	4408      	add	r0, r1
   1ab16:	f8a4 0146 	strh.w	r0, [r4, #326]	; 0x146
   1ab1a:	f8b4 1146 	ldrh.w	r1, [r4, #326]	; 0x146
   1ab1e:	1a68      	subs	r0, r5, r1
   1ab20:	b200      	sxth	r0, r0
   1ab22:	2800      	cmp	r0, #0
   1ab24:	dad2      	bge.n	1aacc <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x5d2>
   1ab26:	f894 0081 	ldrb.w	r0, [r4, #129]	; 0x81
   1ab2a:	b178      	cbz	r0, 1ab4c <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x652>
   1ab2c:	2008      	movs	r0, #8
   1ab2e:	f884 0095 	strb.w	r0, [r4, #149]	; 0x95
   1ab32:	2001      	movs	r0, #1
   1ab34:	f884 0094 	strb.w	r0, [r4, #148]	; 0x94
   1ab38:	4620      	mov	r0, r4
   1ab3a:	f000 f855 	bl	1abe8 <sym_IYZQNCOB4T4XO27DREWRIWJFVHVS355NEDBEGEQ>
   1ab3e:	4620      	mov	r0, r4
   1ab40:	f7ff fe9e 	bl	1a880 <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x386>
   1ab44:	e8bd 407c 	ldmia.w	sp!, {r2, r3, r4, r5, r6, lr}
   1ab48:	f7fb ba16 	b.w	15f78 <sym_ZGH42ABHAQFX3NKIMGIK7DGGJ5XWXU2KDVYEOMI>
   1ab4c:	203e      	movs	r0, #62	; 0x3e
   1ab4e:	e7ee      	b.n	1ab2e <sym_YK6IWY5GKQZZ2ZDYABW3XAEZQGAECOAED3HHDPY+0x634>
   1ab50:	bd7c      	pop	{r2, r3, r4, r5, r6, pc}
   1ab52:	01f4      	.short	0x01f4
   1ab54:	009600fa 	.word	0x009600fa
   1ab58:	004b0064 	.word	0x004b0064
   1ab5c:	001e0032 	.word	0x001e0032
   1ab60:	000a0014 	.word	0x000a0014
   1ab64:	00020005 	.word	0x00020005
   1ab68:	0001      	.short	0x0001
   1ab6a:	eb00 00d1 	add.w	r0, r0, r1, lsr #3
   1ab6e:	f001 0307 	and.w	r3, r1, #7
   1ab72:	7802      	ldrb	r2, [r0, #0]
   1ab74:	2101      	movs	r1, #1
   1ab76:	4099      	lsls	r1, r3
   1ab78:	438a      	bics	r2, r1
   1ab7a:	7002      	strb	r2, [r0, #0]
   1ab7c:	4770      	bx	lr

0001ab7e <sym_HT64RIVISXSWFJE3LL26YHKQRTRRXKVEDBUUUOQ>:
   1ab7e:	b510      	push	{r4, lr}
   1ab80:	4604      	mov	r4, r0
   1ab82:	f8d0 019c 	ldr.w	r0, [r0, #412]	; 0x19c
   1ab86:	68e1      	ldr	r1, [r4, #12]
   1ab88:	4288      	cmp	r0, r1
   1ab8a:	d109      	bne.n	1aba0 <sym_HT64RIVISXSWFJE3LL26YHKQRTRRXKVEDBUUUOQ+0x22>
   1ab8c:	f8b4 11a0 	ldrh.w	r1, [r4, #416]	; 0x1a0
   1ab90:	8aa2      	ldrh	r2, [r4, #20]
   1ab92:	4291      	cmp	r1, r2
   1ab94:	d104      	bne.n	1aba0 <sym_HT64RIVISXSWFJE3LL26YHKQRTRRXKVEDBUUUOQ+0x22>
   1ab96:	f8b4 11a2 	ldrh.w	r1, [r4, #418]	; 0x1a2
   1ab9a:	8ae2      	ldrh	r2, [r4, #22]
   1ab9c:	4291      	cmp	r1, r2
   1ab9e:	d013      	beq.n	1abc8 <sym_HT64RIVISXSWFJE3LL26YHKQRTRRXKVEDBUUUOQ+0x4a>
   1aba0:	8821      	ldrh	r1, [r4, #0]
   1aba2:	f8a4 11bc 	strh.w	r1, [r4, #444]	; 0x1bc
   1aba6:	f7fe fcf4 	bl	19592 <sym_DSAIJDVMFSSNYDQYP4G3W4ZBYTG4PAWPSVOBJ2Y>
   1abaa:	f8a4 01be 	strh.w	r0, [r4, #446]	; 0x1be
   1abae:	f8b4 01a0 	ldrh.w	r0, [r4, #416]	; 0x1a0
   1abb2:	f8a4 01c0 	strh.w	r0, [r4, #448]	; 0x1c0
   1abb6:	f8b4 01a2 	ldrh.w	r0, [r4, #418]	; 0x1a2
   1abba:	f8a4 01c2 	strh.w	r0, [r4, #450]	; 0x1c2
   1abbe:	2001      	movs	r0, #1
   1abc0:	f884 01b8 	strb.w	r0, [r4, #440]	; 0x1b8
   1abc4:	f7fb f9d8 	bl	15f78 <sym_ZGH42ABHAQFX3NKIMGIK7DGGJ5XWXU2KDVYEOMI>
   1abc8:	2102      	movs	r1, #2
   1abca:	4620      	mov	r0, r4
   1abcc:	f7f7 f950 	bl	11e70 <sym_4NT3PFFI5Z6RN57T2HW54HJZ23JEQUTUQPJLJGI>
   1abd0:	2000      	movs	r0, #0
   1abd2:	f804 0f7e 	strb.w	r0, [r4, #126]!
   1abd6:	2003      	movs	r0, #3
   1abd8:	70e0      	strb	r0, [r4, #3]
   1abda:	bd10      	pop	{r4, pc}

0001abdc <sym_PDDLBAI7RAK2OQ7ZHFU33L5KMJV5YKPLX5ITXAY>:
   1abdc:	f7f5 bdb6 	b.w	1074c <sym_3QFBRH4ZSIA64QP2I3K547Y5WIALGQTCBP5Y5SQ>

0001abe0 <sym_OTZAOT4DEZSL3R4MXRNUS2BIBKPPCOEO2SMZYAI>:
   1abe0:	2000      	movs	r0, #0
   1abe2:	4770      	bx	lr

0001abe4 <sym_RUQGL7Y7CEVCWXKLY62UGVRWLQYUPKUGTSH7NVY>:
   1abe4:	f7f6 bae4 	b.w	111b0 <sym_WCN6C6ROB2XGQKTGXN5OMY5TLRX5IYOWNO7A6PQ>

0001abe8 <sym_IYZQNCOB4T4XO27DREWRIWJFVHVS355NEDBEGEQ>:
   1abe8:	2100      	movs	r1, #0
   1abea:	f880 107d 	strb.w	r1, [r0, #125]	; 0x7d
   1abee:	f880 107e 	strb.w	r1, [r0, #126]	; 0x7e
   1abf2:	f880 1081 	strb.w	r1, [r0, #129]	; 0x81
   1abf6:	f890 1103 	ldrb.w	r1, [r0, #259]	; 0x103
   1abfa:	b109      	cbz	r1, 1ac00 <sym_IYZQNCOB4T4XO27DREWRIWJFVHVS355NEDBEGEQ+0x18>
   1abfc:	2102      	movs	r1, #2
   1abfe:	e000      	b.n	1ac02 <sym_IYZQNCOB4T4XO27DREWRIWJFVHVS355NEDBEGEQ+0x1a>
   1ac00:	2103      	movs	r1, #3
   1ac02:	f7f8 bd1b 	b.w	1363c <sym_EXAZKO22MNOFNIXIFHQ2Z4GAYMKBCE2UPJ6JSVI>
   1ac06:	f890 007c 	ldrb.w	r0, [r0, #124]	; 0x7c
   1ac0a:	28fe      	cmp	r0, #254	; 0xfe
   1ac0c:	d001      	beq.n	1ac12 <sym_IYZQNCOB4T4XO27DREWRIWJFVHVS355NEDBEGEQ+0x2a>
   1ac0e:	2001      	movs	r0, #1
   1ac10:	4770      	bx	lr
   1ac12:	2000      	movs	r0, #0
   1ac14:	4770      	bx	lr
   1ac16:	b510      	push	{r4, lr}
   1ac18:	2801      	cmp	r0, #1
   1ac1a:	d006      	beq.n	1ac2a <sym_IYZQNCOB4T4XO27DREWRIWJFVHVS355NEDBEGEQ+0x42>
   1ac1c:	2802      	cmp	r0, #2
   1ac1e:	d004      	beq.n	1ac2a <sym_IYZQNCOB4T4XO27DREWRIWJFVHVS355NEDBEGEQ+0x42>
   1ac20:	f240 2163 	movw	r1, #611	; 0x263
   1ac24:	2006      	movs	r0, #6
   1ac26:	f7f5 f9dd 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   1ac2a:	bd10      	pop	{r4, pc}
   1ac2c:	2801      	cmp	r0, #1
   1ac2e:	d002      	beq.n	1ac36 <sym_IYZQNCOB4T4XO27DREWRIWJFVHVS355NEDBEGEQ+0x4e>
   1ac30:	2802      	cmp	r0, #2
   1ac32:	d105      	bne.n	1ac40 <sym_IYZQNCOB4T4XO27DREWRIWJFVHVS355NEDBEGEQ+0x58>
   1ac34:	e002      	b.n	1ac3c <sym_IYZQNCOB4T4XO27DREWRIWJFVHVS355NEDBEGEQ+0x54>
   1ac36:	2901      	cmp	r1, #1
   1ac38:	d004      	beq.n	1ac44 <sym_IYZQNCOB4T4XO27DREWRIWJFVHVS355NEDBEGEQ+0x5c>
   1ac3a:	e001      	b.n	1ac40 <sym_IYZQNCOB4T4XO27DREWRIWJFVHVS355NEDBEGEQ+0x58>
   1ac3c:	2902      	cmp	r1, #2
   1ac3e:	d001      	beq.n	1ac44 <sym_IYZQNCOB4T4XO27DREWRIWJFVHVS355NEDBEGEQ+0x5c>
   1ac40:	2000      	movs	r0, #0
   1ac42:	4770      	bx	lr
   1ac44:	2001      	movs	r0, #1
   1ac46:	4770      	bx	lr
   1ac48:	1a40      	subs	r0, r0, r1
   1ac4a:	b200      	sxth	r0, r0
   1ac4c:	f647 71fe 	movw	r1, #32766	; 0x7ffe
   1ac50:	4288      	cmp	r0, r1
   1ac52:	dc01      	bgt.n	1ac58 <sym_IYZQNCOB4T4XO27DREWRIWJFVHVS355NEDBEGEQ+0x70>
   1ac54:	2800      	cmp	r0, #0
   1ac56:	dc01      	bgt.n	1ac5c <sym_IYZQNCOB4T4XO27DREWRIWJFVHVS355NEDBEGEQ+0x74>
   1ac58:	2001      	movs	r0, #1
   1ac5a:	4770      	bx	lr
   1ac5c:	2000      	movs	r0, #0
   1ac5e:	4770      	bx	lr
   1ac60:	eb00 00d1 	add.w	r0, r0, r1, lsr #3
   1ac64:	f001 0107 	and.w	r1, r1, #7
   1ac68:	7800      	ldrb	r0, [r0, #0]
   1ac6a:	2201      	movs	r2, #1
   1ac6c:	408a      	lsls	r2, r1
   1ac6e:	4010      	ands	r0, r2
   1ac70:	40c8      	lsrs	r0, r1
   1ac72:	4770      	bx	lr
   1ac74:	b118      	cbz	r0, 1ac7e <sym_IYZQNCOB4T4XO27DREWRIWJFVHVS355NEDBEGEQ+0x96>
   1ac76:	2802      	cmp	r0, #2
   1ac78:	d001      	beq.n	1ac7e <sym_IYZQNCOB4T4XO27DREWRIWJFVHVS355NEDBEGEQ+0x96>
   1ac7a:	2001      	movs	r0, #1
   1ac7c:	4770      	bx	lr
   1ac7e:	2000      	movs	r0, #0
   1ac80:	4770      	bx	lr

0001ac82 <sym_CY3FVUNSUUR4I46K644NW3FXSFSLG3ETQWBRBHQ>:
   1ac82:	b5fe      	push	{r1, r2, r3, r4, r5, r6, r7, lr}
   1ac84:	7881      	ldrb	r1, [r0, #2]
   1ac86:	4604      	mov	r4, r0
   1ac88:	291a      	cmp	r1, #26
   1ac8a:	d025      	beq.n	1acd8 <sym_CY3FVUNSUUR4I46K644NW3FXSFSLG3ETQWBRBHQ+0x56>
   1ac8c:	dc0e      	bgt.n	1acac <sym_CY3FVUNSUUR4I46K644NW3FXSFSLG3ETQWBRBHQ+0x2a>
   1ac8e:	2916      	cmp	r1, #22
   1ac90:	d22d      	bcs.n	1acee <sym_CY3FVUNSUUR4I46K644NW3FXSFSLG3ETQWBRBHQ+0x6c>
   1ac92:	e8df f001 	tbb	[pc, r1]
   1ac96:	2c2c      	.short	0x2c2c
   1ac98:	212c2c2c 	.word	0x212c2c2c
   1ac9c:	2c2c2c2c 	.word	0x2c2c2c2c
   1aca0:	2c2c2c2c 	.word	0x2c2c2c2c
   1aca4:	2c2c2c2c 	.word	0x2c2c2c2c
   1aca8:	2121212c 	.word	0x2121212c
   1acac:	292a      	cmp	r1, #42	; 0x2a
   1acae:	d01e      	beq.n	1acee <sym_CY3FVUNSUUR4I46K644NW3FXSFSLG3ETQWBRBHQ+0x6c>
   1acb0:	dc0b      	bgt.n	1acca <sym_CY3FVUNSUUR4I46K644NW3FXSFSLG3ETQWBRBHQ+0x48>
   1acb2:	f1a1 011e 	sub.w	r1, r1, #30
   1acb6:	290c      	cmp	r1, #12
   1acb8:	d219      	bcs.n	1acee <sym_CY3FVUNSUUR4I46K644NW3FXSFSLG3ETQWBRBHQ+0x6c>
   1acba:	e8df f001 	tbb	[pc, r1]
   1acbe:	1818      	.short	0x1818
   1acc0:	18181818 	.word	0x18181818
   1acc4:	18181818 	.word	0x18181818
   1acc8:	0d18      	.short	0x0d18
   1acca:	393a      	subs	r1, #58	; 0x3a
   1accc:	2904      	cmp	r1, #4
   1acce:	d20e      	bcs.n	1acee <sym_CY3FVUNSUUR4I46K644NW3FXSFSLG3ETQWBRBHQ+0x6c>
   1acd0:	e8df f001 	tbb	[pc, r1]
   1acd4:	020d020d 	.word	0x020d020d
   1acd8:	8820      	ldrh	r0, [r4, #0]
   1acda:	f5b0 6f70 	cmp.w	r0, #3840	; 0xf00
   1acde:	d206      	bcs.n	1acee <sym_CY3FVUNSUUR4I46K644NW3FXSFSLG3ETQWBRBHQ+0x6c>
   1ace0:	2701      	movs	r7, #1
   1ace2:	4669      	mov	r1, sp
   1ace4:	f7fe fc44 	bl	19570 <sym_UHWWEFDYCEMO6BV2Q3GVLMFC37EIDJEWGQC2XUA>
   1ace8:	b118      	cbz	r0, 1acf2 <sym_CY3FVUNSUUR4I46K644NW3FXSFSLG3ETQWBRBHQ+0x70>
   1acea:	2002      	movs	r0, #2
   1acec:	bdfe      	pop	{r1, r2, r3, r4, r5, r6, r7, pc}
   1acee:	2012      	movs	r0, #18
   1acf0:	bdfe      	pop	{r1, r2, r3, r4, r5, r6, r7, pc}
   1acf2:	9d01      	ldr	r5, [sp, #4]
   1acf4:	4668      	mov	r0, sp
   1acf6:	462e      	mov	r6, r5
   1acf8:	f505 75bc 	add.w	r5, r5, #376	; 0x178
   1acfc:	f206 1679 	addw	r6, r6, #377	; 0x179
   1ad00:	f000 fe94 	bl	1ba2c <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x31a>
   1ad04:	b138      	cbz	r0, 1ad16 <sym_CY3FVUNSUUR4I46K644NW3FXSFSLG3ETQWBRBHQ+0x94>
   1ad06:	7828      	ldrb	r0, [r5, #0]
   1ad08:	f88d 0008 	strb.w	r0, [sp, #8]
   1ad0c:	9802      	ldr	r0, [sp, #8]
   1ad0e:	9002      	str	r0, [sp, #8]
   1ad10:	f89d 0008 	ldrb.w	r0, [sp, #8]
   1ad14:	b108      	cbz	r0, 1ad1a <sym_CY3FVUNSUUR4I46K644NW3FXSFSLG3ETQWBRBHQ+0x98>
   1ad16:	200c      	movs	r0, #12
   1ad18:	bdfe      	pop	{r1, r2, r3, r4, r5, r6, r7, pc}
   1ad1a:	702f      	strb	r7, [r5, #0]
   1ad1c:	78a0      	ldrb	r0, [r4, #2]
   1ad1e:	7030      	strb	r0, [r6, #0]
   1ad20:	4668      	mov	r0, sp
   1ad22:	f7fe ff9f 	bl	19c64 <sym_24AALTDC2IQ6VNWU2ALOY4V3RG5R2RARTUG4AZY>
   1ad26:	2000      	movs	r0, #0
   1ad28:	bdfe      	pop	{r1, r2, r3, r4, r5, r6, r7, pc}

0001ad2a <sym_E3GR2VF26UUA2VWZ2Y3HIYXNU3SITAZBGOK2GXA>:
   1ad2a:	b510      	push	{r4, lr}
   1ad2c:	4604      	mov	r4, r0
   1ad2e:	7800      	ldrb	r0, [r0, #0]
   1ad30:	b118      	cbz	r0, 1ad3a <sym_E3GR2VF26UUA2VWZ2Y3HIYXNU3SITAZBGOK2GXA+0x10>
   1ad32:	2801      	cmp	r0, #1
   1ad34:	d001      	beq.n	1ad3a <sym_E3GR2VF26UUA2VWZ2Y3HIYXNU3SITAZBGOK2GXA+0x10>
   1ad36:	2012      	movs	r0, #18
   1ad38:	bd10      	pop	{r4, pc}
   1ad3a:	f000 fe2b 	bl	1b994 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x282>
   1ad3e:	b120      	cbz	r0, 1ad4a <sym_E3GR2VF26UUA2VWZ2Y3HIYXNU3SITAZBGOK2GXA+0x20>
   1ad40:	f7f6 fe88 	bl	11a54 <sym_WHSZ4VQHSDNZTVWJWAYGMNU7AWSUZKLKTBUNDPY>
   1ad44:	b108      	cbz	r0, 1ad4a <sym_E3GR2VF26UUA2VWZ2Y3HIYXNU3SITAZBGOK2GXA+0x20>
   1ad46:	200c      	movs	r0, #12
   1ad48:	bd10      	pop	{r4, pc}
   1ad4a:	7820      	ldrb	r0, [r4, #0]
   1ad4c:	f7ff ff92 	bl	1ac74 <sym_IYZQNCOB4T4XO27DREWRIWJFVHVS355NEDBEGEQ+0x8c>
   1ad50:	1de2      	adds	r2, r4, #7
   1ad52:	f104 0317 	add.w	r3, r4, #23
   1ad56:	1c61      	adds	r1, r4, #1
   1ad58:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
   1ad5c:	f7f6 beac 	b.w	11ab8 <sym_Z3745JZ5MC4MMBP2LFCOSP7OKPPVFDOPIURJWVQ>

0001ad60 <sym_JNP3XPG2S47QWEENF5PX2JQ36HNB7C2PPNDBQRI>:
   1ad60:	b510      	push	{r4, lr}
   1ad62:	4604      	mov	r4, r0
   1ad64:	f000 fef2 	bl	1bb4c <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x43a>
   1ad68:	b108      	cbz	r0, 1ad6e <sym_JNP3XPG2S47QWEENF5PX2JQ36HNB7C2PPNDBQRI+0xe>
   1ad6a:	200c      	movs	r0, #12
   1ad6c:	bd10      	pop	{r4, pc}
   1ad6e:	7820      	ldrb	r0, [r4, #0]
   1ad70:	b118      	cbz	r0, 1ad7a <sym_JNP3XPG2S47QWEENF5PX2JQ36HNB7C2PPNDBQRI+0x1a>
   1ad72:	2801      	cmp	r0, #1
   1ad74:	d001      	beq.n	1ad7a <sym_JNP3XPG2S47QWEENF5PX2JQ36HNB7C2PPNDBQRI+0x1a>
   1ad76:	2012      	movs	r0, #18
   1ad78:	bd10      	pop	{r4, pc}
   1ad7a:	f7ff ff7b 	bl	1ac74 <sym_IYZQNCOB4T4XO27DREWRIWJFVHVS355NEDBEGEQ+0x8c>
   1ad7e:	1c61      	adds	r1, r4, #1
   1ad80:	f7f6 ff12 	bl	11ba8 <sym_GHVM34OXBYILMDKR3F5DVNCQCBMJUJL5PW2RQYQ>
   1ad84:	b108      	cbz	r0, 1ad8a <sym_JNP3XPG2S47QWEENF5PX2JQ36HNB7C2PPNDBQRI+0x2a>
   1ad86:	2000      	movs	r0, #0
   1ad88:	bd10      	pop	{r4, pc}
   1ad8a:	2007      	movs	r0, #7
   1ad8c:	bd10      	pop	{r4, pc}

0001ad8e <sym_OH2GYDTNQL2GOMT5N64M2LRDK6O2PDY6H2CP6VA>:
   1ad8e:	b510      	push	{r4, lr}
   1ad90:	f000 fe00 	bl	1b994 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x282>
   1ad94:	b120      	cbz	r0, 1ada0 <sym_OH2GYDTNQL2GOMT5N64M2LRDK6O2PDY6H2CP6VA+0x12>
   1ad96:	f7f6 fe5d 	bl	11a54 <sym_WHSZ4VQHSDNZTVWJWAYGMNU7AWSUZKLKTBUNDPY>
   1ad9a:	b108      	cbz	r0, 1ada0 <sym_OH2GYDTNQL2GOMT5N64M2LRDK6O2PDY6H2CP6VA+0x12>
   1ad9c:	200c      	movs	r0, #12
   1ad9e:	bd10      	pop	{r4, pc}
   1ada0:	f7f6 fed0 	bl	11b44 <sym_FLX2PIIVHO3CLB5CJ7E7YSNFE2YWATNH27BL53A>
   1ada4:	2000      	movs	r0, #0
   1ada6:	bd10      	pop	{r4, pc}

0001ada8 <sym_UL6TXQTTOV34QCAIQPVPFYEQSUUJPIEN42CTITI>:
   1ada8:	b510      	push	{r4, lr}
   1adaa:	f000 fecf 	bl	1bb4c <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x43a>
   1adae:	b108      	cbz	r0, 1adb4 <sym_UL6TXQTTOV34QCAIQPVPFYEQSUUJPIEN42CTITI+0xc>
   1adb0:	200c      	movs	r0, #12
   1adb2:	bd10      	pop	{r4, pc}
   1adb4:	f7f6 ff20 	bl	11bf8 <sym_KO3VCNGABVWM4325342CFFPZBSXFKFARUCMURAY>
   1adb8:	2000      	movs	r0, #0
   1adba:	bd10      	pop	{r4, pc}

0001adbc <sym_V4G4DUSXVGCZMSYXHZZWQMKMNZCZVEEIBVCQ7EQ>:
   1adbc:	b510      	push	{r4, lr}
   1adbe:	460b      	mov	r3, r1
   1adc0:	2201      	movs	r2, #1
   1adc2:	f100 0110 	add.w	r1, r0, #16
   1adc6:	f7fe fbb5 	bl	19534 <sym_L64WJ6W52HQBFQCTPO5LHELOWQEJNMIWLQKG6JY>
   1adca:	2000      	movs	r0, #0
   1adcc:	bd10      	pop	{r4, pc}

0001adce <sym_FYIHUHKV4DLEPRADEPLDQO3YFUPWZFWRUJ4JAOA>:
   1adce:	b510      	push	{r4, lr}
   1add0:	8800      	ldrh	r0, [r0, #0]
   1add2:	2100      	movs	r1, #0
   1add4:	f7fe f989 	bl	190ea <sym_5X75WALYYBUWN4XT5LYOZBIGSZHVNFKF5J4CSQI>
   1add8:	b118      	cbz	r0, 1ade2 <sym_FYIHUHKV4DLEPRADEPLDQO3YFUPWZFWRUJ4JAOA+0x14>
   1adda:	f890 117b 	ldrb.w	r1, [r0, #379]	; 0x17b
   1adde:	b111      	cbz	r1, 1ade6 <sym_FYIHUHKV4DLEPRADEPLDQO3YFUPWZFWRUJ4JAOA+0x18>
   1ade0:	e007      	b.n	1adf2 <sym_FYIHUHKV4DLEPRADEPLDQO3YFUPWZFWRUJ4JAOA+0x24>
   1ade2:	2002      	movs	r0, #2
   1ade4:	bd10      	pop	{r4, pc}
   1ade6:	f890 107e 	ldrb.w	r1, [r0, #126]	; 0x7e
   1adea:	2914      	cmp	r1, #20
   1adec:	d003      	beq.n	1adf6 <sym_FYIHUHKV4DLEPRADEPLDQO3YFUPWZFWRUJ4JAOA+0x28>
   1adee:	2915      	cmp	r1, #21
   1adf0:	d001      	beq.n	1adf6 <sym_FYIHUHKV4DLEPRADEPLDQO3YFUPWZFWRUJ4JAOA+0x28>
   1adf2:	200c      	movs	r0, #12
   1adf4:	bd10      	pop	{r4, pc}
   1adf6:	2102      	movs	r1, #2
   1adf8:	f880 117b 	strb.w	r1, [r0, #379]	; 0x17b
   1adfc:	2000      	movs	r0, #0
   1adfe:	bd10      	pop	{r4, pc}

0001ae00 <sym_NLJDQQVQW4HF3HHWCCOGCGX457WQXW2LVV5NUTI>:
   1ae00:	b538      	push	{r3, r4, r5, lr}
   1ae02:	4605      	mov	r5, r0
   1ae04:	8800      	ldrh	r0, [r0, #0]
   1ae06:	2100      	movs	r1, #0
   1ae08:	f7fe f96f 	bl	190ea <sym_5X75WALYYBUWN4XT5LYOZBIGSZHVNFKF5J4CSQI>
   1ae0c:	0004      	movs	r4, r0
   1ae0e:	d003      	beq.n	1ae18 <sym_NLJDQQVQW4HF3HHWCCOGCGX457WQXW2LVV5NUTI+0x18>
   1ae10:	f894 017b 	ldrb.w	r0, [r4, #379]	; 0x17b
   1ae14:	b110      	cbz	r0, 1ae1c <sym_NLJDQQVQW4HF3HHWCCOGCGX457WQXW2LVV5NUTI+0x1c>
   1ae16:	e010      	b.n	1ae3a <sym_NLJDQQVQW4HF3HHWCCOGCGX457WQXW2LVV5NUTI+0x3a>
   1ae18:	2002      	movs	r0, #2
   1ae1a:	bd38      	pop	{r3, r4, r5, pc}
   1ae1c:	f894 007e 	ldrb.w	r0, [r4, #126]	; 0x7e
   1ae20:	2814      	cmp	r0, #20
   1ae22:	d001      	beq.n	1ae28 <sym_NLJDQQVQW4HF3HHWCCOGCGX457WQXW2LVV5NUTI+0x28>
   1ae24:	2815      	cmp	r0, #21
   1ae26:	d108      	bne.n	1ae3a <sym_NLJDQQVQW4HF3HHWCCOGCGX457WQXW2LVV5NUTI+0x3a>
   1ae28:	f894 01cc 	ldrb.w	r0, [r4, #460]	; 0x1cc
   1ae2c:	f88d 0000 	strb.w	r0, [sp]
   1ae30:	9800      	ldr	r0, [sp, #0]
   1ae32:	9000      	str	r0, [sp, #0]
   1ae34:	f89d 0000 	ldrb.w	r0, [sp]
   1ae38:	b108      	cbz	r0, 1ae3e <sym_NLJDQQVQW4HF3HHWCCOGCGX457WQXW2LVV5NUTI+0x3e>
   1ae3a:	200c      	movs	r0, #12
   1ae3c:	bd38      	pop	{r3, r4, r5, pc}
   1ae3e:	2210      	movs	r2, #16
   1ae40:	1ca9      	adds	r1, r5, #2
   1ae42:	f504 70be 	add.w	r0, r4, #380	; 0x17c
   1ae46:	f7fd f93c 	bl	180c2 <sym_DQONLUECJTIEYFOFJXXAPJO4POIAJKJNKBGVN5A>
   1ae4a:	2001      	movs	r0, #1
   1ae4c:	f884 017b 	strb.w	r0, [r4, #379]	; 0x17b
   1ae50:	2000      	movs	r0, #0
   1ae52:	bd38      	pop	{r3, r4, r5, pc}

0001ae54 <sym_PMB4FUQR4IQVAL4FOP3PPQDDXYDFQIUYDVZ6DGY>:
   1ae54:	b510      	push	{r4, lr}
   1ae56:	2108      	movs	r1, #8
   1ae58:	f7f5 f96c 	bl	10134 <sym_CVMXQJYKHZVHIOMGOYEICPLVAIQNUBL6USVNZSA>
   1ae5c:	2000      	movs	r0, #0
   1ae5e:	bd10      	pop	{r4, pc}

0001ae60 <sym_IZN3QWH7I4A7OX5E6DK53W35W3UX25DTZ6CQ57Q>:
   1ae60:	b510      	push	{r4, lr}
   1ae62:	4604      	mov	r4, r0
   1ae64:	f000 fdf9 	bl	1ba5a <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x348>
   1ae68:	f7ff f962 	bl	1a130 <sym_L5UCRJFFWEVVII5IYG6PAKIQHXM34B62KO6ERPY>
   1ae6c:	7020      	strb	r0, [r4, #0]
   1ae6e:	2000      	movs	r0, #0
   1ae70:	bd10      	pop	{r4, pc}

0001ae72 <sym_IS5N626FV5MT54PZIWSKFZUUH6WWJWJ46G6YN3A>:
   1ae72:	b510      	push	{r4, lr}
   1ae74:	4604      	mov	r4, r0
   1ae76:	f000 fdd3 	bl	1ba20 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x30e>
   1ae7a:	b140      	cbz	r0, 1ae8e <sym_IS5N626FV5MT54PZIWSKFZUUH6WWJWJ46G6YN3A+0x1c>
   1ae7c:	20fb      	movs	r0, #251	; 0xfb
   1ae7e:	8020      	strh	r0, [r4, #0]
   1ae80:	f640 0148 	movw	r1, #2120	; 0x848
   1ae84:	8061      	strh	r1, [r4, #2]
   1ae86:	80a0      	strh	r0, [r4, #4]
   1ae88:	80e1      	strh	r1, [r4, #6]
   1ae8a:	2000      	movs	r0, #0
   1ae8c:	bd10      	pop	{r4, pc}
   1ae8e:	2001      	movs	r0, #1
   1ae90:	bd10      	pop	{r4, pc}

0001ae92 <sym_VT6ZFFM2E7JNVAG5YLSPAZYR4HOPL3X5GX3IH7A>:
   1ae92:	b5fe      	push	{r1, r2, r3, r4, r5, r6, r7, lr}
   1ae94:	460d      	mov	r5, r1
   1ae96:	4606      	mov	r6, r0
   1ae98:	f7fb fc18 	bl	166cc <sym_PBZPB3PSJJYSQQW7TH2XDGNLD2UYSZR6YJ4ZZNQ>
   1ae9c:	f3c0 2000 	ubfx	r0, r0, #8, #1
   1aea0:	b300      	cbz	r0, 1aee4 <sym_VT6ZFFM2E7JNVAG5YLSPAZYR4HOPL3X5GX3IH7A+0x52>
   1aea2:	8830      	ldrh	r0, [r6, #0]
   1aea4:	4669      	mov	r1, sp
   1aea6:	f7fe fb63 	bl	19570 <sym_UHWWEFDYCEMO6BV2Q3GVLMFC37EIDJEWGQC2XUA>
   1aeaa:	2800      	cmp	r0, #0
   1aeac:	d119      	bne.n	1aee2 <sym_VT6ZFFM2E7JNVAG5YLSPAZYR4HOPL3X5GX3IH7A+0x50>
   1aeae:	9c01      	ldr	r4, [sp, #4]
   1aeb0:	2700      	movs	r7, #0
   1aeb2:	f884 706c 	strb.w	r7, [r4, #108]	; 0x6c
   1aeb6:	f814 0f6a 	ldrb.w	r0, [r4, #106]!
   1aeba:	f000 fc46 	bl	1b74a <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x38>
   1aebe:	70a8      	strb	r0, [r5, #2]
   1aec0:	7860      	ldrb	r0, [r4, #1]
   1aec2:	f000 fc42 	bl	1b74a <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x38>
   1aec6:	70e8      	strb	r0, [r5, #3]
   1aec8:	78a0      	ldrb	r0, [r4, #2]
   1aeca:	f88d 0008 	strb.w	r0, [sp, #8]
   1aece:	9802      	ldr	r0, [sp, #8]
   1aed0:	9002      	str	r0, [sp, #8]
   1aed2:	f89d 0008 	ldrb.w	r0, [sp, #8]
   1aed6:	3c6a      	subs	r4, #106	; 0x6a
   1aed8:	2800      	cmp	r0, #0
   1aeda:	d1ea      	bne.n	1aeb2 <sym_VT6ZFFM2E7JNVAG5YLSPAZYR4HOPL3X5GX3IH7A+0x20>
   1aedc:	8830      	ldrh	r0, [r6, #0]
   1aede:	8028      	strh	r0, [r5, #0]
   1aee0:	2000      	movs	r0, #0
   1aee2:	bdfe      	pop	{r1, r2, r3, r4, r5, r6, r7, pc}
   1aee4:	2001      	movs	r0, #1
   1aee6:	bdfe      	pop	{r1, r2, r3, r4, r5, r6, r7, pc}

0001aee8 <sym_JLDLLKBNDO6T4E6HHXX2AI4IG5EDEVR7ET3G3HY>:
   1aee8:	2108      	movs	r1, #8
   1aeea:	7001      	strb	r1, [r0, #0]
   1aeec:	2000      	movs	r0, #0
   1aeee:	4770      	bx	lr

0001aef0 <sym_KQ364TAUBSTGBVLC6BUZ6LU5UQACEISDV2KKO5I>:
   1aef0:	b510      	push	{r4, lr}
   1aef2:	4604      	mov	r4, r0
   1aef4:	20d8      	movs	r0, #216	; 0xd8
   1aef6:	7020      	strb	r0, [r4, #0]
   1aef8:	f000 fd73 	bl	1b9e2 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x2d0>
   1aefc:	7060      	strb	r0, [r4, #1]
   1aefe:	2000      	movs	r0, #0
   1af00:	bd10      	pop	{r4, pc}

0001af02 <sym_5OKDNHIYSDG2NFFB242VCRESG3W37YENBGQLRBA>:
   1af02:	2108      	movs	r1, #8
   1af04:	7001      	strb	r1, [r0, #0]
   1af06:	2000      	movs	r0, #0
   1af08:	4770      	bx	lr

0001af0a <sym_2DIQZNL4PQ4LJGTNCUPMO2N2CADFMWHJOSUVSUQ>:
   1af0a:	b510      	push	{r4, lr}
   1af0c:	4604      	mov	r4, r0
   1af0e:	7800      	ldrb	r0, [r0, #0]
   1af10:	b108      	cbz	r0, 1af16 <sym_2DIQZNL4PQ4LJGTNCUPMO2N2CADFMWHJOSUVSUQ+0xc>
   1af12:	2801      	cmp	r0, #1
   1af14:	d110      	bne.n	1af38 <sym_2DIQZNL4PQ4LJGTNCUPMO2N2CADFMWHJOSUVSUQ+0x2e>
   1af16:	f000 fd3d 	bl	1b994 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x282>
   1af1a:	b120      	cbz	r0, 1af26 <sym_2DIQZNL4PQ4LJGTNCUPMO2N2CADFMWHJOSUVSUQ+0x1c>
   1af1c:	f7f6 fd9a 	bl	11a54 <sym_WHSZ4VQHSDNZTVWJWAYGMNU7AWSUZKLKTBUNDPY>
   1af20:	b108      	cbz	r0, 1af26 <sym_2DIQZNL4PQ4LJGTNCUPMO2N2CADFMWHJOSUVSUQ+0x1c>
   1af22:	200c      	movs	r0, #12
   1af24:	bd10      	pop	{r4, pc}
   1af26:	7820      	ldrb	r0, [r4, #0]
   1af28:	f7ff fea4 	bl	1ac74 <sym_IYZQNCOB4T4XO27DREWRIWJFVHVS355NEDBEGEQ+0x8c>
   1af2c:	1c61      	adds	r1, r4, #1
   1af2e:	f7fe fae7 	bl	19500 <sym_G6YVAU2J75AOT237PVQAC5AEQMWPZ6OKE6ASZAI>
   1af32:	b108      	cbz	r0, 1af38 <sym_2DIQZNL4PQ4LJGTNCUPMO2N2CADFMWHJOSUVSUQ+0x2e>
   1af34:	2000      	movs	r0, #0
   1af36:	bd10      	pop	{r4, pc}
   1af38:	2012      	movs	r0, #18
   1af3a:	bd10      	pop	{r4, pc}

0001af3c <sym_FQNF6KMIBMQDKYS2BJP6ZB7BLEET53WUIWQK6FA>:
   1af3c:	b510      	push	{r4, lr}
   1af3e:	4604      	mov	r4, r0
   1af40:	f000 fe04 	bl	1bb4c <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x43a>
   1af44:	b108      	cbz	r0, 1af4a <sym_FQNF6KMIBMQDKYS2BJP6ZB7BLEET53WUIWQK6FA+0xe>
   1af46:	200c      	movs	r0, #12
   1af48:	bd10      	pop	{r4, pc}
   1af4a:	7820      	ldrb	r0, [r4, #0]
   1af4c:	b108      	cbz	r0, 1af52 <sym_FQNF6KMIBMQDKYS2BJP6ZB7BLEET53WUIWQK6FA+0x16>
   1af4e:	2801      	cmp	r0, #1
   1af50:	d107      	bne.n	1af62 <sym_FQNF6KMIBMQDKYS2BJP6ZB7BLEET53WUIWQK6FA+0x26>
   1af52:	f7ff fe8f 	bl	1ac74 <sym_IYZQNCOB4T4XO27DREWRIWJFVHVS355NEDBEGEQ+0x8c>
   1af56:	1c61      	adds	r1, r4, #1
   1af58:	f7fe fae1 	bl	1951e <sym_JAE5CJ34QIQM34DAKQFWDERFAUN5NXFJM57HRLY>
   1af5c:	b108      	cbz	r0, 1af62 <sym_FQNF6KMIBMQDKYS2BJP6ZB7BLEET53WUIWQK6FA+0x26>
   1af5e:	2000      	movs	r0, #0
   1af60:	bd10      	pop	{r4, pc}
   1af62:	2012      	movs	r0, #18
   1af64:	bd10      	pop	{r4, pc}

0001af66 <sym_Z6SWMDBE3FHPASES2GEZRCNTNJKSKBQXPSTEH5Q>:
   1af66:	b510      	push	{r4, lr}
   1af68:	4604      	mov	r4, r0
   1af6a:	f000 fd13 	bl	1b994 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x282>
   1af6e:	b108      	cbz	r0, 1af74 <sym_Z6SWMDBE3FHPASES2GEZRCNTNJKSKBQXPSTEH5Q+0xe>
   1af70:	200c      	movs	r0, #12
   1af72:	bd10      	pop	{r4, pc}
   1af74:	7820      	ldrb	r0, [r4, #0]
   1af76:	f000 0001 	and.w	r0, r0, #1
   1af7a:	f7f6 fd65 	bl	11a48 <sym_R5RFYNEZN3LQHKUKJDN3JLSNHLY4DPKXW3KZMYA>
   1af7e:	2000      	movs	r0, #0
   1af80:	bd10      	pop	{r4, pc}

0001af82 <sym_KXE6R52JHXVKOK6AHXAXVCPJHWR4FK73UB2AK7I>:
   1af82:	b51c      	push	{r2, r3, r4, lr}
   1af84:	4604      	mov	r4, r0
   1af86:	f000 fd68 	bl	1ba5a <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x348>
   1af8a:	2000      	movs	r0, #0
   1af8c:	f88d 0002 	strb.w	r0, [sp, #2]
   1af90:	2103      	movs	r1, #3
   1af92:	f88d 1001 	strb.w	r1, [sp, #1]
   1af96:	f814 1b01 	ldrb.w	r1, [r4], #1
   1af9a:	f88d 1003 	strb.w	r1, [sp, #3]
   1af9e:	f88d 0000 	strb.w	r0, [sp]
   1afa2:	4668      	mov	r0, sp
   1afa4:	9401      	str	r4, [sp, #4]
   1afa6:	f000 f9f8 	bl	1b39a <sym_D6Z72QTHOBKAEBKPZKUE4VJPVZJ36GAIUXFUHKY>
   1afaa:	bd1c      	pop	{r2, r3, r4, pc}

0001afac <sym_JU2KBYZVAT7EYGVZA4FU7TNK2PDUQNCWUBE5MWQ>:
   1afac:	b57f      	push	{r0, r1, r2, r3, r4, r5, r6, lr}
   1afae:	4605      	mov	r5, r0
   1afb0:	f000 fd53 	bl	1ba5a <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x348>
   1afb4:	4606      	mov	r6, r0
   1afb6:	7828      	ldrb	r0, [r5, #0]
   1afb8:	2400      	movs	r4, #0
   1afba:	b160      	cbz	r0, 1afd6 <sym_JU2KBYZVAT7EYGVZA4FU7TNK2PDUQNCWUBE5MWQ+0x2a>
   1afbc:	f88d 4000 	strb.w	r4, [sp]
   1afc0:	2001      	movs	r0, #1
   1afc2:	f10d 0101 	add.w	r1, sp, #1
   1afc6:	f7f5 ff0d 	bl	10de4 <sym_WCOWXKSKBH7DOKKKINFZAPWXKW4NYAUCJWTUKBI>
   1afca:	b120      	cbz	r0, 1afd6 <sym_JU2KBYZVAT7EYGVZA4FU7TNK2PDUQNCWUBE5MWQ+0x2a>
   1afcc:	4668      	mov	r0, sp
   1afce:	f000 f897 	bl	1b100 <sym_7GRSXPCDN6SAIPL3YJGWJFDEBFB3EXAXYUBY2II>
   1afd2:	2800      	cmp	r0, #0
   1afd4:	d112      	bne.n	1affc <sym_JU2KBYZVAT7EYGVZA4FU7TNK2PDUQNCWUBE5MWQ+0x50>
   1afd6:	f88d 400c 	strb.w	r4, [sp, #12]
   1afda:	4630      	mov	r0, r6
   1afdc:	f7ff f89e 	bl	1a11c <sym_XRU76NANM3C4EMKWQU3DF6CELSRNDV6766IKPJI>
   1afe0:	b118      	cbz	r0, 1afea <sym_JU2KBYZVAT7EYGVZA4FU7TNK2PDUQNCWUBE5MWQ+0x3e>
   1afe2:	2080      	movs	r0, #128	; 0x80
   1afe4:	f8ad 000d 	strh.w	r0, [sp, #13]
   1afe8:	e001      	b.n	1afee <sym_JU2KBYZVAT7EYGVZA4FU7TNK2PDUQNCWUBE5MWQ+0x42>
   1afea:	f8ad 400d 	strh.w	r4, [sp, #13]
   1afee:	f88d 400f 	strb.w	r4, [sp, #15]
   1aff2:	7828      	ldrb	r0, [r5, #0]
   1aff4:	2801      	cmp	r0, #1
   1aff6:	d003      	beq.n	1b000 <sym_JU2KBYZVAT7EYGVZA4FU7TNK2PDUQNCWUBE5MWQ+0x54>
   1aff8:	b138      	cbz	r0, 1b00a <sym_JU2KBYZVAT7EYGVZA4FU7TNK2PDUQNCWUBE5MWQ+0x5e>
   1affa:	2012      	movs	r0, #18
   1affc:	b004      	add	sp, #16
   1affe:	bd70      	pop	{r4, r5, r6, pc}
   1b000:	a903      	add	r1, sp, #12
   1b002:	4630      	mov	r0, r6
   1b004:	f7fb f944 	bl	16290 <sym_P35ZNYRPUOIDHAE32RQYT4RWXL5RC6UIZKLHPUQ>
   1b008:	e7f8      	b.n	1affc <sym_JU2KBYZVAT7EYGVZA4FU7TNK2PDUQNCWUBE5MWQ+0x50>
   1b00a:	4630      	mov	r0, r6
   1b00c:	f000 fd3c 	bl	1ba88 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x376>
   1b010:	e7f4      	b.n	1affc <sym_JU2KBYZVAT7EYGVZA4FU7TNK2PDUQNCWUBE5MWQ+0x50>

0001b012 <sym_CC522QK4M5MTSPVPJNGJXKYD5O54FC2LFC3D3QI>:
   1b012:	b530      	push	{r4, r5, lr}
   1b014:	b08b      	sub	sp, #44	; 0x2c
   1b016:	4604      	mov	r4, r0
   1b018:	f000 fd1f 	bl	1ba5a <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x348>
   1b01c:	4602      	mov	r2, r0
   1b01e:	7920      	ldrb	r0, [r4, #4]
   1b020:	2804      	cmp	r0, #4
   1b022:	d803      	bhi.n	1b02c <sym_CC522QK4M5MTSPVPJNGJXKYD5O54FC2LFC3D3QI+0x1a>
   1b024:	8860      	ldrh	r0, [r4, #2]
   1b026:	f5b0 4f80 	cmp.w	r0, #16384	; 0x4000
   1b02a:	d902      	bls.n	1b032 <sym_CC522QK4M5MTSPVPJNGJXKYD5O54FC2LFC3D3QI+0x20>
   1b02c:	2012      	movs	r0, #18
   1b02e:	b00b      	add	sp, #44	; 0x2c
   1b030:	bd30      	pop	{r4, r5, pc}
   1b032:	2500      	movs	r5, #0
   1b034:	f88d 5004 	strb.w	r5, [sp, #4]
   1b038:	7921      	ldrb	r1, [r4, #4]
   1b03a:	9500      	str	r5, [sp, #0]
   1b03c:	f89d 0000 	ldrb.w	r0, [sp]
   1b040:	2905      	cmp	r1, #5
   1b042:	f040 0010 	orr.w	r0, r0, #16
   1b046:	f88d 0000 	strb.w	r0, [sp]
   1b04a:	d254      	bcs.n	1b0f6 <sym_CC522QK4M5MTSPVPJNGJXKYD5O54FC2LFC3D3QI+0xe4>
   1b04c:	e8df f001 	tbb	[pc, r1]
   1b050:	11050803 	.word	0x11050803
   1b054:	000b      	.short	0x000b
   1b056:	f040 0001 	orr.w	r0, r0, #1
   1b05a:	f040 0002 	orr.w	r0, r0, #2
   1b05e:	e006      	b.n	1b06e <sym_CC522QK4M5MTSPVPJNGJXKYD5O54FC2LFC3D3QI+0x5c>
   1b060:	f040 0009 	orr.w	r0, r0, #9
   1b064:	e001      	b.n	1b06a <sym_CC522QK4M5MTSPVPJNGJXKYD5O54FC2LFC3D3QI+0x58>
   1b066:	f040 0001 	orr.w	r0, r0, #1
   1b06a:	f040 0004 	orr.w	r0, r0, #4
   1b06e:	f88d 0000 	strb.w	r0, [sp]
   1b072:	f8bd 0000 	ldrh.w	r0, [sp]
   1b076:	9000      	str	r0, [sp, #0]
   1b078:	f8bd 0000 	ldrh.w	r0, [sp]
   1b07c:	f8ad 0005 	strh.w	r0, [sp, #5]
   1b080:	8821      	ldrh	r1, [r4, #0]
   1b082:	f8dd 0006 	ldr.w	r0, [sp, #6]
   1b086:	f361 201f 	bfi	r0, r1, #8, #24
   1b08a:	f8cd 0006 	str.w	r0, [sp, #6]
   1b08e:	8861      	ldrh	r1, [r4, #2]
   1b090:	f8dd 0009 	ldr.w	r0, [sp, #9]
   1b094:	f361 201f 	bfi	r0, r1, #8, #24
   1b098:	f8cd 0009 	str.w	r0, [sp, #9]
   1b09c:	7b60      	ldrb	r0, [r4, #13]
   1b09e:	f88d 000d 	strb.w	r0, [sp, #13]
   1b0a2:	7960      	ldrb	r0, [r4, #5]
   1b0a4:	f88d 000e 	strb.w	r0, [sp, #14]
   1b0a8:	79a0      	ldrb	r0, [r4, #6]
   1b0aa:	f88d 000f 	strb.w	r0, [sp, #15]
   1b0ae:	f8d4 0007 	ldr.w	r0, [r4, #7]
   1b0b2:	9004      	str	r0, [sp, #16]
   1b0b4:	f8b4 000b 	ldrh.w	r0, [r4, #11]
   1b0b8:	f8ad 0014 	strh.w	r0, [sp, #20]
   1b0bc:	7ba0      	ldrb	r0, [r4, #14]
   1b0be:	f88d 0016 	strb.w	r0, [sp, #22]
   1b0c2:	207f      	movs	r0, #127	; 0x7f
   1b0c4:	f88d 0017 	strb.w	r0, [sp, #23]
   1b0c8:	2001      	movs	r0, #1
   1b0ca:	f88d 0018 	strb.w	r0, [sp, #24]
   1b0ce:	f88d 5019 	strb.w	r5, [sp, #25]
   1b0d2:	f88d 001a 	strb.w	r0, [sp, #26]
   1b0d6:	f88d 501b 	strb.w	r5, [sp, #27]
   1b0da:	4610      	mov	r0, r2
   1b0dc:	f7ff f83a 	bl	1a154 <sym_2T6B57C7Z3NDT5ASKUJUGCCL3DBEO2AO4XX23BI>
   1b0e0:	f88d 001c 	strb.w	r0, [sp, #28]
   1b0e4:	f88d 501d 	strb.w	r5, [sp, #29]
   1b0e8:	f88d 501e 	strb.w	r5, [sp, #30]
   1b0ec:	a909      	add	r1, sp, #36	; 0x24
   1b0ee:	a801      	add	r0, sp, #4
   1b0f0:	f000 f8de 	bl	1b2b0 <sym_A32XXMQ5QRPQRH3R656RZXETZB6Y54SG45FSCYI>
   1b0f4:	e79b      	b.n	1b02e <sym_CC522QK4M5MTSPVPJNGJXKYD5O54FC2LFC3D3QI+0x1c>
   1b0f6:	f241 0193 	movw	r1, #4243	; 0x1093
   1b0fa:	2039      	movs	r0, #57	; 0x39
   1b0fc:	f7f4 ff72 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>

0001b100 <sym_7GRSXPCDN6SAIPL3YJGWJFDEBFB3EXAXYUBY2II>:
   1b100:	b570      	push	{r4, r5, r6, lr}
   1b102:	4604      	mov	r4, r0
   1b104:	7800      	ldrb	r0, [r0, #0]
   1b106:	2101      	movs	r1, #1
   1b108:	f7fd ffef 	bl	190ea <sym_5X75WALYYBUWN4XT5LYOZBIGSZHVNFKF5J4CSQI>
   1b10c:	0005      	movs	r5, r0
   1b10e:	d007      	beq.n	1b120 <sym_7GRSXPCDN6SAIPL3YJGWJFDEBFB3EXAXYUBY2II+0x20>
   1b110:	f7ff f9d9 	bl	1a4c6 <sym_GWLFBYMUVMRXAWJAYXMEGM7D57QYGUJF3J77TCA>
   1b114:	b160      	cbz	r0, 1b130 <sym_7GRSXPCDN6SAIPL3YJGWJFDEBFB3EXAXYUBY2II+0x30>
   1b116:	4628      	mov	r0, r5
   1b118:	f7ff f806 	bl	1a128 <sym_NGJGZTNK6YIH3QX2NKB6A6MT7N5AOKWA6ZOOANQ>
   1b11c:	b110      	cbz	r0, 1b124 <sym_7GRSXPCDN6SAIPL3YJGWJFDEBFB3EXAXYUBY2II+0x24>
   1b11e:	e005      	b.n	1b12c <sym_7GRSXPCDN6SAIPL3YJGWJFDEBFB3EXAXYUBY2II+0x2c>
   1b120:	2042      	movs	r0, #66	; 0x42
   1b122:	bd70      	pop	{r4, r5, r6, pc}
   1b124:	4628      	mov	r0, r5
   1b126:	f7fe fff5 	bl	1a114 <sym_UEZ3FVWFJ5XVLQBVVAHW7UTXVCC77F7ZYGOMLTQ>
   1b12a:	b108      	cbz	r0, 1b130 <sym_7GRSXPCDN6SAIPL3YJGWJFDEBFB3EXAXYUBY2II+0x30>
   1b12c:	200c      	movs	r0, #12
   1b12e:	bd70      	pop	{r4, r5, r6, pc}
   1b130:	1c61      	adds	r1, r4, #1
   1b132:	4628      	mov	r0, r5
   1b134:	f7ff f806 	bl	1a144 <sym_UDZCFPCYSG5E2MUJ3CH3H5GF4YJLF3Y6KNH3ZRQ>
   1b138:	2000      	movs	r0, #0
   1b13a:	bd70      	pop	{r4, r5, r6, pc}

0001b13c <sym_Q5GJELDUJDXPR5M7PG33JSPACOMZ32BYQV2DESA>:
   1b13c:	b53e      	push	{r1, r2, r3, r4, r5, lr}
   1b13e:	460d      	mov	r5, r1
   1b140:	4604      	mov	r4, r0
   1b142:	f000 fc6d 	bl	1ba20 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x30e>
   1b146:	b130      	cbz	r0, 1b156 <sym_Q5GJELDUJDXPR5M7PG33JSPACOMZ32BYQV2DESA+0x1a>
   1b148:	88a2      	ldrh	r2, [r4, #4]
   1b14a:	f244 2090 	movw	r0, #17040	; 0x4290
   1b14e:	4282      	cmp	r2, r0
   1b150:	d903      	bls.n	1b15a <sym_Q5GJELDUJDXPR5M7PG33JSPACOMZ32BYQV2DESA+0x1e>
   1b152:	2012      	movs	r0, #18
   1b154:	bd3e      	pop	{r1, r2, r3, r4, r5, pc}
   1b156:	2001      	movs	r0, #1
   1b158:	bd3e      	pop	{r1, r2, r3, r4, r5, pc}
   1b15a:	f640 0048 	movw	r0, #2120	; 0x848
   1b15e:	4282      	cmp	r2, r0
   1b160:	d300      	bcc.n	1b164 <sym_Q5GJELDUJDXPR5M7PG33JSPACOMZ32BYQV2DESA+0x28>
   1b162:	4602      	mov	r2, r0
   1b164:	8820      	ldrh	r0, [r4, #0]
   1b166:	f8ad 0000 	strh.w	r0, [sp]
   1b16a:	8860      	ldrh	r0, [r4, #2]
   1b16c:	f8ad 0002 	strh.w	r0, [sp, #2]
   1b170:	f8ad 2004 	strh.w	r2, [sp, #4]
   1b174:	8860      	ldrh	r0, [r4, #2]
   1b176:	f8ad 0006 	strh.w	r0, [sp, #6]
   1b17a:	f8ad 2008 	strh.w	r2, [sp, #8]
   1b17e:	8820      	ldrh	r0, [r4, #0]
   1b180:	8028      	strh	r0, [r5, #0]
   1b182:	4668      	mov	r0, sp
   1b184:	f7fb f952 	bl	1642c <sym_P35ZNYRPUOIDHAE32RQYT4RWXL5RC6UIZKLHPUQ+0x19c>
   1b188:	bd3e      	pop	{r1, r2, r3, r4, r5, pc}

0001b18a <sym_MBHLAUPQK3H6ERLQXCLUB2AQHB6N7MDDZSUQGSI>:
   1b18a:	b53e      	push	{r1, r2, r3, r4, r5, lr}
   1b18c:	4604      	mov	r4, r0
   1b18e:	f7fb fa9d 	bl	166cc <sym_PBZPB3PSJJYSQQW7TH2XDGNLD2UYSZR6YJ4ZZNQ>
   1b192:	f3c0 2000 	ubfx	r0, r0, #8, #1
   1b196:	b1b0      	cbz	r0, 1b1c6 <sym_MBHLAUPQK3H6ERLQXCLUB2AQHB6N7MDDZSUQGSI+0x3c>
   1b198:	f10d 0007 	add.w	r0, sp, #7
   1b19c:	9000      	str	r0, [sp, #0]
   1b19e:	7922      	ldrb	r2, [r4, #4]
   1b1a0:	78e1      	ldrb	r1, [r4, #3]
   1b1a2:	78a0      	ldrb	r0, [r4, #2]
   1b1a4:	f10d 0306 	add.w	r3, sp, #6
   1b1a8:	f000 fc94 	bl	1bad4 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x3c2>
   1b1ac:	2800      	cmp	r0, #0
   1b1ae:	d109      	bne.n	1b1c4 <sym_MBHLAUPQK3H6ERLQXCLUB2AQHB6N7MDDZSUQGSI+0x3a>
   1b1b0:	8820      	ldrh	r0, [r4, #0]
   1b1b2:	f8ad 0004 	strh.w	r0, [sp, #4]
   1b1b6:	f8b4 0005 	ldrh.w	r0, [r4, #5]
   1b1ba:	f8ad 0008 	strh.w	r0, [sp, #8]
   1b1be:	a801      	add	r0, sp, #4
   1b1c0:	f000 f9a6 	bl	1b510 <sym_TWSXGABZDFOR6GMTPL43NA2Q7GCJDL7RARUHBMQ>
   1b1c4:	bd3e      	pop	{r1, r2, r3, r4, r5, pc}
   1b1c6:	2001      	movs	r0, #1
   1b1c8:	bd3e      	pop	{r1, r2, r3, r4, r5, pc}

0001b1ca <sym_HKQ7V7ZRT4GLUXECWBIODAWUF4IIDSU455UZJBA>:
   1b1ca:	b510      	push	{r4, lr}
   1b1cc:	4604      	mov	r4, r0
   1b1ce:	f000 fbe1 	bl	1b994 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x282>
   1b1d2:	b120      	cbz	r0, 1b1de <sym_HKQ7V7ZRT4GLUXECWBIODAWUF4IIDSU455UZJBA+0x14>
   1b1d4:	f7f6 fc3e 	bl	11a54 <sym_WHSZ4VQHSDNZTVWJWAYGMNU7AWSUZKLKTBUNDPY>
   1b1d8:	b108      	cbz	r0, 1b1de <sym_HKQ7V7ZRT4GLUXECWBIODAWUF4IIDSU455UZJBA+0x14>
   1b1da:	200c      	movs	r0, #12
   1b1dc:	bd10      	pop	{r4, pc}
   1b1de:	7820      	ldrb	r0, [r4, #0]
   1b1e0:	f7ff fd48 	bl	1ac74 <sym_IYZQNCOB4T4XO27DREWRIWJFVHVS355NEDBEGEQ+0x8c>
   1b1e4:	79e2      	ldrb	r2, [r4, #7]
   1b1e6:	1c61      	adds	r1, r4, #1
   1b1e8:	f7f6 fbe2 	bl	119b0 <sym_3DXBFDJKO3IQEXOOHBMVXVTLDDG5FSS3TKAZNFY>
   1b1ec:	b108      	cbz	r0, 1b1f2 <sym_HKQ7V7ZRT4GLUXECWBIODAWUF4IIDSU455UZJBA+0x28>
   1b1ee:	2000      	movs	r0, #0
   1b1f0:	bd10      	pop	{r4, pc}
   1b1f2:	2002      	movs	r0, #2
   1b1f4:	bd10      	pop	{r4, pc}

0001b1f6 <sym_NITRJIWYGM7PLEIQEII3QZID3O3DS62GXB3UYIA>:
   1b1f6:	b510      	push	{r4, lr}
   1b1f8:	4604      	mov	r4, r0
   1b1fa:	2001      	movs	r0, #1
   1b1fc:	f000 fac8 	bl	1b790 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x7e>
   1b200:	b128      	cbz	r0, 1b20e <sym_NITRJIWYGM7PLEIQEII3QZID3O3DS62GXB3UYIA+0x18>
   1b202:	4621      	mov	r1, r4
   1b204:	2001      	movs	r0, #1
   1b206:	f7f5 fe05 	bl	10e14 <sym_QKSVBALUN2V4XT4OCC56LE75IAYLDFRRIVLBZ2Q>
   1b20a:	2000      	movs	r0, #0
   1b20c:	bd10      	pop	{r4, pc}
   1b20e:	200c      	movs	r0, #12
   1b210:	bd10      	pop	{r4, pc}

0001b212 <sym_4J2T42QEEBU4YII5BYQOO72J6O3T642SRZXZNQI>:
   1b212:	b510      	push	{r4, lr}
   1b214:	8800      	ldrh	r0, [r0, #0]
   1b216:	f7f6 fcab 	bl	11b70 <sym_62B4NCI2CQZLPPINCQVCHO6SYLZVDAWVVCHWS3I>
   1b21a:	b108      	cbz	r0, 1b220 <sym_4J2T42QEEBU4YII5BYQOO72J6O3T642SRZXZNQI+0xe>
   1b21c:	2000      	movs	r0, #0
   1b21e:	bd10      	pop	{r4, pc}
   1b220:	2030      	movs	r0, #48	; 0x30
   1b222:	bd10      	pop	{r4, pc}

0001b224 <sym_XYKOVFYGOSL56Y753SKDQGINYTUFZGQJGBB54WI>:
   1b224:	b51c      	push	{r2, r3, r4, lr}
   1b226:	4604      	mov	r4, r0
   1b228:	f000 fc17 	bl	1ba5a <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x348>
   1b22c:	2000      	movs	r0, #0
   1b22e:	f88d 0000 	strb.w	r0, [sp]
   1b232:	f88d 0002 	strb.w	r0, [sp, #2]
   1b236:	2003      	movs	r0, #3
   1b238:	f88d 0001 	strb.w	r0, [sp, #1]
   1b23c:	f814 0b01 	ldrb.w	r0, [r4], #1
   1b240:	f88d 0003 	strb.w	r0, [sp, #3]
   1b244:	4668      	mov	r0, sp
   1b246:	9401      	str	r4, [sp, #4]
   1b248:	f000 f910 	bl	1b46c <sym_MVDV5RBWBEZV6THUS3WDA3RV4H6NH2D4IESH3IA>
   1b24c:	bd1c      	pop	{r2, r3, r4, pc}

0001b24e <sym_JYVNTINWWHBNIBW6ZPFJYFKZBQTI25EUE75U36Y>:
   1b24e:	b51c      	push	{r2, r3, r4, lr}
   1b250:	4604      	mov	r4, r0
   1b252:	f000 fbe5 	bl	1ba20 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x30e>
   1b256:	b178      	cbz	r0, 1b278 <sym_JYVNTINWWHBNIBW6ZPFJYFKZBQTI25EUE75U36Y+0x2a>
   1b258:	8820      	ldrh	r0, [r4, #0]
   1b25a:	f8ad 0000 	strh.w	r0, [sp]
   1b25e:	8860      	ldrh	r0, [r4, #2]
   1b260:	f8ad 0002 	strh.w	r0, [sp, #2]
   1b264:	8820      	ldrh	r0, [r4, #0]
   1b266:	f8ad 0004 	strh.w	r0, [sp, #4]
   1b26a:	8860      	ldrh	r0, [r4, #2]
   1b26c:	f8ad 0006 	strh.w	r0, [sp, #6]
   1b270:	4668      	mov	r0, sp
   1b272:	f7fb f95f 	bl	16534 <sym_P35ZNYRPUOIDHAE32RQYT4RWXL5RC6UIZKLHPUQ+0x2a4>
   1b276:	bd1c      	pop	{r2, r3, r4, pc}
   1b278:	2001      	movs	r0, #1
   1b27a:	bd1c      	pop	{r2, r3, r4, pc}

0001b27c <sym_2USEL6R2GGJMMFO4XRNC6NIEFTFUU2HPLL2Z6FQ>:
   1b27c:	b510      	push	{r4, lr}
   1b27e:	f7f5 fded 	bl	10e5c <sym_4UMPVHCMNEM5ENBBHCLGXZREGEKKHKHZOKNMH2I>
   1b282:	2000      	movs	r0, #0
   1b284:	bd10      	pop	{r4, pc}

0001b286 <sym_4DOGMDZGTALJPSDK26RDOFYJAUF2WWYUQSK5XNA>:
   1b286:	b57c      	push	{r2, r3, r4, r5, r6, lr}
   1b288:	460c      	mov	r4, r1
   1b28a:	4605      	mov	r5, r0
   1b28c:	f000 fbc8 	bl	1ba20 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x30e>
   1b290:	b160      	cbz	r0, 1b2ac <sym_4DOGMDZGTALJPSDK26RDOFYJAUF2WWYUQSK5XNA+0x26>
   1b292:	4669      	mov	r1, sp
   1b294:	4628      	mov	r0, r5
   1b296:	f7fe f96b 	bl	19570 <sym_UHWWEFDYCEMO6BV2Q3GVLMFC37EIDJEWGQC2XUA>
   1b29a:	2800      	cmp	r0, #0
   1b29c:	d105      	bne.n	1b2aa <sym_4DOGMDZGTALJPSDK26RDOFYJAUF2WWYUQSK5XNA+0x24>
   1b29e:	2100      	movs	r1, #0
   1b2a0:	4622      	mov	r2, r4
   1b2a2:	9801      	ldr	r0, [sp, #4]
   1b2a4:	f000 fb40 	bl	1b928 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x216>
   1b2a8:	2000      	movs	r0, #0
   1b2aa:	bd7c      	pop	{r2, r3, r4, r5, r6, pc}
   1b2ac:	2001      	movs	r0, #1
   1b2ae:	bd7c      	pop	{r2, r3, r4, r5, r6, pc}

0001b2b0 <sym_A32XXMQ5QRPQRH3R656RZXETZB6Y54SG45FSCYI>:
   1b2b0:	e92d 41fc 	stmdb	sp!, {r2, r3, r4, r5, r6, r7, r8, lr}
   1b2b4:	460f      	mov	r7, r1
   1b2b6:	4605      	mov	r5, r0
   1b2b8:	7806      	ldrb	r6, [r0, #0]
   1b2ba:	f000 fac5 	bl	1b848 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x136>
   1b2be:	2800      	cmp	r0, #0
   1b2c0:	d10a      	bne.n	1b2d8 <sym_A32XXMQ5QRPQRH3R656RZXETZB6Y54SG45FSCYI+0x28>
   1b2c2:	4628      	mov	r0, r5
   1b2c4:	f000 fa9a 	bl	1b7fc <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0xea>
   1b2c8:	2800      	cmp	r0, #0
   1b2ca:	d105      	bne.n	1b2d8 <sym_A32XXMQ5QRPQRH3R656RZXETZB6Y54SG45FSCYI+0x28>
   1b2cc:	2001      	movs	r0, #1
   1b2ce:	f7f5 f881 	bl	103d4 <sym_XHE47EZYHONCPR22HUAZULMCALDJINMYREOFDEI>
   1b2d2:	4286      	cmp	r6, r0
   1b2d4:	d302      	bcc.n	1b2dc <sym_A32XXMQ5QRPQRH3R656RZXETZB6Y54SG45FSCYI+0x2c>
   1b2d6:	2007      	movs	r0, #7
   1b2d8:	e8bd 81fc 	ldmia.w	sp!, {r2, r3, r4, r5, r6, r7, r8, pc}
   1b2dc:	2101      	movs	r1, #1
   1b2de:	4630      	mov	r0, r6
   1b2e0:	f7fd ff03 	bl	190ea <sym_5X75WALYYBUWN4XT5LYOZBIGSZHVNFKF5J4CSQI>
   1b2e4:	0004      	movs	r4, r0
   1b2e6:	d004      	beq.n	1b2f2 <sym_A32XXMQ5QRPQRH3R656RZXETZB6Y54SG45FSCYI+0x42>
   1b2e8:	f7ff f8ed 	bl	1a4c6 <sym_GWLFBYMUVMRXAWJAYXMEGM7D57QYGUJF3J77TCA>
   1b2ec:	b150      	cbz	r0, 1b304 <sym_A32XXMQ5QRPQRH3R656RZXETZB6Y54SG45FSCYI+0x54>
   1b2ee:	200c      	movs	r0, #12
   1b2f0:	e7f2      	b.n	1b2d8 <sym_A32XXMQ5QRPQRH3R656RZXETZB6Y54SG45FSCYI+0x28>
   1b2f2:	2200      	movs	r2, #0
   1b2f4:	2101      	movs	r1, #1
   1b2f6:	4630      	mov	r0, r6
   1b2f8:	f7fd feed 	bl	190d6 <sym_7JFC7IFAJQVPYCQHAIUKZ626ISM3VUWBEEXY7WI>
   1b2fc:	0004      	movs	r4, r0
   1b2fe:	d00f      	beq.n	1b320 <sym_A32XXMQ5QRPQRH3R656RZXETZB6Y54SG45FSCYI+0x70>
   1b300:	f7fe fead 	bl	1a05e <sym_YA57TPZ3CLQ6C73TD2RIGTELUAMYOOAKHU5T7RQ>
   1b304:	4620      	mov	r0, r4
   1b306:	f7fe ff13 	bl	1a130 <sym_L5UCRJFFWEVVII5IYG6PAKIQHXM34B62KO6ERPY>
   1b30a:	7038      	strb	r0, [r7, #0]
   1b30c:	74e8      	strb	r0, [r5, #19]
   1b30e:	4629      	mov	r1, r5
   1b310:	4620      	mov	r0, r4
   1b312:	f7f7 fa23 	bl	1275c <sym_L2IWXNCKXJIQJRTEIIW7HGFEPJAQM34TKD2GOIA>
   1b316:	4606      	mov	r6, r0
   1b318:	7e68      	ldrb	r0, [r5, #25]
   1b31a:	b1d0      	cbz	r0, 1b352 <sym_A32XXMQ5QRPQRH3R656RZXETZB6Y54SG45FSCYI+0xa2>
   1b31c:	b12e      	cbz	r6, 1b32a <sym_A32XXMQ5QRPQRH3R656RZXETZB6Y54SG45FSCYI+0x7a>
   1b31e:	e018      	b.n	1b352 <sym_A32XXMQ5QRPQRH3R656RZXETZB6Y54SG45FSCYI+0xa2>
   1b320:	f44f 5191 	mov.w	r1, #4640	; 0x1220
   1b324:	2039      	movs	r0, #57	; 0x39
   1b326:	f7f4 fe5d 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   1b32a:	2200      	movs	r2, #0
   1b32c:	4668      	mov	r0, sp
   1b32e:	6ae1      	ldr	r1, [r4, #44]	; 0x2c
   1b330:	f7fd ff9c 	bl	1926c <sym_YBUOIVJGKD57C5J4XCQFOKF4I5XT74ICLDOCNXA>
   1b334:	2200      	movs	r2, #0
   1b336:	2101      	movs	r1, #1
   1b338:	6ae0      	ldr	r0, [r4, #44]	; 0x2c
   1b33a:	f7fe f80c 	bl	19356 <sym_OC5GPSERLPE7TKXSCU3QAZ62H3OM4MWFYV7WX2I>
   1b33e:	2204      	movs	r2, #4
   1b340:	4668      	mov	r0, sp
   1b342:	6ae1      	ldr	r1, [r4, #44]	; 0x2c
   1b344:	f7fd ff92 	bl	1926c <sym_YBUOIVJGKD57C5J4XCQFOKF4I5XT74ICLDOCNXA>
   1b348:	2200      	movs	r2, #0
   1b34a:	4611      	mov	r1, r2
   1b34c:	6ae0      	ldr	r0, [r4, #44]	; 0x2c
   1b34e:	f7fe f802 	bl	19356 <sym_OC5GPSERLPE7TKXSCU3QAZ62H3OM4MWFYV7WX2I>
   1b352:	4630      	mov	r0, r6
   1b354:	e7c0      	b.n	1b2d8 <sym_A32XXMQ5QRPQRH3R656RZXETZB6Y54SG45FSCYI+0x28>

0001b356 <sym_4JSL5B25NNB5WWK7I5BGUTCTKEZ4HYLOODANEEQ>:
   1b356:	b510      	push	{r4, lr}
   1b358:	4604      	mov	r4, r0
   1b35a:	2000      	movs	r0, #0
   1b35c:	f000 fa18 	bl	1b790 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x7e>
   1b360:	b128      	cbz	r0, 1b36e <sym_4JSL5B25NNB5WWK7I5BGUTCTKEZ4HYLOODANEEQ+0x18>
   1b362:	4621      	mov	r1, r4
   1b364:	2000      	movs	r0, #0
   1b366:	f7f5 fd55 	bl	10e14 <sym_QKSVBALUN2V4XT4OCC56LE75IAYLDFRRIVLBZ2Q>
   1b36a:	2000      	movs	r0, #0
   1b36c:	bd10      	pop	{r4, pc}
   1b36e:	200c      	movs	r0, #12
   1b370:	bd10      	pop	{r4, pc}

0001b372 <sym_J2SUO2NMPPNDQZAGB2FE5TAXJFMJ5FZXKAPNVFQ>:
   1b372:	b510      	push	{r4, lr}
   1b374:	7800      	ldrb	r0, [r0, #0]
   1b376:	f000 0001 	and.w	r0, r0, #1
   1b37a:	f7f8 f925 	bl	135c8 <sym_WMA2OWGJYGOIIQV6R2LKF37IWYQHWWBT5LUJG6A>
   1b37e:	2000      	movs	r0, #0
   1b380:	bd10      	pop	{r4, pc}

0001b382 <sym_M6MZU5PVUKHQMWMMC4UT23L7SRBW44JZLP26X4I>:
   1b382:	b510      	push	{r4, lr}
   1b384:	4604      	mov	r4, r0
   1b386:	f000 fb4b 	bl	1ba20 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x30e>
   1b38a:	b120      	cbz	r0, 1b396 <sym_M6MZU5PVUKHQMWMMC4UT23L7SRBW44JZLP26X4I+0x14>
   1b38c:	4620      	mov	r0, r4
   1b38e:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
   1b392:	f7fb b84b 	b.w	1642c <sym_P35ZNYRPUOIDHAE32RQYT4RWXL5RC6UIZKLHPUQ+0x19c>
   1b396:	2001      	movs	r0, #1
   1b398:	bd10      	pop	{r4, pc}

0001b39a <sym_D6Z72QTHOBKAEBKPZKUE4VJPVZJ36GAIUXFUHKY>:
   1b39a:	e92d 41fc 	stmdb	sp!, {r2, r3, r4, r5, r6, r7, r8, lr}
   1b39e:	4606      	mov	r6, r0
   1b3a0:	7845      	ldrb	r5, [r0, #1]
   1b3a2:	7800      	ldrb	r0, [r0, #0]
   1b3a4:	2101      	movs	r1, #1
   1b3a6:	f7fd fea0 	bl	190ea <sym_5X75WALYYBUWN4XT5LYOZBIGSZHVNFKF5J4CSQI>
   1b3aa:	0004      	movs	r4, r0
   1b3ac:	d01e      	beq.n	1b3ec <sym_D6Z72QTHOBKAEBKPZKUE4VJPVZJ36GAIUXFUHKY+0x52>
   1b3ae:	f7fe fe82 	bl	1a0b6 <sym_U7WTPI24N35WTMGPC25KDS7Q3PHHHS7M5KI6IPY>
   1b3b2:	78f1      	ldrb	r1, [r6, #3]
   1b3b4:	4281      	cmp	r1, r0
   1b3b6:	d800      	bhi.n	1b3ba <sym_D6Z72QTHOBKAEBKPZKUE4VJPVZJ36GAIUXFUHKY+0x20>
   1b3b8:	4608      	mov	r0, r1
   1b3ba:	4607      	mov	r7, r0
   1b3bc:	2d04      	cmp	r5, #4
   1b3be:	d018      	beq.n	1b3f2 <sym_D6Z72QTHOBKAEBKPZKUE4VJPVZJ36GAIUXFUHKY+0x58>
   1b3c0:	6ae0      	ldr	r0, [r4, #44]	; 0x2c
   1b3c2:	f7fd ffeb 	bl	1939c <sym_DPFAWTOI3GRLXCS5TV5FXLZJNKWMRLYTLT4DRFY>
   1b3c6:	4438      	add	r0, r7
   1b3c8:	b281      	uxth	r1, r0
   1b3ca:	4620      	mov	r0, r4
   1b3cc:	2201      	movs	r2, #1
   1b3ce:	f000 f9f1 	bl	1b7b4 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0xa2>
   1b3d2:	2800      	cmp	r0, #0
   1b3d4:	d10b      	bne.n	1b3ee <sym_D6Z72QTHOBKAEBKPZKUE4VJPVZJ36GAIUXFUHKY+0x54>
   1b3d6:	2d03      	cmp	r5, #3
   1b3d8:	d000      	beq.n	1b3dc <sym_D6Z72QTHOBKAEBKPZKUE4VJPVZJ36GAIUXFUHKY+0x42>
   1b3da:	b1df      	cbz	r7, 1b414 <sym_D6Z72QTHOBKAEBKPZKUE4VJPVZJ36GAIUXFUHKY+0x7a>
   1b3dc:	4620      	mov	r0, r4
   1b3de:	f7fe fea1 	bl	1a124 <sym_BDDELQSYWHVCCHSF6HGFFAORZOC56R54KIF45KY>
   1b3e2:	7871      	ldrb	r1, [r6, #1]
   1b3e4:	2903      	cmp	r1, #3
   1b3e6:	d010      	beq.n	1b40a <sym_D6Z72QTHOBKAEBKPZKUE4VJPVZJ36GAIUXFUHKY+0x70>
   1b3e8:	b9a0      	cbnz	r0, 1b414 <sym_D6Z72QTHOBKAEBKPZKUE4VJPVZJ36GAIUXFUHKY+0x7a>
   1b3ea:	e004      	b.n	1b3f6 <sym_D6Z72QTHOBKAEBKPZKUE4VJPVZJ36GAIUXFUHKY+0x5c>
   1b3ec:	2042      	movs	r0, #66	; 0x42
   1b3ee:	e8bd 81fc 	ldmia.w	sp!, {r2, r3, r4, r5, r6, r7, r8, pc}
   1b3f2:	b97f      	cbnz	r7, 1b414 <sym_D6Z72QTHOBKAEBKPZKUE4VJPVZJ36GAIUXFUHKY+0x7a>
   1b3f4:	e7f2      	b.n	1b3dc <sym_D6Z72QTHOBKAEBKPZKUE4VJPVZJ36GAIUXFUHKY+0x42>
   1b3f6:	2904      	cmp	r1, #4
   1b3f8:	d107      	bne.n	1b40a <sym_D6Z72QTHOBKAEBKPZKUE4VJPVZJ36GAIUXFUHKY+0x70>
   1b3fa:	4620      	mov	r0, r4
   1b3fc:	f7ff f863 	bl	1a4c6 <sym_GWLFBYMUVMRXAWJAYXMEGM7D57QYGUJF3J77TCA>
   1b400:	b140      	cbz	r0, 1b414 <sym_D6Z72QTHOBKAEBKPZKUE4VJPVZJ36GAIUXFUHKY+0x7a>
   1b402:	6ae0      	ldr	r0, [r4, #44]	; 0x2c
   1b404:	f7fd ff99 	bl	1933a <sym_Z3P3D5U3YDA66QTFRMTODYQPS5XZL7N2E3M2DIY>
   1b408:	b120      	cbz	r0, 1b414 <sym_D6Z72QTHOBKAEBKPZKUE4VJPVZJ36GAIUXFUHKY+0x7a>
   1b40a:	2d01      	cmp	r5, #1
   1b40c:	d004      	beq.n	1b418 <sym_D6Z72QTHOBKAEBKPZKUE4VJPVZJ36GAIUXFUHKY+0x7e>
   1b40e:	2d03      	cmp	r5, #3
   1b410:	d002      	beq.n	1b418 <sym_D6Z72QTHOBKAEBKPZKUE4VJPVZJ36GAIUXFUHKY+0x7e>
   1b412:	e00e      	b.n	1b432 <sym_D6Z72QTHOBKAEBKPZKUE4VJPVZJ36GAIUXFUHKY+0x98>
   1b414:	2012      	movs	r0, #18
   1b416:	e7ea      	b.n	1b3ee <sym_D6Z72QTHOBKAEBKPZKUE4VJPVZJ36GAIUXFUHKY+0x54>
   1b418:	4620      	mov	r0, r4
   1b41a:	f7fe fe83 	bl	1a124 <sym_BDDELQSYWHVCCHSF6HGFFAORZOC56R54KIF45KY>
   1b41e:	b108      	cbz	r0, 1b424 <sym_D6Z72QTHOBKAEBKPZKUE4VJPVZJ36GAIUXFUHKY+0x8a>
   1b420:	2200      	movs	r2, #0
   1b422:	e002      	b.n	1b42a <sym_D6Z72QTHOBKAEBKPZKUE4VJPVZJ36GAIUXFUHKY+0x90>
   1b424:	2d01      	cmp	r5, #1
   1b426:	d013      	beq.n	1b450 <sym_D6Z72QTHOBKAEBKPZKUE4VJPVZJ36GAIUXFUHKY+0xb6>
   1b428:	2201      	movs	r2, #1
   1b42a:	4668      	mov	r0, sp
   1b42c:	6ae1      	ldr	r1, [r4, #44]	; 0x2c
   1b42e:	f7fd ff1d 	bl	1926c <sym_YBUOIVJGKD57C5J4XCQFOKF4I5XT74ICLDOCNXA>
   1b432:	2d04      	cmp	r5, #4
   1b434:	d018      	beq.n	1b468 <sym_D6Z72QTHOBKAEBKPZKUE4VJPVZJ36GAIUXFUHKY+0xce>
   1b436:	6872      	ldr	r2, [r6, #4]
   1b438:	463b      	mov	r3, r7
   1b43a:	2101      	movs	r1, #1
   1b43c:	6ae0      	ldr	r0, [r4, #44]	; 0x2c
   1b43e:	f7fd ff48 	bl	192d2 <sym_F5SXUQLY6DFZ5NXKJ4VFIGAK52D6AM5LN2AJKSY>
   1b442:	b138      	cbz	r0, 1b454 <sym_D6Z72QTHOBKAEBKPZKUE4VJPVZJ36GAIUXFUHKY+0xba>
   1b444:	7870      	ldrb	r0, [r6, #1]
   1b446:	2802      	cmp	r0, #2
   1b448:	d006      	beq.n	1b458 <sym_D6Z72QTHOBKAEBKPZKUE4VJPVZJ36GAIUXFUHKY+0xbe>
   1b44a:	2803      	cmp	r0, #3
   1b44c:	d004      	beq.n	1b458 <sym_D6Z72QTHOBKAEBKPZKUE4VJPVZJ36GAIUXFUHKY+0xbe>
   1b44e:	e00b      	b.n	1b468 <sym_D6Z72QTHOBKAEBKPZKUE4VJPVZJ36GAIUXFUHKY+0xce>
   1b450:	2202      	movs	r2, #2
   1b452:	e7ea      	b.n	1b42a <sym_D6Z72QTHOBKAEBKPZKUE4VJPVZJ36GAIUXFUHKY+0x90>
   1b454:	2007      	movs	r0, #7
   1b456:	e7ca      	b.n	1b3ee <sym_D6Z72QTHOBKAEBKPZKUE4VJPVZJ36GAIUXFUHKY+0x54>
   1b458:	6ae0      	ldr	r0, [r4, #44]	; 0x2c
   1b45a:	f7fd ff9f 	bl	1939c <sym_DPFAWTOI3GRLXCS5TV5FXLZJNKWMRLYTLT4DRFY>
   1b45e:	4602      	mov	r2, r0
   1b460:	2101      	movs	r1, #1
   1b462:	6ae0      	ldr	r0, [r4, #44]	; 0x2c
   1b464:	f7fd ff77 	bl	19356 <sym_OC5GPSERLPE7TKXSCU3QAZ62H3OM4MWFYV7WX2I>
   1b468:	2000      	movs	r0, #0
   1b46a:	e7c0      	b.n	1b3ee <sym_D6Z72QTHOBKAEBKPZKUE4VJPVZJ36GAIUXFUHKY+0x54>

0001b46c <sym_MVDV5RBWBEZV6THUS3WDA3RV4H6NH2D4IESH3IA>:
   1b46c:	e92d 41fc 	stmdb	sp!, {r2, r3, r4, r5, r6, r7, r8, lr}
   1b470:	4607      	mov	r7, r0
   1b472:	7845      	ldrb	r5, [r0, #1]
   1b474:	78c6      	ldrb	r6, [r0, #3]
   1b476:	7800      	ldrb	r0, [r0, #0]
   1b478:	2101      	movs	r1, #1
   1b47a:	f7fd fe36 	bl	190ea <sym_5X75WALYYBUWN4XT5LYOZBIGSZHVNFKF5J4CSQI>
   1b47e:	0004      	movs	r4, r0
   1b480:	d003      	beq.n	1b48a <sym_MVDV5RBWBEZV6THUS3WDA3RV4H6NH2D4IESH3IA+0x1e>
   1b482:	f7fe fe51 	bl	1a128 <sym_NGJGZTNK6YIH3QX2NKB6A6MT7N5AOKWA6ZOOANQ>
   1b486:	b118      	cbz	r0, 1b490 <sym_MVDV5RBWBEZV6THUS3WDA3RV4H6NH2D4IESH3IA+0x24>
   1b488:	e003      	b.n	1b492 <sym_MVDV5RBWBEZV6THUS3WDA3RV4H6NH2D4IESH3IA+0x26>
   1b48a:	2042      	movs	r0, #66	; 0x42
   1b48c:	e8bd 81fc 	ldmia.w	sp!, {r2, r3, r4, r5, r6, r7, r8, pc}
   1b490:	2600      	movs	r6, #0
   1b492:	6ae0      	ldr	r0, [r4, #44]	; 0x2c
   1b494:	f7fd ff86 	bl	193a4 <sym_27RZBWKBTESKUPVNN3E7RHYQU6UH4RT372SK2WA>
   1b498:	4430      	add	r0, r6
   1b49a:	b281      	uxth	r1, r0
   1b49c:	4688      	mov	r8, r1
   1b49e:	4620      	mov	r0, r4
   1b4a0:	2201      	movs	r2, #1
   1b4a2:	f000 f987 	bl	1b7b4 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0xa2>
   1b4a6:	2800      	cmp	r0, #0
   1b4a8:	d1f0      	bne.n	1b48c <sym_MVDV5RBWBEZV6THUS3WDA3RV4H6NH2D4IESH3IA+0x20>
   1b4aa:	2d04      	cmp	r5, #4
   1b4ac:	d008      	beq.n	1b4c0 <sym_MVDV5RBWBEZV6THUS3WDA3RV4H6NH2D4IESH3IA+0x54>
   1b4ae:	2d03      	cmp	r5, #3
   1b4b0:	d00a      	beq.n	1b4c8 <sym_MVDV5RBWBEZV6THUS3WDA3RV4H6NH2D4IESH3IA+0x5c>
   1b4b2:	b12e      	cbz	r6, 1b4c0 <sym_MVDV5RBWBEZV6THUS3WDA3RV4H6NH2D4IESH3IA+0x54>
   1b4b4:	4620      	mov	r0, r4
   1b4b6:	f7ff f806 	bl	1a4c6 <sym_GWLFBYMUVMRXAWJAYXMEGM7D57QYGUJF3J77TCA>
   1b4ba:	b118      	cbz	r0, 1b4c4 <sym_MVDV5RBWBEZV6THUS3WDA3RV4H6NH2D4IESH3IA+0x58>
   1b4bc:	200c      	movs	r0, #12
   1b4be:	e7e5      	b.n	1b48c <sym_MVDV5RBWBEZV6THUS3WDA3RV4H6NH2D4IESH3IA+0x20>
   1b4c0:	2012      	movs	r0, #18
   1b4c2:	e7e3      	b.n	1b48c <sym_MVDV5RBWBEZV6THUS3WDA3RV4H6NH2D4IESH3IA+0x20>
   1b4c4:	2d01      	cmp	r5, #1
   1b4c6:	d10c      	bne.n	1b4e2 <sym_MVDV5RBWBEZV6THUS3WDA3RV4H6NH2D4IESH3IA+0x76>
   1b4c8:	4620      	mov	r0, r4
   1b4ca:	f7fe fe2b 	bl	1a124 <sym_BDDELQSYWHVCCHSF6HGFFAORZOC56R54KIF45KY>
   1b4ce:	b108      	cbz	r0, 1b4d4 <sym_MVDV5RBWBEZV6THUS3WDA3RV4H6NH2D4IESH3IA+0x68>
   1b4d0:	2204      	movs	r2, #4
   1b4d2:	e002      	b.n	1b4da <sym_MVDV5RBWBEZV6THUS3WDA3RV4H6NH2D4IESH3IA+0x6e>
   1b4d4:	2d01      	cmp	r5, #1
   1b4d6:	d010      	beq.n	1b4fa <sym_MVDV5RBWBEZV6THUS3WDA3RV4H6NH2D4IESH3IA+0x8e>
   1b4d8:	2205      	movs	r2, #5
   1b4da:	4668      	mov	r0, sp
   1b4dc:	6ae1      	ldr	r1, [r4, #44]	; 0x2c
   1b4de:	f7fd fec5 	bl	1926c <sym_YBUOIVJGKD57C5J4XCQFOKF4I5XT74ICLDOCNXA>
   1b4e2:	687a      	ldr	r2, [r7, #4]
   1b4e4:	4633      	mov	r3, r6
   1b4e6:	2100      	movs	r1, #0
   1b4e8:	6ae0      	ldr	r0, [r4, #44]	; 0x2c
   1b4ea:	f7fd fef2 	bl	192d2 <sym_F5SXUQLY6DFZ5NXKJ4VFIGAK52D6AM5LN2AJKSY>
   1b4ee:	b130      	cbz	r0, 1b4fe <sym_MVDV5RBWBEZV6THUS3WDA3RV4H6NH2D4IESH3IA+0x92>
   1b4f0:	2d02      	cmp	r5, #2
   1b4f2:	d006      	beq.n	1b502 <sym_MVDV5RBWBEZV6THUS3WDA3RV4H6NH2D4IESH3IA+0x96>
   1b4f4:	2d03      	cmp	r5, #3
   1b4f6:	d004      	beq.n	1b502 <sym_MVDV5RBWBEZV6THUS3WDA3RV4H6NH2D4IESH3IA+0x96>
   1b4f8:	e008      	b.n	1b50c <sym_MVDV5RBWBEZV6THUS3WDA3RV4H6NH2D4IESH3IA+0xa0>
   1b4fa:	2206      	movs	r2, #6
   1b4fc:	e7ed      	b.n	1b4da <sym_MVDV5RBWBEZV6THUS3WDA3RV4H6NH2D4IESH3IA+0x6e>
   1b4fe:	2007      	movs	r0, #7
   1b500:	e7c4      	b.n	1b48c <sym_MVDV5RBWBEZV6THUS3WDA3RV4H6NH2D4IESH3IA+0x20>
   1b502:	4642      	mov	r2, r8
   1b504:	2100      	movs	r1, #0
   1b506:	6ae0      	ldr	r0, [r4, #44]	; 0x2c
   1b508:	f7fd ff25 	bl	19356 <sym_OC5GPSERLPE7TKXSCU3QAZ62H3OM4MWFYV7WX2I>
   1b50c:	2000      	movs	r0, #0
   1b50e:	e7bd      	b.n	1b48c <sym_MVDV5RBWBEZV6THUS3WDA3RV4H6NH2D4IESH3IA+0x20>

0001b510 <sym_TWSXGABZDFOR6GMTPL43NA2Q7GCJDL7RARUHBMQ>:
   1b510:	b510      	push	{r4, lr}
   1b512:	4604      	mov	r4, r0
   1b514:	8880      	ldrh	r0, [r0, #4]
   1b516:	b128      	cbz	r0, 1b524 <sym_TWSXGABZDFOR6GMTPL43NA2Q7GCJDL7RARUHBMQ+0x14>
   1b518:	2801      	cmp	r0, #1
   1b51a:	d003      	beq.n	1b524 <sym_TWSXGABZDFOR6GMTPL43NA2Q7GCJDL7RARUHBMQ+0x14>
   1b51c:	2802      	cmp	r0, #2
   1b51e:	d001      	beq.n	1b524 <sym_TWSXGABZDFOR6GMTPL43NA2Q7GCJDL7RARUHBMQ+0x14>
   1b520:	2012      	movs	r0, #18
   1b522:	bd10      	pop	{r4, pc}
   1b524:	78e0      	ldrb	r0, [r4, #3]
   1b526:	f000 f9dc 	bl	1b8e2 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x1d0>
   1b52a:	b148      	cbz	r0, 1b540 <sym_TWSXGABZDFOR6GMTPL43NA2Q7GCJDL7RARUHBMQ+0x30>
   1b52c:	78a0      	ldrb	r0, [r4, #2]
   1b52e:	f000 f9d8 	bl	1b8e2 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x1d0>
   1b532:	b128      	cbz	r0, 1b540 <sym_TWSXGABZDFOR6GMTPL43NA2Q7GCJDL7RARUHBMQ+0x30>
   1b534:	4620      	mov	r0, r4
   1b536:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
   1b53a:	2101      	movs	r1, #1
   1b53c:	f000 b884 	b.w	1b648 <sym_TTWYMXRKLVLI7DIZYVTKGZHSGKFWB63OVH3AYYQ>
   1b540:	2011      	movs	r0, #17
   1b542:	bd10      	pop	{r4, pc}

0001b544 <sym_AB3LPEZLZTHWVJYT4X3CSIX3UJONE76BJDZFP2Y>:
   1b544:	b57c      	push	{r2, r3, r4, r5, r6, lr}
   1b546:	460c      	mov	r4, r1
   1b548:	4605      	mov	r5, r0
   1b54a:	8800      	ldrh	r0, [r0, #0]
   1b54c:	4669      	mov	r1, sp
   1b54e:	f7fe f80f 	bl	19570 <sym_UHWWEFDYCEMO6BV2Q3GVLMFC37EIDJEWGQC2XUA>
   1b552:	2800      	cmp	r0, #0
   1b554:	d106      	bne.n	1b564 <sym_AB3LPEZLZTHWVJYT4X3CSIX3UJONE76BJDZFP2Y+0x20>
   1b556:	9801      	ldr	r0, [sp, #4]
   1b558:	8829      	ldrh	r1, [r5, #0]
   1b55a:	8021      	strh	r1, [r4, #0]
   1b55c:	f8b0 00a0 	ldrh.w	r0, [r0, #160]	; 0xa0
   1b560:	8060      	strh	r0, [r4, #2]
   1b562:	2000      	movs	r0, #0
   1b564:	bd7c      	pop	{r2, r3, r4, r5, r6, pc}

0001b566 <sym_5KZ3ESY4NUZKM5COQRZJAL6CXWIG2JSPGHV3RPQ>:
   1b566:	b510      	push	{r4, lr}
   1b568:	4604      	mov	r4, r0
   1b56a:	4601      	mov	r1, r0
   1b56c:	2000      	movs	r0, #0
   1b56e:	f7f5 fc39 	bl	10de4 <sym_WCOWXKSKBH7DOKKKINFZAPWXKW4NYAUCJWTUKBI>
   1b572:	b910      	cbnz	r0, 1b57a <sym_5KZ3ESY4NUZKM5COQRZJAL6CXWIG2JSPGHV3RPQ+0x14>
   1b574:	2000      	movs	r0, #0
   1b576:	6020      	str	r0, [r4, #0]
   1b578:	80a0      	strh	r0, [r4, #4]
   1b57a:	2000      	movs	r0, #0
   1b57c:	bd10      	pop	{r4, pc}

0001b57e <sym_IP3LLUNJTDBIIPB3UG65MJFJZABGVNT2GN3EQPY>:
   1b57e:	b57c      	push	{r2, r3, r4, r5, r6, lr}
   1b580:	8800      	ldrh	r0, [r0, #0]
   1b582:	4669      	mov	r1, sp
   1b584:	f7fd fff4 	bl	19570 <sym_UHWWEFDYCEMO6BV2Q3GVLMFC37EIDJEWGQC2XUA>
   1b588:	b958      	cbnz	r0, 1b5a2 <sym_IP3LLUNJTDBIIPB3UG65MJFJZABGVNT2GN3EQPY+0x24>
   1b58a:	4668      	mov	r0, sp
   1b58c:	f000 fa4e 	bl	1ba2c <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x31a>
   1b590:	b138      	cbz	r0, 1b5a2 <sym_IP3LLUNJTDBIIPB3UG65MJFJZABGVNT2GN3EQPY+0x24>
   1b592:	9c01      	ldr	r4, [sp, #4]
   1b594:	f894 11b4 	ldrb.w	r1, [r4, #436]	; 0x1b4
   1b598:	f504 70da 	add.w	r0, r4, #436	; 0x1b4
   1b59c:	3470      	adds	r4, #112	; 0x70
   1b59e:	b929      	cbnz	r1, 1b5ac <sym_IP3LLUNJTDBIIPB3UG65MJFJZABGVNT2GN3EQPY+0x2e>
   1b5a0:	e001      	b.n	1b5a6 <sym_IP3LLUNJTDBIIPB3UG65MJFJZABGVNT2GN3EQPY+0x28>
   1b5a2:	2002      	movs	r0, #2
   1b5a4:	bd7c      	pop	{r2, r3, r4, r5, r6, pc}
   1b5a6:	f894 1045 	ldrb.w	r1, [r4, #69]	; 0x45
   1b5aa:	b109      	cbz	r1, 1b5b0 <sym_IP3LLUNJTDBIIPB3UG65MJFJZABGVNT2GN3EQPY+0x32>
   1b5ac:	203a      	movs	r0, #58	; 0x3a
   1b5ae:	bd7c      	pop	{r2, r3, r4, r5, r6, pc}
   1b5b0:	f894 1046 	ldrb.w	r1, [r4, #70]	; 0x46
   1b5b4:	f04f 0501 	mov.w	r5, #1
   1b5b8:	0789      	lsls	r1, r1, #30
   1b5ba:	d103      	bne.n	1b5c4 <sym_IP3LLUNJTDBIIPB3UG65MJFJZABGVNT2GN3EQPY+0x46>
   1b5bc:	7005      	strb	r5, [r0, #0]
   1b5be:	4668      	mov	r0, sp
   1b5c0:	f7fe fb50 	bl	19c64 <sym_24AALTDC2IQ6VNWU2ALOY4V3RG5R2RARTUG4AZY>
   1b5c4:	f884 5045 	strb.w	r5, [r4, #69]	; 0x45
   1b5c8:	2000      	movs	r0, #0
   1b5ca:	bd7c      	pop	{r2, r3, r4, r5, r6, pc}

0001b5cc <sym_Q3C2XSZVED7JHVMCJN53G6AXVXF3ZOUR7A37OEQ>:
   1b5cc:	b57c      	push	{r2, r3, r4, r5, r6, lr}
   1b5ce:	460c      	mov	r4, r1
   1b5d0:	4605      	mov	r5, r0
   1b5d2:	8800      	ldrh	r0, [r0, #0]
   1b5d4:	4669      	mov	r1, sp
   1b5d6:	f7fd ffcb 	bl	19570 <sym_UHWWEFDYCEMO6BV2Q3GVLMFC37EIDJEWGQC2XUA>
   1b5da:	b108      	cbz	r0, 1b5e0 <sym_Q3C2XSZVED7JHVMCJN53G6AXVXF3ZOUR7A37OEQ+0x14>
   1b5dc:	2002      	movs	r0, #2
   1b5de:	bd7c      	pop	{r2, r3, r4, r5, r6, pc}
   1b5e0:	78a8      	ldrb	r0, [r5, #2]
   1b5e2:	b130      	cbz	r0, 1b5f2 <sym_Q3C2XSZVED7JHVMCJN53G6AXVXF3ZOUR7A37OEQ+0x26>
   1b5e4:	f000 f9fd 	bl	1b9e2 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x2d0>
   1b5e8:	70a0      	strb	r0, [r4, #2]
   1b5ea:	8828      	ldrh	r0, [r5, #0]
   1b5ec:	8020      	strh	r0, [r4, #0]
   1b5ee:	2000      	movs	r0, #0
   1b5f0:	bd7c      	pop	{r2, r3, r4, r5, r6, pc}
   1b5f2:	9801      	ldr	r0, [sp, #4]
   1b5f4:	f890 006e 	ldrb.w	r0, [r0, #110]	; 0x6e
   1b5f8:	e7f6      	b.n	1b5e8 <sym_Q3C2XSZVED7JHVMCJN53G6AXVXF3ZOUR7A37OEQ+0x1c>

0001b5fa <sym_QA2HTUWXDQAGJZ32BSTQMVSMKKNETZBUHL37LYA>:
   1b5fa:	b510      	push	{r4, lr}
   1b5fc:	f7fa ffd4 	bl	165a8 <sym_4W26TPGCKOCVVRKXQDBKGXGC2Y5LMZXNKS2QITA>
   1b600:	2000      	movs	r0, #0
   1b602:	bd10      	pop	{r4, pc}

0001b604 <sym_ULWM63O6UPJLQWAHX3MM6KEQT4NBSDWNEO3LSBY>:
   1b604:	e92d 41fc 	stmdb	sp!, {r2, r3, r4, r5, r6, r7, r8, lr}
   1b608:	4604      	mov	r4, r0
   1b60a:	8840      	ldrh	r0, [r0, #2]
   1b60c:	460d      	mov	r5, r1
   1b60e:	b1b8      	cbz	r0, 1b640 <sym_ULWM63O6UPJLQWAHX3MM6KEQT4NBSDWNEO3LSBY+0x3c>
   1b610:	8820      	ldrh	r0, [r4, #0]
   1b612:	4669      	mov	r1, sp
   1b614:	f7fd ffac 	bl	19570 <sym_UHWWEFDYCEMO6BV2Q3GVLMFC37EIDJEWGQC2XUA>
   1b618:	2800      	cmp	r0, #0
   1b61a:	d10f      	bne.n	1b63c <sym_ULWM63O6UPJLQWAHX3MM6KEQT4NBSDWNEO3LSBY+0x38>
   1b61c:	8820      	ldrh	r0, [r4, #0]
   1b61e:	8028      	strh	r0, [r5, #0]
   1b620:	9e01      	ldr	r6, [sp, #4]
   1b622:	f106 050c 	add.w	r5, r6, #12
   1b626:	3670      	adds	r6, #112	; 0x70
   1b628:	682f      	ldr	r7, [r5, #0]
   1b62a:	8862      	ldrh	r2, [r4, #2]
   1b62c:	4639      	mov	r1, r7
   1b62e:	4630      	mov	r0, r6
   1b630:	f7fe f8df 	bl	197f2 <sym_3LQGLF52CJLOKQOJSNFVLTD3CW6GGPJMARVGQNQ>
   1b634:	6828      	ldr	r0, [r5, #0]
   1b636:	42b8      	cmp	r0, r7
   1b638:	d1f6      	bne.n	1b628 <sym_ULWM63O6UPJLQWAHX3MM6KEQT4NBSDWNEO3LSBY+0x24>
   1b63a:	2000      	movs	r0, #0
   1b63c:	e8bd 81fc 	ldmia.w	sp!, {r2, r3, r4, r5, r6, r7, r8, pc}
   1b640:	2012      	movs	r0, #18
   1b642:	e7fb      	b.n	1b63c <sym_ULWM63O6UPJLQWAHX3MM6KEQT4NBSDWNEO3LSBY+0x38>

0001b644 <sym_5EMU3BEOS6JCQEXTZ5M5LP72YGJNCV3W3R43AOI>:
   1b644:	f7fa bd6e 	b.w	16124 <sym_RGKYP5TXYS27EGT6ZHZS5EDDAZK5QGTWLBOBJEA>

0001b648 <sym_TTWYMXRKLVLI7DIZYVTKGZHSGKFWB63OVH3AYYQ>:
   1b648:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
   1b64c:	b086      	sub	sp, #24
   1b64e:	468a      	mov	sl, r1
   1b650:	4606      	mov	r6, r0
   1b652:	8800      	ldrh	r0, [r0, #0]
   1b654:	a901      	add	r1, sp, #4
   1b656:	f7fd ff8b 	bl	19570 <sym_UHWWEFDYCEMO6BV2Q3GVLMFC37EIDJEWGQC2XUA>
   1b65a:	2800      	cmp	r0, #0
   1b65c:	d138      	bne.n	1b6d0 <sym_TTWYMXRKLVLI7DIZYVTKGZHSGKFWB63OVH3AYYQ+0x88>
   1b65e:	9802      	ldr	r0, [sp, #8]
   1b660:	f04f 0800 	mov.w	r8, #0
   1b664:	4601      	mov	r1, r0
   1b666:	4689      	mov	r9, r1
   1b668:	f890 11fc 	ldrb.w	r1, [r0, #508]	; 0x1fc
   1b66c:	f88d 1000 	strb.w	r1, [sp]
   1b670:	9900      	ldr	r1, [sp, #0]
   1b672:	9100      	str	r1, [sp, #0]
   1b674:	f89d 5000 	ldrb.w	r5, [sp]
   1b678:	f890 107e 	ldrb.w	r1, [r0, #126]	; 0x7e
   1b67c:	3070      	adds	r0, #112	; 0x70
   1b67e:	2921      	cmp	r1, #33	; 0x21
   1b680:	d100      	bne.n	1b684 <sym_TTWYMXRKLVLI7DIZYVTKGZHSGKFWB63OVH3AYYQ+0x3c>
   1b682:	b13d      	cbz	r5, 1b694 <sym_TTWYMXRKLVLI7DIZYVTKGZHSGKFWB63OVH3AYYQ+0x4c>
   1b684:	2400      	movs	r4, #0
   1b686:	304c      	adds	r0, #76	; 0x4c
   1b688:	2108      	movs	r1, #8
   1b68a:	4607      	mov	r7, r0
   1b68c:	f7ff fae8 	bl	1ac60 <sym_IYZQNCOB4T4XO27DREWRIWJFVHVS355NEDBEGEQ+0x78>
   1b690:	b110      	cbz	r0, 1b698 <sym_TTWYMXRKLVLI7DIZYVTKGZHSGKFWB63OVH3AYYQ+0x50>
   1b692:	e007      	b.n	1b6a4 <sym_TTWYMXRKLVLI7DIZYVTKGZHSGKFWB63OVH3AYYQ+0x5c>
   1b694:	2401      	movs	r4, #1
   1b696:	e7f6      	b.n	1b686 <sym_TTWYMXRKLVLI7DIZYVTKGZHSGKFWB63OVH3AYYQ+0x3e>
   1b698:	210b      	movs	r1, #11
   1b69a:	4638      	mov	r0, r7
   1b69c:	f7ff fae0 	bl	1ac60 <sym_IYZQNCOB4T4XO27DREWRIWJFVHVS355NEDBEGEQ+0x78>
   1b6a0:	b900      	cbnz	r0, 1b6a4 <sym_TTWYMXRKLVLI7DIZYVTKGZHSGKFWB63OVH3AYYQ+0x5c>
   1b6a2:	b1a4      	cbz	r4, 1b6ce <sym_TTWYMXRKLVLI7DIZYVTKGZHSGKFWB63OVH3AYYQ+0x86>
   1b6a4:	a804      	add	r0, sp, #16
   1b6a6:	9000      	str	r0, [sp, #0]
   1b6a8:	f89d 0004 	ldrb.w	r0, [sp, #4]
   1b6ac:	ab03      	add	r3, sp, #12
   1b6ae:	4632      	mov	r2, r6
   1b6b0:	4649      	mov	r1, r9
   1b6b2:	f000 f976 	bl	1b9a2 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x290>
   1b6b6:	0007      	movs	r7, r0
   1b6b8:	d10a      	bne.n	1b6d0 <sym_TTWYMXRKLVLI7DIZYVTKGZHSGKFWB63OVH3AYYQ+0x88>
   1b6ba:	f89d 0004 	ldrb.w	r0, [sp, #4]
   1b6be:	9c02      	ldr	r4, [sp, #8]
   1b6c0:	b148      	cbz	r0, 1b6d6 <sym_TTWYMXRKLVLI7DIZYVTKGZHSGKFWB63OVH3AYYQ+0x8e>
   1b6c2:	f504 74d7 	add.w	r4, r4, #430	; 0x1ae
   1b6c6:	2001      	movs	r0, #1
   1b6c8:	7060      	strb	r0, [r4, #1]
   1b6ca:	b94d      	cbnz	r5, 1b6e0 <sym_TTWYMXRKLVLI7DIZYVTKGZHSGKFWB63OVH3AYYQ+0x98>
   1b6cc:	e006      	b.n	1b6dc <sym_TTWYMXRKLVLI7DIZYVTKGZHSGKFWB63OVH3AYYQ+0x94>
   1b6ce:	201a      	movs	r0, #26
   1b6d0:	b006      	add	sp, #24
   1b6d2:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
   1b6d6:	f504 7497 	add.w	r4, r4, #302	; 0x12e
   1b6da:	e7f4      	b.n	1b6c6 <sym_TTWYMXRKLVLI7DIZYVTKGZHSGKFWB63OVH3AYYQ+0x7e>
   1b6dc:	7820      	ldrb	r0, [r4, #0]
   1b6de:	b108      	cbz	r0, 1b6e4 <sym_TTWYMXRKLVLI7DIZYVTKGZHSGKFWB63OVH3AYYQ+0x9c>
   1b6e0:	273a      	movs	r7, #58	; 0x3a
   1b6e2:	e012      	b.n	1b70a <sym_TTWYMXRKLVLI7DIZYVTKGZHSGKFWB63OVH3AYYQ+0xc2>
   1b6e4:	f884 a000 	strb.w	sl, [r4]
   1b6e8:	f89d 000c 	ldrb.w	r0, [sp, #12]
   1b6ec:	70a0      	strb	r0, [r4, #2]
   1b6ee:	f89d 1010 	ldrb.w	r1, [sp, #16]
   1b6f2:	70e1      	strb	r1, [r4, #3]
   1b6f4:	f88d 0000 	strb.w	r0, [sp]
   1b6f8:	f88d 1001 	strb.w	r1, [sp, #1]
   1b6fc:	88b0      	ldrh	r0, [r6, #4]
   1b6fe:	f8ad 0002 	strh.w	r0, [sp, #2]
   1b702:	4669      	mov	r1, sp
   1b704:	4648      	mov	r0, r9
   1b706:	f7fd fff2 	bl	196ee <sym_6NROXJNXJONASXBRH4ZGPEEQ42PSH3YLRTC74GQ>
   1b70a:	f884 8001 	strb.w	r8, [r4, #1]
   1b70e:	4638      	mov	r0, r7
   1b710:	e7de      	b.n	1b6d0 <sym_TTWYMXRKLVLI7DIZYVTKGZHSGKFWB63OVH3AYYQ+0x88>

0001b712 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A>:
   1b712:	b510      	push	{r4, lr}
   1b714:	2008      	movs	r0, #8
   1b716:	f7fa ffcf 	bl	166b8 <sym_N6TOG3AODPPFNS6LXFKKIADNGIMUMBS5BXPEFOY>
   1b71a:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
   1b71e:	f7f8 bd13 	b.w	14148 <sym_B2B7AU2WDMX5JQNGTX4YKNCWQCXQIG5PWSSOSAI>
   1b722:	f44f 71a4 	mov.w	r1, #328	; 0x148
   1b726:	4288      	cmp	r0, r1
   1b728:	d303      	bcc.n	1b732 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x20>
   1b72a:	f640 0148 	movw	r1, #2120	; 0x848
   1b72e:	4288      	cmp	r0, r1
   1b730:	d300      	bcc.n	1b734 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x22>
   1b732:	4608      	mov	r0, r1
   1b734:	4770      	bx	lr
   1b736:	07c1      	lsls	r1, r0, #31
   1b738:	d001      	beq.n	1b73e <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x2c>
   1b73a:	2001      	movs	r0, #1
   1b73c:	4770      	bx	lr
   1b73e:	0780      	lsls	r0, r0, #30
   1b740:	d501      	bpl.n	1b746 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x34>
   1b742:	2002      	movs	r0, #2
   1b744:	4770      	bx	lr
   1b746:	2000      	movs	r0, #0
   1b748:	4770      	bx	lr
   1b74a:	b510      	push	{r4, lr}
   1b74c:	2801      	cmp	r0, #1
   1b74e:	d006      	beq.n	1b75e <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x4c>
   1b750:	2802      	cmp	r0, #2
   1b752:	d004      	beq.n	1b75e <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x4c>
   1b754:	f240 2163 	movw	r1, #611	; 0x263
   1b758:	2006      	movs	r0, #6
   1b75a:	f7f4 fc43 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   1b75e:	bd10      	pop	{r4, pc}
   1b760:	b50e      	push	{r1, r2, r3, lr}
   1b762:	4669      	mov	r1, sp
   1b764:	2001      	movs	r0, #1
   1b766:	f7fd fcca 	bl	190fe <sym_3SKPFA625PNDCAQQU2M5BY77GYLRCXEEFZ5JBTY>
   1b76a:	b150      	cbz	r0, 1b782 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x70>
   1b76c:	f240 1141 	movw	r1, #321	; 0x141
   1b770:	2039      	movs	r0, #57	; 0x39
   1b772:	f7f4 fc37 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   1b776:	9802      	ldr	r0, [sp, #8]
   1b778:	f7fe fea5 	bl	1a4c6 <sym_GWLFBYMUVMRXAWJAYXMEGM7D57QYGUJF3J77TCA>
   1b77c:	b108      	cbz	r0, 1b782 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x70>
   1b77e:	2001      	movs	r0, #1
   1b780:	bd0e      	pop	{r1, r2, r3, pc}
   1b782:	4668      	mov	r0, sp
   1b784:	f7f4 fe74 	bl	10470 <sym_6I4XEOIW7LI2E3Z53L54ZHQQHYICXR4H4JQWXLA>
   1b788:	2800      	cmp	r0, #0
   1b78a:	d0f4      	beq.n	1b776 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x64>
   1b78c:	2000      	movs	r0, #0
   1b78e:	bd0e      	pop	{r1, r2, r3, pc}
   1b790:	b510      	push	{r4, lr}
   1b792:	f7ff ffe5 	bl	1b760 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x4e>
   1b796:	b158      	cbz	r0, 1b7b0 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x9e>
   1b798:	f000 f95f 	bl	1ba5a <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x348>
   1b79c:	4604      	mov	r4, r0
   1b79e:	f7fe fcc3 	bl	1a128 <sym_NGJGZTNK6YIH3QX2NKB6A6MT7N5AOKWA6ZOOANQ>
   1b7a2:	b918      	cbnz	r0, 1b7ac <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x9a>
   1b7a4:	4620      	mov	r0, r4
   1b7a6:	f7fe fcb5 	bl	1a114 <sym_UEZ3FVWFJ5XVLQBVVAHW7UTXVCC77F7ZYGOMLTQ>
   1b7aa:	b108      	cbz	r0, 1b7b0 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x9e>
   1b7ac:	2000      	movs	r0, #0
   1b7ae:	bd10      	pop	{r4, pc}
   1b7b0:	2001      	movs	r0, #1
   1b7b2:	bd10      	pop	{r4, pc}
   1b7b4:	b570      	push	{r4, r5, r6, lr}
   1b7b6:	460c      	mov	r4, r1
   1b7b8:	4605      	mov	r5, r0
   1b7ba:	b112      	cbz	r2, 1b7c2 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0xb0>
   1b7bc:	291f      	cmp	r1, #31
   1b7be:	d80c      	bhi.n	1b7da <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0xc8>
   1b7c0:	e016      	b.n	1b7f0 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0xde>
   1b7c2:	f7f5 f91b 	bl	109fc <sym_LD2UWOJIHNEPQLGRHPDQLYGR7RM2YL5X5777QYQ>
   1b7c6:	42a0      	cmp	r0, r4
   1b7c8:	d201      	bcs.n	1b7ce <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0xbc>
   1b7ca:	2007      	movs	r0, #7
   1b7cc:	bd70      	pop	{r4, r5, r6, pc}
   1b7ce:	4628      	mov	r0, r5
   1b7d0:	f7fe fca8 	bl	1a124 <sym_BDDELQSYWHVCCHSF6HGFFAORZOC56R54KIF45KY>
   1b7d4:	b118      	cbz	r0, 1b7de <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0xcc>
   1b7d6:	2c1f      	cmp	r4, #31
   1b7d8:	d901      	bls.n	1b7de <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0xcc>
   1b7da:	2012      	movs	r0, #18
   1b7dc:	bd70      	pop	{r4, r5, r6, pc}
   1b7de:	4628      	mov	r0, r5
   1b7e0:	f7fe fca9 	bl	1a136 <sym_WGJLFS2PDN6RZG7JWUITZ3W5MGJYYXFXIKI3GGQ>
   1b7e4:	b130      	cbz	r0, 1b7f4 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0xe2>
   1b7e6:	4621      	mov	r1, r4
   1b7e8:	4628      	mov	r0, r5
   1b7ea:	f7fe fc70 	bl	1a0ce <sym_GNUIHYMK3THJZQYGL7BBI74HDMHN6SBQQRVNSAY>
   1b7ee:	b118      	cbz	r0, 1b7f8 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0xe6>
   1b7f0:	2000      	movs	r0, #0
   1b7f2:	bd70      	pop	{r4, r5, r6, pc}
   1b7f4:	2042      	movs	r0, #66	; 0x42
   1b7f6:	bd70      	pop	{r4, r5, r6, pc}
   1b7f8:	2045      	movs	r0, #69	; 0x45
   1b7fa:	bd70      	pop	{r4, r5, r6, pc}
   1b7fc:	b510      	push	{r4, lr}
   1b7fe:	4604      	mov	r4, r0
   1b800:	7840      	ldrb	r0, [r0, #1]
   1b802:	06c1      	lsls	r1, r0, #27
   1b804:	d51c      	bpl.n	1b840 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x12e>
   1b806:	07c0      	lsls	r0, r0, #31
   1b808:	d00b      	beq.n	1b822 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x110>
   1b80a:	f7fa ff0b 	bl	16624 <sym_PRWTRTI5GPQHIT26MFBSSOCWTUYYRLQLJWD2ZOI>
   1b80e:	b1b8      	cbz	r0, 1b840 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x12e>
   1b810:	7860      	ldrb	r0, [r4, #1]
   1b812:	06c1      	lsls	r1, r0, #27
   1b814:	d405      	bmi.n	1b822 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x110>
   1b816:	0700      	lsls	r0, r0, #28
   1b818:	d503      	bpl.n	1b822 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x110>
   1b81a:	7d20      	ldrb	r0, [r4, #20]
   1b81c:	2802      	cmp	r0, #2
   1b81e:	d10f      	bne.n	1b840 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x12e>
   1b820:	e010      	b.n	1b844 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x132>
   1b822:	7d20      	ldrb	r0, [r4, #20]
   1b824:	2802      	cmp	r0, #2
   1b826:	d001      	beq.n	1b82c <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x11a>
   1b828:	7ea0      	ldrb	r0, [r4, #26]
   1b82a:	b948      	cbnz	r0, 1b840 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x12e>
   1b82c:	7860      	ldrb	r0, [r4, #1]
   1b82e:	0700      	lsls	r0, r0, #28
   1b830:	d408      	bmi.n	1b844 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x132>
   1b832:	f8d4 0005 	ldr.w	r0, [r4, #5]
   1b836:	f44f 4180 	mov.w	r1, #16384	; 0x4000
   1b83a:	ebb1 2f10 	cmp.w	r1, r0, lsr #8
   1b83e:	d201      	bcs.n	1b844 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x132>
   1b840:	2011      	movs	r0, #17
   1b842:	bd10      	pop	{r4, pc}
   1b844:	2000      	movs	r0, #0
   1b846:	bd10      	pop	{r4, pc}
   1b848:	b538      	push	{r3, r4, r5, lr}
   1b84a:	4604      	mov	r4, r0
   1b84c:	7800      	ldrb	r0, [r0, #0]
   1b84e:	28ef      	cmp	r0, #239	; 0xef
   1b850:	d843      	bhi.n	1b8da <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x1c8>
   1b852:	f8b4 0001 	ldrh.w	r0, [r4, #1]
   1b856:	f8ad 0000 	strh.w	r0, [sp]
   1b85a:	9800      	ldr	r0, [sp, #0]
   1b85c:	f000 f951 	bl	1bb02 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x3f0>
   1b860:	b3a0      	cbz	r0, 1b8cc <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x1ba>
   1b862:	7861      	ldrb	r1, [r4, #1]
   1b864:	0708      	lsls	r0, r1, #28
   1b866:	d40b      	bmi.n	1b880 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x16e>
   1b868:	f8d4 0002 	ldr.w	r0, [r4, #2]
   1b86c:	f8d4 3005 	ldr.w	r3, [r4, #5]
   1b870:	0a02      	lsrs	r2, r0, #8
   1b872:	ebb2 2f13 	cmp.w	r2, r3, lsr #8
   1b876:	d830      	bhi.n	1b8da <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x1c8>
   1b878:	2220      	movs	r2, #32
   1b87a:	ebb2 2f10 	cmp.w	r2, r0, lsr #8
   1b87e:	d82c      	bhi.n	1b8da <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x1c8>
   1b880:	7a60      	ldrb	r0, [r4, #9]
   1b882:	b318      	cbz	r0, 1b8cc <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x1ba>
   1b884:	2807      	cmp	r0, #7
   1b886:	d828      	bhi.n	1b8da <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x1c8>
   1b888:	7aa0      	ldrb	r0, [r4, #10]
   1b88a:	b128      	cbz	r0, 1b898 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x186>
   1b88c:	2801      	cmp	r0, #1
   1b88e:	d003      	beq.n	1b898 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x186>
   1b890:	2802      	cmp	r0, #2
   1b892:	d001      	beq.n	1b898 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x186>
   1b894:	2803      	cmp	r0, #3
   1b896:	d120      	bne.n	1b8da <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x1c8>
   1b898:	074a      	lsls	r2, r1, #29
   1b89a:	d403      	bmi.n	1b8a4 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x192>
   1b89c:	2802      	cmp	r0, #2
   1b89e:	d001      	beq.n	1b8a4 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x192>
   1b8a0:	2803      	cmp	r0, #3
   1b8a2:	d105      	bne.n	1b8b0 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x19e>
   1b8a4:	7ae0      	ldrb	r0, [r4, #11]
   1b8a6:	b108      	cbz	r0, 1b8ac <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x19a>
   1b8a8:	2801      	cmp	r0, #1
   1b8aa:	d116      	bne.n	1b8da <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x1c8>
   1b8ac:	0748      	lsls	r0, r1, #29
   1b8ae:	d407      	bmi.n	1b8c0 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x1ae>
   1b8b0:	7ca0      	ldrb	r0, [r4, #18]
   1b8b2:	b128      	cbz	r0, 1b8c0 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x1ae>
   1b8b4:	2801      	cmp	r0, #1
   1b8b6:	d003      	beq.n	1b8c0 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x1ae>
   1b8b8:	2802      	cmp	r0, #2
   1b8ba:	d001      	beq.n	1b8c0 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x1ae>
   1b8bc:	2803      	cmp	r0, #3
   1b8be:	d10c      	bne.n	1b8da <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x1c8>
   1b8c0:	06c8      	lsls	r0, r1, #27
   1b8c2:	7d20      	ldrb	r0, [r4, #20]
   1b8c4:	d503      	bpl.n	1b8ce <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x1bc>
   1b8c6:	2801      	cmp	r0, #1
   1b8c8:	d107      	bne.n	1b8da <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x1c8>
   1b8ca:	e002      	b.n	1b8d2 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x1c0>
   1b8cc:	e005      	b.n	1b8da <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x1c8>
   1b8ce:	2802      	cmp	r0, #2
   1b8d0:	d003      	beq.n	1b8da <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x1c8>
   1b8d2:	7e20      	ldrb	r0, [r4, #24]
   1b8d4:	b118      	cbz	r0, 1b8de <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x1cc>
   1b8d6:	2801      	cmp	r0, #1
   1b8d8:	d001      	beq.n	1b8de <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x1cc>
   1b8da:	2012      	movs	r0, #18
   1b8dc:	bd38      	pop	{r3, r4, r5, pc}
   1b8de:	2000      	movs	r0, #0
   1b8e0:	bd38      	pop	{r3, r4, r5, pc}
   1b8e2:	b510      	push	{r4, lr}
   1b8e4:	0004      	movs	r4, r0
   1b8e6:	d005      	beq.n	1b8f4 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x1e2>
   1b8e8:	f7fa fef6 	bl	166d8 <sym_HA7EOSELAQYVMG5UXMJGQLLFEIRQPB7MNOSYOXQ>
   1b8ec:	4384      	bics	r4, r0
   1b8ee:	d001      	beq.n	1b8f4 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x1e2>
   1b8f0:	2000      	movs	r0, #0
   1b8f2:	bd10      	pop	{r4, pc}
   1b8f4:	2001      	movs	r0, #1
   1b8f6:	bd10      	pop	{r4, pc}
   1b8f8:	28fb      	cmp	r0, #251	; 0xfb
   1b8fa:	d803      	bhi.n	1b904 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x1f2>
   1b8fc:	f640 0048 	movw	r0, #2120	; 0x848
   1b900:	4281      	cmp	r1, r0
   1b902:	d901      	bls.n	1b908 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x1f6>
   1b904:	2011      	movs	r0, #17
   1b906:	4770      	bx	lr
   1b908:	2000      	movs	r0, #0
   1b90a:	4770      	bx	lr
   1b90c:	381b      	subs	r0, #27
   1b90e:	28e1      	cmp	r0, #225	; 0xe1
   1b910:	d206      	bcs.n	1b920 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x20e>
   1b912:	f5b1 7fa4 	cmp.w	r1, #328	; 0x148
   1b916:	d303      	bcc.n	1b920 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x20e>
   1b918:	f244 2090 	movw	r0, #17040	; 0x4290
   1b91c:	4281      	cmp	r1, r0
   1b91e:	d901      	bls.n	1b924 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x212>
   1b920:	2012      	movs	r0, #18
   1b922:	4770      	bx	lr
   1b924:	2000      	movs	r0, #0
   1b926:	4770      	bx	lr
   1b928:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   1b92c:	4606      	mov	r6, r0
   1b92e:	f8b0 7052 	ldrh.w	r7, [r0, #82]	; 0x52
   1b932:	f8b0 4054 	ldrh.w	r4, [r0, #84]	; 0x54
   1b936:	4615      	mov	r5, r2
   1b938:	302c      	adds	r0, #44	; 0x2c
   1b93a:	f7f7 fe4b 	bl	135d4 <sym_2XQD73Z3W4NFFHWTLZCIS7IQ3ACFNR3KKEBKCJQ>
   1b93e:	4680      	mov	r8, r0
   1b940:	2102      	movs	r1, #2
   1b942:	f7fd fea5 	bl	19690 <sym_CMGYAOMYUJOSH7VMLD3ENK3VLSIPR3DVYN2F44Y>
   1b946:	4287      	cmp	r7, r0
   1b948:	d200      	bcs.n	1b94c <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x23a>
   1b94a:	4638      	mov	r0, r7
   1b94c:	4607      	mov	r7, r0
   1b94e:	2102      	movs	r1, #2
   1b950:	4640      	mov	r0, r8
   1b952:	f7fd fe9d 	bl	19690 <sym_CMGYAOMYUJOSH7VMLD3ENK3VLSIPR3DVYN2F44Y>
   1b956:	4284      	cmp	r4, r0
   1b958:	d200      	bcs.n	1b95c <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x24a>
   1b95a:	4620      	mov	r0, r4
   1b95c:	8831      	ldrh	r1, [r6, #0]
   1b95e:	8029      	strh	r1, [r5, #0]
   1b960:	2f1b      	cmp	r7, #27
   1b962:	d913      	bls.n	1b98c <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x27a>
   1b964:	2ffb      	cmp	r7, #251	; 0xfb
   1b966:	d300      	bcc.n	1b96a <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x258>
   1b968:	27fb      	movs	r7, #251	; 0xfb
   1b96a:	806f      	strh	r7, [r5, #2]
   1b96c:	281b      	cmp	r0, #27
   1b96e:	d90f      	bls.n	1b990 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x27e>
   1b970:	28fb      	cmp	r0, #251	; 0xfb
   1b972:	d300      	bcc.n	1b976 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x264>
   1b974:	20fb      	movs	r0, #251	; 0xfb
   1b976:	80e8      	strh	r0, [r5, #6]
   1b978:	4640      	mov	r0, r8
   1b97a:	f7ff fed2 	bl	1b722 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x10>
   1b97e:	80a8      	strh	r0, [r5, #4]
   1b980:	4640      	mov	r0, r8
   1b982:	f7ff fece 	bl	1b722 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x10>
   1b986:	8128      	strh	r0, [r5, #8]
   1b988:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
   1b98c:	271b      	movs	r7, #27
   1b98e:	e7ec      	b.n	1b96a <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x258>
   1b990:	201b      	movs	r0, #27
   1b992:	e7f0      	b.n	1b976 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x264>
   1b994:	b510      	push	{r4, lr}
   1b996:	f7ff fee3 	bl	1b760 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x4e>
   1b99a:	2800      	cmp	r0, #0
   1b99c:	d000      	beq.n	1b9a0 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x28e>
   1b99e:	2001      	movs	r0, #1
   1b9a0:	bd10      	pop	{r4, pc}
   1b9a2:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   1b9a6:	7890      	ldrb	r0, [r2, #2]
   1b9a8:	9e06      	ldr	r6, [sp, #24]
   1b9aa:	461d      	mov	r5, r3
   1b9ac:	4614      	mov	r4, r2
   1b9ae:	b908      	cbnz	r0, 1b9b4 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x2a2>
   1b9b0:	f7fa fe92 	bl	166d8 <sym_HA7EOSELAQYVMG5UXMJGQLLFEIRQPB7MNOSYOXQ>
   1b9b4:	78e4      	ldrb	r4, [r4, #3]
   1b9b6:	4607      	mov	r7, r0
   1b9b8:	b914      	cbnz	r4, 1b9c0 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x2ae>
   1b9ba:	f7fa fe8d 	bl	166d8 <sym_HA7EOSELAQYVMG5UXMJGQLLFEIRQPB7MNOSYOXQ>
   1b9be:	4604      	mov	r4, r0
   1b9c0:	b16f      	cbz	r7, 1b9de <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x2cc>
   1b9c2:	b164      	cbz	r4, 1b9de <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x2cc>
   1b9c4:	4638      	mov	r0, r7
   1b9c6:	f7ff feb6 	bl	1b736 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x24>
   1b9ca:	4620      	mov	r0, r4
   1b9cc:	f7ff feb3 	bl	1b736 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x24>
   1b9d0:	b12f      	cbz	r7, 1b9de <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x2cc>
   1b9d2:	b124      	cbz	r4, 1b9de <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x2cc>
   1b9d4:	702f      	strb	r7, [r5, #0]
   1b9d6:	7034      	strb	r4, [r6, #0]
   1b9d8:	2000      	movs	r0, #0
   1b9da:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
   1b9de:	2009      	movs	r0, #9
   1b9e0:	e7fb      	b.n	1b9da <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x2c8>
   1b9e2:	b510      	push	{r4, lr}
   1b9e4:	f7fc fb11 	bl	1800a <sym_SWIBDSDMHUYNCG5ZWLB52J7NETJIUBPCO5IIQFA>
   1b9e8:	b928      	cbnz	r0, 1b9f6 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x2e4>
   1b9ea:	f7fc fb44 	bl	18076 <sym_6PVOPWDLWTXOTRZZ7LP36TLYTLPTQHNAUQNFHEA>
   1b9ee:	b910      	cbnz	r0, 1b9f6 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x2e4>
   1b9f0:	f7fc fb4b 	bl	1808a <sym_USR4MDT6VMTQLOGKNN4MALBZ3GJPD2KOEY4HFAQ>
   1b9f4:	b108      	cbz	r0, 1b9fa <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x2e8>
   1b9f6:	2008      	movs	r0, #8
   1b9f8:	bd10      	pop	{r4, pc}
   1b9fa:	f7fc fadb 	bl	17fb4 <sym_BN6ZO2NBHRGKZ2NRQYWFBXVGKNG6Y5K55UNAWGA>
   1b9fe:	b940      	cbnz	r0, 1ba12 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x300>
   1ba00:	f7fc fae2 	bl	17fc8 <sym_5EMXP3L6SPQSCAJKKRH62ZOKJCCSKLI3WEX2WHY>
   1ba04:	b928      	cbnz	r0, 1ba12 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x300>
   1ba06:	f7fc faf6 	bl	17ff6 <sym_H2QJCU2ORTYAFBAQQ2FHUYIAZO4HCXEKCQ4SS2Q>
   1ba0a:	b910      	cbnz	r0, 1ba12 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x300>
   1ba0c:	f7fc fb07 	bl	1801e <sym_QPP3IZFSWHUV4JQ6ODMIVIARPB4PQYUFESV7BRQ>
   1ba10:	b108      	cbz	r0, 1ba16 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x304>
   1ba12:	2004      	movs	r0, #4
   1ba14:	bd10      	pop	{r4, pc}
   1ba16:	f44f 61b1 	mov.w	r1, #1416	; 0x588
   1ba1a:	2039      	movs	r0, #57	; 0x39
   1ba1c:	f7f4 fae2 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   1ba20:	b510      	push	{r4, lr}
   1ba22:	f7fa fe53 	bl	166cc <sym_PBZPB3PSJJYSQQW7TH2XDGNLD2UYSZR6YJ4ZZNQ>
   1ba26:	f3c0 1040 	ubfx	r0, r0, #5, #1
   1ba2a:	bd10      	pop	{r4, pc}
   1ba2c:	6840      	ldr	r0, [r0, #4]
   1ba2e:	f000 b800 	b.w	1ba32 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x320>
   1ba32:	b508      	push	{r3, lr}
   1ba34:	f890 1134 	ldrb.w	r1, [r0, #308]	; 0x134
   1ba38:	f890 0094 	ldrb.w	r0, [r0, #148]	; 0x94
   1ba3c:	f88d 0000 	strb.w	r0, [sp]
   1ba40:	9800      	ldr	r0, [sp, #0]
   1ba42:	9000      	str	r0, [sp, #0]
   1ba44:	f89d 0000 	ldrb.w	r0, [sp]
   1ba48:	1e40      	subs	r0, r0, #1
   1ba4a:	4208      	tst	r0, r1
   1ba4c:	d003      	beq.n	1ba56 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x344>
   1ba4e:	2904      	cmp	r1, #4
   1ba50:	d001      	beq.n	1ba56 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x344>
   1ba52:	2001      	movs	r0, #1
   1ba54:	bd08      	pop	{r3, pc}
   1ba56:	2000      	movs	r0, #0
   1ba58:	bd08      	pop	{r3, pc}
   1ba5a:	b510      	push	{r4, lr}
   1ba5c:	2101      	movs	r1, #1
   1ba5e:	2000      	movs	r0, #0
   1ba60:	f7fd fb43 	bl	190ea <sym_5X75WALYYBUWN4XT5LYOZBIGSZHVNFKF5J4CSQI>
   1ba64:	0004      	movs	r4, r0
   1ba66:	d108      	bne.n	1ba7a <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x368>
   1ba68:	2200      	movs	r2, #0
   1ba6a:	2101      	movs	r1, #1
   1ba6c:	4610      	mov	r0, r2
   1ba6e:	f7fd fb32 	bl	190d6 <sym_7JFC7IFAJQVPYCQHAIUKZ626ISM3VUWBEEXY7WI>
   1ba72:	0004      	movs	r4, r0
   1ba74:	d003      	beq.n	1ba7e <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x36c>
   1ba76:	f7fe faf2 	bl	1a05e <sym_YA57TPZ3CLQ6C73TD2RIGTELUAMYOOAKHU5T7RQ>
   1ba7a:	4620      	mov	r0, r4
   1ba7c:	bd10      	pop	{r4, pc}
   1ba7e:	f44f 7108 	mov.w	r1, #544	; 0x220
   1ba82:	2039      	movs	r0, #57	; 0x39
   1ba84:	f7f4 faae 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   1ba88:	b570      	push	{r4, r5, r6, lr}
   1ba8a:	4605      	mov	r5, r0
   1ba8c:	f7fe fb53 	bl	1a136 <sym_WGJLFS2PDN6RZG7JWUITZ3W5MGJYYXFXIKI3GGQ>
   1ba90:	b170      	cbz	r0, 1bab0 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x39e>
   1ba92:	4628      	mov	r0, r5
   1ba94:	f7fe fd17 	bl	1a4c6 <sym_GWLFBYMUVMRXAWJAYXMEGM7D57QYGUJF3J77TCA>
   1ba98:	2800      	cmp	r0, #0
   1ba9a:	d008      	beq.n	1baae <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x39c>
   1ba9c:	4628      	mov	r0, r5
   1ba9e:	f7fe fd0f 	bl	1a4c0 <sym_WI2RDLNIWKOV64CKFZ2EF2DRND265I3CYCBNK6A>
   1baa2:	4604      	mov	r4, r0
   1baa4:	4628      	mov	r0, r5
   1baa6:	f7fe fce5 	bl	1a474 <sym_IWCITVPPUY332JRWMVJAKISCC47TLWX26E2MXOI>
   1baaa:	b118      	cbz	r0, 1bab4 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x3a2>
   1baac:	200c      	movs	r0, #12
   1baae:	bd70      	pop	{r4, r5, r6, pc}
   1bab0:	2042      	movs	r0, #66	; 0x42
   1bab2:	bd70      	pop	{r4, r5, r6, pc}
   1bab4:	b164      	cbz	r4, 1bad0 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x3be>
   1bab6:	8820      	ldrh	r0, [r4, #0]
   1bab8:	f7fd fc9a 	bl	193f0 <sym_REO6MG4FRJTNQQ56RDJDYGEWFEO5TFVYGRW6OLI>
   1babc:	8820      	ldrh	r0, [r4, #0]
   1babe:	2100      	movs	r1, #0
   1bac0:	f7f4 fd26 	bl	10510 <sym_4AWF7EXI3MMHUULTY73E756U3IY5DEXOZ265MZY>
   1bac4:	b120      	cbz	r0, 1bad0 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x3be>
   1bac6:	f241 41b9 	movw	r1, #5305	; 0x14b9
   1baca:	2039      	movs	r0, #57	; 0x39
   1bacc:	f7f4 fa8a 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   1bad0:	2000      	movs	r0, #0
   1bad2:	bd70      	pop	{r4, r5, r6, pc}
   1bad4:	b530      	push	{r4, r5, lr}
   1bad6:	f340 0400 	sbfx	r4, r0, #0, #1
   1bada:	f340 0040 	sbfx	r0, r0, #1, #1
   1bade:	1c40      	adds	r0, r0, #1
   1bae0:	9d03      	ldr	r5, [sp, #12]
   1bae2:	1c64      	adds	r4, r4, #1
   1bae4:	d000      	beq.n	1bae8 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x3d6>
   1bae6:	b119      	cbz	r1, 1baf0 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x3de>
   1bae8:	b100      	cbz	r0, 1baec <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x3da>
   1baea:	b10a      	cbz	r2, 1baf0 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x3de>
   1baec:	b91c      	cbnz	r4, 1baf6 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x3e4>
   1baee:	e001      	b.n	1baf4 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x3e2>
   1baf0:	2011      	movs	r0, #17
   1baf2:	bd30      	pop	{r4, r5, pc}
   1baf4:	2100      	movs	r1, #0
   1baf6:	7019      	strb	r1, [r3, #0]
   1baf8:	b900      	cbnz	r0, 1bafc <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x3ea>
   1bafa:	2200      	movs	r2, #0
   1bafc:	702a      	strb	r2, [r5, #0]
   1bafe:	2000      	movs	r0, #0
   1bb00:	bd30      	pop	{r4, r5, pc}
   1bb02:	b2c0      	uxtb	r0, r0
   1bb04:	06c1      	lsls	r1, r0, #27
   1bb06:	d40c      	bmi.n	1bb22 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x410>
   1bb08:	0681      	lsls	r1, r0, #26
   1bb0a:	ea4f 71c0 	mov.w	r1, r0, lsl #31
   1bb0e:	d503      	bpl.n	1bb18 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x406>
   1bb10:	b9d1      	cbnz	r1, 1bb48 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x436>
   1bb12:	0781      	lsls	r1, r0, #30
   1bb14:	d418      	bmi.n	1bb48 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x436>
   1bb16:	e001      	b.n	1bb1c <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x40a>
   1bb18:	2900      	cmp	r1, #0
   1bb1a:	d1fa      	bne.n	1bb12 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x400>
   1bb1c:	0700      	lsls	r0, r0, #28
   1bb1e:	d413      	bmi.n	1bb48 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x436>
   1bb20:	e010      	b.n	1bb44 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x432>
   1bb22:	0641      	lsls	r1, r0, #25
   1bb24:	d410      	bmi.n	1bb48 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x436>
   1bb26:	0681      	lsls	r1, r0, #26
   1bb28:	d40e      	bmi.n	1bb48 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x436>
   1bb2a:	07c1      	lsls	r1, r0, #31
   1bb2c:	ea4f 7180 	mov.w	r1, r0, lsl #30
   1bb30:	d004      	beq.n	1bb3c <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x42a>
   1bb32:	2900      	cmp	r1, #0
   1bb34:	db02      	blt.n	1bb3c <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x42a>
   1bb36:	0740      	lsls	r0, r0, #29
   1bb38:	d404      	bmi.n	1bb44 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x432>
   1bb3a:	e005      	b.n	1bb48 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x436>
   1bb3c:	0701      	lsls	r1, r0, #28
   1bb3e:	d403      	bmi.n	1bb48 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x436>
   1bb40:	0740      	lsls	r0, r0, #29
   1bb42:	d401      	bmi.n	1bb48 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x436>
   1bb44:	2001      	movs	r0, #1
   1bb46:	4770      	bx	lr
   1bb48:	2000      	movs	r0, #0
   1bb4a:	4770      	bx	lr
   1bb4c:	b53e      	push	{r1, r2, r3, r4, r5, lr}
   1bb4e:	4669      	mov	r1, sp
   1bb50:	2001      	movs	r0, #1
   1bb52:	f7fd fad4 	bl	190fe <sym_3SKPFA625PNDCAQQU2M5BY77GYLRCXEEFZ5JBTY>
   1bb56:	b178      	cbz	r0, 1bb78 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x466>
   1bb58:	f240 115f 	movw	r1, #351	; 0x15f
   1bb5c:	2039      	movs	r0, #57	; 0x39
   1bb5e:	f7f4 fa41 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   1bb62:	9c02      	ldr	r4, [sp, #8]
   1bb64:	4620      	mov	r0, r4
   1bb66:	f7fe fcae 	bl	1a4c6 <sym_GWLFBYMUVMRXAWJAYXMEGM7D57QYGUJF3J77TCA>
   1bb6a:	b128      	cbz	r0, 1bb78 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x466>
   1bb6c:	4620      	mov	r0, r4
   1bb6e:	f7fe fb10 	bl	1a192 <sym_H6NC6L6VJY74V6C72Y6E5P4HGSZIVJQXMUOQZ5Y>
   1bb72:	b108      	cbz	r0, 1bb78 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x466>
   1bb74:	2001      	movs	r0, #1
   1bb76:	bd3e      	pop	{r1, r2, r3, r4, r5, pc}
   1bb78:	4668      	mov	r0, sp
   1bb7a:	f7f4 fc79 	bl	10470 <sym_6I4XEOIW7LI2E3Z53L54ZHQQHYICXR4H4JQWXLA>
   1bb7e:	2800      	cmp	r0, #0
   1bb80:	d0ef      	beq.n	1bb62 <sym_266BMVQDBLXULMLATXWWN2P23YFP57RBL2ZNQ7A+0x450>
   1bb82:	2000      	movs	r0, #0
   1bb84:	bd3e      	pop	{r1, r2, r3, r4, r5, pc}

0001bb86 <sym_UIICDNWE37K7Q6PWKEUSWDTQBQP3XQZ5WN3TYNQ>:
   1bb86:	6802      	ldr	r2, [r0, #0]
   1bb88:	b912      	cbnz	r2, 1bb90 <sym_UIICDNWE37K7Q6PWKEUSWDTQBQP3XQZ5WN3TYNQ+0xa>
   1bb8a:	6001      	str	r1, [r0, #0]
   1bb8c:	4770      	bx	lr
   1bb8e:	4602      	mov	r2, r0
   1bb90:	6850      	ldr	r0, [r2, #4]
   1bb92:	b108      	cbz	r0, 1bb98 <sym_UIICDNWE37K7Q6PWKEUSWDTQBQP3XQZ5WN3TYNQ+0x12>
   1bb94:	428a      	cmp	r2, r1
   1bb96:	d1fa      	bne.n	1bb8e <sym_UIICDNWE37K7Q6PWKEUSWDTQBQP3XQZ5WN3TYNQ+0x8>
   1bb98:	428a      	cmp	r2, r1
   1bb9a:	d0f7      	beq.n	1bb8c <sym_UIICDNWE37K7Q6PWKEUSWDTQBQP3XQZ5WN3TYNQ+0x6>
   1bb9c:	6051      	str	r1, [r2, #4]
   1bb9e:	4770      	bx	lr
   1bba0:	b510      	push	{r4, lr}
   1bba2:	f7fe fc93 	bl	1a4cc <sym_6PZGCXLPPNIPYHSAJRHQXJCKUI2SGZWI2B4DQZA>
   1bba6:	b108      	cbz	r0, 1bbac <sym_UIICDNWE37K7Q6PWKEUSWDTQBQP3XQZ5WN3TYNQ+0x26>
   1bba8:	21f3      	movs	r1, #243	; 0xf3
   1bbaa:	e003      	b.n	1bbb4 <sym_UIICDNWE37K7Q6PWKEUSWDTQBQP3XQZ5WN3TYNQ+0x2e>
   1bbac:	f7f6 fea6 	bl	128fc <sym_4WIY2RAFLOZNOS4O5BEVWEYHIO3NV42IZ2Q2NWQ>
   1bbb0:	b118      	cbz	r0, 1bbba <sym_UIICDNWE37K7Q6PWKEUSWDTQBQP3XQZ5WN3TYNQ+0x34>
   1bbb2:	21f8      	movs	r1, #248	; 0xf8
   1bbb4:	2001      	movs	r0, #1
   1bbb6:	f7f4 fa15 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   1bbba:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
   1bbbe:	2001      	movs	r0, #1
   1bbc0:	f7f4 bbec 	b.w	1039c <sym_HNCDHITBYWLO4GMOSPKCO7YXRRWIUQ2IKIZ4C5A>
   1bbc4:	b510      	push	{r4, lr}
   1bbc6:	4604      	mov	r4, r0
   1bbc8:	e002      	b.n	1bbd0 <sym_UIICDNWE37K7Q6PWKEUSWDTQBQP3XQZ5WN3TYNQ+0x4a>
   1bbca:	6820      	ldr	r0, [r4, #0]
   1bbcc:	4780      	blx	r0
   1bbce:	6864      	ldr	r4, [r4, #4]
   1bbd0:	2c00      	cmp	r4, #0
   1bbd2:	d1fa      	bne.n	1bbca <sym_UIICDNWE37K7Q6PWKEUSWDTQBQP3XQZ5WN3TYNQ+0x44>
   1bbd4:	bd10      	pop	{r4, pc}
   1bbd6:	b510      	push	{r4, lr}
   1bbd8:	2000      	movs	r0, #0
   1bbda:	f7f4 fbdf 	bl	1039c <sym_HNCDHITBYWLO4GMOSPKCO7YXRRWIUQ2IKIZ4C5A>
   1bbde:	f7f4 fe15 	bl	1080c <sym_NOQRMQ5IH6SQFJEPI5A3UBMITO54HG4WO4DTTXA>
   1bbe2:	f7f5 f8e1 	bl	10da8 <sym_MJCF2WRL4I323V23HKVENOJWV5IXH54R5X6LJRY>
   1bbe6:	f7f5 fad5 	bl	11194 <sym_CZFK26FRDZ53FUV75DOIMFWVD4RTHYB6I22U4LA>
   1bbea:	2800      	cmp	r0, #0
   1bbec:	d003      	beq.n	1bbf6 <sym_UIICDNWE37K7Q6PWKEUSWDTQBQP3XQZ5WN3TYNQ+0x70>
   1bbee:	21d0      	movs	r1, #208	; 0xd0
   1bbf0:	2001      	movs	r0, #1
   1bbf2:	f7f4 f9f7 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   1bbf6:	bd10      	pop	{r4, pc}
   1bbf8:	b510      	push	{r4, lr}
   1bbfa:	f7ff ffd1 	bl	1bba0 <sym_UIICDNWE37K7Q6PWKEUSWDTQBQP3XQZ5WN3TYNQ+0x1a>
   1bbfe:	f7fe ffef 	bl	1abe0 <sym_OTZAOT4DEZSL3R4MXRNUS2BIBKPPCOEO2SMZYAI>
   1bc02:	2800      	cmp	r0, #0
   1bc04:	d004      	beq.n	1bc10 <sym_UIICDNWE37K7Q6PWKEUSWDTQBQP3XQZ5WN3TYNQ+0x8a>
   1bc06:	f240 1111 	movw	r1, #273	; 0x111
   1bc0a:	2001      	movs	r0, #1
   1bc0c:	f7f4 f9ea 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   1bc10:	bd10      	pop	{r4, pc}

0001bc12 <sym_R2552DB5ZKNDWW24PBGEV77VCDBC44WVAYRCUXQ>:
   1bc12:	f7f3 be5b 	b.w	f8cc <sym_ETIE3PCEXQYLK2GIVZENQ6V7PLBRV57MB7BDMNY>
   1bc16:	0001      	.short	0x0001
   1bc18:	0002000b 	.word	0x0002000b
   1bc1c:	0005000a 	.word	0x0005000a
   1bc20:	000a0009 	.word	0x000a0009
   1bc24:	00140008 	.word	0x00140008
   1bc28:	001e0007 	.word	0x001e0007
   1bc2c:	00320006 	.word	0x00320006
   1bc30:	004b0005 	.word	0x004b0005
   1bc34:	00640004 	.word	0x00640004
   1bc38:	00960003 	.word	0x00960003
   1bc3c:	00fa0002 	.word	0x00fa0002
   1bc40:	01f40001 	.word	0x01f40001
	...

0001bc46 <sym_BIDMG7YHRFQNLIKRFVSOGOT6IXZCQ6UEJKN52VI>:
   1bc46:	b510      	push	{r4, lr}
   1bc48:	f7fb f936 	bl	16eb8 <sym_RUQBFILZ5CHV2AAL6C3D2J5Y33TCCAPZTHBGZ3A>
   1bc4c:	f000 f850 	bl	1bcf0 <sym_XPKSFPKFBNSTZZU4FUMGC3XRHAVS24BBL53HRMA>
   1bc50:	f7fa fdb0 	bl	167b4 <sym_LOTFHGQTFUFWGX7HOTL4Q2XATGIJRVIMCMOYRMA>
   1bc54:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
   1bc58:	f7fa beae 	b.w	169b8 <sym_TRMXENGHOH4VBQQZPIN222FLCEFU3Z3CD5C47DY>

0001bc5c <sym_ZG4AW57AAT4BVE2J2CU4KMCCWK46ENDRPKBYXEQ>:
   1bc5c:	b510      	push	{r4, lr}
   1bc5e:	24c8      	movs	r4, #200	; 0xc8
   1bc60:	1e64      	subs	r4, r4, #1
   1bc62:	b2e4      	uxtb	r4, r4
   1bc64:	f7fa fdc4 	bl	167f0 <sym_KZ5CVONZGMGIGNMI7YD6HLN3FXAAJK6OMEJW6BQ>
   1bc68:	2802      	cmp	r0, #2
   1bc6a:	d003      	beq.n	1bc74 <sym_ZG4AW57AAT4BVE2J2CU4KMCCWK46ENDRPKBYXEQ+0x18>
   1bc6c:	2801      	cmp	r0, #1
   1bc6e:	d000      	beq.n	1bc72 <sym_ZG4AW57AAT4BVE2J2CU4KMCCWK46ENDRPKBYXEQ+0x16>
   1bc70:	2000      	movs	r0, #0
   1bc72:	bd10      	pop	{r4, pc}
   1bc74:	2c00      	cmp	r4, #0
   1bc76:	d1f3      	bne.n	1bc60 <sym_ZG4AW57AAT4BVE2J2CU4KMCCWK46ENDRPKBYXEQ+0x4>
   1bc78:	2193      	movs	r1, #147	; 0x93
   1bc7a:	203b      	movs	r0, #59	; 0x3b
   1bc7c:	f7f4 f9b2 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>

0001bc80 <sym_PKZI2LNJRQFOGPY3Z6D7ENZHA2LDIAEYXBTZBJQ>:
   1bc80:	b510      	push	{r4, lr}
   1bc82:	f7f4 f87d 	bl	fd80 <mpsl_fem_lna_configuration_clear>
   1bc86:	2800      	cmp	r0, #0
   1bc88:	d005      	beq.n	1bc96 <sym_PKZI2LNJRQFOGPY3Z6D7ENZHA2LDIAEYXBTZBJQ+0x16>
   1bc8a:	1c40      	adds	r0, r0, #1
   1bc8c:	d003      	beq.n	1bc96 <sym_PKZI2LNJRQFOGPY3Z6D7ENZHA2LDIAEYXBTZBJQ+0x16>
   1bc8e:	2150      	movs	r1, #80	; 0x50
   1bc90:	2040      	movs	r0, #64	; 0x40
   1bc92:	f7f4 f9a7 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   1bc96:	bd10      	pop	{r4, pc}

0001bc98 <sym_N6LF7X4QYONFKAWQRSSHARQMQTFUHJR6FXUMIWQ>:
   1bc98:	b510      	push	{r4, lr}
   1bc9a:	f7f4 f87d 	bl	fd98 <mpsl_fem_pa_configuration_clear>
   1bc9e:	2800      	cmp	r0, #0
   1bca0:	d005      	beq.n	1bcae <sym_N6LF7X4QYONFKAWQRSSHARQMQTFUHJR6FXUMIWQ+0x16>
   1bca2:	1c40      	adds	r0, r0, #1
   1bca4:	d003      	beq.n	1bcae <sym_N6LF7X4QYONFKAWQRSSHARQMQTFUHJR6FXUMIWQ+0x16>
   1bca6:	2149      	movs	r1, #73	; 0x49
   1bca8:	2040      	movs	r0, #64	; 0x40
   1bcaa:	f7f4 f99b 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   1bcae:	bd10      	pop	{r4, pc}

0001bcb0 <sym_DSSXRKAIB7ZUK7R2G3EQLOMJRLX6MVTLTDBXFXI>:
   1bcb0:	b510      	push	{r4, lr}
   1bcb2:	f7f4 f85f 	bl	fd74 <mpsl_fem_disable>
   1bcb6:	2800      	cmp	r0, #0
   1bcb8:	d005      	beq.n	1bcc6 <sym_DSSXRKAIB7ZUK7R2G3EQLOMJRLX6MVTLTDBXFXI+0x16>
   1bcba:	1c40      	adds	r0, r0, #1
   1bcbc:	d003      	beq.n	1bcc6 <sym_DSSXRKAIB7ZUK7R2G3EQLOMJRLX6MVTLTDBXFXI+0x16>
   1bcbe:	2157      	movs	r1, #87	; 0x57
   1bcc0:	2040      	movs	r0, #64	; 0x40
   1bcc2:	f7f4 f98f 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   1bcc6:	bd10      	pop	{r4, pc}

0001bcc8 <sym_WFMAMHLWHE7QJLGLEMKA2L5X3GX23U2AG4FLMAA>:
   1bcc8:	b510      	push	{r4, lr}
   1bcca:	2100      	movs	r1, #0
   1bccc:	4608      	mov	r0, r1
   1bcce:	f7f4 f85d 	bl	fd8c <mpsl_fem_lna_configuration_set>
   1bcd2:	b108      	cbz	r0, 1bcd8 <sym_WFMAMHLWHE7QJLGLEMKA2L5X3GX23U2AG4FLMAA+0x10>
   1bcd4:	2000      	movs	r0, #0
   1bcd6:	bd10      	pop	{r4, pc}
   1bcd8:	2001      	movs	r0, #1
   1bcda:	bd10      	pop	{r4, pc}

0001bcdc <sym_5IC6CLAWUNEEDICBRGJBLMKHCLXAQK6XSBR2I2I>:
   1bcdc:	b508      	push	{r3, lr}
   1bcde:	4668      	mov	r0, sp
   1bce0:	f7f4 f866 	bl	fdb0 <mpsl_fem_pa_is_configured>
   1bce4:	f89d 0000 	ldrb.w	r0, [sp]
   1bce8:	2800      	cmp	r0, #0
   1bcea:	d000      	beq.n	1bcee <sym_5IC6CLAWUNEEDICBRGJBLMKHCLXAQK6XSBR2I2I+0x12>
   1bcec:	2001      	movs	r0, #1
   1bcee:	bd08      	pop	{r3, pc}

0001bcf0 <sym_XPKSFPKFBNSTZZU4FUMGC3XRHAVS24BBL53HRMA>:
   1bcf0:	f04f 21e0 	mov.w	r1, #3758153728	; 0xe000e000
   1bcf4:	f44f 4000 	mov.w	r0, #32768	; 0x8000
   1bcf8:	f8c1 0180 	str.w	r0, [r1, #384]	; 0x180
   1bcfc:	f3bf 8f4f 	dsb	sy
   1bd00:	f3bf 8f6f 	isb	sy
   1bd04:	f7fa bf32 	b.w	16b6c <sym_6Q45YYTUN2KDQ5V5UGE3T2LTI5FNGX6WIJYLIDI+0x4c>
   1bd08:	2800      	cmp	r0, #0
   1bd0a:	db09      	blt.n	1bd20 <sym_XPKSFPKFBNSTZZU4FUMGC3XRHAVS24BBL53HRMA+0x30>
   1bd0c:	f000 021f 	and.w	r2, r0, #31
   1bd10:	2101      	movs	r1, #1
   1bd12:	4091      	lsls	r1, r2
   1bd14:	0940      	lsrs	r0, r0, #5
   1bd16:	0080      	lsls	r0, r0, #2
   1bd18:	f100 20e0 	add.w	r0, r0, #3758153728	; 0xe000e000
   1bd1c:	f8c0 1280 	str.w	r1, [r0, #640]	; 0x280
   1bd20:	4770      	bx	lr
   1bd22:	2800      	cmp	r0, #0
   1bd24:	db0d      	blt.n	1bd42 <sym_XPKSFPKFBNSTZZU4FUMGC3XRHAVS24BBL53HRMA+0x52>
   1bd26:	f000 021f 	and.w	r2, r0, #31
   1bd2a:	2101      	movs	r1, #1
   1bd2c:	4091      	lsls	r1, r2
   1bd2e:	0940      	lsrs	r0, r0, #5
   1bd30:	0080      	lsls	r0, r0, #2
   1bd32:	f100 20e0 	add.w	r0, r0, #3758153728	; 0xe000e000
   1bd36:	f8c0 1180 	str.w	r1, [r0, #384]	; 0x180
   1bd3a:	f3bf 8f4f 	dsb	sy
   1bd3e:	f3bf 8f6f 	isb	sy
   1bd42:	4770      	bx	lr

0001bd44 <sym_V67AIMSO57NYVNGXZF2PDQSJQJLITHU4KD4CKAY>:
   1bd44:	b510      	push	{r4, lr}
   1bd46:	2801      	cmp	r0, #1
   1bd48:	d006      	beq.n	1bd58 <sym_V67AIMSO57NYVNGXZF2PDQSJQJLITHU4KD4CKAY+0x14>
   1bd4a:	2802      	cmp	r0, #2
   1bd4c:	d006      	beq.n	1bd5c <sym_V67AIMSO57NYVNGXZF2PDQSJQJLITHU4KD4CKAY+0x18>
   1bd4e:	f640 3164 	movw	r1, #2916	; 0xb64
   1bd52:	203e      	movs	r0, #62	; 0x3e
   1bd54:	f7f4 f946 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   1bd58:	2028      	movs	r0, #40	; 0x28
   1bd5a:	bd10      	pop	{r4, pc}
   1bd5c:	2018      	movs	r0, #24
   1bd5e:	bd10      	pop	{r4, pc}

0001bd60 <sym_UX6VBOIQ7ULLMX3I6UDFOFZ6IT2DVZKKVIEVRMY>:
   1bd60:	b510      	push	{r4, lr}
   1bd62:	2801      	cmp	r0, #1
   1bd64:	d006      	beq.n	1bd74 <sym_UX6VBOIQ7ULLMX3I6UDFOFZ6IT2DVZKKVIEVRMY+0x14>
   1bd66:	2802      	cmp	r0, #2
   1bd68:	d007      	beq.n	1bd7a <sym_UX6VBOIQ7ULLMX3I6UDFOFZ6IT2DVZKKVIEVRMY+0x1a>
   1bd6a:	f640 3178 	movw	r1, #2936	; 0xb78
   1bd6e:	203e      	movs	r0, #62	; 0x3e
   1bd70:	f7f4 f938 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   1bd74:	f641 6014 	movw	r0, #7700	; 0x1e14
   1bd78:	bd10      	pop	{r4, pc}
   1bd7a:	f241 1030 	movw	r0, #4400	; 0x1130
   1bd7e:	bd10      	pop	{r4, pc}

0001bd80 <sym_K7DVDHTWL3F7TVQBJD7AJF4MCRCM54IIDUOJLTY>:
   1bd80:	f7fb bdc2 	b.w	17908 <sym_G3LKQQIKLUPALYXV2H43IC7H4PYU6B6QFLQBXZY+0x460>
   1bd84:	b510      	push	{r4, lr}
   1bd86:	460a      	mov	r2, r1
   1bd88:	b130      	cbz	r0, 1bd98 <sym_K7DVDHTWL3F7TVQBJD7AJF4MCRCM54IIDUOJLTY+0x18>
   1bd8a:	2801      	cmp	r0, #1
   1bd8c:	d00b      	beq.n	1bda6 <sym_K7DVDHTWL3F7TVQBJD7AJF4MCRCM54IIDUOJLTY+0x26>
   1bd8e:	f240 6127 	movw	r1, #1575	; 0x627
   1bd92:	203e      	movs	r0, #62	; 0x3e
   1bd94:	f7f4 f926 	bl	ffe4 <sym_476LRB5XNUARAHCHHC7ZAIGPFC5VZ4W2N4467LI>
   1bd98:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
   1bd9c:	f102 0128 	add.w	r1, r2, #40	; 0x28
   1bda0:	4610      	mov	r0, r2
   1bda2:	f7fa bd79 	b.w	16898 <sym_WDGETGVBCYUKUDGN6Q77INXYI367WBVME2GNBIA>
   1bda6:	e8bd 4010 	ldmia.w	sp!, {r4, lr}
   1bdaa:	f102 0129 	add.w	r1, r2, #41	; 0x29
   1bdae:	4610      	mov	r0, r2
   1bdb0:	f7fa bd5c 	b.w	1686c <sym_VD2RNA2VIHLNDCPSVYBEMTIWUZPQSJTQESN32OQ>

0001bdb4 <sym_55XNA7W2CQFJPCH62ZAKHLPISYHJ7KMNREEN6EA>:
   1bdb4:	b570      	push	{r4, r5, r6, lr}
   1bdb6:	4605      	mov	r5, r0
   1bdb8:	4614      	mov	r4, r2
   1bdba:	4608      	mov	r0, r1
   1bdbc:	f7ff ffd0 	bl	1bd60 <sym_UX6VBOIQ7ULLMX3I6UDFOFZ6IT2DVZKKVIEVRMY>
   1bdc0:	eb05 0145 	add.w	r1, r5, r5, lsl #1
   1bdc4:	ebc1 11c5 	rsb	r1, r1, r5, lsl #7
   1bdc8:	ebc0 05c1 	rsb	r5, r0, r1, lsl #3
   1bdcc:	4620      	mov	r0, r4
   1bdce:	f7ff ffc7 	bl	1bd60 <sym_UX6VBOIQ7ULLMX3I6UDFOFZ6IT2DVZKKVIEVRMY>
   1bdd2:	4428      	add	r0, r5
   1bdd4:	f44f 717a 	mov.w	r1, #1000	; 0x3e8
   1bdd8:	f600 30b7 	addw	r0, r0, #2999	; 0xbb7
   1bddc:	fbb0 f5f1 	udiv	r5, r0, r1
   1bde0:	4620      	mov	r0, r4
   1bde2:	f7ff ffaf 	bl	1bd44 <sym_V67AIMSO57NYVNGXZF2PDQSJQJLITHU4KD4CKAY>
   1bde6:	4428      	add	r0, r5
   1bde8:	1d40      	adds	r0, r0, #5
   1bdea:	bd70      	pop	{r4, r5, r6, pc}

0001bdec <sym_7VLVVPDI26BVJ64XQBSGXOQYGQA4VH5APIPDGYA>:
   1bdec:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   1bdf0:	4607      	mov	r7, r0
   1bdf2:	461d      	mov	r5, r3
   1bdf4:	460e      	mov	r6, r1
   1bdf6:	4614      	mov	r4, r2
   1bdf8:	4610      	mov	r0, r2
   1bdfa:	f7ff ffb1 	bl	1bd60 <sym_UX6VBOIQ7ULLMX3I6UDFOFZ6IT2DVZKKVIEVRMY>
   1bdfe:	eb07 0147 	add.w	r1, r7, r7, lsl #1
   1be02:	ebc1 11c7 	rsb	r1, r1, r7, lsl #7
   1be06:	eb00 01c1 	add.w	r1, r0, r1, lsl #3
   1be0a:	f44f 707a 	mov.w	r0, #1000	; 0x3e8
   1be0e:	2e02      	cmp	r6, #2
   1be10:	d00e      	beq.n	1be30 <sym_7VLVVPDI26BVJ64XQBSGXOQYGQA4VH5APIPDGYA+0x44>
   1be12:	f240 52dc 	movw	r2, #1500	; 0x5dc
   1be16:	4411      	add	r1, r2
   1be18:	f601 31b7 	addw	r1, r1, #2999	; 0xbb7
   1be1c:	fbb1 f6f0 	udiv	r6, r1, r0
   1be20:	4620      	mov	r0, r4
   1be22:	f7ff ff8f 	bl	1bd44 <sym_V67AIMSO57NYVNGXZF2PDQSJQJLITHU4KD4CKAY>
   1be26:	4430      	add	r0, r6
   1be28:	4428      	add	r0, r5
   1be2a:	1d40      	adds	r0, r0, #5
   1be2c:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
   1be30:	4602      	mov	r2, r0
   1be32:	e7f0      	b.n	1be16 <sym_7VLVVPDI26BVJ64XQBSGXOQYGQA4VH5APIPDGYA+0x2a>

0001be34 <sym_2EA2WBXQOKCTPMK7YNDR6QM6MTGHJCDTPZEXNNA>:
   1be34:	b510      	push	{r4, lr}
   1be36:	4604      	mov	r4, r0
   1be38:	4608      	mov	r0, r1
   1be3a:	f7ff ff91 	bl	1bd60 <sym_UX6VBOIQ7ULLMX3I6UDFOFZ6IT2DVZKKVIEVRMY>
   1be3e:	f44f 717a 	mov.w	r1, #1000	; 0x3e8
   1be42:	f200 30e7 	addw	r0, r0, #999	; 0x3e7
   1be46:	fbb0 f0f1 	udiv	r0, r0, r1
   1be4a:	1a20      	subs	r0, r4, r0
   1be4c:	1e80      	subs	r0, r0, #2
   1be4e:	bd10      	pop	{r4, pc}

0001be50 <sym_KM5SKFVNZKDXUQ7BDD3RZ5UCA5E3ZDVNWYJVR3Y>:
   1be50:	b510      	push	{r4, lr}
   1be52:	4604      	mov	r4, r0
   1be54:	4608      	mov	r0, r1
   1be56:	f7ff ff83 	bl	1bd60 <sym_UX6VBOIQ7ULLMX3I6UDFOFZ6IT2DVZKKVIEVRMY>
   1be5a:	f44f 717a 	mov.w	r1, #1000	; 0x3e8
   1be5e:	fbb0 f0f1 	udiv	r0, r0, r1
   1be62:	1a20      	subs	r0, r4, r0
   1be64:	bd10      	pop	{r4, pc}

0001be66 <sym_WD6EQ3FQVKOAARDWHQJJC5SVKHQS7A2MF5YDCPA>:
   1be66:	f44f 727a 	mov.w	r2, #1000	; 0x3e8
   1be6a:	2902      	cmp	r1, #2
   1be6c:	d008      	beq.n	1be80 <sym_WD6EQ3FQVKOAARDWHQJJC5SVKHQS7A2MF5YDCPA+0x1a>
   1be6e:	f240 51dc 	movw	r1, #1500	; 0x5dc
   1be72:	f201 31e7 	addw	r1, r1, #999	; 0x3e7
   1be76:	fbb1 f1f2 	udiv	r1, r1, r2
   1be7a:	4408      	add	r0, r1
   1be7c:	1e80      	subs	r0, r0, #2
   1be7e:	4770      	bx	lr
   1be80:	4611      	mov	r1, r2
   1be82:	e7f6      	b.n	1be72 <sym_WD6EQ3FQVKOAARDWHQJJC5SVKHQS7A2MF5YDCPA+0xc>

0001be84 <sym_WGW6HZ6PNLYQSUJALICWZO27AY5UJWYCU6B6ACI>:
   1be84:	f44f 727a 	mov.w	r2, #1000	; 0x3e8
   1be88:	2902      	cmp	r1, #2
   1be8a:	d007      	beq.n	1be9c <sym_WGW6HZ6PNLYQSUJALICWZO27AY5UJWYCU6B6ACI+0x18>
   1be8c:	f240 51dc 	movw	r1, #1500	; 0x5dc
   1be90:	f501 717a 	add.w	r1, r1, #1000	; 0x3e8
   1be94:	fbb1 f1f2 	udiv	r1, r1, r2
   1be98:	4408      	add	r0, r1
   1be9a:	4770      	bx	lr
   1be9c:	4611      	mov	r1, r2
   1be9e:	e7f7      	b.n	1be90 <sym_WGW6HZ6PNLYQSUJALICWZO27AY5UJWYCU6B6ACI+0xc>
   1bea0:	1702080c 	.word	0x1702080c
   1bea4:	0201010d 	.word	0x0201010d
   1bea8:	01010909 	.word	0x01010909
   1beac:	18090206 	.word	0x18090206
   1beb0:	01010318 	.word	0x01010318
   1beb4:	03030909 	.word	0x03030909
   1beb8:	00000005 	.word	0x00000005

0001bebc <app_button_cb>:
}

static bool app_button_cb(void)
{
	return app_button_state;
}
   1bebc:	4b01      	ldr	r3, [pc, #4]	; (1bec4 <app_button_cb+0x8>)
   1bebe:	7818      	ldrb	r0, [r3, #0]
   1bec0:	4770      	bx	lr
   1bec2:	bf00      	nop
   1bec4:	200034e6 	.word	0x200034e6

0001bec8 <security_changed>:
{
   1bec8:	b5f0      	push	{r4, r5, r6, r7, lr}
   1beca:	b093      	sub	sp, #76	; 0x4c
   1becc:	460e      	mov	r6, r1
   1bece:	4615      	mov	r5, r2
	bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr));
   1bed0:	f01a fd7a 	bl	369c8 <bt_conn_get_dst>
   1bed4:	4604      	mov	r4, r0
static inline int bt_addr_le_to_str(const bt_addr_le_t *addr, char *str,
				    size_t len)
{
	char type[10];

	switch (addr->type) {
   1bed6:	7803      	ldrb	r3, [r0, #0]
   1bed8:	2b03      	cmp	r3, #3
   1beda:	d832      	bhi.n	1bf42 <security_changed+0x7a>
   1bedc:	e8df f003 	tbb	[pc, r3]
   1bee0:	2c272202 	.word	0x2c272202
	case BT_ADDR_LE_PUBLIC:
		strcpy(type, "public");
   1bee4:	491d      	ldr	r1, [pc, #116]	; (1bf5c <security_changed+0x94>)
   1bee6:	a807      	add	r0, sp, #28
   1bee8:	f019 fd97 	bl	35a1a <strcpy>
		snprintk(type, sizeof(type), "0x%02x", addr->type);
		break;
	}

	return snprintk(str, len, "%02X:%02X:%02X:%02X:%02X:%02X (%s)",
			addr->a.val[5], addr->a.val[4], addr->a.val[3],
   1beec:	79a3      	ldrb	r3, [r4, #6]
   1beee:	7962      	ldrb	r2, [r4, #5]
   1bef0:	7921      	ldrb	r1, [r4, #4]
			addr->a.val[2], addr->a.val[1], addr->a.val[0], type);
   1bef2:	78e0      	ldrb	r0, [r4, #3]
   1bef4:	78a7      	ldrb	r7, [r4, #2]
   1bef6:	7864      	ldrb	r4, [r4, #1]
	return snprintk(str, len, "%02X:%02X:%02X:%02X:%02X:%02X (%s)",
   1bef8:	f10d 0c1c 	add.w	ip, sp, #28
   1befc:	f8cd c014 	str.w	ip, [sp, #20]
   1bf00:	9404      	str	r4, [sp, #16]
   1bf02:	9703      	str	r7, [sp, #12]
   1bf04:	9002      	str	r0, [sp, #8]
   1bf06:	9101      	str	r1, [sp, #4]
   1bf08:	9200      	str	r2, [sp, #0]
   1bf0a:	4a15      	ldr	r2, [pc, #84]	; (1bf60 <security_changed+0x98>)
   1bf0c:	211e      	movs	r1, #30
   1bf0e:	a80a      	add	r0, sp, #40	; 0x28
   1bf10:	f017 fa59 	bl	333c6 <snprintk>
	if (!err) {
   1bf14:	b9dd      	cbnz	r5, 1bf4e <security_changed+0x86>
		printk("Security changed: %s level %u\n", addr, level);
   1bf16:	4632      	mov	r2, r6
   1bf18:	a90a      	add	r1, sp, #40	; 0x28
   1bf1a:	4812      	ldr	r0, [pc, #72]	; (1bf64 <security_changed+0x9c>)
   1bf1c:	f017 fa45 	bl	333aa <printk>
}
   1bf20:	b013      	add	sp, #76	; 0x4c
   1bf22:	bdf0      	pop	{r4, r5, r6, r7, pc}
		strcpy(type, "random");
   1bf24:	4910      	ldr	r1, [pc, #64]	; (1bf68 <security_changed+0xa0>)
   1bf26:	a807      	add	r0, sp, #28
   1bf28:	f019 fd77 	bl	35a1a <strcpy>
		break;
   1bf2c:	e7de      	b.n	1beec <security_changed+0x24>
		strcpy(type, "public-id");
   1bf2e:	490f      	ldr	r1, [pc, #60]	; (1bf6c <security_changed+0xa4>)
   1bf30:	a807      	add	r0, sp, #28
   1bf32:	f019 fd72 	bl	35a1a <strcpy>
		break;
   1bf36:	e7d9      	b.n	1beec <security_changed+0x24>
		strcpy(type, "random-id");
   1bf38:	490d      	ldr	r1, [pc, #52]	; (1bf70 <security_changed+0xa8>)
   1bf3a:	a807      	add	r0, sp, #28
   1bf3c:	f019 fd6d 	bl	35a1a <strcpy>
		break;
   1bf40:	e7d4      	b.n	1beec <security_changed+0x24>
		snprintk(type, sizeof(type), "0x%02x", addr->type);
   1bf42:	4a0c      	ldr	r2, [pc, #48]	; (1bf74 <security_changed+0xac>)
   1bf44:	210a      	movs	r1, #10
   1bf46:	a807      	add	r0, sp, #28
   1bf48:	f017 fa3d 	bl	333c6 <snprintk>
		break;
   1bf4c:	e7ce      	b.n	1beec <security_changed+0x24>
		printk("Security failed: %s level %u err %d\n", addr, level,
   1bf4e:	462b      	mov	r3, r5
   1bf50:	4632      	mov	r2, r6
   1bf52:	a90a      	add	r1, sp, #40	; 0x28
   1bf54:	4808      	ldr	r0, [pc, #32]	; (1bf78 <security_changed+0xb0>)
   1bf56:	f017 fa28 	bl	333aa <printk>
}
   1bf5a:	e7e1      	b.n	1bf20 <security_changed+0x58>
   1bf5c:	0003ba88 	.word	0x0003ba88
   1bf60:	0003bab8 	.word	0x0003bab8
   1bf64:	0003badc 	.word	0x0003badc
   1bf68:	0003ba90 	.word	0x0003ba90
   1bf6c:	0003ba98 	.word	0x0003ba98
   1bf70:	0003baa4 	.word	0x0003baa4
   1bf74:	0003bab0 	.word	0x0003bab0
   1bf78:	0003bafc 	.word	0x0003bafc

0001bf7c <disconnected>:
{
   1bf7c:	b508      	push	{r3, lr}
	printk("Disconnected (reason %u)\n", reason);
   1bf7e:	4803      	ldr	r0, [pc, #12]	; (1bf8c <disconnected+0x10>)
   1bf80:	f017 fa13 	bl	333aa <printk>
	dk_set_led_off(CON_STATUS_LED);
   1bf84:	2001      	movs	r0, #1
   1bf86:	f01d fc88 	bl	3989a <dk_set_led_off>
}
   1bf8a:	bd08      	pop	{r3, pc}
   1bf8c:	0003bb24 	.word	0x0003bb24

0001bf90 <connected>:
{
   1bf90:	b508      	push	{r3, lr}
	if (err) {
   1bf92:	b931      	cbnz	r1, 1bfa2 <connected+0x12>
	printk("Connected\n");
   1bf94:	4805      	ldr	r0, [pc, #20]	; (1bfac <connected+0x1c>)
   1bf96:	f017 fa08 	bl	333aa <printk>
	dk_set_led_on(CON_STATUS_LED);
   1bf9a:	2001      	movs	r0, #1
   1bf9c:	f01d fc78 	bl	39890 <dk_set_led_on>
}
   1bfa0:	bd08      	pop	{r3, pc}
		printk("Connection failed (err %u)\n", err);
   1bfa2:	4803      	ldr	r0, [pc, #12]	; (1bfb0 <connected+0x20>)
   1bfa4:	f017 fa01 	bl	333aa <printk>
		return;
   1bfa8:	e7fa      	b.n	1bfa0 <connected+0x10>
   1bfaa:	bf00      	nop
   1bfac:	0003bb5c 	.word	0x0003bb5c
   1bfb0:	0003bb40 	.word	0x0003bb40

0001bfb4 <init_button>:
		app_button_state = user_button_state ? true : false;
	}
}

static int init_button(void)
{
   1bfb4:	b510      	push	{r4, lr}
	int err;

	err = dk_buttons_init(button_changed);
   1bfb6:	4806      	ldr	r0, [pc, #24]	; (1bfd0 <init_button+0x1c>)
   1bfb8:	f00f fe0e 	bl	2bbd8 <dk_buttons_init>
	if (err) {
   1bfbc:	4604      	mov	r4, r0
   1bfbe:	b908      	cbnz	r0, 1bfc4 <init_button+0x10>
		printk("Cannot init buttons (err: %d)\n", err);
	}

	return err;
}
   1bfc0:	4620      	mov	r0, r4
   1bfc2:	bd10      	pop	{r4, pc}
		printk("Cannot init buttons (err: %d)\n", err);
   1bfc4:	4601      	mov	r1, r0
   1bfc6:	4803      	ldr	r0, [pc, #12]	; (1bfd4 <init_button+0x20>)
   1bfc8:	f017 f9ef 	bl	333aa <printk>
	return err;
   1bfcc:	e7f8      	b.n	1bfc0 <init_button+0xc>
   1bfce:	bf00      	nop
   1bfd0:	0001bfd9 	.word	0x0001bfd9
   1bfd4:	0003bb68 	.word	0x0003bb68

0001bfd8 <button_changed>:
	if (has_changed & USER_BUTTON) {
   1bfd8:	f011 0f0f 	tst.w	r1, #15
   1bfdc:	d100      	bne.n	1bfe0 <button_changed+0x8>
   1bfde:	4770      	bx	lr
{
   1bfe0:	b510      	push	{r4, lr}
		bt_lbs_send_button_state(user_button_state);
   1bfe2:	f010 040f 	ands.w	r4, r0, #15
   1bfe6:	bf18      	it	ne
   1bfe8:	2401      	movne	r4, #1
   1bfea:	4620      	mov	r0, r4
   1bfec:	f002 fc82 	bl	1e8f4 <bt_lbs_send_button_state>
		app_button_state = user_button_state ? true : false;
   1bff0:	4b01      	ldr	r3, [pc, #4]	; (1bff8 <button_changed+0x20>)
   1bff2:	701c      	strb	r4, [r3, #0]
}
   1bff4:	bd10      	pop	{r4, pc}
   1bff6:	bf00      	nop
   1bff8:	200034e6 	.word	0x200034e6

0001bffc <auth_cancel>:
{
   1bffc:	b570      	push	{r4, r5, r6, lr}
   1bffe:	b092      	sub	sp, #72	; 0x48
	bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr));
   1c000:	f01a fce2 	bl	369c8 <bt_conn_get_dst>
   1c004:	4604      	mov	r4, r0
	switch (addr->type) {
   1c006:	7803      	ldrb	r3, [r0, #0]
   1c008:	2b03      	cmp	r3, #3
   1c00a:	d82e      	bhi.n	1c06a <auth_cancel+0x6e>
   1c00c:	e8df f003 	tbb	[pc, r3]
   1c010:	28231e02 	.word	0x28231e02
		strcpy(type, "public");
   1c014:	4918      	ldr	r1, [pc, #96]	; (1c078 <auth_cancel+0x7c>)
   1c016:	a807      	add	r0, sp, #28
   1c018:	f019 fcff 	bl	35a1a <strcpy>
			addr->a.val[5], addr->a.val[4], addr->a.val[3],
   1c01c:	79a3      	ldrb	r3, [r4, #6]
   1c01e:	7962      	ldrb	r2, [r4, #5]
   1c020:	7921      	ldrb	r1, [r4, #4]
			addr->a.val[2], addr->a.val[1], addr->a.val[0], type);
   1c022:	78e0      	ldrb	r0, [r4, #3]
   1c024:	78a5      	ldrb	r5, [r4, #2]
   1c026:	7864      	ldrb	r4, [r4, #1]
	return snprintk(str, len, "%02X:%02X:%02X:%02X:%02X:%02X (%s)",
   1c028:	ae07      	add	r6, sp, #28
   1c02a:	9605      	str	r6, [sp, #20]
   1c02c:	9404      	str	r4, [sp, #16]
   1c02e:	9503      	str	r5, [sp, #12]
   1c030:	9002      	str	r0, [sp, #8]
   1c032:	9101      	str	r1, [sp, #4]
   1c034:	9200      	str	r2, [sp, #0]
   1c036:	4a11      	ldr	r2, [pc, #68]	; (1c07c <auth_cancel+0x80>)
   1c038:	211e      	movs	r1, #30
   1c03a:	a80a      	add	r0, sp, #40	; 0x28
   1c03c:	f017 f9c3 	bl	333c6 <snprintk>
	printk("Pairing cancelled: %s\n", addr);
   1c040:	a90a      	add	r1, sp, #40	; 0x28
   1c042:	480f      	ldr	r0, [pc, #60]	; (1c080 <auth_cancel+0x84>)
   1c044:	f017 f9b1 	bl	333aa <printk>
}
   1c048:	b012      	add	sp, #72	; 0x48
   1c04a:	bd70      	pop	{r4, r5, r6, pc}
		strcpy(type, "random");
   1c04c:	490d      	ldr	r1, [pc, #52]	; (1c084 <auth_cancel+0x88>)
   1c04e:	a807      	add	r0, sp, #28
   1c050:	f019 fce3 	bl	35a1a <strcpy>
		break;
   1c054:	e7e2      	b.n	1c01c <auth_cancel+0x20>
		strcpy(type, "public-id");
   1c056:	490c      	ldr	r1, [pc, #48]	; (1c088 <auth_cancel+0x8c>)
   1c058:	a807      	add	r0, sp, #28
   1c05a:	f019 fcde 	bl	35a1a <strcpy>
		break;
   1c05e:	e7dd      	b.n	1c01c <auth_cancel+0x20>
		strcpy(type, "random-id");
   1c060:	490a      	ldr	r1, [pc, #40]	; (1c08c <auth_cancel+0x90>)
   1c062:	a807      	add	r0, sp, #28
   1c064:	f019 fcd9 	bl	35a1a <strcpy>
		break;
   1c068:	e7d8      	b.n	1c01c <auth_cancel+0x20>
		snprintk(type, sizeof(type), "0x%02x", addr->type);
   1c06a:	4a09      	ldr	r2, [pc, #36]	; (1c090 <auth_cancel+0x94>)
   1c06c:	210a      	movs	r1, #10
   1c06e:	a807      	add	r0, sp, #28
   1c070:	f017 f9a9 	bl	333c6 <snprintk>
		break;
   1c074:	e7d2      	b.n	1c01c <auth_cancel+0x20>
   1c076:	bf00      	nop
   1c078:	0003ba88 	.word	0x0003ba88
   1c07c:	0003bab8 	.word	0x0003bab8
   1c080:	0003bb88 	.word	0x0003bb88
   1c084:	0003ba90 	.word	0x0003ba90
   1c088:	0003ba98 	.word	0x0003ba98
   1c08c:	0003baa4 	.word	0x0003baa4
   1c090:	0003bab0 	.word	0x0003bab0

0001c094 <pairing_complete>:
{
   1c094:	b5f0      	push	{r4, r5, r6, r7, lr}
   1c096:	b093      	sub	sp, #76	; 0x4c
   1c098:	460d      	mov	r5, r1
	bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr));
   1c09a:	f01a fc95 	bl	369c8 <bt_conn_get_dst>
   1c09e:	4604      	mov	r4, r0
	switch (addr->type) {
   1c0a0:	7803      	ldrb	r3, [r0, #0]
   1c0a2:	2b03      	cmp	r3, #3
   1c0a4:	d82f      	bhi.n	1c106 <pairing_complete+0x72>
   1c0a6:	e8df f003 	tbb	[pc, r3]
   1c0aa:	1f02      	.short	0x1f02
   1c0ac:	2924      	.short	0x2924
		strcpy(type, "public");
   1c0ae:	4919      	ldr	r1, [pc, #100]	; (1c114 <pairing_complete+0x80>)
   1c0b0:	a807      	add	r0, sp, #28
   1c0b2:	f019 fcb2 	bl	35a1a <strcpy>
			addr->a.val[5], addr->a.val[4], addr->a.val[3],
   1c0b6:	79a3      	ldrb	r3, [r4, #6]
   1c0b8:	7962      	ldrb	r2, [r4, #5]
   1c0ba:	7921      	ldrb	r1, [r4, #4]
			addr->a.val[2], addr->a.val[1], addr->a.val[0], type);
   1c0bc:	78e0      	ldrb	r0, [r4, #3]
   1c0be:	78a6      	ldrb	r6, [r4, #2]
   1c0c0:	7864      	ldrb	r4, [r4, #1]
	return snprintk(str, len, "%02X:%02X:%02X:%02X:%02X:%02X (%s)",
   1c0c2:	af07      	add	r7, sp, #28
   1c0c4:	9705      	str	r7, [sp, #20]
   1c0c6:	9404      	str	r4, [sp, #16]
   1c0c8:	9603      	str	r6, [sp, #12]
   1c0ca:	9002      	str	r0, [sp, #8]
   1c0cc:	9101      	str	r1, [sp, #4]
   1c0ce:	9200      	str	r2, [sp, #0]
   1c0d0:	4a11      	ldr	r2, [pc, #68]	; (1c118 <pairing_complete+0x84>)
   1c0d2:	211e      	movs	r1, #30
   1c0d4:	a80a      	add	r0, sp, #40	; 0x28
   1c0d6:	f017 f976 	bl	333c6 <snprintk>
	printk("Pairing completed: %s, bonded: %d\n", addr, bonded);
   1c0da:	462a      	mov	r2, r5
   1c0dc:	a90a      	add	r1, sp, #40	; 0x28
   1c0de:	480f      	ldr	r0, [pc, #60]	; (1c11c <pairing_complete+0x88>)
   1c0e0:	f017 f963 	bl	333aa <printk>
}
   1c0e4:	b013      	add	sp, #76	; 0x4c
   1c0e6:	bdf0      	pop	{r4, r5, r6, r7, pc}
		strcpy(type, "random");
   1c0e8:	490d      	ldr	r1, [pc, #52]	; (1c120 <pairing_complete+0x8c>)
   1c0ea:	a807      	add	r0, sp, #28
   1c0ec:	f019 fc95 	bl	35a1a <strcpy>
		break;
   1c0f0:	e7e1      	b.n	1c0b6 <pairing_complete+0x22>
		strcpy(type, "public-id");
   1c0f2:	490c      	ldr	r1, [pc, #48]	; (1c124 <pairing_complete+0x90>)
   1c0f4:	a807      	add	r0, sp, #28
   1c0f6:	f019 fc90 	bl	35a1a <strcpy>
		break;
   1c0fa:	e7dc      	b.n	1c0b6 <pairing_complete+0x22>
		strcpy(type, "random-id");
   1c0fc:	490a      	ldr	r1, [pc, #40]	; (1c128 <pairing_complete+0x94>)
   1c0fe:	a807      	add	r0, sp, #28
   1c100:	f019 fc8b 	bl	35a1a <strcpy>
		break;
   1c104:	e7d7      	b.n	1c0b6 <pairing_complete+0x22>
		snprintk(type, sizeof(type), "0x%02x", addr->type);
   1c106:	4a09      	ldr	r2, [pc, #36]	; (1c12c <pairing_complete+0x98>)
   1c108:	210a      	movs	r1, #10
   1c10a:	a807      	add	r0, sp, #28
   1c10c:	f017 f95b 	bl	333c6 <snprintk>
		break;
   1c110:	e7d1      	b.n	1c0b6 <pairing_complete+0x22>
   1c112:	bf00      	nop
   1c114:	0003ba88 	.word	0x0003ba88
   1c118:	0003bab8 	.word	0x0003bab8
   1c11c:	0003bba0 	.word	0x0003bba0
   1c120:	0003ba90 	.word	0x0003ba90
   1c124:	0003ba98 	.word	0x0003ba98
   1c128:	0003baa4 	.word	0x0003baa4
   1c12c:	0003bab0 	.word	0x0003bab0

0001c130 <pairing_failed>:
{
   1c130:	b5f0      	push	{r4, r5, r6, r7, lr}
   1c132:	b093      	sub	sp, #76	; 0x4c
   1c134:	460d      	mov	r5, r1
	bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr));
   1c136:	f01a fc47 	bl	369c8 <bt_conn_get_dst>
   1c13a:	4604      	mov	r4, r0
	switch (addr->type) {
   1c13c:	7803      	ldrb	r3, [r0, #0]
   1c13e:	2b03      	cmp	r3, #3
   1c140:	d82f      	bhi.n	1c1a2 <pairing_failed+0x72>
   1c142:	e8df f003 	tbb	[pc, r3]
   1c146:	1f02      	.short	0x1f02
   1c148:	2924      	.short	0x2924
		strcpy(type, "public");
   1c14a:	4919      	ldr	r1, [pc, #100]	; (1c1b0 <pairing_failed+0x80>)
   1c14c:	a807      	add	r0, sp, #28
   1c14e:	f019 fc64 	bl	35a1a <strcpy>
			addr->a.val[5], addr->a.val[4], addr->a.val[3],
   1c152:	79a3      	ldrb	r3, [r4, #6]
   1c154:	7962      	ldrb	r2, [r4, #5]
   1c156:	7921      	ldrb	r1, [r4, #4]
			addr->a.val[2], addr->a.val[1], addr->a.val[0], type);
   1c158:	78e0      	ldrb	r0, [r4, #3]
   1c15a:	78a6      	ldrb	r6, [r4, #2]
   1c15c:	7864      	ldrb	r4, [r4, #1]
	return snprintk(str, len, "%02X:%02X:%02X:%02X:%02X:%02X (%s)",
   1c15e:	af07      	add	r7, sp, #28
   1c160:	9705      	str	r7, [sp, #20]
   1c162:	9404      	str	r4, [sp, #16]
   1c164:	9603      	str	r6, [sp, #12]
   1c166:	9002      	str	r0, [sp, #8]
   1c168:	9101      	str	r1, [sp, #4]
   1c16a:	9200      	str	r2, [sp, #0]
   1c16c:	4a11      	ldr	r2, [pc, #68]	; (1c1b4 <pairing_failed+0x84>)
   1c16e:	211e      	movs	r1, #30
   1c170:	a80a      	add	r0, sp, #40	; 0x28
   1c172:	f017 f928 	bl	333c6 <snprintk>
	printk("Pairing failed conn: %s, reason %d\n", addr, reason);
   1c176:	462a      	mov	r2, r5
   1c178:	a90a      	add	r1, sp, #40	; 0x28
   1c17a:	480f      	ldr	r0, [pc, #60]	; (1c1b8 <pairing_failed+0x88>)
   1c17c:	f017 f915 	bl	333aa <printk>
}
   1c180:	b013      	add	sp, #76	; 0x4c
   1c182:	bdf0      	pop	{r4, r5, r6, r7, pc}
		strcpy(type, "random");
   1c184:	490d      	ldr	r1, [pc, #52]	; (1c1bc <pairing_failed+0x8c>)
   1c186:	a807      	add	r0, sp, #28
   1c188:	f019 fc47 	bl	35a1a <strcpy>
		break;
   1c18c:	e7e1      	b.n	1c152 <pairing_failed+0x22>
		strcpy(type, "public-id");
   1c18e:	490c      	ldr	r1, [pc, #48]	; (1c1c0 <pairing_failed+0x90>)
   1c190:	a807      	add	r0, sp, #28
   1c192:	f019 fc42 	bl	35a1a <strcpy>
		break;
   1c196:	e7dc      	b.n	1c152 <pairing_failed+0x22>
		strcpy(type, "random-id");
   1c198:	490a      	ldr	r1, [pc, #40]	; (1c1c4 <pairing_failed+0x94>)
   1c19a:	a807      	add	r0, sp, #28
   1c19c:	f019 fc3d 	bl	35a1a <strcpy>
		break;
   1c1a0:	e7d7      	b.n	1c152 <pairing_failed+0x22>
		snprintk(type, sizeof(type), "0x%02x", addr->type);
   1c1a2:	4a09      	ldr	r2, [pc, #36]	; (1c1c8 <pairing_failed+0x98>)
   1c1a4:	210a      	movs	r1, #10
   1c1a6:	a807      	add	r0, sp, #28
   1c1a8:	f017 f90d 	bl	333c6 <snprintk>
		break;
   1c1ac:	e7d1      	b.n	1c152 <pairing_failed+0x22>
   1c1ae:	bf00      	nop
   1c1b0:	0003ba88 	.word	0x0003ba88
   1c1b4:	0003bab8 	.word	0x0003bab8
   1c1b8:	0003bbc4 	.word	0x0003bbc4
   1c1bc:	0003ba90 	.word	0x0003ba90
   1c1c0:	0003ba98 	.word	0x0003ba98
   1c1c4:	0003baa4 	.word	0x0003baa4
   1c1c8:	0003bab0 	.word	0x0003bab0

0001c1cc <auth_passkey_display>:
{
   1c1cc:	b5f0      	push	{r4, r5, r6, r7, lr}
   1c1ce:	b093      	sub	sp, #76	; 0x4c
   1c1d0:	460d      	mov	r5, r1
	bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr));
   1c1d2:	f01a fbf9 	bl	369c8 <bt_conn_get_dst>
   1c1d6:	4604      	mov	r4, r0
	switch (addr->type) {
   1c1d8:	7803      	ldrb	r3, [r0, #0]
   1c1da:	2b03      	cmp	r3, #3
   1c1dc:	d82f      	bhi.n	1c23e <auth_passkey_display+0x72>
   1c1de:	e8df f003 	tbb	[pc, r3]
   1c1e2:	1f02      	.short	0x1f02
   1c1e4:	2924      	.short	0x2924
		strcpy(type, "public");
   1c1e6:	4919      	ldr	r1, [pc, #100]	; (1c24c <auth_passkey_display+0x80>)
   1c1e8:	a807      	add	r0, sp, #28
   1c1ea:	f019 fc16 	bl	35a1a <strcpy>
			addr->a.val[5], addr->a.val[4], addr->a.val[3],
   1c1ee:	79a3      	ldrb	r3, [r4, #6]
   1c1f0:	7962      	ldrb	r2, [r4, #5]
   1c1f2:	7921      	ldrb	r1, [r4, #4]
			addr->a.val[2], addr->a.val[1], addr->a.val[0], type);
   1c1f4:	78e0      	ldrb	r0, [r4, #3]
   1c1f6:	78a6      	ldrb	r6, [r4, #2]
   1c1f8:	7864      	ldrb	r4, [r4, #1]
	return snprintk(str, len, "%02X:%02X:%02X:%02X:%02X:%02X (%s)",
   1c1fa:	af07      	add	r7, sp, #28
   1c1fc:	9705      	str	r7, [sp, #20]
   1c1fe:	9404      	str	r4, [sp, #16]
   1c200:	9603      	str	r6, [sp, #12]
   1c202:	9002      	str	r0, [sp, #8]
   1c204:	9101      	str	r1, [sp, #4]
   1c206:	9200      	str	r2, [sp, #0]
   1c208:	4a11      	ldr	r2, [pc, #68]	; (1c250 <auth_passkey_display+0x84>)
   1c20a:	211e      	movs	r1, #30
   1c20c:	a80a      	add	r0, sp, #40	; 0x28
   1c20e:	f017 f8da 	bl	333c6 <snprintk>
	printk("Passkey for %s: %06u\n", addr, passkey);
   1c212:	462a      	mov	r2, r5
   1c214:	a90a      	add	r1, sp, #40	; 0x28
   1c216:	480f      	ldr	r0, [pc, #60]	; (1c254 <auth_passkey_display+0x88>)
   1c218:	f017 f8c7 	bl	333aa <printk>
}
   1c21c:	b013      	add	sp, #76	; 0x4c
   1c21e:	bdf0      	pop	{r4, r5, r6, r7, pc}
		strcpy(type, "random");
   1c220:	490d      	ldr	r1, [pc, #52]	; (1c258 <auth_passkey_display+0x8c>)
   1c222:	a807      	add	r0, sp, #28
   1c224:	f019 fbf9 	bl	35a1a <strcpy>
		break;
   1c228:	e7e1      	b.n	1c1ee <auth_passkey_display+0x22>
		strcpy(type, "public-id");
   1c22a:	490c      	ldr	r1, [pc, #48]	; (1c25c <auth_passkey_display+0x90>)
   1c22c:	a807      	add	r0, sp, #28
   1c22e:	f019 fbf4 	bl	35a1a <strcpy>
		break;
   1c232:	e7dc      	b.n	1c1ee <auth_passkey_display+0x22>
		strcpy(type, "random-id");
   1c234:	490a      	ldr	r1, [pc, #40]	; (1c260 <auth_passkey_display+0x94>)
   1c236:	a807      	add	r0, sp, #28
   1c238:	f019 fbef 	bl	35a1a <strcpy>
		break;
   1c23c:	e7d7      	b.n	1c1ee <auth_passkey_display+0x22>
		snprintk(type, sizeof(type), "0x%02x", addr->type);
   1c23e:	4a09      	ldr	r2, [pc, #36]	; (1c264 <auth_passkey_display+0x98>)
   1c240:	210a      	movs	r1, #10
   1c242:	a807      	add	r0, sp, #28
   1c244:	f017 f8bf 	bl	333c6 <snprintk>
		break;
   1c248:	e7d1      	b.n	1c1ee <auth_passkey_display+0x22>
   1c24a:	bf00      	nop
   1c24c:	0003ba88 	.word	0x0003ba88
   1c250:	0003bab8 	.word	0x0003bab8
   1c254:	0003bbe8 	.word	0x0003bbe8
   1c258:	0003ba90 	.word	0x0003ba90
   1c25c:	0003ba98 	.word	0x0003ba98
   1c260:	0003baa4 	.word	0x0003baa4
   1c264:	0003bab0 	.word	0x0003bab0

0001c268 <main>:

void main(void)
{
   1c268:	b530      	push	{r4, r5, lr}
   1c26a:	b089      	sub	sp, #36	; 0x24
	int blink_status = 0;
	int err;

	printk("Starting Bluetooth Peripheral LBS example\n");
   1c26c:	483a      	ldr	r0, [pc, #232]	; (1c358 <main+0xf0>)
   1c26e:	f017 f89c 	bl	333aa <printk>

	err = dk_leds_init();
   1c272:	f00f fdf7 	bl	2be64 <dk_leds_init>
	if (err) {
   1c276:	2800      	cmp	r0, #0
   1c278:	d156      	bne.n	1c328 <main+0xc0>
		printk("LEDs init failed (err %d)\n", err);
		return;
	}
    printk("led initialized\n");
   1c27a:	4838      	ldr	r0, [pc, #224]	; (1c35c <main+0xf4>)
   1c27c:	f017 f895 	bl	333aa <printk>
	err = init_button();
   1c280:	f7ff fe98 	bl	1bfb4 <init_button>
	if (err) {
   1c284:	4601      	mov	r1, r0
   1c286:	2800      	cmp	r0, #0
   1c288:	d154      	bne.n	1c334 <main+0xcc>
		printk("Button init failed (err %d)\n", err);
		return;
	}

	printk("Button initialized\n");
   1c28a:	4835      	ldr	r0, [pc, #212]	; (1c360 <main+0xf8>)
   1c28c:	f017 f88d 	bl	333aa <printk>
	printk("build time: " __DATE__ " " __TIME__ "\n");
   1c290:	4834      	ldr	r0, [pc, #208]	; (1c364 <main+0xfc>)
   1c292:	f017 f88a 	bl	333aa <printk>

	os_mgmt_register_group();
   1c296:	f012 f927 	bl	2e4e8 <os_mgmt_register_group>

	img_mgmt_register_group();
   1c29a:	f011 fe57 	bl	2df4c <img_mgmt_register_group>

	smp_bt_register();	
   1c29e:	f00d f8e1 	bl	29464 <smp_bt_register>


	bt_conn_cb_register(&conn_callbacks);
   1c2a2:	4831      	ldr	r0, [pc, #196]	; (1c368 <main+0x100>)
   1c2a4:	f007 fd26 	bl	23cf4 <bt_conn_cb_register>
	if (IS_ENABLED(CONFIG_BT_LBS_SECURITY_ENABLED)) {
		bt_conn_auth_cb_register(&conn_auth_callbacks);
   1c2a8:	4830      	ldr	r0, [pc, #192]	; (1c36c <main+0x104>)
   1c2aa:	f007 ff0b 	bl	240c4 <bt_conn_auth_cb_register>
	}


	err = bt_enable(NULL);
   1c2ae:	2000      	movs	r0, #0
   1c2b0:	f005 ff40 	bl	22134 <bt_enable>
	if (err) {
   1c2b4:	4601      	mov	r1, r0
   1c2b6:	2800      	cmp	r0, #0
   1c2b8:	d140      	bne.n	1c33c <main+0xd4>




	if (IS_ENABLED(CONFIG_SETTINGS)) {
		settings_load();
   1c2ba:	f018 f8ff 	bl	344bc <settings_load>
	}
    
    printk("Enable Bluetooth.\n");
   1c2be:	482c      	ldr	r0, [pc, #176]	; (1c370 <main+0x108>)
   1c2c0:	f017 f873 	bl	333aa <printk>

	err = bt_lbs_init(&lbs_callbacs);
   1c2c4:	482b      	ldr	r0, [pc, #172]	; (1c374 <main+0x10c>)
   1c2c6:	f002 fb0b 	bl	1e8e0 <bt_lbs_init>
	if (err) {
   1c2ca:	4601      	mov	r1, r0
   1c2cc:	2800      	cmp	r0, #0
   1c2ce:	d139      	bne.n	1c344 <main+0xdc>
		printk("Failed to init LBS (err:%d)\n", err);
		return;
	}
	 printk("Enable Bluetooth.\n");
   1c2d0:	4827      	ldr	r0, [pc, #156]	; (1c370 <main+0x108>)
   1c2d2:	f017 f86a 	bl	333aa <printk>

	err = bt_le_adv_start(BT_LE_ADV_CONN, ad, ARRAY_SIZE(ad),
   1c2d6:	ac03      	add	r4, sp, #12
   1c2d8:	4d27      	ldr	r5, [pc, #156]	; (1c378 <main+0x110>)
   1c2da:	cd0f      	ldmia	r5!, {r0, r1, r2, r3}
   1c2dc:	c40f      	stmia	r4!, {r0, r1, r2, r3}
   1c2de:	682b      	ldr	r3, [r5, #0]
   1c2e0:	6023      	str	r3, [r4, #0]
   1c2e2:	2301      	movs	r3, #1
   1c2e4:	9300      	str	r3, [sp, #0]
   1c2e6:	4b25      	ldr	r3, [pc, #148]	; (1c37c <main+0x114>)
   1c2e8:	2202      	movs	r2, #2
   1c2ea:	4925      	ldr	r1, [pc, #148]	; (1c380 <main+0x118>)
   1c2ec:	a803      	add	r0, sp, #12
   1c2ee:	f006 fe31 	bl	22f54 <bt_le_adv_start>
			      sd, ARRAY_SIZE(sd));
	if (err) {
   1c2f2:	4604      	mov	r4, r0
   1c2f4:	bb50      	cbnz	r0, 1c34c <main+0xe4>
		printk("Advertising failed to start (err %d)\n", err);
		return;
	}

	printk("Advertising successfully started\n");
   1c2f6:	4823      	ldr	r0, [pc, #140]	; (1c384 <main+0x11c>)
   1c2f8:	f017 f857 	bl	333aa <printk>

	for (;;) {
		dk_set_led(RUN_STATUS_LED, (++blink_status) % 2);
   1c2fc:	1c61      	adds	r1, r4, #1
   1c2fe:	f001 0101 	and.w	r1, r1, #1
   1c302:	bf48      	it	mi
   1c304:	4249      	negmi	r1, r1
   1c306:	2000      	movs	r0, #0
   1c308:	f00f fe0a 	bl	2bf20 <dk_set_led>
		dk_set_led(DK_LED4, (++blink_status) % 2);
   1c30c:	3402      	adds	r4, #2
   1c30e:	f004 0101 	and.w	r1, r4, #1
   1c312:	bf48      	it	mi
   1c314:	4249      	negmi	r1, r1
   1c316:	2003      	movs	r0, #3
   1c318:	f00f fe02 	bl	2bf20 <dk_set_led>
		/* coverity[OVERRUN] */
		return (int32_t) arch_syscall_invoke2(parm0.split.lo, parm0.split.hi, K_SYSCALL_K_SLEEP);
	}
#endif
	compiler_barrier();
	return z_impl_k_sleep(timeout);
   1c31c:	f44f 4000 	mov.w	r0, #32768	; 0x8000
   1c320:	2100      	movs	r1, #0
   1c322:	f015 fc69 	bl	31bf8 <z_impl_k_sleep>
	for (;;) {
   1c326:	e7e9      	b.n	1c2fc <main+0x94>
   1c328:	4601      	mov	r1, r0
		printk("LEDs init failed (err %d)\n", err);
   1c32a:	4817      	ldr	r0, [pc, #92]	; (1c388 <main+0x120>)
   1c32c:	f017 f83d 	bl	333aa <printk>
		k_sleep(K_MSEC(1000));  //2000 delay 
	}
   1c330:	b009      	add	sp, #36	; 0x24
   1c332:	bd30      	pop	{r4, r5, pc}
		printk("Button init failed (err %d)\n", err);
   1c334:	4815      	ldr	r0, [pc, #84]	; (1c38c <main+0x124>)
   1c336:	f017 f838 	bl	333aa <printk>
		return;
   1c33a:	e7f9      	b.n	1c330 <main+0xc8>
		printk("Bluetooth init failed (err %d)\n", err);
   1c33c:	4814      	ldr	r0, [pc, #80]	; (1c390 <main+0x128>)
   1c33e:	f017 f834 	bl	333aa <printk>
		return;
   1c342:	e7f5      	b.n	1c330 <main+0xc8>
		printk("Failed to init LBS (err:%d)\n", err);
   1c344:	4813      	ldr	r0, [pc, #76]	; (1c394 <main+0x12c>)
   1c346:	f017 f830 	bl	333aa <printk>
		return;
   1c34a:	e7f1      	b.n	1c330 <main+0xc8>
		printk("Advertising failed to start (err %d)\n", err);
   1c34c:	4601      	mov	r1, r0
   1c34e:	4812      	ldr	r0, [pc, #72]	; (1c398 <main+0x130>)
   1c350:	f017 f82b 	bl	333aa <printk>
		return;
   1c354:	e7ec      	b.n	1c330 <main+0xc8>
   1c356:	bf00      	nop
   1c358:	0003bc00 	.word	0x0003bc00
   1c35c:	0003bc48 	.word	0x0003bc48
   1c360:	0003bc7c 	.word	0x0003bc7c
   1c364:	0003bc90 	.word	0x0003bc90
   1c368:	20000458 	.word	0x20000458
   1c36c:	20000434 	.word	0x20000434
   1c370:	0003bcd4 	.word	0x0003bcd4
   1c374:	20000474 	.word	0x20000474
   1c378:	0003b9d0 	.word	0x0003b9d0
   1c37c:	0003bd70 	.word	0x0003bd70
   1c380:	0003bd60 	.word	0x0003bd60
   1c384:	0003bd30 	.word	0x0003bd30
   1c388:	0003bc2c 	.word	0x0003bc2c
   1c38c:	0003bc5c 	.word	0x0003bc5c
   1c390:	0003bcb4 	.word	0x0003bcb4
   1c394:	0003bce8 	.word	0x0003bce8
   1c398:	0003bd08 	.word	0x0003bd08

0001c39c <crc8_ccitt>:
	0x00, 0x07, 0x0e, 0x09, 0x1c, 0x1b, 0x12, 0x15,
	0x38, 0x3f, 0x36, 0x31, 0x24, 0x23, 0x2a, 0x2d
};

uint8_t crc8_ccitt(uint8_t val, const void *buf, size_t cnt)
{
   1c39c:	b430      	push	{r4, r5}
	size_t i;
	const uint8_t *p = buf;

	for (i = 0; i < cnt; i++) {
   1c39e:	2400      	movs	r4, #0
   1c3a0:	4294      	cmp	r4, r2
   1c3a2:	d20f      	bcs.n	1c3c4 <crc8_ccitt+0x28>
		val ^= p[i];
   1c3a4:	5d0b      	ldrb	r3, [r1, r4]
   1c3a6:	4043      	eors	r3, r0
		val = (val << 4) ^ crc8_ccitt_small_table[val >> 4];
   1c3a8:	0918      	lsrs	r0, r3, #4
   1c3aa:	4d07      	ldr	r5, [pc, #28]	; (1c3c8 <crc8_ccitt+0x2c>)
   1c3ac:	5628      	ldrsb	r0, [r5, r0]
   1c3ae:	ea80 1003 	eor.w	r0, r0, r3, lsl #4
   1c3b2:	b2c3      	uxtb	r3, r0
		val = (val << 4) ^ crc8_ccitt_small_table[val >> 4];
   1c3b4:	f3c0 1003 	ubfx	r0, r0, #4, #4
   1c3b8:	5628      	ldrsb	r0, [r5, r0]
   1c3ba:	ea80 1003 	eor.w	r0, r0, r3, lsl #4
   1c3be:	b2c0      	uxtb	r0, r0
	for (i = 0; i < cnt; i++) {
   1c3c0:	3401      	adds	r4, #1
   1c3c2:	e7ed      	b.n	1c3a0 <crc8_ccitt+0x4>
	}
	return val;
}
   1c3c4:	bc30      	pop	{r4, r5}
   1c3c6:	4770      	bx	lr
   1c3c8:	0003bd78 	.word	0x0003bd78

0001c3cc <u8_to_dec>:
 */

#include <sys/util.h>

uint8_t u8_to_dec(char *buf, uint8_t buflen, uint8_t value)
{
   1c3cc:	b430      	push	{r4, r5}
   1c3ce:	4605      	mov	r5, r0
	uint8_t divisor = 100;
	uint8_t num_digits = 0;
   1c3d0:	2000      	movs	r0, #0
	uint8_t divisor = 100;
   1c3d2:	2364      	movs	r3, #100	; 0x64
	uint8_t digit;

	while (buflen > 0 && divisor > 0) {
   1c3d4:	e00f      	b.n	1c3f6 <u8_to_dec+0x2a>
		digit = value / divisor;
		if (digit != 0 || divisor == 1 || num_digits != 0) {
			*buf = (char)digit + '0';
   1c3d6:	3430      	adds	r4, #48	; 0x30
   1c3d8:	f805 4b01 	strb.w	r4, [r5], #1
			buf++;
			buflen--;
   1c3dc:	3901      	subs	r1, #1
   1c3de:	b2c9      	uxtb	r1, r1
			num_digits++;
   1c3e0:	3001      	adds	r0, #1
   1c3e2:	b2c0      	uxtb	r0, r0
		}

		value -= digit * divisor;
   1c3e4:	fbb2 f4f3 	udiv	r4, r2, r3
   1c3e8:	fb03 2214 	mls	r2, r3, r4, r2
   1c3ec:	b2d2      	uxtb	r2, r2
		divisor /= 10;
   1c3ee:	4c0a      	ldr	r4, [pc, #40]	; (1c418 <u8_to_dec+0x4c>)
   1c3f0:	fba4 4303 	umull	r4, r3, r4, r3
   1c3f4:	08db      	lsrs	r3, r3, #3
	while (buflen > 0 && divisor > 0) {
   1c3f6:	b149      	cbz	r1, 1c40c <u8_to_dec+0x40>
   1c3f8:	b143      	cbz	r3, 1c40c <u8_to_dec+0x40>
		digit = value / divisor;
   1c3fa:	fbb2 f4f3 	udiv	r4, r2, r3
		if (digit != 0 || divisor == 1 || num_digits != 0) {
   1c3fe:	429a      	cmp	r2, r3
   1c400:	d2e9      	bcs.n	1c3d6 <u8_to_dec+0xa>
   1c402:	2b01      	cmp	r3, #1
   1c404:	d0e7      	beq.n	1c3d6 <u8_to_dec+0xa>
   1c406:	2800      	cmp	r0, #0
   1c408:	d0ec      	beq.n	1c3e4 <u8_to_dec+0x18>
   1c40a:	e7e4      	b.n	1c3d6 <u8_to_dec+0xa>
	}

	if (buflen) {
   1c40c:	b109      	cbz	r1, 1c412 <u8_to_dec+0x46>
		*buf = '\0';
   1c40e:	2300      	movs	r3, #0
   1c410:	702b      	strb	r3, [r5, #0]
	}

	return num_digits;
}
   1c412:	bc30      	pop	{r4, r5}
   1c414:	4770      	bx	lr
   1c416:	bf00      	nop
   1c418:	cccccccd 	.word	0xcccccccd

0001c41c <sys_notify_finalize>:
	return rv;
}

sys_notify_generic_callback sys_notify_finalize(struct sys_notify *notify,
						    int res)
{
   1c41c:	b570      	push	{r4, r5, r6, lr}
   1c41e:	4604      	mov	r4, r0
   1c420:	460d      	mov	r5, r1
};

/** @internal */
static inline uint32_t sys_notify_get_method(const struct sys_notify *notify)
{
	uint32_t method = notify->flags >> SYS_NOTIFY_METHOD_POS;
   1c422:	6843      	ldr	r3, [r0, #4]

	return method & SYS_NOTIFY_METHOD_MASK;
   1c424:	f003 0303 	and.w	r3, r3, #3
	uint32_t method = sys_notify_get_method(notify);

	/* Store the result and capture secondary notification
	 * information.
	 */
	notify->result = res;
   1c428:	6081      	str	r1, [r0, #8]
	switch (method) {
   1c42a:	2b02      	cmp	r3, #2
   1c42c:	d013      	beq.n	1c456 <sys_notify_finalize+0x3a>
   1c42e:	2b03      	cmp	r3, #3
   1c430:	d00e      	beq.n	1c450 <sys_notify_finalize+0x34>
   1c432:	2b01      	cmp	r3, #1
   1c434:	d012      	beq.n	1c45c <sys_notify_finalize+0x40>
		break;
	case SYS_NOTIFY_METHOD_SIGNAL:
		sig = notify->method.signal;
		break;
	default:
		__ASSERT_NO_MSG(false);
   1c436:	4e0e      	ldr	r6, [pc, #56]	; (1c470 <sys_notify_finalize+0x54>)
   1c438:	2245      	movs	r2, #69	; 0x45
   1c43a:	4631      	mov	r1, r6
   1c43c:	480d      	ldr	r0, [pc, #52]	; (1c474 <sys_notify_finalize+0x58>)
   1c43e:	f016 ffb4 	bl	333aa <printk>
   1c442:	2145      	movs	r1, #69	; 0x45
   1c444:	4630      	mov	r0, r6
   1c446:	f017 fb49 	bl	33adc <assert_post_action>
	sys_notify_generic_callback rv = NULL;
   1c44a:	2600      	movs	r6, #0
	struct k_poll_signal *sig = NULL;
   1c44c:	4630      	mov	r0, r6
   1c44e:	e007      	b.n	1c460 <sys_notify_finalize+0x44>
		rv = notify->method.callback;
   1c450:	6806      	ldr	r6, [r0, #0]
	struct k_poll_signal *sig = NULL;
   1c452:	2000      	movs	r0, #0
		break;
   1c454:	e004      	b.n	1c460 <sys_notify_finalize+0x44>
		sig = notify->method.signal;
   1c456:	6800      	ldr	r0, [r0, #0]
	sys_notify_generic_callback rv = NULL;
   1c458:	2600      	movs	r6, #0
		break;
   1c45a:	e001      	b.n	1c460 <sys_notify_finalize+0x44>
	switch (method) {
   1c45c:	2600      	movs	r6, #0
   1c45e:	4630      	mov	r0, r6
	/* Mark completion by clearing the flags field to the
	 * completed state, releasing any spin-waiters, then complete
	 * secondary notification.
	 */
	compiler_barrier();
	notify->flags = SYS_NOTIFY_METHOD_COMPLETED;
   1c460:	2300      	movs	r3, #0
   1c462:	6063      	str	r3, [r4, #4]

	if (IS_ENABLED(CONFIG_POLL) && (sig != NULL)) {
   1c464:	b110      	cbz	r0, 1c46c <sys_notify_finalize+0x50>
		/* coverity[OVERRUN] */
		return (int) arch_syscall_invoke2(*(uintptr_t *)&sig, *(uintptr_t *)&result, K_SYSCALL_K_POLL_SIGNAL_RAISE);
	}
#endif
	compiler_barrier();
	return z_impl_k_poll_signal_raise(sig, result);
   1c466:	4629      	mov	r1, r5
   1c468:	f016 fe58 	bl	3311c <z_impl_k_poll_signal_raise>
		k_poll_signal_raise(sig, res);
	}

	return rv;
}
   1c46c:	4630      	mov	r0, r6
   1c46e:	bd70      	pop	{r4, r5, r6, pc}
   1c470:	0003bd88 	.word	0x0003bd88
   1c474:	0003bdac 	.word	0x0003bdac

0001c478 <char_out>:
struct out_context {
	int count;
};

static int char_out(int c, void *ctx_p)
{
   1c478:	b508      	push	{r3, lr}
	struct out_context *ctx = ctx_p;

	ctx->count++;
   1c47a:	680b      	ldr	r3, [r1, #0]
   1c47c:	3301      	adds	r3, #1
   1c47e:	600b      	str	r3, [r1, #0]
	return _char_out(c);
   1c480:	4b01      	ldr	r3, [pc, #4]	; (1c488 <char_out+0x10>)
   1c482:	681b      	ldr	r3, [r3, #0]
   1c484:	4798      	blx	r3
}
   1c486:	bd08      	pop	{r3, pc}
   1c488:	2000047c 	.word	0x2000047c

0001c48c <__printk_hook_install>:
	_char_out = fn;
   1c48c:	4b01      	ldr	r3, [pc, #4]	; (1c494 <__printk_hook_install+0x8>)
   1c48e:	6018      	str	r0, [r3, #0]
}
   1c490:	4770      	bx	lr
   1c492:	bf00      	nop
   1c494:	2000047c 	.word	0x2000047c

0001c498 <vprintk>:
#endif
	}
}
#else
void vprintk(const char *fmt, va_list ap)
{
   1c498:	b500      	push	{lr}
   1c49a:	b083      	sub	sp, #12
   1c49c:	4602      	mov	r2, r0
   1c49e:	460b      	mov	r3, r1
	struct out_context ctx = { 0 };
   1c4a0:	2100      	movs	r1, #0
   1c4a2:	9101      	str	r1, [sp, #4]
#ifdef CONFIG_PRINTK_SYNC
	k_spinlock_key_t key = k_spin_lock(&lock);
#endif

	cbvprintf(char_out, &ctx, fmt, ap);
   1c4a4:	a901      	add	r1, sp, #4
   1c4a6:	4803      	ldr	r0, [pc, #12]	; (1c4b4 <vprintk+0x1c>)
   1c4a8:	f000 fcd4 	bl	1ce54 <cbvprintf>

#ifdef CONFIG_PRINTK_SYNC
	k_spin_unlock(&lock, key);
#endif
}
   1c4ac:	b003      	add	sp, #12
   1c4ae:	f85d fb04 	ldr.w	pc, [sp], #4
   1c4b2:	bf00      	nop
   1c4b4:	0001c479 	.word	0x0001c479

0001c4b8 <vsnprintk>:

	return ret;
}

int vsnprintk(char *str, size_t size, const char *fmt, va_list ap)
{
   1c4b8:	b510      	push	{r4, lr}
   1c4ba:	b084      	sub	sp, #16
   1c4bc:	4604      	mov	r4, r0
	struct str_context ctx = { str, size, 0 };
   1c4be:	9001      	str	r0, [sp, #4]
   1c4c0:	9102      	str	r1, [sp, #8]
   1c4c2:	2100      	movs	r1, #0
   1c4c4:	9103      	str	r1, [sp, #12]

	cbvprintf(str_out, &ctx, fmt, ap);
   1c4c6:	a901      	add	r1, sp, #4
   1c4c8:	4805      	ldr	r0, [pc, #20]	; (1c4e0 <vsnprintk+0x28>)
   1c4ca:	f000 fcc3 	bl	1ce54 <cbvprintf>

	if (ctx.count < ctx.max) {
   1c4ce:	9b03      	ldr	r3, [sp, #12]
   1c4d0:	9a02      	ldr	r2, [sp, #8]
   1c4d2:	4293      	cmp	r3, r2
   1c4d4:	da01      	bge.n	1c4da <vsnprintk+0x22>
		str[ctx.count] = '\0';
   1c4d6:	2200      	movs	r2, #0
   1c4d8:	54e2      	strb	r2, [r4, r3]
	}

	return ctx.count;
}
   1c4da:	9803      	ldr	r0, [sp, #12]
   1c4dc:	b004      	add	sp, #16
   1c4de:	bd10      	pop	{r4, pc}
   1c4e0:	0003337b 	.word	0x0003337b

0001c4e4 <process_complete>:
 * from the manager to the output list for notification.
 */
static void process_complete(struct onoff_manager *mgr,
			     sys_slist_t *clients,
			     int res)
{
   1c4e4:	b538      	push	{r3, r4, r5, lr}
   1c4e6:	4604      	mov	r4, r0
   1c4e8:	460d      	mov	r5, r1
	uint32_t state = mgr->flags & ONOFF_STATE_MASK;
   1c4ea:	8b83      	ldrh	r3, [r0, #28]

	if (res < 0) {
   1c4ec:	2a00      	cmp	r2, #0
   1c4ee:	db13      	blt.n	1c518 <process_complete+0x34>
   1c4f0:	f003 0307 	and.w	r3, r3, #7
		/* Enter ERROR state and notify all clients. */
		*clients = mgr->clients;
		sys_slist_init(&mgr->clients);
		set_state(mgr, ONOFF_STATE_ERROR);
	} else if ((state == ONOFF_STATE_TO_ON)
		   || (state == ONOFF_STATE_RESETTING)) {
   1c4f4:	1f5a      	subs	r2, r3, #5
	} else if ((state == ONOFF_STATE_TO_ON)
   1c4f6:	2a01      	cmp	r2, #1
   1c4f8:	d91a      	bls.n	1c530 <process_complete+0x4c>
			set_state(mgr, ONOFF_STATE_OFF);
		}
		if (process_recheck(mgr) != EVT_NOP) {
			mgr->flags |= ONOFF_FLAG_RECHECK;
		}
	} else if (state == ONOFF_STATE_TO_OFF) {
   1c4fa:	2b04      	cmp	r3, #4
   1c4fc:	d04d      	beq.n	1c59a <process_complete+0xb6>
		set_state(mgr, ONOFF_STATE_OFF);
		if (process_recheck(mgr) != EVT_NOP) {
			mgr->flags |= ONOFF_FLAG_RECHECK;
		}
	} else {
		__ASSERT_NO_MSG(false);
   1c4fe:	4c2d      	ldr	r4, [pc, #180]	; (1c5b4 <process_complete+0xd0>)
   1c500:	f240 121b 	movw	r2, #283	; 0x11b
   1c504:	4621      	mov	r1, r4
   1c506:	482c      	ldr	r0, [pc, #176]	; (1c5b8 <process_complete+0xd4>)
   1c508:	f016 ff4f 	bl	333aa <printk>
   1c50c:	f240 111b 	movw	r1, #283	; 0x11b
   1c510:	4620      	mov	r0, r4
   1c512:	f017 fae3 	bl	33adc <assert_post_action>
	}
}
   1c516:	bd38      	pop	{r3, r4, r5, pc}
		*clients = mgr->clients;
   1c518:	e9d0 0100 	ldrd	r0, r1, [r0]
   1c51c:	e885 0003 	stmia.w	r5, {r0, r1}
 *
 * @param list A pointer on the list to initialize
 */
static inline void sys_slist_init(sys_slist_t *list)
{
	list->head = NULL;
   1c520:	2300      	movs	r3, #0
   1c522:	6023      	str	r3, [r4, #0]
	list->tail = NULL;
   1c524:	6063      	str	r3, [r4, #4]
		set_state(mgr, ONOFF_STATE_ERROR);
   1c526:	2101      	movs	r1, #1
   1c528:	4620      	mov	r0, r4
   1c52a:	f016 ff5a 	bl	333e2 <set_state>
   1c52e:	e7f2      	b.n	1c516 <process_complete+0x32>
		*clients = mgr->clients;
   1c530:	e9d0 0100 	ldrd	r0, r1, [r0]
   1c534:	e885 0003 	stmia.w	r5, {r0, r1}
	list->head = NULL;
   1c538:	2200      	movs	r2, #0
   1c53a:	6022      	str	r2, [r4, #0]
	list->tail = NULL;
   1c53c:	6062      	str	r2, [r4, #4]
		if (state == ONOFF_STATE_TO_ON) {
   1c53e:	2b06      	cmp	r3, #6
   1c540:	d00f      	beq.n	1c562 <process_complete+0x7e>
			__ASSERT_NO_MSG(state == ONOFF_STATE_RESETTING);
   1c542:	2b05      	cmp	r3, #5
   1c544:	d11c      	bne.n	1c580 <process_complete+0x9c>
			set_state(mgr, ONOFF_STATE_OFF);
   1c546:	2100      	movs	r1, #0
   1c548:	4620      	mov	r0, r4
   1c54a:	f016 ff4a 	bl	333e2 <set_state>
		if (process_recheck(mgr) != EVT_NOP) {
   1c54e:	4620      	mov	r0, r4
   1c550:	f016 ff6e 	bl	33430 <process_recheck>
   1c554:	2800      	cmp	r0, #0
   1c556:	d0de      	beq.n	1c516 <process_complete+0x32>
			mgr->flags |= ONOFF_FLAG_RECHECK;
   1c558:	8ba3      	ldrh	r3, [r4, #28]
   1c55a:	f043 0320 	orr.w	r3, r3, #32
   1c55e:	83a3      	strh	r3, [r4, #28]
   1c560:	e7d9      	b.n	1c516 <process_complete+0x32>
 *
 * @return A pointer on the first node of the list (or NULL if none)
 */
static inline sys_snode_t *sys_slist_peek_head(sys_slist_t *list)
{
	return list->head;
   1c562:	682b      	ldr	r3, [r5, #0]
			SYS_SLIST_FOR_EACH_CONTAINER(clients, cp, node) {
   1c564:	b13b      	cbz	r3, 1c576 <process_complete+0x92>
				mgr->refs += 1U;
   1c566:	8be2      	ldrh	r2, [r4, #30]
   1c568:	3201      	adds	r2, #1
   1c56a:	83e2      	strh	r2, [r4, #30]
 *
 * @return a pointer on the next node (or NULL if none)
 */
static inline sys_snode_t *sys_slist_peek_next(sys_snode_t *node);

Z_GENLIST_PEEK_NEXT(slist, snode)
   1c56c:	2b00      	cmp	r3, #0
   1c56e:	d0f9      	beq.n	1c564 <process_complete+0x80>
	return node->next;
   1c570:	681b      	ldr	r3, [r3, #0]
			SYS_SLIST_FOR_EACH_CONTAINER(clients, cp, node) {
   1c572:	2b00      	cmp	r3, #0
   1c574:	d1f6      	bne.n	1c564 <process_complete+0x80>
			set_state(mgr, ONOFF_STATE_ON);
   1c576:	2102      	movs	r1, #2
   1c578:	4620      	mov	r0, r4
   1c57a:	f016 ff32 	bl	333e2 <set_state>
   1c57e:	e7e6      	b.n	1c54e <process_complete+0x6a>
			__ASSERT_NO_MSG(state == ONOFF_STATE_RESETTING);
   1c580:	4d0c      	ldr	r5, [pc, #48]	; (1c5b4 <process_complete+0xd0>)
   1c582:	f240 1209 	movw	r2, #265	; 0x109
   1c586:	4629      	mov	r1, r5
   1c588:	480b      	ldr	r0, [pc, #44]	; (1c5b8 <process_complete+0xd4>)
   1c58a:	f016 ff0e 	bl	333aa <printk>
   1c58e:	f240 1109 	movw	r1, #265	; 0x109
   1c592:	4628      	mov	r0, r5
   1c594:	f017 faa2 	bl	33adc <assert_post_action>
   1c598:	e7d5      	b.n	1c546 <process_complete+0x62>
		set_state(mgr, ONOFF_STATE_OFF);
   1c59a:	2100      	movs	r1, #0
   1c59c:	f016 ff21 	bl	333e2 <set_state>
		if (process_recheck(mgr) != EVT_NOP) {
   1c5a0:	4620      	mov	r0, r4
   1c5a2:	f016 ff45 	bl	33430 <process_recheck>
   1c5a6:	2800      	cmp	r0, #0
   1c5a8:	d0b5      	beq.n	1c516 <process_complete+0x32>
			mgr->flags |= ONOFF_FLAG_RECHECK;
   1c5aa:	8ba3      	ldrh	r3, [r4, #28]
   1c5ac:	f043 0320 	orr.w	r3, r3, #32
   1c5b0:	83a3      	strh	r3, [r4, #28]
   1c5b2:	e7b0      	b.n	1c516 <process_complete+0x32>
   1c5b4:	0003bdc4 	.word	0x0003bdc4
   1c5b8:	0003bdac 	.word	0x0003bdac

0001c5bc <process_event>:
 * regions.
 */
static void process_event(struct onoff_manager *mgr,
			  int evt,
			  k_spinlock_key_t key)
{
   1c5bc:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
   1c5c0:	b083      	sub	sp, #12
   1c5c2:	4604      	mov	r4, r0
   1c5c4:	4616      	mov	r6, r2
	sys_slist_t clients;
	uint32_t state = mgr->flags & ONOFF_STATE_MASK;
   1c5c6:	8b83      	ldrh	r3, [r0, #28]
   1c5c8:	f003 0707 	and.w	r7, r3, #7
	int res = 0;
	bool processing = ((mgr->flags & ONOFF_FLAG_PROCESSING) != 0);
   1c5cc:	f003 0808 	and.w	r8, r3, #8

	__ASSERT_NO_MSG(evt != EVT_NOP);
   1c5d0:	460d      	mov	r5, r1
   1c5d2:	b131      	cbz	r1, 1c5e2 <process_event+0x26>

	/* If this is a nested call record the event for processing in
	 * the top invocation.
	 */
	if (processing) {
   1c5d4:	f1b8 0f00 	cmp.w	r8, #0
   1c5d8:	d111      	bne.n	1c5fe <process_event+0x42>
	list->head = NULL;
   1c5da:	2300      	movs	r3, #0
   1c5dc:	9300      	str	r3, [sp, #0]
	list->tail = NULL;
   1c5de:	9301      	str	r3, [sp, #4]
}
   1c5e0:	e0a7      	b.n	1c732 <process_event+0x176>
	__ASSERT_NO_MSG(evt != EVT_NOP);
   1c5e2:	f8df 9314 	ldr.w	r9, [pc, #788]	; 1c8f8 <process_event+0x33c>
   1c5e6:	f240 1233 	movw	r2, #307	; 0x133
   1c5ea:	4649      	mov	r1, r9
   1c5ec:	48c1      	ldr	r0, [pc, #772]	; (1c8f4 <process_event+0x338>)
   1c5ee:	f016 fedc 	bl	333aa <printk>
   1c5f2:	f240 1133 	movw	r1, #307	; 0x133
   1c5f6:	4648      	mov	r0, r9
   1c5f8:	f017 fa70 	bl	33adc <assert_post_action>
   1c5fc:	e7ea      	b.n	1c5d4 <process_event+0x18>
		if (evt == EVT_COMPLETE) {
   1c5fe:	2d01      	cmp	r5, #1
   1c600:	d013      	beq.n	1c62a <process_event+0x6e>
			mgr->flags |= ONOFF_FLAG_COMPLETE;
		} else {
			__ASSERT_NO_MSG(evt == EVT_RECHECK);
   1c602:	2d02      	cmp	r5, #2
   1c604:	d116      	bne.n	1c634 <process_event+0x78>

			mgr->flags |= ONOFF_FLAG_RECHECK;
   1c606:	8ba3      	ldrh	r3, [r4, #28]
   1c608:	f043 0320 	orr.w	r3, r3, #32
   1c60c:	83a3      	strh	r3, [r4, #28]
static ALWAYS_INLINE void k_spin_unlock(struct k_spinlock *l,
					k_spinlock_key_t key)
{
	ARG_UNUSED(l);
#ifdef CONFIG_SPIN_VALIDATE
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   1c60e:	f104 0014 	add.w	r0, r4, #20
   1c612:	f012 ff97 	bl	2f544 <z_spin_unlock_valid>
   1c616:	2800      	cmp	r0, #0
   1c618:	f000 8176 	beq.w	1c908 <process_event+0x34c>
	__asm__ volatile(
		"cpsie i;"
		"isb"
		: : : "memory");
#elif defined(CONFIG_ARMV7_M_ARMV8_M_MAINLINE)
	__asm__ volatile(
   1c61c:	f386 8811 	msr	BASEPRI, r6
   1c620:	f3bf 8f6f 	isb	sy
		state = mgr->flags & ONOFF_STATE_MASK;
	} while (evt != EVT_NOP);

out:
	k_spin_unlock(&mgr->lock, key);
}
   1c624:	b003      	add	sp, #12
   1c626:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
			mgr->flags |= ONOFF_FLAG_COMPLETE;
   1c62a:	8ba3      	ldrh	r3, [r4, #28]
   1c62c:	f043 0310 	orr.w	r3, r3, #16
   1c630:	83a3      	strh	r3, [r4, #28]
   1c632:	e7ec      	b.n	1c60e <process_event+0x52>
			__ASSERT_NO_MSG(evt == EVT_RECHECK);
   1c634:	4db0      	ldr	r5, [pc, #704]	; (1c8f8 <process_event+0x33c>)
   1c636:	f44f 729e 	mov.w	r2, #316	; 0x13c
   1c63a:	4629      	mov	r1, r5
   1c63c:	48ad      	ldr	r0, [pc, #692]	; (1c8f4 <process_event+0x338>)
   1c63e:	f016 feb4 	bl	333aa <printk>
   1c642:	f44f 719e 	mov.w	r1, #316	; 0x13c
   1c646:	4628      	mov	r0, r5
   1c648:	f017 fa48 	bl	33adc <assert_post_action>
   1c64c:	e7db      	b.n	1c606 <process_event+0x4a>
			evt = process_recheck(mgr);
   1c64e:	4620      	mov	r0, r4
   1c650:	f016 feee 	bl	33430 <process_recheck>
   1c654:	4605      	mov	r5, r0
   1c656:	e06e      	b.n	1c736 <process_event+0x17a>
			res = mgr->last_res;
   1c658:	f8d4 9018 	ldr.w	r9, [r4, #24]
			process_complete(mgr, &clients, res);
   1c65c:	464a      	mov	r2, r9
   1c65e:	4669      	mov	r1, sp
   1c660:	4620      	mov	r0, r4
   1c662:	f7ff ff3f 	bl	1c4e4 <process_complete>
		onoff_transition_fn transit = NULL;
   1c666:	2500      	movs	r5, #0
   1c668:	e010      	b.n	1c68c <process_event+0xd0>
			__ASSERT_NO_MSG(state == ONOFF_STATE_OFF);
   1c66a:	2f00      	cmp	r7, #0
   1c66c:	d17f      	bne.n	1c76e <process_event+0x1b2>
	return list->head;
   1c66e:	6823      	ldr	r3, [r4, #0]
			__ASSERT_NO_MSG(!sys_slist_is_empty(&mgr->clients));
   1c670:	2b00      	cmp	r3, #0
   1c672:	f000 8089 	beq.w	1c788 <process_event+0x1cc>
			transit = mgr->transitions->start;
   1c676:	6923      	ldr	r3, [r4, #16]
   1c678:	681d      	ldr	r5, [r3, #0]
			__ASSERT_NO_MSG(transit != NULL);
   1c67a:	2d00      	cmp	r5, #0
   1c67c:	f000 8091 	beq.w	1c7a2 <process_event+0x1e6>
			set_state(mgr, ONOFF_STATE_TO_ON);
   1c680:	2106      	movs	r1, #6
   1c682:	4620      	mov	r0, r4
   1c684:	f016 fead 	bl	333e2 <set_state>
		res = 0;
   1c688:	f04f 0900 	mov.w	r9, #0
		bool do_monitors = (state != (mgr->flags & ONOFF_STATE_MASK))
   1c68c:	8ba3      	ldrh	r3, [r4, #28]
   1c68e:	f003 0807 	and.w	r8, r3, #7
				   && !sys_slist_is_empty(&mgr->monitors);
   1c692:	45b8      	cmp	r8, r7
   1c694:	f000 8100 	beq.w	1c898 <process_event+0x2dc>
   1c698:	68a2      	ldr	r2, [r4, #8]
   1c69a:	2a00      	cmp	r2, #0
   1c69c:	f000 80fe 	beq.w	1c89c <process_event+0x2e0>
   1c6a0:	2201      	movs	r2, #1
		if (do_monitors
   1c6a2:	4617      	mov	r7, r2
   1c6a4:	b91a      	cbnz	r2, 1c6ae <process_event+0xf2>
   1c6a6:	9a00      	ldr	r2, [sp, #0]
		    || !sys_slist_is_empty(&clients)
   1c6a8:	2a00      	cmp	r2, #0
   1c6aa:	f000 80f9 	beq.w	1c8a0 <process_event+0x2e4>
			uint32_t flags = mgr->flags | ONOFF_FLAG_PROCESSING;
   1c6ae:	f043 0308 	orr.w	r3, r3, #8
			mgr->flags = flags;
   1c6b2:	83a3      	strh	r3, [r4, #28]
			k_spin_unlock(&mgr->lock, key);
   1c6b4:	f104 0a14 	add.w	sl, r4, #20
   1c6b8:	4650      	mov	r0, sl
   1c6ba:	f012 ff43 	bl	2f544 <z_spin_unlock_valid>
   1c6be:	2800      	cmp	r0, #0
   1c6c0:	f000 80f2 	beq.w	1c8a8 <process_event+0x2ec>
   1c6c4:	f386 8811 	msr	BASEPRI, r6
   1c6c8:	f3bf 8f6f 	isb	sy
			if (do_monitors) {
   1c6cc:	2f00      	cmp	r7, #0
   1c6ce:	f040 80f7 	bne.w	1c8c0 <process_event+0x304>
   1c6d2:	9b00      	ldr	r3, [sp, #0]
			if (!sys_slist_is_empty(&clients)) {
   1c6d4:	b12b      	cbz	r3, 1c6e2 <process_event+0x126>
				notify_all(mgr, &clients, state, res);
   1c6d6:	464b      	mov	r3, r9
   1c6d8:	4642      	mov	r2, r8
   1c6da:	4669      	mov	r1, sp
   1c6dc:	4620      	mov	r0, r4
   1c6de:	f016 fee9 	bl	334b4 <notify_all>
			if (transit != NULL) {
   1c6e2:	b115      	cbz	r5, 1c6ea <process_event+0x12e>
				transit(mgr, transition_complete);
   1c6e4:	4985      	ldr	r1, [pc, #532]	; (1c8fc <process_event+0x340>)
   1c6e6:	4620      	mov	r0, r4
   1c6e8:	47a8      	blx	r5
	__asm__ volatile(
   1c6ea:	f04f 0340 	mov.w	r3, #64	; 0x40
   1c6ee:	f3ef 8611 	mrs	r6, BASEPRI
   1c6f2:	f383 8812 	msr	BASEPRI_MAX, r3
   1c6f6:	f3bf 8f6f 	isb	sy
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   1c6fa:	4650      	mov	r0, sl
   1c6fc:	f012 ff12 	bl	2f524 <z_spin_lock_valid>
   1c700:	2800      	cmp	r0, #0
   1c702:	f000 80e3 	beq.w	1c8cc <process_event+0x310>
	z_spin_lock_set_owner(l);
   1c706:	4650      	mov	r0, sl
   1c708:	f012 ff2c 	bl	2f564 <z_spin_lock_set_owner>
			mgr->flags &= ~ONOFF_FLAG_PROCESSING;
   1c70c:	8ba3      	ldrh	r3, [r4, #28]
   1c70e:	f023 0308 	bic.w	r3, r3, #8
   1c712:	83a3      	strh	r3, [r4, #28]
		if ((mgr->flags & ONOFF_FLAG_COMPLETE) != 0) {
   1c714:	8ba3      	ldrh	r3, [r4, #28]
   1c716:	f013 0f10 	tst.w	r3, #16
   1c71a:	f000 80e2 	beq.w	1c8e2 <process_event+0x326>
			mgr->flags &= ~ONOFF_FLAG_COMPLETE;
   1c71e:	f023 0310 	bic.w	r3, r3, #16
   1c722:	83a3      	strh	r3, [r4, #28]
			evt = EVT_COMPLETE;
   1c724:	2501      	movs	r5, #1
		state = mgr->flags & ONOFF_STATE_MASK;
   1c726:	8ba7      	ldrh	r7, [r4, #28]
   1c728:	f007 0707 	and.w	r7, r7, #7
	} while (evt != EVT_NOP);
   1c72c:	2d00      	cmp	r5, #0
   1c72e:	f43f af6e 	beq.w	1c60e <process_event+0x52>
		if (evt == EVT_RECHECK) {
   1c732:	2d02      	cmp	r5, #2
   1c734:	d08b      	beq.n	1c64e <process_event+0x92>
		if (evt == EVT_NOP) {
   1c736:	2d00      	cmp	r5, #0
   1c738:	f43f af69 	beq.w	1c60e <process_event+0x52>
		if (evt == EVT_COMPLETE) {
   1c73c:	2d01      	cmp	r5, #1
   1c73e:	d08b      	beq.n	1c658 <process_event+0x9c>
		} else if (evt == EVT_START) {
   1c740:	2d03      	cmp	r5, #3
   1c742:	d092      	beq.n	1c66a <process_event+0xae>
		} else if (evt == EVT_STOP) {
   1c744:	2d04      	cmp	r5, #4
   1c746:	d03a      	beq.n	1c7be <process_event+0x202>
		} else if (evt == EVT_RESET) {
   1c748:	2d05      	cmp	r5, #5
   1c74a:	f040 8096 	bne.w	1c87a <process_event+0x2be>
			__ASSERT_NO_MSG(state == ONOFF_STATE_ERROR);
   1c74e:	2f01      	cmp	r7, #1
   1c750:	d16b      	bne.n	1c82a <process_event+0x26e>
   1c752:	6823      	ldr	r3, [r4, #0]
			__ASSERT_NO_MSG(!sys_slist_is_empty(&mgr->clients));
   1c754:	2b00      	cmp	r3, #0
   1c756:	d075      	beq.n	1c844 <process_event+0x288>
			transit = mgr->transitions->reset;
   1c758:	6923      	ldr	r3, [r4, #16]
   1c75a:	689d      	ldr	r5, [r3, #8]
			__ASSERT_NO_MSG(transit != NULL);
   1c75c:	2d00      	cmp	r5, #0
   1c75e:	d07e      	beq.n	1c85e <process_event+0x2a2>
			set_state(mgr, ONOFF_STATE_RESETTING);
   1c760:	2105      	movs	r1, #5
   1c762:	4620      	mov	r0, r4
   1c764:	f016 fe3d 	bl	333e2 <set_state>
		res = 0;
   1c768:	f04f 0900 	mov.w	r9, #0
   1c76c:	e78e      	b.n	1c68c <process_event+0xd0>
			__ASSERT_NO_MSG(state == ONOFF_STATE_OFF);
   1c76e:	4d62      	ldr	r5, [pc, #392]	; (1c8f8 <process_event+0x33c>)
   1c770:	f44f 72ab 	mov.w	r2, #342	; 0x156
   1c774:	4629      	mov	r1, r5
   1c776:	485f      	ldr	r0, [pc, #380]	; (1c8f4 <process_event+0x338>)
   1c778:	f016 fe17 	bl	333aa <printk>
   1c77c:	f44f 71ab 	mov.w	r1, #342	; 0x156
   1c780:	4628      	mov	r0, r5
   1c782:	f017 f9ab 	bl	33adc <assert_post_action>
   1c786:	e772      	b.n	1c66e <process_event+0xb2>
			__ASSERT_NO_MSG(!sys_slist_is_empty(&mgr->clients));
   1c788:	4d5b      	ldr	r5, [pc, #364]	; (1c8f8 <process_event+0x33c>)
   1c78a:	f240 1257 	movw	r2, #343	; 0x157
   1c78e:	4629      	mov	r1, r5
   1c790:	4858      	ldr	r0, [pc, #352]	; (1c8f4 <process_event+0x338>)
   1c792:	f016 fe0a 	bl	333aa <printk>
   1c796:	f240 1157 	movw	r1, #343	; 0x157
   1c79a:	4628      	mov	r0, r5
   1c79c:	f017 f99e 	bl	33adc <assert_post_action>
   1c7a0:	e769      	b.n	1c676 <process_event+0xba>
			__ASSERT_NO_MSG(transit != NULL);
   1c7a2:	f8df 8154 	ldr.w	r8, [pc, #340]	; 1c8f8 <process_event+0x33c>
   1c7a6:	f44f 72ad 	mov.w	r2, #346	; 0x15a
   1c7aa:	4641      	mov	r1, r8
   1c7ac:	4851      	ldr	r0, [pc, #324]	; (1c8f4 <process_event+0x338>)
   1c7ae:	f016 fdfc 	bl	333aa <printk>
   1c7b2:	f44f 71ad 	mov.w	r1, #346	; 0x15a
   1c7b6:	4640      	mov	r0, r8
   1c7b8:	f017 f990 	bl	33adc <assert_post_action>
   1c7bc:	e760      	b.n	1c680 <process_event+0xc4>
			__ASSERT_NO_MSG(state == ONOFF_STATE_ON);
   1c7be:	2f02      	cmp	r7, #2
   1c7c0:	d10b      	bne.n	1c7da <process_event+0x21e>
			__ASSERT_NO_MSG(mgr->refs == 0);
   1c7c2:	8be3      	ldrh	r3, [r4, #30]
   1c7c4:	b9b3      	cbnz	r3, 1c7f4 <process_event+0x238>
			transit = mgr->transitions->stop;
   1c7c6:	6923      	ldr	r3, [r4, #16]
   1c7c8:	685d      	ldr	r5, [r3, #4]
			__ASSERT_NO_MSG(transit != NULL);
   1c7ca:	b305      	cbz	r5, 1c80e <process_event+0x252>
			set_state(mgr, ONOFF_STATE_TO_OFF);
   1c7cc:	2104      	movs	r1, #4
   1c7ce:	4620      	mov	r0, r4
   1c7d0:	f016 fe07 	bl	333e2 <set_state>
		res = 0;
   1c7d4:	f04f 0900 	mov.w	r9, #0
   1c7d8:	e758      	b.n	1c68c <process_event+0xd0>
			__ASSERT_NO_MSG(state == ONOFF_STATE_ON);
   1c7da:	4d47      	ldr	r5, [pc, #284]	; (1c8f8 <process_event+0x33c>)
   1c7dc:	f240 125d 	movw	r2, #349	; 0x15d
   1c7e0:	4629      	mov	r1, r5
   1c7e2:	4844      	ldr	r0, [pc, #272]	; (1c8f4 <process_event+0x338>)
   1c7e4:	f016 fde1 	bl	333aa <printk>
   1c7e8:	f240 115d 	movw	r1, #349	; 0x15d
   1c7ec:	4628      	mov	r0, r5
   1c7ee:	f017 f975 	bl	33adc <assert_post_action>
   1c7f2:	e7e6      	b.n	1c7c2 <process_event+0x206>
			__ASSERT_NO_MSG(mgr->refs == 0);
   1c7f4:	4d40      	ldr	r5, [pc, #256]	; (1c8f8 <process_event+0x33c>)
   1c7f6:	f44f 72af 	mov.w	r2, #350	; 0x15e
   1c7fa:	4629      	mov	r1, r5
   1c7fc:	483d      	ldr	r0, [pc, #244]	; (1c8f4 <process_event+0x338>)
   1c7fe:	f016 fdd4 	bl	333aa <printk>
   1c802:	f44f 71af 	mov.w	r1, #350	; 0x15e
   1c806:	4628      	mov	r0, r5
   1c808:	f017 f968 	bl	33adc <assert_post_action>
   1c80c:	e7db      	b.n	1c7c6 <process_event+0x20a>
			__ASSERT_NO_MSG(transit != NULL);
   1c80e:	f8df 80e8 	ldr.w	r8, [pc, #232]	; 1c8f8 <process_event+0x33c>
   1c812:	f240 1261 	movw	r2, #353	; 0x161
   1c816:	4641      	mov	r1, r8
   1c818:	4836      	ldr	r0, [pc, #216]	; (1c8f4 <process_event+0x338>)
   1c81a:	f016 fdc6 	bl	333aa <printk>
   1c81e:	f240 1161 	movw	r1, #353	; 0x161
   1c822:	4640      	mov	r0, r8
   1c824:	f017 f95a 	bl	33adc <assert_post_action>
   1c828:	e7d0      	b.n	1c7cc <process_event+0x210>
			__ASSERT_NO_MSG(state == ONOFF_STATE_ERROR);
   1c82a:	4d33      	ldr	r5, [pc, #204]	; (1c8f8 <process_event+0x33c>)
   1c82c:	f44f 72b2 	mov.w	r2, #356	; 0x164
   1c830:	4629      	mov	r1, r5
   1c832:	4830      	ldr	r0, [pc, #192]	; (1c8f4 <process_event+0x338>)
   1c834:	f016 fdb9 	bl	333aa <printk>
   1c838:	f44f 71b2 	mov.w	r1, #356	; 0x164
   1c83c:	4628      	mov	r0, r5
   1c83e:	f017 f94d 	bl	33adc <assert_post_action>
   1c842:	e786      	b.n	1c752 <process_event+0x196>
			__ASSERT_NO_MSG(!sys_slist_is_empty(&mgr->clients));
   1c844:	4d2c      	ldr	r5, [pc, #176]	; (1c8f8 <process_event+0x33c>)
   1c846:	f240 1265 	movw	r2, #357	; 0x165
   1c84a:	4629      	mov	r1, r5
   1c84c:	4829      	ldr	r0, [pc, #164]	; (1c8f4 <process_event+0x338>)
   1c84e:	f016 fdac 	bl	333aa <printk>
   1c852:	f240 1165 	movw	r1, #357	; 0x165
   1c856:	4628      	mov	r0, r5
   1c858:	f017 f940 	bl	33adc <assert_post_action>
   1c85c:	e77c      	b.n	1c758 <process_event+0x19c>
			__ASSERT_NO_MSG(transit != NULL);
   1c85e:	f8df 8098 	ldr.w	r8, [pc, #152]	; 1c8f8 <process_event+0x33c>
   1c862:	f44f 72b4 	mov.w	r2, #360	; 0x168
   1c866:	4641      	mov	r1, r8
   1c868:	4822      	ldr	r0, [pc, #136]	; (1c8f4 <process_event+0x338>)
   1c86a:	f016 fd9e 	bl	333aa <printk>
   1c86e:	f44f 71b4 	mov.w	r1, #360	; 0x168
   1c872:	4640      	mov	r0, r8
   1c874:	f017 f932 	bl	33adc <assert_post_action>
   1c878:	e772      	b.n	1c760 <process_event+0x1a4>
			__ASSERT_NO_MSG(false);
   1c87a:	4d1f      	ldr	r5, [pc, #124]	; (1c8f8 <process_event+0x33c>)
   1c87c:	f240 126b 	movw	r2, #363	; 0x16b
   1c880:	4629      	mov	r1, r5
   1c882:	481c      	ldr	r0, [pc, #112]	; (1c8f4 <process_event+0x338>)
   1c884:	f016 fd91 	bl	333aa <printk>
   1c888:	f240 116b 	movw	r1, #363	; 0x16b
   1c88c:	4628      	mov	r0, r5
   1c88e:	f017 f925 	bl	33adc <assert_post_action>
		onoff_transition_fn transit = NULL;
   1c892:	2500      	movs	r5, #0
		res = 0;
   1c894:	46a9      	mov	r9, r5
   1c896:	e6f9      	b.n	1c68c <process_event+0xd0>
				   && !sys_slist_is_empty(&mgr->monitors);
   1c898:	2200      	movs	r2, #0
   1c89a:	e702      	b.n	1c6a2 <process_event+0xe6>
   1c89c:	2200      	movs	r2, #0
   1c89e:	e700      	b.n	1c6a2 <process_event+0xe6>
		    || (transit != NULL)) {
   1c8a0:	2d00      	cmp	r5, #0
   1c8a2:	f47f af04 	bne.w	1c6ae <process_event+0xf2>
   1c8a6:	e735      	b.n	1c714 <process_event+0x158>
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   1c8a8:	f8df b054 	ldr.w	fp, [pc, #84]	; 1c900 <process_event+0x344>
   1c8ac:	22ac      	movs	r2, #172	; 0xac
   1c8ae:	4659      	mov	r1, fp
   1c8b0:	4810      	ldr	r0, [pc, #64]	; (1c8f4 <process_event+0x338>)
   1c8b2:	f016 fd7a 	bl	333aa <printk>
   1c8b6:	21ac      	movs	r1, #172	; 0xac
   1c8b8:	4658      	mov	r0, fp
   1c8ba:	f017 f90f 	bl	33adc <assert_post_action>
   1c8be:	e701      	b.n	1c6c4 <process_event+0x108>
				notify_monitors(mgr, state, res);
   1c8c0:	464a      	mov	r2, r9
   1c8c2:	4641      	mov	r1, r8
   1c8c4:	4620      	mov	r0, r4
   1c8c6:	f016 fd94 	bl	333f2 <notify_monitors>
   1c8ca:	e702      	b.n	1c6d2 <process_event+0x116>
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   1c8cc:	4d0c      	ldr	r5, [pc, #48]	; (1c900 <process_event+0x344>)
   1c8ce:	2281      	movs	r2, #129	; 0x81
   1c8d0:	4629      	mov	r1, r5
   1c8d2:	4808      	ldr	r0, [pc, #32]	; (1c8f4 <process_event+0x338>)
   1c8d4:	f016 fd69 	bl	333aa <printk>
   1c8d8:	2181      	movs	r1, #129	; 0x81
   1c8da:	4628      	mov	r0, r5
   1c8dc:	f017 f8fe 	bl	33adc <assert_post_action>
   1c8e0:	e711      	b.n	1c706 <process_event+0x14a>
		} else if ((mgr->flags & ONOFF_FLAG_RECHECK) != 0) {
   1c8e2:	f013 0f20 	tst.w	r3, #32
   1c8e6:	d00d      	beq.n	1c904 <process_event+0x348>
			mgr->flags &= ~ONOFF_FLAG_RECHECK;
   1c8e8:	f023 0320 	bic.w	r3, r3, #32
   1c8ec:	83a3      	strh	r3, [r4, #28]
			evt = EVT_RECHECK;
   1c8ee:	2502      	movs	r5, #2
   1c8f0:	e719      	b.n	1c726 <process_event+0x16a>
   1c8f2:	bf00      	nop
   1c8f4:	0003bdac 	.word	0x0003bdac
   1c8f8:	0003bdc4 	.word	0x0003bdc4
   1c8fc:	0001c929 	.word	0x0001c929
   1c900:	0003bde8 	.word	0x0003bde8
		evt = EVT_NOP;
   1c904:	2500      	movs	r5, #0
   1c906:	e70e      	b.n	1c726 <process_event+0x16a>
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   1c908:	4c05      	ldr	r4, [pc, #20]	; (1c920 <process_event+0x364>)
   1c90a:	22ac      	movs	r2, #172	; 0xac
   1c90c:	4621      	mov	r1, r4
   1c90e:	4805      	ldr	r0, [pc, #20]	; (1c924 <process_event+0x368>)
   1c910:	f016 fd4b 	bl	333aa <printk>
   1c914:	21ac      	movs	r1, #172	; 0xac
   1c916:	4620      	mov	r0, r4
   1c918:	f017 f8e0 	bl	33adc <assert_post_action>
   1c91c:	e67e      	b.n	1c61c <process_event+0x60>
   1c91e:	bf00      	nop
   1c920:	0003bde8 	.word	0x0003bde8
   1c924:	0003bdac 	.word	0x0003bdac

0001c928 <transition_complete>:
{
   1c928:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   1c92c:	4604      	mov	r4, r0
   1c92e:	460d      	mov	r5, r1
	k_spinlock_key_t key = k_spin_lock(&mgr->lock);
   1c930:	f100 0614 	add.w	r6, r0, #20
   1c934:	f04f 0340 	mov.w	r3, #64	; 0x40
   1c938:	f3ef 8711 	mrs	r7, BASEPRI
   1c93c:	f383 8812 	msr	BASEPRI_MAX, r3
   1c940:	f3bf 8f6f 	isb	sy
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   1c944:	4630      	mov	r0, r6
   1c946:	f012 fded 	bl	2f524 <z_spin_lock_valid>
   1c94a:	b150      	cbz	r0, 1c962 <transition_complete+0x3a>
	z_spin_lock_set_owner(l);
   1c94c:	4630      	mov	r0, r6
   1c94e:	f012 fe09 	bl	2f564 <z_spin_lock_set_owner>
	mgr->last_res = res;
   1c952:	61a5      	str	r5, [r4, #24]
	process_event(mgr, EVT_COMPLETE, key);
   1c954:	463a      	mov	r2, r7
   1c956:	2101      	movs	r1, #1
   1c958:	4620      	mov	r0, r4
   1c95a:	f7ff fe2f 	bl	1c5bc <process_event>
}
   1c95e:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   1c962:	f8df 801c 	ldr.w	r8, [pc, #28]	; 1c980 <transition_complete+0x58>
   1c966:	2281      	movs	r2, #129	; 0x81
   1c968:	4641      	mov	r1, r8
   1c96a:	4804      	ldr	r0, [pc, #16]	; (1c97c <transition_complete+0x54>)
   1c96c:	f016 fd1d 	bl	333aa <printk>
   1c970:	2181      	movs	r1, #129	; 0x81
   1c972:	4640      	mov	r0, r8
   1c974:	f017 f8b2 	bl	33adc <assert_post_action>
   1c978:	e7e8      	b.n	1c94c <transition_complete+0x24>
   1c97a:	bf00      	nop
   1c97c:	0003bdac 	.word	0x0003bdac
   1c980:	0003bde8 	.word	0x0003bde8

0001c984 <onoff_request>:

int onoff_request(struct onoff_manager *mgr,
		  struct onoff_client *cli)
{
   1c984:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
   1c988:	4604      	mov	r4, r0
   1c98a:	4688      	mov	r8, r1
	bool add_client = false;        /* add client to pending list */
	bool start = false;             /* trigger a start transition */
	bool notify = false;            /* do client notification */
	int rv = validate_args(mgr, cli);
   1c98c:	f016 fd69 	bl	33462 <validate_args>

	if (rv < 0) {
   1c990:	1e06      	subs	r6, r0, #0
   1c992:	db53      	blt.n	1ca3c <onoff_request+0xb8>
		return rv;
	}

	k_spinlock_key_t key = k_spin_lock(&mgr->lock);
   1c994:	f104 0714 	add.w	r7, r4, #20
   1c998:	f04f 0340 	mov.w	r3, #64	; 0x40
   1c99c:	f3ef 8911 	mrs	r9, BASEPRI
   1c9a0:	f383 8812 	msr	BASEPRI_MAX, r3
   1c9a4:	f3bf 8f6f 	isb	sy
   1c9a8:	4638      	mov	r0, r7
   1c9aa:	f012 fdbb 	bl	2f524 <z_spin_lock_valid>
   1c9ae:	b1e8      	cbz	r0, 1c9ec <onoff_request+0x68>
	z_spin_lock_set_owner(l);
   1c9b0:	4638      	mov	r0, r7
   1c9b2:	f012 fdd7 	bl	2f564 <z_spin_lock_set_owner>
	uint32_t state = mgr->flags & ONOFF_STATE_MASK;
   1c9b6:	8ba5      	ldrh	r5, [r4, #28]
   1c9b8:	f005 0507 	and.w	r5, r5, #7

	/* Reject if this would overflow the reference count. */
	if (mgr->refs == SERVICE_REFS_MAX) {
   1c9bc:	8be3      	ldrh	r3, [r4, #30]
   1c9be:	f64f 72ff 	movw	r2, #65535	; 0xffff
   1c9c2:	4293      	cmp	r3, r2
   1c9c4:	d050      	beq.n	1ca68 <onoff_request+0xe4>
		rv = -EAGAIN;
		goto out;
	}

	rv = state;
   1c9c6:	462e      	mov	r6, r5
	if (state == ONOFF_STATE_ON) {
   1c9c8:	2d02      	cmp	r5, #2
   1c9ca:	d01a      	beq.n	1ca02 <onoff_request+0x7e>
		/* Increment reference count, notify in exit */
		notify = true;
		mgr->refs += 1U;
	} else if ((state == ONOFF_STATE_OFF)
   1c9cc:	b305      	cbz	r5, 1ca10 <onoff_request+0x8c>
		   || (state == ONOFF_STATE_TO_OFF)
   1c9ce:	2d04      	cmp	r5, #4
   1c9d0:	d01e      	beq.n	1ca10 <onoff_request+0x8c>
		   || (state == ONOFF_STATE_TO_ON)) {
   1c9d2:	2d06      	cmp	r5, #6
   1c9d4:	d01c      	beq.n	1ca10 <onoff_request+0x8c>
		/* Start if OFF, queue client */
		start = (state == ONOFF_STATE_OFF);
		add_client = true;
	} else if (state == ONOFF_STATE_RESETTING) {
   1c9d6:	2d05      	cmp	r5, #5
   1c9d8:	d04d      	beq.n	1ca76 <onoff_request+0xf2>
		rv = -ENOTSUP;
	} else {
		__ASSERT_NO_MSG(state == ONOFF_STATE_ERROR);
   1c9da:	2d01      	cmp	r5, #1
   1c9dc:	d131      	bne.n	1ca42 <onoff_request+0xbe>
		rv = -EIO;
   1c9de:	f06f 0604 	mvn.w	r6, #4
	bool notify = false;            /* do client notification */
   1c9e2:	f04f 0a00 	mov.w	sl, #0
	bool start = false;             /* trigger a start transition */
   1c9e6:	4653      	mov	r3, sl
	bool add_client = false;        /* add client to pending list */
   1c9e8:	4652      	mov	r2, sl
   1c9ea:	e017      	b.n	1ca1c <onoff_request+0x98>
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   1c9ec:	4d36      	ldr	r5, [pc, #216]	; (1cac8 <onoff_request+0x144>)
   1c9ee:	2281      	movs	r2, #129	; 0x81
   1c9f0:	4629      	mov	r1, r5
   1c9f2:	4836      	ldr	r0, [pc, #216]	; (1cacc <onoff_request+0x148>)
   1c9f4:	f016 fcd9 	bl	333aa <printk>
   1c9f8:	2181      	movs	r1, #129	; 0x81
   1c9fa:	4628      	mov	r0, r5
   1c9fc:	f017 f86e 	bl	33adc <assert_post_action>
   1ca00:	e7d6      	b.n	1c9b0 <onoff_request+0x2c>
		mgr->refs += 1U;
   1ca02:	3301      	adds	r3, #1
   1ca04:	83e3      	strh	r3, [r4, #30]
		notify = true;
   1ca06:	f04f 0a01 	mov.w	sl, #1
	bool start = false;             /* trigger a start transition */
   1ca0a:	2300      	movs	r3, #0
	bool add_client = false;        /* add client to pending list */
   1ca0c:	461a      	mov	r2, r3
   1ca0e:	e005      	b.n	1ca1c <onoff_request+0x98>
		start = (state == ONOFF_STATE_OFF);
   1ca10:	fab5 f385 	clz	r3, r5
   1ca14:	095b      	lsrs	r3, r3, #5
	bool notify = false;            /* do client notification */
   1ca16:	f04f 0a00 	mov.w	sl, #0
		add_client = true;
   1ca1a:	2201      	movs	r2, #1
	}

out:
	if (add_client) {
   1ca1c:	b142      	cbz	r2, 1ca30 <onoff_request+0xac>
	parent->next = child;
   1ca1e:	2200      	movs	r2, #0
   1ca20:	f8c8 2000 	str.w	r2, [r8]
	return list->tail;
   1ca24:	6862      	ldr	r2, [r4, #4]
 * @param node A pointer on the node to append
 */
static inline void sys_slist_append(sys_slist_t *list,
				    sys_snode_t *node);

Z_GENLIST_APPEND(slist, snode)
   1ca26:	b36a      	cbz	r2, 1ca84 <onoff_request+0x100>
	parent->next = child;
   1ca28:	f8c2 8000 	str.w	r8, [r2]
	list->tail = node;
   1ca2c:	f8c4 8004 	str.w	r8, [r4, #4]
		sys_slist_append(&mgr->clients, &cli->node);
	}

	if (start) {
   1ca30:	b36b      	cbz	r3, 1ca8e <onoff_request+0x10a>
		process_event(mgr, EVT_RECHECK, key);
   1ca32:	464a      	mov	r2, r9
   1ca34:	2102      	movs	r1, #2
   1ca36:	4620      	mov	r0, r4
   1ca38:	f7ff fdc0 	bl	1c5bc <process_event>
			notify_one(mgr, cli, state, 0);
		}
	}

	return rv;
}
   1ca3c:	4630      	mov	r0, r6
   1ca3e:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
		__ASSERT_NO_MSG(state == ONOFF_STATE_ERROR);
   1ca42:	4e23      	ldr	r6, [pc, #140]	; (1cad0 <onoff_request+0x14c>)
   1ca44:	f240 12c9 	movw	r2, #457	; 0x1c9
   1ca48:	4631      	mov	r1, r6
   1ca4a:	4820      	ldr	r0, [pc, #128]	; (1cacc <onoff_request+0x148>)
   1ca4c:	f016 fcad 	bl	333aa <printk>
   1ca50:	f240 11c9 	movw	r1, #457	; 0x1c9
   1ca54:	4630      	mov	r0, r6
   1ca56:	f017 f841 	bl	33adc <assert_post_action>
		rv = -EIO;
   1ca5a:	f06f 0604 	mvn.w	r6, #4
	bool notify = false;            /* do client notification */
   1ca5e:	f04f 0a00 	mov.w	sl, #0
	bool start = false;             /* trigger a start transition */
   1ca62:	4653      	mov	r3, sl
	bool add_client = false;        /* add client to pending list */
   1ca64:	4652      	mov	r2, sl
   1ca66:	e7d9      	b.n	1ca1c <onoff_request+0x98>
		rv = -EAGAIN;
   1ca68:	f06f 060a 	mvn.w	r6, #10
	bool notify = false;            /* do client notification */
   1ca6c:	f04f 0a00 	mov.w	sl, #0
	bool start = false;             /* trigger a start transition */
   1ca70:	4653      	mov	r3, sl
	bool add_client = false;        /* add client to pending list */
   1ca72:	4652      	mov	r2, sl
   1ca74:	e7d2      	b.n	1ca1c <onoff_request+0x98>
		rv = -ENOTSUP;
   1ca76:	f06f 0685 	mvn.w	r6, #133	; 0x85
	bool notify = false;            /* do client notification */
   1ca7a:	f04f 0a00 	mov.w	sl, #0
	bool start = false;             /* trigger a start transition */
   1ca7e:	4653      	mov	r3, sl
	bool add_client = false;        /* add client to pending list */
   1ca80:	4652      	mov	r2, sl
   1ca82:	e7cb      	b.n	1ca1c <onoff_request+0x98>
   1ca84:	f8c4 8004 	str.w	r8, [r4, #4]
	list->head = node;
   1ca88:	f8c4 8000 	str.w	r8, [r4]
}
   1ca8c:	e7d0      	b.n	1ca30 <onoff_request+0xac>
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   1ca8e:	4638      	mov	r0, r7
   1ca90:	f012 fd58 	bl	2f544 <z_spin_unlock_valid>
   1ca94:	b168      	cbz	r0, 1cab2 <onoff_request+0x12e>
	__asm__ volatile(
   1ca96:	f389 8811 	msr	BASEPRI, r9
   1ca9a:	f3bf 8f6f 	isb	sy
		if (notify) {
   1ca9e:	f1ba 0f00 	cmp.w	sl, #0
   1caa2:	d0cb      	beq.n	1ca3c <onoff_request+0xb8>
			notify_one(mgr, cli, state, 0);
   1caa4:	2300      	movs	r3, #0
   1caa6:	462a      	mov	r2, r5
   1caa8:	4641      	mov	r1, r8
   1caaa:	4620      	mov	r0, r4
   1caac:	f016 fcef 	bl	3348e <notify_one>
   1cab0:	e7c4      	b.n	1ca3c <onoff_request+0xb8>
   1cab2:	4f05      	ldr	r7, [pc, #20]	; (1cac8 <onoff_request+0x144>)
   1cab4:	22ac      	movs	r2, #172	; 0xac
   1cab6:	4639      	mov	r1, r7
   1cab8:	4804      	ldr	r0, [pc, #16]	; (1cacc <onoff_request+0x148>)
   1caba:	f016 fc76 	bl	333aa <printk>
   1cabe:	21ac      	movs	r1, #172	; 0xac
   1cac0:	4638      	mov	r0, r7
   1cac2:	f017 f80b 	bl	33adc <assert_post_action>
   1cac6:	e7e6      	b.n	1ca96 <onoff_request+0x112>
   1cac8:	0003bde8 	.word	0x0003bde8
   1cacc:	0003bdac 	.word	0x0003bdac
   1cad0:	0003bdc4 	.word	0x0003bdc4

0001cad4 <sys_heap_free>:
	return (mem - chunk_header_bytes(h) - base) / CHUNK_UNIT;
}

void sys_heap_free(struct sys_heap *heap, void *mem)
{
	if (mem == NULL) {
   1cad4:	2900      	cmp	r1, #0
   1cad6:	d04d      	beq.n	1cb74 <sys_heap_free+0xa0>
{
   1cad8:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
		return; /* ISO C free() semantics */
	}
	struct z_heap *h = heap->heap;
   1cada:	6804      	ldr	r4, [r0, #0]
	chunkid_t c = mem_to_chunkid(h, mem);
   1cadc:	4620      	mov	r0, r4
   1cade:	f016 fe18 	bl	33712 <mem_to_chunkid>
   1cae2:	4605      	mov	r5, r0

static inline chunkid_t chunk_field(struct z_heap *h, chunkid_t c,
				    enum chunk_fields f)
{
	chunk_unit_t *buf = chunk_buf(h);
	void *cmem = &buf[c];
   1cae4:	eb04 06c0 	add.w	r6, r4, r0, lsl #3
	return big_heap_chunks(h->end_chunk);
   1cae8:	68a3      	ldr	r3, [r4, #8]

	if (big_heap(h)) {
   1caea:	f5b3 4f00 	cmp.w	r3, #32768	; 0x8000
   1caee:	d31f      	bcc.n	1cb30 <sys_heap_free+0x5c>
		return ((uint32_t *)cmem)[f];
   1caf0:	6873      	ldr	r3, [r6, #4]

	/*
	 * This should catch many double-free cases.
	 * This is cheap enough so let's do it all the time.
	 */
	__ASSERT(chunk_used(h, c),
   1caf2:	f013 0f01 	tst.w	r3, #1
   1caf6:	d01d      	beq.n	1cb34 <sys_heap_free+0x60>
	return big_heap_chunks(h->end_chunk);
   1caf8:	68a2      	ldr	r2, [r4, #8]
	if (big_heap(h)) {
   1cafa:	f5b2 4f00 	cmp.w	r2, #32768	; 0x8000
   1cafe:	d324      	bcc.n	1cb4a <sys_heap_free+0x76>
		return ((uint32_t *)cmem)[f];
   1cb00:	6873      	ldr	r3, [r6, #4]
	return c - chunk_field(h, c, LEFT_SIZE);
}

static inline chunkid_t right_chunk(struct z_heap *h, chunkid_t c)
{
	return c + chunk_size(h, c);
   1cb02:	eb05 0353 	add.w	r3, r5, r3, lsr #1
	if (big_heap(h)) {
   1cb06:	f5b2 4f00 	cmp.w	r2, #32768	; 0x8000
   1cb0a:	d320      	bcc.n	1cb4e <sys_heap_free+0x7a>
		return ((uint32_t *)cmem)[f];
   1cb0c:	f854 2033 	ldr.w	r2, [r4, r3, lsl #3]
	return c - chunk_field(h, c, LEFT_SIZE);
   1cb10:	1a9b      	subs	r3, r3, r2
	/*
	 * It is easy to catch many common memory overflow cases with
	 * a quick check on this and next chunk header fields that are
	 * immediately before and after the freed memory.
	 */
	__ASSERT(left_chunk(h, right_chunk(h, c)) == c,
   1cb12:	429d      	cmp	r5, r3
   1cb14:	d11e      	bne.n	1cb54 <sys_heap_free+0x80>
	return big_heap_chunks(h->end_chunk);
   1cb16:	68a3      	ldr	r3, [r4, #8]
	if (big_heap(h)) {
   1cb18:	f5b3 4f00 	cmp.w	r3, #32768	; 0x8000
   1cb1c:	d325      	bcc.n	1cb6a <sys_heap_free+0x96>
			((uint32_t *)cmem)[SIZE_AND_USED] &= ~1U;
   1cb1e:	6873      	ldr	r3, [r6, #4]
   1cb20:	f023 0301 	bic.w	r3, r3, #1
   1cb24:	6073      	str	r3, [r6, #4]
		 "corrupted heap bounds (buffer overflow?) for memory at %p",
		 mem);

	set_chunk_used(h, c, false);
	free_chunk(h, c);
   1cb26:	4629      	mov	r1, r5
   1cb28:	4620      	mov	r0, r4
   1cb2a:	f016 fe4f 	bl	337cc <free_chunk>
}
   1cb2e:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
		return ((uint16_t *)cmem)[f];
   1cb30:	8873      	ldrh	r3, [r6, #2]
   1cb32:	e7de      	b.n	1caf2 <sys_heap_free+0x1e>
	__ASSERT(chunk_used(h, c),
   1cb34:	4f10      	ldr	r7, [pc, #64]	; (1cb78 <sys_heap_free+0xa4>)
   1cb36:	229a      	movs	r2, #154	; 0x9a
   1cb38:	4639      	mov	r1, r7
   1cb3a:	4810      	ldr	r0, [pc, #64]	; (1cb7c <sys_heap_free+0xa8>)
   1cb3c:	f016 fc35 	bl	333aa <printk>
   1cb40:	219a      	movs	r1, #154	; 0x9a
   1cb42:	4638      	mov	r0, r7
   1cb44:	f016 ffca 	bl	33adc <assert_post_action>
   1cb48:	e7d6      	b.n	1caf8 <sys_heap_free+0x24>
   1cb4a:	8873      	ldrh	r3, [r6, #2]
   1cb4c:	e7d9      	b.n	1cb02 <sys_heap_free+0x2e>
   1cb4e:	f834 2033 	ldrh.w	r2, [r4, r3, lsl #3]
   1cb52:	e7dd      	b.n	1cb10 <sys_heap_free+0x3c>
	__ASSERT(left_chunk(h, right_chunk(h, c)) == c,
   1cb54:	4f08      	ldr	r7, [pc, #32]	; (1cb78 <sys_heap_free+0xa4>)
   1cb56:	22a2      	movs	r2, #162	; 0xa2
   1cb58:	4639      	mov	r1, r7
   1cb5a:	4808      	ldr	r0, [pc, #32]	; (1cb7c <sys_heap_free+0xa8>)
   1cb5c:	f016 fc25 	bl	333aa <printk>
   1cb60:	21a2      	movs	r1, #162	; 0xa2
   1cb62:	4638      	mov	r0, r7
   1cb64:	f016 ffba 	bl	33adc <assert_post_action>
   1cb68:	e7d5      	b.n	1cb16 <sys_heap_free+0x42>
			((uint16_t *)cmem)[SIZE_AND_USED] &= ~1U;
   1cb6a:	8873      	ldrh	r3, [r6, #2]
   1cb6c:	f023 0301 	bic.w	r3, r3, #1
   1cb70:	8073      	strh	r3, [r6, #2]
   1cb72:	e7d8      	b.n	1cb26 <sys_heap_free+0x52>
   1cb74:	4770      	bx	lr
   1cb76:	bf00      	nop
   1cb78:	0003be10 	.word	0x0003be10
   1cb7c:	0003bdac 	.word	0x0003bdac

0001cb80 <sys_heap_aligned_alloc>:
	set_chunk_used(h, c, true);
	return chunk_mem(h, c);
}

void *sys_heap_aligned_alloc(struct sys_heap *heap, size_t align, size_t bytes)
{
   1cb80:	e92d 43f8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
   1cb84:	460c      	mov	r4, r1
   1cb86:	4615      	mov	r5, r2
	struct z_heap *h = heap->heap;
   1cb88:	6806      	ldr	r6, [r0, #0]
	 * We allow for one bit of rewind in addition to the alignment
	 * value to efficiently accommodate z_heap_aligned_alloc().
	 * So if e.g. align = 0x28 (32 | 8) this means we align to a 32-byte
	 * boundary and then rewind 8 bytes.
	 */
	rew = align & -align;
   1cb8a:	424b      	negs	r3, r1
   1cb8c:	ea03 0801 	and.w	r8, r3, r1
	if (align != rew) {
   1cb90:	ea31 0303 	bics.w	r3, r1, r3
   1cb94:	d051      	beq.n	1cc3a <sys_heap_aligned_alloc+0xba>
		align -= rew;
   1cb96:	eba1 0408 	sub.w	r4, r1, r8
	return big_heap_chunks(h->end_chunk);
   1cb9a:	68b3      	ldr	r3, [r6, #8]
	return big_heap(h) && chunk_size(h, c) == 1U;
}

static inline size_t chunk_header_bytes(struct z_heap *h)
{
	return big_heap(h) ? 8 : 4;
   1cb9c:	f5b3 4f00 	cmp.w	r3, #32768	; 0x8000
   1cba0:	d349      	bcc.n	1cc36 <sys_heap_aligned_alloc+0xb6>
   1cba2:	2708      	movs	r7, #8
		gap = MIN(rew, chunk_header_bytes(h));
   1cba4:	45b8      	cmp	r8, r7
   1cba6:	d200      	bcs.n	1cbaa <sys_heap_aligned_alloc+0x2a>
   1cba8:	4647      	mov	r7, r8
			return sys_heap_alloc(heap, bytes);
		}
		rew = 0;
		gap = chunk_header_bytes(h);
	}
	__ASSERT((align & (align - 1)) == 0, "align must be a power of 2");
   1cbaa:	1e63      	subs	r3, r4, #1
   1cbac:	4223      	tst	r3, r4
   1cbae:	d155      	bne.n	1cc5c <sys_heap_aligned_alloc+0xdc>

	if (bytes == 0 || size_too_big(h, bytes)) {
   1cbb0:	2d00      	cmp	r5, #0
   1cbb2:	d07e      	beq.n	1ccb2 <sys_heap_aligned_alloc+0x132>
{
	/*
	 * Quick check to bail out early if size is too big.
	 * Also guards against potential arithmetic overflows elsewhere.
	 */
	return (bytes / CHUNK_UNIT) >= h->end_chunk;
   1cbb4:	68b3      	ldr	r3, [r6, #8]
   1cbb6:	ebb3 0fd5 	cmp.w	r3, r5, lsr #3
   1cbba:	d97c      	bls.n	1ccb6 <sys_heap_aligned_alloc+0x136>
	/*
	 * Find a free block that is guaranteed to fit.
	 * We over-allocate to account for alignment and then free
	 * the extra allocations afterwards.
	 */
	chunksz_t padded_sz = bytes_to_chunksz(h, bytes + align - gap);
   1cbbc:	1961      	adds	r1, r4, r5
   1cbbe:	1bc9      	subs	r1, r1, r7
	return big_heap(h) ? 8 : 4;
   1cbc0:	f5b3 4f00 	cmp.w	r3, #32768	; 0x8000
   1cbc4:	d358      	bcc.n	1cc78 <sys_heap_aligned_alloc+0xf8>
   1cbc6:	2308      	movs	r3, #8
	return chunksz(chunk_header_bytes(h) + bytes);
   1cbc8:	4419      	add	r1, r3
	return (bytes + CHUNK_UNIT - 1U) / CHUNK_UNIT;
   1cbca:	3107      	adds	r1, #7
	chunkid_t c0 = alloc_chunk(h, padded_sz);
   1cbcc:	08c9      	lsrs	r1, r1, #3
   1cbce:	4630      	mov	r0, r6
   1cbd0:	f016 fe57 	bl	33882 <alloc_chunk>

	if (c0 == 0) {
   1cbd4:	4607      	mov	r7, r0
   1cbd6:	2800      	cmp	r0, #0
   1cbd8:	d06f      	beq.n	1ccba <sys_heap_aligned_alloc+0x13a>
		return NULL;
	}
	uint8_t *mem = chunk_mem(h, c0);
   1cbda:	4601      	mov	r1, r0
   1cbdc:	4630      	mov	r0, r6
   1cbde:	f016 fca6 	bl	3352e <chunk_mem>

	/* Align allocated memory */
	mem = (uint8_t *) ROUND_UP(mem + rew, align) - rew;
   1cbe2:	4440      	add	r0, r8
   1cbe4:	4420      	add	r0, r4
   1cbe6:	3801      	subs	r0, #1
   1cbe8:	4264      	negs	r4, r4
   1cbea:	4004      	ands	r4, r0
   1cbec:	eba4 0408 	sub.w	r4, r4, r8
	chunk_unit_t *end = (chunk_unit_t *) ROUND_UP(mem + bytes, CHUNK_UNIT);
   1cbf0:	4425      	add	r5, r4
   1cbf2:	3507      	adds	r5, #7
   1cbf4:	f025 0507 	bic.w	r5, r5, #7

	/* Get corresponding chunks */
	chunkid_t c = mem_to_chunkid(h, mem);
   1cbf8:	4621      	mov	r1, r4
   1cbfa:	4630      	mov	r0, r6
   1cbfc:	f016 fd89 	bl	33712 <mem_to_chunkid>
   1cc00:	4680      	mov	r8, r0
	chunkid_t c_end = end - chunk_buf(h);
   1cc02:	1bad      	subs	r5, r5, r6
   1cc04:	10ed      	asrs	r5, r5, #3
	CHECK(c >= c0 && c  < c_end && c_end <= c0 + padded_sz);

	/* Split and free unused prefix */
	if (c > c0) {
   1cc06:	4287      	cmp	r7, r0
   1cc08:	d338      	bcc.n	1cc7c <sys_heap_aligned_alloc+0xfc>
	void *cmem = &buf[c];
   1cc0a:	eb06 07c8 	add.w	r7, r6, r8, lsl #3
	return big_heap_chunks(h->end_chunk);
   1cc0e:	68b3      	ldr	r3, [r6, #8]
	if (big_heap(h)) {
   1cc10:	f5b3 4f00 	cmp.w	r3, #32768	; 0x8000
   1cc14:	d33c      	bcc.n	1cc90 <sys_heap_aligned_alloc+0x110>
		return ((uint32_t *)cmem)[f];
   1cc16:	687b      	ldr	r3, [r7, #4]
	return c + chunk_size(h, c);
   1cc18:	eb08 0353 	add.w	r3, r8, r3, lsr #1
		split_chunks(h, c0, c);
		free_list_add(h, c0);
	}

	/* Split and free unused suffix */
	if (right_chunk(h, c) > c_end) {
   1cc1c:	429d      	cmp	r5, r3
   1cc1e:	d339      	bcc.n	1cc94 <sys_heap_aligned_alloc+0x114>
	return big_heap_chunks(h->end_chunk);
   1cc20:	68b3      	ldr	r3, [r6, #8]
	if (big_heap(h)) {
   1cc22:	f5b3 4f00 	cmp.w	r3, #32768	; 0x8000
   1cc26:	d33f      	bcc.n	1cca8 <sys_heap_aligned_alloc+0x128>
			((uint32_t *)cmem)[SIZE_AND_USED] |= 1U;
   1cc28:	687b      	ldr	r3, [r7, #4]
   1cc2a:	f043 0301 	orr.w	r3, r3, #1
   1cc2e:	607b      	str	r3, [r7, #4]
		free_list_add(h, c_end);
	}

	set_chunk_used(h, c, true);
	return mem;
}
   1cc30:	4620      	mov	r0, r4
   1cc32:	e8bd 83f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
	return big_heap(h) ? 8 : 4;
   1cc36:	2704      	movs	r7, #4
   1cc38:	e7b4      	b.n	1cba4 <sys_heap_aligned_alloc+0x24>
	return big_heap_chunks(h->end_chunk);
   1cc3a:	68b3      	ldr	r3, [r6, #8]
	return big_heap(h) ? 8 : 4;
   1cc3c:	f5b3 4f00 	cmp.w	r3, #32768	; 0x8000
   1cc40:	d305      	bcc.n	1cc4e <sys_heap_aligned_alloc+0xce>
   1cc42:	2708      	movs	r7, #8
		if (align <= chunk_header_bytes(h)) {
   1cc44:	42bc      	cmp	r4, r7
   1cc46:	d904      	bls.n	1cc52 <sys_heap_aligned_alloc+0xd2>
		rew = 0;
   1cc48:	f04f 0800 	mov.w	r8, #0
   1cc4c:	e7ad      	b.n	1cbaa <sys_heap_aligned_alloc+0x2a>
   1cc4e:	2704      	movs	r7, #4
   1cc50:	e7f8      	b.n	1cc44 <sys_heap_aligned_alloc+0xc4>
			return sys_heap_alloc(heap, bytes);
   1cc52:	4629      	mov	r1, r5
   1cc54:	f016 fe64 	bl	33920 <sys_heap_alloc>
   1cc58:	4604      	mov	r4, r0
   1cc5a:	e7e9      	b.n	1cc30 <sys_heap_aligned_alloc+0xb0>
	__ASSERT((align & (align - 1)) == 0, "align must be a power of 2");
   1cc5c:	f8df 9064 	ldr.w	r9, [pc, #100]	; 1ccc4 <sys_heap_aligned_alloc+0x144>
   1cc60:	f240 120d 	movw	r2, #269	; 0x10d
   1cc64:	4649      	mov	r1, r9
   1cc66:	4816      	ldr	r0, [pc, #88]	; (1ccc0 <sys_heap_aligned_alloc+0x140>)
   1cc68:	f016 fb9f 	bl	333aa <printk>
   1cc6c:	f240 110d 	movw	r1, #269	; 0x10d
   1cc70:	4648      	mov	r0, r9
   1cc72:	f016 ff33 	bl	33adc <assert_post_action>
   1cc76:	e79b      	b.n	1cbb0 <sys_heap_aligned_alloc+0x30>
   1cc78:	2304      	movs	r3, #4
   1cc7a:	e7a5      	b.n	1cbc8 <sys_heap_aligned_alloc+0x48>
		split_chunks(h, c0, c);
   1cc7c:	4602      	mov	r2, r0
   1cc7e:	4639      	mov	r1, r7
   1cc80:	4630      	mov	r0, r6
   1cc82:	f016 fcdc 	bl	3363e <split_chunks>
		free_list_add(h, c0);
   1cc86:	4639      	mov	r1, r7
   1cc88:	4630      	mov	r0, r6
   1cc8a:	f016 fd76 	bl	3377a <free_list_add>
   1cc8e:	e7bc      	b.n	1cc0a <sys_heap_aligned_alloc+0x8a>
		return ((uint16_t *)cmem)[f];
   1cc90:	887b      	ldrh	r3, [r7, #2]
   1cc92:	e7c1      	b.n	1cc18 <sys_heap_aligned_alloc+0x98>
		split_chunks(h, c, c_end);
   1cc94:	462a      	mov	r2, r5
   1cc96:	4641      	mov	r1, r8
   1cc98:	4630      	mov	r0, r6
   1cc9a:	f016 fcd0 	bl	3363e <split_chunks>
		free_list_add(h, c_end);
   1cc9e:	4629      	mov	r1, r5
   1cca0:	4630      	mov	r0, r6
   1cca2:	f016 fd6a 	bl	3377a <free_list_add>
   1cca6:	e7bb      	b.n	1cc20 <sys_heap_aligned_alloc+0xa0>
			((uint16_t *)cmem)[SIZE_AND_USED] |= 1U;
   1cca8:	887b      	ldrh	r3, [r7, #2]
   1ccaa:	f043 0301 	orr.w	r3, r3, #1
   1ccae:	807b      	strh	r3, [r7, #2]
   1ccb0:	e7be      	b.n	1cc30 <sys_heap_aligned_alloc+0xb0>
		return NULL;
   1ccb2:	2400      	movs	r4, #0
   1ccb4:	e7bc      	b.n	1cc30 <sys_heap_aligned_alloc+0xb0>
   1ccb6:	2400      	movs	r4, #0
   1ccb8:	e7ba      	b.n	1cc30 <sys_heap_aligned_alloc+0xb0>
		return NULL;
   1ccba:	2400      	movs	r4, #0
   1ccbc:	e7b8      	b.n	1cc30 <sys_heap_aligned_alloc+0xb0>
   1ccbe:	bf00      	nop
   1ccc0:	0003bdac 	.word	0x0003bdac
   1ccc4:	0003be10 	.word	0x0003be10

0001ccc8 <sys_heap_init>:
	}
	return ptr2;
}

void sys_heap_init(struct sys_heap *heap, void *mem, size_t bytes)
{
   1ccc8:	e92d 4ff8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
   1cccc:	4606      	mov	r6, r0
   1ccce:	460d      	mov	r5, r1
   1ccd0:	4614      	mov	r4, r2
	return big_heap_bytes(size) ? 8 : 4;
   1ccd2:	f5b2 2f80 	cmp.w	r2, #262144	; 0x40000
   1ccd6:	d333      	bcc.n	1cd40 <sys_heap_init+0x78>
   1ccd8:	2708      	movs	r7, #8
	/* Must fit in a 31 bit count of HUNK_UNIT */
	__ASSERT(bytes / CHUNK_UNIT <= 0x7fffffffU, "heap size is too big");

	/* Reserve the end marker chunk's header */
	__ASSERT(bytes > heap_footer_bytes(bytes), "heap size is too small");
   1ccda:	42bc      	cmp	r4, r7
   1ccdc:	d932      	bls.n	1cd44 <sys_heap_init+0x7c>
	bytes -= heap_footer_bytes(bytes);
   1ccde:	1be2      	subs	r2, r4, r7

	/* Round the start up, the end down */
	uintptr_t addr = ROUND_UP(mem, CHUNK_UNIT);
   1cce0:	1dec      	adds	r4, r5, #7
   1cce2:	f024 0407 	bic.w	r4, r4, #7
	uintptr_t end = ROUND_DOWN((uint8_t *)mem + bytes, CHUNK_UNIT);
   1cce6:	4415      	add	r5, r2
   1cce8:	f025 0507 	bic.w	r5, r5, #7
	chunksz_t heap_sz = (end - addr) / CHUNK_UNIT;
   1ccec:	1b2d      	subs	r5, r5, r4
   1ccee:	ea4f 09d5 	mov.w	r9, r5, lsr #3

	CHECK(end > addr);
	__ASSERT(heap_sz > chunksz(sizeof(struct z_heap)), "heap size is too small");
   1ccf2:	2d17      	cmp	r5, #23
   1ccf4:	d934      	bls.n	1cd60 <sys_heap_init+0x98>

	struct z_heap *h = (struct z_heap *)addr;
   1ccf6:	46a0      	mov	r8, r4
	heap->heap = h;
   1ccf8:	6034      	str	r4, [r6, #0]
	h->end_chunk = heap_sz;
   1ccfa:	f8c4 9008 	str.w	r9, [r4, #8]
	h->avail_buckets = 0;
   1ccfe:	2300      	movs	r3, #0
   1cd00:	60e3      	str	r3, [r4, #12]
	return big_heap(h) ? 8 : 4;
   1cd02:	f5b9 4f00 	cmp.w	r9, #32768	; 0x8000
   1cd06:	d338      	bcc.n	1cd7a <sys_heap_init+0xb2>
   1cd08:	2308      	movs	r3, #8
	return (bytes + CHUNK_UNIT - 1U) / CHUNK_UNIT;
   1cd0a:	3308      	adds	r3, #8
	unsigned int usable_sz = sz - min_chunk_size(h) + 1;
   1cd0c:	eba9 06d3 	sub.w	r6, r9, r3, lsr #3
   1cd10:	3601      	adds	r6, #1
	return 31 - __builtin_clz(usable_sz);
   1cd12:	fab6 f686 	clz	r6, r6

	int nb_buckets = bucket_idx(h, heap_sz) + 1;
   1cd16:	f1c6 0720 	rsb	r7, r6, #32
	chunksz_t chunk0_size = chunksz(sizeof(struct z_heap) +
   1cd1a:	f1c6 0624 	rsb	r6, r6, #36	; 0x24
   1cd1e:	00b6      	lsls	r6, r6, #2
	return (bytes + CHUNK_UNIT - 1U) / CHUNK_UNIT;
   1cd20:	3607      	adds	r6, #7
   1cd22:	ea4f 0ad6 	mov.w	sl, r6, lsr #3
				     nb_buckets * sizeof(struct z_heap_bucket));

	__ASSERT(chunk0_size + min_chunk_size(h) <= heap_sz, "heap size is too small");
   1cd26:	eb0a 03d3 	add.w	r3, sl, r3, lsr #3
   1cd2a:	454b      	cmp	r3, r9
   1cd2c:	d827      	bhi.n	1cd7e <sys_heap_init+0xb6>
	return big_heap(h) ? 8 : 4;
   1cd2e:	2300      	movs	r3, #0

	for (int i = 0; i < nb_buckets; i++) {
   1cd30:	42bb      	cmp	r3, r7
   1cd32:	da32      	bge.n	1cd9a <sys_heap_init+0xd2>
		h->buckets[i].next = 0;
   1cd34:	1d1a      	adds	r2, r3, #4
   1cd36:	2100      	movs	r1, #0
   1cd38:	f848 1022 	str.w	r1, [r8, r2, lsl #2]
	for (int i = 0; i < nb_buckets; i++) {
   1cd3c:	3301      	adds	r3, #1
   1cd3e:	e7f7      	b.n	1cd30 <sys_heap_init+0x68>
	return big_heap_bytes(size) ? 8 : 4;
   1cd40:	2704      	movs	r7, #4
   1cd42:	e7ca      	b.n	1ccda <sys_heap_init+0x12>
	__ASSERT(bytes > heap_footer_bytes(bytes), "heap size is too small");
   1cd44:	f8df 8108 	ldr.w	r8, [pc, #264]	; 1ce50 <sys_heap_init+0x188>
   1cd48:	f44f 72c1 	mov.w	r2, #386	; 0x182
   1cd4c:	4641      	mov	r1, r8
   1cd4e:	483f      	ldr	r0, [pc, #252]	; (1ce4c <sys_heap_init+0x184>)
   1cd50:	f016 fb2b 	bl	333aa <printk>
   1cd54:	f44f 71c1 	mov.w	r1, #386	; 0x182
   1cd58:	4640      	mov	r0, r8
   1cd5a:	f016 febf 	bl	33adc <assert_post_action>
   1cd5e:	e7be      	b.n	1ccde <sys_heap_init+0x16>
	__ASSERT(heap_sz > chunksz(sizeof(struct z_heap)), "heap size is too small");
   1cd60:	4f3b      	ldr	r7, [pc, #236]	; (1ce50 <sys_heap_init+0x188>)
   1cd62:	f240 128b 	movw	r2, #395	; 0x18b
   1cd66:	4639      	mov	r1, r7
   1cd68:	4838      	ldr	r0, [pc, #224]	; (1ce4c <sys_heap_init+0x184>)
   1cd6a:	f016 fb1e 	bl	333aa <printk>
   1cd6e:	f240 118b 	movw	r1, #395	; 0x18b
   1cd72:	4638      	mov	r0, r7
   1cd74:	f016 feb2 	bl	33adc <assert_post_action>
   1cd78:	e7bd      	b.n	1ccf6 <sys_heap_init+0x2e>
	return big_heap(h) ? 8 : 4;
   1cd7a:	2304      	movs	r3, #4
   1cd7c:	e7c5      	b.n	1cd0a <sys_heap_init+0x42>
	__ASSERT(chunk0_size + min_chunk_size(h) <= heap_sz, "heap size is too small");
   1cd7e:	f8df b0d0 	ldr.w	fp, [pc, #208]	; 1ce50 <sys_heap_init+0x188>
   1cd82:	f44f 72cb 	mov.w	r2, #406	; 0x196
   1cd86:	4659      	mov	r1, fp
   1cd88:	4830      	ldr	r0, [pc, #192]	; (1ce4c <sys_heap_init+0x184>)
   1cd8a:	f016 fb0e 	bl	333aa <printk>
   1cd8e:	f44f 71cb 	mov.w	r1, #406	; 0x196
   1cd92:	4658      	mov	r0, fp
   1cd94:	f016 fea2 	bl	33adc <assert_post_action>
   1cd98:	e7c9      	b.n	1cd2e <sys_heap_init+0x66>
	chunk_set(h, c, SIZE_AND_USED, size << 1);
   1cd9a:	ea4f 034a 	mov.w	r3, sl, lsl #1
	return big_heap_chunks(h->end_chunk);
   1cd9e:	68a1      	ldr	r1, [r4, #8]
	if (big_heap(h)) {
   1cda0:	f5b1 4f00 	cmp.w	r1, #32768	; 0x8000
   1cda4:	d338      	bcc.n	1ce18 <sys_heap_init+0x150>
		((uint32_t *)cmem)[f] = val;
   1cda6:	6063      	str	r3, [r4, #4]
	if (big_heap(h)) {
   1cda8:	f5b1 4f00 	cmp.w	r1, #32768	; 0x8000
   1cdac:	d336      	bcc.n	1ce1c <sys_heap_init+0x154>
		((uint32_t *)cmem)[f] = val;
   1cdae:	2300      	movs	r3, #0
   1cdb0:	6023      	str	r3, [r4, #0]
	if (big_heap(h)) {
   1cdb2:	f5b1 4f00 	cmp.w	r1, #32768	; 0x8000
   1cdb6:	d334      	bcc.n	1ce22 <sys_heap_init+0x15a>
			((uint32_t *)cmem)[SIZE_AND_USED] |= 1U;
   1cdb8:	6863      	ldr	r3, [r4, #4]
   1cdba:	f043 0301 	orr.w	r3, r3, #1
   1cdbe:	6063      	str	r3, [r4, #4]
	set_chunk_size(h, 0, chunk0_size);
	set_left_chunk_size(h, 0, 0);
	set_chunk_used(h, 0, true);

	/* chunk containing the free heap */
	set_chunk_size(h, chunk0_size, heap_sz - chunk0_size);
   1cdc0:	eba9 000a 	sub.w	r0, r9, sl
	chunk_set(h, c, SIZE_AND_USED, size << 1);
   1cdc4:	0042      	lsls	r2, r0, #1
	void *cmem = &buf[c];
   1cdc6:	f026 0607 	bic.w	r6, r6, #7
   1cdca:	19a3      	adds	r3, r4, r6
	if (big_heap(h)) {
   1cdcc:	f5b1 4f00 	cmp.w	r1, #32768	; 0x8000
   1cdd0:	d32c      	bcc.n	1ce2c <sys_heap_init+0x164>
		((uint32_t *)cmem)[f] = val;
   1cdd2:	605a      	str	r2, [r3, #4]
	return big_heap_chunks(h->end_chunk);
   1cdd4:	68a3      	ldr	r3, [r4, #8]
	if (big_heap(h)) {
   1cdd6:	f5b3 4f00 	cmp.w	r3, #32768	; 0x8000
   1cdda:	d329      	bcc.n	1ce30 <sys_heap_init+0x168>
		((uint32_t *)cmem)[f] = val;
   1cddc:	f844 a006 	str.w	sl, [r4, r6]
	void *cmem = &buf[c];
   1cde0:	f025 0307 	bic.w	r3, r5, #7
   1cde4:	4425      	add	r5, r4
	return big_heap_chunks(h->end_chunk);
   1cde6:	68a2      	ldr	r2, [r4, #8]
	if (big_heap(h)) {
   1cde8:	f5b2 4f00 	cmp.w	r2, #32768	; 0x8000
   1cdec:	d323      	bcc.n	1ce36 <sys_heap_init+0x16e>
		((uint32_t *)cmem)[f] = val;
   1cdee:	2200      	movs	r2, #0
   1cdf0:	606a      	str	r2, [r5, #4]
	return big_heap_chunks(h->end_chunk);
   1cdf2:	68a2      	ldr	r2, [r4, #8]
	if (big_heap(h)) {
   1cdf4:	f5b2 4f00 	cmp.w	r2, #32768	; 0x8000
   1cdf8:	d320      	bcc.n	1ce3c <sys_heap_init+0x174>
		((uint32_t *)cmem)[f] = val;
   1cdfa:	50e0      	str	r0, [r4, r3]
	return big_heap_chunks(h->end_chunk);
   1cdfc:	68a3      	ldr	r3, [r4, #8]
	if (big_heap(h)) {
   1cdfe:	f5b3 4f00 	cmp.w	r3, #32768	; 0x8000
   1ce02:	d31d      	bcc.n	1ce40 <sys_heap_init+0x178>
			((uint32_t *)cmem)[SIZE_AND_USED] |= 1U;
   1ce04:	686b      	ldr	r3, [r5, #4]
   1ce06:	f043 0301 	orr.w	r3, r3, #1
   1ce0a:	606b      	str	r3, [r5, #4]
	/* the end marker chunk */
	set_chunk_size(h, heap_sz, 0);
	set_left_chunk_size(h, heap_sz, heap_sz - chunk0_size);
	set_chunk_used(h, heap_sz, true);

	free_list_add(h, chunk0_size);
   1ce0c:	4651      	mov	r1, sl
   1ce0e:	4620      	mov	r0, r4
   1ce10:	f016 fcb3 	bl	3377a <free_list_add>
}
   1ce14:	e8bd 8ff8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
		((uint16_t *)cmem)[f] = val;
   1ce18:	8063      	strh	r3, [r4, #2]
   1ce1a:	e7c5      	b.n	1cda8 <sys_heap_init+0xe0>
   1ce1c:	2300      	movs	r3, #0
   1ce1e:	8023      	strh	r3, [r4, #0]
   1ce20:	e7c7      	b.n	1cdb2 <sys_heap_init+0xea>
			((uint16_t *)cmem)[SIZE_AND_USED] |= 1U;
   1ce22:	8863      	ldrh	r3, [r4, #2]
   1ce24:	f043 0301 	orr.w	r3, r3, #1
   1ce28:	8063      	strh	r3, [r4, #2]
   1ce2a:	e7c9      	b.n	1cdc0 <sys_heap_init+0xf8>
		((uint16_t *)cmem)[f] = val;
   1ce2c:	805a      	strh	r2, [r3, #2]
   1ce2e:	e7d1      	b.n	1cdd4 <sys_heap_init+0x10c>
   1ce30:	f824 a006 	strh.w	sl, [r4, r6]
   1ce34:	e7d4      	b.n	1cde0 <sys_heap_init+0x118>
   1ce36:	2200      	movs	r2, #0
   1ce38:	806a      	strh	r2, [r5, #2]
   1ce3a:	e7da      	b.n	1cdf2 <sys_heap_init+0x12a>
   1ce3c:	52e0      	strh	r0, [r4, r3]
   1ce3e:	e7dd      	b.n	1cdfc <sys_heap_init+0x134>
			((uint16_t *)cmem)[SIZE_AND_USED] |= 1U;
   1ce40:	886b      	ldrh	r3, [r5, #2]
   1ce42:	f043 0301 	orr.w	r3, r3, #1
   1ce46:	806b      	strh	r3, [r5, #2]
   1ce48:	e7e0      	b.n	1ce0c <sys_heap_init+0x144>
   1ce4a:	bf00      	nop
   1ce4c:	0003bdac 	.word	0x0003bdac
   1ce50:	0003be10 	.word	0x0003be10

0001ce54 <cbvprintf>:

	return (int)count;
}

int cbvprintf(cbprintf_cb out, void *ctx, const char *fp, va_list ap)
{
   1ce54:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
   1ce58:	b093      	sub	sp, #76	; 0x4c
   1ce5a:	4606      	mov	r6, r0
   1ce5c:	460d      	mov	r5, r1
   1ce5e:	4692      	mov	sl, r2
   1ce60:	9303      	str	r3, [sp, #12]
	char buf[CONVERTED_BUFLEN];
	size_t count = 0;
   1ce62:	2400      	movs	r4, #0
		return rc; \
	} \
	count += rc; \
} while (false)

	while (*fp != 0) {
   1ce64:	f89a 0000 	ldrb.w	r0, [sl]
   1ce68:	2800      	cmp	r0, #0
   1ce6a:	f000 84d6 	beq.w	1d81a <cbvprintf+0x9c6>
		if (*fp != '%') {
   1ce6e:	2825      	cmp	r0, #37	; 0x25
   1ce70:	d008      	beq.n	1ce84 <cbvprintf+0x30>
			OUTC(*fp++);
   1ce72:	f10a 0a01 	add.w	sl, sl, #1
   1ce76:	4629      	mov	r1, r5
   1ce78:	47b0      	blx	r6
   1ce7a:	2800      	cmp	r0, #0
   1ce7c:	f2c0 84ce 	blt.w	1d81c <cbvprintf+0x9c8>
   1ce80:	3401      	adds	r4, #1
			continue;
   1ce82:	e7ef      	b.n	1ce64 <cbvprintf+0x10>
		 * mitigate LLVM code generation bug.
		 */
		struct {
			union argument_value value;
			struct conversion conv;
		} state = {
   1ce84:	2300      	movs	r3, #0
   1ce86:	9306      	str	r3, [sp, #24]
   1ce88:	9307      	str	r3, [sp, #28]
   1ce8a:	930b      	str	r3, [sp, #44]	; 0x2c
	*conv = (struct conversion) {
   1ce8c:	9308      	str	r3, [sp, #32]
   1ce8e:	9309      	str	r3, [sp, #36]	; 0x24
   1ce90:	930a      	str	r3, [sp, #40]	; 0x28
	++sp;
   1ce92:	f10a 0801 	add.w	r8, sl, #1
	if (*sp == '%') {
   1ce96:	f89a 3001 	ldrb.w	r3, [sl, #1]
   1ce9a:	2b25      	cmp	r3, #37	; 0x25
   1ce9c:	d001      	beq.n	1cea2 <cbvprintf+0x4e>
	bool loop = true;
   1ce9e:	2701      	movs	r7, #1
   1cea0:	e02c      	b.n	1cefc <cbvprintf+0xa8>
		conv->specifier = *sp++;
   1cea2:	f10a 0802 	add.w	r8, sl, #2
   1cea6:	f88d 3023 	strb.w	r3, [sp, #35]	; 0x23
		return sp;
   1ceaa:	e1a8      	b.n	1d1fe <cbvprintf+0x3aa>
			conv->flag_dash = true;
   1ceac:	f89d 3020 	ldrb.w	r3, [sp, #32]
   1ceb0:	f043 0304 	orr.w	r3, r3, #4
   1ceb4:	f88d 3020 	strb.w	r3, [sp, #32]
		if (loop) {
   1ceb8:	b1ff      	cbz	r7, 1cefa <cbvprintf+0xa6>
			++sp;
   1ceba:	f108 0801 	add.w	r8, r8, #1
   1cebe:	e01c      	b.n	1cefa <cbvprintf+0xa6>
			conv->flag_plus = true;
   1cec0:	f89d 3020 	ldrb.w	r3, [sp, #32]
   1cec4:	f043 0308 	orr.w	r3, r3, #8
   1cec8:	f88d 3020 	strb.w	r3, [sp, #32]
			break;
   1cecc:	e7f4      	b.n	1ceb8 <cbvprintf+0x64>
			conv->flag_space = true;
   1cece:	f89d 3020 	ldrb.w	r3, [sp, #32]
   1ced2:	f043 0310 	orr.w	r3, r3, #16
   1ced6:	f88d 3020 	strb.w	r3, [sp, #32]
			break;
   1ceda:	e7ed      	b.n	1ceb8 <cbvprintf+0x64>
			conv->flag_hash = true;
   1cedc:	f89d 3020 	ldrb.w	r3, [sp, #32]
   1cee0:	f043 0320 	orr.w	r3, r3, #32
   1cee4:	f88d 3020 	strb.w	r3, [sp, #32]
			break;
   1cee8:	e7e6      	b.n	1ceb8 <cbvprintf+0x64>
			conv->flag_zero = true;
   1ceea:	f89d 3020 	ldrb.w	r3, [sp, #32]
   1ceee:	f043 0340 	orr.w	r3, r3, #64	; 0x40
   1cef2:	f88d 3020 	strb.w	r3, [sp, #32]
			break;
   1cef6:	e7df      	b.n	1ceb8 <cbvprintf+0x64>
		switch (*sp) {
   1cef8:	2700      	movs	r7, #0
	} while (loop);
   1cefa:	b34f      	cbz	r7, 1cf50 <cbvprintf+0xfc>
		switch (*sp) {
   1cefc:	f898 3000 	ldrb.w	r3, [r8]
   1cf00:	3b20      	subs	r3, #32
   1cf02:	2b10      	cmp	r3, #16
   1cf04:	d8f8      	bhi.n	1cef8 <cbvprintf+0xa4>
   1cf06:	a201      	add	r2, pc, #4	; (adr r2, 1cf0c <cbvprintf+0xb8>)
   1cf08:	f852 f023 	ldr.w	pc, [r2, r3, lsl #2]
   1cf0c:	0001cecf 	.word	0x0001cecf
   1cf10:	0001cef9 	.word	0x0001cef9
   1cf14:	0001cef9 	.word	0x0001cef9
   1cf18:	0001cedd 	.word	0x0001cedd
   1cf1c:	0001cef9 	.word	0x0001cef9
   1cf20:	0001cef9 	.word	0x0001cef9
   1cf24:	0001cef9 	.word	0x0001cef9
   1cf28:	0001cef9 	.word	0x0001cef9
   1cf2c:	0001cef9 	.word	0x0001cef9
   1cf30:	0001cef9 	.word	0x0001cef9
   1cf34:	0001cef9 	.word	0x0001cef9
   1cf38:	0001cec1 	.word	0x0001cec1
   1cf3c:	0001cef9 	.word	0x0001cef9
   1cf40:	0001cead 	.word	0x0001cead
   1cf44:	0001cef9 	.word	0x0001cef9
   1cf48:	0001cef9 	.word	0x0001cef9
   1cf4c:	0001ceeb 	.word	0x0001ceeb
	if (conv->flag_zero && conv->flag_dash) {
   1cf50:	f89d 3020 	ldrb.w	r3, [sp, #32]
   1cf54:	f003 0344 	and.w	r3, r3, #68	; 0x44
   1cf58:	2b44      	cmp	r3, #68	; 0x44
   1cf5a:	d06d      	beq.n	1d038 <cbvprintf+0x1e4>
	sp = extract_width(conv, sp);
   1cf5c:	f8cd 8014 	str.w	r8, [sp, #20]
	conv->width_present = true;
   1cf60:	f89d 3020 	ldrb.w	r3, [sp, #32]
   1cf64:	f043 0380 	orr.w	r3, r3, #128	; 0x80
   1cf68:	f88d 3020 	strb.w	r3, [sp, #32]
	if (*sp == '*') {
   1cf6c:	f898 3000 	ldrb.w	r3, [r8]
   1cf70:	2b2a      	cmp	r3, #42	; 0x2a
   1cf72:	d068      	beq.n	1d046 <cbvprintf+0x1f2>
	size_t width = extract_decimal(&sp);
   1cf74:	a805      	add	r0, sp, #20
   1cf76:	f016 fd1a 	bl	339ae <extract_decimal>
	if (sp != wp) {
   1cf7a:	9b05      	ldr	r3, [sp, #20]
   1cf7c:	4598      	cmp	r8, r3
   1cf7e:	d012      	beq.n	1cfa6 <cbvprintf+0x152>
		conv->width_present = true;
   1cf80:	f89d 3020 	ldrb.w	r3, [sp, #32]
   1cf84:	f043 0380 	orr.w	r3, r3, #128	; 0x80
   1cf88:	f88d 3020 	strb.w	r3, [sp, #32]
		conv->width_value = width;
   1cf8c:	9009      	str	r0, [sp, #36]	; 0x24
		conv->unsupported |= ((conv->width_value < 0)
   1cf8e:	f3c3 0340 	ubfx	r3, r3, #1, #1
				      || (width != (size_t)conv->width_value));
   1cf92:	2800      	cmp	r0, #0
   1cf94:	db60      	blt.n	1d058 <cbvprintf+0x204>
   1cf96:	2200      	movs	r2, #0
		conv->unsupported |= ((conv->width_value < 0)
   1cf98:	4313      	orrs	r3, r2
   1cf9a:	f89d 2020 	ldrb.w	r2, [sp, #32]
   1cf9e:	f363 0241 	bfi	r2, r3, #1, #1
   1cfa2:	f88d 2020 	strb.w	r2, [sp, #32]
	return sp;
   1cfa6:	9b05      	ldr	r3, [sp, #20]
	sp = extract_prec(conv, sp);
   1cfa8:	9305      	str	r3, [sp, #20]
	conv->prec_present = (*sp == '.');
   1cfaa:	781b      	ldrb	r3, [r3, #0]
   1cfac:	2b2e      	cmp	r3, #46	; 0x2e
   1cfae:	bf14      	ite	ne
   1cfb0:	2300      	movne	r3, #0
   1cfb2:	2301      	moveq	r3, #1
   1cfb4:	f89d 2021 	ldrb.w	r2, [sp, #33]	; 0x21
   1cfb8:	f363 0241 	bfi	r2, r3, #1, #1
   1cfbc:	f88d 2021 	strb.w	r2, [sp, #33]	; 0x21
	if (!conv->prec_present) {
   1cfc0:	2b00      	cmp	r3, #0
   1cfc2:	d04b      	beq.n	1d05c <cbvprintf+0x208>
	++sp;
   1cfc4:	9b05      	ldr	r3, [sp, #20]
   1cfc6:	1c5a      	adds	r2, r3, #1
   1cfc8:	9205      	str	r2, [sp, #20]
	if (*sp == '*') {
   1cfca:	785b      	ldrb	r3, [r3, #1]
   1cfcc:	2b2a      	cmp	r3, #42	; 0x2a
   1cfce:	d048      	beq.n	1d062 <cbvprintf+0x20e>
	size_t prec = extract_decimal(&sp);
   1cfd0:	a805      	add	r0, sp, #20
   1cfd2:	f016 fcec 	bl	339ae <extract_decimal>
	conv->prec_value = prec;
   1cfd6:	900a      	str	r0, [sp, #40]	; 0x28
	conv->unsupported |= ((conv->prec_value < 0)
   1cfd8:	f89d 3020 	ldrb.w	r3, [sp, #32]
   1cfdc:	f3c3 0340 	ubfx	r3, r3, #1, #1
			      || (prec != (size_t)conv->prec_value));
   1cfe0:	2800      	cmp	r0, #0
   1cfe2:	db47      	blt.n	1d074 <cbvprintf+0x220>
   1cfe4:	2200      	movs	r2, #0
	conv->unsupported |= ((conv->prec_value < 0)
   1cfe6:	4313      	orrs	r3, r2
   1cfe8:	f89d 2020 	ldrb.w	r2, [sp, #32]
   1cfec:	f363 0241 	bfi	r2, r3, #1, #1
   1cff0:	f88d 2020 	strb.w	r2, [sp, #32]
	return sp;
   1cff4:	f8dd 8014 	ldr.w	r8, [sp, #20]
	switch (*sp) {
   1cff8:	f898 3000 	ldrb.w	r3, [r8]
   1cffc:	3b4c      	subs	r3, #76	; 0x4c
   1cffe:	2b2e      	cmp	r3, #46	; 0x2e
   1d000:	f200 80dc 	bhi.w	1d1bc <cbvprintf+0x368>
   1d004:	e8df f003 	tbb	[pc, r3]
   1d008:	dadadaca 	.word	0xdadadaca
   1d00c:	dadadada 	.word	0xdadadada
   1d010:	dadadada 	.word	0xdadadada
   1d014:	dadadada 	.word	0xdadadada
   1d018:	dadadada 	.word	0xdadadada
   1d01c:	dadadada 	.word	0xdadadada
   1d020:	dadadada 	.word	0xdadadada
   1d024:	da6ada38 	.word	0xda6ada38
   1d028:	dadada51 	.word	0xdadada51
   1d02c:	dadadada 	.word	0xdadadada
   1d030:	dadadac0 	.word	0xdadadac0
   1d034:	dada      	.short	0xdada
   1d036:	b6          	.byte	0xb6
   1d037:	00          	.byte	0x00
		conv->flag_zero = false;
   1d038:	f89d 3020 	ldrb.w	r3, [sp, #32]
   1d03c:	f36f 1386 	bfc	r3, #6, #1
   1d040:	f88d 3020 	strb.w	r3, [sp, #32]
   1d044:	e78a      	b.n	1cf5c <cbvprintf+0x108>
		conv->width_star = true;
   1d046:	f89d 3021 	ldrb.w	r3, [sp, #33]	; 0x21
   1d04a:	f043 0301 	orr.w	r3, r3, #1
   1d04e:	f88d 3021 	strb.w	r3, [sp, #33]	; 0x21
		return ++sp;
   1d052:	4643      	mov	r3, r8
   1d054:	3301      	adds	r3, #1
   1d056:	e7a7      	b.n	1cfa8 <cbvprintf+0x154>
				      || (width != (size_t)conv->width_value));
   1d058:	2201      	movs	r2, #1
   1d05a:	e79d      	b.n	1cf98 <cbvprintf+0x144>
		return sp;
   1d05c:	f8dd 8014 	ldr.w	r8, [sp, #20]
   1d060:	e7ca      	b.n	1cff8 <cbvprintf+0x1a4>
		conv->prec_star = true;
   1d062:	f89d 3021 	ldrb.w	r3, [sp, #33]	; 0x21
   1d066:	f043 0304 	orr.w	r3, r3, #4
   1d06a:	f88d 3021 	strb.w	r3, [sp, #33]	; 0x21
		return ++sp;
   1d06e:	f102 0801 	add.w	r8, r2, #1
   1d072:	e7c1      	b.n	1cff8 <cbvprintf+0x1a4>
			      || (prec != (size_t)conv->prec_value));
   1d074:	2201      	movs	r2, #1
   1d076:	e7b6      	b.n	1cfe6 <cbvprintf+0x192>
		if (*++sp == 'h') {
   1d078:	f108 0201 	add.w	r2, r8, #1
   1d07c:	f898 3001 	ldrb.w	r3, [r8, #1]
   1d080:	2b68      	cmp	r3, #104	; 0x68
   1d082:	d008      	beq.n	1d096 <cbvprintf+0x242>
			conv->length_mod = LENGTH_H;
   1d084:	f89d 3021 	ldrb.w	r3, [sp, #33]	; 0x21
   1d088:	2102      	movs	r1, #2
   1d08a:	f361 03c6 	bfi	r3, r1, #3, #4
   1d08e:	f88d 3021 	strb.w	r3, [sp, #33]	; 0x21
		if (*++sp == 'h') {
   1d092:	4690      	mov	r8, r2
   1d094:	e02b      	b.n	1d0ee <cbvprintf+0x29a>
			conv->length_mod = LENGTH_HH;
   1d096:	f89d 3021 	ldrb.w	r3, [sp, #33]	; 0x21
   1d09a:	2201      	movs	r2, #1
   1d09c:	f362 03c6 	bfi	r3, r2, #3, #4
   1d0a0:	f88d 3021 	strb.w	r3, [sp, #33]	; 0x21
			++sp;
   1d0a4:	f108 0802 	add.w	r8, r8, #2
   1d0a8:	e021      	b.n	1d0ee <cbvprintf+0x29a>
		if (*++sp == 'l') {
   1d0aa:	f108 0201 	add.w	r2, r8, #1
   1d0ae:	f898 3001 	ldrb.w	r3, [r8, #1]
   1d0b2:	2b6c      	cmp	r3, #108	; 0x6c
   1d0b4:	d008      	beq.n	1d0c8 <cbvprintf+0x274>
			conv->length_mod = LENGTH_L;
   1d0b6:	f89d 3021 	ldrb.w	r3, [sp, #33]	; 0x21
   1d0ba:	2103      	movs	r1, #3
   1d0bc:	f361 03c6 	bfi	r3, r1, #3, #4
   1d0c0:	f88d 3021 	strb.w	r3, [sp, #33]	; 0x21
		if (*++sp == 'l') {
   1d0c4:	4690      	mov	r8, r2
   1d0c6:	e012      	b.n	1d0ee <cbvprintf+0x29a>
			conv->length_mod = LENGTH_LL;
   1d0c8:	f89d 3021 	ldrb.w	r3, [sp, #33]	; 0x21
   1d0cc:	2204      	movs	r2, #4
   1d0ce:	f362 03c6 	bfi	r3, r2, #3, #4
   1d0d2:	f88d 3021 	strb.w	r3, [sp, #33]	; 0x21
			++sp;
   1d0d6:	f108 0802 	add.w	r8, r8, #2
   1d0da:	e008      	b.n	1d0ee <cbvprintf+0x29a>
		conv->length_mod = LENGTH_J;
   1d0dc:	f89d 3021 	ldrb.w	r3, [sp, #33]	; 0x21
   1d0e0:	2205      	movs	r2, #5
   1d0e2:	f362 03c6 	bfi	r3, r2, #3, #4
   1d0e6:	f88d 3021 	strb.w	r3, [sp, #33]	; 0x21
		++sp;
   1d0ea:	f108 0801 	add.w	r8, r8, #1
	conv->specifier = *sp++;
   1d0ee:	f818 3b01 	ldrb.w	r3, [r8], #1
   1d0f2:	f88d 3023 	strb.w	r3, [sp, #35]	; 0x23
	switch (conv->specifier) {
   1d0f6:	f1a3 0241 	sub.w	r2, r3, #65	; 0x41
   1d0fa:	2a37      	cmp	r2, #55	; 0x37
   1d0fc:	f200 8150 	bhi.w	1d3a0 <cbvprintf+0x54c>
   1d100:	e8df f012 	tbh	[pc, r2, lsl #1]
   1d104:	014e0126 	.word	0x014e0126
   1d108:	014e014e 	.word	0x014e014e
   1d10c:	01260126 	.word	0x01260126
   1d110:	014e0126 	.word	0x014e0126
   1d114:	014e014e 	.word	0x014e014e
   1d118:	014e014e 	.word	0x014e014e
   1d11c:	014e014e 	.word	0x014e014e
   1d120:	014e014e 	.word	0x014e014e
   1d124:	014e014e 	.word	0x014e014e
   1d128:	014e014e 	.word	0x014e014e
   1d12c:	014e014e 	.word	0x014e014e
   1d130:	0113014e 	.word	0x0113014e
   1d134:	014e014e 	.word	0x014e014e
   1d138:	014e014e 	.word	0x014e014e
   1d13c:	014e014e 	.word	0x014e014e
   1d140:	014e014e 	.word	0x014e014e
   1d144:	014e0126 	.word	0x014e0126
   1d148:	00630113 	.word	0x00630113
   1d14c:	01260126 	.word	0x01260126
   1d150:	014e0126 	.word	0x014e0126
   1d154:	014e0063 	.word	0x014e0063
   1d158:	014e014e 	.word	0x014e014e
   1d15c:	012f014e 	.word	0x012f014e
   1d160:	013f0113 	.word	0x013f0113
   1d164:	014e014e 	.word	0x014e014e
   1d168:	014e013f 	.word	0x014e013f
   1d16c:	014e0113 	.word	0x014e0113
   1d170:	0113014e 	.word	0x0113014e
		conv->length_mod = LENGTH_Z;
   1d174:	f89d 3021 	ldrb.w	r3, [sp, #33]	; 0x21
   1d178:	2206      	movs	r2, #6
   1d17a:	f362 03c6 	bfi	r3, r2, #3, #4
   1d17e:	f88d 3021 	strb.w	r3, [sp, #33]	; 0x21
		++sp;
   1d182:	f108 0801 	add.w	r8, r8, #1
		break;
   1d186:	e7b2      	b.n	1d0ee <cbvprintf+0x29a>
		conv->length_mod = LENGTH_T;
   1d188:	f89d 3021 	ldrb.w	r3, [sp, #33]	; 0x21
   1d18c:	2207      	movs	r2, #7
   1d18e:	f362 03c6 	bfi	r3, r2, #3, #4
   1d192:	f88d 3021 	strb.w	r3, [sp, #33]	; 0x21
		++sp;
   1d196:	f108 0801 	add.w	r8, r8, #1
		break;
   1d19a:	e7a8      	b.n	1d0ee <cbvprintf+0x29a>
		conv->length_mod = LENGTH_UPPER_L;
   1d19c:	f89d 3021 	ldrb.w	r3, [sp, #33]	; 0x21
   1d1a0:	2208      	movs	r2, #8
   1d1a2:	f362 03c6 	bfi	r3, r2, #3, #4
   1d1a6:	f88d 3021 	strb.w	r3, [sp, #33]	; 0x21
		++sp;
   1d1aa:	f108 0801 	add.w	r8, r8, #1
		conv->unsupported = true;
   1d1ae:	f89d 3020 	ldrb.w	r3, [sp, #32]
   1d1b2:	f043 0302 	orr.w	r3, r3, #2
   1d1b6:	f88d 3020 	strb.w	r3, [sp, #32]
		break;
   1d1ba:	e798      	b.n	1d0ee <cbvprintf+0x29a>
		conv->length_mod = LENGTH_NONE;
   1d1bc:	f89d 3021 	ldrb.w	r3, [sp, #33]	; 0x21
   1d1c0:	f36f 03c6 	bfc	r3, #3, #4
   1d1c4:	f88d 3021 	strb.w	r3, [sp, #33]	; 0x21
		break;
   1d1c8:	e791      	b.n	1d0ee <cbvprintf+0x29a>
		conv->specifier_cat = SPECIFIER_SINT;
   1d1ca:	f89d 2022 	ldrb.w	r2, [sp, #34]	; 0x22
   1d1ce:	2101      	movs	r1, #1
   1d1d0:	f361 0202 	bfi	r2, r1, #0, #3
   1d1d4:	f88d 2022 	strb.w	r2, [sp, #34]	; 0x22
		if (conv->length_mod == LENGTH_UPPER_L) {
   1d1d8:	f89d 2021 	ldrb.w	r2, [sp, #33]	; 0x21
   1d1dc:	f002 0278 	and.w	r2, r2, #120	; 0x78
   1d1e0:	2a40      	cmp	r2, #64	; 0x40
   1d1e2:	f000 80aa 	beq.w	1d33a <cbvprintf+0x4e6>
		if (conv->specifier == 'c') {
   1d1e6:	2b63      	cmp	r3, #99	; 0x63
   1d1e8:	f000 80ae 	beq.w	1d348 <cbvprintf+0x4f4>
	conv->unsupported |= unsupported;
   1d1ec:	f89d 3020 	ldrb.w	r3, [sp, #32]
   1d1f0:	f3c3 0240 	ubfx	r2, r3, #1, #1
   1d1f4:	4317      	orrs	r7, r2
   1d1f6:	f367 0341 	bfi	r3, r7, #1, #1
   1d1fa:	f88d 3020 	strb.w	r3, [sp, #32]
		fp = extract_conversion(conv, sp);

		/* If dynamic width is specified, process it,
		 * otherwise set width if present.
		 */
		if (conv->width_star) {
   1d1fe:	f89d 3021 	ldrb.w	r3, [sp, #33]	; 0x21
   1d202:	f013 0f01 	tst.w	r3, #1
   1d206:	f000 80da 	beq.w	1d3be <cbvprintf+0x56a>
			width = va_arg(ap, int);
   1d20a:	9b03      	ldr	r3, [sp, #12]
   1d20c:	1d1a      	adds	r2, r3, #4
   1d20e:	9203      	str	r2, [sp, #12]
   1d210:	681f      	ldr	r7, [r3, #0]

			if (width < 0) {
   1d212:	2f00      	cmp	r7, #0
   1d214:	f2c0 80cb 	blt.w	1d3ae <cbvprintf+0x55a>

		/* If dynamic precision is specified, process it, otherwise
		 * set precision if present.  For floating point where
		 * precision is not present use 6.
		 */
		if (conv->prec_star) {
   1d218:	f89d 3021 	ldrb.w	r3, [sp, #33]	; 0x21
   1d21c:	f013 0f04 	tst.w	r3, #4
   1d220:	f000 80df 	beq.w	1d3e2 <cbvprintf+0x58e>
			int arg = va_arg(ap, int);
   1d224:	9b03      	ldr	r3, [sp, #12]
   1d226:	1d1a      	adds	r2, r3, #4
   1d228:	9203      	str	r2, [sp, #12]
   1d22a:	f8d3 b000 	ldr.w	fp, [r3]

			if (arg < 0) {
   1d22e:	f1bb 0f00 	cmp.w	fp, #0
   1d232:	f2c0 80cd 	blt.w	1d3d0 <cbvprintf+0x57c>
		}

		/* Reuse width and precision memory in conv for value
		 * padding counts.
		 */
		conv->pad0_value = 0;
   1d236:	2300      	movs	r3, #0
   1d238:	9309      	str	r3, [sp, #36]	; 0x24
		conv->pad0_pre_exp = 0;
   1d23a:	930a      	str	r3, [sp, #40]	; 0x28
		 * This can't be extracted to a helper function because
		 * passing a pointer to va_list doesn't work on x86_64.  See
		 * https://stackoverflow.com/a/8048892.
		 */
		enum specifier_cat_enum specifier_cat
			= (enum specifier_cat_enum)conv->specifier_cat;
   1d23c:	f89d 3022 	ldrb.w	r3, [sp, #34]	; 0x22
   1d240:	f003 0307 	and.w	r3, r3, #7
		enum length_mod_enum length_mod
			= (enum length_mod_enum)conv->length_mod;
   1d244:	f89d 1021 	ldrb.w	r1, [sp, #33]	; 0x21
   1d248:	f3c1 01c3 	ubfx	r1, r1, #3, #4
		/* Extract the value based on the argument category and length.
		 *
		 * Note that the length modifier doesn't affect the value of a
		 * pointer argument.
		 */
		if (specifier_cat == SPECIFIER_SINT) {
   1d24c:	2b01      	cmp	r3, #1
   1d24e:	f000 80d1 	beq.w	1d3f4 <cbvprintf+0x5a0>
			if (length_mod == LENGTH_HH) {
				value->sint = (char)value->sint;
			} else if (length_mod == LENGTH_H) {
				value->sint = (short)value->sint;
			}
		} else if (specifier_cat == SPECIFIER_UINT) {
   1d252:	2b02      	cmp	r3, #2
   1d254:	f000 8116 	beq.w	1d484 <cbvprintf+0x630>
			if (length_mod == LENGTH_HH) {
				value->uint = (unsigned char)value->uint;
			} else if (length_mod == LENGTH_H) {
				value->uint = (unsigned short)value->uint;
			}
		} else if (specifier_cat == SPECIFIER_FP) {
   1d258:	2b04      	cmp	r3, #4
   1d25a:	f000 8167 	beq.w	1d52c <cbvprintf+0x6d8>
			if (length_mod == LENGTH_UPPER_L) {
				value->ldbl = va_arg(ap, long double);
			} else {
				value->dbl = va_arg(ap, double);
			}
		} else if (specifier_cat == SPECIFIER_PTR) {
   1d25e:	2b03      	cmp	r3, #3
   1d260:	f000 817e 	beq.w	1d560 <cbvprintf+0x70c>
		/* We've now consumed all arguments related to this
		 * specification.  If the conversion is invalid, or is
		 * something we don't support, then output the original
		 * specification and move on.
		 */
		if (conv->invalid || conv->unsupported) {
   1d264:	f89d 9020 	ldrb.w	r9, [sp, #32]
   1d268:	f019 0303 	ands.w	r3, r9, #3
   1d26c:	9302      	str	r3, [sp, #8]
   1d26e:	f040 817d 	bne.w	1d56c <cbvprintf+0x718>
		}

		/* Do formatting, either into the buffer or
		 * referencing external data.
		 */
		switch (conv->specifier) {
   1d272:	f89d 3023 	ldrb.w	r3, [sp, #35]	; 0x23
   1d276:	3b25      	subs	r3, #37	; 0x25
   1d278:	2b53      	cmp	r3, #83	; 0x53
   1d27a:	f200 8233 	bhi.w	1d6e4 <cbvprintf+0x890>
   1d27e:	e8df f013 	tbh	[pc, r3, lsl #1]
   1d282:	0181      	.short	0x0181
   1d284:	02310231 	.word	0x02310231
   1d288:	02310231 	.word	0x02310231
   1d28c:	02310231 	.word	0x02310231
   1d290:	02310231 	.word	0x02310231
   1d294:	02310231 	.word	0x02310231
   1d298:	02310231 	.word	0x02310231
   1d29c:	02310231 	.word	0x02310231
   1d2a0:	02310231 	.word	0x02310231
   1d2a4:	02310231 	.word	0x02310231
   1d2a8:	02310231 	.word	0x02310231
   1d2ac:	02310231 	.word	0x02310231
   1d2b0:	02310231 	.word	0x02310231
   1d2b4:	02310231 	.word	0x02310231
   1d2b8:	02310231 	.word	0x02310231
   1d2bc:	02310231 	.word	0x02310231
   1d2c0:	02310231 	.word	0x02310231
   1d2c4:	02310231 	.word	0x02310231
   1d2c8:	02310231 	.word	0x02310231
   1d2cc:	02310231 	.word	0x02310231
   1d2d0:	02310231 	.word	0x02310231
   1d2d4:	02310231 	.word	0x02310231
   1d2d8:	02310231 	.word	0x02310231
   1d2dc:	02310231 	.word	0x02310231
   1d2e0:	02310231 	.word	0x02310231
   1d2e4:	02310231 	.word	0x02310231
   1d2e8:	023101c7 	.word	0x023101c7
   1d2ec:	02310231 	.word	0x02310231
   1d2f0:	02310231 	.word	0x02310231
   1d2f4:	02310231 	.word	0x02310231
   1d2f8:	02310231 	.word	0x02310231
   1d2fc:	01a10231 	.word	0x01a10231
   1d300:	023101ab 	.word	0x023101ab
   1d304:	02310231 	.word	0x02310231
   1d308:	01ab0231 	.word	0x01ab0231
   1d30c:	02310231 	.word	0x02310231
   1d310:	02310231 	.word	0x02310231
   1d314:	01c70208 	.word	0x01c70208
   1d318:	023101ea 	.word	0x023101ea
   1d31c:	018f0231 	.word	0x018f0231
   1d320:	01c70231 	.word	0x01c70231
   1d324:	02310231 	.word	0x02310231
   1d328:	01c7      	.short	0x01c7
		conv->specifier_cat = SPECIFIER_UINT;
   1d32a:	f89d 2022 	ldrb.w	r2, [sp, #34]	; 0x22
   1d32e:	2102      	movs	r1, #2
   1d330:	f361 0202 	bfi	r2, r1, #0, #3
   1d334:	f88d 2022 	strb.w	r2, [sp, #34]	; 0x22
   1d338:	e74e      	b.n	1d1d8 <cbvprintf+0x384>
			conv->invalid = true;
   1d33a:	f89d 1020 	ldrb.w	r1, [sp, #32]
   1d33e:	f041 0101 	orr.w	r1, r1, #1
   1d342:	f88d 1020 	strb.w	r1, [sp, #32]
   1d346:	e74e      	b.n	1d1e6 <cbvprintf+0x392>
			unsupported = (conv->length_mod != LENGTH_NONE);
   1d348:	1e17      	subs	r7, r2, #0
   1d34a:	bf18      	it	ne
   1d34c:	2701      	movne	r7, #1
   1d34e:	e74d      	b.n	1d1ec <cbvprintf+0x398>
		conv->specifier_cat = SPECIFIER_FP;
   1d350:	f89d 3022 	ldrb.w	r3, [sp, #34]	; 0x22
   1d354:	2204      	movs	r2, #4
   1d356:	f362 0302 	bfi	r3, r2, #0, #3
   1d35a:	f88d 3022 	strb.w	r3, [sp, #34]	; 0x22
			unsupported = true;
   1d35e:	2701      	movs	r7, #1
			break;
   1d360:	e744      	b.n	1d1ec <cbvprintf+0x398>
		conv->specifier_cat = SPECIFIER_PTR;
   1d362:	f89d 3022 	ldrb.w	r3, [sp, #34]	; 0x22
   1d366:	2203      	movs	r2, #3
   1d368:	f362 0302 	bfi	r3, r2, #0, #3
   1d36c:	f88d 3022 	strb.w	r3, [sp, #34]	; 0x22
		if (conv->length_mod == LENGTH_UPPER_L) {
   1d370:	f89d 3021 	ldrb.w	r3, [sp, #33]	; 0x21
   1d374:	f003 0378 	and.w	r3, r3, #120	; 0x78
   1d378:	2b40      	cmp	r3, #64	; 0x40
   1d37a:	f47f af37 	bne.w	1d1ec <cbvprintf+0x398>
			unsupported = true;
   1d37e:	2701      	movs	r7, #1
   1d380:	e734      	b.n	1d1ec <cbvprintf+0x398>
		conv->specifier_cat = SPECIFIER_PTR;
   1d382:	f89d 3022 	ldrb.w	r3, [sp, #34]	; 0x22
   1d386:	2203      	movs	r2, #3
   1d388:	f362 0302 	bfi	r3, r2, #0, #3
   1d38c:	f88d 3022 	strb.w	r3, [sp, #34]	; 0x22
		if (conv->length_mod != LENGTH_NONE) {
   1d390:	f89d 3021 	ldrb.w	r3, [sp, #33]	; 0x21
   1d394:	f013 0f78 	tst.w	r3, #120	; 0x78
   1d398:	f43f af28 	beq.w	1d1ec <cbvprintf+0x398>
			unsupported = true;
   1d39c:	2701      	movs	r7, #1
   1d39e:	e725      	b.n	1d1ec <cbvprintf+0x398>
		conv->invalid = true;
   1d3a0:	f89d 3020 	ldrb.w	r3, [sp, #32]
   1d3a4:	f043 0301 	orr.w	r3, r3, #1
   1d3a8:	f88d 3020 	strb.w	r3, [sp, #32]
		break;
   1d3ac:	e71e      	b.n	1d1ec <cbvprintf+0x398>
				conv->flag_dash = true;
   1d3ae:	f89d 3020 	ldrb.w	r3, [sp, #32]
   1d3b2:	f043 0304 	orr.w	r3, r3, #4
   1d3b6:	f88d 3020 	strb.w	r3, [sp, #32]
				width = -width;
   1d3ba:	427f      	negs	r7, r7
   1d3bc:	e72c      	b.n	1d218 <cbvprintf+0x3c4>
		} else if (conv->width_present) {
   1d3be:	f99d 3020 	ldrsb.w	r3, [sp, #32]
   1d3c2:	2b00      	cmp	r3, #0
   1d3c4:	db02      	blt.n	1d3cc <cbvprintf+0x578>
		int width = -1;
   1d3c6:	f04f 37ff 	mov.w	r7, #4294967295
   1d3ca:	e725      	b.n	1d218 <cbvprintf+0x3c4>
			width = conv->width_value;
   1d3cc:	9f09      	ldr	r7, [sp, #36]	; 0x24
   1d3ce:	e723      	b.n	1d218 <cbvprintf+0x3c4>
				conv->prec_present = false;
   1d3d0:	f89d 3021 	ldrb.w	r3, [sp, #33]	; 0x21
   1d3d4:	f36f 0341 	bfc	r3, #1, #1
   1d3d8:	f88d 3021 	strb.w	r3, [sp, #33]	; 0x21
		int precision = -1;
   1d3dc:	f04f 3bff 	mov.w	fp, #4294967295
   1d3e0:	e729      	b.n	1d236 <cbvprintf+0x3e2>
		} else if (conv->prec_present) {
   1d3e2:	f013 0f02 	tst.w	r3, #2
   1d3e6:	d002      	beq.n	1d3ee <cbvprintf+0x59a>
			precision = conv->prec_value;
   1d3e8:	f8dd b028 	ldr.w	fp, [sp, #40]	; 0x28
   1d3ec:	e723      	b.n	1d236 <cbvprintf+0x3e2>
		int precision = -1;
   1d3ee:	f04f 3bff 	mov.w	fp, #4294967295
   1d3f2:	e720      	b.n	1d236 <cbvprintf+0x3e2>
			switch (length_mod) {
   1d3f4:	1ecb      	subs	r3, r1, #3
   1d3f6:	2b04      	cmp	r3, #4
   1d3f8:	d804      	bhi.n	1d404 <cbvprintf+0x5b0>
   1d3fa:	e8df f003 	tbb	[pc, r3]
   1d3fe:	1d0b      	.short	0x1d0b
   1d400:	3529      	.short	0x3529
   1d402:	35          	.byte	0x35
   1d403:	00          	.byte	0x00
				value->sint = va_arg(ap, int);
   1d404:	9b03      	ldr	r3, [sp, #12]
   1d406:	1d1a      	adds	r2, r3, #4
   1d408:	9203      	str	r2, [sp, #12]
   1d40a:	681a      	ldr	r2, [r3, #0]
   1d40c:	17d3      	asrs	r3, r2, #31
   1d40e:	e9cd 2306 	strd	r2, r3, [sp, #24]
				break;
   1d412:	e006      	b.n	1d422 <cbvprintf+0x5ce>
					value->sint = va_arg(ap, long);
   1d414:	9b03      	ldr	r3, [sp, #12]
   1d416:	1d1a      	adds	r2, r3, #4
   1d418:	9203      	str	r2, [sp, #12]
   1d41a:	681a      	ldr	r2, [r3, #0]
   1d41c:	17d3      	asrs	r3, r2, #31
   1d41e:	e9cd 2306 	strd	r2, r3, [sp, #24]
			if (length_mod == LENGTH_HH) {
   1d422:	2901      	cmp	r1, #1
   1d424:	d028      	beq.n	1d478 <cbvprintf+0x624>
			} else if (length_mod == LENGTH_H) {
   1d426:	2902      	cmp	r1, #2
   1d428:	f47f af1c 	bne.w	1d264 <cbvprintf+0x410>
				value->sint = (short)value->sint;
   1d42c:	f9bd 2018 	ldrsh.w	r2, [sp, #24]
   1d430:	17d3      	asrs	r3, r2, #31
   1d432:	e9cd 2306 	strd	r2, r3, [sp, #24]
   1d436:	e715      	b.n	1d264 <cbvprintf+0x410>
					(sint_value_type)va_arg(ap, long long);
   1d438:	9b03      	ldr	r3, [sp, #12]
   1d43a:	3307      	adds	r3, #7
   1d43c:	f023 0307 	bic.w	r3, r3, #7
   1d440:	f103 0208 	add.w	r2, r3, #8
   1d444:	9203      	str	r2, [sp, #12]
   1d446:	e9d3 2300 	ldrd	r2, r3, [r3]
				value->sint =
   1d44a:	e9cd 2306 	strd	r2, r3, [sp, #24]
				break;
   1d44e:	e7e8      	b.n	1d422 <cbvprintf+0x5ce>
					(sint_value_type)va_arg(ap, intmax_t);
   1d450:	9b03      	ldr	r3, [sp, #12]
   1d452:	3307      	adds	r3, #7
   1d454:	f023 0307 	bic.w	r3, r3, #7
   1d458:	f103 0208 	add.w	r2, r3, #8
   1d45c:	9203      	str	r2, [sp, #12]
   1d45e:	e9d3 2300 	ldrd	r2, r3, [r3]
				value->sint =
   1d462:	e9cd 2306 	strd	r2, r3, [sp, #24]
				break;
   1d466:	e7dc      	b.n	1d422 <cbvprintf+0x5ce>
					(sint_value_type)va_arg(ap, ptrdiff_t);
   1d468:	9b03      	ldr	r3, [sp, #12]
   1d46a:	1d1a      	adds	r2, r3, #4
   1d46c:	9203      	str	r2, [sp, #12]
   1d46e:	681a      	ldr	r2, [r3, #0]
   1d470:	17d3      	asrs	r3, r2, #31
				value->sint =
   1d472:	e9cd 2306 	strd	r2, r3, [sp, #24]
				break;
   1d476:	e7d4      	b.n	1d422 <cbvprintf+0x5ce>
				value->sint = (char)value->sint;
   1d478:	f89d 3018 	ldrb.w	r3, [sp, #24]
   1d47c:	9306      	str	r3, [sp, #24]
   1d47e:	2300      	movs	r3, #0
   1d480:	9307      	str	r3, [sp, #28]
   1d482:	e6ef      	b.n	1d264 <cbvprintf+0x410>
			switch (length_mod) {
   1d484:	1ecb      	subs	r3, r1, #3
   1d486:	2b04      	cmp	r3, #4
   1d488:	d804      	bhi.n	1d494 <cbvprintf+0x640>
   1d48a:	e8df f003 	tbb	[pc, r3]
   1d48e:	1f0b      	.short	0x1f0b
   1d490:	4135      	.short	0x4135
   1d492:	41          	.byte	0x41
   1d493:	00          	.byte	0x00
				value->uint = va_arg(ap, unsigned int);
   1d494:	9b03      	ldr	r3, [sp, #12]
   1d496:	1d1a      	adds	r2, r3, #4
   1d498:	9203      	str	r2, [sp, #12]
   1d49a:	681b      	ldr	r3, [r3, #0]
   1d49c:	9306      	str	r3, [sp, #24]
   1d49e:	2300      	movs	r3, #0
   1d4a0:	9307      	str	r3, [sp, #28]
				break;
   1d4a2:	e01e      	b.n	1d4e2 <cbvprintf+0x68e>
				    && (conv->specifier == 'c')) {
   1d4a4:	f89d 3023 	ldrb.w	r3, [sp, #35]	; 0x23
				if ((!WCHAR_IS_SIGNED)
   1d4a8:	2b63      	cmp	r3, #99	; 0x63
   1d4aa:	d007      	beq.n	1d4bc <cbvprintf+0x668>
					value->uint = va_arg(ap, unsigned long);
   1d4ac:	9b03      	ldr	r3, [sp, #12]
   1d4ae:	1d1a      	adds	r2, r3, #4
   1d4b0:	9203      	str	r2, [sp, #12]
   1d4b2:	681b      	ldr	r3, [r3, #0]
   1d4b4:	9306      	str	r3, [sp, #24]
   1d4b6:	2300      	movs	r3, #0
   1d4b8:	9307      	str	r3, [sp, #28]
   1d4ba:	e012      	b.n	1d4e2 <cbvprintf+0x68e>
					value->uint = (wchar_t)va_arg(ap,
   1d4bc:	9b03      	ldr	r3, [sp, #12]
   1d4be:	1d1a      	adds	r2, r3, #4
   1d4c0:	9203      	str	r2, [sp, #12]
   1d4c2:	681b      	ldr	r3, [r3, #0]
   1d4c4:	9306      	str	r3, [sp, #24]
   1d4c6:	2300      	movs	r3, #0
   1d4c8:	9307      	str	r3, [sp, #28]
   1d4ca:	e00a      	b.n	1d4e2 <cbvprintf+0x68e>
					(uint_value_type)va_arg(ap,
   1d4cc:	9b03      	ldr	r3, [sp, #12]
   1d4ce:	3307      	adds	r3, #7
   1d4d0:	f023 0307 	bic.w	r3, r3, #7
   1d4d4:	f103 0208 	add.w	r2, r3, #8
   1d4d8:	9203      	str	r2, [sp, #12]
   1d4da:	e9d3 2300 	ldrd	r2, r3, [r3]
				value->uint =
   1d4de:	e9cd 2306 	strd	r2, r3, [sp, #24]
			if (length_mod == LENGTH_HH) {
   1d4e2:	2901      	cmp	r1, #1
   1d4e4:	d01c      	beq.n	1d520 <cbvprintf+0x6cc>
			} else if (length_mod == LENGTH_H) {
   1d4e6:	2902      	cmp	r1, #2
   1d4e8:	f47f aebc 	bne.w	1d264 <cbvprintf+0x410>
				value->uint = (unsigned short)value->uint;
   1d4ec:	f8bd 3018 	ldrh.w	r3, [sp, #24]
   1d4f0:	9306      	str	r3, [sp, #24]
   1d4f2:	2300      	movs	r3, #0
   1d4f4:	9307      	str	r3, [sp, #28]
   1d4f6:	e6b5      	b.n	1d264 <cbvprintf+0x410>
					(uint_value_type)va_arg(ap,
   1d4f8:	9b03      	ldr	r3, [sp, #12]
   1d4fa:	3307      	adds	r3, #7
   1d4fc:	f023 0307 	bic.w	r3, r3, #7
   1d500:	f103 0208 	add.w	r2, r3, #8
   1d504:	9203      	str	r2, [sp, #12]
   1d506:	e9d3 2300 	ldrd	r2, r3, [r3]
				value->uint =
   1d50a:	e9cd 2306 	strd	r2, r3, [sp, #24]
				break;
   1d50e:	e7e8      	b.n	1d4e2 <cbvprintf+0x68e>
					(uint_value_type)va_arg(ap, size_t);
   1d510:	9b03      	ldr	r3, [sp, #12]
   1d512:	1d1a      	adds	r2, r3, #4
   1d514:	9203      	str	r2, [sp, #12]
   1d516:	681b      	ldr	r3, [r3, #0]
				value->uint =
   1d518:	9306      	str	r3, [sp, #24]
   1d51a:	2300      	movs	r3, #0
   1d51c:	9307      	str	r3, [sp, #28]
				break;
   1d51e:	e7e0      	b.n	1d4e2 <cbvprintf+0x68e>
				value->uint = (unsigned char)value->uint;
   1d520:	f89d 3018 	ldrb.w	r3, [sp, #24]
   1d524:	9306      	str	r3, [sp, #24]
   1d526:	2300      	movs	r3, #0
   1d528:	9307      	str	r3, [sp, #28]
   1d52a:	e69b      	b.n	1d264 <cbvprintf+0x410>
			if (length_mod == LENGTH_UPPER_L) {
   1d52c:	2908      	cmp	r1, #8
   1d52e:	d00b      	beq.n	1d548 <cbvprintf+0x6f4>
				value->dbl = va_arg(ap, double);
   1d530:	9b03      	ldr	r3, [sp, #12]
   1d532:	3307      	adds	r3, #7
   1d534:	f023 0307 	bic.w	r3, r3, #7
   1d538:	f103 0208 	add.w	r2, r3, #8
   1d53c:	9203      	str	r2, [sp, #12]
   1d53e:	e9d3 2300 	ldrd	r2, r3, [r3]
   1d542:	e9cd 2306 	strd	r2, r3, [sp, #24]
   1d546:	e68d      	b.n	1d264 <cbvprintf+0x410>
				value->ldbl = va_arg(ap, long double);
   1d548:	9b03      	ldr	r3, [sp, #12]
   1d54a:	3307      	adds	r3, #7
   1d54c:	f023 0307 	bic.w	r3, r3, #7
   1d550:	f103 0208 	add.w	r2, r3, #8
   1d554:	9203      	str	r2, [sp, #12]
   1d556:	e9d3 2300 	ldrd	r2, r3, [r3]
   1d55a:	e9cd 2306 	strd	r2, r3, [sp, #24]
   1d55e:	e681      	b.n	1d264 <cbvprintf+0x410>
			value->ptr = va_arg(ap, void *);
   1d560:	9b03      	ldr	r3, [sp, #12]
   1d562:	1d1a      	adds	r2, r3, #4
   1d564:	9203      	str	r2, [sp, #12]
   1d566:	681b      	ldr	r3, [r3, #0]
   1d568:	9306      	str	r3, [sp, #24]
   1d56a:	e67b      	b.n	1d264 <cbvprintf+0x410>
			OUTS(sp, fp);
   1d56c:	4643      	mov	r3, r8
   1d56e:	4652      	mov	r2, sl
   1d570:	4629      	mov	r1, r5
   1d572:	4630      	mov	r0, r6
   1d574:	f016 fa98 	bl	33aa8 <outs>
   1d578:	2800      	cmp	r0, #0
   1d57a:	f2c0 814f 	blt.w	1d81c <cbvprintf+0x9c8>
   1d57e:	4404      	add	r4, r0
		fp = extract_conversion(conv, sp);
   1d580:	46c2      	mov	sl, r8
			continue;
   1d582:	e46f      	b.n	1ce64 <cbvprintf+0x10>
		case '%':
			OUTC('%');
   1d584:	4629      	mov	r1, r5
   1d586:	2025      	movs	r0, #37	; 0x25
   1d588:	47b0      	blx	r6
   1d58a:	2800      	cmp	r0, #0
   1d58c:	f2c0 8146 	blt.w	1d81c <cbvprintf+0x9c8>
   1d590:	3401      	adds	r4, #1
		char sign = 0;
   1d592:	f8dd 9008 	ldr.w	r9, [sp, #8]
		const char *bpe = buf + sizeof(buf);
   1d596:	f10d 0b46 	add.w	fp, sp, #70	; 0x46
		const char *bps = NULL;
   1d59a:	f04f 0a00 	mov.w	sl, #0
			break;
   1d59e:	e0a7      	b.n	1d6f0 <cbvprintf+0x89c>
		case 's': {
			bps = (const char *)value->ptr;
   1d5a0:	f8dd a018 	ldr.w	sl, [sp, #24]

			size_t len;

			if (precision >= 0) {
   1d5a4:	f1bb 0f00 	cmp.w	fp, #0
   1d5a8:	db08      	blt.n	1d5bc <cbvprintf+0x768>
				len = strnlen(bps, precision);
   1d5aa:	4659      	mov	r1, fp
   1d5ac:	4650      	mov	r0, sl
   1d5ae:	f018 fa5f 	bl	35a70 <strnlen>
			} else {
				len = strlen(bps);
			}

			bpe = bps + len;
   1d5b2:	eb0a 0b00 	add.w	fp, sl, r0
		char sign = 0;
   1d5b6:	f8dd 9008 	ldr.w	r9, [sp, #8]
			precision = -1;

			break;
   1d5ba:	e099      	b.n	1d6f0 <cbvprintf+0x89c>
				len = strlen(bps);
   1d5bc:	4650      	mov	r0, sl
   1d5be:	f018 fa4f 	bl	35a60 <strlen>
   1d5c2:	e7f6      	b.n	1d5b2 <cbvprintf+0x75e>
		}
		case 'c':
			bps = buf;
			buf[0] = CHAR_IS_SIGNED ? value->sint : value->uint;
   1d5c4:	9b06      	ldr	r3, [sp, #24]
   1d5c6:	f88d 3030 	strb.w	r3, [sp, #48]	; 0x30
		char sign = 0;
   1d5ca:	f8dd 9008 	ldr.w	r9, [sp, #8]
			bpe = buf + 1;
   1d5ce:	f10d 0b31 	add.w	fp, sp, #49	; 0x31
			bps = buf;
   1d5d2:	f10d 0a30 	add.w	sl, sp, #48	; 0x30
			break;
   1d5d6:	e08b      	b.n	1d6f0 <cbvprintf+0x89c>
		case 'd':
		case 'i':
			if (conv->flag_plus) {
   1d5d8:	f019 0f08 	tst.w	r9, #8
   1d5dc:	d105      	bne.n	1d5ea <cbvprintf+0x796>
				sign = '+';
			} else if (conv->flag_space) {
   1d5de:	f019 0910 	ands.w	r9, r9, #16
   1d5e2:	d004      	beq.n	1d5ee <cbvprintf+0x79a>
				sign = ' ';
   1d5e4:	f04f 0920 	mov.w	r9, #32
   1d5e8:	e001      	b.n	1d5ee <cbvprintf+0x79a>
				sign = '+';
   1d5ea:	f04f 092b 	mov.w	r9, #43	; 0x2b

			/* sint/uint overlay in the union, and so
			 * can't appear in read and write operations
			 * in the same statement.
			 */
			sint = value->sint;
   1d5ee:	e9dd 2306 	ldrd	r2, r3, [sp, #24]
			if (sint < 0) {
   1d5f2:	2a00      	cmp	r2, #0
   1d5f4:	f173 0100 	sbcs.w	r1, r3, #0
   1d5f8:	db02      	blt.n	1d600 <cbvprintf+0x7ac>
				sign = '-';
				value->uint = (uint_value_type)-sint;
			} else {
				value->uint = (uint_value_type)sint;
   1d5fa:	e9cd 2306 	strd	r2, r3, [sp, #24]
   1d5fe:	e009      	b.n	1d614 <cbvprintf+0x7c0>
				value->uint = (uint_value_type)-sint;
   1d600:	4252      	negs	r2, r2
   1d602:	eb63 0343 	sbc.w	r3, r3, r3, lsl #1
   1d606:	e9cd 2306 	strd	r2, r3, [sp, #24]
				sign = '-';
   1d60a:	f04f 092d 	mov.w	r9, #45	; 0x2d
   1d60e:	e001      	b.n	1d614 <cbvprintf+0x7c0>
		switch (conv->specifier) {
   1d610:	f8dd 9008 	ldr.w	r9, [sp, #8]
			__fallthrough;
		case 'o':
		case 'u':
		case 'x':
		case 'X':
			bps = encode_uint(value->uint, conv, buf, bpe);
   1d614:	f10d 0346 	add.w	r3, sp, #70	; 0x46
   1d618:	9300      	str	r3, [sp, #0]
   1d61a:	ab0c      	add	r3, sp, #48	; 0x30
   1d61c:	aa08      	add	r2, sp, #32
   1d61e:	e9dd 0106 	ldrd	r0, r1, [sp, #24]
   1d622:	f016 f9d7 	bl	339d4 <encode_uint>
   1d626:	4682      	mov	sl, r0
			/* Update pad0 values based on precision and converted
			 * length.  Note that a non-empty sign is not in the
			 * converted sequence, but it does not affect the
			 * padding size.
			 */
			if (precision >= 0) {
   1d628:	f1bb 0f00 	cmp.w	fp, #0
   1d62c:	f2c0 8090 	blt.w	1d750 <cbvprintf+0x8fc>
				size_t len = bpe - bps;
   1d630:	f10d 0346 	add.w	r3, sp, #70	; 0x46
   1d634:	eba3 030a 	sub.w	r3, r3, sl

				/* Zero-padding flag is ignored for integer
				 * conversions with precision.
				 */
				conv->flag_zero = false;
   1d638:	f89d 2020 	ldrb.w	r2, [sp, #32]
   1d63c:	f36f 1286 	bfc	r2, #6, #1
   1d640:	f88d 2020 	strb.w	r2, [sp, #32]

				/* Set pad0_value to satisfy precision */
				if (len < (size_t)precision) {
   1d644:	459b      	cmp	fp, r3
   1d646:	f240 8086 	bls.w	1d756 <cbvprintf+0x902>
					conv->pad0_value = precision - (int)len;
   1d64a:	ebab 0303 	sub.w	r3, fp, r3
   1d64e:	9309      	str	r3, [sp, #36]	; 0x24
		const char *bpe = buf + sizeof(buf);
   1d650:	f10d 0b46 	add.w	fp, sp, #70	; 0x46
   1d654:	e04c      	b.n	1d6f0 <cbvprintf+0x89c>
		case 'p':
			/* Implementation-defined: null is "(nil)", non-null
			 * has 0x prefix followed by significant address hex
			 * digits, no leading zeros.
			 */
			if (value->ptr != NULL) {
   1d656:	9806      	ldr	r0, [sp, #24]
   1d658:	b930      	cbnz	r0, 1d668 <cbvprintf+0x814>
		char sign = 0;
   1d65a:	f8dd 9008 	ldr.w	r9, [sp, #8]

				goto prec_int_pad0;
			}

			bps = "(nil)";
			bpe = bps + 5;
   1d65e:	f8df b1c4 	ldr.w	fp, [pc, #452]	; 1d824 <cbvprintf+0x9d0>
			bps = "(nil)";
   1d662:	f1ab 0a05 	sub.w	sl, fp, #5
   1d666:	e043      	b.n	1d6f0 <cbvprintf+0x89c>
				bps = encode_uint((uintptr_t)value->ptr, conv,
   1d668:	f10d 0346 	add.w	r3, sp, #70	; 0x46
   1d66c:	9300      	str	r3, [sp, #0]
   1d66e:	ab0c      	add	r3, sp, #48	; 0x30
   1d670:	aa08      	add	r2, sp, #32
   1d672:	2100      	movs	r1, #0
   1d674:	f016 f9ae 	bl	339d4 <encode_uint>
   1d678:	4682      	mov	sl, r0
				conv->altform_0c = true;
   1d67a:	f89d 3022 	ldrb.w	r3, [sp, #34]	; 0x22
   1d67e:	f043 0310 	orr.w	r3, r3, #16
   1d682:	f88d 3022 	strb.w	r3, [sp, #34]	; 0x22
				conv->specifier = 'x';
   1d686:	2378      	movs	r3, #120	; 0x78
   1d688:	f88d 3023 	strb.w	r3, [sp, #35]	; 0x23
		char sign = 0;
   1d68c:	f8dd 9008 	ldr.w	r9, [sp, #8]
				goto prec_int_pad0;
   1d690:	e7ca      	b.n	1d628 <cbvprintf+0x7d4>

			break;
		case 'n':
			if (IS_ENABLED(CONFIG_CBPRINTF_N_SPECIFIER)) {
				store_count(conv, value->ptr, count);
   1d692:	9a06      	ldr	r2, [sp, #24]
	switch ((enum length_mod_enum)conv->length_mod) {
   1d694:	f89d 3021 	ldrb.w	r3, [sp, #33]	; 0x21
   1d698:	f3c3 03c3 	ubfx	r3, r3, #3, #4
   1d69c:	2b07      	cmp	r3, #7
   1d69e:	d806      	bhi.n	1d6ae <cbvprintf+0x85a>
   1d6a0:	e8df f003 	tbb	[pc, r3]
   1d6a4:	100e0c04 	.word	0x100e0c04
   1d6a8:	1e1c1712 	.word	0x1e1c1712
		*(int *)dp = count;
   1d6ac:	6014      	str	r4, [r2, #0]
		char sign = 0;
   1d6ae:	f8dd 9008 	ldr.w	r9, [sp, #8]
		const char *bpe = buf + sizeof(buf);
   1d6b2:	f10d 0b46 	add.w	fp, sp, #70	; 0x46
		const char *bps = NULL;
   1d6b6:	f04f 0a00 	mov.w	sl, #0
}
   1d6ba:	e019      	b.n	1d6f0 <cbvprintf+0x89c>
		*(signed char *)dp = (signed char)count;
   1d6bc:	7014      	strb	r4, [r2, #0]
		break;
   1d6be:	e7f6      	b.n	1d6ae <cbvprintf+0x85a>
		*(short *)dp = (short)count;
   1d6c0:	8014      	strh	r4, [r2, #0]
		break;
   1d6c2:	e7f4      	b.n	1d6ae <cbvprintf+0x85a>
		*(long *)dp = (long)count;
   1d6c4:	6014      	str	r4, [r2, #0]
		break;
   1d6c6:	e7f2      	b.n	1d6ae <cbvprintf+0x85a>
		*(long long *)dp = (long long)count;
   1d6c8:	4620      	mov	r0, r4
   1d6ca:	17e1      	asrs	r1, r4, #31
   1d6cc:	e9c2 0100 	strd	r0, r1, [r2]
		break;
   1d6d0:	e7ed      	b.n	1d6ae <cbvprintf+0x85a>
		*(intmax_t *)dp = (intmax_t)count;
   1d6d2:	4620      	mov	r0, r4
   1d6d4:	17e1      	asrs	r1, r4, #31
   1d6d6:	e9c2 0100 	strd	r0, r1, [r2]
		break;
   1d6da:	e7e8      	b.n	1d6ae <cbvprintf+0x85a>
		*(size_t *)dp = (size_t)count;
   1d6dc:	6014      	str	r4, [r2, #0]
		break;
   1d6de:	e7e6      	b.n	1d6ae <cbvprintf+0x85a>
		*(ptrdiff_t *)dp = (ptrdiff_t)count;
   1d6e0:	6014      	str	r4, [r2, #0]
		break;
   1d6e2:	e7e4      	b.n	1d6ae <cbvprintf+0x85a>
		switch (conv->specifier) {
   1d6e4:	f8dd 9008 	ldr.w	r9, [sp, #8]
   1d6e8:	f10d 0b46 	add.w	fp, sp, #70	; 0x46
   1d6ec:	f04f 0a00 	mov.w	sl, #0
		}

		/* If we don't have a converted value to emit, move
		 * on.
		 */
		if (bps == NULL) {
   1d6f0:	f1ba 0f00 	cmp.w	sl, #0
   1d6f4:	f000 808e 	beq.w	1d814 <cbvprintf+0x9c0>
		 *   * any exponent content from the converted value
		 * * for non-FP:
		 *   * any pad0_prefix
		 *   * the converted value
		 */
		size_t nj_len = (bpe - bps);
   1d6f8:	ebab 020a 	sub.w	r2, fp, sl
		int pad_len = 0;

		if (sign != 0) {
   1d6fc:	f1b9 0f00 	cmp.w	r9, #0
   1d700:	d000      	beq.n	1d704 <cbvprintf+0x8b0>
			nj_len += 1U;
   1d702:	3201      	adds	r2, #1
		}

		if (conv->altform_0c) {
   1d704:	f89d 1022 	ldrb.w	r1, [sp, #34]	; 0x22
   1d708:	f011 0f10 	tst.w	r1, #16
   1d70c:	d026      	beq.n	1d75c <cbvprintf+0x908>
			nj_len += 2U;
   1d70e:	3202      	adds	r2, #2
		} else if (conv->altform_0) {
			nj_len += 1U;
		}

		nj_len += conv->pad0_value;
   1d710:	9b09      	ldr	r3, [sp, #36]	; 0x24
   1d712:	4413      	add	r3, r2
		if (conv->pad_fp) {
   1d714:	f011 0f40 	tst.w	r1, #64	; 0x40
   1d718:	d001      	beq.n	1d71e <cbvprintf+0x8ca>
			nj_len += conv->pad0_pre_exp;
   1d71a:	9a0a      	ldr	r2, [sp, #40]	; 0x28
   1d71c:	4413      	add	r3, r2
		 * result in no padding.
		 *
		 * If a non-negative padding width is present and we're doing
		 * right-justification, emit the padding now.
		 */
		if (width > 0) {
   1d71e:	2f00      	cmp	r7, #0
   1d720:	dd32      	ble.n	1d788 <cbvprintf+0x934>
			width -= (int)nj_len;
   1d722:	1aff      	subs	r7, r7, r3

			if (!conv->flag_dash) {
   1d724:	f89d 3020 	ldrb.w	r3, [sp, #32]
   1d728:	f013 0f04 	tst.w	r3, #4
   1d72c:	d12c      	bne.n	1d788 <cbvprintf+0x934>
				char pad = ' ';

				/* If we're zero-padding we have to emit the
				 * sign first.
				 */
				if (conv->flag_zero) {
   1d72e:	f013 0f40 	tst.w	r3, #64	; 0x40
   1d732:	d018      	beq.n	1d766 <cbvprintf+0x912>
					if (sign != 0) {
   1d734:	f1b9 0f00 	cmp.w	r9, #0
   1d738:	d018      	beq.n	1d76c <cbvprintf+0x918>
						OUTC(sign);
   1d73a:	4629      	mov	r1, r5
   1d73c:	4648      	mov	r0, r9
   1d73e:	47b0      	blx	r6
   1d740:	2800      	cmp	r0, #0
   1d742:	db6b      	blt.n	1d81c <cbvprintf+0x9c8>
   1d744:	3401      	adds	r4, #1
						sign = 0;
   1d746:	f8dd 9008 	ldr.w	r9, [sp, #8]
					}
					pad = '0';
   1d74a:	2330      	movs	r3, #48	; 0x30
   1d74c:	9302      	str	r3, [sp, #8]
   1d74e:	e00f      	b.n	1d770 <cbvprintf+0x91c>
		const char *bpe = buf + sizeof(buf);
   1d750:	f10d 0b46 	add.w	fp, sp, #70	; 0x46
   1d754:	e7cc      	b.n	1d6f0 <cbvprintf+0x89c>
   1d756:	f10d 0b46 	add.w	fp, sp, #70	; 0x46
   1d75a:	e7c9      	b.n	1d6f0 <cbvprintf+0x89c>
		} else if (conv->altform_0) {
   1d75c:	f011 0f08 	tst.w	r1, #8
   1d760:	d0d6      	beq.n	1d710 <cbvprintf+0x8bc>
			nj_len += 1U;
   1d762:	3201      	adds	r2, #1
   1d764:	e7d4      	b.n	1d710 <cbvprintf+0x8bc>
				char pad = ' ';
   1d766:	2320      	movs	r3, #32
   1d768:	9302      	str	r3, [sp, #8]
   1d76a:	e001      	b.n	1d770 <cbvprintf+0x91c>
					pad = '0';
   1d76c:	2330      	movs	r3, #48	; 0x30
   1d76e:	9302      	str	r3, [sp, #8]
   1d770:	463b      	mov	r3, r7
				}

				while (width-- > 0) {
   1d772:	1e5f      	subs	r7, r3, #1
   1d774:	2b00      	cmp	r3, #0
   1d776:	dd07      	ble.n	1d788 <cbvprintf+0x934>
					OUTC(pad);
   1d778:	4629      	mov	r1, r5
   1d77a:	9802      	ldr	r0, [sp, #8]
   1d77c:	47b0      	blx	r6
   1d77e:	2800      	cmp	r0, #0
   1d780:	db4c      	blt.n	1d81c <cbvprintf+0x9c8>
   1d782:	3401      	adds	r4, #1
				while (width-- > 0) {
   1d784:	463b      	mov	r3, r7
   1d786:	e7f4      	b.n	1d772 <cbvprintf+0x91e>
		}

		/* If we have a sign that hasn't been emitted, now's the
		 * time....
		 */
		if (sign != 0) {
   1d788:	f1b9 0f00 	cmp.w	r9, #0
   1d78c:	d005      	beq.n	1d79a <cbvprintf+0x946>
			OUTC(sign);
   1d78e:	4629      	mov	r1, r5
   1d790:	4648      	mov	r0, r9
   1d792:	47b0      	blx	r6
   1d794:	2800      	cmp	r0, #0
   1d796:	db41      	blt.n	1d81c <cbvprintf+0x9c8>
   1d798:	3401      	adds	r4, #1
				OUTC('0');
			}

			OUTS(cp, bpe);
		} else {
			if (conv->altform_0c | conv->altform_0) {
   1d79a:	f89d 3022 	ldrb.w	r3, [sp, #34]	; 0x22
   1d79e:	f3c3 1200 	ubfx	r2, r3, #4, #1
   1d7a2:	f3c3 03c0 	ubfx	r3, r3, #3, #1
   1d7a6:	4313      	orrs	r3, r2
   1d7a8:	d005      	beq.n	1d7b6 <cbvprintf+0x962>
				OUTC('0');
   1d7aa:	4629      	mov	r1, r5
   1d7ac:	2030      	movs	r0, #48	; 0x30
   1d7ae:	47b0      	blx	r6
   1d7b0:	2800      	cmp	r0, #0
   1d7b2:	db33      	blt.n	1d81c <cbvprintf+0x9c8>
   1d7b4:	3401      	adds	r4, #1
			}

			if (conv->altform_0c) {
   1d7b6:	f89d 3022 	ldrb.w	r3, [sp, #34]	; 0x22
   1d7ba:	f013 0f10 	tst.w	r3, #16
   1d7be:	d006      	beq.n	1d7ce <cbvprintf+0x97a>
				OUTC(conv->specifier);
   1d7c0:	4629      	mov	r1, r5
   1d7c2:	f89d 0023 	ldrb.w	r0, [sp, #35]	; 0x23
   1d7c6:	47b0      	blx	r6
   1d7c8:	2800      	cmp	r0, #0
   1d7ca:	db27      	blt.n	1d81c <cbvprintf+0x9c8>
   1d7cc:	3401      	adds	r4, #1
			}

			pad_len = conv->pad0_value;
   1d7ce:	9b09      	ldr	r3, [sp, #36]	; 0x24
			while (pad_len-- > 0) {
   1d7d0:	f103 39ff 	add.w	r9, r3, #4294967295
   1d7d4:	2b00      	cmp	r3, #0
   1d7d6:	dd07      	ble.n	1d7e8 <cbvprintf+0x994>
				OUTC('0');
   1d7d8:	4629      	mov	r1, r5
   1d7da:	2030      	movs	r0, #48	; 0x30
   1d7dc:	47b0      	blx	r6
   1d7de:	2800      	cmp	r0, #0
   1d7e0:	db1c      	blt.n	1d81c <cbvprintf+0x9c8>
   1d7e2:	3401      	adds	r4, #1
			while (pad_len-- > 0) {
   1d7e4:	464b      	mov	r3, r9
   1d7e6:	e7f3      	b.n	1d7d0 <cbvprintf+0x97c>
			}

			OUTS(bps, bpe);
   1d7e8:	465b      	mov	r3, fp
   1d7ea:	4652      	mov	r2, sl
   1d7ec:	4629      	mov	r1, r5
   1d7ee:	4630      	mov	r0, r6
   1d7f0:	f016 f95a 	bl	33aa8 <outs>
   1d7f4:	2800      	cmp	r0, #0
   1d7f6:	db11      	blt.n	1d81c <cbvprintf+0x9c8>
   1d7f8:	4404      	add	r4, r0
		}

		/* Finish left justification */
		while (width > 0) {
   1d7fa:	2f00      	cmp	r7, #0
   1d7fc:	dd07      	ble.n	1d80e <cbvprintf+0x9ba>
			OUTC(' ');
   1d7fe:	4629      	mov	r1, r5
   1d800:	2020      	movs	r0, #32
   1d802:	47b0      	blx	r6
   1d804:	2800      	cmp	r0, #0
   1d806:	db09      	blt.n	1d81c <cbvprintf+0x9c8>
   1d808:	3401      	adds	r4, #1
			--width;
   1d80a:	3f01      	subs	r7, #1
   1d80c:	e7f5      	b.n	1d7fa <cbvprintf+0x9a6>
		fp = extract_conversion(conv, sp);
   1d80e:	46c2      	mov	sl, r8
   1d810:	f7ff bb28 	b.w	1ce64 <cbvprintf+0x10>
   1d814:	46c2      	mov	sl, r8
   1d816:	f7ff bb25 	b.w	1ce64 <cbvprintf+0x10>
		}
	}

	return count;
   1d81a:	4620      	mov	r0, r4
#undef OUTS
#undef OUTC
}
   1d81c:	b013      	add	sp, #76	; 0x4c
   1d81e:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
   1d822:	bf00      	nop
   1d824:	0003be39 	.word	0x0003be39

0001d828 <sys_reboot>:

extern void sys_arch_reboot(int type);
extern void sys_clock_disable(void);

FUNC_NORETURN void sys_reboot(int type)
{
   1d828:	b508      	push	{r3, lr}
   1d82a:	4604      	mov	r4, r0
	__asm__ volatile(
   1d82c:	f04f 0240 	mov.w	r2, #64	; 0x40
   1d830:	f3ef 8311 	mrs	r3, BASEPRI
   1d834:	f382 8812 	msr	BASEPRI_MAX, r2
   1d838:	f3bf 8f6f 	isb	sy
	(void)irq_lock();
#ifdef CONFIG_SYS_CLOCK_EXISTS
	sys_clock_disable();
   1d83c:	f01b ffb9 	bl	397b2 <sys_clock_disable>
#endif

	sys_arch_reboot(type);
   1d840:	4620      	mov	r0, r4
   1d842:	f002 fb6d 	bl	1ff20 <sys_arch_reboot>

	/* should never get here */
	printk("Failed to reboot: spinning endlessly...\n");
   1d846:	4803      	ldr	r0, [pc, #12]	; (1d854 <sys_reboot+0x2c>)
   1d848:	f015 fdaf 	bl	333aa <printk>
 *
 * @return N/A
 */
static inline void k_cpu_idle(void)
{
	arch_cpu_idle();
   1d84c:	f001 fd5a 	bl	1f304 <arch_cpu_idle>
   1d850:	e7fc      	b.n	1d84c <sys_reboot+0x24>
   1d852:	bf00      	nop
   1d854:	0003be3c 	.word	0x0003be3c

0001d858 <minimal_hexdump_line_print>:
{
	vprintk(fmt, ap);
}

static void minimal_hexdump_line_print(const char *data, size_t length)
{
   1d858:	b570      	push	{r4, r5, r6, lr}
   1d85a:	4606      	mov	r6, r0
   1d85c:	460d      	mov	r5, r1
	for (size_t i = 0U; i < HEXDUMP_BYTES_IN_LINE; i++) {
   1d85e:	2400      	movs	r4, #0
   1d860:	e003      	b.n	1d86a <minimal_hexdump_line_print+0x12>
		if (i < length) {
			printk("%02x ", (unsigned char)data[i] & 0xFFu);
		} else {
			printk("   ");
   1d862:	4814      	ldr	r0, [pc, #80]	; (1d8b4 <minimal_hexdump_line_print+0x5c>)
   1d864:	f015 fda1 	bl	333aa <printk>
	for (size_t i = 0U; i < HEXDUMP_BYTES_IN_LINE; i++) {
   1d868:	3401      	adds	r4, #1
   1d86a:	2c07      	cmp	r4, #7
   1d86c:	d806      	bhi.n	1d87c <minimal_hexdump_line_print+0x24>
		if (i < length) {
   1d86e:	42ac      	cmp	r4, r5
   1d870:	d2f7      	bcs.n	1d862 <minimal_hexdump_line_print+0xa>
			printk("%02x ", (unsigned char)data[i] & 0xFFu);
   1d872:	5d31      	ldrb	r1, [r6, r4]
   1d874:	4810      	ldr	r0, [pc, #64]	; (1d8b8 <minimal_hexdump_line_print+0x60>)
   1d876:	f015 fd98 	bl	333aa <printk>
   1d87a:	e7f5      	b.n	1d868 <minimal_hexdump_line_print+0x10>
		}
	}

	printk("|");
   1d87c:	480f      	ldr	r0, [pc, #60]	; (1d8bc <minimal_hexdump_line_print+0x64>)
   1d87e:	f015 fd94 	bl	333aa <printk>

	for (size_t i = 0U; i < HEXDUMP_BYTES_IN_LINE; i++) {
   1d882:	2400      	movs	r4, #0
   1d884:	e003      	b.n	1d88e <minimal_hexdump_line_print+0x36>
		if (i < length) {
			unsigned char c = data[i];

			printk("%c", isprint((int)c) != 0 ? c : '.');
   1d886:	480e      	ldr	r0, [pc, #56]	; (1d8c0 <minimal_hexdump_line_print+0x68>)
   1d888:	f015 fd8f 	bl	333aa <printk>
	for (size_t i = 0U; i < HEXDUMP_BYTES_IN_LINE; i++) {
   1d88c:	3401      	adds	r4, #1
   1d88e:	2c07      	cmp	r4, #7
   1d890:	d80c      	bhi.n	1d8ac <minimal_hexdump_line_print+0x54>
		if (i < length) {
   1d892:	42ac      	cmp	r4, r5
   1d894:	d206      	bcs.n	1d8a4 <minimal_hexdump_line_print+0x4c>
			unsigned char c = data[i];
   1d896:	5d31      	ldrb	r1, [r6, r4]
			(((unsigned)c) <= (unsigned)'~'));
}

static inline int isprint(int c)
{
	return (int)((((unsigned)c) >= ' ') &&
   1d898:	f1a1 0320 	sub.w	r3, r1, #32
			printk("%c", isprint((int)c) != 0 ? c : '.');
   1d89c:	2b5e      	cmp	r3, #94	; 0x5e
   1d89e:	d9f2      	bls.n	1d886 <minimal_hexdump_line_print+0x2e>
   1d8a0:	212e      	movs	r1, #46	; 0x2e
   1d8a2:	e7f0      	b.n	1d886 <minimal_hexdump_line_print+0x2e>
		} else {
			printk(" ");
   1d8a4:	4807      	ldr	r0, [pc, #28]	; (1d8c4 <minimal_hexdump_line_print+0x6c>)
   1d8a6:	f015 fd80 	bl	333aa <printk>
   1d8aa:	e7ef      	b.n	1d88c <minimal_hexdump_line_print+0x34>
		}
	}
	printk("\n");
   1d8ac:	4806      	ldr	r0, [pc, #24]	; (1d8c8 <minimal_hexdump_line_print+0x70>)
   1d8ae:	f015 fd7c 	bl	333aa <printk>
}
   1d8b2:	bd70      	pop	{r4, r5, r6, pc}
   1d8b4:	0003be70 	.word	0x0003be70
   1d8b8:	0003be68 	.word	0x0003be68
   1d8bc:	0003be74 	.word	0x0003be74
   1d8c0:	0003be78 	.word	0x0003be78
   1d8c4:	0003be6c 	.word	0x0003be6c
   1d8c8:	0003f8c4 	.word	0x0003f8c4

0001d8cc <z_log_minimal_hexdump_print>:

void z_log_minimal_hexdump_print(int level, const void *data, size_t size)
{
   1d8cc:	b570      	push	{r4, r5, r6, lr}
   1d8ce:	4606      	mov	r6, r0
   1d8d0:	460d      	mov	r5, r1
   1d8d2:	4614      	mov	r4, r2
	const char *data_buffer = (const char *)data;
	while (size > 0U) {
   1d8d4:	e00d      	b.n	1d8f2 <z_log_minimal_hexdump_print+0x26>
   1d8d6:	2145      	movs	r1, #69	; 0x45
   1d8d8:	e000      	b.n	1d8dc <z_log_minimal_hexdump_print+0x10>
	case LOG_LEVEL_ERR:
		return 'E';
	case LOG_LEVEL_WRN:
		return 'W';
	case LOG_LEVEL_INF:
		return 'I';
   1d8da:	2149      	movs	r1, #73	; 0x49
		printk("%c: ", z_log_minimal_level_to_char(level));
   1d8dc:	4810      	ldr	r0, [pc, #64]	; (1d920 <z_log_minimal_hexdump_print+0x54>)
   1d8de:	f015 fd64 	bl	333aa <printk>
		minimal_hexdump_line_print(data_buffer, size);
   1d8e2:	4621      	mov	r1, r4
   1d8e4:	4628      	mov	r0, r5
   1d8e6:	f7ff ffb7 	bl	1d858 <minimal_hexdump_line_print>

		if (size < HEXDUMP_BYTES_IN_LINE) {
   1d8ea:	2c07      	cmp	r4, #7
   1d8ec:	d916      	bls.n	1d91c <z_log_minimal_hexdump_print+0x50>
			break;
		}

		size -= HEXDUMP_BYTES_IN_LINE;
   1d8ee:	3c08      	subs	r4, #8
		data_buffer += HEXDUMP_BYTES_IN_LINE;
   1d8f0:	3508      	adds	r5, #8
	while (size > 0U) {
   1d8f2:	b19c      	cbz	r4, 1d91c <z_log_minimal_hexdump_print+0x50>
	switch (level) {
   1d8f4:	1e73      	subs	r3, r6, #1
   1d8f6:	2b03      	cmp	r3, #3
   1d8f8:	d80c      	bhi.n	1d914 <z_log_minimal_hexdump_print+0x48>
   1d8fa:	a201      	add	r2, pc, #4	; (adr r2, 1d900 <z_log_minimal_hexdump_print+0x34>)
   1d8fc:	f852 f023 	ldr.w	pc, [r2, r3, lsl #2]
   1d900:	0001d8d7 	.word	0x0001d8d7
   1d904:	0001d919 	.word	0x0001d919
   1d908:	0001d8db 	.word	0x0001d8db
   1d90c:	0001d911 	.word	0x0001d911
	case LOG_LEVEL_DBG:
		return 'D';
   1d910:	2144      	movs	r1, #68	; 0x44
   1d912:	e7e3      	b.n	1d8dc <z_log_minimal_hexdump_print+0x10>
	default:
		return '?';
   1d914:	213f      	movs	r1, #63	; 0x3f
   1d916:	e7e1      	b.n	1d8dc <z_log_minimal_hexdump_print+0x10>
		return 'W';
   1d918:	2157      	movs	r1, #87	; 0x57
   1d91a:	e7df      	b.n	1d8dc <z_log_minimal_hexdump_print+0x10>
	}
}
   1d91c:	bd70      	pop	{r4, r5, r6, pc}
   1d91e:	bf00      	nop
   1d920:	0003be7c 	.word	0x0003be7c

0001d924 <nvs_startup>:
	}
	return 0;
}

static int nvs_startup(struct nvs_fs *fs)
{
   1d924:	e92d 43f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, lr}
   1d928:	b087      	sub	sp, #28
   1d92a:	4604      	mov	r4, r0
	size_t ate_size, empty_len;
	/* Initialize addr to 0 for the case fs->sector_count == 0. This
	 * should never happen as this is verified in nvs_init() but both
	 * Coverity and GCC believe the contrary.
	 */
	uint32_t addr = 0U;
   1d92c:	2300      	movs	r3, #0
   1d92e:	9303      	str	r3, [sp, #12]
	uint16_t i, closed_sectors = 0;
	uint8_t erase_value = fs->flash_parameters->erase_value;
   1d930:	6ac3      	ldr	r3, [r0, #44]	; 0x2c
   1d932:	791f      	ldrb	r7, [r3, #4]

	k_mutex_lock(&fs->nvs_lock, K_FOREVER);
   1d934:	f100 0914 	add.w	r9, r0, #20
	return z_impl_k_mutex_lock(mutex, timeout);
   1d938:	f04f 32ff 	mov.w	r2, #4294967295
   1d93c:	f04f 33ff 	mov.w	r3, #4294967295
   1d940:	4648      	mov	r0, r9
   1d942:	f011 ffed 	bl	2f920 <z_impl_k_mutex_lock>
	uint8_t write_block_size = fs->flash_parameters->write_block_size;
   1d946:	6ae3      	ldr	r3, [r4, #44]	; 0x2c
   1d948:	681b      	ldr	r3, [r3, #0]
   1d94a:	b2da      	uxtb	r2, r3
	if (write_block_size <= 1U) {
   1d94c:	2a01      	cmp	r2, #1
   1d94e:	d906      	bls.n	1d95e <nvs_startup+0x3a>
	return (len + (write_block_size - 1U)) & ~(write_block_size - 1U);
   1d950:	1dd6      	adds	r6, r2, #7
   1d952:	4253      	negs	r3, r2
   1d954:	401e      	ands	r6, r3
	uint16_t i, closed_sectors = 0;
   1d956:	f04f 0800 	mov.w	r8, #0

	ate_size = nvs_al_size(fs, sizeof(struct nvs_ate));
	/* step through the sectors to find a open sector following
	 * a closed sector, this is where NVS can to write.
	 */
	for (i = 0; i < fs->sector_count; i++) {
   1d95a:	4645      	mov	r5, r8
   1d95c:	e003      	b.n	1d966 <nvs_startup+0x42>
		return len;
   1d95e:	2608      	movs	r6, #8
   1d960:	e7f9      	b.n	1d956 <nvs_startup+0x32>
	for (i = 0; i < fs->sector_count; i++) {
   1d962:	3501      	adds	r5, #1
   1d964:	b2ad      	uxth	r5, r5
   1d966:	89e3      	ldrh	r3, [r4, #14]
   1d968:	42ab      	cmp	r3, r5
   1d96a:	d91c      	bls.n	1d9a6 <nvs_startup+0x82>
		addr = (i << ADDR_SECT_SHIFT) +
		       (uint16_t)(fs->sector_size - ate_size);
   1d96c:	89a1      	ldrh	r1, [r4, #12]
   1d96e:	1b89      	subs	r1, r1, r6
   1d970:	b289      	uxth	r1, r1
		addr = (i << ADDR_SECT_SHIFT) +
   1d972:	eb01 4105 	add.w	r1, r1, r5, lsl #16
   1d976:	9103      	str	r1, [sp, #12]
		rc = nvs_flash_cmp_const(fs, addr, erase_value,
   1d978:	2308      	movs	r3, #8
   1d97a:	463a      	mov	r2, r7
   1d97c:	4620      	mov	r0, r4
   1d97e:	f016 f91a 	bl	33bb6 <nvs_flash_cmp_const>
					 sizeof(struct nvs_ate));
		if (rc) {
   1d982:	2800      	cmp	r0, #0
   1d984:	d0ed      	beq.n	1d962 <nvs_startup+0x3e>
			/* closed sector */
			closed_sectors++;
   1d986:	f108 0801 	add.w	r8, r8, #1
   1d98a:	fa1f f888 	uxth.w	r8, r8
			nvs_sector_advance(fs, &addr);
   1d98e:	a903      	add	r1, sp, #12
   1d990:	4620      	mov	r0, r4
   1d992:	f016 f8d7 	bl	33b44 <nvs_sector_advance>
			rc = nvs_flash_cmp_const(fs, addr, erase_value,
   1d996:	2308      	movs	r3, #8
   1d998:	463a      	mov	r2, r7
   1d99a:	9903      	ldr	r1, [sp, #12]
   1d99c:	4620      	mov	r0, r4
   1d99e:	f016 f90a 	bl	33bb6 <nvs_flash_cmp_const>
						 sizeof(struct nvs_ate));
			if (!rc) {
   1d9a2:	2800      	cmp	r0, #0
   1d9a4:	d1dd      	bne.n	1d962 <nvs_startup+0x3e>
				break;
			}
		}
	}
	/* all sectors are closed, this is not a nvs fs */
	if (closed_sectors == fs->sector_count) {
   1d9a6:	89e3      	ldrh	r3, [r4, #14]
   1d9a8:	4543      	cmp	r3, r8
   1d9aa:	f000 80f2 	beq.w	1db92 <nvs_startup+0x26e>
		rc = -EDEADLK;
		goto end;
	}

	if (i == fs->sector_count) {
   1d9ae:	42ab      	cmp	r3, r5
   1d9b0:	d00d      	beq.n	1d9ce <nvs_startup+0xaa>

	/* addr contains address of closing ate in the most recent sector,
	 * search for the last valid ate using the recover_last_ate routine
	 */

	rc = nvs_recover_last_ate(fs, &addr);
   1d9b2:	a903      	add	r1, sp, #12
   1d9b4:	4620      	mov	r0, r4
   1d9b6:	f016 f982 	bl	33cbe <nvs_recover_last_ate>
	if (rc) {
   1d9ba:	4605      	mov	r5, r0
   1d9bc:	2800      	cmp	r0, #0
   1d9be:	f040 80c6 	bne.w	1db4e <nvs_startup+0x22a>

	/* addr contains address of the last valid ate in the most recent sector
	 * search for the first ate containing all cells erased, in the process
	 * also update fs->data_wra.
	 */
	fs->ate_wra = addr;
   1d9c2:	9b03      	ldr	r3, [sp, #12]
   1d9c4:	6063      	str	r3, [r4, #4]
	fs->data_wra = addr & ADDR_SECT_MASK;
   1d9c6:	0c1b      	lsrs	r3, r3, #16
   1d9c8:	041b      	lsls	r3, r3, #16
   1d9ca:	60a3      	str	r3, [r4, #8]

	while (fs->ate_wra >= fs->data_wra) {
   1d9cc:	e010      	b.n	1d9f0 <nvs_startup+0xcc>
		rc = nvs_flash_cmp_const(fs, addr - ate_size, erase_value,
   1d9ce:	2308      	movs	r3, #8
   1d9d0:	463a      	mov	r2, r7
   1d9d2:	9903      	ldr	r1, [sp, #12]
   1d9d4:	1b89      	subs	r1, r1, r6
   1d9d6:	4620      	mov	r0, r4
   1d9d8:	f016 f8ed 	bl	33bb6 <nvs_flash_cmp_const>
		if (!rc) {
   1d9dc:	2800      	cmp	r0, #0
   1d9de:	d1e8      	bne.n	1d9b2 <nvs_startup+0x8e>
			nvs_sector_advance(fs, &addr);
   1d9e0:	a903      	add	r1, sp, #12
   1d9e2:	4620      	mov	r0, r4
   1d9e4:	f016 f8ae 	bl	33b44 <nvs_sector_advance>
   1d9e8:	e7e3      	b.n	1d9b2 <nvs_startup+0x8e>
				rc = -ESPIPE;
				goto end;
			}
		}

		fs->ate_wra -= ate_size;
   1d9ea:	6863      	ldr	r3, [r4, #4]
   1d9ec:	1b9b      	subs	r3, r3, r6
   1d9ee:	6063      	str	r3, [r4, #4]
	while (fs->ate_wra >= fs->data_wra) {
   1d9f0:	6861      	ldr	r1, [r4, #4]
   1d9f2:	68a3      	ldr	r3, [r4, #8]
   1d9f4:	4299      	cmp	r1, r3
   1d9f6:	d32e      	bcc.n	1da56 <nvs_startup+0x132>
		rc = nvs_flash_ate_rd(fs, fs->ate_wra, &last_ate);
   1d9f8:	aa04      	add	r2, sp, #16
   1d9fa:	4620      	mov	r0, r4
   1d9fc:	f016 f891 	bl	33b22 <nvs_flash_ate_rd>
		if (rc) {
   1da00:	4605      	mov	r5, r0
   1da02:	2800      	cmp	r0, #0
   1da04:	f040 80a3 	bne.w	1db4e <nvs_startup+0x22a>
		rc = nvs_ate_cmp_const(&last_ate, erase_value);
   1da08:	4639      	mov	r1, r7
   1da0a:	a804      	add	r0, sp, #16
   1da0c:	f016 f88e 	bl	33b2c <nvs_ate_cmp_const>
		if (!rc) {
   1da10:	b308      	cbz	r0, 1da56 <nvs_startup+0x132>
		if (nvs_ate_valid(fs, &last_ate)) {
   1da12:	a904      	add	r1, sp, #16
   1da14:	4620      	mov	r0, r4
   1da16:	f016 f936 	bl	33c86 <nvs_ate_valid>
   1da1a:	2800      	cmp	r0, #0
   1da1c:	d0e5      	beq.n	1d9ea <nvs_startup+0xc6>
			fs->data_wra = addr & ADDR_SECT_MASK;
   1da1e:	f8bd 300e 	ldrh.w	r3, [sp, #14]
   1da22:	0419      	lsls	r1, r3, #16
   1da24:	60a1      	str	r1, [r4, #8]
			fs->data_wra += nvs_al_size(fs, last_ate.offset + last_ate.len);
   1da26:	f8bd 3012 	ldrh.w	r3, [sp, #18]
   1da2a:	f8bd 0014 	ldrh.w	r0, [sp, #20]
   1da2e:	4403      	add	r3, r0
	uint8_t write_block_size = fs->flash_parameters->write_block_size;
   1da30:	6ae2      	ldr	r2, [r4, #44]	; 0x2c
   1da32:	6812      	ldr	r2, [r2, #0]
   1da34:	b2d5      	uxtb	r5, r2
	if (write_block_size <= 1U) {
   1da36:	2d01      	cmp	r5, #1
   1da38:	d903      	bls.n	1da42 <nvs_startup+0x11e>
	return (len + (write_block_size - 1U)) & ~(write_block_size - 1U);
   1da3a:	442b      	add	r3, r5
   1da3c:	3b01      	subs	r3, #1
   1da3e:	426a      	negs	r2, r5
   1da40:	4013      	ands	r3, r2
			fs->data_wra += nvs_al_size(fs, last_ate.offset + last_ate.len);
   1da42:	440b      	add	r3, r1
   1da44:	60a3      	str	r3, [r4, #8]
			if (fs->ate_wra == fs->data_wra && last_ate.len) {
   1da46:	6862      	ldr	r2, [r4, #4]
   1da48:	4293      	cmp	r3, r2
   1da4a:	d1ce      	bne.n	1d9ea <nvs_startup+0xc6>
   1da4c:	2800      	cmp	r0, #0
   1da4e:	d0cc      	beq.n	1d9ea <nvs_startup+0xc6>
				rc = -ESPIPE;
   1da50:	f06f 051c 	mvn.w	r5, #28
   1da54:	e082      	b.n	1db5c <nvs_startup+0x238>
	 * we might need to restart gc if it has not yet finished. Otherwise
	 * just erase the sector.
	 * When gc needs to be restarted, first erase the sector otherwise the
	 * data might not fit into the sector.
	 */
	addr = fs->ate_wra & ADDR_SECT_MASK;
   1da56:	88e3      	ldrh	r3, [r4, #6]
   1da58:	041b      	lsls	r3, r3, #16
   1da5a:	9303      	str	r3, [sp, #12]
	nvs_sector_advance(fs, &addr);
   1da5c:	a903      	add	r1, sp, #12
   1da5e:	4620      	mov	r0, r4
   1da60:	f016 f870 	bl	33b44 <nvs_sector_advance>
	rc = nvs_flash_cmp_const(fs, addr, erase_value, fs->sector_size);
   1da64:	89a3      	ldrh	r3, [r4, #12]
   1da66:	463a      	mov	r2, r7
   1da68:	9903      	ldr	r1, [sp, #12]
   1da6a:	4620      	mov	r0, r4
   1da6c:	f016 f8a3 	bl	33bb6 <nvs_flash_cmp_const>
	if (rc < 0) {
   1da70:	1e05      	subs	r5, r0, #0
   1da72:	db6c      	blt.n	1db4e <nvs_startup+0x22a>
		goto end;
	}
	if (rc) {
   1da74:	2d00      	cmp	r5, #0
   1da76:	d052      	beq.n	1db1e <nvs_startup+0x1fa>
		 * (gc_done_ate) that indicates that gc was finished.
		 */
		bool gc_done_marker = false;
		struct nvs_ate gc_done_ate;

		addr = fs->ate_wra + ate_size;
   1da78:	6863      	ldr	r3, [r4, #4]
   1da7a:	4433      	add	r3, r6
   1da7c:	9303      	str	r3, [sp, #12]
		while ((addr & ADDR_OFFS_MASK) < (fs->sector_size - ate_size)) {
   1da7e:	e002      	b.n	1da86 <nvs_startup+0x162>
			    (gc_done_ate.id == 0xffff) &&
			    (gc_done_ate.len == 0U)) {
				gc_done_marker = true;
				break;
			}
			addr += ate_size;
   1da80:	9b03      	ldr	r3, [sp, #12]
   1da82:	4433      	add	r3, r6
   1da84:	9303      	str	r3, [sp, #12]
		while ((addr & ADDR_OFFS_MASK) < (fs->sector_size - ate_size)) {
   1da86:	9903      	ldr	r1, [sp, #12]
   1da88:	b28a      	uxth	r2, r1
   1da8a:	89a3      	ldrh	r3, [r4, #12]
   1da8c:	1b9b      	subs	r3, r3, r6
   1da8e:	429a      	cmp	r2, r3
   1da90:	d218      	bcs.n	1dac4 <nvs_startup+0x1a0>
			rc = nvs_flash_ate_rd(fs, addr, &gc_done_ate);
   1da92:	aa01      	add	r2, sp, #4
   1da94:	4620      	mov	r0, r4
   1da96:	f016 f844 	bl	33b22 <nvs_flash_ate_rd>
			if (rc) {
   1da9a:	4605      	mov	r5, r0
   1da9c:	2800      	cmp	r0, #0
   1da9e:	d156      	bne.n	1db4e <nvs_startup+0x22a>
			if (nvs_ate_valid(fs, &gc_done_ate) &&
   1daa0:	a901      	add	r1, sp, #4
   1daa2:	4620      	mov	r0, r4
   1daa4:	f016 f8ef 	bl	33c86 <nvs_ate_valid>
   1daa8:	2800      	cmp	r0, #0
   1daaa:	d0e9      	beq.n	1da80 <nvs_startup+0x15c>
			    (gc_done_ate.id == 0xffff) &&
   1daac:	f8bd 2004 	ldrh.w	r2, [sp, #4]
			if (nvs_ate_valid(fs, &gc_done_ate) &&
   1dab0:	f64f 73ff 	movw	r3, #65535	; 0xffff
   1dab4:	429a      	cmp	r2, r3
   1dab6:	d1e3      	bne.n	1da80 <nvs_startup+0x15c>
			    (gc_done_ate.len == 0U)) {
   1dab8:	f8bd 3008 	ldrh.w	r3, [sp, #8]
			    (gc_done_ate.id == 0xffff) &&
   1dabc:	2b00      	cmp	r3, #0
   1dabe:	d1df      	bne.n	1da80 <nvs_startup+0x15c>
				gc_done_marker = true;
   1dac0:	2301      	movs	r3, #1
   1dac2:	e000      	b.n	1dac6 <nvs_startup+0x1a2>
		bool gc_done_marker = false;
   1dac4:	2300      	movs	r3, #0
		}

		if (gc_done_marker) {
   1dac6:	b9cb      	cbnz	r3, 1dafc <nvs_startup+0x1d8>
			addr = fs->ate_wra & ADDR_SECT_MASK;
			nvs_sector_advance(fs, &addr);
			rc = nvs_flash_erase_sector(fs, addr);
			goto end;
		}
		LOG_INF("No GC Done marker found: restarting gc");
   1dac8:	2149      	movs	r1, #73	; 0x49
   1daca:	4833      	ldr	r0, [pc, #204]	; (1db98 <nvs_startup+0x274>)
   1dacc:	f016 f80e 	bl	33aec <z_log_minimal_printk>
		rc = nvs_flash_erase_sector(fs, fs->ate_wra);
   1dad0:	6861      	ldr	r1, [r4, #4]
   1dad2:	4620      	mov	r0, r4
   1dad4:	f016 f894 	bl	33c00 <nvs_flash_erase_sector>
		if (rc) {
   1dad8:	4605      	mov	r5, r0
   1dada:	2800      	cmp	r0, #0
   1dadc:	d137      	bne.n	1db4e <nvs_startup+0x22a>
			goto end;
		}
		fs->ate_wra &= ADDR_SECT_MASK;
   1dade:	88e2      	ldrh	r2, [r4, #6]
		fs->ate_wra += (fs->sector_size - 2 * ate_size);
   1dae0:	89a3      	ldrh	r3, [r4, #12]
   1dae2:	eba3 0346 	sub.w	r3, r3, r6, lsl #1
   1dae6:	eb03 4302 	add.w	r3, r3, r2, lsl #16
   1daea:	6063      	str	r3, [r4, #4]
		fs->data_wra = (fs->ate_wra & ADDR_SECT_MASK);
   1daec:	0c1b      	lsrs	r3, r3, #16
   1daee:	041b      	lsls	r3, r3, #16
   1daf0:	60a3      	str	r3, [r4, #8]
		rc = nvs_gc(fs);
   1daf2:	4620      	mov	r0, r4
   1daf4:	f016 fa6d 	bl	33fd2 <nvs_gc>
   1daf8:	4605      	mov	r5, r0
		goto end;
   1dafa:	e028      	b.n	1db4e <nvs_startup+0x22a>
			LOG_INF("GC Done marker found");
   1dafc:	2149      	movs	r1, #73	; 0x49
   1dafe:	4827      	ldr	r0, [pc, #156]	; (1db9c <nvs_startup+0x278>)
   1db00:	f015 fff4 	bl	33aec <z_log_minimal_printk>
			addr = fs->ate_wra & ADDR_SECT_MASK;
   1db04:	88e3      	ldrh	r3, [r4, #6]
   1db06:	041b      	lsls	r3, r3, #16
   1db08:	9303      	str	r3, [sp, #12]
			nvs_sector_advance(fs, &addr);
   1db0a:	a903      	add	r1, sp, #12
   1db0c:	4620      	mov	r0, r4
   1db0e:	f016 f819 	bl	33b44 <nvs_sector_advance>
			rc = nvs_flash_erase_sector(fs, addr);
   1db12:	9903      	ldr	r1, [sp, #12]
   1db14:	4620      	mov	r0, r4
   1db16:	f016 f873 	bl	33c00 <nvs_flash_erase_sector>
   1db1a:	4605      	mov	r5, r0
			goto end;
   1db1c:	e017      	b.n	1db4e <nvs_startup+0x22a>
	}

	/* possible data write after last ate write, update data_wra */
	while (fs->ate_wra > fs->data_wra) {
   1db1e:	6863      	ldr	r3, [r4, #4]
   1db20:	68a1      	ldr	r1, [r4, #8]
   1db22:	428b      	cmp	r3, r1
   1db24:	d90d      	bls.n	1db42 <nvs_startup+0x21e>
		empty_len = fs->ate_wra - fs->data_wra;

		rc = nvs_flash_cmp_const(fs, fs->data_wra, erase_value,
   1db26:	1a5b      	subs	r3, r3, r1
   1db28:	463a      	mov	r2, r7
   1db2a:	4620      	mov	r0, r4
   1db2c:	f016 f843 	bl	33bb6 <nvs_flash_cmp_const>
				empty_len);
		if (rc < 0) {
   1db30:	1e05      	subs	r5, r0, #0
   1db32:	db0c      	blt.n	1db4e <nvs_startup+0x22a>
			goto end;
		}
		if (!rc) {
   1db34:	b12d      	cbz	r5, 1db42 <nvs_startup+0x21e>
			break;
		}

		fs->data_wra += fs->flash_parameters->write_block_size;
   1db36:	6ae3      	ldr	r3, [r4, #44]	; 0x2c
   1db38:	681a      	ldr	r2, [r3, #0]
   1db3a:	68a3      	ldr	r3, [r4, #8]
   1db3c:	4413      	add	r3, r2
   1db3e:	60a3      	str	r3, [r4, #8]
   1db40:	e7ed      	b.n	1db1e <nvs_startup+0x1fa>

	/* If the ate_wra is pointing to the first ate write location in a
	 * sector and data_wra is not 0, erase the sector as it contains no
	 * valid data (this also avoids closing a sector without any data).
	 */
	if (((fs->ate_wra + 2 * ate_size) == fs->sector_size) &&
   1db42:	6861      	ldr	r1, [r4, #4]
   1db44:	eb01 0246 	add.w	r2, r1, r6, lsl #1
   1db48:	89a3      	ldrh	r3, [r4, #12]
   1db4a:	429a      	cmp	r2, r3
   1db4c:	d00d      	beq.n	1db6a <nvs_startup+0x246>

end:
	/* If the sector is empty add a gc done ate to avoid having insufficient
	 * space when doing gc.
	 */
	if ((!rc) && ((fs->ate_wra & ADDR_OFFS_MASK) ==
   1db4e:	b92d      	cbnz	r5, 1db5c <nvs_startup+0x238>
   1db50:	88a2      	ldrh	r2, [r4, #4]
		      (fs->sector_size - 2 * ate_size))) {
   1db52:	89a3      	ldrh	r3, [r4, #12]
   1db54:	eba3 0646 	sub.w	r6, r3, r6, lsl #1
	if ((!rc) && ((fs->ate_wra & ADDR_OFFS_MASK) ==
   1db58:	42b2      	cmp	r2, r6
   1db5a:	d015      	beq.n	1db88 <nvs_startup+0x264>
	return z_impl_k_mutex_unlock(mutex);
   1db5c:	4648      	mov	r0, r9
   1db5e:	f011 ffd5 	bl	2fb0c <z_impl_k_mutex_unlock>

		rc = nvs_add_gc_done_ate(fs);
	}
	k_mutex_unlock(&fs->nvs_lock);
	return rc;
}
   1db62:	4628      	mov	r0, r5
   1db64:	b007      	add	sp, #28
   1db66:	e8bd 83f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, pc}
	    (fs->data_wra != (fs->ate_wra & ADDR_SECT_MASK))) {
   1db6a:	68a2      	ldr	r2, [r4, #8]
   1db6c:	0c0b      	lsrs	r3, r1, #16
   1db6e:	041b      	lsls	r3, r3, #16
	if (((fs->ate_wra + 2 * ate_size) == fs->sector_size) &&
   1db70:	429a      	cmp	r2, r3
   1db72:	d0ec      	beq.n	1db4e <nvs_startup+0x22a>
		rc = nvs_flash_erase_sector(fs, fs->ate_wra);
   1db74:	4620      	mov	r0, r4
   1db76:	f016 f843 	bl	33c00 <nvs_flash_erase_sector>
		if (rc) {
   1db7a:	4605      	mov	r5, r0
   1db7c:	2800      	cmp	r0, #0
   1db7e:	d1e6      	bne.n	1db4e <nvs_startup+0x22a>
		fs->data_wra = fs->ate_wra & ADDR_SECT_MASK;
   1db80:	88e3      	ldrh	r3, [r4, #6]
   1db82:	041b      	lsls	r3, r3, #16
   1db84:	60a3      	str	r3, [r4, #8]
   1db86:	e7e2      	b.n	1db4e <nvs_startup+0x22a>
		rc = nvs_add_gc_done_ate(fs);
   1db88:	4620      	mov	r0, r4
   1db8a:	f016 fa0c 	bl	33fa6 <nvs_add_gc_done_ate>
   1db8e:	4605      	mov	r5, r0
   1db90:	e7e4      	b.n	1db5c <nvs_startup+0x238>
		rc = -EDEADLK;
   1db92:	f06f 052c 	mvn.w	r5, #44	; 0x2c
   1db96:	e7e1      	b.n	1db5c <nvs_startup+0x238>
   1db98:	0003bea0 	.word	0x0003bea0
   1db9c:	0003be84 	.word	0x0003be84

0001dba0 <nvs_init>:

	return 0;
}

int nvs_init(struct nvs_fs *fs, const char *dev_name)
{
   1dba0:	b530      	push	{r4, r5, lr}
   1dba2:	b085      	sub	sp, #20
   1dba4:	4604      	mov	r4, r0
   1dba6:	460d      	mov	r5, r1

	int rc;
	struct flash_pages_info info;
	size_t write_block_size;

	k_mutex_init(&fs->nvs_lock);
   1dba8:	3014      	adds	r0, #20
	return z_impl_k_mutex_init(mutex);
   1dbaa:	f01d faf5 	bl	3b198 <z_impl_k_mutex_init>
		/* coverity[OVERRUN] */
		return (const struct device *) arch_syscall_invoke1(*(uintptr_t *)&name, K_SYSCALL_DEVICE_GET_BINDING);
	}
#endif
	compiler_barrier();
	return z_impl_device_get_binding(name);
   1dbae:	4628      	mov	r0, r5
   1dbb0:	f011 f904 	bl	2edbc <z_impl_device_get_binding>

	fs->flash_device = device_get_binding(dev_name);
   1dbb4:	62a0      	str	r0, [r4, #40]	; 0x28
	if (!fs->flash_device) {
   1dbb6:	b328      	cbz	r0, 1dc04 <nvs_init+0x64>
 */
__syscall const struct flash_parameters *flash_get_parameters(const struct device *dev);

static inline const struct flash_parameters *z_impl_flash_get_parameters(const struct device *dev)
{
	const struct flash_driver_api *api =
   1dbb8:	6883      	ldr	r3, [r0, #8]
		(const struct flash_driver_api *)dev->api;

	return api->get_parameters(dev);
   1dbba:	691b      	ldr	r3, [r3, #16]
   1dbbc:	4798      	blx	r3
		LOG_ERR("No valid flash device found");
		return -ENXIO;
	}

	fs->flash_parameters = flash_get_parameters(fs->flash_device);
   1dbbe:	62e0      	str	r0, [r4, #44]	; 0x2c
	if (fs->flash_parameters == NULL) {
   1dbc0:	b338      	cbz	r0, 1dc12 <nvs_init+0x72>
		LOG_ERR("Could not obtain flash parameters");
		return -EINVAL;
	}

	write_block_size = flash_get_write_block_size(fs->flash_device);
   1dbc2:	6aa0      	ldr	r0, [r4, #40]	; 0x28
	const struct flash_driver_api *api =
   1dbc4:	6883      	ldr	r3, [r0, #8]
	return api->get_parameters(dev)->write_block_size;
   1dbc6:	691b      	ldr	r3, [r3, #16]
   1dbc8:	4798      	blx	r3
   1dbca:	6803      	ldr	r3, [r0, #0]

	/* check that the write block size is supported */
	if (write_block_size > NVS_BLOCK_SIZE || write_block_size == 0) {
   1dbcc:	3b01      	subs	r3, #1
   1dbce:	2b1f      	cmp	r3, #31
   1dbd0:	d826      	bhi.n	1dc20 <nvs_init+0x80>
		LOG_ERR("Unsupported write block size");
		return -EINVAL;
	}

	/* check that sector size is a multiple of pagesize */
	rc = flash_get_page_info_by_offs(fs->flash_device, fs->offset, &info);
   1dbd2:	6aa0      	ldr	r0, [r4, #40]	; 0x28
   1dbd4:	6821      	ldr	r1, [r4, #0]
		/* coverity[OVERRUN] */
		return (int) arch_syscall_invoke3(*(uintptr_t *)&dev, *(uintptr_t *)&offset, *(uintptr_t *)&info, K_SYSCALL_FLASH_GET_PAGE_INFO_BY_OFFS);
	}
#endif
	compiler_barrier();
	return z_impl_flash_get_page_info_by_offs(dev, offset, info);
   1dbd6:	aa01      	add	r2, sp, #4
   1dbd8:	f01b fc4a 	bl	39470 <z_impl_flash_get_page_info_by_offs>
	if (rc) {
   1dbdc:	bb38      	cbnz	r0, 1dc2e <nvs_init+0x8e>
		LOG_ERR("Unable to get page info");
		return -EINVAL;
	}
	if (!fs->sector_size || fs->sector_size % info.size) {
   1dbde:	89a3      	ldrh	r3, [r4, #12]
   1dbe0:	b363      	cbz	r3, 1dc3c <nvs_init+0x9c>
   1dbe2:	9902      	ldr	r1, [sp, #8]
   1dbe4:	fbb3 f2f1 	udiv	r2, r3, r1
   1dbe8:	fb01 3312 	mls	r3, r1, r2, r3
   1dbec:	bb33      	cbnz	r3, 1dc3c <nvs_init+0x9c>
		LOG_ERR("Invalid sector size");
		return -EINVAL;
	}

	/* check the number of sectors, it should be at least 2 */
	if (fs->sector_count < 2) {
   1dbee:	89e3      	ldrh	r3, [r4, #14]
   1dbf0:	2b01      	cmp	r3, #1
   1dbf2:	d92a      	bls.n	1dc4a <nvs_init+0xaa>
		LOG_ERR("Configuration error - sector count");
		return -EINVAL;
	}

	rc = nvs_startup(fs);
   1dbf4:	4620      	mov	r0, r4
   1dbf6:	f7ff fe95 	bl	1d924 <nvs_startup>
	if (rc) {
   1dbfa:	4605      	mov	r5, r0
   1dbfc:	b360      	cbz	r0, 1dc58 <nvs_init+0xb8>
	LOG_INF("data wra: %d, %x",
		(fs->data_wra >> ADDR_SECT_SHIFT),
		(fs->data_wra & ADDR_OFFS_MASK));

	return 0;
}
   1dbfe:	4628      	mov	r0, r5
   1dc00:	b005      	add	sp, #20
   1dc02:	bd30      	pop	{r4, r5, pc}
		LOG_ERR("No valid flash device found");
   1dc04:	2145      	movs	r1, #69	; 0x45
   1dc06:	4820      	ldr	r0, [pc, #128]	; (1dc88 <nvs_init+0xe8>)
   1dc08:	f015 ff70 	bl	33aec <z_log_minimal_printk>
		return -ENXIO;
   1dc0c:	f06f 0505 	mvn.w	r5, #5
   1dc10:	e7f5      	b.n	1dbfe <nvs_init+0x5e>
		LOG_ERR("Could not obtain flash parameters");
   1dc12:	2145      	movs	r1, #69	; 0x45
   1dc14:	481d      	ldr	r0, [pc, #116]	; (1dc8c <nvs_init+0xec>)
   1dc16:	f015 ff69 	bl	33aec <z_log_minimal_printk>
		return -EINVAL;
   1dc1a:	f06f 0515 	mvn.w	r5, #21
   1dc1e:	e7ee      	b.n	1dbfe <nvs_init+0x5e>
		LOG_ERR("Unsupported write block size");
   1dc20:	2145      	movs	r1, #69	; 0x45
   1dc22:	481b      	ldr	r0, [pc, #108]	; (1dc90 <nvs_init+0xf0>)
   1dc24:	f015 ff62 	bl	33aec <z_log_minimal_printk>
		return -EINVAL;
   1dc28:	f06f 0515 	mvn.w	r5, #21
   1dc2c:	e7e7      	b.n	1dbfe <nvs_init+0x5e>
		LOG_ERR("Unable to get page info");
   1dc2e:	2145      	movs	r1, #69	; 0x45
   1dc30:	4818      	ldr	r0, [pc, #96]	; (1dc94 <nvs_init+0xf4>)
   1dc32:	f015 ff5b 	bl	33aec <z_log_minimal_printk>
		return -EINVAL;
   1dc36:	f06f 0515 	mvn.w	r5, #21
   1dc3a:	e7e0      	b.n	1dbfe <nvs_init+0x5e>
		LOG_ERR("Invalid sector size");
   1dc3c:	2145      	movs	r1, #69	; 0x45
   1dc3e:	4816      	ldr	r0, [pc, #88]	; (1dc98 <nvs_init+0xf8>)
   1dc40:	f015 ff54 	bl	33aec <z_log_minimal_printk>
		return -EINVAL;
   1dc44:	f06f 0515 	mvn.w	r5, #21
   1dc48:	e7d9      	b.n	1dbfe <nvs_init+0x5e>
		LOG_ERR("Configuration error - sector count");
   1dc4a:	2145      	movs	r1, #69	; 0x45
   1dc4c:	4813      	ldr	r0, [pc, #76]	; (1dc9c <nvs_init+0xfc>)
   1dc4e:	f015 ff4d 	bl	33aec <z_log_minimal_printk>
		return -EINVAL;
   1dc52:	f06f 0515 	mvn.w	r5, #21
   1dc56:	e7d2      	b.n	1dbfe <nvs_init+0x5e>
	fs->ready = true;
   1dc58:	2301      	movs	r3, #1
   1dc5a:	7423      	strb	r3, [r4, #16]
	LOG_INF("%d Sectors of %d bytes", fs->sector_count, fs->sector_size);
   1dc5c:	89a3      	ldrh	r3, [r4, #12]
   1dc5e:	89e2      	ldrh	r2, [r4, #14]
   1dc60:	2149      	movs	r1, #73	; 0x49
   1dc62:	480f      	ldr	r0, [pc, #60]	; (1dca0 <nvs_init+0x100>)
   1dc64:	f015 ff42 	bl	33aec <z_log_minimal_printk>
	LOG_INF("alloc wra: %d, %x",
   1dc68:	6862      	ldr	r2, [r4, #4]
   1dc6a:	b293      	uxth	r3, r2
   1dc6c:	0c12      	lsrs	r2, r2, #16
   1dc6e:	2149      	movs	r1, #73	; 0x49
   1dc70:	480c      	ldr	r0, [pc, #48]	; (1dca4 <nvs_init+0x104>)
   1dc72:	f015 ff3b 	bl	33aec <z_log_minimal_printk>
	LOG_INF("data wra: %d, %x",
   1dc76:	68a2      	ldr	r2, [r4, #8]
   1dc78:	b293      	uxth	r3, r2
   1dc7a:	0c12      	lsrs	r2, r2, #16
   1dc7c:	2149      	movs	r1, #73	; 0x49
   1dc7e:	480a      	ldr	r0, [pc, #40]	; (1dca8 <nvs_init+0x108>)
   1dc80:	f015 ff34 	bl	33aec <z_log_minimal_printk>
	return 0;
   1dc84:	e7bb      	b.n	1dbfe <nvs_init+0x5e>
   1dc86:	bf00      	nop
   1dc88:	0003bee8 	.word	0x0003bee8
   1dc8c:	0003bf0c 	.word	0x0003bf0c
   1dc90:	0003bf34 	.word	0x0003bf34
   1dc94:	0003bf58 	.word	0x0003bf58
   1dc98:	0003bf78 	.word	0x0003bf78
   1dc9c:	0003bf94 	.word	0x0003bf94
   1dca0:	0003bfbc 	.word	0x0003bfbc
   1dca4:	0003bfd8 	.word	0x0003bfd8
   1dca8:	0003bff0 	.word	0x0003bff0

0001dcac <nvs_write>:

ssize_t nvs_write(struct nvs_fs *fs, uint16_t id, const void *data, size_t len)
{
   1dcac:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
   1dcb0:	b087      	sub	sp, #28
   1dcb2:	9201      	str	r2, [sp, #4]
	struct nvs_ate wlk_ate;
	uint32_t wlk_addr, rd_addr;
	uint16_t required_space = 0U; /* no space, appropriate for delete ate */
	bool prev_found = false;

	if (!fs->ready) {
   1dcb4:	f890 b010 	ldrb.w	fp, [r0, #16]
   1dcb8:	f1bb 0f00 	cmp.w	fp, #0
   1dcbc:	d026      	beq.n	1dd0c <nvs_write+0x60>
   1dcbe:	4604      	mov	r4, r0
   1dcc0:	460e      	mov	r6, r1
   1dcc2:	4699      	mov	r9, r3
	uint8_t write_block_size = fs->flash_parameters->write_block_size;
   1dcc4:	6ac3      	ldr	r3, [r0, #44]	; 0x2c
   1dcc6:	681b      	ldr	r3, [r3, #0]
   1dcc8:	b2d9      	uxtb	r1, r3
	if (write_block_size <= 1U) {
   1dcca:	2901      	cmp	r1, #1
   1dccc:	d925      	bls.n	1dd1a <nvs_write+0x6e>
	return (len + (write_block_size - 1U)) & ~(write_block_size - 1U);
   1dcce:	f101 0a07 	add.w	sl, r1, #7
   1dcd2:	424a      	negs	r2, r1
   1dcd4:	ea0a 0a02 	and.w	sl, sl, r2
	if (write_block_size <= 1U) {
   1dcd8:	2901      	cmp	r1, #1
   1dcda:	d921      	bls.n	1dd20 <nvs_write+0x74>
	return (len + (write_block_size - 1U)) & ~(write_block_size - 1U);
   1dcdc:	b2db      	uxtb	r3, r3
   1dcde:	eb03 0809 	add.w	r8, r3, r9
   1dce2:	f108 38ff 	add.w	r8, r8, #4294967295
   1dce6:	425b      	negs	r3, r3
   1dce8:	ea08 0803 	and.w	r8, r8, r3

	/* The maximum data size is sector size - 4 ate
	 * where: 1 ate for data, 1 ate for sector close, 1 ate for gc done,
	 * and 1 ate to always allow a delete.
	 */
	if ((len > (fs->sector_size - 4 * ate_size)) ||
   1dcec:	89a3      	ldrh	r3, [r4, #12]
   1dcee:	eba3 038a 	sub.w	r3, r3, sl, lsl #2
   1dcf2:	4599      	cmp	r9, r3
   1dcf4:	f200 808a 	bhi.w	1de0c <nvs_write+0x160>
   1dcf8:	f1b9 0f00 	cmp.w	r9, #0
   1dcfc:	d003      	beq.n	1dd06 <nvs_write+0x5a>
	    ((len > 0) && (data == NULL))) {
   1dcfe:	9b01      	ldr	r3, [sp, #4]
   1dd00:	2b00      	cmp	r3, #0
   1dd02:	f000 8086 	beq.w	1de12 <nvs_write+0x166>
		return -EINVAL;
	}

	/* find latest entry with same id */
	wlk_addr = fs->ate_wra;
   1dd06:	6863      	ldr	r3, [r4, #4]
   1dd08:	9303      	str	r3, [sp, #12]
	rd_addr = wlk_addr;
   1dd0a:	e00f      	b.n	1dd2c <nvs_write+0x80>
		LOG_ERR("NVS not initialized");
   1dd0c:	2145      	movs	r1, #69	; 0x45
   1dd0e:	4842      	ldr	r0, [pc, #264]	; (1de18 <nvs_write+0x16c>)
   1dd10:	f015 feec 	bl	33aec <z_log_minimal_printk>
		return -EACCES;
   1dd14:	f06f 050c 	mvn.w	r5, #12
   1dd18:	e072      	b.n	1de00 <nvs_write+0x154>
		return len;
   1dd1a:	f04f 0a08 	mov.w	sl, #8
   1dd1e:	e7db      	b.n	1dcd8 <nvs_write+0x2c>
   1dd20:	46c8      	mov	r8, r9
   1dd22:	e7e3      	b.n	1dcec <nvs_write+0x40>
		}
		if ((wlk_ate.id == id) && (nvs_ate_valid(fs, &wlk_ate))) {
			prev_found = true;
			break;
		}
		if (wlk_addr == fs->ate_wra) {
   1dd24:	6862      	ldr	r2, [r4, #4]
   1dd26:	9b03      	ldr	r3, [sp, #12]
   1dd28:	429a      	cmp	r2, r3
   1dd2a:	d013      	beq.n	1dd54 <nvs_write+0xa8>
		rd_addr = wlk_addr;
   1dd2c:	9f03      	ldr	r7, [sp, #12]
		rc = nvs_prev_ate(fs, &wlk_addr, &wlk_ate);
   1dd2e:	aa04      	add	r2, sp, #16
   1dd30:	a903      	add	r1, sp, #12
   1dd32:	4620      	mov	r0, r4
   1dd34:	f016 f823 	bl	33d7e <nvs_prev_ate>
		if (rc) {
   1dd38:	4605      	mov	r5, r0
   1dd3a:	2800      	cmp	r0, #0
   1dd3c:	d160      	bne.n	1de00 <nvs_write+0x154>
		if ((wlk_ate.id == id) && (nvs_ate_valid(fs, &wlk_ate))) {
   1dd3e:	f8bd 3010 	ldrh.w	r3, [sp, #16]
   1dd42:	429e      	cmp	r6, r3
   1dd44:	d1ee      	bne.n	1dd24 <nvs_write+0x78>
   1dd46:	a904      	add	r1, sp, #16
   1dd48:	4620      	mov	r0, r4
   1dd4a:	f015 ff9c 	bl	33c86 <nvs_ate_valid>
   1dd4e:	2800      	cmp	r0, #0
   1dd50:	d0e8      	beq.n	1dd24 <nvs_write+0x78>
   1dd52:	e001      	b.n	1dd58 <nvs_write+0xac>
	bool prev_found = false;
   1dd54:	f04f 0b00 	mov.w	fp, #0
			break;
		}
	}

	if (prev_found) {
   1dd58:	f1bb 0f00 	cmp.w	fp, #0
   1dd5c:	d018      	beq.n	1dd90 <nvs_write+0xe4>
		/* previous entry found */
		rd_addr &= ADDR_SECT_MASK;
   1dd5e:	0c3f      	lsrs	r7, r7, #16
   1dd60:	043f      	lsls	r7, r7, #16
		rd_addr += wlk_ate.offset;
   1dd62:	f8bd 1012 	ldrh.w	r1, [sp, #18]
   1dd66:	4439      	add	r1, r7

		if (len == 0) {
   1dd68:	f1b9 0f00 	cmp.w	r9, #0
   1dd6c:	d103      	bne.n	1dd76 <nvs_write+0xca>
			/* do not try to compare with empty data */
			if (wlk_ate.len == 0U) {
   1dd6e:	f8bd 3014 	ldrh.w	r3, [sp, #20]
   1dd72:	b983      	cbnz	r3, 1dd96 <nvs_write+0xea>
   1dd74:	e044      	b.n	1de00 <nvs_write+0x154>
				/* skip delete entry as it is already the
				 * last one
				 */
				return 0;
			}
		} else if (len == wlk_ate.len) {
   1dd76:	f8bd 3014 	ldrh.w	r3, [sp, #20]
   1dd7a:	4599      	cmp	r9, r3
   1dd7c:	d10b      	bne.n	1dd96 <nvs_write+0xea>
			/* do not try to compare if lengths are not equal */
			/* compare the data and if equal return 0 */
			rc = nvs_flash_block_cmp(fs, rd_addr, data, len);
   1dd7e:	464b      	mov	r3, r9
   1dd80:	9a01      	ldr	r2, [sp, #4]
   1dd82:	4620      	mov	r0, r4
   1dd84:	f015 feeb 	bl	33b5e <nvs_flash_block_cmp>
			if (rc <= 0) {
   1dd88:	2800      	cmp	r0, #0
   1dd8a:	dc04      	bgt.n	1dd96 <nvs_write+0xea>
				return rc;
   1dd8c:	4605      	mov	r5, r0
   1dd8e:	e037      	b.n	1de00 <nvs_write+0x154>
			}
		}
	} else {
		/* skip delete entry for non-existing entry */
		if (len == 0) {
   1dd90:	f1b9 0f00 	cmp.w	r9, #0
   1dd94:	d034      	beq.n	1de00 <nvs_write+0x154>
			return 0;
		}
	}

	/* calculate required space if the entry contains data */
	if (data_size) {
   1dd96:	f1b8 0f00 	cmp.w	r8, #0
   1dd9a:	d00c      	beq.n	1ddb6 <nvs_write+0x10a>
		/* Leave space for delete ate */
		required_space = data_size + ate_size;
   1dd9c:	fa1a f788 	uxtah	r7, sl, r8
   1dda0:	b2bf      	uxth	r7, r7
	}

	k_mutex_lock(&fs->nvs_lock, K_FOREVER);
   1dda2:	f104 0814 	add.w	r8, r4, #20
	return z_impl_k_mutex_lock(mutex, timeout);
   1dda6:	f04f 32ff 	mov.w	r2, #4294967295
   1ddaa:	f04f 33ff 	mov.w	r3, #4294967295
   1ddae:	4640      	mov	r0, r8
   1ddb0:	f011 fdb6 	bl	2f920 <z_impl_k_mutex_lock>

	gc_count = 0;
   1ddb4:	e00c      	b.n	1ddd0 <nvs_write+0x124>
	uint16_t required_space = 0U; /* no space, appropriate for delete ate */
   1ddb6:	2700      	movs	r7, #0
   1ddb8:	e7f3      	b.n	1dda2 <nvs_write+0xf6>
			goto end;
		}

		if (fs->ate_wra >= (fs->data_wra + required_space)) {

			rc = nvs_flash_wrt_entry(fs, id, data, len);
   1ddba:	464b      	mov	r3, r9
   1ddbc:	9a01      	ldr	r2, [sp, #4]
   1ddbe:	4631      	mov	r1, r6
   1ddc0:	4620      	mov	r0, r4
   1ddc2:	f016 f9a6 	bl	34112 <nvs_flash_wrt_entry>
			if (rc) {
   1ddc6:	4605      	mov	r5, r0
   1ddc8:	b9b8      	cbnz	r0, 1ddfa <nvs_write+0x14e>
		if (rc) {
			goto end;
		}
		gc_count++;
	}
	rc = len;
   1ddca:	464d      	mov	r5, r9
   1ddcc:	e015      	b.n	1ddfa <nvs_write+0x14e>
		gc_count++;
   1ddce:	3501      	adds	r5, #1
		if (gc_count == fs->sector_count) {
   1ddd0:	89e3      	ldrh	r3, [r4, #14]
   1ddd2:	429d      	cmp	r5, r3
   1ddd4:	d00f      	beq.n	1ddf6 <nvs_write+0x14a>
		if (fs->ate_wra >= (fs->data_wra + required_space)) {
   1ddd6:	6862      	ldr	r2, [r4, #4]
   1ddd8:	68a3      	ldr	r3, [r4, #8]
   1ddda:	443b      	add	r3, r7
   1dddc:	429a      	cmp	r2, r3
   1ddde:	d2ec      	bcs.n	1ddba <nvs_write+0x10e>
		rc = nvs_sector_close(fs);
   1dde0:	4620      	mov	r0, r4
   1dde2:	f016 f9b5 	bl	34150 <nvs_sector_close>
		if (rc) {
   1dde6:	b978      	cbnz	r0, 1de08 <nvs_write+0x15c>
		rc = nvs_gc(fs);
   1dde8:	4620      	mov	r0, r4
   1ddea:	f016 f8f2 	bl	33fd2 <nvs_gc>
		if (rc) {
   1ddee:	2800      	cmp	r0, #0
   1ddf0:	d0ed      	beq.n	1ddce <nvs_write+0x122>
		rc = nvs_gc(fs);
   1ddf2:	4605      	mov	r5, r0
   1ddf4:	e001      	b.n	1ddfa <nvs_write+0x14e>
			rc = -ENOSPC;
   1ddf6:	f06f 051b 	mvn.w	r5, #27
	return z_impl_k_mutex_unlock(mutex);
   1ddfa:	4640      	mov	r0, r8
   1ddfc:	f011 fe86 	bl	2fb0c <z_impl_k_mutex_unlock>
end:
	k_mutex_unlock(&fs->nvs_lock);
	return rc;
}
   1de00:	4628      	mov	r0, r5
   1de02:	b007      	add	sp, #28
   1de04:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
		rc = nvs_sector_close(fs);
   1de08:	4605      	mov	r5, r0
   1de0a:	e7f6      	b.n	1ddfa <nvs_write+0x14e>
		return -EINVAL;
   1de0c:	f06f 0515 	mvn.w	r5, #21
   1de10:	e7f6      	b.n	1de00 <nvs_write+0x154>
   1de12:	f06f 0515 	mvn.w	r5, #21
   1de16:	e7f3      	b.n	1de00 <nvs_write+0x154>
   1de18:	0003becc 	.word	0x0003becc

0001de1c <nvs_read_hist>:
	return nvs_write(fs, id, NULL, 0);
}

ssize_t nvs_read_hist(struct nvs_fs *fs, uint16_t id, void *data, size_t len,
		      uint16_t cnt)
{
   1de1c:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
   1de20:	b084      	sub	sp, #16
   1de22:	4699      	mov	r9, r3
   1de24:	f8bd 8030 	ldrh.w	r8, [sp, #48]	; 0x30
	uint32_t wlk_addr, rd_addr;
	uint16_t cnt_his;
	struct nvs_ate wlk_ate;
	size_t ate_size;

	if (!fs->ready) {
   1de28:	7c03      	ldrb	r3, [r0, #16]
   1de2a:	b1a3      	cbz	r3, 1de56 <nvs_read_hist+0x3a>
   1de2c:	4604      	mov	r4, r0
   1de2e:	460f      	mov	r7, r1
   1de30:	4692      	mov	sl, r2
	uint8_t write_block_size = fs->flash_parameters->write_block_size;
   1de32:	6ac3      	ldr	r3, [r0, #44]	; 0x2c
   1de34:	681b      	ldr	r3, [r3, #0]
   1de36:	b2da      	uxtb	r2, r3
	if (write_block_size <= 1U) {
   1de38:	2a01      	cmp	r2, #1
   1de3a:	d913      	bls.n	1de64 <nvs_read_hist+0x48>
	return (len + (write_block_size - 1U)) & ~(write_block_size - 1U);
   1de3c:	4613      	mov	r3, r2
   1de3e:	3207      	adds	r2, #7
   1de40:	425b      	negs	r3, r3
   1de42:	401a      	ands	r2, r3
		return -EACCES;
	}

	ate_size = nvs_al_size(fs, sizeof(struct nvs_ate));

	if (len > (fs->sector_size - 2 * ate_size)) {
   1de44:	89a3      	ldrh	r3, [r4, #12]
   1de46:	eba3 0342 	sub.w	r3, r3, r2, lsl #1
   1de4a:	4599      	cmp	r9, r3
   1de4c:	d84b      	bhi.n	1dee6 <nvs_read_hist+0xca>
		return -EINVAL;
	}

	cnt_his = 0U;

	wlk_addr = fs->ate_wra;
   1de4e:	6866      	ldr	r6, [r4, #4]
   1de50:	9603      	str	r6, [sp, #12]
	cnt_his = 0U;
   1de52:	2500      	movs	r5, #0
	rd_addr = wlk_addr;

	while (cnt_his <= cnt) {
   1de54:	e00c      	b.n	1de70 <nvs_read_hist+0x54>
		LOG_ERR("NVS not initialized");
   1de56:	2145      	movs	r1, #69	; 0x45
   1de58:	4827      	ldr	r0, [pc, #156]	; (1def8 <nvs_read_hist+0xdc>)
   1de5a:	f015 fe47 	bl	33aec <z_log_minimal_printk>
		return -EACCES;
   1de5e:	f06f 030c 	mvn.w	r3, #12
   1de62:	e035      	b.n	1ded0 <nvs_read_hist+0xb4>
		return len;
   1de64:	2208      	movs	r2, #8
   1de66:	e7ed      	b.n	1de44 <nvs_read_hist+0x28>
			goto err;
		}
		if ((wlk_ate.id == id) &&  (nvs_ate_valid(fs, &wlk_ate))) {
			cnt_his++;
		}
		if (wlk_addr == fs->ate_wra) {
   1de68:	6862      	ldr	r2, [r4, #4]
   1de6a:	9b03      	ldr	r3, [sp, #12]
   1de6c:	429a      	cmp	r2, r3
   1de6e:	d016      	beq.n	1de9e <nvs_read_hist+0x82>
	while (cnt_his <= cnt) {
   1de70:	45a8      	cmp	r8, r5
   1de72:	d314      	bcc.n	1de9e <nvs_read_hist+0x82>
		rd_addr = wlk_addr;
   1de74:	9e03      	ldr	r6, [sp, #12]
		rc = nvs_prev_ate(fs, &wlk_addr, &wlk_ate);
   1de76:	aa01      	add	r2, sp, #4
   1de78:	a903      	add	r1, sp, #12
   1de7a:	4620      	mov	r0, r4
   1de7c:	f015 ff7f 	bl	33d7e <nvs_prev_ate>
		if (rc) {
   1de80:	4603      	mov	r3, r0
   1de82:	bb28      	cbnz	r0, 1ded0 <nvs_read_hist+0xb4>
		if ((wlk_ate.id == id) &&  (nvs_ate_valid(fs, &wlk_ate))) {
   1de84:	f8bd 3004 	ldrh.w	r3, [sp, #4]
   1de88:	429f      	cmp	r7, r3
   1de8a:	d1ed      	bne.n	1de68 <nvs_read_hist+0x4c>
   1de8c:	a901      	add	r1, sp, #4
   1de8e:	4620      	mov	r0, r4
   1de90:	f015 fef9 	bl	33c86 <nvs_ate_valid>
   1de94:	2800      	cmp	r0, #0
   1de96:	d0e7      	beq.n	1de68 <nvs_read_hist+0x4c>
			cnt_his++;
   1de98:	3501      	adds	r5, #1
   1de9a:	b2ad      	uxth	r5, r5
   1de9c:	e7e4      	b.n	1de68 <nvs_read_hist+0x4c>
			break;
		}
	}

	if (((wlk_addr == fs->ate_wra) && (wlk_ate.id != id)) ||
   1de9e:	6862      	ldr	r2, [r4, #4]
   1dea0:	9b03      	ldr	r3, [sp, #12]
   1dea2:	429a      	cmp	r2, r3
   1dea4:	d018      	beq.n	1ded8 <nvs_read_hist+0xbc>
	    (wlk_ate.len == 0U) || (cnt_his < cnt)) {
   1dea6:	f8bd 3008 	ldrh.w	r3, [sp, #8]
	if (((wlk_addr == fs->ate_wra) && (wlk_ate.id != id)) ||
   1deaa:	b1fb      	cbz	r3, 1deec <nvs_read_hist+0xd0>
	    (wlk_ate.len == 0U) || (cnt_his < cnt)) {
   1deac:	45a8      	cmp	r8, r5
   1deae:	d820      	bhi.n	1def2 <nvs_read_hist+0xd6>
		return -ENOENT;
	}

	rd_addr &= ADDR_SECT_MASK;
   1deb0:	0c36      	lsrs	r6, r6, #16
   1deb2:	0436      	lsls	r6, r6, #16
	rd_addr += wlk_ate.offset;
   1deb4:	f8bd 1006 	ldrh.w	r1, [sp, #6]
	rc = nvs_flash_rd(fs, rd_addr, data, MIN(len, wlk_ate.len));
   1deb8:	454b      	cmp	r3, r9
   1deba:	bf28      	it	cs
   1debc:	464b      	movcs	r3, r9
   1debe:	4652      	mov	r2, sl
   1dec0:	4431      	add	r1, r6
   1dec2:	4620      	mov	r0, r4
   1dec4:	f015 fe20 	bl	33b08 <nvs_flash_rd>
	if (rc) {
   1dec8:	4603      	mov	r3, r0
   1deca:	b908      	cbnz	r0, 1ded0 <nvs_read_hist+0xb4>
		goto err;
	}

	return wlk_ate.len;
   1decc:	f8bd 3008 	ldrh.w	r3, [sp, #8]

err:
	return rc;
}
   1ded0:	4618      	mov	r0, r3
   1ded2:	b004      	add	sp, #16
   1ded4:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
	if (((wlk_addr == fs->ate_wra) && (wlk_ate.id != id)) ||
   1ded8:	f8bd 3004 	ldrh.w	r3, [sp, #4]
   1dedc:	429f      	cmp	r7, r3
   1dede:	d0e2      	beq.n	1dea6 <nvs_read_hist+0x8a>
		return -ENOENT;
   1dee0:	f06f 0301 	mvn.w	r3, #1
   1dee4:	e7f4      	b.n	1ded0 <nvs_read_hist+0xb4>
		return -EINVAL;
   1dee6:	f06f 0315 	mvn.w	r3, #21
   1deea:	e7f1      	b.n	1ded0 <nvs_read_hist+0xb4>
		return -ENOENT;
   1deec:	f06f 0301 	mvn.w	r3, #1
   1def0:	e7ee      	b.n	1ded0 <nvs_read_hist+0xb4>
   1def2:	f06f 0301 	mvn.w	r3, #1
   1def6:	e7eb      	b.n	1ded0 <nvs_read_hist+0xb4>
   1def8:	0003becc 	.word	0x0003becc

0001defc <get_flash_area_from_id>:

extern const struct flash_area *flash_map;
extern const int flash_map_entries;

static struct flash_area const *get_flash_area_from_id(int idx)
{
   1defc:	b410      	push	{r4}
   1defe:	4604      	mov	r4, r0
	for (int i = 0; i < flash_map_entries; i++) {
   1df00:	2300      	movs	r3, #0
   1df02:	4a08      	ldr	r2, [pc, #32]	; (1df24 <get_flash_area_from_id+0x28>)
   1df04:	6812      	ldr	r2, [r2, #0]
   1df06:	429a      	cmp	r2, r3
   1df08:	dd09      	ble.n	1df1e <get_flash_area_from_id+0x22>
		if (flash_map[i].fa_id == idx) {
   1df0a:	011a      	lsls	r2, r3, #4
   1df0c:	4906      	ldr	r1, [pc, #24]	; (1df28 <get_flash_area_from_id+0x2c>)
   1df0e:	6809      	ldr	r1, [r1, #0]
   1df10:	eb01 1003 	add.w	r0, r1, r3, lsl #4
   1df14:	5c8a      	ldrb	r2, [r1, r2]
   1df16:	42a2      	cmp	r2, r4
   1df18:	d002      	beq.n	1df20 <get_flash_area_from_id+0x24>
	for (int i = 0; i < flash_map_entries; i++) {
   1df1a:	3301      	adds	r3, #1
   1df1c:	e7f1      	b.n	1df02 <get_flash_area_from_id+0x6>
			return &flash_map[i];
		}
	}

	return NULL;
   1df1e:	2000      	movs	r0, #0
}
   1df20:	bc10      	pop	{r4}
   1df22:	4770      	bx	lr
   1df24:	0003c2a4 	.word	0x0003c2a4
   1df28:	20000530 	.word	0x20000530

0001df2c <flash_area_open>:

int flash_area_open(uint8_t id, const struct flash_area **fap)
{
	const struct flash_area *area;

	if (flash_map == NULL) {
   1df2c:	4b08      	ldr	r3, [pc, #32]	; (1df50 <flash_area_open+0x24>)
   1df2e:	681b      	ldr	r3, [r3, #0]
   1df30:	b13b      	cbz	r3, 1df42 <flash_area_open+0x16>
{
   1df32:	b510      	push	{r4, lr}
   1df34:	460c      	mov	r4, r1
		return -EACCES;
	}

	area = get_flash_area_from_id(id);
   1df36:	f7ff ffe1 	bl	1defc <get_flash_area_from_id>
	if (area == NULL) {
   1df3a:	b128      	cbz	r0, 1df48 <flash_area_open+0x1c>
		return -ENOENT;
	}

	*fap = area;
   1df3c:	6020      	str	r0, [r4, #0]
	return 0;
   1df3e:	2000      	movs	r0, #0
}
   1df40:	bd10      	pop	{r4, pc}
		return -EACCES;
   1df42:	f06f 000c 	mvn.w	r0, #12
}
   1df46:	4770      	bx	lr
		return -ENOENT;
   1df48:	f06f 0001 	mvn.w	r0, #1
   1df4c:	e7f8      	b.n	1df40 <flash_area_open+0x14>
   1df4e:	bf00      	nop
   1df50:	20000530 	.word	0x20000530

0001df54 <flash_area_get_sectors>:

	return true;
}

int flash_area_get_sectors(int idx, uint32_t *cnt, struct flash_sector *ret)
{
   1df54:	b500      	push	{lr}
   1df56:	b08b      	sub	sp, #44	; 0x2c
	struct layout_data data;

	return flash_area_layout(idx, cnt, ret, get_sectors_cb, &data);
   1df58:	ab03      	add	r3, sp, #12
   1df5a:	9300      	str	r3, [sp, #0]
   1df5c:	4b02      	ldr	r3, [pc, #8]	; (1df68 <flash_area_get_sectors+0x14>)
   1df5e:	f016 f9a4 	bl	342aa <flash_area_layout>
}
   1df62:	b00b      	add	sp, #44	; 0x2c
   1df64:	f85d fb04 	ldr.w	pc, [sp], #4
   1df68:	0003426f 	.word	0x0003426f

0001df6c <flash_sync>:
}

#endif /* CONFIG_STREAM_FLASH_ERASE */

static int flash_sync(struct stream_flash_ctx *ctx)
{
   1df6c:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
	int rc = 0;
	size_t write_addr = ctx->offset + ctx->bytes_written;
   1df70:	6946      	ldr	r6, [r0, #20]
   1df72:	6903      	ldr	r3, [r0, #16]
   1df74:	441e      	add	r6, r3
	size_t buf_bytes_aligned;
	size_t fill_length;
	uint8_t filler;


	if (ctx->buf_bytes == 0) {
   1df76:	6883      	ldr	r3, [r0, #8]
   1df78:	2b00      	cmp	r3, #0
   1df7a:	d06c      	beq.n	1e056 <flash_sync+0xea>
   1df7c:	4604      	mov	r4, r0
				rc, write_addr);
			return rc;
		}
	}

	fill_length = flash_get_write_block_size(ctx->fdev);
   1df7e:	68c0      	ldr	r0, [r0, #12]
	const struct flash_driver_api *api =
   1df80:	6883      	ldr	r3, [r0, #8]
	return api->get_parameters(dev)->write_block_size;
   1df82:	691b      	ldr	r3, [r3, #16]
   1df84:	4798      	blx	r3
   1df86:	6803      	ldr	r3, [r0, #0]
	if (ctx->buf_bytes % fill_length) {
   1df88:	68a2      	ldr	r2, [r4, #8]
   1df8a:	fbb2 f5f3 	udiv	r5, r2, r3
   1df8e:	fb03 2515 	mls	r5, r3, r5, r2
   1df92:	b15d      	cbz	r5, 1dfac <flash_sync+0x40>
		fill_length -= ctx->buf_bytes % fill_length;
   1df94:	1b5d      	subs	r5, r3, r5
		filler = flash_get_parameters(ctx->fdev)->erase_value;
   1df96:	68e0      	ldr	r0, [r4, #12]
	const struct flash_driver_api *api =
   1df98:	6883      	ldr	r3, [r0, #8]
	return api->get_parameters(dev);
   1df9a:	691b      	ldr	r3, [r3, #16]
   1df9c:	4798      	blx	r3

		memset(ctx->buf + ctx->buf_bytes, filler, fill_length);
   1df9e:	6827      	ldr	r7, [r4, #0]
   1dfa0:	68a3      	ldr	r3, [r4, #8]
   1dfa2:	462a      	mov	r2, r5
   1dfa4:	7901      	ldrb	r1, [r0, #4]
   1dfa6:	18f8      	adds	r0, r7, r3
   1dfa8:	f017 fdcc 	bl	35b44 <memset>
	} else {
		fill_length = 0;
	}

	buf_bytes_aligned = ctx->buf_bytes + fill_length;
   1dfac:	68a3      	ldr	r3, [r4, #8]
   1dfae:	eb03 0805 	add.w	r8, r3, r5
	rc = flash_write(ctx->fdev, write_addr, ctx->buf, buf_bytes_aligned);
   1dfb2:	68e7      	ldr	r7, [r4, #12]
   1dfb4:	f8d4 a000 	ldr.w	sl, [r4]
	const struct flash_driver_api *api =
   1dfb8:	f8d7 9008 	ldr.w	r9, [r7, #8]
	if (api->write_protection != NULL) {
   1dfbc:	f8d9 300c 	ldr.w	r3, [r9, #12]
   1dfc0:	b123      	cbz	r3, 1dfcc <flash_sync+0x60>
		rc = api->write_protection(dev, false);
   1dfc2:	2100      	movs	r1, #0
   1dfc4:	4638      	mov	r0, r7
   1dfc6:	4798      	blx	r3
		if (rc) {
   1dfc8:	4605      	mov	r5, r0
   1dfca:	b968      	cbnz	r0, 1dfe8 <flash_sync+0x7c>
	rc = api->write(dev, offset, data, len);
   1dfcc:	4643      	mov	r3, r8
   1dfce:	4652      	mov	r2, sl
   1dfd0:	4631      	mov	r1, r6
   1dfd2:	4638      	mov	r0, r7
   1dfd4:	f8d9 5004 	ldr.w	r5, [r9, #4]
   1dfd8:	47a8      	blx	r5
   1dfda:	4605      	mov	r5, r0
	if (api->write_protection != NULL) {
   1dfdc:	f8d9 300c 	ldr.w	r3, [r9, #12]
   1dfe0:	b113      	cbz	r3, 1dfe8 <flash_sync+0x7c>
		(void) api->write_protection(dev, true);
   1dfe2:	2101      	movs	r1, #1
   1dfe4:	4638      	mov	r0, r7
   1dfe6:	4798      	blx	r3

	if (rc != 0) {
   1dfe8:	b915      	cbnz	r5, 1dff0 <flash_sync+0x84>
		LOG_ERR("flash_write error %d offset=0x%08zx", rc,
			write_addr);
		return rc;
	}

	if (ctx->callback) {
   1dfea:	69e3      	ldr	r3, [r4, #28]
   1dfec:	b963      	cbnz	r3, 1e008 <flash_sync+0x9c>
   1dfee:	e01d      	b.n	1e02c <flash_sync+0xc0>
		LOG_ERR("flash_write error %d offset=0x%08zx", rc,
   1dff0:	4633      	mov	r3, r6
   1dff2:	462a      	mov	r2, r5
   1dff4:	2145      	movs	r1, #69	; 0x45
   1dff6:	4819      	ldr	r0, [pc, #100]	; (1e05c <flash_sync+0xf0>)
   1dff8:	f015 fd78 	bl	33aec <z_log_minimal_printk>
		return rc;
   1dffc:	e01c      	b.n	1e038 <flash_sync+0xcc>
		/* Invert to ensure that caller is able to discover a faulty
		 * flash_read() even if no error code is returned.
		 */
		for (int i = 0; i < ctx->buf_bytes; i++) {
			ctx->buf[i] = ~ctx->buf[i];
   1dffe:	6822      	ldr	r2, [r4, #0]
   1e000:	5d53      	ldrb	r3, [r2, r5]
   1e002:	43db      	mvns	r3, r3
   1e004:	5553      	strb	r3, [r2, r5]
		for (int i = 0; i < ctx->buf_bytes; i++) {
   1e006:	3501      	adds	r5, #1
   1e008:	68a3      	ldr	r3, [r4, #8]
   1e00a:	42ab      	cmp	r3, r5
   1e00c:	d8f7      	bhi.n	1dffe <flash_sync+0x92>
		}

		rc = flash_read(ctx->fdev, write_addr, ctx->buf,
   1e00e:	68e0      	ldr	r0, [r4, #12]
   1e010:	6822      	ldr	r2, [r4, #0]
	const struct flash_driver_api *api =
   1e012:	6881      	ldr	r1, [r0, #8]
	return api->read(dev, offset, data, len);
   1e014:	680d      	ldr	r5, [r1, #0]
   1e016:	4631      	mov	r1, r6
   1e018:	47a8      	blx	r5
				ctx->buf_bytes);
		if (rc != 0) {
   1e01a:	4605      	mov	r5, r0
   1e01c:	b978      	cbnz	r0, 1e03e <flash_sync+0xd2>
			LOG_ERR("flash read failed: %d", rc);
			return rc;
		}

		rc = ctx->callback(ctx->buf, ctx->buf_bytes, write_addr);
   1e01e:	69e3      	ldr	r3, [r4, #28]
   1e020:	4632      	mov	r2, r6
   1e022:	68a1      	ldr	r1, [r4, #8]
   1e024:	6820      	ldr	r0, [r4, #0]
   1e026:	4798      	blx	r3
		if (rc != 0) {
   1e028:	4605      	mov	r5, r0
   1e02a:	b970      	cbnz	r0, 1e04a <flash_sync+0xde>
			LOG_ERR("callback failed: %d", rc);
			return rc;
		}
	}

	ctx->bytes_written += ctx->buf_bytes;
   1e02c:	68a2      	ldr	r2, [r4, #8]
   1e02e:	6923      	ldr	r3, [r4, #16]
   1e030:	4413      	add	r3, r2
   1e032:	6123      	str	r3, [r4, #16]
	ctx->buf_bytes = 0U;
   1e034:	2300      	movs	r3, #0
   1e036:	60a3      	str	r3, [r4, #8]

	return rc;
}
   1e038:	4628      	mov	r0, r5
   1e03a:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
			LOG_ERR("flash read failed: %d", rc);
   1e03e:	4602      	mov	r2, r0
   1e040:	2145      	movs	r1, #69	; 0x45
   1e042:	4807      	ldr	r0, [pc, #28]	; (1e060 <flash_sync+0xf4>)
   1e044:	f015 fd52 	bl	33aec <z_log_minimal_printk>
			return rc;
   1e048:	e7f6      	b.n	1e038 <flash_sync+0xcc>
			LOG_ERR("callback failed: %d", rc);
   1e04a:	4602      	mov	r2, r0
   1e04c:	2145      	movs	r1, #69	; 0x45
   1e04e:	4805      	ldr	r0, [pc, #20]	; (1e064 <flash_sync+0xf8>)
   1e050:	f015 fd4c 	bl	33aec <z_log_minimal_printk>
			return rc;
   1e054:	e7f0      	b.n	1e038 <flash_sync+0xcc>
		return 0;
   1e056:	2500      	movs	r5, #0
   1e058:	e7ee      	b.n	1e038 <flash_sync+0xcc>
   1e05a:	bf00      	nop
   1e05c:	0003c010 	.word	0x0003c010
   1e060:	0003c03c 	.word	0x0003c03c
   1e064:	0003c058 	.word	0x0003c058

0001e068 <find_flash_total_size>:
	size_t total_size;
};

static bool find_flash_total_size(const struct flash_pages_info *info,
				  void *data)
{
   1e068:	b510      	push	{r4, lr}
   1e06a:	460c      	mov	r4, r1
	struct _inspect_flash *ctx = (struct _inspect_flash *) data;

	if (ctx->buf_len > info->size) {
   1e06c:	680b      	ldr	r3, [r1, #0]
   1e06e:	6842      	ldr	r2, [r0, #4]
   1e070:	4293      	cmp	r3, r2
   1e072:	d804      	bhi.n	1e07e <find_flash_total_size+0x16>
		LOG_ERR("Buffer size is bigger than page");
		ctx->total_size = 0;
		return false;
	}

	ctx->total_size += info->size;
   1e074:	684b      	ldr	r3, [r1, #4]
   1e076:	4413      	add	r3, r2
   1e078:	604b      	str	r3, [r1, #4]

	return true;
   1e07a:	2001      	movs	r0, #1
}
   1e07c:	bd10      	pop	{r4, pc}
		LOG_ERR("Buffer size is bigger than page");
   1e07e:	2145      	movs	r1, #69	; 0x45
   1e080:	4802      	ldr	r0, [pc, #8]	; (1e08c <find_flash_total_size+0x24>)
   1e082:	f015 fd33 	bl	33aec <z_log_minimal_printk>
		ctx->total_size = 0;
   1e086:	2000      	movs	r0, #0
   1e088:	6060      	str	r0, [r4, #4]
		return false;
   1e08a:	e7f7      	b.n	1e07c <find_flash_total_size+0x14>
   1e08c:	0003c074 	.word	0x0003c074

0001e090 <stream_flash_init>:

int stream_flash_init(struct stream_flash_ctx *ctx, const struct device *fdev,
		      uint8_t *buf, size_t buf_len, size_t offset, size_t size,
		      stream_flash_callback_t cb)
{
   1e090:	e92d 43f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, lr}
   1e094:	b083      	sub	sp, #12
   1e096:	9f0a      	ldr	r7, [sp, #40]	; 0x28
   1e098:	f8dd 802c 	ldr.w	r8, [sp, #44]	; 0x2c
	if (!ctx || !fdev || !buf) {
   1e09c:	2800      	cmp	r0, #0
   1e09e:	d04e      	beq.n	1e13e <stream_flash_init+0xae>
   1e0a0:	460c      	mov	r4, r1
   1e0a2:	4691      	mov	r9, r2
   1e0a4:	461e      	mov	r6, r3
   1e0a6:	4605      	mov	r5, r0
   1e0a8:	2900      	cmp	r1, #0
   1e0aa:	d04b      	beq.n	1e144 <stream_flash_init+0xb4>
   1e0ac:	2a00      	cmp	r2, #0
   1e0ae:	d04c      	beq.n	1e14a <stream_flash_init+0xba>
		LOG_ERR("Error %d initializing settings subsystem", rc);
		return rc;
	}
#endif

	struct _inspect_flash inspect_flash_ctx = {
   1e0b0:	9300      	str	r3, [sp, #0]
   1e0b2:	2300      	movs	r3, #0
   1e0b4:	9301      	str	r3, [sp, #4]
	const struct flash_driver_api *api =
   1e0b6:	688b      	ldr	r3, [r1, #8]
	return api->get_parameters(dev)->write_block_size;
   1e0b8:	691b      	ldr	r3, [r3, #16]
   1e0ba:	4608      	mov	r0, r1
   1e0bc:	4798      	blx	r3
   1e0be:	6802      	ldr	r2, [r0, #0]
		.buf_len = buf_len,
		.total_size = 0
	};

	if (buf_len % flash_get_write_block_size(fdev)) {
   1e0c0:	fbb6 f3f2 	udiv	r3, r6, r2
   1e0c4:	fb02 6313 	mls	r3, r2, r3, r6
   1e0c8:	bb5b      	cbnz	r3, 1e122 <stream_flash_init+0x92>
		LOG_ERR("Buffer size is not aligned to minimal write-block-size");
		return -EFAULT;
	}

	/* Calculate the total size of the flash device */
	flash_page_foreach(fdev, find_flash_total_size, &inspect_flash_ctx);
   1e0ca:	466a      	mov	r2, sp
   1e0cc:	4922      	ldr	r1, [pc, #136]	; (1e158 <stream_flash_init+0xc8>)
   1e0ce:	4620      	mov	r0, r4
   1e0d0:	f01b f9d4 	bl	3947c <flash_page_foreach>

	/* The flash size counted should never be equal zero */
	if (inspect_flash_ctx.total_size == 0) {
   1e0d4:	9b01      	ldr	r3, [sp, #4]
   1e0d6:	2b00      	cmp	r3, #0
   1e0d8:	d03a      	beq.n	1e150 <stream_flash_init+0xc0>
		return -EFAULT;
	}

	if ((offset + size) > inspect_flash_ctx.total_size ||
   1e0da:	eb07 0208 	add.w	r2, r7, r8
   1e0de:	4293      	cmp	r3, r2
   1e0e0:	d326      	bcc.n	1e130 <stream_flash_init+0xa0>
	const struct flash_driver_api *api =
   1e0e2:	68a3      	ldr	r3, [r4, #8]
	return api->get_parameters(dev)->write_block_size;
   1e0e4:	691b      	ldr	r3, [r3, #16]
   1e0e6:	4620      	mov	r0, r4
   1e0e8:	4798      	blx	r3
   1e0ea:	6802      	ldr	r2, [r0, #0]
	    offset % flash_get_write_block_size(fdev)) {
   1e0ec:	fbb7 f3f2 	udiv	r3, r7, r2
   1e0f0:	fb02 7313 	mls	r3, r2, r3, r7
	if ((offset + size) > inspect_flash_ctx.total_size ||
   1e0f4:	b9e3      	cbnz	r3, 1e130 <stream_flash_init+0xa0>
		LOG_ERR("Incorrect parameter");
		return -EFAULT;
	}

	ctx->fdev = fdev;
   1e0f6:	60ec      	str	r4, [r5, #12]
	ctx->buf = buf;
   1e0f8:	f8c5 9000 	str.w	r9, [r5]
	ctx->buf_len = buf_len;
   1e0fc:	606e      	str	r6, [r5, #4]
	ctx->bytes_written = 0;
   1e0fe:	2300      	movs	r3, #0
   1e100:	612b      	str	r3, [r5, #16]
	ctx->buf_bytes = 0U;
   1e102:	60ab      	str	r3, [r5, #8]
	ctx->offset = offset;
   1e104:	616f      	str	r7, [r5, #20]
	ctx->available = (size == 0 ? inspect_flash_ctx.total_size - offset :
   1e106:	f1b8 0f00 	cmp.w	r8, #0
   1e10a:	d102      	bne.n	1e112 <stream_flash_init+0x82>
   1e10c:	9b01      	ldr	r3, [sp, #4]
   1e10e:	eba3 0807 	sub.w	r8, r3, r7
   1e112:	f8c5 8018 	str.w	r8, [r5, #24]
				      size);
	ctx->callback = cb;
   1e116:	9b0c      	ldr	r3, [sp, #48]	; 0x30
   1e118:	61eb      	str	r3, [r5, #28]

#ifdef CONFIG_STREAM_FLASH_ERASE
	ctx->last_erased_page_start_offset = -1;
#endif

	return 0;
   1e11a:	2000      	movs	r0, #0
}
   1e11c:	b003      	add	sp, #12
   1e11e:	e8bd 83f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, pc}
		LOG_ERR("Buffer size is not aligned to minimal write-block-size");
   1e122:	2145      	movs	r1, #69	; 0x45
   1e124:	480d      	ldr	r0, [pc, #52]	; (1e15c <stream_flash_init+0xcc>)
   1e126:	f015 fce1 	bl	33aec <z_log_minimal_printk>
		return -EFAULT;
   1e12a:	f06f 000d 	mvn.w	r0, #13
   1e12e:	e7f5      	b.n	1e11c <stream_flash_init+0x8c>
		LOG_ERR("Incorrect parameter");
   1e130:	2145      	movs	r1, #69	; 0x45
   1e132:	480b      	ldr	r0, [pc, #44]	; (1e160 <stream_flash_init+0xd0>)
   1e134:	f015 fcda 	bl	33aec <z_log_minimal_printk>
		return -EFAULT;
   1e138:	f06f 000d 	mvn.w	r0, #13
   1e13c:	e7ee      	b.n	1e11c <stream_flash_init+0x8c>
		return -EFAULT;
   1e13e:	f06f 000d 	mvn.w	r0, #13
   1e142:	e7eb      	b.n	1e11c <stream_flash_init+0x8c>
   1e144:	f06f 000d 	mvn.w	r0, #13
   1e148:	e7e8      	b.n	1e11c <stream_flash_init+0x8c>
   1e14a:	f06f 000d 	mvn.w	r0, #13
   1e14e:	e7e5      	b.n	1e11c <stream_flash_init+0x8c>
		return -EFAULT;
   1e150:	f06f 000d 	mvn.w	r0, #13
   1e154:	e7e2      	b.n	1e11c <stream_flash_init+0x8c>
   1e156:	bf00      	nop
   1e158:	0001e069 	.word	0x0001e069
   1e15c:	0003c09c 	.word	0x0003c09c
   1e160:	0003c0d8 	.word	0x0003c0d8

0001e164 <settings_save_one>:

/*
 * Append a single value to persisted config. Don't store duplicate value.
 */
int settings_save_one(const char *name, const void *value, size_t val_len)
{
   1e164:	e92d 43f8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
	int rc;
	struct settings_store *cs;

	cs = settings_save_dst;
   1e168:	4b0f      	ldr	r3, [pc, #60]	; (1e1a8 <settings_save_one+0x44>)
   1e16a:	681d      	ldr	r5, [r3, #0]
	if (!cs) {
   1e16c:	b1cd      	cbz	r5, 1e1a2 <settings_save_one+0x3e>
   1e16e:	4680      	mov	r8, r0
   1e170:	460f      	mov	r7, r1
   1e172:	4614      	mov	r4, r2
	return z_impl_k_mutex_lock(mutex, timeout);
   1e174:	4e0d      	ldr	r6, [pc, #52]	; (1e1ac <settings_save_one+0x48>)
   1e176:	f04f 32ff 	mov.w	r2, #4294967295
   1e17a:	f04f 33ff 	mov.w	r3, #4294967295
   1e17e:	4630      	mov	r0, r6
   1e180:	f011 fbce 	bl	2f920 <z_impl_k_mutex_lock>
		return -ENOENT;
	}

	k_mutex_lock(&settings_lock, K_FOREVER);

	rc = cs->cs_itf->csi_save(cs, name, (char *)value, val_len);
   1e184:	686b      	ldr	r3, [r5, #4]
   1e186:	f8d3 9008 	ldr.w	r9, [r3, #8]
   1e18a:	4623      	mov	r3, r4
   1e18c:	463a      	mov	r2, r7
   1e18e:	4641      	mov	r1, r8
   1e190:	4628      	mov	r0, r5
   1e192:	47c8      	blx	r9
   1e194:	4604      	mov	r4, r0
	return z_impl_k_mutex_unlock(mutex);
   1e196:	4630      	mov	r0, r6
   1e198:	f011 fcb8 	bl	2fb0c <z_impl_k_mutex_unlock>

	k_mutex_unlock(&settings_lock);

	return rc;
}
   1e19c:	4620      	mov	r0, r4
   1e19e:	e8bd 83f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
		return -ENOENT;
   1e1a2:	f06f 0401 	mvn.w	r4, #1
   1e1a6:	e7f9      	b.n	1e19c <settings_save_one+0x38>
   1e1a8:	200020f8 	.word	0x200020f8
   1e1ac:	2000084c 	.word	0x2000084c

0001e1b0 <settings_src_register>:
	parent->next = child;
   1e1b0:	2300      	movs	r3, #0
   1e1b2:	6003      	str	r3, [r0, #0]
	return list->tail;
   1e1b4:	4b05      	ldr	r3, [pc, #20]	; (1e1cc <settings_src_register+0x1c>)
   1e1b6:	685b      	ldr	r3, [r3, #4]
Z_GENLIST_APPEND(slist, snode)
   1e1b8:	b11b      	cbz	r3, 1e1c2 <settings_src_register+0x12>
	parent->next = child;
   1e1ba:	6018      	str	r0, [r3, #0]
	list->tail = node;
   1e1bc:	4b03      	ldr	r3, [pc, #12]	; (1e1cc <settings_src_register+0x1c>)
   1e1be:	6058      	str	r0, [r3, #4]
}
   1e1c0:	4770      	bx	lr
   1e1c2:	4b02      	ldr	r3, [pc, #8]	; (1e1cc <settings_src_register+0x1c>)
   1e1c4:	6058      	str	r0, [r3, #4]
	list->head = node;
   1e1c6:	6018      	str	r0, [r3, #0]
}
   1e1c8:	4770      	bx	lr
   1e1ca:	bf00      	nop
   1e1cc:	200020f0 	.word	0x200020f0

0001e1d0 <settings_dst_register>:
	settings_save_dst = cs;
   1e1d0:	4b01      	ldr	r3, [pc, #4]	; (1e1d8 <settings_dst_register+0x8>)
   1e1d2:	6018      	str	r0, [r3, #0]
}
   1e1d4:	4770      	bx	lr
   1e1d6:	bf00      	nop
   1e1d8:	200020f8 	.word	0x200020f8

0001e1dc <settings_load_subtree>:
{
   1e1dc:	b530      	push	{r4, r5, lr}
   1e1de:	b085      	sub	sp, #20
   1e1e0:	4605      	mov	r5, r0
	const struct settings_load_arg arg = {
   1e1e2:	2300      	movs	r3, #0
   1e1e4:	9302      	str	r3, [sp, #8]
   1e1e6:	9303      	str	r3, [sp, #12]
   1e1e8:	9001      	str	r0, [sp, #4]
	return z_impl_k_mutex_lock(mutex, timeout);
   1e1ea:	f04f 32ff 	mov.w	r2, #4294967295
   1e1ee:	f04f 33ff 	mov.w	r3, #4294967295
   1e1f2:	480d      	ldr	r0, [pc, #52]	; (1e228 <settings_load_subtree+0x4c>)
   1e1f4:	f011 fb94 	bl	2f920 <z_impl_k_mutex_lock>
	return list->head;
   1e1f8:	4b0c      	ldr	r3, [pc, #48]	; (1e22c <settings_load_subtree+0x50>)
   1e1fa:	681c      	ldr	r4, [r3, #0]
	SYS_SLIST_FOR_EACH_CONTAINER(&settings_load_srcs, cs, cs_next) {
   1e1fc:	b14c      	cbz	r4, 1e212 <settings_load_subtree+0x36>
		cs->cs_itf->csi_load(cs, &arg);
   1e1fe:	6863      	ldr	r3, [r4, #4]
   1e200:	681b      	ldr	r3, [r3, #0]
   1e202:	a901      	add	r1, sp, #4
   1e204:	4620      	mov	r0, r4
   1e206:	4798      	blx	r3
Z_GENLIST_PEEK_NEXT(slist, snode)
   1e208:	2c00      	cmp	r4, #0
   1e20a:	d0f7      	beq.n	1e1fc <settings_load_subtree+0x20>
	return node->next;
   1e20c:	6824      	ldr	r4, [r4, #0]
	SYS_SLIST_FOR_EACH_CONTAINER(&settings_load_srcs, cs, cs_next) {
   1e20e:	2c00      	cmp	r4, #0
   1e210:	d1f4      	bne.n	1e1fc <settings_load_subtree+0x20>
	rc = settings_commit_subtree(subtree);
   1e212:	4628      	mov	r0, r5
   1e214:	f000 f8ec 	bl	1e3f0 <settings_commit_subtree>
   1e218:	4604      	mov	r4, r0
	return z_impl_k_mutex_unlock(mutex);
   1e21a:	4803      	ldr	r0, [pc, #12]	; (1e228 <settings_load_subtree+0x4c>)
   1e21c:	f011 fc76 	bl	2fb0c <z_impl_k_mutex_unlock>
}
   1e220:	4620      	mov	r0, r4
   1e222:	b005      	add	sp, #20
   1e224:	bd30      	pop	{r4, r5, pc}
   1e226:	bf00      	nop
   1e228:	2000084c 	.word	0x2000084c
   1e22c:	200020f0 	.word	0x200020f0

0001e230 <settings_load_subtree_direct>:
{
   1e230:	b510      	push	{r4, lr}
   1e232:	b084      	sub	sp, #16
	const struct settings_load_arg arg = {
   1e234:	9001      	str	r0, [sp, #4]
   1e236:	9102      	str	r1, [sp, #8]
   1e238:	9203      	str	r2, [sp, #12]
	return z_impl_k_mutex_lock(mutex, timeout);
   1e23a:	f04f 32ff 	mov.w	r2, #4294967295
   1e23e:	f04f 33ff 	mov.w	r3, #4294967295
   1e242:	480b      	ldr	r0, [pc, #44]	; (1e270 <settings_load_subtree_direct+0x40>)
   1e244:	f011 fb6c 	bl	2f920 <z_impl_k_mutex_lock>
	return list->head;
   1e248:	4b0a      	ldr	r3, [pc, #40]	; (1e274 <settings_load_subtree_direct+0x44>)
   1e24a:	681c      	ldr	r4, [r3, #0]
	SYS_SLIST_FOR_EACH_CONTAINER(&settings_load_srcs, cs, cs_next) {
   1e24c:	b14c      	cbz	r4, 1e262 <settings_load_subtree_direct+0x32>
		cs->cs_itf->csi_load(cs, &arg);
   1e24e:	6863      	ldr	r3, [r4, #4]
   1e250:	681b      	ldr	r3, [r3, #0]
   1e252:	a901      	add	r1, sp, #4
   1e254:	4620      	mov	r0, r4
   1e256:	4798      	blx	r3
Z_GENLIST_PEEK_NEXT(slist, snode)
   1e258:	2c00      	cmp	r4, #0
   1e25a:	d0f7      	beq.n	1e24c <settings_load_subtree_direct+0x1c>
	return node->next;
   1e25c:	6824      	ldr	r4, [r4, #0]
	SYS_SLIST_FOR_EACH_CONTAINER(&settings_load_srcs, cs, cs_next) {
   1e25e:	2c00      	cmp	r4, #0
   1e260:	d1f4      	bne.n	1e24c <settings_load_subtree_direct+0x1c>
	return z_impl_k_mutex_unlock(mutex);
   1e262:	4803      	ldr	r0, [pc, #12]	; (1e270 <settings_load_subtree_direct+0x40>)
   1e264:	f011 fc52 	bl	2fb0c <z_impl_k_mutex_unlock>
}
   1e268:	2000      	movs	r0, #0
   1e26a:	b004      	add	sp, #16
   1e26c:	bd10      	pop	{r4, pc}
   1e26e:	bf00      	nop
   1e270:	2000084c 	.word	0x2000084c
   1e274:	200020f0 	.word	0x200020f0

0001e278 <settings_store_init>:
	list->head = NULL;
   1e278:	4b02      	ldr	r3, [pc, #8]	; (1e284 <settings_store_init+0xc>)
   1e27a:	2200      	movs	r2, #0
   1e27c:	601a      	str	r2, [r3, #0]
	list->tail = NULL;
   1e27e:	605a      	str	r2, [r3, #4]
}

void settings_store_init(void)
{
	sys_slist_init(&settings_load_srcs);
}
   1e280:	4770      	bx	lr
   1e282:	bf00      	nop
   1e284:	200020f0 	.word	0x200020f0

0001e288 <settings_init>:


void settings_store_init(void);

void settings_init(void)
{
   1e288:	b508      	push	{r3, lr}
	list->head = NULL;
   1e28a:	4b03      	ldr	r3, [pc, #12]	; (1e298 <settings_init+0x10>)
   1e28c:	2200      	movs	r2, #0
   1e28e:	601a      	str	r2, [r3, #0]
	list->tail = NULL;
   1e290:	605a      	str	r2, [r3, #4]
#if defined(CONFIG_SETTINGS_DYNAMIC_HANDLERS)
	sys_slist_init(&settings_handlers);
#endif /* CONFIG_SETTINGS_DYNAMIC_HANDLERS */
	settings_store_init();
   1e292:	f7ff fff1 	bl	1e278 <settings_store_init>
}
   1e296:	bd08      	pop	{r3, pc}
   1e298:	200020fc 	.word	0x200020fc

0001e29c <settings_parse_and_lookup>:
	return rc;
}

struct settings_handler_static *settings_parse_and_lookup(const char *name,
							const char **next)
{
   1e29c:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   1e2a0:	b082      	sub	sp, #8
   1e2a2:	4606      	mov	r6, r0
	struct settings_handler_static *bestmatch;
	const char *tmpnext;

	bestmatch = NULL;
	if (next) {
   1e2a4:	460f      	mov	r7, r1
   1e2a6:	b109      	cbz	r1, 1e2ac <settings_parse_and_lookup+0x10>
		*next = NULL;
   1e2a8:	2300      	movs	r3, #0
   1e2aa:	600b      	str	r3, [r1, #0]
				*next = tmpnext;
			}
			continue;
		}
		if (settings_name_steq(ch->name, bestmatch->name, NULL)) {
			bestmatch = ch;
   1e2ac:	4c2e      	ldr	r4, [pc, #184]	; (1e368 <settings_parse_and_lookup+0xcc>)
   1e2ae:	2500      	movs	r5, #0
   1e2b0:	e004      	b.n	1e2bc <settings_parse_and_lookup+0x20>
			if (next) {
   1e2b2:	b10f      	cbz	r7, 1e2b8 <settings_parse_and_lookup+0x1c>
				*next = tmpnext;
   1e2b4:	9b01      	ldr	r3, [sp, #4]
   1e2b6:	603b      	str	r3, [r7, #0]
			bestmatch = ch;
   1e2b8:	4625      	mov	r5, r4
	STRUCT_SECTION_FOREACH(settings_handler_static, ch) {
   1e2ba:	3414      	adds	r4, #20
   1e2bc:	4b2b      	ldr	r3, [pc, #172]	; (1e36c <settings_parse_and_lookup+0xd0>)
   1e2be:	429c      	cmp	r4, r3
   1e2c0:	d819      	bhi.n	1e2f6 <settings_parse_and_lookup+0x5a>
   1e2c2:	4b2a      	ldr	r3, [pc, #168]	; (1e36c <settings_parse_and_lookup+0xd0>)
   1e2c4:	429c      	cmp	r4, r3
   1e2c6:	d222      	bcs.n	1e30e <settings_parse_and_lookup+0x72>
		if (!settings_name_steq(name, ch->name, &tmpnext)) {
   1e2c8:	aa01      	add	r2, sp, #4
   1e2ca:	6821      	ldr	r1, [r4, #0]
   1e2cc:	4630      	mov	r0, r6
   1e2ce:	f016 f900 	bl	344d2 <settings_name_steq>
   1e2d2:	2800      	cmp	r0, #0
   1e2d4:	d0f1      	beq.n	1e2ba <settings_parse_and_lookup+0x1e>
		if (!bestmatch) {
   1e2d6:	2d00      	cmp	r5, #0
   1e2d8:	d0eb      	beq.n	1e2b2 <settings_parse_and_lookup+0x16>
		if (settings_name_steq(ch->name, bestmatch->name, NULL)) {
   1e2da:	2200      	movs	r2, #0
   1e2dc:	6829      	ldr	r1, [r5, #0]
   1e2de:	6820      	ldr	r0, [r4, #0]
   1e2e0:	f016 f8f7 	bl	344d2 <settings_name_steq>
   1e2e4:	2800      	cmp	r0, #0
   1e2e6:	d0e8      	beq.n	1e2ba <settings_parse_and_lookup+0x1e>
			if (next) {
   1e2e8:	b11f      	cbz	r7, 1e2f2 <settings_parse_and_lookup+0x56>
				*next = tmpnext;
   1e2ea:	9b01      	ldr	r3, [sp, #4]
   1e2ec:	603b      	str	r3, [r7, #0]
			bestmatch = ch;
   1e2ee:	4625      	mov	r5, r4
   1e2f0:	e7e3      	b.n	1e2ba <settings_parse_and_lookup+0x1e>
   1e2f2:	4625      	mov	r5, r4
   1e2f4:	e7e1      	b.n	1e2ba <settings_parse_and_lookup+0x1e>
	STRUCT_SECTION_FOREACH(settings_handler_static, ch) {
   1e2f6:	f8df 8080 	ldr.w	r8, [pc, #128]	; 1e378 <settings_parse_and_lookup+0xdc>
   1e2fa:	2294      	movs	r2, #148	; 0x94
   1e2fc:	4641      	mov	r1, r8
   1e2fe:	481c      	ldr	r0, [pc, #112]	; (1e370 <settings_parse_and_lookup+0xd4>)
   1e300:	f015 f853 	bl	333aa <printk>
   1e304:	2194      	movs	r1, #148	; 0x94
   1e306:	4640      	mov	r0, r8
   1e308:	f015 fbe8 	bl	33adc <assert_post_action>
   1e30c:	e7d9      	b.n	1e2c2 <settings_parse_and_lookup+0x26>
	return list->head;
   1e30e:	4b19      	ldr	r3, [pc, #100]	; (1e374 <settings_parse_and_lookup+0xd8>)
   1e310:	681c      	ldr	r4, [r3, #0]
	}

#if defined(CONFIG_SETTINGS_DYNAMIC_HANDLERS)
	struct settings_handler *ch;

	SYS_SLIST_FOR_EACH_CONTAINER(&settings_handlers, ch, node) {
   1e312:	b15c      	cbz	r4, 1e32c <settings_parse_and_lookup+0x90>
   1e314:	3c14      	subs	r4, #20
   1e316:	e009      	b.n	1e32c <settings_parse_and_lookup+0x90>
		if (!settings_name_steq(name, ch->name, &tmpnext)) {
			continue;
		}
		if (!bestmatch) {
			bestmatch = (struct settings_handler_static *)ch;
			if (next) {
   1e318:	b10f      	cbz	r7, 1e31e <settings_parse_and_lookup+0x82>
				*next = tmpnext;
   1e31a:	9b01      	ldr	r3, [sp, #4]
   1e31c:	603b      	str	r3, [r7, #0]
			bestmatch = (struct settings_handler_static *)ch;
   1e31e:	4625      	mov	r5, r4
Z_GENLIST_PEEK_NEXT(slist, snode)
   1e320:	f114 0314 	adds.w	r3, r4, #20
   1e324:	d01a      	beq.n	1e35c <settings_parse_and_lookup+0xc0>
	return node->next;
   1e326:	6964      	ldr	r4, [r4, #20]
	SYS_SLIST_FOR_EACH_CONTAINER(&settings_handlers, ch, node) {
   1e328:	b104      	cbz	r4, 1e32c <settings_parse_and_lookup+0x90>
   1e32a:	3c14      	subs	r4, #20
   1e32c:	b1c4      	cbz	r4, 1e360 <settings_parse_and_lookup+0xc4>
		if (!settings_name_steq(name, ch->name, &tmpnext)) {
   1e32e:	aa01      	add	r2, sp, #4
   1e330:	6821      	ldr	r1, [r4, #0]
   1e332:	4630      	mov	r0, r6
   1e334:	f016 f8cd 	bl	344d2 <settings_name_steq>
   1e338:	2800      	cmp	r0, #0
   1e33a:	d0f1      	beq.n	1e320 <settings_parse_and_lookup+0x84>
		if (!bestmatch) {
   1e33c:	2d00      	cmp	r5, #0
   1e33e:	d0eb      	beq.n	1e318 <settings_parse_and_lookup+0x7c>
			}
			continue;
		}
		if (settings_name_steq(ch->name, bestmatch->name, NULL)) {
   1e340:	2200      	movs	r2, #0
   1e342:	6829      	ldr	r1, [r5, #0]
   1e344:	6820      	ldr	r0, [r4, #0]
   1e346:	f016 f8c4 	bl	344d2 <settings_name_steq>
   1e34a:	2800      	cmp	r0, #0
   1e34c:	d0e8      	beq.n	1e320 <settings_parse_and_lookup+0x84>
			bestmatch = (struct settings_handler_static *)ch;
			if (next) {
   1e34e:	b11f      	cbz	r7, 1e358 <settings_parse_and_lookup+0xbc>
				*next = tmpnext;
   1e350:	9b01      	ldr	r3, [sp, #4]
   1e352:	603b      	str	r3, [r7, #0]
			bestmatch = (struct settings_handler_static *)ch;
   1e354:	4625      	mov	r5, r4
   1e356:	e7e3      	b.n	1e320 <settings_parse_and_lookup+0x84>
   1e358:	4625      	mov	r5, r4
   1e35a:	e7e1      	b.n	1e320 <settings_parse_and_lookup+0x84>
	SYS_SLIST_FOR_EACH_CONTAINER(&settings_handlers, ch, node) {
   1e35c:	461c      	mov	r4, r3
   1e35e:	e7e5      	b.n	1e32c <settings_parse_and_lookup+0x90>
			}
		}
	}
#endif /* CONFIG_SETTINGS_DYNAMIC_HANDLERS */
	return bestmatch;
}
   1e360:	4628      	mov	r0, r5
   1e362:	b002      	add	sp, #8
   1e364:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
   1e368:	0003b7c0 	.word	0x0003b7c0
   1e36c:	0003b838 	.word	0x0003b838
   1e370:	0003bdac 	.word	0x0003bdac
   1e374:	200020fc 	.word	0x200020fc
   1e378:	0003c104 	.word	0x0003c104

0001e37c <settings_call_set_handler>:
int settings_call_set_handler(const char *name,
			      size_t len,
			      settings_read_cb read_cb,
			      void *read_cb_arg,
			      const struct settings_load_arg *load_arg)
{
   1e37c:	e92d 43f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, lr}
   1e380:	b085      	sub	sp, #20
   1e382:	4604      	mov	r4, r0
   1e384:	4688      	mov	r8, r1
   1e386:	4617      	mov	r7, r2
   1e388:	461e      	mov	r6, r3
   1e38a:	9d0c      	ldr	r5, [sp, #48]	; 0x30
	int rc;
	const char *name_key = name;
   1e38c:	9003      	str	r0, [sp, #12]

	if (load_arg && load_arg->subtree &&
   1e38e:	b12d      	cbz	r5, 1e39c <settings_call_set_handler+0x20>
   1e390:	6829      	ldr	r1, [r5, #0]
   1e392:	b119      	cbz	r1, 1e39c <settings_call_set_handler+0x20>
	    !settings_name_steq(name, load_arg->subtree, &name_key)) {
   1e394:	aa03      	add	r2, sp, #12
   1e396:	f016 f89c 	bl	344d2 <settings_name_steq>
	if (load_arg && load_arg->subtree &&
   1e39a:	b160      	cbz	r0, 1e3b6 <settings_call_set_handler+0x3a>
		return 0;
	}

	if (load_arg && load_arg->cb) {
   1e39c:	b175      	cbz	r5, 1e3bc <settings_call_set_handler+0x40>
   1e39e:	f8d5 9004 	ldr.w	r9, [r5, #4]
   1e3a2:	f1b9 0f00 	cmp.w	r9, #0
   1e3a6:	d009      	beq.n	1e3bc <settings_call_set_handler+0x40>
		rc = load_arg->cb(name_key, len, read_cb, read_cb_arg,
   1e3a8:	68ab      	ldr	r3, [r5, #8]
   1e3aa:	9300      	str	r3, [sp, #0]
   1e3ac:	4633      	mov	r3, r6
   1e3ae:	463a      	mov	r2, r7
   1e3b0:	4641      	mov	r1, r8
   1e3b2:	9803      	ldr	r0, [sp, #12]
   1e3b4:	47c8      	blx	r9
			LOG_DBG("set-value OK. key: %s",
				log_strdup(name));
		}
	}
	return rc;
}
   1e3b6:	b005      	add	sp, #20
   1e3b8:	e8bd 83f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, pc}
		ch = settings_parse_and_lookup(name, &name_key);
   1e3bc:	a903      	add	r1, sp, #12
   1e3be:	4620      	mov	r0, r4
   1e3c0:	f7ff ff6c 	bl	1e29c <settings_parse_and_lookup>
		if (!ch) {
   1e3c4:	b178      	cbz	r0, 1e3e6 <settings_call_set_handler+0x6a>
		rc = ch->h_set(name_key, len, read_cb, read_cb_arg);
   1e3c6:	6885      	ldr	r5, [r0, #8]
   1e3c8:	4633      	mov	r3, r6
   1e3ca:	463a      	mov	r2, r7
   1e3cc:	4641      	mov	r1, r8
   1e3ce:	9803      	ldr	r0, [sp, #12]
   1e3d0:	47a8      	blx	r5
   1e3d2:	4603      	mov	r3, r0
		if (rc != 0) {
   1e3d4:	2800      	cmp	r0, #0
   1e3d6:	d0ee      	beq.n	1e3b6 <settings_call_set_handler+0x3a>
			LOG_ERR("set-value failure. key: %s error(%d)",
   1e3d8:	4622      	mov	r2, r4
   1e3da:	2145      	movs	r1, #69	; 0x45
   1e3dc:	4803      	ldr	r0, [pc, #12]	; (1e3ec <settings_call_set_handler+0x70>)
   1e3de:	f015 fb85 	bl	33aec <z_log_minimal_printk>
			rc = 0;
   1e3e2:	2000      	movs	r0, #0
   1e3e4:	e7e7      	b.n	1e3b6 <settings_call_set_handler+0x3a>
			return 0;
   1e3e6:	2000      	movs	r0, #0
   1e3e8:	e7e5      	b.n	1e3b6 <settings_call_set_handler+0x3a>
   1e3ea:	bf00      	nop
   1e3ec:	0003c138 	.word	0x0003c138

0001e3f0 <settings_commit_subtree>:
{
	return settings_commit_subtree(NULL);
}

int settings_commit_subtree(const char *subtree)
{
   1e3f0:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
   1e3f2:	4605      	mov	r5, r0
	int rc;
	int rc2;

	rc = 0;

	STRUCT_SECTION_FOREACH(settings_handler_static, ch) {
   1e3f4:	4c22      	ldr	r4, [pc, #136]	; (1e480 <settings_commit_subtree+0x90>)
	rc = 0;
   1e3f6:	2600      	movs	r6, #0
	STRUCT_SECTION_FOREACH(settings_handler_static, ch) {
   1e3f8:	e000      	b.n	1e3fc <settings_commit_subtree+0xc>
   1e3fa:	3414      	adds	r4, #20
   1e3fc:	4b21      	ldr	r3, [pc, #132]	; (1e484 <settings_commit_subtree+0x94>)
   1e3fe:	429c      	cmp	r4, r3
   1e400:	d812      	bhi.n	1e428 <settings_commit_subtree+0x38>
   1e402:	4b20      	ldr	r3, [pc, #128]	; (1e484 <settings_commit_subtree+0x94>)
   1e404:	429c      	cmp	r4, r3
   1e406:	d21a      	bcs.n	1e43e <settings_commit_subtree+0x4e>
		if (subtree && !settings_name_steq(ch->name, subtree, NULL)) {
   1e408:	b135      	cbz	r5, 1e418 <settings_commit_subtree+0x28>
   1e40a:	2200      	movs	r2, #0
   1e40c:	4629      	mov	r1, r5
   1e40e:	6820      	ldr	r0, [r4, #0]
   1e410:	f016 f85f 	bl	344d2 <settings_name_steq>
   1e414:	2800      	cmp	r0, #0
   1e416:	d0f0      	beq.n	1e3fa <settings_commit_subtree+0xa>
			continue;
		}
		if (ch->h_commit) {
   1e418:	68e3      	ldr	r3, [r4, #12]
   1e41a:	2b00      	cmp	r3, #0
   1e41c:	d0ed      	beq.n	1e3fa <settings_commit_subtree+0xa>
			rc2 = ch->h_commit();
   1e41e:	4798      	blx	r3
			if (!rc) {
   1e420:	2e00      	cmp	r6, #0
   1e422:	d1ea      	bne.n	1e3fa <settings_commit_subtree+0xa>
				rc = rc2;
   1e424:	4606      	mov	r6, r0
   1e426:	e7e8      	b.n	1e3fa <settings_commit_subtree+0xa>
	STRUCT_SECTION_FOREACH(settings_handler_static, ch) {
   1e428:	4f17      	ldr	r7, [pc, #92]	; (1e488 <settings_commit_subtree+0x98>)
   1e42a:	22f4      	movs	r2, #244	; 0xf4
   1e42c:	4639      	mov	r1, r7
   1e42e:	4817      	ldr	r0, [pc, #92]	; (1e48c <settings_commit_subtree+0x9c>)
   1e430:	f014 ffbb 	bl	333aa <printk>
   1e434:	21f4      	movs	r1, #244	; 0xf4
   1e436:	4638      	mov	r0, r7
   1e438:	f015 fb50 	bl	33adc <assert_post_action>
   1e43c:	e7e1      	b.n	1e402 <settings_commit_subtree+0x12>
	return list->head;
   1e43e:	4b14      	ldr	r3, [pc, #80]	; (1e490 <settings_commit_subtree+0xa0>)
   1e440:	681c      	ldr	r4, [r3, #0]
		}
	}

#if defined(CONFIG_SETTINGS_DYNAMIC_HANDLERS)
	struct settings_handler *ch;
	SYS_SLIST_FOR_EACH_CONTAINER(&settings_handlers, ch, node) {
   1e442:	b13c      	cbz	r4, 1e454 <settings_commit_subtree+0x64>
   1e444:	3c14      	subs	r4, #20
   1e446:	e005      	b.n	1e454 <settings_commit_subtree+0x64>
Z_GENLIST_PEEK_NEXT(slist, snode)
   1e448:	f114 0314 	adds.w	r3, r4, #20
   1e44c:	d013      	beq.n	1e476 <settings_commit_subtree+0x86>
	return node->next;
   1e44e:	6964      	ldr	r4, [r4, #20]
   1e450:	b104      	cbz	r4, 1e454 <settings_commit_subtree+0x64>
   1e452:	3c14      	subs	r4, #20
   1e454:	b18c      	cbz	r4, 1e47a <settings_commit_subtree+0x8a>
		if (subtree && !settings_name_steq(ch->name, subtree, NULL)) {
   1e456:	b135      	cbz	r5, 1e466 <settings_commit_subtree+0x76>
   1e458:	2200      	movs	r2, #0
   1e45a:	4629      	mov	r1, r5
   1e45c:	6820      	ldr	r0, [r4, #0]
   1e45e:	f016 f838 	bl	344d2 <settings_name_steq>
   1e462:	2800      	cmp	r0, #0
   1e464:	d0f0      	beq.n	1e448 <settings_commit_subtree+0x58>
			continue;
		}
		if (ch->h_commit) {
   1e466:	68e3      	ldr	r3, [r4, #12]
   1e468:	2b00      	cmp	r3, #0
   1e46a:	d0ed      	beq.n	1e448 <settings_commit_subtree+0x58>
			rc2 = ch->h_commit();
   1e46c:	4798      	blx	r3
			if (!rc) {
   1e46e:	2e00      	cmp	r6, #0
   1e470:	d1ea      	bne.n	1e448 <settings_commit_subtree+0x58>
				rc = rc2;
   1e472:	4606      	mov	r6, r0
   1e474:	e7e8      	b.n	1e448 <settings_commit_subtree+0x58>
	SYS_SLIST_FOR_EACH_CONTAINER(&settings_handlers, ch, node) {
   1e476:	461c      	mov	r4, r3
   1e478:	e7ec      	b.n	1e454 <settings_commit_subtree+0x64>
		}
	}
#endif /* CONFIG_SETTINGS_DYNAMIC_HANDLERS */

	return rc;
}
   1e47a:	4630      	mov	r0, r6
   1e47c:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
   1e47e:	bf00      	nop
   1e480:	0003b7c0 	.word	0x0003b7c0
   1e484:	0003b838 	.word	0x0003b838
   1e488:	0003c104 	.word	0x0003c104
   1e48c:	0003bdac 	.word	0x0003bdac
   1e490:	200020fc 	.word	0x200020fc

0001e494 <settings_subsys_init>:
void settings_init(void);

int settings_backend_init(void);

int settings_subsys_init(void)
{
   1e494:	b508      	push	{r3, lr}

	int err = 0;

	if (settings_subsys_initialized) {
   1e496:	4b07      	ldr	r3, [pc, #28]	; (1e4b4 <settings_subsys_init+0x20>)
   1e498:	781b      	ldrb	r3, [r3, #0]
   1e49a:	b10b      	cbz	r3, 1e4a0 <settings_subsys_init+0xc>
		return 0;
   1e49c:	2000      	movs	r0, #0
	if (!err) {
		settings_subsys_initialized = true;
	}

	return err;
}
   1e49e:	bd08      	pop	{r3, pc}
	settings_init();
   1e4a0:	f7ff fef2 	bl	1e288 <settings_init>
	err = settings_backend_init(); /* func rises kernel panic once error */
   1e4a4:	f000 f87c 	bl	1e5a0 <settings_backend_init>
	if (!err) {
   1e4a8:	2800      	cmp	r0, #0
   1e4aa:	d1f8      	bne.n	1e49e <settings_subsys_init+0xa>
		settings_subsys_initialized = true;
   1e4ac:	4b01      	ldr	r3, [pc, #4]	; (1e4b4 <settings_subsys_init+0x20>)
   1e4ae:	2201      	movs	r2, #1
   1e4b0:	701a      	strb	r2, [r3, #0]
   1e4b2:	e7f4      	b.n	1e49e <settings_subsys_init+0xa>
   1e4b4:	200034e7 	.word	0x200034e7

0001e4b8 <settings_nvs_load>:
	return 0;
}

static int settings_nvs_load(struct settings_store *cs,
			     const struct settings_load_arg *arg)
{
   1e4b8:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
   1e4bc:	b098      	sub	sp, #96	; 0x60
   1e4be:	4680      	mov	r8, r0
   1e4c0:	4689      	mov	r9, r1
	char name[SETTINGS_MAX_NAME_LEN + SETTINGS_EXTRA_LEN + 1];
	char buf;
	ssize_t rc1, rc2;
	uint16_t name_id = NVS_NAMECNT_ID;

	name_id = cf->last_name_id + 1;
   1e4c2:	f9b0 4038 	ldrsh.w	r4, [r0, #56]	; 0x38
   1e4c6:	3401      	adds	r4, #1
   1e4c8:	b2a4      	uxth	r4, r4
	int ret = 0;
   1e4ca:	f04f 0a00 	mov.w	sl, #0
   1e4ce:	e00f      	b.n	1e4f0 <settings_nvs_load+0x38>
		 */
		rc1 = nvs_read(&cf->cf_nvs, name_id, &name, sizeof(name));
		rc2 = nvs_read(&cf->cf_nvs, name_id + NVS_NAME_ID_OFFSET,
			       &buf, sizeof(buf));

		if ((rc1 <= 0) && (rc2 <= 0)) {
   1e4d0:	2800      	cmp	r0, #0
   1e4d2:	dc28      	bgt.n	1e526 <settings_nvs_load+0x6e>
   1e4d4:	e00b      	b.n	1e4ee <settings_nvs_load+0x36>
			/* Settings item is not stored correctly in the NVS.
			 * NVS entry for its name or value is either missing
			 * or deleted. Clean dirty entries to make space for
			 * future settings item.
			 */
			if (name_id == cf->last_name_id) {
   1e4d6:	f8b8 3038 	ldrh.w	r3, [r8, #56]	; 0x38
   1e4da:	42ab      	cmp	r3, r5
   1e4dc:	d03e      	beq.n	1e55c <settings_nvs_load+0xa4>
				cf->last_name_id--;
				nvs_write(&cf->cf_nvs, NVS_NAMECNT_ID,
					  &cf->last_name_id, sizeof(uint16_t));
			}
			nvs_delete(&cf->cf_nvs, name_id);
   1e4de:	4629      	mov	r1, r5
   1e4e0:	4638      	mov	r0, r7
   1e4e2:	f015 fe65 	bl	341b0 <nvs_delete>
			nvs_delete(&cf->cf_nvs, name_id + NVS_NAME_ID_OFFSET);
   1e4e6:	4621      	mov	r1, r4
   1e4e8:	4638      	mov	r0, r7
   1e4ea:	f015 fe61 	bl	341b0 <nvs_delete>
{
   1e4ee:	462c      	mov	r4, r5
		name_id--;
   1e4f0:	1e65      	subs	r5, r4, #1
   1e4f2:	b2ad      	uxth	r5, r5
		if (name_id == NVS_NAMECNT_ID) {
   1e4f4:	f5b5 4f00 	cmp.w	r5, #32768	; 0x8000
   1e4f8:	d02c      	beq.n	1e554 <settings_nvs_load+0x9c>
		rc1 = nvs_read(&cf->cf_nvs, name_id, &name, sizeof(name));
   1e4fa:	f108 0708 	add.w	r7, r8, #8
   1e4fe:	234a      	movs	r3, #74	; 0x4a
   1e500:	aa03      	add	r2, sp, #12
   1e502:	4629      	mov	r1, r5
   1e504:	4638      	mov	r0, r7
   1e506:	f015 fe59 	bl	341bc <nvs_read>
   1e50a:	4606      	mov	r6, r0
		rc2 = nvs_read(&cf->cf_nvs, name_id + NVS_NAME_ID_OFFSET,
   1e50c:	f504 547f 	add.w	r4, r4, #16320	; 0x3fc0
   1e510:	343f      	adds	r4, #63	; 0x3f
   1e512:	b2a4      	uxth	r4, r4
   1e514:	2301      	movs	r3, #1
   1e516:	f10d 020b 	add.w	r2, sp, #11
   1e51a:	4621      	mov	r1, r4
   1e51c:	4638      	mov	r0, r7
   1e51e:	f015 fe4d 	bl	341bc <nvs_read>
		if ((rc1 <= 0) && (rc2 <= 0)) {
   1e522:	2e00      	cmp	r6, #0
   1e524:	ddd4      	ble.n	1e4d0 <settings_nvs_load+0x18>
		if ((rc1 <= 0) || (rc2 <= 0)) {
   1e526:	2e00      	cmp	r6, #0
   1e528:	ddd5      	ble.n	1e4d6 <settings_nvs_load+0x1e>
   1e52a:	2800      	cmp	r0, #0
   1e52c:	ddd3      	ble.n	1e4d6 <settings_nvs_load+0x1e>
			continue;
		}

		/* Found a name, this might not include a trailing \0 */
		name[rc1] = '\0';
   1e52e:	ab18      	add	r3, sp, #96	; 0x60
   1e530:	441e      	add	r6, r3
   1e532:	2300      	movs	r3, #0
   1e534:	f806 3c54 	strb.w	r3, [r6, #-84]
		read_fn_arg.fs = &cf->cf_nvs;
   1e538:	9716      	str	r7, [sp, #88]	; 0x58
		read_fn_arg.id = name_id + NVS_NAME_ID_OFFSET;
   1e53a:	f8ad 405c 	strh.w	r4, [sp, #92]	; 0x5c

		ret = settings_call_set_handler(
   1e53e:	f8cd 9000 	str.w	r9, [sp]
   1e542:	ab16      	add	r3, sp, #88	; 0x58
   1e544:	4a0b      	ldr	r2, [pc, #44]	; (1e574 <settings_nvs_load+0xbc>)
   1e546:	4601      	mov	r1, r0
   1e548:	a803      	add	r0, sp, #12
   1e54a:	f7ff ff17 	bl	1e37c <settings_call_set_handler>
			name, rc2,
			settings_nvs_read_fn, &read_fn_arg,
			(void *)arg);
		if (ret) {
   1e54e:	4682      	mov	sl, r0
   1e550:	2800      	cmp	r0, #0
   1e552:	d0cc      	beq.n	1e4ee <settings_nvs_load+0x36>
			break;
		}
	}
	return ret;
}
   1e554:	4650      	mov	r0, sl
   1e556:	b018      	add	sp, #96	; 0x60
   1e558:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
				cf->last_name_id--;
   1e55c:	3b01      	subs	r3, #1
   1e55e:	4642      	mov	r2, r8
   1e560:	f822 3f38 	strh.w	r3, [r2, #56]!
				nvs_write(&cf->cf_nvs, NVS_NAMECNT_ID,
   1e564:	2302      	movs	r3, #2
   1e566:	f44f 4100 	mov.w	r1, #32768	; 0x8000
   1e56a:	4638      	mov	r0, r7
   1e56c:	f7ff fb9e 	bl	1dcac <nvs_write>
   1e570:	e7b5      	b.n	1e4de <settings_nvs_load+0x26>
   1e572:	bf00      	nop
   1e574:	0003455f 	.word	0x0003455f

0001e578 <settings_nvs_src>:
{
   1e578:	b508      	push	{r3, lr}
	cf->cf_store.cs_itf = &settings_nvs_itf;
   1e57a:	4b03      	ldr	r3, [pc, #12]	; (1e588 <settings_nvs_src+0x10>)
   1e57c:	6043      	str	r3, [r0, #4]
	settings_src_register(&cf->cf_store);
   1e57e:	f7ff fe17 	bl	1e1b0 <settings_src_register>
}
   1e582:	2000      	movs	r0, #0
   1e584:	bd08      	pop	{r3, pc}
   1e586:	bf00      	nop
   1e588:	20000480 	.word	0x20000480

0001e58c <settings_nvs_dst>:
{
   1e58c:	b508      	push	{r3, lr}
	cf->cf_store.cs_itf = &settings_nvs_itf;
   1e58e:	4b03      	ldr	r3, [pc, #12]	; (1e59c <settings_nvs_dst+0x10>)
   1e590:	6043      	str	r3, [r0, #4]
	settings_dst_register(&cf->cf_store);
   1e592:	f7ff fe1d 	bl	1e1d0 <settings_dst_register>
}
   1e596:	2000      	movs	r0, #0
   1e598:	bd08      	pop	{r3, pc}
   1e59a:	bf00      	nop
   1e59c:	20000480 	.word	0x20000480

0001e5a0 <settings_backend_init>:
	LOG_DBG("Initialized");
	return 0;
}

int settings_backend_init(void)
{
   1e5a0:	b510      	push	{r4, lr}
   1e5a2:	b084      	sub	sp, #16
	int rc;
	uint16_t cnt = 0;
	size_t nvs_sector_size, nvs_size = 0;
	const struct flash_area *fa;
	struct flash_sector hw_flash_sector;
	uint32_t sector_cnt = 1;
   1e5a4:	2301      	movs	r3, #1
   1e5a6:	9300      	str	r3, [sp, #0]

	rc = flash_area_open(FLASH_AREA_ID(storage), &fa);
   1e5a8:	a903      	add	r1, sp, #12
   1e5aa:	2006      	movs	r0, #6
   1e5ac:	f7ff fcbe 	bl	1df2c <flash_area_open>
	if (rc) {
   1e5b0:	4603      	mov	r3, r0
   1e5b2:	b110      	cbz	r0, 1e5ba <settings_backend_init+0x1a>
	}

	rc = settings_nvs_dst(&default_settings_nvs);

	return rc;
}
   1e5b4:	4618      	mov	r0, r3
   1e5b6:	b004      	add	sp, #16
   1e5b8:	bd10      	pop	{r4, pc}
	rc = flash_area_get_sectors(FLASH_AREA_ID(storage), &sector_cnt,
   1e5ba:	aa01      	add	r2, sp, #4
   1e5bc:	4669      	mov	r1, sp
   1e5be:	2006      	movs	r0, #6
   1e5c0:	f7ff fcc8 	bl	1df54 <flash_area_get_sectors>
   1e5c4:	4603      	mov	r3, r0
	if (rc == -ENODEV) {
   1e5c6:	f110 0f13 	cmn.w	r0, #19
   1e5ca:	d0f3      	beq.n	1e5b4 <settings_backend_init+0x14>
	} else if (rc != 0 && rc != -ENOMEM) {
   1e5cc:	b140      	cbz	r0, 1e5e0 <settings_backend_init+0x40>
   1e5ce:	f110 0f0c 	cmn.w	r0, #12
   1e5d2:	d005      	beq.n	1e5e0 <settings_backend_init+0x40>
		k_panic();
   1e5d4:	4040      	eors	r0, r0
   1e5d6:	f380 8811 	msr	BASEPRI, r0
   1e5da:	f04f 0004 	mov.w	r0, #4
   1e5de:	df02      	svc	2
	nvs_sector_size = CONFIG_SETTINGS_NVS_SECTOR_SIZE_MULT *
   1e5e0:	9c02      	ldr	r4, [sp, #8]
	if (nvs_sector_size > UINT16_MAX) {
   1e5e2:	f5b4 3f80 	cmp.w	r4, #65536	; 0x10000
   1e5e6:	d223      	bcs.n	1e630 <settings_backend_init+0x90>
	size_t nvs_sector_size, nvs_size = 0;
   1e5e8:	2200      	movs	r2, #0
	uint16_t cnt = 0;
   1e5ea:	4613      	mov	r3, r2
	while (cnt < CONFIG_SETTINGS_NVS_SECTOR_COUNT) {
   1e5ec:	2b07      	cmp	r3, #7
   1e5ee:	d807      	bhi.n	1e600 <settings_backend_init+0x60>
		nvs_size += nvs_sector_size;
   1e5f0:	4422      	add	r2, r4
		if (nvs_size > fa->fa_size) {
   1e5f2:	9903      	ldr	r1, [sp, #12]
   1e5f4:	6889      	ldr	r1, [r1, #8]
   1e5f6:	4291      	cmp	r1, r2
   1e5f8:	d302      	bcc.n	1e600 <settings_backend_init+0x60>
		cnt++;
   1e5fa:	3301      	adds	r3, #1
   1e5fc:	b29b      	uxth	r3, r3
   1e5fe:	e7f5      	b.n	1e5ec <settings_backend_init+0x4c>
	default_settings_nvs.cf_nvs.sector_size = nvs_sector_size;
   1e600:	480d      	ldr	r0, [pc, #52]	; (1e638 <settings_backend_init+0x98>)
   1e602:	8284      	strh	r4, [r0, #20]
	default_settings_nvs.cf_nvs.sector_count = cnt;
   1e604:	82c3      	strh	r3, [r0, #22]
	default_settings_nvs.cf_nvs.offset = fa->fa_off;
   1e606:	9b03      	ldr	r3, [sp, #12]
   1e608:	685a      	ldr	r2, [r3, #4]
   1e60a:	6082      	str	r2, [r0, #8]
	default_settings_nvs.flash_dev_name = fa->fa_dev_name;
   1e60c:	68db      	ldr	r3, [r3, #12]
   1e60e:	63c3      	str	r3, [r0, #60]	; 0x3c
	rc = settings_nvs_backend_init(&default_settings_nvs);
   1e610:	f016 f854 	bl	346bc <settings_nvs_backend_init>
	if (rc) {
   1e614:	4603      	mov	r3, r0
   1e616:	2800      	cmp	r0, #0
   1e618:	d1cc      	bne.n	1e5b4 <settings_backend_init+0x14>
	rc = settings_nvs_src(&default_settings_nvs);
   1e61a:	4807      	ldr	r0, [pc, #28]	; (1e638 <settings_backend_init+0x98>)
   1e61c:	f7ff ffac 	bl	1e578 <settings_nvs_src>
	if (rc) {
   1e620:	4603      	mov	r3, r0
   1e622:	2800      	cmp	r0, #0
   1e624:	d1c6      	bne.n	1e5b4 <settings_backend_init+0x14>
	rc = settings_nvs_dst(&default_settings_nvs);
   1e626:	4804      	ldr	r0, [pc, #16]	; (1e638 <settings_backend_init+0x98>)
   1e628:	f7ff ffb0 	bl	1e58c <settings_nvs_dst>
   1e62c:	4603      	mov	r3, r0
	return rc;
   1e62e:	e7c1      	b.n	1e5b4 <settings_backend_init+0x14>
		return -EDOM;
   1e630:	f06f 0320 	mvn.w	r3, #32
   1e634:	e7be      	b.n	1e5b4 <settings_backend_init+0x14>
   1e636:	bf00      	nop
   1e638:	20002104 	.word	0x20002104

0001e63c <pm_system_resume>:
	 * and it may schedule another thread.
	 *
	 * Call pm_idle_exit_notification_disable() if this
	 * notification is not required.
	 */
	if (!post_ops_done) {
   1e63c:	4b2c      	ldr	r3, [pc, #176]	; (1e6f0 <pm_system_resume+0xb4>)
   1e63e:	681b      	ldr	r3, [r3, #0]
   1e640:	2b00      	cmp	r3, #0
   1e642:	d154      	bne.n	1e6ee <pm_system_resume+0xb2>
{
   1e644:	b530      	push	{r4, r5, lr}
   1e646:	b085      	sub	sp, #20
		post_ops_done = 1;
   1e648:	4b29      	ldr	r3, [pc, #164]	; (1e6f0 <pm_system_resume+0xb4>)
   1e64a:	2201      	movs	r2, #1
   1e64c:	601a      	str	r2, [r3, #0]
		exit_pos_ops(z_power_state);
   1e64e:	4b29      	ldr	r3, [pc, #164]	; (1e6f4 <pm_system_resume+0xb8>)
   1e650:	e893 0007 	ldmia.w	r3, {r0, r1, r2}
   1e654:	ab04      	add	r3, sp, #16
   1e656:	e903 0007 	stmdb	r3, {r0, r1, r2}
	if (pm_power_state_exit_post_ops != NULL) {
   1e65a:	4b27      	ldr	r3, [pc, #156]	; (1e6f8 <pm_system_resume+0xbc>)
   1e65c:	b19b      	cbz	r3, 1e686 <pm_system_resume+0x4a>
		pm_power_state_exit_post_ops(info);
   1e65e:	f017 faa4 	bl	35baa <pm_power_state_exit_post_ops>
   1e662:	f04f 0340 	mov.w	r3, #64	; 0x40
   1e666:	f3ef 8511 	mrs	r5, BASEPRI
   1e66a:	f383 8812 	msr	BASEPRI_MAX, r3
   1e66e:	f3bf 8f6f 	isb	sy
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   1e672:	4822      	ldr	r0, [pc, #136]	; (1e6fc <pm_system_resume+0xc0>)
   1e674:	f010 ff56 	bl	2f524 <z_spin_lock_valid>
   1e678:	b158      	cbz	r0, 1e692 <pm_system_resume+0x56>
	z_spin_lock_set_owner(l);
   1e67a:	4820      	ldr	r0, [pc, #128]	; (1e6fc <pm_system_resume+0xc0>)
   1e67c:	f010 ff72 	bl	2f564 <z_spin_lock_set_owner>
	return list->head;
   1e680:	4b1f      	ldr	r3, [pc, #124]	; (1e700 <pm_system_resume+0xc4>)
   1e682:	681c      	ldr	r4, [r3, #0]
   1e684:	e015      	b.n	1e6b2 <pm_system_resume+0x76>
	__asm__ volatile(
   1e686:	2300      	movs	r3, #0
   1e688:	f383 8811 	msr	BASEPRI, r3
   1e68c:	f3bf 8f6f 	isb	sy
		"cpsie i;"
		: : : "memory", "cc");
#else
#error Unknown ARM architecture
#endif /* CONFIG_ARMV6_M_ARMV8_M_BASELINE */
}
   1e690:	e7e7      	b.n	1e662 <pm_system_resume+0x26>
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   1e692:	4c1c      	ldr	r4, [pc, #112]	; (1e704 <pm_system_resume+0xc8>)
   1e694:	2281      	movs	r2, #129	; 0x81
   1e696:	4621      	mov	r1, r4
   1e698:	481b      	ldr	r0, [pc, #108]	; (1e708 <pm_system_resume+0xcc>)
   1e69a:	f014 fe86 	bl	333aa <printk>
   1e69e:	2181      	movs	r1, #129	; 0x81
   1e6a0:	4620      	mov	r0, r4
   1e6a2:	f015 fa1b 	bl	33adc <assert_post_action>
   1e6a6:	e7e8      	b.n	1e67a <pm_system_resume+0x3e>
	SYS_SLIST_FOR_EACH_CONTAINER(&pm_notifiers, notifier, _node) {
   1e6a8:	4623      	mov	r3, r4
Z_GENLIST_PEEK_NEXT(slist, snode)
   1e6aa:	b10c      	cbz	r4, 1e6b0 <pm_system_resume+0x74>
	return node->next;
   1e6ac:	6823      	ldr	r3, [r4, #0]
   1e6ae:	b143      	cbz	r3, 1e6c2 <pm_system_resume+0x86>
{
   1e6b0:	461c      	mov	r4, r3
	SYS_SLIST_FOR_EACH_CONTAINER(&pm_notifiers, notifier, _node) {
   1e6b2:	b134      	cbz	r4, 1e6c2 <pm_system_resume+0x86>
			callback = notifier->state_exit;
   1e6b4:	68a3      	ldr	r3, [r4, #8]
		if (callback) {
   1e6b6:	2b00      	cmp	r3, #0
   1e6b8:	d0f6      	beq.n	1e6a8 <pm_system_resume+0x6c>
			callback(z_power_state.state);
   1e6ba:	4a0e      	ldr	r2, [pc, #56]	; (1e6f4 <pm_system_resume+0xb8>)
   1e6bc:	7810      	ldrb	r0, [r2, #0]
   1e6be:	4798      	blx	r3
   1e6c0:	e7f2      	b.n	1e6a8 <pm_system_resume+0x6c>
	k_spin_unlock(&pm_notifier_lock, pm_notifier_key);
   1e6c2:	462c      	mov	r4, r5
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   1e6c4:	480d      	ldr	r0, [pc, #52]	; (1e6fc <pm_system_resume+0xc0>)
   1e6c6:	f010 ff3d 	bl	2f544 <z_spin_unlock_valid>
   1e6ca:	b128      	cbz	r0, 1e6d8 <pm_system_resume+0x9c>
	__asm__ volatile(
   1e6cc:	f384 8811 	msr	BASEPRI, r4
   1e6d0:	f3bf 8f6f 	isb	sy
		pm_state_notify(false);
	}
}
   1e6d4:	b005      	add	sp, #20
   1e6d6:	bd30      	pop	{r4, r5, pc}
   1e6d8:	4d0a      	ldr	r5, [pc, #40]	; (1e704 <pm_system_resume+0xc8>)
   1e6da:	22ac      	movs	r2, #172	; 0xac
   1e6dc:	4629      	mov	r1, r5
   1e6de:	480a      	ldr	r0, [pc, #40]	; (1e708 <pm_system_resume+0xcc>)
   1e6e0:	f014 fe63 	bl	333aa <printk>
   1e6e4:	21ac      	movs	r1, #172	; 0xac
   1e6e6:	4628      	mov	r0, r5
   1e6e8:	f015 f9f8 	bl	33adc <assert_post_action>
   1e6ec:	e7ee      	b.n	1e6cc <pm_system_resume+0x90>
   1e6ee:	4770      	bx	lr
   1e6f0:	20000490 	.word	0x20000490
   1e6f4:	20002150 	.word	0x20002150
   1e6f8:	00035bab 	.word	0x00035bab
   1e6fc:	20002144 	.word	0x20002144
   1e700:	20002148 	.word	0x20002148
   1e704:	0003bde8 	.word	0x0003bde8
   1e708:	0003bdac 	.word	0x0003bdac

0001e70c <pm_system_suspend>:
	return PM_STATE_ACTIVE;
}
#endif

enum pm_state pm_system_suspend(int32_t ticks)
{
   1e70c:	b570      	push	{r4, r5, r6, lr}
   1e70e:	b088      	sub	sp, #32
   1e710:	4604      	mov	r4, r0
	SYS_PORT_TRACING_FUNC_ENTER(pm, system_suspend, ticks);
	z_power_state = pm_policy_next_state(ticks);
   1e712:	4d42      	ldr	r5, [pc, #264]	; (1e81c <pm_system_suspend+0x110>)
   1e714:	466e      	mov	r6, sp
   1e716:	4601      	mov	r1, r0
   1e718:	4630      	mov	r0, r6
   1e71a:	f015 ffef 	bl	346fc <pm_policy_next_state>
   1e71e:	e896 0007 	ldmia.w	r6, {r0, r1, r2}
   1e722:	e885 0007 	stmia.w	r5, {r0, r1, r2}
	if (z_power_state.state == PM_STATE_ACTIVE) {
   1e726:	7828      	ldrb	r0, [r5, #0]
   1e728:	2800      	cmp	r0, #0
   1e72a:	d06a      	beq.n	1e802 <pm_system_suspend+0xf6>
		LOG_DBG("No PM operations done.");
		SYS_PORT_TRACING_FUNC_EXIT(pm, system_suspend, ticks, z_power_state.state);
		return z_power_state.state;
	}
	post_ops_done = 0;
   1e72c:	4b3c      	ldr	r3, [pc, #240]	; (1e820 <pm_system_suspend+0x114>)
   1e72e:	2200      	movs	r2, #0
   1e730:	601a      	str	r2, [r3, #0]

	if (ticks != K_TICKS_FOREVER) {
   1e732:	f1b4 3fff 	cmp.w	r4, #4294967295
   1e736:	d014      	beq.n	1e762 <pm_system_suspend+0x56>
		/*
		 * Just a sanity check in case the policy manager does not
		 * handle this error condition properly.
		 */
		__ASSERT(z_power_state.min_residency_us >=
   1e738:	68ab      	ldr	r3, [r5, #8]
   1e73a:	4299      	cmp	r1, r3
   1e73c:	d325      	bcc.n	1e78a <pm_system_suspend+0x7e>
		/*
		 * We need to set the timer to interrupt a little bit early to
		 * accommodate the time required by the CPU to fully wake up.
		 */
		z_set_timeout_expiry(ticks -
		     k_us_to_ticks_ceil32(z_power_state.exit_latency_us), true);
   1e73e:	4b37      	ldr	r3, [pc, #220]	; (1e81c <pm_system_suspend+0x110>)
   1e740:	689b      	ldr	r3, [r3, #8]
		} else {
			return t * ((uint64_t)to_hz / from_hz);
		}
	} else {
		if (result32) {
			return (uint32_t)((t * to_hz + off) / from_hz);
   1e742:	0c59      	lsrs	r1, r3, #17
   1e744:	03d8      	lsls	r0, r3, #15
   1e746:	4d37      	ldr	r5, [pc, #220]	; (1e824 <pm_system_suspend+0x118>)
   1e748:	4a37      	ldr	r2, [pc, #220]	; (1e828 <pm_system_suspend+0x11c>)
   1e74a:	2300      	movs	r3, #0
   1e74c:	1940      	adds	r0, r0, r5
   1e74e:	f04f 0500 	mov.w	r5, #0
   1e752:	eb45 0101 	adc.w	r1, r5, r1
   1e756:	f7ed fdd3 	bl	c300 <__aeabi_uldivmod>
		z_set_timeout_expiry(ticks -
   1e75a:	2101      	movs	r1, #1
   1e75c:	1a20      	subs	r0, r4, r0
   1e75e:	f013 fd65 	bl	3222c <z_set_timeout_expiry>
	 * state. We don't want to be scheduled out yet, first we need
	 * to send a notification about leaving the idle state. So,
	 * we lock the scheduler here and unlock just after we have
	 * sent the notification in pm_system_resume().
	 */
	k_sched_lock();
   1e762:	f012 fb07 	bl	30d74 <k_sched_lock>
	__asm__ volatile(
   1e766:	f04f 0340 	mov.w	r3, #64	; 0x40
   1e76a:	f3ef 8511 	mrs	r5, BASEPRI
   1e76e:	f383 8812 	msr	BASEPRI_MAX, r3
   1e772:	f3bf 8f6f 	isb	sy
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   1e776:	482d      	ldr	r0, [pc, #180]	; (1e82c <pm_system_suspend+0x120>)
   1e778:	f010 fed4 	bl	2f524 <z_spin_lock_valid>
   1e77c:	b180      	cbz	r0, 1e7a0 <pm_system_suspend+0x94>
	z_spin_lock_set_owner(l);
   1e77e:	482b      	ldr	r0, [pc, #172]	; (1e82c <pm_system_suspend+0x120>)
   1e780:	f010 fef0 	bl	2f564 <z_spin_lock_set_owner>
	return list->head;
   1e784:	4b2a      	ldr	r3, [pc, #168]	; (1e830 <pm_system_suspend+0x124>)
   1e786:	681c      	ldr	r4, [r3, #0]
   1e788:	e01a      	b.n	1e7c0 <pm_system_suspend+0xb4>
		__ASSERT(z_power_state.min_residency_us >=
   1e78a:	4d2a      	ldr	r5, [pc, #168]	; (1e834 <pm_system_suspend+0x128>)
   1e78c:	22ca      	movs	r2, #202	; 0xca
   1e78e:	4629      	mov	r1, r5
   1e790:	4829      	ldr	r0, [pc, #164]	; (1e838 <pm_system_suspend+0x12c>)
   1e792:	f014 fe0a 	bl	333aa <printk>
   1e796:	21ca      	movs	r1, #202	; 0xca
   1e798:	4628      	mov	r0, r5
   1e79a:	f015 f99f 	bl	33adc <assert_post_action>
   1e79e:	e7ce      	b.n	1e73e <pm_system_suspend+0x32>
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   1e7a0:	4c26      	ldr	r4, [pc, #152]	; (1e83c <pm_system_suspend+0x130>)
   1e7a2:	2281      	movs	r2, #129	; 0x81
   1e7a4:	4621      	mov	r1, r4
   1e7a6:	4824      	ldr	r0, [pc, #144]	; (1e838 <pm_system_suspend+0x12c>)
   1e7a8:	f014 fdff 	bl	333aa <printk>
   1e7ac:	2181      	movs	r1, #129	; 0x81
   1e7ae:	4620      	mov	r0, r4
   1e7b0:	f015 f994 	bl	33adc <assert_post_action>
   1e7b4:	e7e3      	b.n	1e77e <pm_system_suspend+0x72>
	SYS_SLIST_FOR_EACH_CONTAINER(&pm_notifiers, notifier, _node) {
   1e7b6:	4623      	mov	r3, r4
Z_GENLIST_PEEK_NEXT(slist, snode)
   1e7b8:	b10c      	cbz	r4, 1e7be <pm_system_suspend+0xb2>
	return node->next;
   1e7ba:	6823      	ldr	r3, [r4, #0]
   1e7bc:	b143      	cbz	r3, 1e7d0 <pm_system_suspend+0xc4>
{
   1e7be:	461c      	mov	r4, r3
	SYS_SLIST_FOR_EACH_CONTAINER(&pm_notifiers, notifier, _node) {
   1e7c0:	b134      	cbz	r4, 1e7d0 <pm_system_suspend+0xc4>
			callback = notifier->state_entry;
   1e7c2:	6863      	ldr	r3, [r4, #4]
		if (callback) {
   1e7c4:	2b00      	cmp	r3, #0
   1e7c6:	d0f6      	beq.n	1e7b6 <pm_system_suspend+0xaa>
			callback(z_power_state.state);
   1e7c8:	4a14      	ldr	r2, [pc, #80]	; (1e81c <pm_system_suspend+0x110>)
   1e7ca:	7810      	ldrb	r0, [r2, #0]
   1e7cc:	4798      	blx	r3
   1e7ce:	e7f2      	b.n	1e7b6 <pm_system_suspend+0xaa>
	k_spin_unlock(&pm_notifier_lock, pm_notifier_key);
   1e7d0:	462c      	mov	r4, r5
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   1e7d2:	4816      	ldr	r0, [pc, #88]	; (1e82c <pm_system_suspend+0x120>)
   1e7d4:	f010 feb6 	bl	2f544 <z_spin_unlock_valid>
   1e7d8:	b1a8      	cbz	r0, 1e806 <pm_system_suspend+0xfa>
	__asm__ volatile(
   1e7da:	f384 8811 	msr	BASEPRI, r4
   1e7de:	f3bf 8f6f 	isb	sy
	pm_debug_start_timer();
	/* Enter power state */
	pm_state_notify(true);
	pm_state_set(z_power_state);
   1e7e2:	4b0e      	ldr	r3, [pc, #56]	; (1e81c <pm_system_suspend+0x110>)
   1e7e4:	e893 0007 	ldmia.w	r3, {r0, r1, r2}
   1e7e8:	ab08      	add	r3, sp, #32
   1e7ea:	e903 0007 	stmdb	r3, {r0, r1, r2}
	if (pm_power_state_set != NULL) {
   1e7ee:	4b14      	ldr	r3, [pc, #80]	; (1e840 <pm_system_suspend+0x134>)
   1e7f0:	b10b      	cbz	r3, 1e7f6 <pm_system_suspend+0xea>
		pm_power_state_set(info);
   1e7f2:	f017 f9c7 	bl	35b84 <pm_power_state_set>
		/* Turn on peripherals and restore device states as necessary */
		pm_resume_devices();
	}
#endif
	pm_log_debug_info(z_power_state.state);
	pm_system_resume();
   1e7f6:	f7ff ff21 	bl	1e63c <pm_system_resume>
	k_sched_unlock();
   1e7fa:	f012 ffab 	bl	31754 <k_sched_unlock>
	SYS_PORT_TRACING_FUNC_EXIT(pm, system_suspend, ticks, z_power_state.state);
	return z_power_state.state;
   1e7fe:	4b07      	ldr	r3, [pc, #28]	; (1e81c <pm_system_suspend+0x110>)
   1e800:	7818      	ldrb	r0, [r3, #0]
}
   1e802:	b008      	add	sp, #32
   1e804:	bd70      	pop	{r4, r5, r6, pc}
   1e806:	4d0d      	ldr	r5, [pc, #52]	; (1e83c <pm_system_suspend+0x130>)
   1e808:	22ac      	movs	r2, #172	; 0xac
   1e80a:	4629      	mov	r1, r5
   1e80c:	480a      	ldr	r0, [pc, #40]	; (1e838 <pm_system_suspend+0x12c>)
   1e80e:	f014 fdcc 	bl	333aa <printk>
   1e812:	21ac      	movs	r1, #172	; 0xac
   1e814:	4628      	mov	r0, r5
   1e816:	f015 f961 	bl	33adc <assert_post_action>
   1e81a:	e7de      	b.n	1e7da <pm_system_suspend+0xce>
   1e81c:	20002150 	.word	0x20002150
   1e820:	20000490 	.word	0x20000490
   1e824:	000f423f 	.word	0x000f423f
   1e828:	000f4240 	.word	0x000f4240
   1e82c:	20002144 	.word	0x20002144
   1e830:	20002148 	.word	0x20002148
   1e834:	0003c170 	.word	0x0003c170
   1e838:	0003bdac 	.word	0x0003bdac
   1e83c:	0003bde8 	.word	0x0003bde8
   1e840:	00035b85 	.word	0x00035b85

0001e844 <lbslc_ccc_cfg_changed>:
static struct bt_lbs_cb       lbs_cb;

static void lbslc_ccc_cfg_changed(const struct bt_gatt_attr *attr,
				  uint16_t value)
{
	notify_enabled = (value == BT_GATT_CCC_NOTIFY);
   1e844:	2901      	cmp	r1, #1
   1e846:	bf14      	ite	ne
   1e848:	2100      	movne	r1, #0
   1e84a:	2101      	moveq	r1, #1
   1e84c:	4b01      	ldr	r3, [pc, #4]	; (1e854 <lbslc_ccc_cfg_changed+0x10>)
   1e84e:	7019      	strb	r1, [r3, #0]
}
   1e850:	4770      	bx	lr
   1e852:	bf00      	nop
   1e854:	200034e9 	.word	0x200034e9

0001e858 <write_led>:

static ssize_t write_led(struct bt_conn *conn,
			 const struct bt_gatt_attr *attr,
			 const void *buf,
			 uint16_t len, uint16_t offset, uint8_t flags)
{
   1e858:	b510      	push	{r4, lr}
   1e85a:	461c      	mov	r4, r3
   1e85c:	f8bd 3008 	ldrh.w	r3, [sp, #8]
	LOG_DBG("Attribute write, handle: %u, conn: %p", attr->handle,
		(void *)conn);

	if (len != 1U) {
   1e860:	2c01      	cmp	r4, #1
   1e862:	d10c      	bne.n	1e87e <write_led+0x26>
		LOG_DBG("Write led: Incorrect data length");
		return BT_GATT_ERR(BT_ATT_ERR_INVALID_ATTRIBUTE_LEN);
	}

	if (offset != 0) {
   1e864:	b973      	cbnz	r3, 1e884 <write_led+0x2c>
		LOG_DBG("Write led: Incorrect data offset");
		return BT_GATT_ERR(BT_ATT_ERR_INVALID_OFFSET);
	}

	if (lbs_cb.led_cb) {
   1e866:	4b0a      	ldr	r3, [pc, #40]	; (1e890 <write_led+0x38>)
   1e868:	681b      	ldr	r3, [r3, #0]
   1e86a:	b133      	cbz	r3, 1e87a <write_led+0x22>
		uint8_t val = *((uint8_t *)buf);
   1e86c:	7810      	ldrb	r0, [r2, #0]

		if (val == 0x00 || val == 0x01) {
   1e86e:	2801      	cmp	r0, #1
   1e870:	d80b      	bhi.n	1e88a <write_led+0x32>
			lbs_cb.led_cb(val ? true : false);
   1e872:	3800      	subs	r0, #0
   1e874:	bf18      	it	ne
   1e876:	2001      	movne	r0, #1
   1e878:	4798      	blx	r3
			LOG_DBG("Write led: Incorrect value");
			return BT_GATT_ERR(BT_ATT_ERR_VALUE_NOT_ALLOWED);
		}
	}

	return len;
   1e87a:	4620      	mov	r0, r4
}
   1e87c:	bd10      	pop	{r4, pc}
		return BT_GATT_ERR(BT_ATT_ERR_INVALID_ATTRIBUTE_LEN);
   1e87e:	f06f 000c 	mvn.w	r0, #12
   1e882:	e7fb      	b.n	1e87c <write_led+0x24>
		return BT_GATT_ERR(BT_ATT_ERR_INVALID_OFFSET);
   1e884:	f06f 0006 	mvn.w	r0, #6
   1e888:	e7f8      	b.n	1e87c <write_led+0x24>
			return BT_GATT_ERR(BT_ATT_ERR_VALUE_NOT_ALLOWED);
   1e88a:	f06f 0012 	mvn.w	r0, #18
   1e88e:	e7f5      	b.n	1e87c <write_led+0x24>
   1e890:	2000215c 	.word	0x2000215c

0001e894 <read_button>:
static ssize_t read_button(struct bt_conn *conn,
			  const struct bt_gatt_attr *attr,
			  void *buf,
			  uint16_t len,
			  uint16_t offset)
{
   1e894:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   1e898:	b084      	sub	sp, #16
   1e89a:	460c      	mov	r4, r1
	const char *value = attr->user_data;
   1e89c:	f8d1 800c 	ldr.w	r8, [r1, #12]

	LOG_DBG("Attribute read, handle: %u, conn: %p", attr->handle,
		(void *)conn);

	if (lbs_cb.button_cb) {
   1e8a0:	490d      	ldr	r1, [pc, #52]	; (1e8d8 <read_button+0x44>)
   1e8a2:	6849      	ldr	r1, [r1, #4]
   1e8a4:	b1a9      	cbz	r1, 1e8d2 <read_button+0x3e>
   1e8a6:	4605      	mov	r5, r0
   1e8a8:	4617      	mov	r7, r2
   1e8aa:	461e      	mov	r6, r3
		button_state = lbs_cb.button_cb();
   1e8ac:	4788      	blx	r1
   1e8ae:	4b0b      	ldr	r3, [pc, #44]	; (1e8dc <read_button+0x48>)
   1e8b0:	7018      	strb	r0, [r3, #0]
		return bt_gatt_attr_read(conn, attr, buf, len, offset, value,
   1e8b2:	2301      	movs	r3, #1
   1e8b4:	9302      	str	r3, [sp, #8]
   1e8b6:	f8cd 8004 	str.w	r8, [sp, #4]
   1e8ba:	f8bd 3028 	ldrh.w	r3, [sp, #40]	; 0x28
   1e8be:	9300      	str	r3, [sp, #0]
   1e8c0:	4633      	mov	r3, r6
   1e8c2:	463a      	mov	r2, r7
   1e8c4:	4621      	mov	r1, r4
   1e8c6:	4628      	mov	r0, r5
   1e8c8:	f019 f9c4 	bl	37c54 <bt_gatt_attr_read>
					 sizeof(*value));
	}

	return 0;
}
   1e8cc:	b004      	add	sp, #16
   1e8ce:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
	return 0;
   1e8d2:	2000      	movs	r0, #0
   1e8d4:	e7fa      	b.n	1e8cc <read_button+0x38>
   1e8d6:	bf00      	nop
   1e8d8:	2000215c 	.word	0x2000215c
   1e8dc:	200034e8 	.word	0x200034e8

0001e8e0 <bt_lbs_init>:
			       NULL, write_led, NULL),
);

int bt_lbs_init(struct bt_lbs_cb *callbacks)
{
	if (callbacks) {
   1e8e0:	b120      	cbz	r0, 1e8ec <bt_lbs_init+0xc>
		lbs_cb.led_cb    = callbacks->led_cb;
   1e8e2:	6801      	ldr	r1, [r0, #0]
   1e8e4:	4a02      	ldr	r2, [pc, #8]	; (1e8f0 <bt_lbs_init+0x10>)
   1e8e6:	6011      	str	r1, [r2, #0]
		lbs_cb.button_cb = callbacks->button_cb;
   1e8e8:	6843      	ldr	r3, [r0, #4]
   1e8ea:	6053      	str	r3, [r2, #4]
	}

	return 0;
}
   1e8ec:	2000      	movs	r0, #0
   1e8ee:	4770      	bx	lr
   1e8f0:	2000215c 	.word	0x2000215c

0001e8f4 <bt_lbs_send_button_state>:

int bt_lbs_send_button_state(bool button_state)
{
   1e8f4:	b500      	push	{lr}
   1e8f6:	b089      	sub	sp, #36	; 0x24
   1e8f8:	f88d 0007 	strb.w	r0, [sp, #7]
	if (!notify_enabled) {
   1e8fc:	4b0c      	ldr	r3, [pc, #48]	; (1e930 <bt_lbs_send_button_state+0x3c>)
   1e8fe:	781b      	ldrb	r3, [r3, #0]
   1e900:	b19b      	cbz	r3, 1e92a <bt_lbs_send_button_state+0x36>
				 const struct bt_gatt_attr *attr,
				 const void *data, uint16_t len)
{
	struct bt_gatt_notify_params params;

	memset(&params, 0, sizeof(params));
   1e902:	2218      	movs	r2, #24
   1e904:	2100      	movs	r1, #0
   1e906:	a802      	add	r0, sp, #8
   1e908:	f017 f91c 	bl	35b44 <memset>

	params.attr = attr;
   1e90c:	4b09      	ldr	r3, [pc, #36]	; (1e934 <bt_lbs_send_button_state+0x40>)
   1e90e:	9303      	str	r3, [sp, #12]
	params.data = data;
   1e910:	f10d 0307 	add.w	r3, sp, #7
   1e914:	9304      	str	r3, [sp, #16]
	params.len = len;
   1e916:	2301      	movs	r3, #1
   1e918:	f8ad 3014 	strh.w	r3, [sp, #20]

	return bt_gatt_notify_cb(conn, &params);
   1e91c:	a902      	add	r1, sp, #8
   1e91e:	2000      	movs	r0, #0
   1e920:	f008 f828 	bl	26974 <bt_gatt_notify_cb>
	}

	return bt_gatt_notify(NULL, &lbs_svc.attrs[2],
			      &button_state,
			      sizeof(button_state));
}
   1e924:	b009      	add	sp, #36	; 0x24
   1e926:	f85d fb04 	ldr.w	pc, [sp], #4
		return -EACCES;
   1e92a:	f06f 000c 	mvn.w	r0, #12
   1e92e:	e7f9      	b.n	1e924 <bt_lbs_send_button_state+0x30>
   1e930:	200034e9 	.word	0x200034e9
   1e934:	0003c1d0 	.word	0x0003c1d0

0001e938 <uECC_get_rng>:
}

uECC_RNG_Function uECC_get_rng(void)
{
	return g_rng_function;
}
   1e938:	4b01      	ldr	r3, [pc, #4]	; (1e940 <uECC_get_rng+0x8>)
   1e93a:	6818      	ldr	r0, [r3, #0]
   1e93c:	4770      	bx	lr
   1e93e:	bf00      	nop
   1e940:	20000534 	.word	0x20000534

0001e944 <vli_mmod_fast_secp256r1>:
{
	return &curve_secp256r1;
}

void vli_mmod_fast_secp256r1(unsigned int *result, unsigned int*product)
{
   1e944:	b5f0      	push	{r4, r5, r6, r7, lr}
   1e946:	b089      	sub	sp, #36	; 0x24
   1e948:	4605      	mov	r5, r0
   1e94a:	460c      	mov	r4, r1
	unsigned int tmp[NUM_ECC_WORDS];
	int carry;

	/* t */
	uECC_vli_set(result, product, NUM_ECC_WORDS);
   1e94c:	2208      	movs	r2, #8
   1e94e:	f016 f879 	bl	34a44 <uECC_vli_set>

	/* s1 */
	tmp[0] = tmp[1] = tmp[2] = 0;
   1e952:	2700      	movs	r7, #0
   1e954:	9702      	str	r7, [sp, #8]
   1e956:	9701      	str	r7, [sp, #4]
   1e958:	9700      	str	r7, [sp, #0]
	tmp[3] = product[11];
   1e95a:	6ae3      	ldr	r3, [r4, #44]	; 0x2c
   1e95c:	9303      	str	r3, [sp, #12]
	tmp[4] = product[12];
   1e95e:	6b23      	ldr	r3, [r4, #48]	; 0x30
   1e960:	9304      	str	r3, [sp, #16]
	tmp[5] = product[13];
   1e962:	6b63      	ldr	r3, [r4, #52]	; 0x34
   1e964:	9305      	str	r3, [sp, #20]
	tmp[6] = product[14];
   1e966:	6ba3      	ldr	r3, [r4, #56]	; 0x38
   1e968:	9306      	str	r3, [sp, #24]
	tmp[7] = product[15];
   1e96a:	6be3      	ldr	r3, [r4, #60]	; 0x3c
   1e96c:	9307      	str	r3, [sp, #28]
	carry = uECC_vli_add(tmp, tmp, tmp, NUM_ECC_WORDS);
   1e96e:	2308      	movs	r3, #8
   1e970:	466a      	mov	r2, sp
   1e972:	4669      	mov	r1, sp
   1e974:	4668      	mov	r0, sp
   1e976:	f016 f8aa 	bl	34ace <uECC_vli_add>
   1e97a:	4606      	mov	r6, r0
	carry += uECC_vli_add(result, result, tmp, NUM_ECC_WORDS);
   1e97c:	2308      	movs	r3, #8
   1e97e:	466a      	mov	r2, sp
   1e980:	4629      	mov	r1, r5
   1e982:	4628      	mov	r0, r5
   1e984:	f016 f8a3 	bl	34ace <uECC_vli_add>
   1e988:	4406      	add	r6, r0

	/* s2 */
	tmp[3] = product[12];
   1e98a:	6b23      	ldr	r3, [r4, #48]	; 0x30
   1e98c:	9303      	str	r3, [sp, #12]
	tmp[4] = product[13];
   1e98e:	6b63      	ldr	r3, [r4, #52]	; 0x34
   1e990:	9304      	str	r3, [sp, #16]
	tmp[5] = product[14];
   1e992:	6ba3      	ldr	r3, [r4, #56]	; 0x38
   1e994:	9305      	str	r3, [sp, #20]
	tmp[6] = product[15];
   1e996:	6be3      	ldr	r3, [r4, #60]	; 0x3c
   1e998:	9306      	str	r3, [sp, #24]
	tmp[7] = 0;
   1e99a:	9707      	str	r7, [sp, #28]
	carry += uECC_vli_add(tmp, tmp, tmp, NUM_ECC_WORDS);
   1e99c:	2308      	movs	r3, #8
   1e99e:	466a      	mov	r2, sp
   1e9a0:	4669      	mov	r1, sp
   1e9a2:	4668      	mov	r0, sp
   1e9a4:	f016 f893 	bl	34ace <uECC_vli_add>
   1e9a8:	4406      	add	r6, r0
	carry += uECC_vli_add(result, result, tmp, NUM_ECC_WORDS);
   1e9aa:	2308      	movs	r3, #8
   1e9ac:	466a      	mov	r2, sp
   1e9ae:	4629      	mov	r1, r5
   1e9b0:	4628      	mov	r0, r5
   1e9b2:	f016 f88c 	bl	34ace <uECC_vli_add>
   1e9b6:	4406      	add	r6, r0

	/* s3 */
	tmp[0] = product[8];
   1e9b8:	6a23      	ldr	r3, [r4, #32]
   1e9ba:	9300      	str	r3, [sp, #0]
	tmp[1] = product[9];
   1e9bc:	6a63      	ldr	r3, [r4, #36]	; 0x24
   1e9be:	9301      	str	r3, [sp, #4]
	tmp[2] = product[10];
   1e9c0:	6aa3      	ldr	r3, [r4, #40]	; 0x28
   1e9c2:	9302      	str	r3, [sp, #8]
	tmp[3] = tmp[4] = tmp[5] = 0;
   1e9c4:	9705      	str	r7, [sp, #20]
   1e9c6:	9704      	str	r7, [sp, #16]
   1e9c8:	9703      	str	r7, [sp, #12]
	tmp[6] = product[14];
   1e9ca:	6ba3      	ldr	r3, [r4, #56]	; 0x38
   1e9cc:	9306      	str	r3, [sp, #24]
	tmp[7] = product[15];
   1e9ce:	6be3      	ldr	r3, [r4, #60]	; 0x3c
   1e9d0:	9307      	str	r3, [sp, #28]
  	carry += uECC_vli_add(result, result, tmp, NUM_ECC_WORDS);
   1e9d2:	2308      	movs	r3, #8
   1e9d4:	466a      	mov	r2, sp
   1e9d6:	4629      	mov	r1, r5
   1e9d8:	4628      	mov	r0, r5
   1e9da:	f016 f878 	bl	34ace <uECC_vli_add>
   1e9de:	4406      	add	r6, r0

	/* s4 */
	tmp[0] = product[9];
   1e9e0:	6a63      	ldr	r3, [r4, #36]	; 0x24
   1e9e2:	9300      	str	r3, [sp, #0]
	tmp[1] = product[10];
   1e9e4:	6aa3      	ldr	r3, [r4, #40]	; 0x28
   1e9e6:	9301      	str	r3, [sp, #4]
	tmp[2] = product[11];
   1e9e8:	6ae3      	ldr	r3, [r4, #44]	; 0x2c
   1e9ea:	9302      	str	r3, [sp, #8]
	tmp[3] = product[13];
   1e9ec:	6b63      	ldr	r3, [r4, #52]	; 0x34
   1e9ee:	9303      	str	r3, [sp, #12]
	tmp[4] = product[14];
   1e9f0:	6ba2      	ldr	r2, [r4, #56]	; 0x38
   1e9f2:	9204      	str	r2, [sp, #16]
	tmp[5] = product[15];
   1e9f4:	6be2      	ldr	r2, [r4, #60]	; 0x3c
   1e9f6:	9205      	str	r2, [sp, #20]
	tmp[6] = product[13];
   1e9f8:	9306      	str	r3, [sp, #24]
	tmp[7] = product[8];
   1e9fa:	6a23      	ldr	r3, [r4, #32]
   1e9fc:	9307      	str	r3, [sp, #28]
	carry += uECC_vli_add(result, result, tmp, NUM_ECC_WORDS);
   1e9fe:	2308      	movs	r3, #8
   1ea00:	466a      	mov	r2, sp
   1ea02:	4629      	mov	r1, r5
   1ea04:	4628      	mov	r0, r5
   1ea06:	f016 f862 	bl	34ace <uECC_vli_add>
   1ea0a:	4406      	add	r6, r0

	/* d1 */
	tmp[0] = product[11];
   1ea0c:	6ae3      	ldr	r3, [r4, #44]	; 0x2c
   1ea0e:	9300      	str	r3, [sp, #0]
	tmp[1] = product[12];
   1ea10:	6b23      	ldr	r3, [r4, #48]	; 0x30
   1ea12:	9301      	str	r3, [sp, #4]
	tmp[2] = product[13];
   1ea14:	6b63      	ldr	r3, [r4, #52]	; 0x34
   1ea16:	9302      	str	r3, [sp, #8]
	tmp[3] = tmp[4] = tmp[5] = 0;
   1ea18:	9705      	str	r7, [sp, #20]
   1ea1a:	9704      	str	r7, [sp, #16]
   1ea1c:	9703      	str	r7, [sp, #12]
	tmp[6] = product[8];
   1ea1e:	6a23      	ldr	r3, [r4, #32]
   1ea20:	9306      	str	r3, [sp, #24]
	tmp[7] = product[10];
   1ea22:	6aa3      	ldr	r3, [r4, #40]	; 0x28
   1ea24:	9307      	str	r3, [sp, #28]
	carry -= uECC_vli_sub(result, result, tmp, NUM_ECC_WORDS);
   1ea26:	2308      	movs	r3, #8
   1ea28:	466a      	mov	r2, sp
   1ea2a:	4629      	mov	r1, r5
   1ea2c:	4628      	mov	r0, r5
   1ea2e:	f016 f88e 	bl	34b4e <uECC_vli_sub>
   1ea32:	1a36      	subs	r6, r6, r0

	/* d2 */
	tmp[0] = product[12];
   1ea34:	6b23      	ldr	r3, [r4, #48]	; 0x30
   1ea36:	9300      	str	r3, [sp, #0]
	tmp[1] = product[13];
   1ea38:	6b63      	ldr	r3, [r4, #52]	; 0x34
   1ea3a:	9301      	str	r3, [sp, #4]
	tmp[2] = product[14];
   1ea3c:	6ba3      	ldr	r3, [r4, #56]	; 0x38
   1ea3e:	9302      	str	r3, [sp, #8]
	tmp[3] = product[15];
   1ea40:	6be3      	ldr	r3, [r4, #60]	; 0x3c
   1ea42:	9303      	str	r3, [sp, #12]
	tmp[4] = tmp[5] = 0;
   1ea44:	9705      	str	r7, [sp, #20]
   1ea46:	9704      	str	r7, [sp, #16]
	tmp[6] = product[9];
   1ea48:	6a63      	ldr	r3, [r4, #36]	; 0x24
   1ea4a:	9306      	str	r3, [sp, #24]
	tmp[7] = product[11];
   1ea4c:	6ae3      	ldr	r3, [r4, #44]	; 0x2c
   1ea4e:	9307      	str	r3, [sp, #28]
	carry -= uECC_vli_sub(result, result, tmp, NUM_ECC_WORDS);
   1ea50:	2308      	movs	r3, #8
   1ea52:	466a      	mov	r2, sp
   1ea54:	4629      	mov	r1, r5
   1ea56:	4628      	mov	r0, r5
   1ea58:	f016 f879 	bl	34b4e <uECC_vli_sub>
   1ea5c:	1a36      	subs	r6, r6, r0

	/* d3 */
	tmp[0] = product[13];
   1ea5e:	6b63      	ldr	r3, [r4, #52]	; 0x34
   1ea60:	9300      	str	r3, [sp, #0]
	tmp[1] = product[14];
   1ea62:	6ba3      	ldr	r3, [r4, #56]	; 0x38
   1ea64:	9301      	str	r3, [sp, #4]
	tmp[2] = product[15];
   1ea66:	6be3      	ldr	r3, [r4, #60]	; 0x3c
   1ea68:	9302      	str	r3, [sp, #8]
	tmp[3] = product[8];
   1ea6a:	6a23      	ldr	r3, [r4, #32]
   1ea6c:	9303      	str	r3, [sp, #12]
	tmp[4] = product[9];
   1ea6e:	6a63      	ldr	r3, [r4, #36]	; 0x24
   1ea70:	9304      	str	r3, [sp, #16]
	tmp[5] = product[10];
   1ea72:	6aa3      	ldr	r3, [r4, #40]	; 0x28
   1ea74:	9305      	str	r3, [sp, #20]
	tmp[6] = 0;
   1ea76:	9706      	str	r7, [sp, #24]
	tmp[7] = product[12];
   1ea78:	6b23      	ldr	r3, [r4, #48]	; 0x30
   1ea7a:	9307      	str	r3, [sp, #28]
	carry -= uECC_vli_sub(result, result, tmp, NUM_ECC_WORDS);
   1ea7c:	2308      	movs	r3, #8
   1ea7e:	466a      	mov	r2, sp
   1ea80:	4629      	mov	r1, r5
   1ea82:	4628      	mov	r0, r5
   1ea84:	f016 f863 	bl	34b4e <uECC_vli_sub>
   1ea88:	1a36      	subs	r6, r6, r0

	/* d4 */
	tmp[0] = product[14];
   1ea8a:	6ba3      	ldr	r3, [r4, #56]	; 0x38
   1ea8c:	9300      	str	r3, [sp, #0]
	tmp[1] = product[15];
   1ea8e:	6be3      	ldr	r3, [r4, #60]	; 0x3c
   1ea90:	9301      	str	r3, [sp, #4]
	tmp[2] = 0;
   1ea92:	9702      	str	r7, [sp, #8]
	tmp[3] = product[9];
   1ea94:	6a63      	ldr	r3, [r4, #36]	; 0x24
   1ea96:	9303      	str	r3, [sp, #12]
	tmp[4] = product[10];
   1ea98:	6aa3      	ldr	r3, [r4, #40]	; 0x28
   1ea9a:	9304      	str	r3, [sp, #16]
	tmp[5] = product[11];
   1ea9c:	6ae3      	ldr	r3, [r4, #44]	; 0x2c
   1ea9e:	9305      	str	r3, [sp, #20]
	tmp[6] = 0;
   1eaa0:	9706      	str	r7, [sp, #24]
	tmp[7] = product[13];
   1eaa2:	6b63      	ldr	r3, [r4, #52]	; 0x34
   1eaa4:	9307      	str	r3, [sp, #28]
	carry -= uECC_vli_sub(result, result, tmp, NUM_ECC_WORDS);
   1eaa6:	2308      	movs	r3, #8
   1eaa8:	466a      	mov	r2, sp
   1eaaa:	4629      	mov	r1, r5
   1eaac:	4628      	mov	r0, r5
   1eaae:	f016 f84e 	bl	34b4e <uECC_vli_sub>

	if (carry < 0) {
   1eab2:	1a36      	subs	r6, r6, r0
   1eab4:	d50f      	bpl.n	1ead6 <vli_mmod_fast_secp256r1+0x192>
		do {
			carry += uECC_vli_add(result, result, curve_secp256r1.p, NUM_ECC_WORDS);
   1eab6:	2308      	movs	r3, #8
   1eab8:	4a0c      	ldr	r2, [pc, #48]	; (1eaec <vli_mmod_fast_secp256r1+0x1a8>)
   1eaba:	4629      	mov	r1, r5
   1eabc:	4628      	mov	r0, r5
   1eabe:	f016 f806 	bl	34ace <uECC_vli_add>
		}
		while (carry < 0);
   1eac2:	1836      	adds	r6, r6, r0
   1eac4:	d4f7      	bmi.n	1eab6 <vli_mmod_fast_secp256r1+0x172>
   1eac6:	e00f      	b.n	1eae8 <vli_mmod_fast_secp256r1+0x1a4>
	} else  {
		while (carry || 
		       uECC_vli_cmp_unsafe(curve_secp256r1.p, result, NUM_ECC_WORDS) != 1) {
			carry -= uECC_vli_sub(result, result, curve_secp256r1.p, NUM_ECC_WORDS);
   1eac8:	2308      	movs	r3, #8
   1eaca:	4a08      	ldr	r2, [pc, #32]	; (1eaec <vli_mmod_fast_secp256r1+0x1a8>)
   1eacc:	4629      	mov	r1, r5
   1eace:	4628      	mov	r0, r5
   1ead0:	f016 f83d 	bl	34b4e <uECC_vli_sub>
   1ead4:	1a36      	subs	r6, r6, r0
		while (carry || 
   1ead6:	2e00      	cmp	r6, #0
   1ead8:	d1f6      	bne.n	1eac8 <vli_mmod_fast_secp256r1+0x184>
		       uECC_vli_cmp_unsafe(curve_secp256r1.p, result, NUM_ECC_WORDS) != 1) {
   1eada:	2208      	movs	r2, #8
   1eadc:	4629      	mov	r1, r5
   1eade:	4803      	ldr	r0, [pc, #12]	; (1eaec <vli_mmod_fast_secp256r1+0x1a8>)
   1eae0:	f015 ffbf 	bl	34a62 <uECC_vli_cmp_unsafe>
		while (carry || 
   1eae4:	2801      	cmp	r0, #1
   1eae6:	d1ef      	bne.n	1eac8 <vli_mmod_fast_secp256r1+0x184>
		}
	}
}
   1eae8:	b009      	add	sp, #36	; 0x24
   1eaea:	bdf0      	pop	{r4, r5, r6, r7, pc}
   1eaec:	0003c2ac 	.word	0x0003c2ac

0001eaf0 <tc_aes128_set_encrypt_key>:

#define subbyte(a, o)(sbox[((a) >> (o))&0xff] << (o))
#define subword(a)(subbyte(a, 24)|subbyte(a, 16)|subbyte(a, 8)|subbyte(a, 0))

int tc_aes128_set_encrypt_key(TCAesKeySched_t s, const uint8_t *k)
{
   1eaf0:	b4f0      	push	{r4, r5, r6, r7}
   1eaf2:	b08c      	sub	sp, #48	; 0x30
   1eaf4:	4607      	mov	r7, r0
   1eaf6:	460e      	mov	r6, r1
	const unsigned int rconst[11] = {
   1eaf8:	ac01      	add	r4, sp, #4
   1eafa:	4d2a      	ldr	r5, [pc, #168]	; (1eba4 <tc_aes128_set_encrypt_key+0xb4>)
   1eafc:	cd0f      	ldmia	r5!, {r0, r1, r2, r3}
   1eafe:	c40f      	stmia	r4!, {r0, r1, r2, r3}
   1eb00:	cd0f      	ldmia	r5!, {r0, r1, r2, r3}
   1eb02:	c40f      	stmia	r4!, {r0, r1, r2, r3}
   1eb04:	e895 0007 	ldmia.w	r5, {r0, r1, r2}
   1eb08:	e884 0007 	stmia.w	r4, {r0, r1, r2}
		0x20000000, 0x40000000, 0x80000000, 0x1b000000, 0x36000000
	};
	unsigned int i;
	unsigned int t;

	if (s == (TCAesKeySched_t) 0) {
   1eb0c:	2f00      	cmp	r7, #0
   1eb0e:	d045      	beq.n	1eb9c <tc_aes128_set_encrypt_key+0xac>
   1eb10:	4638      	mov	r0, r7
		return TC_CRYPTO_FAIL;
	} else if (k == (const uint8_t *) 0) {
   1eb12:	2e00      	cmp	r6, #0
   1eb14:	d044      	beq.n	1eba0 <tc_aes128_set_encrypt_key+0xb0>
		return TC_CRYPTO_FAIL;
	}

	for (i = 0; i < Nk; ++i) {
   1eb16:	2300      	movs	r3, #0
   1eb18:	e00f      	b.n	1eb3a <tc_aes128_set_encrypt_key+0x4a>
		s->words[i] = (k[Nb*i]<<24) | (k[Nb*i+1]<<16) |
   1eb1a:	f816 4023 	ldrb.w	r4, [r6, r3, lsl #2]
   1eb1e:	eb06 0183 	add.w	r1, r6, r3, lsl #2
   1eb22:	784a      	ldrb	r2, [r1, #1]
   1eb24:	0412      	lsls	r2, r2, #16
   1eb26:	ea42 6204 	orr.w	r2, r2, r4, lsl #24
			      (k[Nb*i+2]<<8) | (k[Nb*i+3]);
   1eb2a:	788c      	ldrb	r4, [r1, #2]
		s->words[i] = (k[Nb*i]<<24) | (k[Nb*i+1]<<16) |
   1eb2c:	ea42 2204 	orr.w	r2, r2, r4, lsl #8
			      (k[Nb*i+2]<<8) | (k[Nb*i+3]);
   1eb30:	78c9      	ldrb	r1, [r1, #3]
   1eb32:	430a      	orrs	r2, r1
		s->words[i] = (k[Nb*i]<<24) | (k[Nb*i+1]<<16) |
   1eb34:	f840 2023 	str.w	r2, [r0, r3, lsl #2]
	for (i = 0; i < Nk; ++i) {
   1eb38:	3301      	adds	r3, #1
   1eb3a:	2b03      	cmp	r3, #3
   1eb3c:	d9ed      	bls.n	1eb1a <tc_aes128_set_encrypt_key+0x2a>
   1eb3e:	e006      	b.n	1eb4e <tc_aes128_set_encrypt_key+0x5e>
	for (; i < (Nb * (Nr + 1)); ++i) {
		t = s->words[i-1];
		if ((i % Nk) == 0) {
			t = subword(rotword(t)) ^ rconst[i/Nk];
		}
		s->words[i] = s->words[i-Nk] ^ t;
   1eb40:	1f19      	subs	r1, r3, #4
   1eb42:	f850 1021 	ldr.w	r1, [r0, r1, lsl #2]
   1eb46:	404a      	eors	r2, r1
   1eb48:	f840 2023 	str.w	r2, [r0, r3, lsl #2]
	for (; i < (Nb * (Nr + 1)); ++i) {
   1eb4c:	3301      	adds	r3, #1
   1eb4e:	2b2b      	cmp	r3, #43	; 0x2b
   1eb50:	d820      	bhi.n	1eb94 <tc_aes128_set_encrypt_key+0xa4>
		t = s->words[i-1];
   1eb52:	1e5a      	subs	r2, r3, #1
   1eb54:	f850 2022 	ldr.w	r2, [r0, r2, lsl #2]
		if ((i % Nk) == 0) {
   1eb58:	f013 0f03 	tst.w	r3, #3
   1eb5c:	d1f0      	bne.n	1eb40 <tc_aes128_set_encrypt_key+0x50>
	return (((a) >> 24)|((a) << 8));
   1eb5e:	ea4f 6232 	mov.w	r2, r2, ror #24
			t = subword(rotword(t)) ^ rconst[i/Nk];
   1eb62:	0e11      	lsrs	r1, r2, #24
   1eb64:	4c10      	ldr	r4, [pc, #64]	; (1eba8 <tc_aes128_set_encrypt_key+0xb8>)
   1eb66:	5c65      	ldrb	r5, [r4, r1]
   1eb68:	f3c2 4107 	ubfx	r1, r2, #16, #8
   1eb6c:	5c61      	ldrb	r1, [r4, r1]
   1eb6e:	0409      	lsls	r1, r1, #16
   1eb70:	ea41 6105 	orr.w	r1, r1, r5, lsl #24
   1eb74:	f3c2 2507 	ubfx	r5, r2, #8, #8
   1eb78:	5d65      	ldrb	r5, [r4, r5]
   1eb7a:	ea41 2105 	orr.w	r1, r1, r5, lsl #8
   1eb7e:	b2d2      	uxtb	r2, r2
   1eb80:	5ca2      	ldrb	r2, [r4, r2]
   1eb82:	4311      	orrs	r1, r2
   1eb84:	f023 0203 	bic.w	r2, r3, #3
   1eb88:	ac0c      	add	r4, sp, #48	; 0x30
   1eb8a:	4422      	add	r2, r4
   1eb8c:	f852 2c2c 	ldr.w	r2, [r2, #-44]
   1eb90:	404a      	eors	r2, r1
   1eb92:	e7d5      	b.n	1eb40 <tc_aes128_set_encrypt_key+0x50>
	}

	return TC_CRYPTO_SUCCESS;
   1eb94:	2001      	movs	r0, #1
}
   1eb96:	b00c      	add	sp, #48	; 0x30
   1eb98:	bcf0      	pop	{r4, r5, r6, r7}
   1eb9a:	4770      	bx	lr
		return TC_CRYPTO_FAIL;
   1eb9c:	2000      	movs	r0, #0
   1eb9e:	e7fa      	b.n	1eb96 <tc_aes128_set_encrypt_key+0xa6>
		return TC_CRYPTO_FAIL;
   1eba0:	2000      	movs	r0, #0
   1eba2:	e7f8      	b.n	1eb96 <tc_aes128_set_encrypt_key+0xa6>
   1eba4:	0003b9e4 	.word	0x0003b9e4
   1eba8:	0003c358 	.word	0x0003c358

0001ebac <tc_aes_encrypt>:
int tc_aes_encrypt(uint8_t *out, const uint8_t *in, const TCAesKeySched_t s)
{
	uint8_t state[Nk*Nb];
	unsigned int i;

	if (out == (uint8_t *) 0) {
   1ebac:	2800      	cmp	r0, #0
   1ebae:	f000 839a 	beq.w	1f2e6 <tc_aes_encrypt+0x73a>
{
   1ebb2:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   1ebb6:	b088      	sub	sp, #32
   1ebb8:	4616      	mov	r6, r2
   1ebba:	4607      	mov	r7, r0
		return TC_CRYPTO_FAIL;
	} else if (in == (const uint8_t *) 0) {
   1ebbc:	2900      	cmp	r1, #0
   1ebbe:	f000 8394 	beq.w	1f2ea <tc_aes_encrypt+0x73e>
		return TC_CRYPTO_FAIL;
	} else if (s == (TCAesKeySched_t) 0) {
   1ebc2:	2a00      	cmp	r2, #0
   1ebc4:	f000 8393 	beq.w	1f2ee <tc_aes_encrypt+0x742>
		return TC_CRYPTO_FAIL;
	}

	(void)_copy(state, sizeof(state), in, sizeof(state));
   1ebc8:	2310      	movs	r3, #16
   1ebca:	460a      	mov	r2, r1
   1ebcc:	4619      	mov	r1, r3
   1ebce:	eb0d 0003 	add.w	r0, sp, r3
   1ebd2:	f015 fd98 	bl	34706 <_copy>
	add_round_key(state, s->words);
   1ebd6:	4635      	mov	r5, r6
	s[0] ^= (uint8_t)(k[0] >> 24); s[1] ^= (uint8_t)(k[0] >> 16);
   1ebd8:	6833      	ldr	r3, [r6, #0]
   1ebda:	f89d 2010 	ldrb.w	r2, [sp, #16]
   1ebde:	ea82 6213 	eor.w	r2, r2, r3, lsr #24
   1ebe2:	f88d 2010 	strb.w	r2, [sp, #16]
   1ebe6:	f3c3 4207 	ubfx	r2, r3, #16, #8
   1ebea:	f89d 1011 	ldrb.w	r1, [sp, #17]
   1ebee:	404a      	eors	r2, r1
   1ebf0:	f88d 2011 	strb.w	r2, [sp, #17]
	s[2] ^= (uint8_t)(k[0] >> 8); s[3] ^= (uint8_t)(k[0]);
   1ebf4:	f3c3 2207 	ubfx	r2, r3, #8, #8
   1ebf8:	f89d 1012 	ldrb.w	r1, [sp, #18]
   1ebfc:	404a      	eors	r2, r1
   1ebfe:	f88d 2012 	strb.w	r2, [sp, #18]
   1ec02:	b2db      	uxtb	r3, r3
   1ec04:	f89d 2013 	ldrb.w	r2, [sp, #19]
   1ec08:	4053      	eors	r3, r2
   1ec0a:	f88d 3013 	strb.w	r3, [sp, #19]
	s[4] ^= (uint8_t)(k[1] >> 24); s[5] ^= (uint8_t)(k[1] >> 16);
   1ec0e:	6873      	ldr	r3, [r6, #4]
   1ec10:	f89d 2014 	ldrb.w	r2, [sp, #20]
   1ec14:	ea82 6213 	eor.w	r2, r2, r3, lsr #24
   1ec18:	f88d 2014 	strb.w	r2, [sp, #20]
   1ec1c:	f3c3 4207 	ubfx	r2, r3, #16, #8
   1ec20:	f89d 1015 	ldrb.w	r1, [sp, #21]
   1ec24:	404a      	eors	r2, r1
   1ec26:	f88d 2015 	strb.w	r2, [sp, #21]
	s[6] ^= (uint8_t)(k[1] >> 8); s[7] ^= (uint8_t)(k[1]);
   1ec2a:	f3c3 2207 	ubfx	r2, r3, #8, #8
   1ec2e:	f89d 1016 	ldrb.w	r1, [sp, #22]
   1ec32:	404a      	eors	r2, r1
   1ec34:	f88d 2016 	strb.w	r2, [sp, #22]
   1ec38:	b2db      	uxtb	r3, r3
   1ec3a:	f89d 2017 	ldrb.w	r2, [sp, #23]
   1ec3e:	4053      	eors	r3, r2
   1ec40:	f88d 3017 	strb.w	r3, [sp, #23]
	s[8] ^= (uint8_t)(k[2] >> 24); s[9] ^= (uint8_t)(k[2] >> 16);
   1ec44:	68b3      	ldr	r3, [r6, #8]
   1ec46:	f89d 2018 	ldrb.w	r2, [sp, #24]
   1ec4a:	ea82 6213 	eor.w	r2, r2, r3, lsr #24
   1ec4e:	f88d 2018 	strb.w	r2, [sp, #24]
   1ec52:	f3c3 4207 	ubfx	r2, r3, #16, #8
   1ec56:	f89d 1019 	ldrb.w	r1, [sp, #25]
   1ec5a:	404a      	eors	r2, r1
   1ec5c:	f88d 2019 	strb.w	r2, [sp, #25]
	s[10] ^= (uint8_t)(k[2] >> 8); s[11] ^= (uint8_t)(k[2]);
   1ec60:	f3c3 2207 	ubfx	r2, r3, #8, #8
   1ec64:	f89d 101a 	ldrb.w	r1, [sp, #26]
   1ec68:	404a      	eors	r2, r1
   1ec6a:	f88d 201a 	strb.w	r2, [sp, #26]
   1ec6e:	b2db      	uxtb	r3, r3
   1ec70:	f89d 201b 	ldrb.w	r2, [sp, #27]
   1ec74:	4053      	eors	r3, r2
   1ec76:	f88d 301b 	strb.w	r3, [sp, #27]
	s[12] ^= (uint8_t)(k[3] >> 24); s[13] ^= (uint8_t)(k[3] >> 16);
   1ec7a:	68f3      	ldr	r3, [r6, #12]
   1ec7c:	f89d 201c 	ldrb.w	r2, [sp, #28]
   1ec80:	ea82 6213 	eor.w	r2, r2, r3, lsr #24
   1ec84:	f88d 201c 	strb.w	r2, [sp, #28]
   1ec88:	f3c3 4207 	ubfx	r2, r3, #16, #8
   1ec8c:	f89d 101d 	ldrb.w	r1, [sp, #29]
   1ec90:	404a      	eors	r2, r1
   1ec92:	f88d 201d 	strb.w	r2, [sp, #29]
	s[14] ^= (uint8_t)(k[3] >> 8); s[15] ^= (uint8_t)(k[3]);
   1ec96:	f3c3 2207 	ubfx	r2, r3, #8, #8
   1ec9a:	f89d 101e 	ldrb.w	r1, [sp, #30]
   1ec9e:	404a      	eors	r2, r1
   1eca0:	f88d 201e 	strb.w	r2, [sp, #30]
   1eca4:	b2db      	uxtb	r3, r3
   1eca6:	f89d 201f 	ldrb.w	r2, [sp, #31]
   1ecaa:	4053      	eors	r3, r2
   1ecac:	f88d 301f 	strb.w	r3, [sp, #31]

	for (i = 0; i < (Nr - 1); ++i) {
   1ecb0:	2400      	movs	r4, #0
}
   1ecb2:	e239      	b.n	1f128 <tc_aes_encrypt+0x57c>
	t[0]  = s[0]; t[1] = s[5]; t[2] = s[10]; t[3] = s[15];
   1ecb4:	f89d 3010 	ldrb.w	r3, [sp, #16]
   1ecb8:	f88d 3000 	strb.w	r3, [sp]
   1ecbc:	f89d 3015 	ldrb.w	r3, [sp, #21]
   1ecc0:	f88d 3001 	strb.w	r3, [sp, #1]
   1ecc4:	f89d 301a 	ldrb.w	r3, [sp, #26]
   1ecc8:	f88d 3002 	strb.w	r3, [sp, #2]
   1eccc:	f89d 301f 	ldrb.w	r3, [sp, #31]
   1ecd0:	f88d 3003 	strb.w	r3, [sp, #3]
	t[4]  = s[4]; t[5] = s[9]; t[6] = s[14]; t[7] = s[3];
   1ecd4:	f89d 3014 	ldrb.w	r3, [sp, #20]
   1ecd8:	f88d 3004 	strb.w	r3, [sp, #4]
   1ecdc:	f89d 3019 	ldrb.w	r3, [sp, #25]
   1ece0:	f88d 3005 	strb.w	r3, [sp, #5]
   1ece4:	f89d 301e 	ldrb.w	r3, [sp, #30]
   1ece8:	f88d 3006 	strb.w	r3, [sp, #6]
   1ecec:	f89d 3013 	ldrb.w	r3, [sp, #19]
   1ecf0:	f88d 3007 	strb.w	r3, [sp, #7]
	t[8]  = s[8]; t[9] = s[13]; t[10] = s[2]; t[11] = s[7];
   1ecf4:	f89d 3018 	ldrb.w	r3, [sp, #24]
   1ecf8:	f88d 3008 	strb.w	r3, [sp, #8]
   1ecfc:	f89d 301d 	ldrb.w	r3, [sp, #29]
   1ed00:	f88d 3009 	strb.w	r3, [sp, #9]
   1ed04:	f89d 3012 	ldrb.w	r3, [sp, #18]
   1ed08:	f88d 300a 	strb.w	r3, [sp, #10]
   1ed0c:	f89d 3017 	ldrb.w	r3, [sp, #23]
   1ed10:	f88d 300b 	strb.w	r3, [sp, #11]
	t[12] = s[12]; t[13] = s[1]; t[14] = s[6]; t[15] = s[11];
   1ed14:	f89d 301c 	ldrb.w	r3, [sp, #28]
   1ed18:	f88d 300c 	strb.w	r3, [sp, #12]
   1ed1c:	f89d 3011 	ldrb.w	r3, [sp, #17]
   1ed20:	f88d 300d 	strb.w	r3, [sp, #13]
   1ed24:	f89d 3016 	ldrb.w	r3, [sp, #22]
   1ed28:	f88d 300e 	strb.w	r3, [sp, #14]
   1ed2c:	f89d 301b 	ldrb.w	r3, [sp, #27]
   1ed30:	f88d 300f 	strb.w	r3, [sp, #15]
	(void) _copy(s, sizeof(t), t, sizeof(t));
   1ed34:	2310      	movs	r3, #16
   1ed36:	466a      	mov	r2, sp
   1ed38:	4619      	mov	r1, r3
   1ed3a:	eb0d 0003 	add.w	r0, sp, r3
   1ed3e:	f015 fce2 	bl	34706 <_copy>
	out[0] = _double_byte(in[0]) ^ triple(in[1]) ^ in[2] ^ in[3];
   1ed42:	f89d 0010 	ldrb.w	r0, [sp, #16]
   1ed46:	f015 fcef 	bl	34728 <_double_byte>
   1ed4a:	4680      	mov	r8, r0
   1ed4c:	f89d 0011 	ldrb.w	r0, [sp, #17]
   1ed50:	f015 fcea 	bl	34728 <_double_byte>
   1ed54:	4601      	mov	r1, r0
   1ed56:	f89d 0011 	ldrb.w	r0, [sp, #17]
   1ed5a:	f89d 2012 	ldrb.w	r2, [sp, #18]
   1ed5e:	f89d 3013 	ldrb.w	r3, [sp, #19]
   1ed62:	4041      	eors	r1, r0
   1ed64:	ea88 0801 	eor.w	r8, r8, r1
   1ed68:	ea82 0208 	eor.w	r2, r2, r8
   1ed6c:	4053      	eors	r3, r2
   1ed6e:	f88d 3000 	strb.w	r3, [sp]
	out[1] = in[0] ^ _double_byte(in[1]) ^ triple(in[2]) ^ in[3];
   1ed72:	f89d 8010 	ldrb.w	r8, [sp, #16]
   1ed76:	f015 fcd7 	bl	34728 <_double_byte>
   1ed7a:	ea88 0800 	eor.w	r8, r8, r0
   1ed7e:	fa5f f888 	uxtb.w	r8, r8
   1ed82:	f89d 0012 	ldrb.w	r0, [sp, #18]
   1ed86:	f015 fccf 	bl	34728 <_double_byte>
   1ed8a:	4602      	mov	r2, r0
   1ed8c:	f89d 0012 	ldrb.w	r0, [sp, #18]
   1ed90:	f89d 3013 	ldrb.w	r3, [sp, #19]
   1ed94:	4042      	eors	r2, r0
   1ed96:	ea88 0802 	eor.w	r8, r8, r2
   1ed9a:	ea83 0308 	eor.w	r3, r3, r8
   1ed9e:	f88d 3001 	strb.w	r3, [sp, #1]
	out[2] = in[0] ^ in[1] ^ _double_byte(in[2]) ^ triple(in[3]);
   1eda2:	f89d 8010 	ldrb.w	r8, [sp, #16]
   1eda6:	f89d 3011 	ldrb.w	r3, [sp, #17]
   1edaa:	ea88 0803 	eor.w	r8, r8, r3
   1edae:	f015 fcbb 	bl	34728 <_double_byte>
   1edb2:	ea88 0800 	eor.w	r8, r8, r0
   1edb6:	fa5f f888 	uxtb.w	r8, r8
   1edba:	f89d 0013 	ldrb.w	r0, [sp, #19]
   1edbe:	f015 fcb3 	bl	34728 <_double_byte>
   1edc2:	f89d 3013 	ldrb.w	r3, [sp, #19]
   1edc6:	4058      	eors	r0, r3
   1edc8:	ea88 0800 	eor.w	r8, r8, r0
   1edcc:	f88d 8002 	strb.w	r8, [sp, #2]
	out[3] = triple(in[0]) ^ in[1] ^ in[2] ^ _double_byte(in[3]);
   1edd0:	f89d 0010 	ldrb.w	r0, [sp, #16]
   1edd4:	f015 fca8 	bl	34728 <_double_byte>
   1edd8:	f89d 2010 	ldrb.w	r2, [sp, #16]
   1eddc:	f89d 3011 	ldrb.w	r3, [sp, #17]
   1ede0:	f89d 8012 	ldrb.w	r8, [sp, #18]
   1ede4:	4050      	eors	r0, r2
   1ede6:	4043      	eors	r3, r0
   1ede8:	ea88 0803 	eor.w	r8, r8, r3
   1edec:	fa5f f888 	uxtb.w	r8, r8
   1edf0:	f89d 0013 	ldrb.w	r0, [sp, #19]
   1edf4:	f015 fc98 	bl	34728 <_double_byte>
   1edf8:	ea88 0800 	eor.w	r8, r8, r0
   1edfc:	f88d 8003 	strb.w	r8, [sp, #3]
	out[0] = _double_byte(in[0]) ^ triple(in[1]) ^ in[2] ^ in[3];
   1ee00:	f89d 0014 	ldrb.w	r0, [sp, #20]
   1ee04:	f015 fc90 	bl	34728 <_double_byte>
   1ee08:	4680      	mov	r8, r0
   1ee0a:	f89d 0015 	ldrb.w	r0, [sp, #21]
   1ee0e:	f015 fc8b 	bl	34728 <_double_byte>
   1ee12:	4601      	mov	r1, r0
   1ee14:	f89d 0015 	ldrb.w	r0, [sp, #21]
   1ee18:	f89d 2016 	ldrb.w	r2, [sp, #22]
   1ee1c:	f89d 3017 	ldrb.w	r3, [sp, #23]
   1ee20:	4041      	eors	r1, r0
   1ee22:	ea88 0801 	eor.w	r8, r8, r1
   1ee26:	ea82 0208 	eor.w	r2, r2, r8
   1ee2a:	4053      	eors	r3, r2
   1ee2c:	f88d 3004 	strb.w	r3, [sp, #4]
	out[1] = in[0] ^ _double_byte(in[1]) ^ triple(in[2]) ^ in[3];
   1ee30:	f89d 8014 	ldrb.w	r8, [sp, #20]
   1ee34:	f015 fc78 	bl	34728 <_double_byte>
   1ee38:	ea88 0800 	eor.w	r8, r8, r0
   1ee3c:	fa5f f888 	uxtb.w	r8, r8
   1ee40:	f89d 0016 	ldrb.w	r0, [sp, #22]
   1ee44:	f015 fc70 	bl	34728 <_double_byte>
   1ee48:	4602      	mov	r2, r0
   1ee4a:	f89d 0016 	ldrb.w	r0, [sp, #22]
   1ee4e:	f89d 3017 	ldrb.w	r3, [sp, #23]
   1ee52:	4042      	eors	r2, r0
   1ee54:	ea88 0802 	eor.w	r8, r8, r2
   1ee58:	ea83 0308 	eor.w	r3, r3, r8
   1ee5c:	f88d 3005 	strb.w	r3, [sp, #5]
	out[2] = in[0] ^ in[1] ^ _double_byte(in[2]) ^ triple(in[3]);
   1ee60:	f89d 8014 	ldrb.w	r8, [sp, #20]
   1ee64:	f89d 3015 	ldrb.w	r3, [sp, #21]
   1ee68:	ea88 0803 	eor.w	r8, r8, r3
   1ee6c:	f015 fc5c 	bl	34728 <_double_byte>
   1ee70:	ea88 0800 	eor.w	r8, r8, r0
   1ee74:	fa5f f888 	uxtb.w	r8, r8
   1ee78:	f89d 0017 	ldrb.w	r0, [sp, #23]
   1ee7c:	f015 fc54 	bl	34728 <_double_byte>
   1ee80:	f89d 3017 	ldrb.w	r3, [sp, #23]
   1ee84:	4058      	eors	r0, r3
   1ee86:	ea88 0800 	eor.w	r8, r8, r0
   1ee8a:	f88d 8006 	strb.w	r8, [sp, #6]
	out[3] = triple(in[0]) ^ in[1] ^ in[2] ^ _double_byte(in[3]);
   1ee8e:	f89d 0014 	ldrb.w	r0, [sp, #20]
   1ee92:	f015 fc49 	bl	34728 <_double_byte>
   1ee96:	f89d 2014 	ldrb.w	r2, [sp, #20]
   1ee9a:	f89d 3015 	ldrb.w	r3, [sp, #21]
   1ee9e:	f89d 8016 	ldrb.w	r8, [sp, #22]
   1eea2:	4050      	eors	r0, r2
   1eea4:	4043      	eors	r3, r0
   1eea6:	ea88 0803 	eor.w	r8, r8, r3
   1eeaa:	fa5f f888 	uxtb.w	r8, r8
   1eeae:	f89d 0017 	ldrb.w	r0, [sp, #23]
   1eeb2:	f015 fc39 	bl	34728 <_double_byte>
   1eeb6:	ea88 0800 	eor.w	r8, r8, r0
   1eeba:	f88d 8007 	strb.w	r8, [sp, #7]
	out[0] = _double_byte(in[0]) ^ triple(in[1]) ^ in[2] ^ in[3];
   1eebe:	f89d 0018 	ldrb.w	r0, [sp, #24]
   1eec2:	f015 fc31 	bl	34728 <_double_byte>
   1eec6:	4680      	mov	r8, r0
   1eec8:	f89d 0019 	ldrb.w	r0, [sp, #25]
   1eecc:	f015 fc2c 	bl	34728 <_double_byte>
   1eed0:	4601      	mov	r1, r0
   1eed2:	f89d 0019 	ldrb.w	r0, [sp, #25]
   1eed6:	f89d 201a 	ldrb.w	r2, [sp, #26]
   1eeda:	f89d 301b 	ldrb.w	r3, [sp, #27]
   1eede:	4041      	eors	r1, r0
   1eee0:	ea88 0801 	eor.w	r8, r8, r1
   1eee4:	ea82 0208 	eor.w	r2, r2, r8
   1eee8:	4053      	eors	r3, r2
   1eeea:	f88d 3008 	strb.w	r3, [sp, #8]
	out[1] = in[0] ^ _double_byte(in[1]) ^ triple(in[2]) ^ in[3];
   1eeee:	f89d 8018 	ldrb.w	r8, [sp, #24]
   1eef2:	f015 fc19 	bl	34728 <_double_byte>
   1eef6:	ea88 0800 	eor.w	r8, r8, r0
   1eefa:	fa5f f888 	uxtb.w	r8, r8
   1eefe:	f89d 001a 	ldrb.w	r0, [sp, #26]
   1ef02:	f015 fc11 	bl	34728 <_double_byte>
   1ef06:	4602      	mov	r2, r0
   1ef08:	f89d 001a 	ldrb.w	r0, [sp, #26]
   1ef0c:	f89d 301b 	ldrb.w	r3, [sp, #27]
   1ef10:	4042      	eors	r2, r0
   1ef12:	ea88 0802 	eor.w	r8, r8, r2
   1ef16:	ea83 0308 	eor.w	r3, r3, r8
   1ef1a:	f88d 3009 	strb.w	r3, [sp, #9]
	out[2] = in[0] ^ in[1] ^ _double_byte(in[2]) ^ triple(in[3]);
   1ef1e:	f89d 8018 	ldrb.w	r8, [sp, #24]
   1ef22:	f89d 3019 	ldrb.w	r3, [sp, #25]
   1ef26:	ea88 0803 	eor.w	r8, r8, r3
   1ef2a:	f015 fbfd 	bl	34728 <_double_byte>
   1ef2e:	ea88 0800 	eor.w	r8, r8, r0
   1ef32:	fa5f f888 	uxtb.w	r8, r8
   1ef36:	f89d 001b 	ldrb.w	r0, [sp, #27]
   1ef3a:	f015 fbf5 	bl	34728 <_double_byte>
   1ef3e:	f89d 301b 	ldrb.w	r3, [sp, #27]
   1ef42:	4058      	eors	r0, r3
   1ef44:	ea88 0800 	eor.w	r8, r8, r0
   1ef48:	f88d 800a 	strb.w	r8, [sp, #10]
	out[3] = triple(in[0]) ^ in[1] ^ in[2] ^ _double_byte(in[3]);
   1ef4c:	f89d 0018 	ldrb.w	r0, [sp, #24]
   1ef50:	f015 fbea 	bl	34728 <_double_byte>
   1ef54:	f89d 2018 	ldrb.w	r2, [sp, #24]
   1ef58:	f89d 3019 	ldrb.w	r3, [sp, #25]
   1ef5c:	f89d 801a 	ldrb.w	r8, [sp, #26]
   1ef60:	4050      	eors	r0, r2
   1ef62:	4043      	eors	r3, r0
   1ef64:	ea88 0803 	eor.w	r8, r8, r3
   1ef68:	fa5f f888 	uxtb.w	r8, r8
   1ef6c:	f89d 001b 	ldrb.w	r0, [sp, #27]
   1ef70:	f015 fbda 	bl	34728 <_double_byte>
   1ef74:	ea88 0800 	eor.w	r8, r8, r0
   1ef78:	f88d 800b 	strb.w	r8, [sp, #11]
	out[0] = _double_byte(in[0]) ^ triple(in[1]) ^ in[2] ^ in[3];
   1ef7c:	f89d 001c 	ldrb.w	r0, [sp, #28]
   1ef80:	f015 fbd2 	bl	34728 <_double_byte>
   1ef84:	4680      	mov	r8, r0
   1ef86:	f89d 001d 	ldrb.w	r0, [sp, #29]
   1ef8a:	f015 fbcd 	bl	34728 <_double_byte>
   1ef8e:	4601      	mov	r1, r0
   1ef90:	f89d 001d 	ldrb.w	r0, [sp, #29]
   1ef94:	f89d 201e 	ldrb.w	r2, [sp, #30]
   1ef98:	f89d 301f 	ldrb.w	r3, [sp, #31]
   1ef9c:	4041      	eors	r1, r0
   1ef9e:	ea88 0801 	eor.w	r8, r8, r1
   1efa2:	ea82 0208 	eor.w	r2, r2, r8
   1efa6:	4053      	eors	r3, r2
   1efa8:	f88d 300c 	strb.w	r3, [sp, #12]
	out[1] = in[0] ^ _double_byte(in[1]) ^ triple(in[2]) ^ in[3];
   1efac:	f89d 801c 	ldrb.w	r8, [sp, #28]
   1efb0:	f015 fbba 	bl	34728 <_double_byte>
   1efb4:	ea88 0800 	eor.w	r8, r8, r0
   1efb8:	fa5f f888 	uxtb.w	r8, r8
   1efbc:	f89d 001e 	ldrb.w	r0, [sp, #30]
   1efc0:	f015 fbb2 	bl	34728 <_double_byte>
   1efc4:	4602      	mov	r2, r0
   1efc6:	f89d 001e 	ldrb.w	r0, [sp, #30]
   1efca:	f89d 301f 	ldrb.w	r3, [sp, #31]
   1efce:	4042      	eors	r2, r0
   1efd0:	ea88 0802 	eor.w	r8, r8, r2
   1efd4:	ea83 0308 	eor.w	r3, r3, r8
   1efd8:	f88d 300d 	strb.w	r3, [sp, #13]
	out[2] = in[0] ^ in[1] ^ _double_byte(in[2]) ^ triple(in[3]);
   1efdc:	f89d 801c 	ldrb.w	r8, [sp, #28]
   1efe0:	f89d 301d 	ldrb.w	r3, [sp, #29]
   1efe4:	ea88 0803 	eor.w	r8, r8, r3
   1efe8:	f015 fb9e 	bl	34728 <_double_byte>
   1efec:	ea88 0800 	eor.w	r8, r8, r0
   1eff0:	fa5f f888 	uxtb.w	r8, r8
   1eff4:	f89d 001f 	ldrb.w	r0, [sp, #31]
   1eff8:	f015 fb96 	bl	34728 <_double_byte>
   1effc:	f89d 301f 	ldrb.w	r3, [sp, #31]
   1f000:	4058      	eors	r0, r3
   1f002:	ea88 0800 	eor.w	r8, r8, r0
   1f006:	f88d 800e 	strb.w	r8, [sp, #14]
	out[3] = triple(in[0]) ^ in[1] ^ in[2] ^ _double_byte(in[3]);
   1f00a:	f89d 001c 	ldrb.w	r0, [sp, #28]
   1f00e:	f015 fb8b 	bl	34728 <_double_byte>
   1f012:	f89d 201c 	ldrb.w	r2, [sp, #28]
   1f016:	f89d 301d 	ldrb.w	r3, [sp, #29]
   1f01a:	f89d 801e 	ldrb.w	r8, [sp, #30]
   1f01e:	4050      	eors	r0, r2
   1f020:	4043      	eors	r3, r0
   1f022:	ea88 0803 	eor.w	r8, r8, r3
   1f026:	fa5f f888 	uxtb.w	r8, r8
   1f02a:	f89d 001f 	ldrb.w	r0, [sp, #31]
   1f02e:	f015 fb7b 	bl	34728 <_double_byte>
   1f032:	ea88 0800 	eor.w	r8, r8, r0
   1f036:	f88d 800f 	strb.w	r8, [sp, #15]
	(void) _copy(s, sizeof(t), t, sizeof(t));
   1f03a:	2310      	movs	r3, #16
   1f03c:	466a      	mov	r2, sp
   1f03e:	4619      	mov	r1, r3
   1f040:	eb0d 0003 	add.w	r0, sp, r3
   1f044:	f015 fb5f 	bl	34706 <_copy>
		sub_bytes(state);
		shift_rows(state);
		mix_columns(state);
		add_round_key(state, s->words + Nb*(i+1));
   1f048:	3401      	adds	r4, #1
   1f04a:	0123      	lsls	r3, r4, #4
   1f04c:	eb05 1204 	add.w	r2, r5, r4, lsl #4
	s[0] ^= (uint8_t)(k[0] >> 24); s[1] ^= (uint8_t)(k[0] >> 16);
   1f050:	58eb      	ldr	r3, [r5, r3]
   1f052:	f89d 1010 	ldrb.w	r1, [sp, #16]
   1f056:	ea81 6113 	eor.w	r1, r1, r3, lsr #24
   1f05a:	f88d 1010 	strb.w	r1, [sp, #16]
   1f05e:	f3c3 4107 	ubfx	r1, r3, #16, #8
   1f062:	f89d 0011 	ldrb.w	r0, [sp, #17]
   1f066:	4041      	eors	r1, r0
   1f068:	f88d 1011 	strb.w	r1, [sp, #17]
	s[2] ^= (uint8_t)(k[0] >> 8); s[3] ^= (uint8_t)(k[0]);
   1f06c:	f3c3 2107 	ubfx	r1, r3, #8, #8
   1f070:	f89d 0012 	ldrb.w	r0, [sp, #18]
   1f074:	4041      	eors	r1, r0
   1f076:	f88d 1012 	strb.w	r1, [sp, #18]
   1f07a:	b2db      	uxtb	r3, r3
   1f07c:	f89d 1013 	ldrb.w	r1, [sp, #19]
   1f080:	404b      	eors	r3, r1
   1f082:	f88d 3013 	strb.w	r3, [sp, #19]
	s[4] ^= (uint8_t)(k[1] >> 24); s[5] ^= (uint8_t)(k[1] >> 16);
   1f086:	6853      	ldr	r3, [r2, #4]
   1f088:	f89d 1014 	ldrb.w	r1, [sp, #20]
   1f08c:	ea81 6113 	eor.w	r1, r1, r3, lsr #24
   1f090:	f88d 1014 	strb.w	r1, [sp, #20]
   1f094:	f3c3 4107 	ubfx	r1, r3, #16, #8
   1f098:	f89d 0015 	ldrb.w	r0, [sp, #21]
   1f09c:	4041      	eors	r1, r0
   1f09e:	f88d 1015 	strb.w	r1, [sp, #21]
	s[6] ^= (uint8_t)(k[1] >> 8); s[7] ^= (uint8_t)(k[1]);
   1f0a2:	f3c3 2107 	ubfx	r1, r3, #8, #8
   1f0a6:	f89d 0016 	ldrb.w	r0, [sp, #22]
   1f0aa:	4041      	eors	r1, r0
   1f0ac:	f88d 1016 	strb.w	r1, [sp, #22]
   1f0b0:	b2db      	uxtb	r3, r3
   1f0b2:	f89d 1017 	ldrb.w	r1, [sp, #23]
   1f0b6:	404b      	eors	r3, r1
   1f0b8:	f88d 3017 	strb.w	r3, [sp, #23]
	s[8] ^= (uint8_t)(k[2] >> 24); s[9] ^= (uint8_t)(k[2] >> 16);
   1f0bc:	6893      	ldr	r3, [r2, #8]
   1f0be:	f89d 1018 	ldrb.w	r1, [sp, #24]
   1f0c2:	ea81 6113 	eor.w	r1, r1, r3, lsr #24
   1f0c6:	f88d 1018 	strb.w	r1, [sp, #24]
   1f0ca:	f3c3 4107 	ubfx	r1, r3, #16, #8
   1f0ce:	f89d 0019 	ldrb.w	r0, [sp, #25]
   1f0d2:	4041      	eors	r1, r0
   1f0d4:	f88d 1019 	strb.w	r1, [sp, #25]
	s[10] ^= (uint8_t)(k[2] >> 8); s[11] ^= (uint8_t)(k[2]);
   1f0d8:	f3c3 2107 	ubfx	r1, r3, #8, #8
   1f0dc:	f89d 001a 	ldrb.w	r0, [sp, #26]
   1f0e0:	4041      	eors	r1, r0
   1f0e2:	f88d 101a 	strb.w	r1, [sp, #26]
   1f0e6:	b2db      	uxtb	r3, r3
   1f0e8:	f89d 101b 	ldrb.w	r1, [sp, #27]
   1f0ec:	404b      	eors	r3, r1
   1f0ee:	f88d 301b 	strb.w	r3, [sp, #27]
	s[12] ^= (uint8_t)(k[3] >> 24); s[13] ^= (uint8_t)(k[3] >> 16);
   1f0f2:	68d3      	ldr	r3, [r2, #12]
   1f0f4:	f89d 201c 	ldrb.w	r2, [sp, #28]
   1f0f8:	ea82 6213 	eor.w	r2, r2, r3, lsr #24
   1f0fc:	f88d 201c 	strb.w	r2, [sp, #28]
   1f100:	f3c3 4207 	ubfx	r2, r3, #16, #8
   1f104:	f89d 101d 	ldrb.w	r1, [sp, #29]
   1f108:	404a      	eors	r2, r1
   1f10a:	f88d 201d 	strb.w	r2, [sp, #29]
	s[14] ^= (uint8_t)(k[3] >> 8); s[15] ^= (uint8_t)(k[3]);
   1f10e:	f3c3 2207 	ubfx	r2, r3, #8, #8
   1f112:	f89d 101e 	ldrb.w	r1, [sp, #30]
   1f116:	404a      	eors	r2, r1
   1f118:	f88d 201e 	strb.w	r2, [sp, #30]
   1f11c:	b2db      	uxtb	r3, r3
   1f11e:	f89d 201f 	ldrb.w	r2, [sp, #31]
   1f122:	4053      	eors	r3, r2
   1f124:	f88d 301f 	strb.w	r3, [sp, #31]
	for (i = 0; i < (Nr - 1); ++i) {
   1f128:	2c08      	cmp	r4, #8
   1f12a:	d80a      	bhi.n	1f142 <tc_aes_encrypt+0x596>
	for (i = 0; i < (Nb * Nk); ++i) {
   1f12c:	2300      	movs	r3, #0
   1f12e:	2b0f      	cmp	r3, #15
   1f130:	f63f adc0 	bhi.w	1ecb4 <tc_aes_encrypt+0x108>
		s[i] = sbox[s[i]];
   1f134:	a904      	add	r1, sp, #16
   1f136:	5cc8      	ldrb	r0, [r1, r3]
   1f138:	4a6e      	ldr	r2, [pc, #440]	; (1f2f4 <tc_aes_encrypt+0x748>)
   1f13a:	5c10      	ldrb	r0, [r2, r0]
   1f13c:	54c8      	strb	r0, [r1, r3]
	for (i = 0; i < (Nb * Nk); ++i) {
   1f13e:	3301      	adds	r3, #1
   1f140:	e7f5      	b.n	1f12e <tc_aes_encrypt+0x582>
   1f142:	2300      	movs	r3, #0
   1f144:	e005      	b.n	1f152 <tc_aes_encrypt+0x5a6>
		s[i] = sbox[s[i]];
   1f146:	aa04      	add	r2, sp, #16
   1f148:	5cd1      	ldrb	r1, [r2, r3]
   1f14a:	486a      	ldr	r0, [pc, #424]	; (1f2f4 <tc_aes_encrypt+0x748>)
   1f14c:	5c41      	ldrb	r1, [r0, r1]
   1f14e:	54d1      	strb	r1, [r2, r3]
	for (i = 0; i < (Nb * Nk); ++i) {
   1f150:	3301      	adds	r3, #1
   1f152:	2b0f      	cmp	r3, #15
   1f154:	d9f7      	bls.n	1f146 <tc_aes_encrypt+0x59a>
	t[0]  = s[0]; t[1] = s[5]; t[2] = s[10]; t[3] = s[15];
   1f156:	f89d 3010 	ldrb.w	r3, [sp, #16]
   1f15a:	f88d 3000 	strb.w	r3, [sp]
   1f15e:	f89d 3015 	ldrb.w	r3, [sp, #21]
   1f162:	f88d 3001 	strb.w	r3, [sp, #1]
   1f166:	f89d 301a 	ldrb.w	r3, [sp, #26]
   1f16a:	f88d 3002 	strb.w	r3, [sp, #2]
   1f16e:	f89d 301f 	ldrb.w	r3, [sp, #31]
   1f172:	f88d 3003 	strb.w	r3, [sp, #3]
	t[4]  = s[4]; t[5] = s[9]; t[6] = s[14]; t[7] = s[3];
   1f176:	f89d 3014 	ldrb.w	r3, [sp, #20]
   1f17a:	f88d 3004 	strb.w	r3, [sp, #4]
   1f17e:	f89d 3019 	ldrb.w	r3, [sp, #25]
   1f182:	f88d 3005 	strb.w	r3, [sp, #5]
   1f186:	f89d 301e 	ldrb.w	r3, [sp, #30]
   1f18a:	f88d 3006 	strb.w	r3, [sp, #6]
   1f18e:	f89d 3013 	ldrb.w	r3, [sp, #19]
   1f192:	f88d 3007 	strb.w	r3, [sp, #7]
	t[8]  = s[8]; t[9] = s[13]; t[10] = s[2]; t[11] = s[7];
   1f196:	f89d 3018 	ldrb.w	r3, [sp, #24]
   1f19a:	f88d 3008 	strb.w	r3, [sp, #8]
   1f19e:	f89d 301d 	ldrb.w	r3, [sp, #29]
   1f1a2:	f88d 3009 	strb.w	r3, [sp, #9]
   1f1a6:	f89d 3012 	ldrb.w	r3, [sp, #18]
   1f1aa:	f88d 300a 	strb.w	r3, [sp, #10]
   1f1ae:	f89d 3017 	ldrb.w	r3, [sp, #23]
   1f1b2:	f88d 300b 	strb.w	r3, [sp, #11]
	t[12] = s[12]; t[13] = s[1]; t[14] = s[6]; t[15] = s[11];
   1f1b6:	f89d 301c 	ldrb.w	r3, [sp, #28]
   1f1ba:	f88d 300c 	strb.w	r3, [sp, #12]
   1f1be:	f89d 3011 	ldrb.w	r3, [sp, #17]
   1f1c2:	f88d 300d 	strb.w	r3, [sp, #13]
   1f1c6:	f89d 3016 	ldrb.w	r3, [sp, #22]
   1f1ca:	f88d 300e 	strb.w	r3, [sp, #14]
   1f1ce:	f89d 301b 	ldrb.w	r3, [sp, #27]
   1f1d2:	f88d 300f 	strb.w	r3, [sp, #15]
	(void) _copy(s, sizeof(t), t, sizeof(t));
   1f1d6:	2310      	movs	r3, #16
   1f1d8:	466a      	mov	r2, sp
   1f1da:	4619      	mov	r1, r3
   1f1dc:	eb0d 0003 	add.w	r0, sp, r3
   1f1e0:	f015 fa91 	bl	34706 <_copy>
	}

	sub_bytes(state);
	shift_rows(state);
	add_round_key(state, s->words + Nb*(i+1));
   1f1e4:	1c63      	adds	r3, r4, #1
   1f1e6:	011a      	lsls	r2, r3, #4
   1f1e8:	eb06 1303 	add.w	r3, r6, r3, lsl #4
	s[0] ^= (uint8_t)(k[0] >> 24); s[1] ^= (uint8_t)(k[0] >> 16);
   1f1ec:	58b2      	ldr	r2, [r6, r2]
   1f1ee:	f89d 1010 	ldrb.w	r1, [sp, #16]
   1f1f2:	ea81 6112 	eor.w	r1, r1, r2, lsr #24
   1f1f6:	f88d 1010 	strb.w	r1, [sp, #16]
   1f1fa:	f3c2 4107 	ubfx	r1, r2, #16, #8
   1f1fe:	f89d 0011 	ldrb.w	r0, [sp, #17]
   1f202:	4041      	eors	r1, r0
   1f204:	f88d 1011 	strb.w	r1, [sp, #17]
	s[2] ^= (uint8_t)(k[0] >> 8); s[3] ^= (uint8_t)(k[0]);
   1f208:	f3c2 2107 	ubfx	r1, r2, #8, #8
   1f20c:	f89d 0012 	ldrb.w	r0, [sp, #18]
   1f210:	4041      	eors	r1, r0
   1f212:	f88d 1012 	strb.w	r1, [sp, #18]
   1f216:	b2d2      	uxtb	r2, r2
   1f218:	f89d 1013 	ldrb.w	r1, [sp, #19]
   1f21c:	404a      	eors	r2, r1
   1f21e:	f88d 2013 	strb.w	r2, [sp, #19]
	s[4] ^= (uint8_t)(k[1] >> 24); s[5] ^= (uint8_t)(k[1] >> 16);
   1f222:	685a      	ldr	r2, [r3, #4]
   1f224:	f89d 1014 	ldrb.w	r1, [sp, #20]
   1f228:	ea81 6112 	eor.w	r1, r1, r2, lsr #24
   1f22c:	f88d 1014 	strb.w	r1, [sp, #20]
   1f230:	f3c2 4107 	ubfx	r1, r2, #16, #8
   1f234:	f89d 0015 	ldrb.w	r0, [sp, #21]
   1f238:	4041      	eors	r1, r0
   1f23a:	f88d 1015 	strb.w	r1, [sp, #21]
	s[6] ^= (uint8_t)(k[1] >> 8); s[7] ^= (uint8_t)(k[1]);
   1f23e:	f3c2 2107 	ubfx	r1, r2, #8, #8
   1f242:	f89d 0016 	ldrb.w	r0, [sp, #22]
   1f246:	4041      	eors	r1, r0
   1f248:	f88d 1016 	strb.w	r1, [sp, #22]
   1f24c:	b2d2      	uxtb	r2, r2
   1f24e:	f89d 1017 	ldrb.w	r1, [sp, #23]
   1f252:	404a      	eors	r2, r1
   1f254:	f88d 2017 	strb.w	r2, [sp, #23]
	s[8] ^= (uint8_t)(k[2] >> 24); s[9] ^= (uint8_t)(k[2] >> 16);
   1f258:	689a      	ldr	r2, [r3, #8]
   1f25a:	f89d 1018 	ldrb.w	r1, [sp, #24]
   1f25e:	ea81 6112 	eor.w	r1, r1, r2, lsr #24
   1f262:	f88d 1018 	strb.w	r1, [sp, #24]
   1f266:	f3c2 4107 	ubfx	r1, r2, #16, #8
   1f26a:	f89d 0019 	ldrb.w	r0, [sp, #25]
   1f26e:	4041      	eors	r1, r0
   1f270:	f88d 1019 	strb.w	r1, [sp, #25]
	s[10] ^= (uint8_t)(k[2] >> 8); s[11] ^= (uint8_t)(k[2]);
   1f274:	f3c2 2107 	ubfx	r1, r2, #8, #8
   1f278:	f89d 001a 	ldrb.w	r0, [sp, #26]
   1f27c:	4041      	eors	r1, r0
   1f27e:	f88d 101a 	strb.w	r1, [sp, #26]
   1f282:	b2d2      	uxtb	r2, r2
   1f284:	f89d 101b 	ldrb.w	r1, [sp, #27]
   1f288:	404a      	eors	r2, r1
   1f28a:	f88d 201b 	strb.w	r2, [sp, #27]
	s[12] ^= (uint8_t)(k[3] >> 24); s[13] ^= (uint8_t)(k[3] >> 16);
   1f28e:	68db      	ldr	r3, [r3, #12]
   1f290:	f89d 201c 	ldrb.w	r2, [sp, #28]
   1f294:	ea82 6213 	eor.w	r2, r2, r3, lsr #24
   1f298:	f88d 201c 	strb.w	r2, [sp, #28]
   1f29c:	f3c3 4207 	ubfx	r2, r3, #16, #8
   1f2a0:	f89d 101d 	ldrb.w	r1, [sp, #29]
   1f2a4:	404a      	eors	r2, r1
   1f2a6:	f88d 201d 	strb.w	r2, [sp, #29]
	s[14] ^= (uint8_t)(k[3] >> 8); s[15] ^= (uint8_t)(k[3]);
   1f2aa:	f3c3 2207 	ubfx	r2, r3, #8, #8
   1f2ae:	f89d 101e 	ldrb.w	r1, [sp, #30]
   1f2b2:	404a      	eors	r2, r1
   1f2b4:	f88d 201e 	strb.w	r2, [sp, #30]
   1f2b8:	b2db      	uxtb	r3, r3
   1f2ba:	f89d 201f 	ldrb.w	r2, [sp, #31]
   1f2be:	4053      	eors	r3, r2
   1f2c0:	f88d 301f 	strb.w	r3, [sp, #31]

	(void)_copy(out, sizeof(state), state, sizeof(state));
   1f2c4:	2310      	movs	r3, #16
   1f2c6:	eb0d 0203 	add.w	r2, sp, r3
   1f2ca:	4619      	mov	r1, r3
   1f2cc:	4638      	mov	r0, r7
   1f2ce:	f015 fa1a 	bl	34706 <_copy>

	/* zeroing out the state buffer */
	_set(state, TC_ZERO_BYTE, sizeof(state));
   1f2d2:	2210      	movs	r2, #16
   1f2d4:	2100      	movs	r1, #0
   1f2d6:	eb0d 0002 	add.w	r0, sp, r2
   1f2da:	f015 fa21 	bl	34720 <_set>

	return TC_CRYPTO_SUCCESS;
   1f2de:	2001      	movs	r0, #1
}
   1f2e0:	b008      	add	sp, #32
   1f2e2:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
		return TC_CRYPTO_FAIL;
   1f2e6:	2000      	movs	r0, #0
}
   1f2e8:	4770      	bx	lr
		return TC_CRYPTO_FAIL;
   1f2ea:	2000      	movs	r0, #0
   1f2ec:	e7f8      	b.n	1f2e0 <tc_aes_encrypt+0x734>
		return TC_CRYPTO_FAIL;
   1f2ee:	2000      	movs	r0, #0
   1f2f0:	e7f6      	b.n	1f2e0 <tc_aes_encrypt+0x734>
   1f2f2:	bf00      	nop
   1f2f4:	0003c358 	.word	0x0003c358

0001f2f8 <z_arm_cpu_idle_init>:
 * void z_arm_cpu_idle_init(void);
 */

SECTION_FUNC(TEXT, z_arm_cpu_idle_init)
#if defined(CONFIG_CPU_CORTEX_M)
	ldr	r1, =_SCB_SCR
   1f2f8:	4901      	ldr	r1, [pc, #4]	; (1f300 <z_arm_cpu_idle_init+0x8>)
	movs.n	r2, #_SCR_INIT_BITS
   1f2fa:	2210      	movs	r2, #16
	str	r2, [r1]
   1f2fc:	600a      	str	r2, [r1, #0]
#endif
	bx	lr
   1f2fe:	4770      	bx	lr
	ldr	r1, =_SCB_SCR
   1f300:	e000ed10 	.word	0xe000ed10

0001f304 <arch_cpu_idle>:
	 * before entering low power state.
	 *
	 * Set PRIMASK before configuring BASEPRI to prevent interruption
	 * before wake-up.
	 */
	cpsid	i
   1f304:	b672      	cpsid	i

	/*
	 * Set wake-up interrupt priority to the lowest and synchronise to
	 * ensure that this is visible to the WFI instruction.
	 */
	eors.n	r0, r0
   1f306:	4040      	eors	r0, r0
	msr	BASEPRI, r0
   1f308:	f380 8811 	msr	BASEPRI, r0
	isb
   1f30c:	f3bf 8f6f 	isb	sy

	/*
	 * Wait for all memory transactions to complete before entering low
	 * power state.
	 */
	dsb
   1f310:	f3bf 8f4f 	dsb	sy

	/* Enter low power state */
	wfi
   1f314:	bf30      	wfi

	/*
	 * Clear PRIMASK and flush instruction buffer to immediately service
	 * the wake-up interrupt.
	 */
	cpsie	i
   1f316:	b662      	cpsie	i
	isb
   1f318:	f3bf 8f6f 	isb	sy

	bx	lr
   1f31c:	4770      	bx	lr
   1f31e:	bf00      	nop

0001f320 <arch_cpu_atomic_idle>:

	/*
	 * Lock PRIMASK while sleeping: wfe will still get interrupted by
	 * incoming interrupts but the CPU will not service them right away.
	 */
	cpsid	i
   1f320:	b672      	cpsid	i
	cpsie	i
_irq_disabled:

#elif defined(CONFIG_ARMV7_M_ARMV8_M_MAINLINE)
	/* r1: zero, for setting BASEPRI (needs a register) */
	eors.n	r1, r1
   1f322:	4049      	eors	r1, r1

	/* unlock BASEPRI so wfe gets interrupted by incoming interrupts */
	msr	BASEPRI, r1
   1f324:	f381 8811 	msr	BASEPRI, r1

	wfe
   1f328:	bf20      	wfe

	msr	BASEPRI, r0
   1f32a:	f380 8811 	msr	BASEPRI, r0
	cpsie	i
   1f32e:	b662      	cpsie	i
#else
#error Unknown ARM architecture
#endif /* CONFIG_ARMV6_M_ARMV8_M_BASELINE */
	bx	lr
   1f330:	4770      	bx	lr
   1f332:	bf00      	nop

0001f334 <esf_dump>:
#include <kernel_arch_data.h>
#include <logging/log.h>
LOG_MODULE_DECLARE(os, CONFIG_KERNEL_LOG_LEVEL);

static void esf_dump(const z_arch_esf_t *esf)
{
   1f334:	b510      	push	{r4, lr}
   1f336:	b082      	sub	sp, #8
   1f338:	4604      	mov	r4, r0
	LOG_ERR("r0/a1:  0x%08x  r1/a2:  0x%08x  r2/a3:  0x%08x",
   1f33a:	6883      	ldr	r3, [r0, #8]
   1f33c:	9300      	str	r3, [sp, #0]
   1f33e:	6843      	ldr	r3, [r0, #4]
   1f340:	6802      	ldr	r2, [r0, #0]
   1f342:	2145      	movs	r1, #69	; 0x45
   1f344:	480b      	ldr	r0, [pc, #44]	; (1f374 <esf_dump+0x40>)
   1f346:	f014 fbd1 	bl	33aec <z_log_minimal_printk>
		esf->basic.a1, esf->basic.a2, esf->basic.a3);
	LOG_ERR("r3/a4:  0x%08x r12/ip:  0x%08x r14/lr:  0x%08x",
   1f34a:	6963      	ldr	r3, [r4, #20]
   1f34c:	9300      	str	r3, [sp, #0]
   1f34e:	6923      	ldr	r3, [r4, #16]
   1f350:	68e2      	ldr	r2, [r4, #12]
   1f352:	2145      	movs	r1, #69	; 0x45
   1f354:	4808      	ldr	r0, [pc, #32]	; (1f378 <esf_dump+0x44>)
   1f356:	f014 fbc9 	bl	33aec <z_log_minimal_printk>
		esf->basic.a4, esf->basic.ip, esf->basic.lr);
	LOG_ERR(" xpsr:  0x%08x", esf->basic.xpsr);
   1f35a:	69e2      	ldr	r2, [r4, #28]
   1f35c:	2145      	movs	r1, #69	; 0x45
   1f35e:	4807      	ldr	r0, [pc, #28]	; (1f37c <esf_dump+0x48>)
   1f360:	f014 fbc4 	bl	33aec <z_log_minimal_printk>
	}

	LOG_ERR("EXC_RETURN: 0x%0x", esf->extra_info.exc_return);

#endif /* CONFIG_EXTRA_EXCEPTION_INFO */
	LOG_ERR("Faulting instruction address (r15/pc): 0x%08x",
   1f364:	69a2      	ldr	r2, [r4, #24]
   1f366:	2145      	movs	r1, #69	; 0x45
   1f368:	4805      	ldr	r0, [pc, #20]	; (1f380 <esf_dump+0x4c>)
   1f36a:	f014 fbbf 	bl	33aec <z_log_minimal_printk>
		esf->basic.pc);
}
   1f36e:	b002      	add	sp, #8
   1f370:	bd10      	pop	{r4, pc}
   1f372:	bf00      	nop
   1f374:	0003c458 	.word	0x0003c458
   1f378:	0003c48c 	.word	0x0003c48c
   1f37c:	0003c4c0 	.word	0x0003c4c0
   1f380:	0003c4d4 	.word	0x0003c4d4

0001f384 <arch_irq_enable>:
#define REG_FROM_IRQ(irq) (irq / NUM_IRQS_PER_REG)
#define BIT_FROM_IRQ(irq) (irq % NUM_IRQS_PER_REG)

void arch_irq_enable(unsigned int irq)
{
	NVIC_EnableIRQ((IRQn_Type)irq);
   1f384:	b243      	sxtb	r3, r0
  \param [in]      IRQn  Device specific interrupt number.
  \note    IRQn must not be negative.
 */
__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn)
{
  if ((int32_t)(IRQn) >= 0)
   1f386:	2b00      	cmp	r3, #0
   1f388:	db08      	blt.n	1f39c <arch_irq_enable+0x18>
  {
    __COMPILER_BARRIER();
    NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL));
   1f38a:	f000 001f 	and.w	r0, r0, #31
   1f38e:	095b      	lsrs	r3, r3, #5
   1f390:	2201      	movs	r2, #1
   1f392:	fa02 f000 	lsl.w	r0, r2, r0
   1f396:	4a02      	ldr	r2, [pc, #8]	; (1f3a0 <arch_irq_enable+0x1c>)
   1f398:	f842 0023 	str.w	r0, [r2, r3, lsl #2]
}
   1f39c:	4770      	bx	lr
   1f39e:	bf00      	nop
   1f3a0:	e000e100 	.word	0xe000e100

0001f3a4 <arch_irq_disable>:

void arch_irq_disable(unsigned int irq)
{
	NVIC_DisableIRQ((IRQn_Type)irq);
   1f3a4:	b243      	sxtb	r3, r0
  \param [in]      IRQn  Device specific interrupt number.
  \note    IRQn must not be negative.
 */
__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn)
{
  if ((int32_t)(IRQn) >= 0)
   1f3a6:	2b00      	cmp	r3, #0
   1f3a8:	db0d      	blt.n	1f3c6 <arch_irq_disable+0x22>
  {
    NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL));
   1f3aa:	f000 001f 	and.w	r0, r0, #31
   1f3ae:	095b      	lsrs	r3, r3, #5
   1f3b0:	2201      	movs	r2, #1
   1f3b2:	fa02 f000 	lsl.w	r0, r2, r0
   1f3b6:	3320      	adds	r3, #32
   1f3b8:	4a03      	ldr	r2, [pc, #12]	; (1f3c8 <arch_irq_disable+0x24>)
   1f3ba:	f842 0023 	str.w	r0, [r2, r3, lsl #2]
  \details Acts as a special kind of Data Memory Barrier.
           It completes when all explicit memory accesses before this instruction complete.
 */
__STATIC_FORCEINLINE void __DSB(void)
{
  __ASM volatile ("dsb 0xF":::"memory");
   1f3be:	f3bf 8f4f 	dsb	sy
  __ASM volatile ("isb 0xF":::"memory");
   1f3c2:	f3bf 8f6f 	isb	sy
}
   1f3c6:	4770      	bx	lr
   1f3c8:	e000e100 	.word	0xe000e100

0001f3cc <arch_irq_is_enabled>:

int arch_irq_is_enabled(unsigned int irq)
{
	return NVIC->ISER[REG_FROM_IRQ(irq)] & BIT(BIT_FROM_IRQ(irq));
   1f3cc:	0942      	lsrs	r2, r0, #5
   1f3ce:	4b05      	ldr	r3, [pc, #20]	; (1f3e4 <arch_irq_is_enabled+0x18>)
   1f3d0:	f853 2022 	ldr.w	r2, [r3, r2, lsl #2]
   1f3d4:	f000 001f 	and.w	r0, r0, #31
   1f3d8:	2301      	movs	r3, #1
   1f3da:	fa03 f000 	lsl.w	r0, r3, r0
}
   1f3de:	4010      	ands	r0, r2
   1f3e0:	4770      	bx	lr
   1f3e2:	bf00      	nop
   1f3e4:	e000e100 	.word	0xe000e100

0001f3e8 <z_arm_irq_priority_set>:
 * priority levels which are reserved.
 *
 * @return N/A
 */
void z_arm_irq_priority_set(unsigned int irq, unsigned int prio, uint32_t flags)
{
   1f3e8:	b570      	push	{r4, r5, r6, lr}
   1f3ea:	4605      	mov	r5, r0
	/* If we have zero latency interrupts, those interrupts will
	 * run at a priority level which is not masked by irq_lock().
	 * Our policy is to express priority levels with special properties
	 * via flags
	 */
	if (IS_ENABLED(CONFIG_ZERO_LATENCY_IRQS) && (flags & IRQ_ZERO_LATENCY)) {
   1f3ec:	f012 0f01 	tst.w	r2, #1
   1f3f0:	d10d      	bne.n	1f40e <z_arm_irq_priority_set+0x26>
		prio = _EXC_ZERO_LATENCY_IRQS_PRIO;
	} else {
		prio += _IRQ_PRIO_OFFSET;
   1f3f2:	1c8c      	adds	r4, r1, #2
	/* The last priority level is also used by PendSV exception, but
	 * allow other interrupts to use the same level, even if it ends up
	 * affecting performance (can still be useful on systems with a
	 * reduced set of priorities, like Cortex-M0/M0+).
	 */
	__ASSERT(prio <= (BIT(NUM_IRQ_PRIO_BITS) - 1),
   1f3f4:	2c07      	cmp	r4, #7
   1f3f6:	d90b      	bls.n	1f410 <z_arm_irq_priority_set+0x28>
   1f3f8:	4e0f      	ldr	r6, [pc, #60]	; (1f438 <z_arm_irq_priority_set+0x50>)
   1f3fa:	2258      	movs	r2, #88	; 0x58
   1f3fc:	4631      	mov	r1, r6
   1f3fe:	480f      	ldr	r0, [pc, #60]	; (1f43c <z_arm_irq_priority_set+0x54>)
   1f400:	f013 ffd3 	bl	333aa <printk>
   1f404:	2158      	movs	r1, #88	; 0x58
   1f406:	4630      	mov	r0, r6
   1f408:	f014 fb68 	bl	33adc <assert_post_action>
   1f40c:	e000      	b.n	1f410 <z_arm_irq_priority_set+0x28>
		prio = _EXC_ZERO_LATENCY_IRQS_PRIO;
   1f40e:	2400      	movs	r4, #0
		 "invalid priority %d for %d irq! values must be less than %lu\n",
		 prio - _IRQ_PRIO_OFFSET, irq,
		 BIT(NUM_IRQ_PRIO_BITS) - (_IRQ_PRIO_OFFSET));
	NVIC_SetPriority((IRQn_Type)irq, prio);
   1f410:	b26b      	sxtb	r3, r5
  \param [in]  priority  Priority to set.
  \note    The priority cannot be set for every processor exception.
 */
__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority)
{
  if ((int32_t)(IRQn) >= 0)
   1f412:	2b00      	cmp	r3, #0
   1f414:	db08      	blt.n	1f428 <z_arm_irq_priority_set+0x40>
  {
    NVIC->IP[((uint32_t)IRQn)]               = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL);
   1f416:	0164      	lsls	r4, r4, #5
   1f418:	b2e4      	uxtb	r4, r4
   1f41a:	f103 4360 	add.w	r3, r3, #3758096384	; 0xe0000000
   1f41e:	f503 4361 	add.w	r3, r3, #57600	; 0xe100
   1f422:	f883 4300 	strb.w	r4, [r3, #768]	; 0x300
}
   1f426:	bd70      	pop	{r4, r5, r6, pc}
  }
  else
  {
    SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL);
   1f428:	f005 050f 	and.w	r5, r5, #15
   1f42c:	0164      	lsls	r4, r4, #5
   1f42e:	b2e4      	uxtb	r4, r4
   1f430:	4b03      	ldr	r3, [pc, #12]	; (1f440 <z_arm_irq_priority_set+0x58>)
   1f432:	555c      	strb	r4, [r3, r5]
   1f434:	e7f7      	b.n	1f426 <z_arm_irq_priority_set+0x3e>
   1f436:	bf00      	nop
   1f438:	0003c508 	.word	0x0003c508
   1f43c:	0003bdac 	.word	0x0003bdac
   1f440:	e000ed14 	.word	0xe000ed14

0001f444 <_arch_isr_direct_pm>:
	z_arm_fatal_error(K_ERR_SPURIOUS_IRQ, NULL);
}

#ifdef CONFIG_PM
void _arch_isr_direct_pm(void)
{
   1f444:	b508      	push	{r3, lr}
#elif defined(CONFIG_ARMV7_M_ARMV8_M_MAINLINE)
	/* Lock all interrupts. irq_lock() will on this CPU only disable those
	 * lower than BASEPRI, which is not what we want. See comments in
	 * arch/arm/core/aarch32/isr_wrapper.S
	 */
	__asm__ volatile("cpsid i" : : : "memory");
   1f446:	b672      	cpsid	i
#else
#error Unknown ARM architecture
#endif /* CONFIG_ARMV6_M_ARMV8_M_BASELINE */

	if (_kernel.idle) {
   1f448:	4b04      	ldr	r3, [pc, #16]	; (1f45c <_arch_isr_direct_pm+0x18>)
   1f44a:	6998      	ldr	r0, [r3, #24]
   1f44c:	b908      	cbnz	r0, 1f452 <_arch_isr_direct_pm+0xe>

#if defined(CONFIG_ARMV6_M_ARMV8_M_BASELINE) \
	|| defined(CONFIG_ARMV7_R)
	irq_unlock(key);
#elif defined(CONFIG_ARMV7_M_ARMV8_M_MAINLINE)
	__asm__ volatile("cpsie i" : : : "memory");
   1f44e:	b662      	cpsie	i
#else
#error Unknown ARM architecture
#endif /* CONFIG_ARMV6_M_ARMV8_M_BASELINE */

}
   1f450:	bd08      	pop	{r3, pc}
		_kernel.idle = 0;
   1f452:	2200      	movs	r2, #0
   1f454:	619a      	str	r2, [r3, #24]
		z_pm_save_idle_exit(idle_val);
   1f456:	f01b fe83 	bl	3b160 <z_pm_save_idle_exit>
   1f45a:	e7f8      	b.n	1f44e <_arch_isr_direct_pm+0xa>
   1f45c:	20003480 	.word	0x20003480

0001f460 <z_SysNmiOnReset>:
_ASM_FILE_PROLOGUE

GTEXT(z_SysNmiOnReset)

SECTION_FUNC(TEXT, z_SysNmiOnReset)
    wfi
   1f460:	bf30      	wfi
    b z_SysNmiOnReset
   1f462:	f7ff bffd 	b.w	1f460 <z_SysNmiOnReset>
   1f466:	bf00      	nop

0001f468 <z_arm_prep_c>:
 * This routine prepares for the execution of and runs C code.
 *
 * @return N/A
 */
void z_arm_prep_c(void)
{
   1f468:	b508      	push	{r3, lr}
	SCB->VTOR = VECTOR_ADDRESS & SCB_VTOR_TBLOFF_Msk;
   1f46a:	4b0b      	ldr	r3, [pc, #44]	; (1f498 <z_arm_prep_c+0x30>)
   1f46c:	4a0b      	ldr	r2, [pc, #44]	; (1f49c <z_arm_prep_c+0x34>)
   1f46e:	f022 027f 	bic.w	r2, r2, #127	; 0x7f
   1f472:	609a      	str	r2, [r3, #8]
  __ASM volatile ("dsb 0xF":::"memory");
   1f474:	f3bf 8f4f 	dsb	sy
  __ASM volatile ("isb 0xF":::"memory");
   1f478:	f3bf 8f6f 	isb	sy
	SCB->CPACR &= (~(CPACR_CP10_Msk | CPACR_CP11_Msk));
   1f47c:	f8d3 2088 	ldr.w	r2, [r3, #136]	; 0x88
   1f480:	f422 0270 	bic.w	r2, r2, #15728640	; 0xf00000
   1f484:	f8c3 2088 	str.w	r2, [r3, #136]	; 0x88
	relocate_vector_table();
#if defined(CONFIG_CPU_HAS_FPU)
	z_arm_floating_point_init();
#endif
	z_bss_zero();
   1f488:	f00f fdf8 	bl	2f07c <z_bss_zero>
	z_data_copy();
   1f48c:	f012 fd00 	bl	31e90 <z_data_copy>
#if defined(CONFIG_ARMV7_R) && defined(CONFIG_INIT_STACKS)
	z_arm_init_stacks();
#endif
	z_arm_interrupt_init();
   1f490:	f000 fb76 	bl	1fb80 <z_arm_interrupt_init>
	z_cstart();
   1f494:	f00f fdfe 	bl	2f094 <z_cstart>
   1f498:	e000ed00 	.word	0xe000ed00
   1f49c:	0000c200 	.word	0x0000c200

0001f4a0 <arch_swap>:
 * as BASEPRI is not available.
 */
int arch_swap(unsigned int key)
{
	/* store off key and return value */
	_current->arch.basepri = key;
   1f4a0:	4a0a      	ldr	r2, [pc, #40]	; (1f4cc <arch_swap+0x2c>)
   1f4a2:	6893      	ldr	r3, [r2, #8]
   1f4a4:	f8c3 00ac 	str.w	r0, [r3, #172]	; 0xac
	_current->arch.swap_return_value = _k_neg_eagain;
   1f4a8:	4909      	ldr	r1, [pc, #36]	; (1f4d0 <arch_swap+0x30>)
   1f4aa:	6809      	ldr	r1, [r1, #0]
   1f4ac:	f8c3 10b0 	str.w	r1, [r3, #176]	; 0xb0

#if defined(CONFIG_CPU_CORTEX_M)
	/* set pending bit to make sure we will take a PendSV exception */
	SCB->ICSR |= SCB_ICSR_PENDSVSET_Msk;
   1f4b0:	4908      	ldr	r1, [pc, #32]	; (1f4d4 <arch_swap+0x34>)
   1f4b2:	684b      	ldr	r3, [r1, #4]
   1f4b4:	f043 5380 	orr.w	r3, r3, #268435456	; 0x10000000
   1f4b8:	604b      	str	r3, [r1, #4]
   1f4ba:	2300      	movs	r3, #0
   1f4bc:	f383 8811 	msr	BASEPRI, r3
   1f4c0:	f3bf 8f6f 	isb	sy
#endif

	/* Context switch is performed here. Returning implies the
	 * thread has been context-switched-in again.
	 */
	return _current->arch.swap_return_value;
   1f4c4:	6893      	ldr	r3, [r2, #8]
}
   1f4c6:	f8d3 00b0 	ldr.w	r0, [r3, #176]	; 0xb0
   1f4ca:	4770      	bx	lr
   1f4cc:	20003480 	.word	0x20003480
   1f4d0:	0003f804 	.word	0x0003f804
   1f4d4:	e000ed00 	.word	0xe000ed00

0001f4d8 <z_arm_pendsv>:
    pop {r0, lr}
#endif /* CONFIG_ARMV6_M_ARMV8_M_BASELINE */
#endif /* CONFIG_INSTRUMENT_THREAD_SWITCHING */

    /* load _kernel into r1 and current k_thread into r2 */
    ldr r1, =_kernel
   1f4d8:	4913      	ldr	r1, [pc, #76]	; (1f528 <z_arm_pendsv+0x50>)
    ldr r2, [r1, #_kernel_offset_to_current]
   1f4da:	688a      	ldr	r2, [r1, #8]
    /* Store LSB of LR (EXC_RETURN) to the thread's 'mode' word. */
    strb lr, [r2, #_thread_offset_to_mode_exc_return]
#endif

    /* addr of callee-saved regs in thread in r0 */
    ldr r0, =_thread_offset_to_callee_saved
   1f4dc:	f04f 0030 	mov.w	r0, #48	; 0x30
    add r0, r2
   1f4e0:	4410      	add	r0, r2

    /* save callee-saved + psp in thread */
#if defined(CONFIG_CPU_CORTEX_M)
    mrs ip, PSP
   1f4e2:	f3ef 8c09 	mrs	ip, PSP
    mov r6, r11
    mov r7, ip
    /* store r8-12 */
    stmea r0!, {r3-r7}
#elif defined(CONFIG_ARMV7_M_ARMV8_M_MAINLINE)
    stmia r0, {v1-v8, ip}
   1f4e6:	e880 1ff0 	stmia.w	r0, {r4, r5, r6, r7, r8, r9, sl, fp, ip}

    /* Protect the kernel state while we play with the thread lists */
#if defined(CONFIG_ARMV6_M_ARMV8_M_BASELINE)
    cpsid i
#elif defined(CONFIG_ARMV7_M_ARMV8_M_MAINLINE)
    movs.n r0, #_EXC_IRQ_DEFAULT_PRIO
   1f4ea:	2040      	movs	r0, #64	; 0x40
    msr BASEPRI_MAX, r0
   1f4ec:	f380 8812 	msr	BASEPRI_MAX, r0
    isb /* Make the effect of disabling interrupts be realized immediately */
   1f4f0:	f3bf 8f6f 	isb	sy
     * the new thread is context-switched in since all decisions
     * to pend PendSV have been taken with the current kernel
     * state and this is what we're handling currently.
     */
#if defined(CONFIG_CPU_CORTEX_M)
    ldr v4, =_SCS_ICSR
   1f4f4:	4f0d      	ldr	r7, [pc, #52]	; (1f52c <z_arm_pendsv+0x54>)
    ldr v3, =_SCS_ICSR_UNPENDSV
   1f4f6:	f04f 6600 	mov.w	r6, #134217728	; 0x8000000
#endif

    /* _kernel is still in r1 */

    /* fetch the thread to run from the ready queue cache */
    ldr r2, [r1, #_kernel_offset_to_ready_q_cache]
   1f4fa:	69ca      	ldr	r2, [r1, #28]

    str r2, [r1, #_kernel_offset_to_current]
   1f4fc:	608a      	str	r2, [r1, #8]
     * has been handled.
     */

    /* _SCS_ICSR is still in v4 and _SCS_ICSR_UNPENDSV in v3 */
#if defined(CONFIG_CPU_CORTEX_M)
    str v3, [v4, #0]
   1f4fe:	603e      	str	r6, [r7, #0]

    ldr r0, [r4]
    movs.n r3, #0
    str r3, [r4]
#else
    ldr r0, [r2, #_thread_offset_to_basepri]
   1f500:	f8d2 00ac 	ldr.w	r0, [r2, #172]	; 0xac
    movs r3, #0
   1f504:	2300      	movs	r3, #0
    str r3, [r2, #_thread_offset_to_basepri]
   1f506:	f8c2 30ac 	str.w	r3, [r2, #172]	; 0xac
    /* restore r4-r7, go back 9*4 bytes to the start of the stored block */
    subs r0, #36
    ldmia r0!, {r4-r7}
#elif defined(CONFIG_ARMV7_M_ARMV8_M_MAINLINE)
    /* restore BASEPRI for the incoming thread */
    msr BASEPRI, r0
   1f50a:	f380 8811 	msr	BASEPRI, r0
    isb
#endif

#if defined(CONFIG_MPU_STACK_GUARD) || defined(CONFIG_USERSPACE)
    /* Re-program dynamic memory map */
    push {r2,lr}
   1f50e:	b504      	push	{r2, lr}
    mov r0, r2 /* _current thread */
   1f510:	4610      	mov	r0, r2
    bl z_arm_configure_dynamic_mpu_regions
   1f512:	f000 fbd7 	bl	1fcc4 <z_arm_configure_dynamic_mpu_regions>
    pop {r2,lr}
   1f516:	e8bd 4004 	ldmia.w	sp!, {r2, lr}
    isb

#endif

    /* load callee-saved + psp from thread */
    add r0, r2, #_thread_offset_to_callee_saved
   1f51a:	f102 0030 	add.w	r0, r2, #48	; 0x30
    ldmia r0, {v1-v8, ip}
   1f51e:	e890 1ff0 	ldmia.w	r0, {r4, r5, r6, r7, r8, r9, sl, fp, ip}
#else
#error Unknown ARM architecture
#endif /* CONFIG_ARMV6_M_ARMV8_M_BASELINE */

#if defined(CONFIG_CPU_CORTEX_M)
    msr PSP, ip
   1f522:	f38c 8809 	msr	PSP, ip

    /*
     * Cortex-M: return from PendSV exception
     * Cortex-R: return to the caller (z_arm_{exc,int}_exit, or z_arm_svc)
     */
    bx lr
   1f526:	4770      	bx	lr
    ldr r1, =_kernel
   1f528:	20003480 	.word	0x20003480
    ldr v4, =_SCS_ICSR
   1f52c:	e000ed04 	.word	0xe000ed04

0001f530 <z_arm_svc>:
  bne _stack_frame_endif
_stack_frame_msp:
  mrs r0, MSP
_stack_frame_endif:
#elif defined(CONFIG_ARMV7_M_ARMV8_M_MAINLINE)
    tst lr, #_EXC_RETURN_SPSEL_Msk /* did we come from thread mode ? */
   1f530:	f01e 0f04 	tst.w	lr, #4
    ite eq  /* if zero (equal), came from handler mode */
   1f534:	bf0c      	ite	eq
        mrseq r0, MSP   /* handler mode, stack frame is on MSP */
   1f536:	f3ef 8008 	mrseq	r0, MSP
        mrsne r0, PSP   /* thread mode, stack frame is on PSP */
   1f53a:	f3ef 8009 	mrsne	r0, PSP
#endif


    /* Figure out what SVC call number was invoked */

    ldr r1, [r0, #24]   /* grab address of PC from stack frame */
   1f53e:	6981      	ldr	r1, [r0, #24]
     */
#if defined(CONFIG_ARMV6_M_ARMV8_M_BASELINE)
    subs r1, r1, #2
    ldrb r1, [r1]
#elif defined(CONFIG_ARMV7_M_ARMV8_M_MAINLINE)
    ldrb r1, [r1, #-2]
   1f540:	f811 1c02 	ldrb.w	r1, [r1, #-2]
#endif
    bne _oops

#endif /* CONFIG_USERSPACE */

    cmp r1, #2
   1f544:	2902      	cmp	r1, #2
    beq _oops
   1f546:	d0ff      	beq.n	1f548 <_oops>

0001f548 <_oops>:
    /* exception return is done in z_arm_int_exit() */
    b z_arm_int_exit
#endif

_oops:
    push {r0, lr}
   1f548:	b501      	push	{r0, lr}
    bl z_do_kernel_oops
   1f54a:	f016 f97c 	bl	35846 <z_do_kernel_oops>
    /* return from SVC exception is done here */
    pop {r0, pc}
   1f54e:	bd01      	pop	{r0, pc}

0001f550 <arch_new_thread>:
 * of the ESF.
 */
void arch_new_thread(struct k_thread *thread, k_thread_stack_t *stack,
		     char *stack_ptr, k_thread_entry_t entry,
		     void *p1, void *p2, void *p3)
{
   1f550:	b410      	push	{r4}
		thread->stack_info.size -= FP_GUARD_EXTRA_SIZE;
	}
#endif /* FP_GUARD_EXTRA_SIZE */
#endif /* CONFIG_MPU_STACK_GUARD */

	iframe = Z_STACK_PTR_TO_FRAME(struct __basic_sf, stack_ptr);
   1f552:	f1a2 0420 	sub.w	r4, r2, #32
		iframe->pc = (uint32_t)arch_user_mode_enter;
	} else {
		iframe->pc = (uint32_t)z_thread_entry;
	}
#else
	iframe->pc = (uint32_t)z_thread_entry;
   1f556:	490d      	ldr	r1, [pc, #52]	; (1f58c <arch_new_thread+0x3c>)
#endif

#if defined(CONFIG_CPU_CORTEX_M)
	/* force ARM mode by clearing LSB of address */
	iframe->pc &= 0xfffffffe;
   1f558:	f021 0101 	bic.w	r1, r1, #1
   1f55c:	f842 1c08 	str.w	r1, [r2, #-8]
#endif
	iframe->a1 = (uint32_t)entry;
   1f560:	f842 3c20 	str.w	r3, [r2, #-32]
	iframe->a2 = (uint32_t)p1;
   1f564:	9b01      	ldr	r3, [sp, #4]
   1f566:	f842 3c1c 	str.w	r3, [r2, #-28]
	iframe->a3 = (uint32_t)p2;
   1f56a:	9b02      	ldr	r3, [sp, #8]
   1f56c:	f842 3c18 	str.w	r3, [r2, #-24]
	iframe->a4 = (uint32_t)p3;
   1f570:	9b03      	ldr	r3, [sp, #12]
   1f572:	f842 3c14 	str.w	r3, [r2, #-20]

#if defined(CONFIG_CPU_CORTEX_M)
	iframe->xpsr =
   1f576:	f04f 7380 	mov.w	r3, #16777216	; 0x1000000
   1f57a:	f842 3c04 	str.w	r3, [r2, #-4]
#if defined(CONFIG_COMPILER_ISA_THUMB2)
	iframe->xpsr |= T_BIT;
#endif /* CONFIG_COMPILER_ISA_THUMB2 */
#endif /* CONFIG_CPU_CORTEX_M */

	thread->callee_saved.psp = (uint32_t)iframe;
   1f57e:	6504      	str	r4, [r0, #80]	; 0x50
	thread->arch.basepri = 0;
   1f580:	2300      	movs	r3, #0
   1f582:	f8c0 30ac 	str.w	r3, [r0, #172]	; 0xac
#endif
	/*
	 * initial values in all other registers/thread entries are
	 * irrelevant.
	 */
}
   1f586:	bc10      	pop	{r4}
   1f588:	4770      	bx	lr
   1f58a:	bf00      	nop
   1f58c:	0003351b 	.word	0x0003351b

0001f590 <z_check_thread_stack_fail>:
 *         thread stack corruption, otherwise return 0.
 */
uint32_t z_check_thread_stack_fail(const uint32_t fault_addr, const uint32_t psp)
{
#if defined(CONFIG_MULTITHREADING)
	const struct k_thread *thread = _current;
   1f590:	4b16      	ldr	r3, [pc, #88]	; (1f5ec <z_check_thread_stack_fail+0x5c>)
   1f592:	689a      	ldr	r2, [r3, #8]

	if (thread == NULL) {
   1f594:	b1da      	cbz	r2, 1f5ce <z_check_thread_stack_fail+0x3e>
			return thread->stack_info.start;
		}
	}
#else /* CONFIG_USERSPACE */
#if defined(CONFIG_MULTITHREADING)
	if (IS_MPU_GUARD_VIOLATION(thread->stack_info.start - guard_len,
   1f596:	f110 0f16 	cmn.w	r0, #22
   1f59a:	d01a      	beq.n	1f5d2 <z_check_thread_stack_fail+0x42>
{
   1f59c:	b410      	push	{r4}
	if (IS_MPU_GUARD_VIOLATION(thread->stack_info.start - guard_len,
   1f59e:	f8d2 309c 	ldr.w	r3, [r2, #156]	; 0x9c
   1f5a2:	f1a3 0420 	sub.w	r4, r3, #32
   1f5a6:	4284      	cmp	r4, r0
   1f5a8:	d805      	bhi.n	1f5b6 <z_check_thread_stack_fail+0x26>
   1f5aa:	4283      	cmp	r3, r0
   1f5ac:	d908      	bls.n	1f5c0 <z_check_thread_stack_fail+0x30>
   1f5ae:	428b      	cmp	r3, r1
   1f5b0:	d808      	bhi.n	1f5c4 <z_check_thread_stack_fail+0x34>
   1f5b2:	2100      	movs	r1, #0
   1f5b4:	e000      	b.n	1f5b8 <z_check_thread_stack_fail+0x28>
   1f5b6:	2100      	movs	r1, #0
   1f5b8:	b931      	cbnz	r1, 1f5c8 <z_check_thread_stack_fail+0x38>
		return (uint32_t)Z_THREAD_STACK_BUFFER(z_main_stack);
	}
#endif
#endif /* CONFIG_USERSPACE */

	return 0;
   1f5ba:	2000      	movs	r0, #0
}
   1f5bc:	bc10      	pop	{r4}
   1f5be:	4770      	bx	lr
	if (IS_MPU_GUARD_VIOLATION(thread->stack_info.start - guard_len,
   1f5c0:	2100      	movs	r1, #0
   1f5c2:	e7f9      	b.n	1f5b8 <z_check_thread_stack_fail+0x28>
   1f5c4:	2101      	movs	r1, #1
   1f5c6:	e7f7      	b.n	1f5b8 <z_check_thread_stack_fail+0x28>
		return thread->stack_info.start;
   1f5c8:	f8d2 009c 	ldr.w	r0, [r2, #156]	; 0x9c
   1f5cc:	e7f6      	b.n	1f5bc <z_check_thread_stack_fail+0x2c>
		return 0;
   1f5ce:	2000      	movs	r0, #0
   1f5d0:	4770      	bx	lr
	if (IS_MPU_GUARD_VIOLATION(thread->stack_info.start - guard_len,
   1f5d2:	f8d2 309c 	ldr.w	r3, [r2, #156]	; 0x9c
   1f5d6:	428b      	cmp	r3, r1
   1f5d8:	bf94      	ite	ls
   1f5da:	2100      	movls	r1, #0
   1f5dc:	2101      	movhi	r1, #1
   1f5de:	b909      	cbnz	r1, 1f5e4 <z_check_thread_stack_fail+0x54>
	return 0;
   1f5e0:	2000      	movs	r0, #0
}
   1f5e2:	4770      	bx	lr
		return thread->stack_info.start;
   1f5e4:	f8d2 009c 	ldr.w	r0, [r2, #156]	; 0x9c
   1f5e8:	4770      	bx	lr
   1f5ea:	bf00      	nop
   1f5ec:	20003480 	.word	0x20003480

0001f5f0 <arch_switch_to_main_thread>:
#endif /* CONFIG_FPU */
}

void arch_switch_to_main_thread(struct k_thread *main_thread, char *stack_ptr,
				k_thread_entry_t _main)
{
   1f5f0:	b508      	push	{r3, lr}
   1f5f2:	460d      	mov	r5, r1
   1f5f4:	4614      	mov	r4, r2
	z_arm_prepare_switch_to_main();

	_current = main_thread;
   1f5f6:	4b08      	ldr	r3, [pc, #32]	; (1f618 <__kernel_ram_size+0x28>)
   1f5f8:	6098      	str	r0, [r3, #8]
#if defined(CONFIG_MPU_STACK_GUARD) || defined(CONFIG_USERSPACE)
	/*
	 * If stack protection is enabled, make sure to set it
	 * before jumping to thread entry function
	 */
	z_arm_configure_dynamic_mpu_regions(main_thread);
   1f5fa:	f000 fb63 	bl	1fcc4 <z_arm_configure_dynamic_mpu_regions>

	/*
	 * Set PSP to the highest address of the main stack
	 * before enabling interrupts and jumping to main.
	 */
	__asm__ volatile (
   1f5fe:	4620      	mov	r0, r4
   1f600:	f385 8809 	msr	PSP, r5
   1f604:	2100      	movs	r1, #0
   1f606:	b663      	cpsie	if
   1f608:	f381 8811 	msr	BASEPRI, r1
   1f60c:	f3bf 8f6f 	isb	sy
   1f610:	2200      	movs	r2, #0
   1f612:	2300      	movs	r3, #0
   1f614:	f013 ff81 	bl	3351a <z_thread_entry>
	:
	: "r" (_main), "r" (stack_ptr)
	: "r0" /* not to be overwritten by msr PSP, %1 */
	);

	CODE_UNREACHABLE;
   1f618:	20003480 	.word	0x20003480

0001f61c <_isr_wrapper>:
 * @return N/A
 */
SECTION_FUNC(TEXT, _isr_wrapper)

#if defined(CONFIG_CPU_CORTEX_M)
	push {r0,lr}		/* r0, lr are now the first items on the stack */
   1f61c:	b501      	push	{r0, lr}
	 * Disable interrupts to prevent nesting while exiting idle state. This
	 * is only necessary for the Cortex-M because it is the only ARM
	 * architecture variant that automatically enables interrupts when
	 * entering an ISR.
	 */
	cpsid i  /* PRIMASK = 1 */
   1f61e:	b672      	cpsid	i
#endif

	/* is this a wakeup from idle ? */
	ldr r2, =_kernel
   1f620:	4a0b      	ldr	r2, [pc, #44]	; (1f650 <_isr_wrapper+0x34>)
	/* requested idle duration, in ticks */
	ldr r0, [r2, #_kernel_offset_to_idle]
   1f622:	6990      	ldr	r0, [r2, #24]
	cmp r0, #0
   1f624:	2800      	cmp	r0, #0
	str r1, [r2, #_kernel_offset_to_idle]
	bl z_pm_save_idle_exit
_idle_state_cleared:

#elif defined(CONFIG_ARMV7_M_ARMV8_M_MAINLINE)
	ittt ne
   1f626:	bf1e      	ittt	ne
	movne	r1, #0
   1f628:	2100      	movne	r1, #0
		/* clear kernel idle state */
		strne	r1, [r2, #_kernel_offset_to_idle]
   1f62a:	6191      	strne	r1, [r2, #24]
		blne	z_pm_save_idle_exit
   1f62c:	f01b fd98 	blne	3b160 <z_pm_save_idle_exit>
#else
#error Unknown ARM architecture
#endif /* CONFIG_ARMV6_M_ARMV8_M_BASELINE */

#if defined(CONFIG_CPU_CORTEX_M)
	cpsie i		/* re-enable interrupts (PRIMASK = 0) */
   1f630:	b662      	cpsie	i
#endif

#endif /* CONFIG_PM */

#if defined(CONFIG_CPU_CORTEX_M)
	mrs r0, IPSR	/* get exception number */
   1f632:	f3ef 8005 	mrs	r0, IPSR
#if defined(CONFIG_ARMV6_M_ARMV8_M_BASELINE)
	ldr r1, =16
	subs r0, r1	/* get IRQ number */
	lsls r0, #3	/* table is 8-byte wide */
#elif defined(CONFIG_ARMV7_M_ARMV8_M_MAINLINE)
	sub r0, r0, #16	/* get IRQ number */
   1f636:	f1a0 0010 	sub.w	r0, r0, #16
	lsl r0, r0, #3	/* table is 8-byte wide */
   1f63a:	ea4f 00c0 	mov.w	r0, r0, lsl #3
	lsl r1, r1, #3
	cmp r0, r1
	bge spurious_continue
#endif /* !CONFIG_CPU_CORTEX_M */

	ldr r1, =_sw_isr_table
   1f63e:	4905      	ldr	r1, [pc, #20]	; (1f654 <_isr_wrapper+0x38>)
	add r1, r1, r0	/* table entry: ISRs must have their MSB set to stay
   1f640:	4401      	add	r1, r0
			 * in thumb mode */

	ldm r1!,{r0,r3}	/* arg in r0, ISR in r3 */
   1f642:	c909      	ldmia	r1!, {r0, r3}
	blx r3		/* call ISR */
   1f644:	4798      	blx	r3

#if defined(CONFIG_ARMV6_M_ARMV8_M_BASELINE)
	pop {r0, r3}
	mov lr, r3
#elif defined(CONFIG_ARMV7_M_ARMV8_M_MAINLINE)
	pop {r0, lr}
   1f646:	e8bd 4001 	ldmia.w	sp!, {r0, lr}
#endif /* CONFIG_ARMV6_M_ARMV8_M_BASELINE */

	/* Use 'bx' instead of 'b' because 'bx' can jump further, and use
	 * 'bx' instead of 'blx' because exception return is done in
	 * z_arm_int_exit() */
	ldr r1, =z_arm_int_exit
   1f64a:	4903      	ldr	r1, [pc, #12]	; (1f658 <_isr_wrapper+0x3c>)
	bx r1
   1f64c:	4708      	bx	r1
   1f64e:	0000      	.short	0x0000
	ldr r2, =_kernel
   1f650:	20003480 	.word	0x20003480
	ldr r1, =_sw_isr_table
   1f654:	0003b604 	.word	0x0003b604
	ldr r1, =z_arm_int_exit
   1f658:	0001f65d 	.word	0x0001f65d

0001f65c <z_arm_exc_exit>:
 */

SECTION_SUBSEC_FUNC(TEXT, _HandlerModeExit, z_arm_exc_exit)

#ifdef CONFIG_PREEMPT_ENABLED
	ldr r3, =_kernel
   1f65c:	4b04      	ldr	r3, [pc, #16]	; (1f670 <_EXIT_EXC+0x2>)

	ldr r1, [r3, #_kernel_offset_to_current]
   1f65e:	6899      	ldr	r1, [r3, #8]
	ldr r0, [r3, #_kernel_offset_to_ready_q_cache]
   1f660:	69d8      	ldr	r0, [r3, #28]
	cmp r0, r1
   1f662:	4288      	cmp	r0, r1
	beq _EXIT_EXC
   1f664:	d003      	beq.n	1f66e <_EXIT_EXC>

	/* context switch required, pend the PendSV exception */
	ldr r1, =_SCS_ICSR
   1f666:	4903      	ldr	r1, [pc, #12]	; (1f674 <_EXIT_EXC+0x6>)
	ldr r2, =_SCS_ICSR_PENDSV
   1f668:	f04f 5280 	mov.w	r2, #268435456	; 0x10000000
	str r2, [r1]
   1f66c:	600a      	str	r2, [r1, #0]

0001f66e <_EXIT_EXC>:
#else
	pop {r0, lr}
#endif /* CONFIG_ARMV6_M_ARMV8_M_BASELINE */
#endif /* CONFIG_STACK_SENTINEL */

	bx lr
   1f66e:	4770      	bx	lr
	ldr r3, =_kernel
   1f670:	20003480 	.word	0x20003480
	ldr r1, =_SCS_ICSR
   1f674:	e000ed04 	.word	0xe000ed04

0001f678 <bus_fault>:
 * See z_arm_fault_dump() for example.
 *
 * @return N/A
 */
static int bus_fault(z_arch_esf_t *esf, int from_hard_fault, bool *recoverable)
{
   1f678:	b570      	push	{r4, r5, r6, lr}
   1f67a:	4605      	mov	r5, r0
   1f67c:	460e      	mov	r6, r1
   1f67e:	4614      	mov	r4, r2
	uint32_t reason = K_ERR_CPU_EXCEPTION;

	PR_FAULT_INFO("***** BUS FAULT *****");
   1f680:	2145      	movs	r1, #69	; 0x45
   1f682:	482e      	ldr	r0, [pc, #184]	; (1f73c <bus_fault+0xc4>)
   1f684:	f014 fa32 	bl	33aec <z_log_minimal_printk>

	if (SCB->CFSR & SCB_CFSR_STKERR_Msk) {
   1f688:	4b2d      	ldr	r3, [pc, #180]	; (1f740 <bus_fault+0xc8>)
   1f68a:	6a9b      	ldr	r3, [r3, #40]	; 0x28
   1f68c:	f413 5f80 	tst.w	r3, #4096	; 0x1000
   1f690:	d124      	bne.n	1f6dc <bus_fault+0x64>
		PR_FAULT_INFO("  Stacking error");
	}
	if (SCB->CFSR & SCB_CFSR_UNSTKERR_Msk) {
   1f692:	4b2b      	ldr	r3, [pc, #172]	; (1f740 <bus_fault+0xc8>)
   1f694:	6a9b      	ldr	r3, [r3, #40]	; 0x28
   1f696:	f413 6f00 	tst.w	r3, #2048	; 0x800
   1f69a:	d124      	bne.n	1f6e6 <bus_fault+0x6e>
		PR_FAULT_INFO("  Unstacking error");
	}
	if (SCB->CFSR & SCB_CFSR_PRECISERR_Msk) {
   1f69c:	4b28      	ldr	r3, [pc, #160]	; (1f740 <bus_fault+0xc8>)
   1f69e:	6a9b      	ldr	r3, [r3, #40]	; 0x28
   1f6a0:	f413 7f00 	tst.w	r3, #512	; 0x200
   1f6a4:	d124      	bne.n	1f6f0 <bus_fault+0x78>
				/* clear SCB_CFSR_BFAR[VALID] to reset */
				SCB->CFSR &= ~SCB_CFSR_BFARVALID_Msk;
			}
		}
	}
	if (SCB->CFSR & SCB_CFSR_IMPRECISERR_Msk) {
   1f6a6:	4b26      	ldr	r3, [pc, #152]	; (1f740 <bus_fault+0xc8>)
   1f6a8:	6a9b      	ldr	r3, [r3, #40]	; 0x28
   1f6aa:	f413 6f80 	tst.w	r3, #1024	; 0x400
   1f6ae:	d135      	bne.n	1f71c <bus_fault+0xa4>
		PR_FAULT_INFO("  Imprecise data bus error");
	}
	if ((SCB->CFSR & SCB_CFSR_IBUSERR_Msk) != 0) {
   1f6b0:	4b23      	ldr	r3, [pc, #140]	; (1f740 <bus_fault+0xc8>)
   1f6b2:	6a9b      	ldr	r3, [r3, #40]	; 0x28
   1f6b4:	f413 7f80 	tst.w	r3, #256	; 0x100
   1f6b8:	d135      	bne.n	1f726 <bus_fault+0xae>
		PR_FAULT_INFO("  Instruction bus error");
#if !defined(CONFIG_ARMV7_M_ARMV8_M_FP)
	}
#else
	} else if (SCB->CFSR & SCB_CFSR_LSPERR_Msk) {
   1f6ba:	4b21      	ldr	r3, [pc, #132]	; (1f740 <bus_fault+0xc8>)
   1f6bc:	6a9b      	ldr	r3, [r3, #40]	; 0x28
   1f6be:	f413 5f00 	tst.w	r3, #8192	; 0x2000
   1f6c2:	d135      	bne.n	1f730 <bus_fault+0xb8>
		SYSMPU->CESR &= ~sperr;
	}
#endif /* defined(CONFIG_ARM_MPU) && defined(CONFIG_CPU_HAS_NXP_MPU) */

	/* clear BFSR sticky bits */
	SCB->CFSR |= SCB_CFSR_BUSFAULTSR_Msk;
   1f6c4:	4a1e      	ldr	r2, [pc, #120]	; (1f740 <bus_fault+0xc8>)
   1f6c6:	6a93      	ldr	r3, [r2, #40]	; 0x28
   1f6c8:	f443 437f 	orr.w	r3, r3, #65280	; 0xff00
   1f6cc:	6293      	str	r3, [r2, #40]	; 0x28

	*recoverable = memory_fault_recoverable(esf, true);
   1f6ce:	2101      	movs	r1, #1
   1f6d0:	4628      	mov	r0, r5
   1f6d2:	f016 f8ca 	bl	3586a <memory_fault_recoverable>
   1f6d6:	7020      	strb	r0, [r4, #0]

	return reason;
}
   1f6d8:	2000      	movs	r0, #0
   1f6da:	bd70      	pop	{r4, r5, r6, pc}
		PR_FAULT_INFO("  Stacking error");
   1f6dc:	2145      	movs	r1, #69	; 0x45
   1f6de:	4819      	ldr	r0, [pc, #100]	; (1f744 <bus_fault+0xcc>)
   1f6e0:	f014 fa04 	bl	33aec <z_log_minimal_printk>
   1f6e4:	e7d5      	b.n	1f692 <bus_fault+0x1a>
		PR_FAULT_INFO("  Unstacking error");
   1f6e6:	2145      	movs	r1, #69	; 0x45
   1f6e8:	4817      	ldr	r0, [pc, #92]	; (1f748 <bus_fault+0xd0>)
   1f6ea:	f014 f9ff 	bl	33aec <z_log_minimal_printk>
   1f6ee:	e7d5      	b.n	1f69c <bus_fault+0x24>
		PR_FAULT_INFO("  Precise data bus error");
   1f6f0:	2145      	movs	r1, #69	; 0x45
   1f6f2:	4816      	ldr	r0, [pc, #88]	; (1f74c <bus_fault+0xd4>)
   1f6f4:	f014 f9fa 	bl	33aec <z_log_minimal_printk>
		STORE_xFAR(bfar, SCB->BFAR);
   1f6f8:	4b11      	ldr	r3, [pc, #68]	; (1f740 <bus_fault+0xc8>)
   1f6fa:	6b9a      	ldr	r2, [r3, #56]	; 0x38
		if ((SCB->CFSR & SCB_CFSR_BFARVALID_Msk) != 0) {
   1f6fc:	6a9b      	ldr	r3, [r3, #40]	; 0x28
   1f6fe:	f413 4f00 	tst.w	r3, #32768	; 0x8000
   1f702:	d0d0      	beq.n	1f6a6 <bus_fault+0x2e>
			PR_EXC("  BFAR Address: 0x%x", bfar);
   1f704:	2145      	movs	r1, #69	; 0x45
   1f706:	4812      	ldr	r0, [pc, #72]	; (1f750 <bus_fault+0xd8>)
   1f708:	f014 f9f0 	bl	33aec <z_log_minimal_printk>
			if (from_hard_fault != 0) {
   1f70c:	2e00      	cmp	r6, #0
   1f70e:	d0ca      	beq.n	1f6a6 <bus_fault+0x2e>
				SCB->CFSR &= ~SCB_CFSR_BFARVALID_Msk;
   1f710:	4a0b      	ldr	r2, [pc, #44]	; (1f740 <bus_fault+0xc8>)
   1f712:	6a93      	ldr	r3, [r2, #40]	; 0x28
   1f714:	f423 4300 	bic.w	r3, r3, #32768	; 0x8000
   1f718:	6293      	str	r3, [r2, #40]	; 0x28
   1f71a:	e7c4      	b.n	1f6a6 <bus_fault+0x2e>
		PR_FAULT_INFO("  Imprecise data bus error");
   1f71c:	2145      	movs	r1, #69	; 0x45
   1f71e:	480d      	ldr	r0, [pc, #52]	; (1f754 <bus_fault+0xdc>)
   1f720:	f014 f9e4 	bl	33aec <z_log_minimal_printk>
   1f724:	e7c4      	b.n	1f6b0 <bus_fault+0x38>
		PR_FAULT_INFO("  Instruction bus error");
   1f726:	2145      	movs	r1, #69	; 0x45
   1f728:	480b      	ldr	r0, [pc, #44]	; (1f758 <bus_fault+0xe0>)
   1f72a:	f014 f9df 	bl	33aec <z_log_minimal_printk>
   1f72e:	e7c9      	b.n	1f6c4 <bus_fault+0x4c>
		PR_FAULT_INFO("  Floating-point lazy state preservation error");
   1f730:	2145      	movs	r1, #69	; 0x45
   1f732:	480a      	ldr	r0, [pc, #40]	; (1f75c <bus_fault+0xe4>)
   1f734:	f014 f9da 	bl	33aec <z_log_minimal_printk>
   1f738:	e7c4      	b.n	1f6c4 <bus_fault+0x4c>
   1f73a:	bf00      	nop
   1f73c:	0003c540 	.word	0x0003c540
   1f740:	e000ed00 	.word	0xe000ed00
   1f744:	0003c55c 	.word	0x0003c55c
   1f748:	0003c574 	.word	0x0003c574
   1f74c:	0003c58c 	.word	0x0003c58c
   1f750:	0003c5ac 	.word	0x0003c5ac
   1f754:	0003c5c8 	.word	0x0003c5c8
   1f758:	0003c5e8 	.word	0x0003c5e8
   1f75c:	0003c608 	.word	0x0003c608

0001f760 <usage_fault>:
 * See z_arm_fault_dump() for example.
 *
 * @return error code to identify the fatal error reason
 */
static uint32_t usage_fault(const z_arch_esf_t *esf)
{
   1f760:	b508      	push	{r3, lr}
	uint32_t reason = K_ERR_CPU_EXCEPTION;

	PR_FAULT_INFO("***** USAGE FAULT *****");
   1f762:	2145      	movs	r1, #69	; 0x45
   1f764:	4823      	ldr	r0, [pc, #140]	; (1f7f4 <usage_fault+0x94>)
   1f766:	f014 f9c1 	bl	33aec <z_log_minimal_printk>

	/* bits are sticky: they stack and must be reset */
	if ((SCB->CFSR & SCB_CFSR_DIVBYZERO_Msk) != 0) {
   1f76a:	4b23      	ldr	r3, [pc, #140]	; (1f7f8 <usage_fault+0x98>)
   1f76c:	6a9b      	ldr	r3, [r3, #40]	; 0x28
   1f76e:	f013 7f00 	tst.w	r3, #33554432	; 0x2000000
   1f772:	d121      	bne.n	1f7b8 <usage_fault+0x58>
		PR_FAULT_INFO("  Division by zero");
	}
	if ((SCB->CFSR & SCB_CFSR_UNALIGNED_Msk) != 0) {
   1f774:	4b20      	ldr	r3, [pc, #128]	; (1f7f8 <usage_fault+0x98>)
   1f776:	6a9b      	ldr	r3, [r3, #40]	; 0x28
   1f778:	f013 7f80 	tst.w	r3, #16777216	; 0x1000000
   1f77c:	d121      	bne.n	1f7c2 <usage_fault+0x62>
		 */
		reason = K_ERR_STACK_CHK_FAIL;
#endif /* CONFIG_BUILTIN_STACK_GUARD */
	}
#endif /* CONFIG_ARMV8_M_MAINLINE */
	if ((SCB->CFSR & SCB_CFSR_NOCP_Msk) != 0) {
   1f77e:	4b1e      	ldr	r3, [pc, #120]	; (1f7f8 <usage_fault+0x98>)
   1f780:	6a9b      	ldr	r3, [r3, #40]	; 0x28
   1f782:	f413 2f00 	tst.w	r3, #524288	; 0x80000
   1f786:	d121      	bne.n	1f7cc <usage_fault+0x6c>
		PR_FAULT_INFO("  No coprocessor instructions");
	}
	if ((SCB->CFSR & SCB_CFSR_INVPC_Msk) != 0) {
   1f788:	4b1b      	ldr	r3, [pc, #108]	; (1f7f8 <usage_fault+0x98>)
   1f78a:	6a9b      	ldr	r3, [r3, #40]	; 0x28
   1f78c:	f413 2f80 	tst.w	r3, #262144	; 0x40000
   1f790:	d121      	bne.n	1f7d6 <usage_fault+0x76>
		PR_FAULT_INFO("  Illegal load of EXC_RETURN into PC");
	}
	if ((SCB->CFSR & SCB_CFSR_INVSTATE_Msk) != 0) {
   1f792:	4b19      	ldr	r3, [pc, #100]	; (1f7f8 <usage_fault+0x98>)
   1f794:	6a9b      	ldr	r3, [r3, #40]	; 0x28
   1f796:	f413 3f00 	tst.w	r3, #131072	; 0x20000
   1f79a:	d121      	bne.n	1f7e0 <usage_fault+0x80>
		PR_FAULT_INFO("  Illegal use of the EPSR");
	}
	if ((SCB->CFSR & SCB_CFSR_UNDEFINSTR_Msk) != 0) {
   1f79c:	4b16      	ldr	r3, [pc, #88]	; (1f7f8 <usage_fault+0x98>)
   1f79e:	6a9b      	ldr	r3, [r3, #40]	; 0x28
   1f7a0:	f413 3f80 	tst.w	r3, #65536	; 0x10000
   1f7a4:	d121      	bne.n	1f7ea <usage_fault+0x8a>
		PR_FAULT_INFO("  Attempt to execute undefined instruction");
	}

	/* clear UFSR sticky bits */
	SCB->CFSR |= SCB_CFSR_USGFAULTSR_Msk;
   1f7a6:	4a14      	ldr	r2, [pc, #80]	; (1f7f8 <usage_fault+0x98>)
   1f7a8:	6a93      	ldr	r3, [r2, #40]	; 0x28
   1f7aa:	ea6f 4303 	mvn.w	r3, r3, lsl #16
   1f7ae:	ea6f 4313 	mvn.w	r3, r3, lsr #16
   1f7b2:	6293      	str	r3, [r2, #40]	; 0x28

	return reason;
}
   1f7b4:	2000      	movs	r0, #0
   1f7b6:	bd08      	pop	{r3, pc}
		PR_FAULT_INFO("  Division by zero");
   1f7b8:	2145      	movs	r1, #69	; 0x45
   1f7ba:	4810      	ldr	r0, [pc, #64]	; (1f7fc <usage_fault+0x9c>)
   1f7bc:	f014 f996 	bl	33aec <z_log_minimal_printk>
   1f7c0:	e7d8      	b.n	1f774 <usage_fault+0x14>
		PR_FAULT_INFO("  Unaligned memory access");
   1f7c2:	2145      	movs	r1, #69	; 0x45
   1f7c4:	480e      	ldr	r0, [pc, #56]	; (1f800 <usage_fault+0xa0>)
   1f7c6:	f014 f991 	bl	33aec <z_log_minimal_printk>
   1f7ca:	e7d8      	b.n	1f77e <usage_fault+0x1e>
		PR_FAULT_INFO("  No coprocessor instructions");
   1f7cc:	2145      	movs	r1, #69	; 0x45
   1f7ce:	480d      	ldr	r0, [pc, #52]	; (1f804 <usage_fault+0xa4>)
   1f7d0:	f014 f98c 	bl	33aec <z_log_minimal_printk>
   1f7d4:	e7d8      	b.n	1f788 <usage_fault+0x28>
		PR_FAULT_INFO("  Illegal load of EXC_RETURN into PC");
   1f7d6:	2145      	movs	r1, #69	; 0x45
   1f7d8:	480b      	ldr	r0, [pc, #44]	; (1f808 <usage_fault+0xa8>)
   1f7da:	f014 f987 	bl	33aec <z_log_minimal_printk>
   1f7de:	e7d8      	b.n	1f792 <usage_fault+0x32>
		PR_FAULT_INFO("  Illegal use of the EPSR");
   1f7e0:	2145      	movs	r1, #69	; 0x45
   1f7e2:	480a      	ldr	r0, [pc, #40]	; (1f80c <usage_fault+0xac>)
   1f7e4:	f014 f982 	bl	33aec <z_log_minimal_printk>
   1f7e8:	e7d8      	b.n	1f79c <usage_fault+0x3c>
		PR_FAULT_INFO("  Attempt to execute undefined instruction");
   1f7ea:	2145      	movs	r1, #69	; 0x45
   1f7ec:	4808      	ldr	r0, [pc, #32]	; (1f810 <usage_fault+0xb0>)
   1f7ee:	f014 f97d 	bl	33aec <z_log_minimal_printk>
   1f7f2:	e7d8      	b.n	1f7a6 <usage_fault+0x46>
   1f7f4:	0003c63c 	.word	0x0003c63c
   1f7f8:	e000ed00 	.word	0xe000ed00
   1f7fc:	0003c65c 	.word	0x0003c65c
   1f800:	0003c674 	.word	0x0003c674
   1f804:	0003c694 	.word	0x0003c694
   1f808:	0003c6b8 	.word	0x0003c6b8
   1f80c:	0003c6e4 	.word	0x0003c6e4
   1f810:	0003c704 	.word	0x0003c704

0001f814 <debug_monitor>:
 * See z_arm_fault_dump() for example.
 *
 * @return N/A
 */
static void debug_monitor(z_arch_esf_t *esf, bool *recoverable)
{
   1f814:	b508      	push	{r3, lr}
	*recoverable = false;
   1f816:	2300      	movs	r3, #0
   1f818:	700b      	strb	r3, [r1, #0]

	PR_FAULT_INFO(
   1f81a:	2145      	movs	r1, #69	; 0x45
   1f81c:	4801      	ldr	r0, [pc, #4]	; (1f824 <debug_monitor+0x10>)
   1f81e:	f014 f965 	bl	33aec <z_log_minimal_printk>

		*recoverable = memory_fault_recoverable(esf, false);
	}

#endif
}
   1f822:	bd08      	pop	{r3, pc}
   1f824:	0003c734 	.word	0x0003c734

0001f828 <reserved_exception>:
 * See z_arm_fault_dump() for example.
 *
 * @return N/A
 */
static void reserved_exception(const z_arch_esf_t *esf, int fault)
{
   1f828:	b508      	push	{r3, lr}
	ARG_UNUSED(esf);

	PR_FAULT_INFO("***** %s %d) *****",
   1f82a:	290f      	cmp	r1, #15
   1f82c:	dc07      	bgt.n	1f83e <reserved_exception+0x16>
   1f82e:	4a05      	ldr	r2, [pc, #20]	; (1f844 <reserved_exception+0x1c>)
   1f830:	f1a1 0310 	sub.w	r3, r1, #16
   1f834:	2145      	movs	r1, #69	; 0x45
   1f836:	4804      	ldr	r0, [pc, #16]	; (1f848 <reserved_exception+0x20>)
   1f838:	f014 f958 	bl	33aec <z_log_minimal_printk>
	       fault < 16 ? "Reserved Exception (" : "Spurious interrupt (IRQ ",
	       fault - 16);
}
   1f83c:	bd08      	pop	{r3, pc}
	PR_FAULT_INFO("***** %s %d) *****",
   1f83e:	4a03      	ldr	r2, [pc, #12]	; (1f84c <reserved_exception+0x24>)
   1f840:	e7f6      	b.n	1f830 <reserved_exception+0x8>
   1f842:	bf00      	nop
   1f844:	0003c77c 	.word	0x0003c77c
   1f848:	0003c794 	.word	0x0003c794
   1f84c:	0003c760 	.word	0x0003c760

0001f850 <mem_manage_fault>:
{
   1f850:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
   1f852:	4605      	mov	r5, r0
   1f854:	460c      	mov	r4, r1
   1f856:	4616      	mov	r6, r2
	PR_FAULT_INFO("***** MPU FAULT *****");
   1f858:	2145      	movs	r1, #69	; 0x45
   1f85a:	4842      	ldr	r0, [pc, #264]	; (1f964 <mem_manage_fault+0x114>)
   1f85c:	f014 f946 	bl	33aec <z_log_minimal_printk>
	if ((SCB->CFSR & SCB_CFSR_MSTKERR_Msk) != 0) {
   1f860:	4b41      	ldr	r3, [pc, #260]	; (1f968 <mem_manage_fault+0x118>)
   1f862:	6a9b      	ldr	r3, [r3, #40]	; 0x28
   1f864:	f013 0f10 	tst.w	r3, #16
   1f868:	d130      	bne.n	1f8cc <mem_manage_fault+0x7c>
	if ((SCB->CFSR & SCB_CFSR_MUNSTKERR_Msk) != 0) {
   1f86a:	4b3f      	ldr	r3, [pc, #252]	; (1f968 <mem_manage_fault+0x118>)
   1f86c:	6a9b      	ldr	r3, [r3, #40]	; 0x28
   1f86e:	f013 0f08 	tst.w	r3, #8
   1f872:	d130      	bne.n	1f8d6 <mem_manage_fault+0x86>
	if ((SCB->CFSR & SCB_CFSR_DACCVIOL_Msk) != 0) {
   1f874:	4b3c      	ldr	r3, [pc, #240]	; (1f968 <mem_manage_fault+0x118>)
   1f876:	6a9b      	ldr	r3, [r3, #40]	; 0x28
   1f878:	f013 0f02 	tst.w	r3, #2
   1f87c:	d130      	bne.n	1f8e0 <mem_manage_fault+0x90>
	uint32_t mmfar = -EINVAL;
   1f87e:	f06f 0715 	mvn.w	r7, #21
	if ((SCB->CFSR & SCB_CFSR_IACCVIOL_Msk) != 0) {
   1f882:	4b39      	ldr	r3, [pc, #228]	; (1f968 <mem_manage_fault+0x118>)
   1f884:	6a9b      	ldr	r3, [r3, #40]	; 0x28
   1f886:	f013 0f01 	tst.w	r3, #1
   1f88a:	d143      	bne.n	1f914 <mem_manage_fault+0xc4>
	if ((SCB->CFSR & SCB_CFSR_MLSPERR_Msk) != 0) {
   1f88c:	4b36      	ldr	r3, [pc, #216]	; (1f968 <mem_manage_fault+0x118>)
   1f88e:	6a9b      	ldr	r3, [r3, #40]	; 0x28
   1f890:	f013 0f20 	tst.w	r3, #32
   1f894:	d143      	bne.n	1f91e <mem_manage_fault+0xce>
	if ((SCB->CFSR & SCB_CFSR_MSTKERR_Msk) ||
   1f896:	4b34      	ldr	r3, [pc, #208]	; (1f968 <mem_manage_fault+0x118>)
   1f898:	6a9b      	ldr	r3, [r3, #40]	; 0x28
   1f89a:	f013 0f10 	tst.w	r3, #16
   1f89e:	d104      	bne.n	1f8aa <mem_manage_fault+0x5a>
		(SCB->CFSR & SCB_CFSR_DACCVIOL_Msk)) {
   1f8a0:	4b31      	ldr	r3, [pc, #196]	; (1f968 <mem_manage_fault+0x118>)
   1f8a2:	6a9c      	ldr	r4, [r3, #40]	; 0x28
	if ((SCB->CFSR & SCB_CFSR_MSTKERR_Msk) ||
   1f8a4:	f014 0402 	ands.w	r4, r4, #2
   1f8a8:	d004      	beq.n	1f8b4 <mem_manage_fault+0x64>
		if (SCB->ICSR & SCB_ICSR_RETTOBASE_Msk) {
   1f8aa:	4b2f      	ldr	r3, [pc, #188]	; (1f968 <mem_manage_fault+0x118>)
   1f8ac:	685c      	ldr	r4, [r3, #4]
   1f8ae:	f414 6400 	ands.w	r4, r4, #2048	; 0x800
   1f8b2:	d139      	bne.n	1f928 <mem_manage_fault+0xd8>
	SCB->CFSR |= SCB_CFSR_MEMFAULTSR_Msk;
   1f8b4:	492c      	ldr	r1, [pc, #176]	; (1f968 <mem_manage_fault+0x118>)
   1f8b6:	6a8b      	ldr	r3, [r1, #40]	; 0x28
   1f8b8:	f043 03ff 	orr.w	r3, r3, #255	; 0xff
   1f8bc:	628b      	str	r3, [r1, #40]	; 0x28
	*recoverable = memory_fault_recoverable(esf, true);
   1f8be:	2101      	movs	r1, #1
   1f8c0:	4628      	mov	r0, r5
   1f8c2:	f015 ffd2 	bl	3586a <memory_fault_recoverable>
   1f8c6:	7030      	strb	r0, [r6, #0]
}
   1f8c8:	4620      	mov	r0, r4
   1f8ca:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
		PR_FAULT_INFO("  Stacking error (context area might be"
   1f8cc:	2145      	movs	r1, #69	; 0x45
   1f8ce:	4827      	ldr	r0, [pc, #156]	; (1f96c <mem_manage_fault+0x11c>)
   1f8d0:	f014 f90c 	bl	33aec <z_log_minimal_printk>
   1f8d4:	e7c9      	b.n	1f86a <mem_manage_fault+0x1a>
		PR_FAULT_INFO("  Unstacking error");
   1f8d6:	2145      	movs	r1, #69	; 0x45
   1f8d8:	4825      	ldr	r0, [pc, #148]	; (1f970 <mem_manage_fault+0x120>)
   1f8da:	f014 f907 	bl	33aec <z_log_minimal_printk>
   1f8de:	e7c9      	b.n	1f874 <mem_manage_fault+0x24>
		PR_FAULT_INFO("  Data Access Violation");
   1f8e0:	2145      	movs	r1, #69	; 0x45
   1f8e2:	4824      	ldr	r0, [pc, #144]	; (1f974 <mem_manage_fault+0x124>)
   1f8e4:	f014 f902 	bl	33aec <z_log_minimal_printk>
		uint32_t temp = SCB->MMFAR;
   1f8e8:	4b1f      	ldr	r3, [pc, #124]	; (1f968 <mem_manage_fault+0x118>)
   1f8ea:	6b5f      	ldr	r7, [r3, #52]	; 0x34
		if ((SCB->CFSR & SCB_CFSR_MMARVALID_Msk) != 0) {
   1f8ec:	6a9b      	ldr	r3, [r3, #40]	; 0x28
   1f8ee:	f013 0f80 	tst.w	r3, #128	; 0x80
   1f8f2:	d102      	bne.n	1f8fa <mem_manage_fault+0xaa>
	uint32_t mmfar = -EINVAL;
   1f8f4:	f06f 0715 	mvn.w	r7, #21
   1f8f8:	e7c3      	b.n	1f882 <mem_manage_fault+0x32>
			PR_EXC("  MMFAR Address: 0x%x", mmfar);
   1f8fa:	463a      	mov	r2, r7
   1f8fc:	2145      	movs	r1, #69	; 0x45
   1f8fe:	481e      	ldr	r0, [pc, #120]	; (1f978 <mem_manage_fault+0x128>)
   1f900:	f014 f8f4 	bl	33aec <z_log_minimal_printk>
			if (from_hard_fault != 0) {
   1f904:	2c00      	cmp	r4, #0
   1f906:	d0bc      	beq.n	1f882 <mem_manage_fault+0x32>
				SCB->CFSR &= ~SCB_CFSR_MMARVALID_Msk;
   1f908:	4a17      	ldr	r2, [pc, #92]	; (1f968 <mem_manage_fault+0x118>)
   1f90a:	6a93      	ldr	r3, [r2, #40]	; 0x28
   1f90c:	f023 0380 	bic.w	r3, r3, #128	; 0x80
   1f910:	6293      	str	r3, [r2, #40]	; 0x28
   1f912:	e7b6      	b.n	1f882 <mem_manage_fault+0x32>
		PR_FAULT_INFO("  Instruction Access Violation");
   1f914:	2145      	movs	r1, #69	; 0x45
   1f916:	4819      	ldr	r0, [pc, #100]	; (1f97c <mem_manage_fault+0x12c>)
   1f918:	f014 f8e8 	bl	33aec <z_log_minimal_printk>
   1f91c:	e7b6      	b.n	1f88c <mem_manage_fault+0x3c>
		PR_FAULT_INFO(
   1f91e:	2145      	movs	r1, #69	; 0x45
   1f920:	4817      	ldr	r0, [pc, #92]	; (1f980 <mem_manage_fault+0x130>)
   1f922:	f014 f8e3 	bl	33aec <z_log_minimal_printk>
   1f926:	e7b6      	b.n	1f896 <mem_manage_fault+0x46>
			uint32_t min_stack_ptr = z_check_thread_stack_fail(mmfar,
   1f928:	4629      	mov	r1, r5
   1f92a:	4638      	mov	r0, r7
   1f92c:	f7ff fe30 	bl	1f590 <z_check_thread_stack_fail>
			if (min_stack_ptr) {
   1f930:	4607      	mov	r7, r0
   1f932:	b990      	cbnz	r0, 1f95a <mem_manage_fault+0x10a>
				__ASSERT(!(SCB->CFSR & SCB_CFSR_MSTKERR_Msk),
   1f934:	4b0c      	ldr	r3, [pc, #48]	; (1f968 <mem_manage_fault+0x118>)
   1f936:	6a9c      	ldr	r4, [r3, #40]	; 0x28
   1f938:	f014 0410 	ands.w	r4, r4, #16
   1f93c:	d0ba      	beq.n	1f8b4 <mem_manage_fault+0x64>
   1f93e:	4c11      	ldr	r4, [pc, #68]	; (1f984 <mem_manage_fault+0x134>)
   1f940:	f240 1249 	movw	r2, #329	; 0x149
   1f944:	4621      	mov	r1, r4
   1f946:	4810      	ldr	r0, [pc, #64]	; (1f988 <mem_manage_fault+0x138>)
   1f948:	f013 fd2f 	bl	333aa <printk>
   1f94c:	f240 1149 	movw	r1, #329	; 0x149
   1f950:	4620      	mov	r0, r4
   1f952:	f014 f8c3 	bl	33adc <assert_post_action>
	uint32_t reason = K_ERR_CPU_EXCEPTION;
   1f956:	463c      	mov	r4, r7
   1f958:	e7ac      	b.n	1f8b4 <mem_manage_fault+0x64>
  \details Assigns the given value to the Process Stack Pointer (PSP).
  \param [in]    topOfProcStack  Process Stack Pointer value to set
 */
__STATIC_FORCEINLINE void __set_PSP(uint32_t topOfProcStack)
{
  __ASM volatile ("MSR psp, %0" : : "r" (topOfProcStack) : );
   1f95a:	f380 8809 	msr	PSP, r0
				reason = K_ERR_STACK_CHK_FAIL;
   1f95e:	2402      	movs	r4, #2
   1f960:	e7a8      	b.n	1f8b4 <mem_manage_fault+0x64>
   1f962:	bf00      	nop
   1f964:	0003c7ac 	.word	0x0003c7ac
   1f968:	e000ed00 	.word	0xe000ed00
   1f96c:	0003c7c8 	.word	0x0003c7c8
   1f970:	0003c574 	.word	0x0003c574
   1f974:	0003c800 	.word	0x0003c800
   1f978:	0003c820 	.word	0x0003c820
   1f97c:	0003c83c 	.word	0x0003c83c
   1f980:	0003c608 	.word	0x0003c608
   1f984:	0003c860 	.word	0x0003c860
   1f988:	0003bdac 	.word	0x0003bdac

0001f98c <hard_fault>:
{
   1f98c:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
   1f98e:	4607      	mov	r7, r0
   1f990:	460e      	mov	r6, r1
	PR_FAULT_INFO("***** HARD FAULT *****");
   1f992:	2145      	movs	r1, #69	; 0x45
   1f994:	4836      	ldr	r0, [pc, #216]	; (1fa70 <hard_fault+0xe4>)
   1f996:	f014 f8a9 	bl	33aec <z_log_minimal_printk>
	*recoverable = false;
   1f99a:	2300      	movs	r3, #0
   1f99c:	7033      	strb	r3, [r6, #0]
	if ((SCB->HFSR & SCB_HFSR_VECTTBL_Msk) != 0) {
   1f99e:	4b35      	ldr	r3, [pc, #212]	; (1fa74 <hard_fault+0xe8>)
   1f9a0:	6add      	ldr	r5, [r3, #44]	; 0x2c
   1f9a2:	f015 0502 	ands.w	r5, r5, #2
   1f9a6:	d125      	bne.n	1f9f4 <hard_fault+0x68>
	} else if ((SCB->HFSR & SCB_HFSR_DEBUGEVT_Msk) != 0) {
   1f9a8:	4b32      	ldr	r3, [pc, #200]	; (1fa74 <hard_fault+0xe8>)
   1f9aa:	6adb      	ldr	r3, [r3, #44]	; 0x2c
   1f9ac:	2b00      	cmp	r3, #0
   1f9ae:	db28      	blt.n	1fa02 <hard_fault+0x76>
	} else if ((SCB->HFSR & SCB_HFSR_FORCED_Msk) != 0) {
   1f9b0:	4b30      	ldr	r3, [pc, #192]	; (1fa74 <hard_fault+0xe8>)
   1f9b2:	6adc      	ldr	r4, [r3, #44]	; 0x2c
   1f9b4:	f014 4480 	ands.w	r4, r4, #1073741824	; 0x40000000
   1f9b8:	d04c      	beq.n	1fa54 <hard_fault+0xc8>
		PR_EXC("  Fault escalation (see below)");
   1f9ba:	2145      	movs	r1, #69	; 0x45
   1f9bc:	482e      	ldr	r0, [pc, #184]	; (1fa78 <hard_fault+0xec>)
   1f9be:	f014 f895 	bl	33aec <z_log_minimal_printk>
	uint16_t *ret_addr = (uint16_t *)esf->basic.pc;
   1f9c2:	69bb      	ldr	r3, [r7, #24]
	uint16_t fault_insn = *(ret_addr - 1);
   1f9c4:	f833 2c02 	ldrh.w	r2, [r3, #-2]
	if (((fault_insn & 0xff00) == _SVC_OPCODE) &&
   1f9c8:	f64d 7302 	movw	r3, #57090	; 0xdf02
   1f9cc:	429a      	cmp	r2, r3
   1f9ce:	d01e      	beq.n	1fa0e <hard_fault+0x82>
		} else if (SCB_MMFSR != 0) {
   1f9d0:	f103 4360 	add.w	r3, r3, #3758096384	; 0xe0000000
   1f9d4:	f603 6326 	addw	r3, r3, #3622	; 0xe26
   1f9d8:	781b      	ldrb	r3, [r3, #0]
   1f9da:	b9fb      	cbnz	r3, 1fa1c <hard_fault+0x90>
		} else if (SCB_BFSR != 0) {
   1f9dc:	4b27      	ldr	r3, [pc, #156]	; (1fa7c <hard_fault+0xf0>)
   1f9de:	781b      	ldrb	r3, [r3, #0]
   1f9e0:	bb1b      	cbnz	r3, 1fa2a <hard_fault+0x9e>
		} else if (SCB_UFSR != 0) {
   1f9e2:	4b27      	ldr	r3, [pc, #156]	; (1fa80 <hard_fault+0xf4>)
   1f9e4:	881b      	ldrh	r3, [r3, #0]
   1f9e6:	b29b      	uxth	r3, r3
   1f9e8:	b333      	cbz	r3, 1fa38 <hard_fault+0xac>
			reason = usage_fault(esf);
   1f9ea:	4638      	mov	r0, r7
   1f9ec:	f7ff feb8 	bl	1f760 <usage_fault>
   1f9f0:	4604      	mov	r4, r0
   1f9f2:	e004      	b.n	1f9fe <hard_fault+0x72>
		PR_EXC("  Bus fault on vector table read");
   1f9f4:	2145      	movs	r1, #69	; 0x45
   1f9f6:	4823      	ldr	r0, [pc, #140]	; (1fa84 <hard_fault+0xf8>)
   1f9f8:	f014 f878 	bl	33aec <z_log_minimal_printk>
	uint32_t reason = K_ERR_CPU_EXCEPTION;
   1f9fc:	2400      	movs	r4, #0
}
   1f9fe:	4620      	mov	r0, r4
   1fa00:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
		PR_EXC("  Debug event");
   1fa02:	2145      	movs	r1, #69	; 0x45
   1fa04:	4820      	ldr	r0, [pc, #128]	; (1fa88 <hard_fault+0xfc>)
   1fa06:	f014 f871 	bl	33aec <z_log_minimal_printk>
	uint32_t reason = K_ERR_CPU_EXCEPTION;
   1fa0a:	462c      	mov	r4, r5
   1fa0c:	e7f7      	b.n	1f9fe <hard_fault+0x72>
			PR_EXC("ARCH_EXCEPT with reason %x\n", esf->basic.r0);
   1fa0e:	683a      	ldr	r2, [r7, #0]
   1fa10:	2145      	movs	r1, #69	; 0x45
   1fa12:	481e      	ldr	r0, [pc, #120]	; (1fa8c <hard_fault+0x100>)
   1fa14:	f014 f86a 	bl	33aec <z_log_minimal_printk>
			reason = esf->basic.r0;
   1fa18:	683c      	ldr	r4, [r7, #0]
   1fa1a:	e7f0      	b.n	1f9fe <hard_fault+0x72>
			reason = mem_manage_fault(esf, 1, recoverable);
   1fa1c:	4632      	mov	r2, r6
   1fa1e:	2101      	movs	r1, #1
   1fa20:	4638      	mov	r0, r7
   1fa22:	f7ff ff15 	bl	1f850 <mem_manage_fault>
   1fa26:	4604      	mov	r4, r0
   1fa28:	e7e9      	b.n	1f9fe <hard_fault+0x72>
			reason = bus_fault(esf, 1, recoverable);
   1fa2a:	4632      	mov	r2, r6
   1fa2c:	2101      	movs	r1, #1
   1fa2e:	4638      	mov	r0, r7
   1fa30:	f7ff fe22 	bl	1f678 <bus_fault>
   1fa34:	4604      	mov	r4, r0
   1fa36:	e7e2      	b.n	1f9fe <hard_fault+0x72>
			__ASSERT(0,
   1fa38:	4c15      	ldr	r4, [pc, #84]	; (1fa90 <hard_fault+0x104>)
   1fa3a:	f240 22c3 	movw	r2, #707	; 0x2c3
   1fa3e:	4621      	mov	r1, r4
   1fa40:	4814      	ldr	r0, [pc, #80]	; (1fa94 <hard_fault+0x108>)
   1fa42:	f013 fcb2 	bl	333aa <printk>
   1fa46:	f240 21c3 	movw	r1, #707	; 0x2c3
   1fa4a:	4620      	mov	r0, r4
   1fa4c:	f014 f846 	bl	33adc <assert_post_action>
	uint32_t reason = K_ERR_CPU_EXCEPTION;
   1fa50:	462c      	mov	r4, r5
   1fa52:	e7d4      	b.n	1f9fe <hard_fault+0x72>
		__ASSERT(0,
   1fa54:	4d0e      	ldr	r5, [pc, #56]	; (1fa90 <hard_fault+0x104>)
   1fa56:	f240 22c7 	movw	r2, #711	; 0x2c7
   1fa5a:	4629      	mov	r1, r5
   1fa5c:	480d      	ldr	r0, [pc, #52]	; (1fa94 <hard_fault+0x108>)
   1fa5e:	f013 fca4 	bl	333aa <printk>
   1fa62:	f240 21c7 	movw	r1, #711	; 0x2c7
   1fa66:	4628      	mov	r0, r5
   1fa68:	f014 f838 	bl	33adc <assert_post_action>
	return reason;
   1fa6c:	e7c7      	b.n	1f9fe <hard_fault+0x72>
   1fa6e:	bf00      	nop
   1fa70:	0003c89c 	.word	0x0003c89c
   1fa74:	e000ed00 	.word	0xe000ed00
   1fa78:	0003c8f4 	.word	0x0003c8f4
   1fa7c:	e000ed29 	.word	0xe000ed29
   1fa80:	e000ed2a 	.word	0xe000ed2a
   1fa84:	0003c8b8 	.word	0x0003c8b8
   1fa88:	0003c8e0 	.word	0x0003c8e0
   1fa8c:	0003c918 	.word	0x0003c918
   1fa90:	0003c860 	.word	0x0003c860
   1fa94:	0003bdac 	.word	0x0003bdac

0001fa98 <z_arm_fault>:
 * @param callee_regs Callee-saved registers (R4-R11, PSP)
 *
 */
void z_arm_fault(uint32_t msp, uint32_t psp, uint32_t exc_return,
	_callee_saved_t *callee_regs)
{
   1fa98:	b5f0      	push	{r4, r5, r6, r7, lr}
   1fa9a:	b08b      	sub	sp, #44	; 0x2c
	uint32_t reason = K_ERR_CPU_EXCEPTION;
	int fault = SCB->ICSR & SCB_ICSR_VECTACTIVE_Msk;
   1fa9c:	4b2b      	ldr	r3, [pc, #172]	; (1fb4c <z_arm_fault+0xb4>)
   1fa9e:	685d      	ldr	r5, [r3, #4]
   1faa0:	f3c5 0508 	ubfx	r5, r5, #0, #9
   1faa4:	2300      	movs	r3, #0
   1faa6:	f383 8811 	msr	BASEPRI, r3
   1faaa:	f3bf 8f6f 	isb	sy
	if ((exc_return & EXC_RETURN_INDICATOR_PREFIX) !=
   1faae:	f002 437f 	and.w	r3, r2, #4278190080	; 0xff000000
   1fab2:	f1b3 4f7f 	cmp.w	r3, #4278190080	; 0xff000000
   1fab6:	d114      	bne.n	1fae2 <z_arm_fault+0x4a>
	if ((exc_return & EXC_RETURN_MODE_THREAD) &&
   1fab8:	f002 030c 	and.w	r3, r2, #12
   1fabc:	2b08      	cmp	r3, #8
   1fabe:	d006      	beq.n	1face <z_arm_fault+0x36>
		if (exc_return & EXC_RETURN_MODE_THREAD) {
   1fac0:	f012 0f08 	tst.w	r2, #8
   1fac4:	d00a      	beq.n	1fadc <z_arm_fault+0x44>
			ptr_esf =  (z_arch_esf_t *)psp;
   1fac6:	460c      	mov	r4, r1
	*nested_exc = false;
   1fac8:	2600      	movs	r6, #0

	/* Retrieve the Exception Stack Frame (ESF) to be supplied
	 * as argument to the remainder of the fault handling process.
	 */
	 esf = get_esf(msp, psp, exc_return, &nested_exc);
	__ASSERT(esf != NULL,
   1faca:	b9c4      	cbnz	r4, 1fafe <z_arm_fault+0x66>
   1facc:	e00b      	b.n	1fae6 <z_arm_fault+0x4e>
		PR_EXC("SPSEL in thread mode does not indicate PSP");
   1face:	2145      	movs	r1, #69	; 0x45
   1fad0:	481f      	ldr	r0, [pc, #124]	; (1fb50 <z_arm_fault+0xb8>)
   1fad2:	f014 f80b 	bl	33aec <z_log_minimal_printk>
	*nested_exc = false;
   1fad6:	2600      	movs	r6, #0
		return NULL;
   1fad8:	4634      	mov	r4, r6
   1fada:	e004      	b.n	1fae6 <z_arm_fault+0x4e>
			ptr_esf = (z_arch_esf_t *)msp;
   1fadc:	4604      	mov	r4, r0
			*nested_exc = true;
   1fade:	2601      	movs	r6, #1
   1fae0:	e7f3      	b.n	1faca <z_arm_fault+0x32>
	*nested_exc = false;
   1fae2:	2600      	movs	r6, #0
		return NULL;
   1fae4:	4634      	mov	r4, r6
	__ASSERT(esf != NULL,
   1fae6:	4f1b      	ldr	r7, [pc, #108]	; (1fb54 <z_arm_fault+0xbc>)
   1fae8:	f240 32f2 	movw	r2, #1010	; 0x3f2
   1faec:	4639      	mov	r1, r7
   1faee:	481a      	ldr	r0, [pc, #104]	; (1fb58 <z_arm_fault+0xc0>)
   1faf0:	f013 fc5b 	bl	333aa <printk>
   1faf4:	f240 31f2 	movw	r1, #1010	; 0x3f2
   1faf8:	4638      	mov	r0, r7
   1fafa:	f013 ffef 	bl	33adc <assert_post_action>

#ifdef CONFIG_DEBUG_COREDUMP
	z_arm_coredump_fault_sp = POINTER_TO_UINT(esf);
#endif

	reason = fault_handle(esf, fault, &recoverable);
   1fafe:	f10d 0227 	add.w	r2, sp, #39	; 0x27
   1fb02:	4629      	mov	r1, r5
   1fb04:	4620      	mov	r0, r4
   1fb06:	f015 feb2 	bl	3586e <fault_handle>
   1fb0a:	4605      	mov	r5, r0
	if (recoverable) {
   1fb0c:	f89d 3027 	ldrb.w	r3, [sp, #39]	; 0x27
   1fb10:	b10b      	cbz	r3, 1fb16 <z_arm_fault+0x7e>
	} else {
		esf_copy.basic.xpsr &= ~(IPSR_ISR_Msk);
	}

	z_arm_fatal_error(reason, &esf_copy);
}
   1fb12:	b00b      	add	sp, #44	; 0x2c
   1fb14:	bdf0      	pop	{r4, r5, r6, r7, pc}
	memcpy(&esf_copy, esf, sizeof(z_arch_esf_t));
   1fb16:	2220      	movs	r2, #32
   1fb18:	4621      	mov	r1, r4
   1fb1a:	a801      	add	r0, sp, #4
   1fb1c:	f015 ffee 	bl	35afc <memcpy>
	if (nested_exc) {
   1fb20:	b14e      	cbz	r6, 1fb36 <z_arm_fault+0x9e>
		if ((esf_copy.basic.xpsr & IPSR_ISR_Msk) == 0) {
   1fb22:	9b08      	ldr	r3, [sp, #32]
   1fb24:	f3c3 0208 	ubfx	r2, r3, #0, #9
   1fb28:	b95a      	cbnz	r2, 1fb42 <z_arm_fault+0xaa>
			esf_copy.basic.xpsr |= IPSR_ISR_Msk;
   1fb2a:	ea6f 2353 	mvn.w	r3, r3, lsr #9
   1fb2e:	ea6f 2343 	mvn.w	r3, r3, lsl #9
   1fb32:	9308      	str	r3, [sp, #32]
   1fb34:	e005      	b.n	1fb42 <z_arm_fault+0xaa>
		esf_copy.basic.xpsr &= ~(IPSR_ISR_Msk);
   1fb36:	9b08      	ldr	r3, [sp, #32]
   1fb38:	f423 73ff 	bic.w	r3, r3, #510	; 0x1fe
   1fb3c:	f023 0301 	bic.w	r3, r3, #1
   1fb40:	9308      	str	r3, [sp, #32]
	z_arm_fatal_error(reason, &esf_copy);
   1fb42:	a901      	add	r1, sp, #4
   1fb44:	4628      	mov	r0, r5
   1fb46:	f015 fe72 	bl	3582e <z_arm_fatal_error>
   1fb4a:	e7e2      	b.n	1fb12 <z_arm_fault+0x7a>
   1fb4c:	e000ed00 	.word	0xe000ed00
   1fb50:	0003c93c 	.word	0x0003c93c
   1fb54:	0003c860 	.word	0x0003c860
   1fb58:	0003bdac 	.word	0x0003bdac

0001fb5c <z_arm_fault_init>:
 */
void z_arm_fault_init(void)
{
#if defined(CONFIG_ARMV6_M_ARMV8_M_BASELINE)
#elif defined(CONFIG_ARMV7_M_ARMV8_M_MAINLINE)
	SCB->CCR |= SCB_CCR_DIV_0_TRP_Msk;
   1fb5c:	4a02      	ldr	r2, [pc, #8]	; (1fb68 <z_arm_fault_init+0xc>)
   1fb5e:	6953      	ldr	r3, [r2, #20]
   1fb60:	f043 0310 	orr.w	r3, r3, #16
   1fb64:	6153      	str	r3, [r2, #20]
	 * Stack to attempt to descend into secure region, in which case a
	 * Secure Hard Fault will occur and we can track the fault from there.
	 */
	SCB->CCR |= SCB_CCR_STKOFHFNMIGN_Msk;
#endif /* CONFIG_BUILTIN_STACK_GUARD */
}
   1fb66:	4770      	bx	lr
   1fb68:	e000ed00 	.word	0xe000ed00

0001fb6c <z_arm_bus_fault>:
#else
#error Unknown ARM architecture
#endif /* CONFIG_ARMV6_M_ARMV8_M_BASELINE */
SECTION_SUBSEC_FUNC(TEXT,__fault,z_arm_exc_spurious)

	mrs r0, MSP
   1fb6c:	f3ef 8008 	mrs	r0, MSP
	mrs r1, PSP
   1fb70:	f3ef 8109 	mrs	r1, PSP
	push {r0, lr}
   1fb74:	b501      	push	{r0, lr}
#elif defined(CONFIG_ARMV7_M_ARMV8_M_MAINLINE)
	push {r4-r11}
#endif
	mov  r3, sp /* pointer to _callee_saved_t */
#endif /* CONFIG_EXTRA_EXCEPTION_INFO */
	mov r2, lr /* EXC_RETURN */
   1fb76:	4672      	mov	r2, lr
	bl z_arm_fault
   1fb78:	f7ff ff8e 	bl	1fa98 <z_arm_fault>
	 * in this routine. Therefore, we can just reset
	 * the MSP to its value prior to entering the function
	 */
	add sp, #40
#endif
	pop {r0, pc}
   1fb7c:	bd01      	pop	{r0, pc}
   1fb7e:	bf00      	nop

0001fb80 <z_arm_interrupt_init>:
 * @return N/A
 */

void z_arm_interrupt_init(void)
{
	int irq = 0;
   1fb80:	2200      	movs	r2, #0

	for (; irq < CONFIG_NUM_IRQS; irq++) {
   1fb82:	e006      	b.n	1fb92 <z_arm_interrupt_init+0x12>
   1fb84:	f002 010f 	and.w	r1, r2, #15
   1fb88:	4b09      	ldr	r3, [pc, #36]	; (1fbb0 <z_arm_interrupt_init+0x30>)
   1fb8a:	440b      	add	r3, r1
   1fb8c:	2140      	movs	r1, #64	; 0x40
   1fb8e:	7619      	strb	r1, [r3, #24]
   1fb90:	3201      	adds	r2, #1
   1fb92:	2a2f      	cmp	r2, #47	; 0x2f
   1fb94:	dc0a      	bgt.n	1fbac <z_arm_interrupt_init+0x2c>
		NVIC_SetPriority((IRQn_Type)irq, _IRQ_PRIO_OFFSET);
   1fb96:	b253      	sxtb	r3, r2
  if ((int32_t)(IRQn) >= 0)
   1fb98:	2b00      	cmp	r3, #0
   1fb9a:	dbf3      	blt.n	1fb84 <z_arm_interrupt_init+0x4>
    NVIC->IP[((uint32_t)IRQn)]               = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL);
   1fb9c:	f103 4360 	add.w	r3, r3, #3758096384	; 0xe0000000
   1fba0:	f503 4361 	add.w	r3, r3, #57600	; 0xe100
   1fba4:	2140      	movs	r1, #64	; 0x40
   1fba6:	f883 1300 	strb.w	r1, [r3, #768]	; 0x300
   1fbaa:	e7f1      	b.n	1fb90 <z_arm_interrupt_init+0x10>
	}
}
   1fbac:	4770      	bx	lr
   1fbae:	bf00      	nop
   1fbb0:	e000ecfc 	.word	0xe000ecfc

0001fbb4 <__start>:
 */
SECTION_SUBSEC_FUNC(TEXT,_reset_section,__start)

#if defined(CONFIG_INIT_ARCH_HW_AT_BOOT)
    /* Reset CONTROL register */
    movs.n r0, #0
   1fbb4:	2000      	movs	r0, #0
    msr CONTROL, r0
   1fbb6:	f380 8814 	msr	CONTROL, r0
    isb
   1fbba:	f3bf 8f6f 	isb	sy
#endif /* CONFIG_CPU_CORTEX_M_HAS_SPLIM */

#endif /* CONFIG_INIT_ARCH_HW_AT_BOOT */

#if defined(CONFIG_PLATFORM_SPECIFIC_INIT)
    bl z_arm_platform_init
   1fbbe:	f01b fc73 	bl	3b4a8 <z_arm_platform_init>
#endif

#if defined(CONFIG_INIT_ARCH_HW_AT_BOOT)
#if defined(CONFIG_CPU_HAS_ARM_MPU)
    /* Disable MPU */
    movs.n r0, #0
   1fbc2:	2000      	movs	r0, #0
    ldr r1, =_SCS_MPU_CTRL
   1fbc4:	490d      	ldr	r1, [pc, #52]	; (1fbfc <__start+0x48>)
    str r0, [r1]
   1fbc6:	6008      	str	r0, [r1, #0]
    dsb
   1fbc8:	f3bf 8f4f 	dsb	sy
#endif /* CONFIG_CPU_HAS_ARM_MPU */
    ldr r0, =z_main_stack + CONFIG_MAIN_STACK_SIZE
   1fbcc:	480c      	ldr	r0, [pc, #48]	; (1fc00 <__start+0x4c>)
    msr msp, r0
   1fbce:	f380 8808 	msr	MSP, r0

    /* Initialize core architecture registers and system blocks */
    bl z_arm_init_arch_hw_at_boot
   1fbd2:	f000 f829 	bl	1fc28 <z_arm_init_arch_hw_at_boot>

    /* lock interrupts: will get unlocked when switch to main task */
#if defined(CONFIG_ARMV6_M_ARMV8_M_BASELINE)
    cpsid i
#elif defined(CONFIG_ARMV7_M_ARMV8_M_MAINLINE)
    movs.n r0, #_EXC_IRQ_DEFAULT_PRIO
   1fbd6:	2040      	movs	r0, #64	; 0x40
    msr BASEPRI, r0
   1fbd8:	f380 8811 	msr	BASEPRI, r0

    /*
     * Set PSP and use it to boot without using MSP, so that it
     * gets set to z_interrupt_stacks during initialization.
     */
    ldr r0, =z_interrupt_stacks
   1fbdc:	4809      	ldr	r0, [pc, #36]	; (1fc04 <__start+0x50>)
    ldr r1, =CONFIG_ISR_STACK_SIZE + MPU_GUARD_ALIGN_AND_SIZE
   1fbde:	f44f 6102 	mov.w	r1, #2080	; 0x820
    adds r0, r0, r1
   1fbe2:	1840      	adds	r0, r0, r1
    msr PSP, r0
   1fbe4:	f380 8809 	msr	PSP, r0
    mrs r0, CONTROL
   1fbe8:	f3ef 8014 	mrs	r0, CONTROL
    movs r1, #2
   1fbec:	2102      	movs	r1, #2
    orrs r0, r1 /* CONTROL_SPSEL_Msk */
   1fbee:	4308      	orrs	r0, r1
    msr CONTROL, r0
   1fbf0:	f380 8814 	msr	CONTROL, r0
    /*
     * When changing the stack pointer, software must use an ISB instruction
     * immediately after the MSR instruction. This ensures that instructions
     * after the ISB instruction execute using the new stack pointer.
     */
    isb
   1fbf4:	f3bf 8f6f 	isb	sy
    /*
     * 'bl' jumps the furthest of the branch instructions that are
     * supported on all platforms. So it is used when jumping to z_arm_prep_c
     * (even though we do not intend to return).
     */
    bl z_arm_prep_c
   1fbf8:	f7ff fc36 	bl	1f468 <z_arm_prep_c>
    ldr r1, =_SCS_MPU_CTRL
   1fbfc:	e000ed94 	.word	0xe000ed94
    ldr r0, =z_main_stack + CONFIG_MAIN_STACK_SIZE
   1fc00:	200054c0 	.word	0x200054c0
    ldr r0, =z_interrupt_stacks
   1fc04:	20005640 	.word	0x20005640

0001fc08 <z_arm_clear_arm_mpu_config>:
void z_arm_clear_arm_mpu_config(void)
{
	int i;

	int num_regions =
		((MPU->TYPE & MPU_TYPE_DREGION_Msk) >> MPU_TYPE_DREGION_Pos);
   1fc08:	4b06      	ldr	r3, [pc, #24]	; (1fc24 <z_arm_clear_arm_mpu_config+0x1c>)
   1fc0a:	6818      	ldr	r0, [r3, #0]
	int num_regions =
   1fc0c:	f3c0 2007 	ubfx	r0, r0, #8, #8

	for (i = 0; i < num_regions; i++) {
   1fc10:	2300      	movs	r3, #0
   1fc12:	4283      	cmp	r3, r0
   1fc14:	da05      	bge.n	1fc22 <z_arm_clear_arm_mpu_config+0x1a>
/** Clear and disable the given MPU region.
* \param rnr Region number to be cleared.
*/
__STATIC_INLINE void ARM_MPU_ClrRegion(uint32_t rnr)
{
  MPU->RNR = rnr;
   1fc16:	4a03      	ldr	r2, [pc, #12]	; (1fc24 <z_arm_clear_arm_mpu_config+0x1c>)
   1fc18:	6093      	str	r3, [r2, #8]
  MPU->RASR = 0U;
   1fc1a:	2100      	movs	r1, #0
   1fc1c:	6111      	str	r1, [r2, #16]
   1fc1e:	3301      	adds	r3, #1
   1fc20:	e7f7      	b.n	1fc12 <z_arm_clear_arm_mpu_config+0xa>
		ARM_MPU_ClrRegion(i);
	}
}
   1fc22:	4770      	bx	lr
   1fc24:	e000ed90 	.word	0xe000ed90

0001fc28 <z_arm_init_arch_hw_at_boot>:
 * components and core registers.
 *
 * @return N/A
 */
void z_arm_init_arch_hw_at_boot(void)
{
   1fc28:	b510      	push	{r4, lr}
  __ASM volatile ("cpsid i" : : : "memory");
   1fc2a:	b672      	cpsid	i
  \details Assigns the given value to the Fault Mask register.
  \param [in]    faultMask  Fault Mask value to set
 */
__STATIC_FORCEINLINE void __set_FAULTMASK(uint32_t faultMask)
{
  __ASM volatile ("MSR faultmask, %0" : : "r" (faultMask) : "memory");
   1fc2c:	2400      	movs	r4, #0
   1fc2e:	f384 8813 	msr	FAULTMASK, r4

	/* Initialize System Control Block components */

#if defined(CONFIG_CPU_HAS_ARM_MPU) || defined(CONFIG_CPU_HAS_NXP_MPU)
	/* Clear MPU region configuration */
	z_arm_clear_arm_mpu_config();
   1fc32:	f7ff ffe9 	bl	1fc08 <z_arm_clear_arm_mpu_config>
#endif /* CONFIG_CPU_HAS_ARM_MPU */

	/* Disable NVIC interrupts */
	for (uint8_t i = 0; i < ARRAY_SIZE(NVIC->ICER); i++) {
   1fc36:	4623      	mov	r3, r4
   1fc38:	e008      	b.n	1fc4c <z_arm_init_arch_hw_at_boot+0x24>
		NVIC->ICER[i] = 0xFFFFFFFF;
   1fc3a:	f103 0120 	add.w	r1, r3, #32
   1fc3e:	4a0e      	ldr	r2, [pc, #56]	; (1fc78 <z_arm_init_arch_hw_at_boot+0x50>)
   1fc40:	f04f 30ff 	mov.w	r0, #4294967295
   1fc44:	f842 0021 	str.w	r0, [r2, r1, lsl #2]
	for (uint8_t i = 0; i < ARRAY_SIZE(NVIC->ICER); i++) {
   1fc48:	3301      	adds	r3, #1
   1fc4a:	b2db      	uxtb	r3, r3
   1fc4c:	2b07      	cmp	r3, #7
   1fc4e:	d9f4      	bls.n	1fc3a <z_arm_init_arch_hw_at_boot+0x12>
	}
	/* Clear pending NVIC interrupts */
	for (uint8_t i = 0; i < ARRAY_SIZE(NVIC->ICPR); i++) {
   1fc50:	2300      	movs	r3, #0
   1fc52:	e008      	b.n	1fc66 <z_arm_init_arch_hw_at_boot+0x3e>
		NVIC->ICPR[i] = 0xFFFFFFFF;
   1fc54:	f103 0160 	add.w	r1, r3, #96	; 0x60
   1fc58:	4a07      	ldr	r2, [pc, #28]	; (1fc78 <z_arm_init_arch_hw_at_boot+0x50>)
   1fc5a:	f04f 30ff 	mov.w	r0, #4294967295
   1fc5e:	f842 0021 	str.w	r0, [r2, r1, lsl #2]
	for (uint8_t i = 0; i < ARRAY_SIZE(NVIC->ICPR); i++) {
   1fc62:	3301      	adds	r3, #1
   1fc64:	b2db      	uxtb	r3, r3
   1fc66:	2b07      	cmp	r3, #7
   1fc68:	d9f4      	bls.n	1fc54 <z_arm_init_arch_hw_at_boot+0x2c>
  __ASM volatile ("cpsie i" : : : "memory");
   1fc6a:	b662      	cpsie	i
  __ASM volatile ("dsb 0xF":::"memory");
   1fc6c:	f3bf 8f4f 	dsb	sy
  __ASM volatile ("isb 0xF":::"memory");
   1fc70:	f3bf 8f6f 	isb	sy
	/* Restore Interrupts */
	__enable_irq();

	__DSB();
	__ISB();
}
   1fc74:	bd10      	pop	{r4, pc}
   1fc76:	bf00      	nop
   1fc78:	e000e100 	.word	0xe000e100

0001fc7c <z_impl_k_thread_abort>:
#include <kswap.h>
#include <wait_q.h>
#include <sys/__assert.h>

void z_impl_k_thread_abort(k_tid_t thread)
{
   1fc7c:	b508      	push	{r3, lr}
	if (_current == thread) {
   1fc7e:	4b08      	ldr	r3, [pc, #32]	; (1fca0 <z_impl_k_thread_abort+0x24>)
   1fc80:	689b      	ldr	r3, [r3, #8]
   1fc82:	4283      	cmp	r3, r0
   1fc84:	d002      	beq.n	1fc8c <z_impl_k_thread_abort+0x10>
			 */
			SCB->ICSR |= SCB_ICSR_PENDSVSET_Msk;
		}
	}

	z_thread_abort(thread);
   1fc86:	f012 f811 	bl	31cac <z_thread_abort>
}
   1fc8a:	bd08      	pop	{r3, pc}
  __ASM volatile ("MRS %0, ipsr" : "=r" (result) );
   1fc8c:	f3ef 8305 	mrs	r3, IPSR
		if (arch_is_in_isr()) {
   1fc90:	2b00      	cmp	r3, #0
   1fc92:	d0f8      	beq.n	1fc86 <z_impl_k_thread_abort+0xa>
			SCB->ICSR |= SCB_ICSR_PENDSVSET_Msk;
   1fc94:	4a03      	ldr	r2, [pc, #12]	; (1fca4 <z_impl_k_thread_abort+0x28>)
   1fc96:	6853      	ldr	r3, [r2, #4]
   1fc98:	f043 5380 	orr.w	r3, r3, #268435456	; 0x10000000
   1fc9c:	6053      	str	r3, [r2, #4]
   1fc9e:	e7f2      	b.n	1fc86 <z_impl_k_thread_abort+0xa>
   1fca0:	20003480 	.word	0x20003480
   1fca4:	e000ed00 	.word	0xe000ed00

0001fca8 <z_arm_configure_static_mpu_regions>:
 *
 * For some MPU architectures, such as the unmodified ARMv8-M MPU,
 * the function must execute with MPU enabled.
 */
void z_arm_configure_static_mpu_regions(void)
{
   1fca8:	b508      	push	{r3, lr}
	/* Configure the static MPU regions within firmware SRAM boundaries.
	 * Start address of the image is given by _image_ram_start. The end
	 * of the firmware SRAM area is marked by __kernel_ram_end, taking
	 * into account the unused SRAM area, as well.
	 */
	arm_core_mpu_configure_static_mpu_regions(static_regions,
   1fcaa:	4b03      	ldr	r3, [pc, #12]	; (1fcb8 <z_arm_configure_static_mpu_regions+0x10>)
   1fcac:	4a03      	ldr	r2, [pc, #12]	; (1fcbc <z_arm_configure_static_mpu_regions+0x14>)
   1fcae:	2101      	movs	r1, #1
   1fcb0:	4803      	ldr	r0, [pc, #12]	; (1fcc0 <z_arm_configure_static_mpu_regions+0x18>)
   1fcb2:	f000 f89f 	bl	1fdf4 <arm_core_mpu_configure_static_mpu_regions>
	};

	arm_core_mpu_mark_areas_for_dynamic_regions(dyn_region_areas,
		ARRAY_SIZE(dyn_region_areas));
#endif /* CONFIG_MPU_REQUIRES_NON_OVERLAPPING_REGIONS */
}
   1fcb6:	bd08      	pop	{r3, pc}
   1fcb8:	20020000 	.word	0x20020000
   1fcbc:	20000000 	.word	0x20000000
   1fcc0:	0003c970 	.word	0x0003c970

0001fcc4 <z_arm_configure_dynamic_mpu_regions>:
 *
 * This function is not inherently thread-safe, but the memory domain
 * spinlock needs to be held anyway.
 */
void z_arm_configure_dynamic_mpu_regions(struct k_thread *thread)
{
   1fcc4:	b508      	push	{r3, lr}
#endif /* CONFIG_USERSPACE */
	{
		/* A supervisor thread only has the normal thread stack to
		 * protect with a stack guard.
		 */
		guard_start = thread->stack_info.start - guard_size;
   1fcc6:	f8d0 309c 	ldr.w	r3, [r0, #156]	; 0x9c
   1fcca:	3b20      	subs	r3, #32
	}

	__ASSERT(region_num < _MAX_DYNAMIC_MPU_REGIONS_NUM,
		"Out-of-bounds error for dynamic region map.");

	dynamic_regions[region_num].start = guard_start;
   1fccc:	4804      	ldr	r0, [pc, #16]	; (1fce0 <z_arm_configure_dynamic_mpu_regions+0x1c>)
   1fcce:	6003      	str	r3, [r0, #0]
	dynamic_regions[region_num].size = guard_size;
   1fcd0:	2320      	movs	r3, #32
   1fcd2:	6043      	str	r3, [r0, #4]
	dynamic_regions[region_num].attr = K_MEM_PARTITION_P_RO_U_NA;
   1fcd4:	4b03      	ldr	r3, [pc, #12]	; (1fce4 <z_arm_configure_dynamic_mpu_regions+0x20>)
   1fcd6:	6083      	str	r3, [r0, #8]

	region_num++;
#endif /* CONFIG_MPU_STACK_GUARD */

	/* Configure the dynamic MPU regions */
	arm_core_mpu_configure_dynamic_mpu_regions(dynamic_regions,
   1fcd8:	2101      	movs	r1, #1
   1fcda:	f000 f8a3 	bl	1fe24 <arm_core_mpu_configure_dynamic_mpu_regions>
						   region_num);
}
   1fcde:	bd08      	pop	{r3, pc}
   1fce0:	20002164 	.word	0x20002164
   1fce4:	150b0000 	.word	0x150b0000

0001fce8 <region_init>:
#endif /* CPU_CORTEX_M0PLUS | CPU_CORTEX_M3 | CPU_CORTEX_M4 */
}

static inline void set_region_number(uint32_t index)
{
	MPU->RNR = index;
   1fce8:	4a06      	ldr	r2, [pc, #24]	; (1fd04 <region_init+0x1c>)
   1fcea:	6090      	str	r0, [r2, #8]

	set_region_base_address(region_conf->base & MPU_RBAR_ADDR_Msk);
	set_region_attributes(region_conf->attr.rasr);
	set_region_size(region_conf->size | MPU_RASR_ENABLE_Msk);
#else
	MPU->RBAR = (region_conf->base & MPU_RBAR_ADDR_Msk)
   1fcec:	680b      	ldr	r3, [r1, #0]
   1fcee:	f023 031f 	bic.w	r3, r3, #31
				| MPU_RBAR_VALID_Msk | index;
   1fcf2:	4303      	orrs	r3, r0
   1fcf4:	f043 0310 	orr.w	r3, r3, #16
	MPU->RBAR = (region_conf->base & MPU_RBAR_ADDR_Msk)
   1fcf8:	60d3      	str	r3, [r2, #12]
	MPU->RASR = region_conf->attr.rasr | MPU_RASR_ENABLE_Msk;
   1fcfa:	688b      	ldr	r3, [r1, #8]
   1fcfc:	f043 0301 	orr.w	r3, r3, #1
   1fd00:	6113      	str	r3, [r2, #16]
	LOG_DBG("[%d] 0x%08x 0x%08x",
		index, region_conf->base, region_conf->attr.rasr);
#endif
}
   1fd02:	4770      	bx	lr
   1fd04:	e000ed90 	.word	0xe000ed90

0001fd08 <region_allocate_and_init>:
#error "Unsupported ARM CPU"
#endif

static int region_allocate_and_init(const uint8_t index,
	const struct arm_mpu_region *region_conf)
{
   1fd08:	b510      	push	{r4, lr}
   1fd0a:	4604      	mov	r4, r0
	/* Attempt to allocate new region index. */
	if (index > (get_num_regions() - 1U)) {
   1fd0c:	2807      	cmp	r0, #7
   1fd0e:	d803      	bhi.n	1fd18 <region_allocate_and_init+0x10>
	}

	LOG_DBG("Program MPU region at index 0x%x", index);

	/* Program region */
	region_init(index, region_conf);
   1fd10:	f7ff ffea 	bl	1fce8 <region_init>

	return index;
   1fd14:	4620      	mov	r0, r4
}
   1fd16:	bd10      	pop	{r4, pc}
		LOG_ERR("Failed to allocate new MPU region %u\n", index);
   1fd18:	4602      	mov	r2, r0
   1fd1a:	2145      	movs	r1, #69	; 0x45
   1fd1c:	4802      	ldr	r0, [pc, #8]	; (1fd28 <region_allocate_and_init+0x20>)
   1fd1e:	f013 fee5 	bl	33aec <z_log_minimal_printk>
		return -EINVAL;
   1fd22:	f06f 0015 	mvn.w	r0, #21
   1fd26:	e7f6      	b.n	1fd16 <region_allocate_and_init+0xe>
   1fd28:	0003c97c 	.word	0x0003c97c

0001fd2c <mpu_configure_regions>:
 * sanity check of the memory regions to be programmed.
 */
static int mpu_configure_regions(const struct z_arm_mpu_partition
	regions[], uint8_t regions_num, uint8_t start_reg_index,
	bool do_sanity_check)
{
   1fd2c:	e92d 43f8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
   1fd30:	4680      	mov	r8, r0
   1fd32:	460f      	mov	r7, r1
   1fd34:	4699      	mov	r9, r3
	int i;
	int reg_index = start_reg_index;
   1fd36:	4616      	mov	r6, r2

	for (i = 0; i < regions_num; i++) {
   1fd38:	2500      	movs	r5, #0
   1fd3a:	e009      	b.n	1fd50 <mpu_configure_regions+0x24>
				(!mpu_partition_is_valid(&regions[i]))) {
			LOG_ERR("Partition %u: sanity check failed.", i);
			return -EINVAL;
		}

		reg_index = mpu_configure_region(reg_index, &regions[i]);
   1fd3c:	4621      	mov	r1, r4
   1fd3e:	b2f0      	uxtb	r0, r6
   1fd40:	f015 fdcb 	bl	358da <mpu_configure_region>
   1fd44:	4606      	mov	r6, r0

		if (reg_index == -EINVAL) {
   1fd46:	f110 0f16 	cmn.w	r0, #22
   1fd4a:	d019      	beq.n	1fd80 <mpu_configure_regions+0x54>
			return reg_index;
		}

		/* Increment number of programmed MPU indices. */
		reg_index++;
   1fd4c:	3601      	adds	r6, #1
	for (i = 0; i < regions_num; i++) {
   1fd4e:	3501      	adds	r5, #1
   1fd50:	42bd      	cmp	r5, r7
   1fd52:	da15      	bge.n	1fd80 <mpu_configure_regions+0x54>
		if (regions[i].size == 0U) {
   1fd54:	eb05 0445 	add.w	r4, r5, r5, lsl #1
   1fd58:	eb08 0484 	add.w	r4, r8, r4, lsl #2
   1fd5c:	6862      	ldr	r2, [r4, #4]
   1fd5e:	2a00      	cmp	r2, #0
   1fd60:	d0f5      	beq.n	1fd4e <mpu_configure_regions+0x22>
		if (do_sanity_check &&
   1fd62:	f1b9 0f00 	cmp.w	r9, #0
   1fd66:	d0e9      	beq.n	1fd3c <mpu_configure_regions+0x10>
				(!mpu_partition_is_valid(&regions[i]))) {
   1fd68:	4620      	mov	r0, r4
   1fd6a:	f015 fda5 	bl	358b8 <mpu_partition_is_valid>
		if (do_sanity_check &&
   1fd6e:	2800      	cmp	r0, #0
   1fd70:	d1e4      	bne.n	1fd3c <mpu_configure_regions+0x10>
			LOG_ERR("Partition %u: sanity check failed.", i);
   1fd72:	462a      	mov	r2, r5
   1fd74:	2145      	movs	r1, #69	; 0x45
   1fd76:	4804      	ldr	r0, [pc, #16]	; (1fd88 <mpu_configure_regions+0x5c>)
   1fd78:	f013 feb8 	bl	33aec <z_log_minimal_printk>
			return -EINVAL;
   1fd7c:	f06f 0615 	mvn.w	r6, #21
	}

	return reg_index;
}
   1fd80:	4630      	mov	r0, r6
   1fd82:	e8bd 83f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
   1fd86:	bf00      	nop
   1fd88:	0003c9a8 	.word	0x0003c9a8

0001fd8c <mpu_configure_static_mpu_regions>:
 */
static int mpu_configure_static_mpu_regions(const struct z_arm_mpu_partition
	static_regions[], const uint8_t regions_num,
	const uint32_t background_area_base,
	const uint32_t background_area_end)
{
   1fd8c:	b510      	push	{r4, lr}
	int mpu_reg_index = static_regions_num;
   1fd8e:	4c03      	ldr	r4, [pc, #12]	; (1fd9c <mpu_configure_static_mpu_regions+0x10>)
	 * programmed on top of SRAM region configuration.
	 */
	ARG_UNUSED(background_area_base);
	ARG_UNUSED(background_area_end);

	mpu_reg_index = mpu_configure_regions(static_regions,
   1fd90:	2301      	movs	r3, #1
   1fd92:	7822      	ldrb	r2, [r4, #0]
   1fd94:	f7ff ffca 	bl	1fd2c <mpu_configure_regions>
		regions_num, mpu_reg_index, true);

	static_regions_num = mpu_reg_index;
   1fd98:	7020      	strb	r0, [r4, #0]

	return mpu_reg_index;
}
   1fd9a:	bd10      	pop	{r4, pc}
   1fd9c:	200034ea 	.word	0x200034ea

0001fda0 <mpu_configure_dynamic_mpu_regions>:
 * If the dynamic MPU regions configuration has not been successfully
 * performed, the error signal is propagated to the caller of the function.
 */
static int mpu_configure_dynamic_mpu_regions(const struct z_arm_mpu_partition
	dynamic_regions[], uint8_t regions_num)
{
   1fda0:	b508      	push	{r3, lr}

	/* In ARMv7-M architecture the dynamic regions are
	 * programmed on top of existing SRAM region configuration.
	 */

	mpu_reg_index = mpu_configure_regions(dynamic_regions,
   1fda2:	2300      	movs	r3, #0
   1fda4:	4a08      	ldr	r2, [pc, #32]	; (1fdc8 <mpu_configure_dynamic_mpu_regions+0x28>)
   1fda6:	7812      	ldrb	r2, [r2, #0]
   1fda8:	f7ff ffc0 	bl	1fd2c <mpu_configure_regions>
		regions_num, mpu_reg_index, false);

	if (mpu_reg_index != -EINVAL) {
   1fdac:	f110 0f16 	cmn.w	r0, #22
   1fdb0:	d008      	beq.n	1fdc4 <mpu_configure_dynamic_mpu_regions+0x24>

		/* Disable the non-programmed MPU regions. */
		for (int i = mpu_reg_index; i < get_num_regions(); i++) {
   1fdb2:	4603      	mov	r3, r0
   1fdb4:	2b07      	cmp	r3, #7
   1fdb6:	dc05      	bgt.n	1fdc4 <mpu_configure_dynamic_mpu_regions+0x24>
  MPU->RNR = rnr;
   1fdb8:	4a04      	ldr	r2, [pc, #16]	; (1fdcc <mpu_configure_dynamic_mpu_regions+0x2c>)
   1fdba:	6093      	str	r3, [r2, #8]
  MPU->RASR = 0U;
   1fdbc:	2100      	movs	r1, #0
   1fdbe:	6111      	str	r1, [r2, #16]
   1fdc0:	3301      	adds	r3, #1
   1fdc2:	e7f7      	b.n	1fdb4 <mpu_configure_dynamic_mpu_regions+0x14>
			ARM_MPU_ClrRegion(i);
		}
	}

	return mpu_reg_index;
}
   1fdc4:	bd08      	pop	{r3, pc}
   1fdc6:	bf00      	nop
   1fdc8:	200034ea 	.word	0x200034ea
   1fdcc:	e000ed90 	.word	0xe000ed90

0001fdd0 <arm_core_mpu_enable>:
void arm_core_mpu_enable(void)
{
	/* Enable MPU and use the default memory map as a
	 * background region for privileged software access.
	 */
	MPU->CTRL = MPU_CTRL_ENABLE_Msk | MPU_CTRL_PRIVDEFENA_Msk;
   1fdd0:	4b03      	ldr	r3, [pc, #12]	; (1fde0 <arm_core_mpu_enable+0x10>)
   1fdd2:	2205      	movs	r2, #5
   1fdd4:	605a      	str	r2, [r3, #4]
  __ASM volatile ("dsb 0xF":::"memory");
   1fdd6:	f3bf 8f4f 	dsb	sy
  __ASM volatile ("isb 0xF":::"memory");
   1fdda:	f3bf 8f6f 	isb	sy

	/* Make sure that all the registers are set before proceeding */
	__DSB();
	__ISB();
}
   1fdde:	4770      	bx	lr
   1fde0:	e000ed90 	.word	0xe000ed90

0001fde4 <arm_core_mpu_disable>:
  __ASM volatile ("dmb 0xF":::"memory");
   1fde4:	f3bf 8f5f 	dmb	sy
{
	/* Force any outstanding transfers to complete before disabling MPU */
	__DMB();

	/* Disable MPU */
	MPU->CTRL = 0;
   1fde8:	4b01      	ldr	r3, [pc, #4]	; (1fdf0 <arm_core_mpu_disable+0xc>)
   1fdea:	2200      	movs	r2, #0
   1fdec:	605a      	str	r2, [r3, #4]
}
   1fdee:	4770      	bx	lr
   1fdf0:	e000ed90 	.word	0xe000ed90

0001fdf4 <arm_core_mpu_configure_static_mpu_regions>:
 * @brief configure fixed (static) MPU regions.
 */
void arm_core_mpu_configure_static_mpu_regions(const struct z_arm_mpu_partition
	static_regions[], const uint8_t regions_num,
	const uint32_t background_area_start, const uint32_t background_area_end)
{
   1fdf4:	b510      	push	{r4, lr}
	if (mpu_configure_static_mpu_regions(static_regions, regions_num,
   1fdf6:	f7ff ffc9 	bl	1fd8c <mpu_configure_static_mpu_regions>
   1fdfa:	f110 0f16 	cmn.w	r0, #22
   1fdfe:	d000      	beq.n	1fe02 <arm_core_mpu_configure_static_mpu_regions+0xe>
					       background_area_start, background_area_end) == -EINVAL) {

		__ASSERT(0, "Configuring %u static MPU regions failed\n",
			regions_num);
	}
}
   1fe00:	bd10      	pop	{r4, pc}
		__ASSERT(0, "Configuring %u static MPU regions failed\n",
   1fe02:	4c06      	ldr	r4, [pc, #24]	; (1fe1c <arm_core_mpu_configure_static_mpu_regions+0x28>)
   1fe04:	f240 1211 	movw	r2, #273	; 0x111
   1fe08:	4621      	mov	r1, r4
   1fe0a:	4805      	ldr	r0, [pc, #20]	; (1fe20 <arm_core_mpu_configure_static_mpu_regions+0x2c>)
   1fe0c:	f013 facd 	bl	333aa <printk>
   1fe10:	f240 1111 	movw	r1, #273	; 0x111
   1fe14:	4620      	mov	r0, r4
   1fe16:	f013 fe61 	bl	33adc <assert_post_action>
}
   1fe1a:	e7f1      	b.n	1fe00 <arm_core_mpu_configure_static_mpu_regions+0xc>
   1fe1c:	0003c9d0 	.word	0x0003c9d0
   1fe20:	0003bdac 	.word	0x0003bdac

0001fe24 <arm_core_mpu_configure_dynamic_mpu_regions>:
/**
 * @brief configure dynamic MPU regions.
 */
void arm_core_mpu_configure_dynamic_mpu_regions(const struct z_arm_mpu_partition
	dynamic_regions[], uint8_t regions_num)
{
   1fe24:	b510      	push	{r4, lr}
	if (mpu_configure_dynamic_mpu_regions(dynamic_regions, regions_num)
   1fe26:	f7ff ffbb 	bl	1fda0 <mpu_configure_dynamic_mpu_regions>
   1fe2a:	f110 0f16 	cmn.w	r0, #22
   1fe2e:	d000      	beq.n	1fe32 <arm_core_mpu_configure_dynamic_mpu_regions+0xe>
		== -EINVAL) {

		__ASSERT(0, "Configuring %u dynamic MPU regions failed\n",
			regions_num);
	}
}
   1fe30:	bd10      	pop	{r4, pc}
		__ASSERT(0, "Configuring %u dynamic MPU regions failed\n",
   1fe32:	4c06      	ldr	r4, [pc, #24]	; (1fe4c <arm_core_mpu_configure_dynamic_mpu_regions+0x28>)
   1fe34:	f44f 7298 	mov.w	r2, #304	; 0x130
   1fe38:	4621      	mov	r1, r4
   1fe3a:	4805      	ldr	r0, [pc, #20]	; (1fe50 <arm_core_mpu_configure_dynamic_mpu_regions+0x2c>)
   1fe3c:	f013 fab5 	bl	333aa <printk>
   1fe40:	f44f 7198 	mov.w	r1, #304	; 0x130
   1fe44:	4620      	mov	r0, r4
   1fe46:	f013 fe49 	bl	33adc <assert_post_action>
}
   1fe4a:	e7f1      	b.n	1fe30 <arm_core_mpu_configure_dynamic_mpu_regions+0xc>
   1fe4c:	0003c9d0 	.word	0x0003c9d0
   1fe50:	0003bdac 	.word	0x0003bdac

0001fe54 <z_arm_mpu_init>:
 *
 * This function provides the default configuration mechanism for the Memory
 * Protection Unit (MPU).
 */
int z_arm_mpu_init(void)
{
   1fe54:	b538      	push	{r3, r4, r5, lr}
	uint32_t r_index;

	if (mpu_config.num_regions > get_num_regions()) {
   1fe56:	4b1e      	ldr	r3, [pc, #120]	; (1fed0 <z_arm_mpu_init+0x7c>)
   1fe58:	681d      	ldr	r5, [r3, #0]
   1fe5a:	2d08      	cmp	r5, #8
   1fe5c:	d803      	bhi.n	1fe66 <z_arm_mpu_init+0x12>
		return -1;
	}

	LOG_DBG("total region count: %d", get_num_regions());

	arm_core_mpu_disable();
   1fe5e:	f7ff ffc1 	bl	1fde4 <arm_core_mpu_disable>

	/* Architecture-specific configuration */
	mpu_init();

	/* Program fixed regions configured at SOC definition. */
	for (r_index = 0U; r_index < mpu_config.num_regions; r_index++) {
   1fe62:	2400      	movs	r4, #0
   1fe64:	e018      	b.n	1fe98 <z_arm_mpu_init+0x44>
		__ASSERT(0,
   1fe66:	4c1b      	ldr	r4, [pc, #108]	; (1fed4 <z_arm_mpu_init+0x80>)
   1fe68:	f44f 72a4 	mov.w	r2, #328	; 0x148
   1fe6c:	4621      	mov	r1, r4
   1fe6e:	481a      	ldr	r0, [pc, #104]	; (1fed8 <z_arm_mpu_init+0x84>)
   1fe70:	f013 fa9b 	bl	333aa <printk>
   1fe74:	f44f 71a4 	mov.w	r1, #328	; 0x148
   1fe78:	4620      	mov	r0, r4
   1fe7a:	f013 fe2f 	bl	33adc <assert_post_action>
		return -1;
   1fe7e:	f04f 30ff 	mov.w	r0, #4294967295
   1fe82:	e016      	b.n	1feb2 <z_arm_mpu_init+0x5e>
		region_init(r_index, &mpu_config.mpu_regions[r_index]);
   1fe84:	4b12      	ldr	r3, [pc, #72]	; (1fed0 <z_arm_mpu_init+0x7c>)
   1fe86:	6859      	ldr	r1, [r3, #4]
   1fe88:	eb04 0244 	add.w	r2, r4, r4, lsl #1
   1fe8c:	0093      	lsls	r3, r2, #2
   1fe8e:	4419      	add	r1, r3
   1fe90:	4620      	mov	r0, r4
   1fe92:	f7ff ff29 	bl	1fce8 <region_init>
	for (r_index = 0U; r_index < mpu_config.num_regions; r_index++) {
   1fe96:	3401      	adds	r4, #1
   1fe98:	42a5      	cmp	r5, r4
   1fe9a:	d8f3      	bhi.n	1fe84 <z_arm_mpu_init+0x30>
	}

	/* Update the number of programmed MPU regions. */
	static_regions_num = mpu_config.num_regions;
   1fe9c:	4b0f      	ldr	r3, [pc, #60]	; (1fedc <z_arm_mpu_init+0x88>)
   1fe9e:	701d      	strb	r5, [r3, #0]


	arm_core_mpu_enable();
   1fea0:	f7ff ff96 	bl	1fdd0 <arm_core_mpu_enable>

	/* Sanity check for number of regions in Cortex-M0+, M3, and M4. */
#if defined(CONFIG_CPU_CORTEX_M0PLUS) || \
	defined(CONFIG_CPU_CORTEX_M3) || \
	defined(CONFIG_CPU_CORTEX_M4)
	__ASSERT(
   1fea4:	4b0e      	ldr	r3, [pc, #56]	; (1fee0 <z_arm_mpu_init+0x8c>)
   1fea6:	681b      	ldr	r3, [r3, #0]
   1fea8:	f3c3 2307 	ubfx	r3, r3, #8, #8
   1feac:	2b08      	cmp	r3, #8
   1feae:	d101      	bne.n	1feb4 <z_arm_mpu_init+0x60>
		(MPU->TYPE & MPU_TYPE_DREGION_Msk) >> MPU_TYPE_DREGION_Pos ==
		NUM_MPU_REGIONS,
		"Invalid number of MPU regions\n");
#endif /* CORTEX_M0PLUS || CPU_CORTEX_M3 || CPU_CORTEX_M4 */

	return 0;
   1feb0:	2000      	movs	r0, #0
}
   1feb2:	bd38      	pop	{r3, r4, r5, pc}
	__ASSERT(
   1feb4:	4c07      	ldr	r4, [pc, #28]	; (1fed4 <z_arm_mpu_init+0x80>)
   1feb6:	f44f 72d4 	mov.w	r2, #424	; 0x1a8
   1feba:	4621      	mov	r1, r4
   1febc:	4806      	ldr	r0, [pc, #24]	; (1fed8 <z_arm_mpu_init+0x84>)
   1febe:	f013 fa74 	bl	333aa <printk>
   1fec2:	f44f 71d4 	mov.w	r1, #424	; 0x1a8
   1fec6:	4620      	mov	r0, r4
   1fec8:	f013 fe08 	bl	33adc <assert_post_action>
	return 0;
   1fecc:	2000      	movs	r0, #0
   1fece:	e7f0      	b.n	1feb2 <z_arm_mpu_init+0x5e>
   1fed0:	0003ca18 	.word	0x0003ca18
   1fed4:	0003c9d0 	.word	0x0003c9d0
   1fed8:	0003bdac 	.word	0x0003bdac
   1fedc:	200034ea 	.word	0x200034ea
   1fee0:	e000ed90 	.word	0xe000ed90

0001fee4 <__stdout_hook_install>:

static int (*_stdout_hook)(int) = _stdout_hook_default;

void __stdout_hook_install(int (*hook)(int))
{
	_stdout_hook = hook;
   1fee4:	4b01      	ldr	r3, [pc, #4]	; (1feec <__stdout_hook_install+0x8>)
   1fee6:	6018      	str	r0, [r3, #0]
}
   1fee8:	4770      	bx	lr
   1feea:	bf00      	nop
   1feec:	20000538 	.word	0x20000538

0001fef0 <nordicsemi_nrf52_init>:
	__asm__ volatile(
   1fef0:	f04f 0340 	mov.w	r3, #64	; 0x40
   1fef4:	f3ef 8211 	mrs	r2, BASEPRI
   1fef8:	f383 8812 	msr	BASEPRI_MAX, r3
   1fefc:	f3bf 8f6f 	isb	sy

	key = irq_lock();

#ifdef CONFIG_NRF_ENABLE_ICACHE
	/* Enable the instruction cache */
	NRF_NVMC->ICACHECNF = NVMC_ICACHECNF_CACHEEN_Msk;
   1ff00:	2301      	movs	r3, #1
   1ff02:	4906      	ldr	r1, [pc, #24]	; (1ff1c <nordicsemi_nrf52_init+0x2c>)
   1ff04:	f8c1 3540 	str.w	r3, [r1, #1344]	; 0x540
#endif

#if NRF_POWER_HAS_DCDCEN
NRF_STATIC_INLINE void nrf_power_dcdcen_set(NRF_POWER_Type * p_reg, bool enable)
{
    p_reg->DCDCEN = (enable ? POWER_DCDCEN_DCDCEN_Enabled : POWER_DCDCEN_DCDCEN_Disabled) <<
   1ff08:	f04f 4180 	mov.w	r1, #1073741824	; 0x40000000
   1ff0c:	f8c1 3578 	str.w	r3, [r1, #1400]	; 0x578
	__asm__ volatile(
   1ff10:	f382 8811 	msr	BASEPRI, r2
   1ff14:	f3bf 8f6f 	isb	sy
	NMI_INIT();

	irq_unlock(key);

	return 0;
}
   1ff18:	2000      	movs	r0, #0
   1ff1a:	4770      	bx	lr
   1ff1c:	4001e000 	.word	0x4001e000

0001ff20 <sys_arch_reboot>:
    *p_gpregret = val;
   1ff20:	b2c0      	uxtb	r0, r0
   1ff22:	f04f 4380 	mov.w	r3, #1073741824	; 0x40000000
   1ff26:	f8c3 051c 	str.w	r0, [r3, #1308]	; 0x51c
  __ASM volatile ("dsb 0xF":::"memory");
   1ff2a:	f3bf 8f4f 	dsb	sy
__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void)
{
  __DSB();                                                          /* Ensure all outstanding memory accesses included
                                                                       buffered write are completed before reset */
  SCB->AIRCR  = (uint32_t)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos)    |
                           (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) |
   1ff2e:	4905      	ldr	r1, [pc, #20]	; (1ff44 <sys_arch_reboot+0x24>)
   1ff30:	68ca      	ldr	r2, [r1, #12]
   1ff32:	f402 62e0 	and.w	r2, r2, #1792	; 0x700
   1ff36:	4b04      	ldr	r3, [pc, #16]	; (1ff48 <sys_arch_reboot+0x28>)
   1ff38:	4313      	orrs	r3, r2
  SCB->AIRCR  = (uint32_t)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos)    |
   1ff3a:	60cb      	str	r3, [r1, #12]
   1ff3c:	f3bf 8f4f 	dsb	sy
                            SCB_AIRCR_SYSRESETREQ_Msk    );         /* Keep priority group unchanged */
  __DSB();                                                          /* Ensure completion of memory access */

  for(;;)                                                           /* wait until reset */
  {
    __NOP();
   1ff40:	bf00      	nop
  for(;;)                                                           /* wait until reset */
   1ff42:	e7fd      	b.n	1ff40 <sys_arch_reboot+0x20>
   1ff44:	e000ed00 	.word	0xe000ed00
   1ff48:	05fa0004 	.word	0x05fa0004

0001ff4c <arch_busy_wait>:

#else // NRFX_CHECK(NRFX_DELAY_DWT_BASED)

NRF_STATIC_INLINE void nrfx_coredep_delay_us(uint32_t time_us)
{
    if (time_us == 0)
   1ff4c:	b130      	cbz	r0, 1ff5c <arch_busy_wait+0x10>

void arch_busy_wait(uint32_t time_us)
{
   1ff4e:	b508      	push	{r3, lr}
    typedef void (* delay_func_t)(uint32_t);
    const delay_func_t delay_cycles =
        // Set LSB to 1 to execute the code in the Thumb mode.
        (delay_func_t)((((uint32_t)delay_machine_code) | 1));
    uint32_t cycles = time_us * NRFX_DELAY_CPU_FREQ_MHZ;
    delay_cycles(cycles);
   1ff50:	0180      	lsls	r0, r0, #6
   1ff52:	4b03      	ldr	r3, [pc, #12]	; (1ff60 <arch_busy_wait+0x14>)
   1ff54:	f043 0301 	orr.w	r3, r3, #1
   1ff58:	4798      	blx	r3
	nrfx_coredep_delay_us(time_us);
}
   1ff5a:	bd08      	pop	{r3, pc}
   1ff5c:	4770      	bx	lr
   1ff5e:	bf00      	nop
   1ff60:	0003ba80 	.word	0x0003ba80

0001ff64 <bt_hex_real>:
	static const char hex[] = "0123456789abcdef";
	static char str[129];
	const uint8_t *b = buf;
	size_t i;

	len = MIN(len, (sizeof(str) - 1) / 2);
   1ff64:	2940      	cmp	r1, #64	; 0x40
   1ff66:	bf28      	it	cs
   1ff68:	2140      	movcs	r1, #64	; 0x40

	for (i = 0; i < len; i++) {
   1ff6a:	2300      	movs	r3, #0
   1ff6c:	428b      	cmp	r3, r1
   1ff6e:	d217      	bcs.n	1ffa0 <bt_hex_real+0x3c>
{
   1ff70:	b470      	push	{r4, r5, r6}
		str[i * 2]     = hex[b[i] >> 4];
   1ff72:	5cc4      	ldrb	r4, [r0, r3]
   1ff74:	0924      	lsrs	r4, r4, #4
   1ff76:	005a      	lsls	r2, r3, #1
   1ff78:	4e0c      	ldr	r6, [pc, #48]	; (1ffac <bt_hex_real+0x48>)
   1ff7a:	5d34      	ldrb	r4, [r6, r4]
   1ff7c:	4d0c      	ldr	r5, [pc, #48]	; (1ffb0 <bt_hex_real+0x4c>)
   1ff7e:	f805 4013 	strb.w	r4, [r5, r3, lsl #1]
		str[i * 2 + 1] = hex[b[i] & 0xf];
   1ff82:	5cc4      	ldrb	r4, [r0, r3]
   1ff84:	f004 040f 	and.w	r4, r4, #15
   1ff88:	3201      	adds	r2, #1
   1ff8a:	5d34      	ldrb	r4, [r6, r4]
   1ff8c:	54ac      	strb	r4, [r5, r2]
	for (i = 0; i < len; i++) {
   1ff8e:	3301      	adds	r3, #1
   1ff90:	428b      	cmp	r3, r1
   1ff92:	d3ee      	bcc.n	1ff72 <bt_hex_real+0xe>
	}

	str[i * 2] = '\0';
   1ff94:	4806      	ldr	r0, [pc, #24]	; (1ffb0 <bt_hex_real+0x4c>)
   1ff96:	2200      	movs	r2, #0
   1ff98:	f800 2013 	strb.w	r2, [r0, r3, lsl #1]

	return str;
}
   1ff9c:	bc70      	pop	{r4, r5, r6}
   1ff9e:	4770      	bx	lr
	str[i * 2] = '\0';
   1ffa0:	4803      	ldr	r0, [pc, #12]	; (1ffb0 <bt_hex_real+0x4c>)
   1ffa2:	2200      	movs	r2, #0
   1ffa4:	f800 2013 	strb.w	r2, [r0, r3, lsl #1]
}
   1ffa8:	4770      	bx	lr
   1ffaa:	bf00      	nop
   1ffac:	0003ca3c 	.word	0x0003ca3c
   1ffb0:	20002170 	.word	0x20002170

0001ffb4 <bt_addr_le_str_real>:

	return str;
}

const char *bt_addr_le_str_real(const bt_addr_le_t *addr)
{
   1ffb4:	b5f0      	push	{r4, r5, r6, r7, lr}
   1ffb6:	b08b      	sub	sp, #44	; 0x2c
   1ffb8:	4604      	mov	r4, r0
	switch (addr->type) {
   1ffba:	7803      	ldrb	r3, [r0, #0]
   1ffbc:	2b03      	cmp	r3, #3
   1ffbe:	d82c      	bhi.n	2001a <CONFIG_PM_SRAM_SIZE+0x1a>
   1ffc0:	e8df f003 	tbb	[pc, r3]
   1ffc4:	26211c02 	.word	0x26211c02
		strcpy(type, "public");
   1ffc8:	4917      	ldr	r1, [pc, #92]	; (20028 <CONFIG_PM_SRAM_SIZE+0x28>)
   1ffca:	a807      	add	r0, sp, #28
   1ffcc:	f015 fd25 	bl	35a1a <strcpy>
			addr->a.val[5], addr->a.val[4], addr->a.val[3],
   1ffd0:	7963      	ldrb	r3, [r4, #5]
   1ffd2:	7922      	ldrb	r2, [r4, #4]
			addr->a.val[2], addr->a.val[1], addr->a.val[0], type);
   1ffd4:	78e1      	ldrb	r1, [r4, #3]
   1ffd6:	78a0      	ldrb	r0, [r4, #2]
   1ffd8:	7866      	ldrb	r6, [r4, #1]
	return snprintk(str, len, "%02X:%02X:%02X:%02X:%02X:%02X (%s)",
   1ffda:	4d14      	ldr	r5, [pc, #80]	; (2002c <CONFIG_PM_SRAM_SIZE+0x2c>)
   1ffdc:	af07      	add	r7, sp, #28
   1ffde:	9705      	str	r7, [sp, #20]
   1ffe0:	9604      	str	r6, [sp, #16]
   1ffe2:	9003      	str	r0, [sp, #12]
   1ffe4:	9102      	str	r1, [sp, #8]
   1ffe6:	9201      	str	r2, [sp, #4]
   1ffe8:	9300      	str	r3, [sp, #0]
   1ffea:	79a3      	ldrb	r3, [r4, #6]
   1ffec:	4a10      	ldr	r2, [pc, #64]	; (20030 <CONFIG_PM_SRAM_SIZE+0x30>)
   1ffee:	211e      	movs	r1, #30
   1fff0:	4628      	mov	r0, r5
   1fff2:	f013 f9e8 	bl	333c6 <snprintk>
	static char str[BT_ADDR_LE_STR_LEN];

	bt_addr_le_to_str(addr, str, sizeof(str));

	return str;
}
   1fff6:	4628      	mov	r0, r5
   1fff8:	b00b      	add	sp, #44	; 0x2c
   1fffa:	bdf0      	pop	{r4, r5, r6, r7, pc}
		strcpy(type, "random");
   1fffc:	490d      	ldr	r1, [pc, #52]	; (20034 <CONFIG_PM_SRAM_SIZE+0x34>)
   1fffe:	a807      	add	r0, sp, #28
   20000:	f015 fd0b 	bl	35a1a <strcpy>
		break;
   20004:	e7e4      	b.n	1ffd0 <bt_addr_le_str_real+0x1c>
		strcpy(type, "public-id");
   20006:	490c      	ldr	r1, [pc, #48]	; (20038 <CONFIG_PM_SRAM_SIZE+0x38>)
   20008:	a807      	add	r0, sp, #28
   2000a:	f015 fd06 	bl	35a1a <strcpy>
		break;
   2000e:	e7df      	b.n	1ffd0 <bt_addr_le_str_real+0x1c>
		strcpy(type, "random-id");
   20010:	490a      	ldr	r1, [pc, #40]	; (2003c <CONFIG_PM_SRAM_SIZE+0x3c>)
   20012:	a807      	add	r0, sp, #28
   20014:	f015 fd01 	bl	35a1a <strcpy>
		break;
   20018:	e7da      	b.n	1ffd0 <bt_addr_le_str_real+0x1c>
		snprintk(type, sizeof(type), "0x%02x", addr->type);
   2001a:	4a09      	ldr	r2, [pc, #36]	; (20040 <CONFIG_PM_SRAM_SIZE+0x40>)
   2001c:	210a      	movs	r1, #10
   2001e:	a807      	add	r0, sp, #28
   20020:	f013 f9d1 	bl	333c6 <snprintk>
		break;
   20024:	e7d4      	b.n	1ffd0 <bt_addr_le_str_real+0x1c>
   20026:	bf00      	nop
   20028:	0003ba88 	.word	0x0003ba88
   2002c:	200021f4 	.word	0x200021f4
   20030:	0003bab8 	.word	0x0003bab8
   20034:	0003ba90 	.word	0x0003ba90
   20038:	0003ba98 	.word	0x0003ba98
   2003c:	0003baa4 	.word	0x0003baa4
   20040:	0003bab0 	.word	0x0003bab0

00020044 <le_p256_pub_key>:
	net_buf_unref(buf);
	send_cmd_status(BT_HCI_OP_LE_GENERATE_DHKEY_V2, status);
}

static void le_p256_pub_key(struct net_buf *buf)
{
   20044:	b508      	push	{r3, lr}
	uint8_t status;

	net_buf_unref(buf);
   20046:	f009 fb8b 	bl	29760 <net_buf_unref>
 *
 * @return Value of @a target.
 */
static inline atomic_val_t atomic_get(const atomic_t *target)
{
	return __atomic_load_n(target, __ATOMIC_SEQ_CST);
   2004a:	f3bf 8f5b 	dmb	ish
   2004e:	4b12      	ldr	r3, [pc, #72]	; (20098 <le_p256_pub_key+0x54>)
   20050:	681b      	ldr	r3, [r3, #0]
   20052:	f3bf 8f5b 	dmb	ish

	if (atomic_test_bit(flags, PENDING_DHKEY)) {
   20056:	f013 0f02 	tst.w	r3, #2
   2005a:	d005      	beq.n	20068 <le_p256_pub_key+0x24>
		status = BT_HCI_ERR_CMD_DISALLOWED;
   2005c:	210c      	movs	r1, #12
	} else {
		k_sem_give(&cmd_sem);
		status = BT_HCI_ERR_SUCCESS;
	}

	send_cmd_status(BT_HCI_OP_LE_P256_PUBLIC_KEY, status);
   2005e:	f242 0025 	movw	r0, #8229	; 0x2025
   20062:	f015 fded 	bl	35c40 <send_cmd_status>
}
   20066:	bd08      	pop	{r3, pc}
 *
 * @return Previous value of @a target.
 */
static inline atomic_val_t atomic_or(atomic_t *target, atomic_val_t value)
{
	return __atomic_fetch_or(target, value, __ATOMIC_SEQ_CST);
   20068:	4b0b      	ldr	r3, [pc, #44]	; (20098 <le_p256_pub_key+0x54>)
   2006a:	f3bf 8f5b 	dmb	ish
   2006e:	e853 2f00 	ldrex	r2, [r3]
   20072:	f042 0101 	orr.w	r1, r2, #1
   20076:	e843 1000 	strex	r0, r1, [r3]
   2007a:	2800      	cmp	r0, #0
   2007c:	d1f7      	bne.n	2006e <le_p256_pub_key+0x2a>
   2007e:	f3bf 8f5b 	dmb	ish
	} else if (atomic_test_and_set_bit(flags, PENDING_PUB_KEY)) {
   20082:	f012 0f01 	tst.w	r2, #1
   20086:	d001      	beq.n	2008c <le_p256_pub_key+0x48>
		status = BT_HCI_ERR_CMD_DISALLOWED;
   20088:	210c      	movs	r1, #12
   2008a:	e7e8      	b.n	2005e <le_p256_pub_key+0x1a>
	z_impl_k_sem_give(sem);
   2008c:	4803      	ldr	r0, [pc, #12]	; (2009c <le_p256_pub_key+0x58>)
   2008e:	f00f ff49 	bl	2ff24 <z_impl_k_sem_give>
		status = BT_HCI_ERR_SUCCESS;
   20092:	2100      	movs	r1, #0
   20094:	e7e3      	b.n	2005e <le_p256_pub_key+0x1a>
   20096:	bf00      	nop
   20098:	20002274 	.word	0x20002274
   2009c:	20000860 	.word	0x20000860

000200a0 <generate_keys>:
{
   200a0:	b508      	push	{r3, lr}
		rc = uECC_make_key(ecc.public_key_be, ecc.private_key_be,
   200a2:	490b      	ldr	r1, [pc, #44]	; (200d0 <generate_keys+0x30>)
   200a4:	4a0b      	ldr	r2, [pc, #44]	; (200d4 <generate_keys+0x34>)
   200a6:	f101 0020 	add.w	r0, r1, #32
   200aa:	f014 fb46 	bl	3473a <uECC_make_key>
		if (rc == TC_CRYPTO_FAIL) {
   200ae:	b140      	cbz	r0, 200c2 <generate_keys+0x22>
	} while (memcmp(ecc.private_key_be, debug_private_key_be, BT_PRIV_KEY_LEN) == 0);
   200b0:	2220      	movs	r2, #32
   200b2:	4909      	ldr	r1, [pc, #36]	; (200d8 <generate_keys+0x38>)
   200b4:	4806      	ldr	r0, [pc, #24]	; (200d0 <generate_keys+0x30>)
   200b6:	f015 fd0a 	bl	35ace <memcmp>
   200ba:	2800      	cmp	r0, #0
   200bc:	d0f1      	beq.n	200a2 <generate_keys+0x2>
	return 0;
   200be:	2000      	movs	r0, #0
   200c0:	e004      	b.n	200cc <generate_keys+0x2c>
			BT_ERR("Failed to create ECC public/private pair");
   200c2:	2145      	movs	r1, #69	; 0x45
   200c4:	4805      	ldr	r0, [pc, #20]	; (200dc <generate_keys+0x3c>)
   200c6:	f013 fd11 	bl	33aec <z_log_minimal_printk>
			return BT_HCI_ERR_UNSPECIFIED;
   200ca:	201f      	movs	r0, #31
}
   200cc:	bd08      	pop	{r3, pc}
   200ce:	bf00      	nop
   200d0:	20002214 	.word	0x20002214
   200d4:	0003cb24 	.word	0x0003cb24
   200d8:	0003cbd4 	.word	0x0003cbd4
   200dc:	0003ca58 	.word	0x0003ca58

000200e0 <emulate_le_p256_public_key_cmd>:
{
   200e0:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
	status = generate_keys();
   200e2:	f7ff ffdd 	bl	200a0 <generate_keys>
   200e6:	4606      	mov	r6, r0
	buf = bt_buf_get_rx(BT_BUF_EVT, K_FOREVER);
   200e8:	f04f 32ff 	mov.w	r2, #4294967295
   200ec:	f04f 33ff 	mov.w	r3, #4294967295
   200f0:	2001      	movs	r0, #1
   200f2:	f000 fb99 	bl	20828 <bt_buf_get_rx>
   200f6:	4604      	mov	r4, r0
 *
 * @return The original tail of the buffer.
 */
static inline void *net_buf_add(struct net_buf *buf, size_t len)
{
	return net_buf_simple_add(&buf->b, len);
   200f8:	f100 0508 	add.w	r5, r0, #8
   200fc:	2102      	movs	r1, #2
   200fe:	4628      	mov	r0, r5
   20100:	f009 fc46 	bl	29990 <net_buf_simple_add>
	hdr->evt = BT_HCI_EVT_LE_META_EVENT;
   20104:	223e      	movs	r2, #62	; 0x3e
   20106:	7002      	strb	r2, [r0, #0]
	hdr->len = sizeof(*meta) + sizeof(*evt);
   20108:	2242      	movs	r2, #66	; 0x42
   2010a:	7042      	strb	r2, [r0, #1]
   2010c:	2101      	movs	r1, #1
   2010e:	4628      	mov	r0, r5
   20110:	f009 fc3e 	bl	29990 <net_buf_simple_add>
	meta->subevent = BT_HCI_EVT_LE_P256_PUBLIC_KEY_COMPLETE;
   20114:	2308      	movs	r3, #8
   20116:	7003      	strb	r3, [r0, #0]
   20118:	2141      	movs	r1, #65	; 0x41
   2011a:	4628      	mov	r0, r5
   2011c:	f009 fc38 	bl	29990 <net_buf_simple_add>
   20120:	4605      	mov	r5, r0
	evt->status = status;
   20122:	7006      	strb	r6, [r0, #0]
	if (status) {
   20124:	b1ae      	cbz	r6, 20152 <emulate_le_p256_public_key_cmd+0x72>
		(void)memset(evt->key, 0, sizeof(evt->key));
   20126:	2240      	movs	r2, #64	; 0x40
   20128:	2100      	movs	r1, #0
   2012a:	3001      	adds	r0, #1
   2012c:	f015 fd0a 	bl	35b44 <memset>
 *
 * @return Previous value of @a target.
 */
static inline atomic_val_t atomic_and(atomic_t *target, atomic_val_t value)
{
	return __atomic_fetch_and(target, value, __ATOMIC_SEQ_CST);
   20130:	4b2e      	ldr	r3, [pc, #184]	; (201ec <emulate_le_p256_public_key_cmd+0x10c>)
   20132:	f3bf 8f5b 	dmb	ish
   20136:	e853 2f00 	ldrex	r2, [r3]
   2013a:	f022 0201 	bic.w	r2, r2, #1
   2013e:	e843 2100 	strex	r1, r2, [r3]
   20142:	2900      	cmp	r1, #0
   20144:	d1f7      	bne.n	20136 <emulate_le_p256_public_key_cmd+0x56>
   20146:	f3bf 8f5b 	dmb	ish
	bt_recv(buf);
   2014a:	4620      	mov	r0, r4
   2014c:	f001 ff54 	bl	21ff8 <bt_recv>
}
   20150:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
		sys_memcpy_swap(evt->key, ecc.public_key_be, BT_PUB_KEY_COORD_LEN);
   20152:	1c46      	adds	r6, r0, #1
static inline void sys_memcpy_swap(void *dst, const void *src, size_t length)
{
	uint8_t *pdst = (uint8_t *)dst;
	const uint8_t *psrc = (const uint8_t *)src;

	__ASSERT(((psrc < pdst && (psrc + length) <= pdst) ||
   20154:	4b26      	ldr	r3, [pc, #152]	; (201f0 <emulate_le_p256_public_key_cmd+0x110>)
   20156:	429e      	cmp	r6, r3
   20158:	d902      	bls.n	20160 <emulate_le_p256_public_key_cmd+0x80>
   2015a:	3320      	adds	r3, #32
   2015c:	429e      	cmp	r6, r3
   2015e:	d213      	bcs.n	20188 <emulate_le_p256_public_key_cmd+0xa8>
   20160:	4b23      	ldr	r3, [pc, #140]	; (201f0 <emulate_le_p256_public_key_cmd+0x110>)
   20162:	429e      	cmp	r6, r3
   20164:	d204      	bcs.n	20170 <emulate_le_p256_public_key_cmd+0x90>
   20166:	f106 0320 	add.w	r3, r6, #32
   2016a:	4a21      	ldr	r2, [pc, #132]	; (201f0 <emulate_le_p256_public_key_cmd+0x110>)
   2016c:	4293      	cmp	r3, r2
   2016e:	d90b      	bls.n	20188 <emulate_le_p256_public_key_cmd+0xa8>
   20170:	4f20      	ldr	r7, [pc, #128]	; (201f4 <emulate_le_p256_public_key_cmd+0x114>)
   20172:	f240 2217 	movw	r2, #535	; 0x217
   20176:	4639      	mov	r1, r7
   20178:	481f      	ldr	r0, [pc, #124]	; (201f8 <emulate_le_p256_public_key_cmd+0x118>)
   2017a:	f013 f916 	bl	333aa <printk>
   2017e:	f240 2117 	movw	r1, #535	; 0x217
   20182:	4638      	mov	r0, r7
   20184:	f013 fcaa 	bl	33adc <assert_post_action>
		  (psrc > pdst && (pdst + length) <= psrc)),
		 "Source and destination buffers must not overlap");

	psrc += length - 1;
   20188:	4b1c      	ldr	r3, [pc, #112]	; (201fc <emulate_le_p256_public_key_cmd+0x11c>)

	for (; length > 0; length--) {
   2018a:	2120      	movs	r1, #32
   2018c:	b139      	cbz	r1, 2019e <emulate_le_p256_public_key_cmd+0xbe>
		*pdst++ = *psrc--;
   2018e:	4632      	mov	r2, r6
   20190:	f813 0901 	ldrb.w	r0, [r3], #-1
   20194:	f802 0b01 	strb.w	r0, [r2], #1
	for (; length > 0; length--) {
   20198:	3901      	subs	r1, #1
		*pdst++ = *psrc--;
   2019a:	4616      	mov	r6, r2
   2019c:	e7f6      	b.n	2018c <emulate_le_p256_public_key_cmd+0xac>
		sys_memcpy_swap(&evt->key[BT_PUB_KEY_COORD_LEN],
   2019e:	3521      	adds	r5, #33	; 0x21
	__ASSERT(((psrc < pdst && (psrc + length) <= pdst) ||
   201a0:	4b17      	ldr	r3, [pc, #92]	; (20200 <emulate_le_p256_public_key_cmd+0x120>)
   201a2:	429d      	cmp	r5, r3
   201a4:	d902      	bls.n	201ac <emulate_le_p256_public_key_cmd+0xcc>
   201a6:	3320      	adds	r3, #32
   201a8:	429d      	cmp	r5, r3
   201aa:	d213      	bcs.n	201d4 <emulate_le_p256_public_key_cmd+0xf4>
   201ac:	4b14      	ldr	r3, [pc, #80]	; (20200 <emulate_le_p256_public_key_cmd+0x120>)
   201ae:	429d      	cmp	r5, r3
   201b0:	d204      	bcs.n	201bc <emulate_le_p256_public_key_cmd+0xdc>
   201b2:	f105 0320 	add.w	r3, r5, #32
   201b6:	4a12      	ldr	r2, [pc, #72]	; (20200 <emulate_le_p256_public_key_cmd+0x120>)
   201b8:	4293      	cmp	r3, r2
   201ba:	d90b      	bls.n	201d4 <emulate_le_p256_public_key_cmd+0xf4>
   201bc:	4e0d      	ldr	r6, [pc, #52]	; (201f4 <emulate_le_p256_public_key_cmd+0x114>)
   201be:	f240 2217 	movw	r2, #535	; 0x217
   201c2:	4631      	mov	r1, r6
   201c4:	480c      	ldr	r0, [pc, #48]	; (201f8 <emulate_le_p256_public_key_cmd+0x118>)
   201c6:	f013 f8f0 	bl	333aa <printk>
   201ca:	f240 2117 	movw	r1, #535	; 0x217
   201ce:	4630      	mov	r0, r6
   201d0:	f013 fc84 	bl	33adc <assert_post_action>
	psrc += length - 1;
   201d4:	4b0b      	ldr	r3, [pc, #44]	; (20204 <emulate_le_p256_public_key_cmd+0x124>)
	for (; length > 0; length--) {
   201d6:	2120      	movs	r1, #32
   201d8:	2900      	cmp	r1, #0
   201da:	d0a9      	beq.n	20130 <emulate_le_p256_public_key_cmd+0x50>
		*pdst++ = *psrc--;
   201dc:	462a      	mov	r2, r5
   201de:	f813 0901 	ldrb.w	r0, [r3], #-1
   201e2:	f802 0b01 	strb.w	r0, [r2], #1
	for (; length > 0; length--) {
   201e6:	3901      	subs	r1, #1
		*pdst++ = *psrc--;
   201e8:	4615      	mov	r5, r2
   201ea:	e7f5      	b.n	201d8 <emulate_le_p256_public_key_cmd+0xf8>
   201ec:	20002274 	.word	0x20002274
   201f0:	20002234 	.word	0x20002234
   201f4:	0003ca88 	.word	0x0003ca88
   201f8:	0003bdac 	.word	0x0003bdac
   201fc:	20002253 	.word	0x20002253
   20200:	20002254 	.word	0x20002254
   20204:	20002273 	.word	0x20002273

00020208 <emulate_le_generate_dhkey>:
{
   20208:	b570      	push	{r4, r5, r6, lr}
	ret = uECC_valid_public_key(ecc.public_key_be, &curve_secp256r1);
   2020a:	493d      	ldr	r1, [pc, #244]	; (20300 <emulate_le_generate_dhkey+0xf8>)
   2020c:	483d      	ldr	r0, [pc, #244]	; (20304 <emulate_le_generate_dhkey+0xfc>)
   2020e:	f015 f9e2 	bl	355d6 <uECC_valid_public_key>
	if (ret < 0) {
   20212:	1e02      	subs	r2, r0, #0
   20214:	db44      	blt.n	202a0 <emulate_le_generate_dhkey+0x98>
	return __atomic_load_n(target, __ATOMIC_SEQ_CST);
   20216:	f3bf 8f5b 	dmb	ish
   2021a:	4b3b      	ldr	r3, [pc, #236]	; (20308 <emulate_le_generate_dhkey+0x100>)
   2021c:	681b      	ldr	r3, [r3, #0]
   2021e:	f3bf 8f5b 	dmb	ish
		ret = uECC_shared_secret(ecc.public_key_be,
   20222:	f013 0f04 	tst.w	r3, #4
   20226:	d041      	beq.n	202ac <emulate_le_generate_dhkey+0xa4>
   20228:	4938      	ldr	r1, [pc, #224]	; (2030c <emulate_le_generate_dhkey+0x104>)
   2022a:	4836      	ldr	r0, [pc, #216]	; (20304 <emulate_le_generate_dhkey+0xfc>)
   2022c:	4b34      	ldr	r3, [pc, #208]	; (20300 <emulate_le_generate_dhkey+0xf8>)
   2022e:	4602      	mov	r2, r0
   20230:	f014 fad4 	bl	347dc <uECC_shared_secret>
   20234:	4606      	mov	r6, r0
	buf = bt_buf_get_rx(BT_BUF_EVT, K_FOREVER);
   20236:	f04f 32ff 	mov.w	r2, #4294967295
   2023a:	f04f 33ff 	mov.w	r3, #4294967295
   2023e:	2001      	movs	r0, #1
   20240:	f000 faf2 	bl	20828 <bt_buf_get_rx>
   20244:	4605      	mov	r5, r0
   20246:	f100 0408 	add.w	r4, r0, #8
   2024a:	2102      	movs	r1, #2
   2024c:	4620      	mov	r0, r4
   2024e:	f009 fb9f 	bl	29990 <net_buf_simple_add>
	hdr->evt = BT_HCI_EVT_LE_META_EVENT;
   20252:	233e      	movs	r3, #62	; 0x3e
   20254:	7003      	strb	r3, [r0, #0]
	hdr->len = sizeof(*meta) + sizeof(*evt);
   20256:	2322      	movs	r3, #34	; 0x22
   20258:	7043      	strb	r3, [r0, #1]
   2025a:	2101      	movs	r1, #1
   2025c:	4620      	mov	r0, r4
   2025e:	f009 fb97 	bl	29990 <net_buf_simple_add>
	meta->subevent = BT_HCI_EVT_LE_GENERATE_DHKEY_COMPLETE;
   20262:	2309      	movs	r3, #9
   20264:	7003      	strb	r3, [r0, #0]
   20266:	2121      	movs	r1, #33	; 0x21
   20268:	4620      	mov	r0, r4
   2026a:	f009 fb91 	bl	29990 <net_buf_simple_add>
	if (ret == TC_CRYPTO_FAIL) {
   2026e:	b9fe      	cbnz	r6, 202b0 <emulate_le_generate_dhkey+0xa8>
		evt->status = BT_HCI_ERR_UNSPECIFIED;
   20270:	231f      	movs	r3, #31
   20272:	f800 3b01 	strb.w	r3, [r0], #1
		(void)memset(evt->dhkey, 0xff, sizeof(evt->dhkey));
   20276:	2220      	movs	r2, #32
   20278:	21ff      	movs	r1, #255	; 0xff
   2027a:	f015 fc63 	bl	35b44 <memset>
	return __atomic_fetch_and(target, value, __ATOMIC_SEQ_CST);
   2027e:	4b22      	ldr	r3, [pc, #136]	; (20308 <emulate_le_generate_dhkey+0x100>)
   20280:	f3bf 8f5b 	dmb	ish
   20284:	e853 2f00 	ldrex	r2, [r3]
   20288:	f022 0202 	bic.w	r2, r2, #2
   2028c:	e843 2100 	strex	r1, r2, [r3]
   20290:	2900      	cmp	r1, #0
   20292:	d1f7      	bne.n	20284 <emulate_le_generate_dhkey+0x7c>
   20294:	f3bf 8f5b 	dmb	ish
	bt_recv(buf);
   20298:	4628      	mov	r0, r5
   2029a:	f001 fead 	bl	21ff8 <bt_recv>
}
   2029e:	bd70      	pop	{r4, r5, r6, pc}
		BT_ERR("public key is not valid (ret %d)", ret);
   202a0:	2145      	movs	r1, #69	; 0x45
   202a2:	481b      	ldr	r0, [pc, #108]	; (20310 <emulate_le_generate_dhkey+0x108>)
   202a4:	f013 fc22 	bl	33aec <z_log_minimal_printk>
		ret = TC_CRYPTO_FAIL;
   202a8:	2600      	movs	r6, #0
   202aa:	e7c4      	b.n	20236 <emulate_le_generate_dhkey+0x2e>
		ret = uECC_shared_secret(ecc.public_key_be,
   202ac:	4919      	ldr	r1, [pc, #100]	; (20314 <emulate_le_generate_dhkey+0x10c>)
   202ae:	e7bc      	b.n	2022a <emulate_le_generate_dhkey+0x22>
		evt->status = 0U;
   202b0:	4604      	mov	r4, r0
   202b2:	2300      	movs	r3, #0
   202b4:	f804 3b01 	strb.w	r3, [r4], #1
	__ASSERT(((psrc < pdst && (psrc + length) <= pdst) ||
   202b8:	4b12      	ldr	r3, [pc, #72]	; (20304 <emulate_le_generate_dhkey+0xfc>)
   202ba:	429c      	cmp	r4, r3
   202bc:	d902      	bls.n	202c4 <emulate_le_generate_dhkey+0xbc>
   202be:	3320      	adds	r3, #32
   202c0:	429c      	cmp	r4, r3
   202c2:	d213      	bcs.n	202ec <emulate_le_generate_dhkey+0xe4>
   202c4:	4b0f      	ldr	r3, [pc, #60]	; (20304 <emulate_le_generate_dhkey+0xfc>)
   202c6:	429c      	cmp	r4, r3
   202c8:	d204      	bcs.n	202d4 <emulate_le_generate_dhkey+0xcc>
   202ca:	f104 0320 	add.w	r3, r4, #32
   202ce:	4a0d      	ldr	r2, [pc, #52]	; (20304 <emulate_le_generate_dhkey+0xfc>)
   202d0:	4293      	cmp	r3, r2
   202d2:	d90b      	bls.n	202ec <emulate_le_generate_dhkey+0xe4>
   202d4:	4e10      	ldr	r6, [pc, #64]	; (20318 <emulate_le_generate_dhkey+0x110>)
   202d6:	f240 2217 	movw	r2, #535	; 0x217
   202da:	4631      	mov	r1, r6
   202dc:	480f      	ldr	r0, [pc, #60]	; (2031c <emulate_le_generate_dhkey+0x114>)
   202de:	f013 f864 	bl	333aa <printk>
   202e2:	f240 2117 	movw	r1, #535	; 0x217
   202e6:	4630      	mov	r0, r6
   202e8:	f013 fbf8 	bl	33adc <assert_post_action>
	psrc += length - 1;
   202ec:	4b0c      	ldr	r3, [pc, #48]	; (20320 <emulate_le_generate_dhkey+0x118>)
	for (; length > 0; length--) {
   202ee:	2220      	movs	r2, #32
   202f0:	2a00      	cmp	r2, #0
   202f2:	d0c4      	beq.n	2027e <emulate_le_generate_dhkey+0x76>
		*pdst++ = *psrc--;
   202f4:	f813 1901 	ldrb.w	r1, [r3], #-1
   202f8:	f804 1b01 	strb.w	r1, [r4], #1
	for (; length > 0; length--) {
   202fc:	3a01      	subs	r2, #1
   202fe:	e7f7      	b.n	202f0 <emulate_le_generate_dhkey+0xe8>
   20300:	0003cb24 	.word	0x0003cb24
   20304:	20002234 	.word	0x20002234
   20308:	20002274 	.word	0x20002274
   2030c:	0003cbd4 	.word	0x0003cbd4
   20310:	0003cab4 	.word	0x0003cab4
   20314:	20002214 	.word	0x20002214
   20318:	0003ca88 	.word	0x0003ca88
   2031c:	0003bdac 	.word	0x0003bdac
   20320:	20002253 	.word	0x20002253

00020324 <ecc_thread>:
{
   20324:	b510      	push	{r4, lr}
   20326:	e00a      	b.n	2033e <ecc_thread+0x1a>
	return __atomic_load_n(target, __ATOMIC_SEQ_CST);
   20328:	f3bf 8f5b 	dmb	ish
   2032c:	4b13      	ldr	r3, [pc, #76]	; (2037c <ecc_thread+0x58>)
   2032e:	681b      	ldr	r3, [r3, #0]
   20330:	f3bf 8f5b 	dmb	ish
		} else if (atomic_test_bit(flags, PENDING_DHKEY)) {
   20334:	f013 0f02 	tst.w	r3, #2
   20338:	d014      	beq.n	20364 <ecc_thread+0x40>
			emulate_le_generate_dhkey();
   2033a:	f7ff ff65 	bl	20208 <emulate_le_generate_dhkey>
	return z_impl_k_sem_take(sem, timeout);
   2033e:	f04f 32ff 	mov.w	r2, #4294967295
   20342:	f04f 33ff 	mov.w	r3, #4294967295
   20346:	480e      	ldr	r0, [pc, #56]	; (20380 <ecc_thread+0x5c>)
   20348:	f00f fe2c 	bl	2ffa4 <z_impl_k_sem_take>
   2034c:	f3bf 8f5b 	dmb	ish
   20350:	4b0a      	ldr	r3, [pc, #40]	; (2037c <ecc_thread+0x58>)
   20352:	681b      	ldr	r3, [r3, #0]
   20354:	f3bf 8f5b 	dmb	ish
		if (atomic_test_bit(flags, PENDING_PUB_KEY)) {
   20358:	f013 0f01 	tst.w	r3, #1
   2035c:	d0e4      	beq.n	20328 <ecc_thread+0x4>
			emulate_le_p256_public_key_cmd();
   2035e:	f7ff febf 	bl	200e0 <emulate_le_p256_public_key_cmd>
   20362:	e7ec      	b.n	2033e <ecc_thread+0x1a>
			__ASSERT(0, "Unhandled ECC command");
   20364:	4c07      	ldr	r4, [pc, #28]	; (20384 <ecc_thread+0x60>)
   20366:	22dd      	movs	r2, #221	; 0xdd
   20368:	4621      	mov	r1, r4
   2036a:	4807      	ldr	r0, [pc, #28]	; (20388 <ecc_thread+0x64>)
   2036c:	f013 f81d 	bl	333aa <printk>
   20370:	21dd      	movs	r1, #221	; 0xdd
   20372:	4620      	mov	r0, r4
   20374:	f013 fbb2 	bl	33adc <assert_post_action>
	while (true) {
   20378:	e7e1      	b.n	2033e <ecc_thread+0x1a>
   2037a:	bf00      	nop
   2037c:	20002274 	.word	0x20002274
   20380:	20000860 	.word	0x20000860
   20384:	0003cadc 	.word	0x0003cadc
   20388:	0003bdac 	.word	0x0003bdac

0002038c <le_gen_dhkey>:
   2038c:	f3bf 8f5b 	dmb	ish
   20390:	4b48      	ldr	r3, [pc, #288]	; (204b4 <le_gen_dhkey+0x128>)
   20392:	681b      	ldr	r3, [r3, #0]
   20394:	f3bf 8f5b 	dmb	ish
	if (atomic_test_bit(flags, PENDING_PUB_KEY)) {
   20398:	f013 0f01 	tst.w	r3, #1
   2039c:	f040 8083 	bne.w	204a6 <le_gen_dhkey+0x11a>
{
   203a0:	b570      	push	{r4, r5, r6, lr}
   203a2:	4604      	mov	r4, r0
   203a4:	460d      	mov	r5, r1
	if (key_type > BT_HCI_LE_KEY_TYPE_DEBUG) {
   203a6:	2901      	cmp	r1, #1
   203a8:	d87f      	bhi.n	204aa <le_gen_dhkey+0x11e>
	return __atomic_fetch_or(target, value, __ATOMIC_SEQ_CST);
   203aa:	4b42      	ldr	r3, [pc, #264]	; (204b4 <le_gen_dhkey+0x128>)
   203ac:	f3bf 8f5b 	dmb	ish
   203b0:	e853 2f00 	ldrex	r2, [r3]
   203b4:	f042 0102 	orr.w	r1, r2, #2
   203b8:	e843 1000 	strex	r0, r1, [r3]
   203bc:	2800      	cmp	r0, #0
   203be:	d1f7      	bne.n	203b0 <le_gen_dhkey+0x24>
   203c0:	f3bf 8f5b 	dmb	ish
	if (atomic_test_and_set_bit(flags, PENDING_DHKEY)) {
   203c4:	f012 0f02 	tst.w	r2, #2
   203c8:	d171      	bne.n	204ae <le_gen_dhkey+0x122>
	__ASSERT(((psrc < pdst && (psrc + length) <= pdst) ||
   203ca:	4b3b      	ldr	r3, [pc, #236]	; (204b8 <le_gen_dhkey+0x12c>)
   203cc:	429c      	cmp	r4, r3
   203ce:	d204      	bcs.n	203da <le_gen_dhkey+0x4e>
   203d0:	f104 0320 	add.w	r3, r4, #32
   203d4:	4a38      	ldr	r2, [pc, #224]	; (204b8 <le_gen_dhkey+0x12c>)
   203d6:	4293      	cmp	r3, r2
   203d8:	d911      	bls.n	203fe <le_gen_dhkey+0x72>
   203da:	4b37      	ldr	r3, [pc, #220]	; (204b8 <le_gen_dhkey+0x12c>)
   203dc:	429c      	cmp	r4, r3
   203de:	d902      	bls.n	203e6 <le_gen_dhkey+0x5a>
   203e0:	3320      	adds	r3, #32
   203e2:	429c      	cmp	r4, r3
   203e4:	d20b      	bcs.n	203fe <le_gen_dhkey+0x72>
   203e6:	4e35      	ldr	r6, [pc, #212]	; (204bc <le_gen_dhkey+0x130>)
   203e8:	f240 2217 	movw	r2, #535	; 0x217
   203ec:	4631      	mov	r1, r6
   203ee:	4834      	ldr	r0, [pc, #208]	; (204c0 <le_gen_dhkey+0x134>)
   203f0:	f012 ffdb 	bl	333aa <printk>
   203f4:	f240 2117 	movw	r1, #535	; 0x217
   203f8:	4630      	mov	r0, r6
   203fa:	f013 fb6f 	bl	33adc <assert_post_action>
	psrc += length - 1;
   203fe:	f104 021f 	add.w	r2, r4, #31
	uint8_t *pdst = (uint8_t *)dst;
   20402:	4b2d      	ldr	r3, [pc, #180]	; (204b8 <le_gen_dhkey+0x12c>)
	for (; length > 0; length--) {
   20404:	2120      	movs	r1, #32
   20406:	b129      	cbz	r1, 20414 <le_gen_dhkey+0x88>
		*pdst++ = *psrc--;
   20408:	f812 0901 	ldrb.w	r0, [r2], #-1
   2040c:	f803 0b01 	strb.w	r0, [r3], #1
	for (; length > 0; length--) {
   20410:	3901      	subs	r1, #1
   20412:	e7f8      	b.n	20406 <le_gen_dhkey+0x7a>
	sys_memcpy_swap(&ecc.public_key_be[BT_PUB_KEY_COORD_LEN], &key[BT_PUB_KEY_COORD_LEN],
   20414:	3420      	adds	r4, #32
	__ASSERT(((psrc < pdst && (psrc + length) <= pdst) ||
   20416:	4b2b      	ldr	r3, [pc, #172]	; (204c4 <le_gen_dhkey+0x138>)
   20418:	429c      	cmp	r4, r3
   2041a:	d204      	bcs.n	20426 <le_gen_dhkey+0x9a>
   2041c:	f104 0320 	add.w	r3, r4, #32
   20420:	4a28      	ldr	r2, [pc, #160]	; (204c4 <le_gen_dhkey+0x138>)
   20422:	4293      	cmp	r3, r2
   20424:	d911      	bls.n	2044a <le_gen_dhkey+0xbe>
   20426:	4b27      	ldr	r3, [pc, #156]	; (204c4 <le_gen_dhkey+0x138>)
   20428:	429c      	cmp	r4, r3
   2042a:	d902      	bls.n	20432 <le_gen_dhkey+0xa6>
   2042c:	3320      	adds	r3, #32
   2042e:	429c      	cmp	r4, r3
   20430:	d20b      	bcs.n	2044a <le_gen_dhkey+0xbe>
   20432:	4e22      	ldr	r6, [pc, #136]	; (204bc <le_gen_dhkey+0x130>)
   20434:	f240 2217 	movw	r2, #535	; 0x217
   20438:	4631      	mov	r1, r6
   2043a:	4821      	ldr	r0, [pc, #132]	; (204c0 <le_gen_dhkey+0x134>)
   2043c:	f012 ffb5 	bl	333aa <printk>
   20440:	f240 2117 	movw	r1, #535	; 0x217
   20444:	4630      	mov	r0, r6
   20446:	f013 fb49 	bl	33adc <assert_post_action>
	psrc += length - 1;
   2044a:	f104 001f 	add.w	r0, r4, #31
	uint8_t *pdst = (uint8_t *)dst;
   2044e:	4b1d      	ldr	r3, [pc, #116]	; (204c4 <le_gen_dhkey+0x138>)
	for (; length > 0; length--) {
   20450:	2220      	movs	r2, #32
   20452:	e004      	b.n	2045e <le_gen_dhkey+0xd2>
		*pdst++ = *psrc--;
   20454:	f810 1901 	ldrb.w	r1, [r0], #-1
   20458:	f803 1b01 	strb.w	r1, [r3], #1
	for (; length > 0; length--) {
   2045c:	3a01      	subs	r2, #1
   2045e:	2a00      	cmp	r2, #0
   20460:	d1f8      	bne.n	20454 <le_gen_dhkey+0xc8>
 */
static inline void atomic_set_bit_to(atomic_t *target, int bit, bool val)
{
	atomic_val_t mask = ATOMIC_MASK(bit);

	if (val) {
   20462:	2d01      	cmp	r5, #1
   20464:	d111      	bne.n	2048a <le_gen_dhkey+0xfe>
   20466:	4b13      	ldr	r3, [pc, #76]	; (204b4 <le_gen_dhkey+0x128>)
   20468:	f3bf 8f5b 	dmb	ish
   2046c:	e853 2f00 	ldrex	r2, [r3]
   20470:	f042 0204 	orr.w	r2, r2, #4
   20474:	e843 2100 	strex	r1, r2, [r3]
   20478:	2900      	cmp	r1, #0
   2047a:	d1f7      	bne.n	2046c <le_gen_dhkey+0xe0>
   2047c:	f3bf 8f5b 	dmb	ish
	z_impl_k_sem_give(sem);
   20480:	4811      	ldr	r0, [pc, #68]	; (204c8 <le_gen_dhkey+0x13c>)
   20482:	f00f fd4f 	bl	2ff24 <z_impl_k_sem_give>
	return BT_HCI_ERR_SUCCESS;
   20486:	2000      	movs	r0, #0
   20488:	e010      	b.n	204ac <le_gen_dhkey+0x120>
	return __atomic_fetch_and(target, value, __ATOMIC_SEQ_CST);
   2048a:	4b0a      	ldr	r3, [pc, #40]	; (204b4 <le_gen_dhkey+0x128>)
   2048c:	f3bf 8f5b 	dmb	ish
   20490:	e853 2f00 	ldrex	r2, [r3]
   20494:	f022 0204 	bic.w	r2, r2, #4
   20498:	e843 2100 	strex	r1, r2, [r3]
   2049c:	2900      	cmp	r1, #0
   2049e:	d1f7      	bne.n	20490 <le_gen_dhkey+0x104>
   204a0:	f3bf 8f5b 	dmb	ish
   204a4:	e7ec      	b.n	20480 <le_gen_dhkey+0xf4>
		return BT_HCI_ERR_CMD_DISALLOWED;
   204a6:	200c      	movs	r0, #12
}
   204a8:	4770      	bx	lr
		return BT_HCI_ERR_INVALID_PARAM;
   204aa:	2012      	movs	r0, #18
}
   204ac:	bd70      	pop	{r4, r5, r6, pc}
		return BT_HCI_ERR_CMD_DISALLOWED;
   204ae:	200c      	movs	r0, #12
   204b0:	e7fc      	b.n	204ac <le_gen_dhkey+0x120>
   204b2:	bf00      	nop
   204b4:	20002274 	.word	0x20002274
   204b8:	20002234 	.word	0x20002234
   204bc:	0003ca88 	.word	0x0003ca88
   204c0:	0003bdac 	.word	0x0003bdac
   204c4:	20002254 	.word	0x20002254
   204c8:	20000860 	.word	0x20000860

000204cc <bt_hci_ecc_send>:

int bt_hci_ecc_send(struct net_buf *buf)
{
   204cc:	b510      	push	{r4, lr}
   204ce:	4604      	mov	r4, r0
 *
 *  @return The BT_* type to of the buffer
 */
static inline enum bt_buf_type bt_buf_get_type(struct net_buf *buf)
{
	return (enum bt_buf_type)((struct bt_buf_data *)net_buf_user_data(buf))
   204d0:	7d03      	ldrb	r3, [r0, #20]
	if (bt_buf_get_type(buf) == BT_BUF_CMD) {
   204d2:	bb7b      	cbnz	r3, 20534 <bt_hci_ecc_send+0x68>
		struct bt_hci_cmd_hdr *chdr = (void *)buf->data;
   204d4:	6883      	ldr	r3, [r0, #8]

		switch (sys_le16_to_cpu(chdr->opcode)) {
   204d6:	881b      	ldrh	r3, [r3, #0]
   204d8:	f242 0226 	movw	r2, #8230	; 0x2026
   204dc:	4293      	cmp	r3, r2
   204de:	d01e      	beq.n	2051e <bt_hci_ecc_send+0x52>
   204e0:	d810      	bhi.n	20504 <bt_hci_ecc_send+0x38>
   204e2:	f242 0201 	movw	r2, #8193	; 0x2001
   204e6:	4293      	cmp	r3, r2
   204e8:	d022      	beq.n	20530 <bt_hci_ecc_send+0x64>
   204ea:	f242 0225 	movw	r2, #8229	; 0x2025
   204ee:	4293      	cmp	r3, r2
   204f0:	d120      	bne.n	20534 <bt_hci_ecc_send+0x68>
 *
 * @return New beginning of the buffer data.
 */
static inline void *net_buf_pull(struct net_buf *buf, size_t len)
{
	return net_buf_simple_pull(&buf->b, len);
   204f2:	2103      	movs	r1, #3
   204f4:	3008      	adds	r0, #8
   204f6:	f009 f9ed 	bl	298d4 <net_buf_simple_pull>
		case BT_HCI_OP_LE_P256_PUBLIC_KEY:
			net_buf_pull(buf, sizeof(*chdr));
			le_p256_pub_key(buf);
   204fa:	4620      	mov	r0, r4
   204fc:	f7ff fda2 	bl	20044 <le_p256_pub_key>
			return 0;
   20500:	2000      	movs	r0, #0
   20502:	e01d      	b.n	20540 <bt_hci_ecc_send+0x74>
		switch (sys_le16_to_cpu(chdr->opcode)) {
   20504:	f242 025e 	movw	r2, #8286	; 0x205e
   20508:	4293      	cmp	r3, r2
   2050a:	d113      	bne.n	20534 <bt_hci_ecc_send+0x68>
   2050c:	2103      	movs	r1, #3
   2050e:	3008      	adds	r0, #8
   20510:	f009 f9e0 	bl	298d4 <net_buf_simple_pull>
			net_buf_pull(buf, sizeof(*chdr));
			le_gen_dhkey_v1(buf);
			return 0;
		case BT_HCI_OP_LE_GENERATE_DHKEY_V2:
			net_buf_pull(buf, sizeof(*chdr));
			le_gen_dhkey_v2(buf);
   20514:	4620      	mov	r0, r4
   20516:	f015 fbc7 	bl	35ca8 <le_gen_dhkey_v2>
			return 0;
   2051a:	2000      	movs	r0, #0
   2051c:	e010      	b.n	20540 <bt_hci_ecc_send+0x74>
   2051e:	2103      	movs	r1, #3
   20520:	3008      	adds	r0, #8
   20522:	f009 f9d7 	bl	298d4 <net_buf_simple_pull>
			le_gen_dhkey_v1(buf);
   20526:	4620      	mov	r0, r4
   20528:	f015 fbae 	bl	35c88 <le_gen_dhkey_v1>
			return 0;
   2052c:	2000      	movs	r0, #0
   2052e:	e007      	b.n	20540 <bt_hci_ecc_send+0x74>
		case BT_HCI_OP_LE_SET_EVENT_MASK:
			clear_ecc_events(buf);
   20530:	f015 fb7c 	bl	35c2c <clear_ecc_events>
		default:
			break;
		}
	}

	return bt_dev.drv->send(buf);
   20534:	4b03      	ldr	r3, [pc, #12]	; (20544 <bt_hci_ecc_send+0x78>)
   20536:	f8d3 3174 	ldr.w	r3, [r3, #372]	; 0x174
   2053a:	691b      	ldr	r3, [r3, #16]
   2053c:	4620      	mov	r0, r4
   2053e:	4798      	blx	r3
}
   20540:	bd10      	pop	{r4, pc}
   20542:	bf00      	nop
   20544:	200002a8 	.word	0x200002a8

00020548 <bt_hci_ecc_init>:
{
	return !bt_rand(dst, len);
}

void bt_hci_ecc_init(void)
{
   20548:	b510      	push	{r4, lr}
   2054a:	b088      	sub	sp, #32
	return z_impl_k_thread_create(new_thread, stack, stack_size, entry, p1, p2, p3, prio, options, delay);
   2054c:	4c0c      	ldr	r4, [pc, #48]	; (20580 <bt_hci_ecc_init+0x38>)
   2054e:	2200      	movs	r2, #0
   20550:	2300      	movs	r3, #0
   20552:	e9cd 2306 	strd	r2, r3, [sp, #24]
   20556:	2300      	movs	r3, #0
   20558:	9304      	str	r3, [sp, #16]
   2055a:	220a      	movs	r2, #10
   2055c:	9203      	str	r2, [sp, #12]
   2055e:	9302      	str	r3, [sp, #8]
   20560:	9301      	str	r3, [sp, #4]
   20562:	9300      	str	r3, [sp, #0]
   20564:	4b07      	ldr	r3, [pc, #28]	; (20584 <bt_hci_ecc_init+0x3c>)
   20566:	f44f 628f 	mov.w	r2, #1144	; 0x478
   2056a:	4907      	ldr	r1, [pc, #28]	; (20588 <bt_hci_ecc_init+0x40>)
   2056c:	4620      	mov	r0, r4
   2056e:	f00f f8f3 	bl	2f758 <z_impl_k_thread_create>
	return z_impl_k_thread_name_set(thread, str);
   20572:	4906      	ldr	r1, [pc, #24]	; (2058c <bt_hci_ecc_init+0x44>)
   20574:	4620      	mov	r0, r4
   20576:	f00e ffb1 	bl	2f4dc <z_impl_k_thread_name_set>
	k_thread_create(&ecc_thread_data, ecc_thread_stack,
			K_KERNEL_STACK_SIZEOF(ecc_thread_stack), ecc_thread,
			NULL, NULL, NULL, K_PRIO_PREEMPT(10), 0, K_NO_WAIT);
	k_thread_name_set(&ecc_thread_data, "BT ECC");
}
   2057a:	b008      	add	sp, #32
   2057c:	bd10      	pop	{r4, pc}
   2057e:	bf00      	nop
   20580:	20001620 	.word	0x20001620
   20584:	00020325 	.word	0x00020325
   20588:	20003500 	.word	0x20003500
   2058c:	0003cb10 	.word	0x0003cb10

00020590 <save_id>:
}

#define ID_DATA_LEN(array) (bt_dev.id_count * sizeof(array[0]))

static void save_id(struct k_work *work)
{
   20590:	b508      	push	{r3, lr}
	int err;
	BT_INFO("Saving ID");
   20592:	2149      	movs	r1, #73	; 0x49
   20594:	4808      	ldr	r0, [pc, #32]	; (205b8 <save_id+0x28>)
   20596:	f013 faa9 	bl	33aec <z_log_minimal_printk>
	err = settings_save_one("bt/id", &bt_dev.id_addr,
				ID_DATA_LEN(bt_dev.id_addr));
   2059a:	4908      	ldr	r1, [pc, #32]	; (205bc <save_id+0x2c>)
   2059c:	79ca      	ldrb	r2, [r1, #7]
	err = settings_save_one("bt/id", &bt_dev.id_addr,
   2059e:	ebc2 02c2 	rsb	r2, r2, r2, lsl #3
   205a2:	4807      	ldr	r0, [pc, #28]	; (205c0 <save_id+0x30>)
   205a4:	f7fd fdde 	bl	1e164 <settings_save_one>
	if (err) {
   205a8:	b900      	cbnz	r0, 205ac <save_id+0x1c>
	err = settings_save_one("bt/irk", bt_dev.irk, ID_DATA_LEN(bt_dev.irk));
	if (err) {
		BT_ERR("Failed to save IRK (err %d)", err);
	}
#endif
}
   205aa:	bd08      	pop	{r3, pc}
   205ac:	4602      	mov	r2, r0
		BT_ERR("Failed to save ID (err %d)", err);
   205ae:	2145      	movs	r1, #69	; 0x45
   205b0:	4804      	ldr	r0, [pc, #16]	; (205c4 <save_id+0x34>)
   205b2:	f013 fa9b 	bl	33aec <z_log_minimal_printk>
}
   205b6:	e7f8      	b.n	205aa <save_id+0x1a>
   205b8:	0003cbf4 	.word	0x0003cbf4
   205bc:	200002a8 	.word	0x200002a8
   205c0:	0003cc04 	.word	0x0003cc04
   205c4:	0003cc0c 	.word	0x0003cc0c

000205c8 <set>:
{
   205c8:	b5f0      	push	{r4, r5, r6, r7, lr}
   205ca:	b083      	sub	sp, #12
	if (!name) {
   205cc:	b378      	cbz	r0, 2062e <set+0x66>
   205ce:	4616      	mov	r6, r2
   205d0:	461d      	mov	r5, r3
   205d2:	4604      	mov	r4, r0
	len = settings_name_next(name, &next);
   205d4:	a901      	add	r1, sp, #4
   205d6:	f013 ffa6 	bl	34526 <settings_name_next>
   205da:	4602      	mov	r2, r0
	if (!strncmp(name, "id", len)) {
   205dc:	4926      	ldr	r1, [pc, #152]	; (20678 <set+0xb0>)
   205de:	4620      	mov	r0, r4
   205e0:	f015 fa5a 	bl	35a98 <strncmp>
   205e4:	4607      	mov	r7, r0
   205e6:	2800      	cmp	r0, #0
   205e8:	d143      	bne.n	20672 <set+0xaa>
	return __atomic_load_n(target, __ATOMIC_SEQ_CST);
   205ea:	f3bf 8f5b 	dmb	ish
   205ee:	4b23      	ldr	r3, [pc, #140]	; (2067c <set+0xb4>)
   205f0:	6819      	ldr	r1, [r3, #0]
   205f2:	f3bf 8f5b 	dmb	ish
	return (1 & (val >> (bit & (ATOMIC_BITS - 1)))) != 0;
   205f6:	f3c1 0480 	ubfx	r4, r1, #2, #1
		if (atomic_test_bit(bt_dev.flags, BT_DEV_PRESET_ID)) {
   205fa:	f011 0f04 	tst.w	r1, #4
   205fe:	d11d      	bne.n	2063c <set+0x74>
		len = read_cb(cb_arg, &bt_dev.id_addr, sizeof(bt_dev.id_addr));
   20600:	2207      	movs	r2, #7
   20602:	491f      	ldr	r1, [pc, #124]	; (20680 <set+0xb8>)
   20604:	4628      	mov	r0, r5
   20606:	47b0      	blx	r6
		if (len < sizeof(bt_dev.id_addr[0])) {
   20608:	2806      	cmp	r0, #6
   2060a:	d823      	bhi.n	20654 <set+0x8c>
			if (len < 0) {
   2060c:	2800      	cmp	r0, #0
   2060e:	db1b      	blt.n	20648 <set+0x80>
				BT_ERR("Invalid length ID address in storage");
   20610:	2145      	movs	r1, #69	; 0x45
   20612:	481c      	ldr	r0, [pc, #112]	; (20684 <set+0xbc>)
   20614:	f013 fa6a 	bl	33aec <z_log_minimal_printk>
			(void)memset(bt_dev.id_addr, 0,
   20618:	4d19      	ldr	r5, [pc, #100]	; (20680 <set+0xb8>)
   2061a:	2207      	movs	r2, #7
   2061c:	2100      	movs	r1, #0
   2061e:	4628      	mov	r0, r5
   20620:	f015 fa90 	bl	35b44 <memset>
			bt_dev.id_count = 0U;
   20624:	2300      	movs	r3, #0
   20626:	71eb      	strb	r3, [r5, #7]
}
   20628:	4620      	mov	r0, r4
   2062a:	b003      	add	sp, #12
   2062c:	bdf0      	pop	{r4, r5, r6, r7, pc}
		BT_ERR("Insufficient number of arguments");
   2062e:	2145      	movs	r1, #69	; 0x45
   20630:	4815      	ldr	r0, [pc, #84]	; (20688 <set+0xc0>)
   20632:	f013 fa5b 	bl	33aec <z_log_minimal_printk>
		return -ENOENT;
   20636:	f06f 0401 	mvn.w	r4, #1
   2063a:	e7f5      	b.n	20628 <set+0x60>
			BT_WARN("Ignoring identities stored in flash");
   2063c:	2157      	movs	r1, #87	; 0x57
   2063e:	4813      	ldr	r0, [pc, #76]	; (2068c <set+0xc4>)
   20640:	f013 fa54 	bl	33aec <z_log_minimal_printk>
			return 0;
   20644:	463c      	mov	r4, r7
   20646:	e7ef      	b.n	20628 <set+0x60>
				BT_ERR("Failed to read ID address from storage"
   20648:	4602      	mov	r2, r0
   2064a:	2145      	movs	r1, #69	; 0x45
   2064c:	4810      	ldr	r0, [pc, #64]	; (20690 <set+0xc8>)
   2064e:	f013 fa4d 	bl	33aec <z_log_minimal_printk>
   20652:	e7e1      	b.n	20618 <set+0x50>
			bt_dev.id_count = len / sizeof(bt_dev.id_addr[0]);
   20654:	4b0f      	ldr	r3, [pc, #60]	; (20694 <set+0xcc>)
   20656:	fba3 2300 	umull	r2, r3, r3, r0
   2065a:	1ac2      	subs	r2, r0, r3
   2065c:	eb03 0252 	add.w	r2, r3, r2, lsr #1
   20660:	f3c2 0287 	ubfx	r2, r2, #2, #8
   20664:	4b06      	ldr	r3, [pc, #24]	; (20680 <set+0xb8>)
   20666:	71da      	strb	r2, [r3, #7]
			for (i = 0; i < bt_dev.id_count; i++) {
   20668:	4623      	mov	r3, r4
   2066a:	4293      	cmp	r3, r2
   2066c:	dadc      	bge.n	20628 <set+0x60>
   2066e:	3301      	adds	r3, #1
   20670:	e7fb      	b.n	2066a <set+0xa2>
	return -ENOENT;
   20672:	f06f 0401 	mvn.w	r4, #1
   20676:	e7d7      	b.n	20628 <set+0x60>
   20678:	0003cc54 	.word	0x0003cc54
   2067c:	20000374 	.word	0x20000374
   20680:	200002a8 	.word	0x200002a8
   20684:	0003ccbc 	.word	0x0003ccbc
   20688:	0003cc2c 	.word	0x0003cc2c
   2068c:	0003cc58 	.word	0x0003cc58
   20690:	0003cc84 	.word	0x0003cc84
   20694:	24924925 	.word	0x24924925

00020698 <bt_settings_encode_key>:
{
   20698:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   2069c:	b088      	sub	sp, #32
   2069e:	9c0e      	ldr	r4, [sp, #56]	; 0x38
	if (key) {
   206a0:	b1dc      	cbz	r4, 206da <bt_settings_encode_key+0x42>
			 addr->a.val[5], addr->a.val[4], addr->a.val[3],
   206a2:	799d      	ldrb	r5, [r3, #6]
   206a4:	795e      	ldrb	r6, [r3, #5]
   206a6:	791f      	ldrb	r7, [r3, #4]
			 addr->a.val[2], addr->a.val[1], addr->a.val[0],
   206a8:	f893 c003 	ldrb.w	ip, [r3, #3]
   206ac:	f893 e002 	ldrb.w	lr, [r3, #2]
   206b0:	f893 8001 	ldrb.w	r8, [r3, #1]
			 addr->type, key);
   206b4:	781b      	ldrb	r3, [r3, #0]
		snprintk(path, path_size,
   206b6:	9407      	str	r4, [sp, #28]
   206b8:	9306      	str	r3, [sp, #24]
   206ba:	f8cd 8014 	str.w	r8, [sp, #20]
   206be:	f8cd e010 	str.w	lr, [sp, #16]
   206c2:	f8cd c00c 	str.w	ip, [sp, #12]
   206c6:	9702      	str	r7, [sp, #8]
   206c8:	9601      	str	r6, [sp, #4]
   206ca:	9500      	str	r5, [sp, #0]
   206cc:	4613      	mov	r3, r2
   206ce:	4a0e      	ldr	r2, [pc, #56]	; (20708 <bt_settings_encode_key+0x70>)
   206d0:	f012 fe79 	bl	333c6 <snprintk>
}
   206d4:	b008      	add	sp, #32
   206d6:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
			 addr->a.val[5], addr->a.val[4], addr->a.val[3],
   206da:	799c      	ldrb	r4, [r3, #6]
   206dc:	795d      	ldrb	r5, [r3, #5]
   206de:	791e      	ldrb	r6, [r3, #4]
			 addr->a.val[2], addr->a.val[1], addr->a.val[0],
   206e0:	78df      	ldrb	r7, [r3, #3]
   206e2:	f893 c002 	ldrb.w	ip, [r3, #2]
   206e6:	f893 e001 	ldrb.w	lr, [r3, #1]
			 addr->type);
   206ea:	781b      	ldrb	r3, [r3, #0]
		snprintk(path, path_size,
   206ec:	9306      	str	r3, [sp, #24]
   206ee:	f8cd e014 	str.w	lr, [sp, #20]
   206f2:	f8cd c010 	str.w	ip, [sp, #16]
   206f6:	9703      	str	r7, [sp, #12]
   206f8:	9602      	str	r6, [sp, #8]
   206fa:	9501      	str	r5, [sp, #4]
   206fc:	9400      	str	r4, [sp, #0]
   206fe:	4613      	mov	r3, r2
   20700:	4a02      	ldr	r2, [pc, #8]	; (2070c <bt_settings_encode_key+0x74>)
   20702:	f012 fe60 	bl	333c6 <snprintk>
}
   20706:	e7e5      	b.n	206d4 <bt_settings_encode_key+0x3c>
   20708:	0003cce8 	.word	0x0003cce8
   2070c:	0003cd0c 	.word	0x0003cd0c

00020710 <bt_settings_save_id>:

K_WORK_DEFINE(save_id_work, save_id);

void bt_settings_save_id(void)
{
   20710:	b508      	push	{r3, lr}
	k_work_submit(&save_id_work);
   20712:	4802      	ldr	r0, [pc, #8]	; (2071c <bt_settings_save_id+0xc>)
   20714:	f00f ffac 	bl	30670 <k_work_submit>
}
   20718:	bd08      	pop	{r3, pc}
   2071a:	bf00      	nop
   2071c:	2000053c 	.word	0x2000053c

00020720 <commit>:

static int commit(void)
{
   20720:	b510      	push	{r4, lr}
#if defined(CONFIG_BT_DEVICE_NAME_DYNAMIC)
	if (bt_dev.name[0] == '\0') {
		bt_set_name(CONFIG_BT_DEVICE_NAME);
	}
#endif
	if (!bt_dev.id_count) {
   20722:	4b1d      	ldr	r3, [pc, #116]	; (20798 <commit+0x78>)
   20724:	79db      	ldrb	r3, [r3, #7]
   20726:	b30b      	cbz	r3, 2076c <commit+0x4c>
			BT_ERR("Unable to setup an identity address");
			return err;
		}
	}

	if (!bt_dev.id_count) {
   20728:	4b1b      	ldr	r3, [pc, #108]	; (20798 <commit+0x78>)
   2072a:	79db      	ldrb	r3, [r3, #7]
   2072c:	b91b      	cbnz	r3, 20736 <commit+0x16>
		err = bt_setup_random_id_addr();
   2072e:	f002 f883 	bl	22838 <bt_setup_random_id_addr>
		if (err) {
   20732:	4604      	mov	r4, r0
   20734:	bb20      	cbnz	r0, 20780 <commit+0x60>
   20736:	f3bf 8f5b 	dmb	ish
   2073a:	4b18      	ldr	r3, [pc, #96]	; (2079c <commit+0x7c>)
   2073c:	681b      	ldr	r3, [r3, #0]
   2073e:	f3bf 8f5b 	dmb	ish
			BT_ERR("Unable to setup an identity address");
			return err;
		}
	}

	if (!atomic_test_bit(bt_dev.flags, BT_DEV_READY)) {
   20742:	f013 0f02 	tst.w	r3, #2
   20746:	d020      	beq.n	2078a <commit+0x6a>
	return __atomic_fetch_and(target, value, __ATOMIC_SEQ_CST);
   20748:	4b14      	ldr	r3, [pc, #80]	; (2079c <commit+0x7c>)
   2074a:	f3bf 8f5b 	dmb	ish
   2074e:	e853 4f00 	ldrex	r4, [r3]
   20752:	f424 4280 	bic.w	r2, r4, #16384	; 0x4000
   20756:	e843 2100 	strex	r1, r2, [r3]
   2075a:	2900      	cmp	r1, #0
   2075c:	d1f7      	bne.n	2074e <commit+0x2e>
   2075e:	f3bf 8f5b 	dmb	ish
	}

	/* If any part of the Identity Information of the device has been
	 * generated this Identity needs to be saved persistently.
	 */
	if (atomic_test_and_clear_bit(bt_dev.flags, BT_DEV_STORE_ID)) {
   20762:	f414 4480 	ands.w	r4, r4, #16384	; 0x4000
   20766:	d113      	bne.n	20790 <commit+0x70>
		BT_DBG("Storing Identity Information");
		bt_settings_save_id();
	}

	return 0;
}
   20768:	4620      	mov	r0, r4
   2076a:	bd10      	pop	{r4, pc}
		err = bt_setup_public_id_addr();
   2076c:	f002 f80c 	bl	22788 <bt_setup_public_id_addr>
		if (err) {
   20770:	4604      	mov	r4, r0
   20772:	2800      	cmp	r0, #0
   20774:	d0d8      	beq.n	20728 <commit+0x8>
			BT_ERR("Unable to setup an identity address");
   20776:	2145      	movs	r1, #69	; 0x45
   20778:	4809      	ldr	r0, [pc, #36]	; (207a0 <commit+0x80>)
   2077a:	f013 f9b7 	bl	33aec <z_log_minimal_printk>
			return err;
   2077e:	e7f3      	b.n	20768 <commit+0x48>
			BT_ERR("Unable to setup an identity address");
   20780:	2145      	movs	r1, #69	; 0x45
   20782:	4807      	ldr	r0, [pc, #28]	; (207a0 <commit+0x80>)
   20784:	f013 f9b2 	bl	33aec <z_log_minimal_printk>
			return err;
   20788:	e7ee      	b.n	20768 <commit+0x48>
		bt_finalize_init();
   2078a:	f001 fc91 	bl	220b0 <bt_finalize_init>
   2078e:	e7db      	b.n	20748 <commit+0x28>
		bt_settings_save_id();
   20790:	f7ff ffbe 	bl	20710 <bt_settings_save_id>
	return 0;
   20794:	2400      	movs	r4, #0
   20796:	e7e7      	b.n	20768 <commit+0x48>
   20798:	200002a8 	.word	0x200002a8
   2079c:	20000374 	.word	0x20000374
   207a0:	0003cd30 	.word	0x0003cd30

000207a4 <bt_settings_init>:

SETTINGS_STATIC_HANDLER_DEFINE(bt, "bt", NULL, set, commit, NULL);

int bt_settings_init(void)
{
   207a4:	b510      	push	{r4, lr}
	int err;

	BT_DBG("");

	err = settings_subsys_init();
   207a6:	f7fd fe75 	bl	1e494 <settings_subsys_init>
	if (err) {
   207aa:	4604      	mov	r4, r0
   207ac:	b908      	cbnz	r0, 207b2 <bt_settings_init+0xe>
		BT_ERR("settings_subsys_init failed (err %d)", err);
		return err;
	}

	return 0;
}
   207ae:	4620      	mov	r0, r4
   207b0:	bd10      	pop	{r4, pc}
		BT_ERR("settings_subsys_init failed (err %d)", err);
   207b2:	4602      	mov	r2, r0
   207b4:	2145      	movs	r1, #69	; 0x45
   207b6:	4802      	ldr	r0, [pc, #8]	; (207c0 <bt_settings_init+0x1c>)
   207b8:	f013 f998 	bl	33aec <z_log_minimal_printk>
		return err;
   207bc:	e7f7      	b.n	207ae <bt_settings_init+0xa>
   207be:	bf00      	nop
   207c0:	0003cd5c 	.word	0x0003cd5c

000207c4 <uuid_to_uuid128>:
	.val = { BT_UUID_128_ENCODE(
		0x00000000, 0x0000, 0x1000, 0x8000, 0x00805F9B34FB) }
};

static void uuid_to_uuid128(const struct bt_uuid *src, struct bt_uuid_128 *dst)
{
   207c4:	b570      	push	{r4, r5, r6, lr}
   207c6:	4605      	mov	r5, r0
   207c8:	460c      	mov	r4, r1
	switch (src->type) {
   207ca:	7803      	ldrb	r3, [r0, #0]
   207cc:	2b01      	cmp	r3, #1
   207ce:	d010      	beq.n	207f2 <uuid_to_uuid128+0x2e>
   207d0:	2b02      	cmp	r3, #2
   207d2:	d020      	beq.n	20816 <uuid_to_uuid128+0x52>
   207d4:	b103      	cbz	r3, 207d8 <uuid_to_uuid128+0x14>
		return;
	case BT_UUID_TYPE_128:
		memcpy(dst, src, sizeof(*dst));
		return;
	}
}
   207d6:	bd70      	pop	{r4, r5, r6, pc}
		*dst = uuid128_base;
   207d8:	4e12      	ldr	r6, [pc, #72]	; (20824 <uuid_to_uuid128+0x60>)
   207da:	ce0f      	ldmia	r6!, {r0, r1, r2, r3}
   207dc:	6020      	str	r0, [r4, #0]
   207de:	6061      	str	r1, [r4, #4]
   207e0:	60a2      	str	r2, [r4, #8]
   207e2:	60e3      	str	r3, [r4, #12]
   207e4:	7833      	ldrb	r3, [r6, #0]
   207e6:	7423      	strb	r3, [r4, #16]
		sys_put_le16(BT_UUID_16(src)->val,
   207e8:	886b      	ldrh	r3, [r5, #2]
	dst[0] = val;
   207ea:	7363      	strb	r3, [r4, #13]
	dst[1] = val >> 8;
   207ec:	0a1b      	lsrs	r3, r3, #8
   207ee:	73a3      	strb	r3, [r4, #14]
}
   207f0:	e7f1      	b.n	207d6 <uuid_to_uuid128+0x12>
		*dst = uuid128_base;
   207f2:	4e0c      	ldr	r6, [pc, #48]	; (20824 <uuid_to_uuid128+0x60>)
   207f4:	ce0f      	ldmia	r6!, {r0, r1, r2, r3}
   207f6:	6020      	str	r0, [r4, #0]
   207f8:	6061      	str	r1, [r4, #4]
   207fa:	60a2      	str	r2, [r4, #8]
   207fc:	60e3      	str	r3, [r4, #12]
   207fe:	7833      	ldrb	r3, [r6, #0]
   20800:	7423      	strb	r3, [r4, #16]
		sys_put_le32(BT_UUID_32(src)->val,
   20802:	686b      	ldr	r3, [r5, #4]
	dst[0] = val;
   20804:	7363      	strb	r3, [r4, #13]
	dst[1] = val >> 8;
   20806:	f3c3 2207 	ubfx	r2, r3, #8, #8
   2080a:	73a2      	strb	r2, [r4, #14]
	sys_put_le16(val >> 16, &dst[2]);
   2080c:	0c1a      	lsrs	r2, r3, #16
	dst[0] = val;
   2080e:	73e2      	strb	r2, [r4, #15]
	dst[1] = val >> 8;
   20810:	0e1b      	lsrs	r3, r3, #24
   20812:	7423      	strb	r3, [r4, #16]
}
   20814:	e7df      	b.n	207d6 <uuid_to_uuid128+0x12>
		memcpy(dst, src, sizeof(*dst));
   20816:	2211      	movs	r2, #17
   20818:	4601      	mov	r1, r0
   2081a:	4620      	mov	r0, r4
   2081c:	f015 f96e 	bl	35afc <memcpy>
		return;
   20820:	e7d9      	b.n	207d6 <uuid_to_uuid128+0x12>
   20822:	bf00      	nop
   20824:	0003cd98 	.word	0x0003cd98

00020828 <bt_buf_get_rx>:
			  BT_BUF_RX_SIZE,
			  NULL);
#endif /* CONFIG_BT_HCI_ACL_FLOW_CONTROL */

struct net_buf *bt_buf_get_rx(enum bt_buf_type type, k_timeout_t timeout)
{
   20828:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
   2082a:	4604      	mov	r4, r0
   2082c:	4616      	mov	r6, r2
   2082e:	461d      	mov	r5, r3
	struct net_buf *buf;

	__ASSERT(type == BT_BUF_EVT || type == BT_BUF_ACL_IN ||
   20830:	2801      	cmp	r0, #1
   20832:	d003      	beq.n	2083c <bt_buf_get_rx+0x14>
   20834:	2803      	cmp	r0, #3
   20836:	d001      	beq.n	2083c <bt_buf_get_rx+0x14>
   20838:	2805      	cmp	r0, #5
   2083a:	d10d      	bne.n	20858 <bt_buf_get_rx+0x30>
	return net_buf_alloc_fixed(pool, timeout);
   2083c:	4632      	mov	r2, r6
   2083e:	462b      	mov	r3, r5
   20840:	480b      	ldr	r0, [pc, #44]	; (20870 <bt_buf_get_rx+0x48>)
   20842:	f018 fc63 	bl	3910c <net_buf_alloc_fixed>
	}
#else
	buf = net_buf_alloc(&hci_rx_pool, timeout);
#endif

	if (buf) {
   20846:	4605      	mov	r5, r0
   20848:	b120      	cbz	r0, 20854 <bt_buf_get_rx+0x2c>
	net_buf_simple_reserve(&buf->b, reserve);
   2084a:	2100      	movs	r1, #0
   2084c:	3008      	adds	r0, #8
   2084e:	f008 ff2d 	bl	296ac <net_buf_simple_reserve>
	((struct bt_buf_data *)net_buf_user_data(buf))->type = type;
   20852:	752c      	strb	r4, [r5, #20]
		net_buf_reserve(buf, BT_BUF_RESERVE);
		bt_buf_set_type(buf, type);
	}

	return buf;
}
   20854:	4628      	mov	r0, r5
   20856:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
	__ASSERT(type == BT_BUF_EVT || type == BT_BUF_ACL_IN ||
   20858:	4f06      	ldr	r7, [pc, #24]	; (20874 <bt_buf_get_rx+0x4c>)
   2085a:	2242      	movs	r2, #66	; 0x42
   2085c:	4639      	mov	r1, r7
   2085e:	4806      	ldr	r0, [pc, #24]	; (20878 <bt_buf_get_rx+0x50>)
   20860:	f012 fda3 	bl	333aa <printk>
   20864:	2142      	movs	r1, #66	; 0x42
   20866:	4638      	mov	r0, r7
   20868:	f013 f938 	bl	33adc <assert_post_action>
   2086c:	e7e6      	b.n	2083c <bt_buf_get_rx+0x14>
   2086e:	bf00      	nop
   20870:	2000098c 	.word	0x2000098c
   20874:	0003cdac 	.word	0x0003cdac
   20878:	0003bdac 	.word	0x0003bdac

0002087c <bt_buf_get_cmd_complete>:

struct net_buf *bt_buf_get_cmd_complete(k_timeout_t timeout)
{
   2087c:	b510      	push	{r4, lr}
   2087e:	4602      	mov	r2, r0
	struct net_buf *buf;

	if (bt_dev.sent_cmd) {
   20880:	4b0a      	ldr	r3, [pc, #40]	; (208ac <bt_buf_get_cmd_complete+0x30>)
   20882:	f8d3 0138 	ldr.w	r0, [r3, #312]	; 0x138
   20886:	b158      	cbz	r0, 208a0 <bt_buf_get_cmd_complete+0x24>
		buf = net_buf_ref(bt_dev.sent_cmd);
   20888:	f008 ffa2 	bl	297d0 <net_buf_ref>
   2088c:	4604      	mov	r4, r0
   2088e:	2301      	movs	r3, #1
   20890:	7503      	strb	r3, [r0, #20]

		bt_buf_set_type(buf, BT_BUF_EVT);
		buf->len = 0U;
   20892:	2100      	movs	r1, #0
   20894:	8181      	strh	r1, [r0, #12]
   20896:	3008      	adds	r0, #8
   20898:	f008 ff08 	bl	296ac <net_buf_simple_reserve>

		return buf;
	}

	return bt_buf_get_rx(BT_BUF_EVT, timeout);
}
   2089c:	4620      	mov	r0, r4
   2089e:	bd10      	pop	{r4, pc}
	return bt_buf_get_rx(BT_BUF_EVT, timeout);
   208a0:	460b      	mov	r3, r1
   208a2:	2001      	movs	r0, #1
   208a4:	f7ff ffc0 	bl	20828 <bt_buf_get_rx>
   208a8:	4604      	mov	r4, r0
   208aa:	e7f7      	b.n	2089c <bt_buf_get_cmd_complete+0x20>
   208ac:	200002a8 	.word	0x200002a8

000208b0 <bt_buf_get_evt>:

struct net_buf *bt_buf_get_evt(uint8_t evt, bool discardable,
			       k_timeout_t timeout)
{
   208b0:	b510      	push	{r4, lr}
	switch (evt) {
   208b2:	280f      	cmp	r0, #15
   208b4:	d90d      	bls.n	208d2 <bt_buf_get_evt+0x22>
   208b6:	2813      	cmp	r0, #19
   208b8:	d10d      	bne.n	208d6 <bt_buf_get_evt+0x26>
	return net_buf_alloc_fixed(pool, timeout);
   208ba:	4814      	ldr	r0, [pc, #80]	; (2090c <bt_buf_get_evt+0x5c>)
   208bc:	f018 fc26 	bl	3910c <net_buf_alloc_fixed>
	case BT_HCI_EVT_NUM_COMPLETED_PACKETS:
		{
			struct net_buf *buf;

			buf = net_buf_alloc(&num_complete_pool, timeout);
			if (buf) {
   208c0:	4604      	mov	r4, r0
   208c2:	b198      	cbz	r0, 208ec <bt_buf_get_evt+0x3c>
	net_buf_simple_reserve(&buf->b, reserve);
   208c4:	2100      	movs	r1, #0
   208c6:	3008      	adds	r0, #8
   208c8:	f008 fef0 	bl	296ac <net_buf_simple_reserve>
   208cc:	2301      	movs	r3, #1
   208ce:	7523      	strb	r3, [r4, #20]
}
   208d0:	e00c      	b.n	208ec <bt_buf_get_evt+0x3c>
	switch (evt) {
   208d2:	280e      	cmp	r0, #14
   208d4:	d205      	bcs.n	208e2 <bt_buf_get_evt+0x32>
	case BT_HCI_EVT_CMD_COMPLETE:
	case BT_HCI_EVT_CMD_STATUS:
		return bt_buf_get_cmd_complete(timeout);
	default:
#if defined(CONFIG_BT_BUF_EVT_DISCARDABLE_COUNT)
		if (discardable) {
   208d6:	b959      	cbnz	r1, 208f0 <bt_buf_get_evt+0x40>

			return buf;
		}
#endif /* CONFIG_BT_BUF_EVT_DISCARDABLE_COUNT */

		return bt_buf_get_rx(BT_BUF_EVT, timeout);
   208d8:	2001      	movs	r0, #1
   208da:	f7ff ffa5 	bl	20828 <bt_buf_get_rx>
   208de:	4604      	mov	r4, r0
   208e0:	e004      	b.n	208ec <bt_buf_get_evt+0x3c>
		return bt_buf_get_cmd_complete(timeout);
   208e2:	4610      	mov	r0, r2
   208e4:	4619      	mov	r1, r3
   208e6:	f7ff ffc9 	bl	2087c <bt_buf_get_cmd_complete>
   208ea:	4604      	mov	r4, r0
	}
}
   208ec:	4620      	mov	r0, r4
   208ee:	bd10      	pop	{r4, pc}
	return net_buf_alloc_fixed(pool, timeout);
   208f0:	4807      	ldr	r0, [pc, #28]	; (20910 <bt_buf_get_evt+0x60>)
   208f2:	f018 fc0b 	bl	3910c <net_buf_alloc_fixed>
			if (buf) {
   208f6:	4604      	mov	r4, r0
   208f8:	2800      	cmp	r0, #0
   208fa:	d0f7      	beq.n	208ec <bt_buf_get_evt+0x3c>
	net_buf_simple_reserve(&buf->b, reserve);
   208fc:	2100      	movs	r1, #0
   208fe:	3008      	adds	r0, #8
   20900:	f008 fed4 	bl	296ac <net_buf_simple_reserve>
	((struct bt_buf_data *)net_buf_user_data(buf))->type = type;
   20904:	2301      	movs	r3, #1
   20906:	7523      	strb	r3, [r4, #20]
			return buf;
   20908:	e7f0      	b.n	208ec <bt_buf_get_evt+0x3c>
   2090a:	bf00      	nop
   2090c:	200009b8 	.word	0x200009b8
   20910:	20000908 	.word	0x20000908

00020914 <conn_handle_disconnected>:
}

static uint16_t disconnected_handles[CONFIG_BT_MAX_CONN];
static void conn_handle_disconnected(uint16_t handle)
{
	for (int i = 0; i < ARRAY_SIZE(disconnected_handles); i++) {
   20914:	2300      	movs	r3, #0
   20916:	2b00      	cmp	r3, #0
   20918:	dd00      	ble.n	2091c <conn_handle_disconnected+0x8>
			 * handle 0 can be used as a valid non-zero handle.
			 */
			disconnected_handles[i] = ~BT_ACL_HANDLE_MASK | handle;
		}
	}
}
   2091a:	4770      	bx	lr
		if (!disconnected_handles[i]) {
   2091c:	4a05      	ldr	r2, [pc, #20]	; (20934 <conn_handle_disconnected+0x20>)
   2091e:	f832 2013 	ldrh.w	r2, [r2, r3, lsl #1]
   20922:	b922      	cbnz	r2, 2092e <conn_handle_disconnected+0x1a>
			disconnected_handles[i] = ~BT_ACL_HANDLE_MASK | handle;
   20924:	f440 4270 	orr.w	r2, r0, #61440	; 0xf000
   20928:	4902      	ldr	r1, [pc, #8]	; (20934 <conn_handle_disconnected+0x20>)
   2092a:	f821 2013 	strh.w	r2, [r1, r3, lsl #1]
	for (int i = 0; i < ARRAY_SIZE(disconnected_handles); i++) {
   2092e:	3301      	adds	r3, #1
   20930:	e7f1      	b.n	20916 <conn_handle_disconnected+0x2>
   20932:	bf00      	nop
   20934:	20002290 	.word	0x20002290

00020938 <conn_handle_is_disconnected>:

static bool conn_handle_is_disconnected(uint16_t handle)
{
	handle |= ~BT_ACL_HANDLE_MASK;
   20938:	f440 4070 	orr.w	r0, r0, #61440	; 0xf000

	for (int i = 0; i < ARRAY_SIZE(disconnected_handles); i++) {
   2093c:	2300      	movs	r3, #0
   2093e:	2b00      	cmp	r3, #0
   20940:	dd01      	ble.n	20946 <conn_handle_is_disconnected+0xe>
			disconnected_handles[i] = 0;
			return true;
		}
	}

	return false;
   20942:	2000      	movs	r0, #0
}
   20944:	4770      	bx	lr
		if (disconnected_handles[i] == handle) {
   20946:	4a06      	ldr	r2, [pc, #24]	; (20960 <conn_handle_is_disconnected+0x28>)
   20948:	f832 2013 	ldrh.w	r2, [r2, r3, lsl #1]
   2094c:	4282      	cmp	r2, r0
   2094e:	d001      	beq.n	20954 <conn_handle_is_disconnected+0x1c>
	for (int i = 0; i < ARRAY_SIZE(disconnected_handles); i++) {
   20950:	3301      	adds	r3, #1
   20952:	e7f4      	b.n	2093e <conn_handle_is_disconnected+0x6>
			disconnected_handles[i] = 0;
   20954:	4a02      	ldr	r2, [pc, #8]	; (20960 <conn_handle_is_disconnected+0x28>)
   20956:	2100      	movs	r1, #0
   20958:	f822 1013 	strh.w	r1, [r2, r3, lsl #1]
			return true;
   2095c:	2001      	movs	r0, #1
   2095e:	4770      	bx	lr
   20960:	20002290 	.word	0x20002290

00020964 <read_local_ver_complete>:
}


static void read_local_ver_complete(struct net_buf *buf)
{
	struct bt_hci_rp_read_local_version_info *rp = (void *)buf->data;
   20964:	6882      	ldr	r2, [r0, #8]

	BT_DBG("status 0x%02x", rp->status);

	bt_dev.hci_version = rp->hci_version;
   20966:	7851      	ldrb	r1, [r2, #1]
   20968:	4b08      	ldr	r3, [pc, #32]	; (2098c <read_local_ver_complete+0x28>)
   2096a:	f883 1068 	strb.w	r1, [r3, #104]	; 0x68
	bt_dev.hci_revision = sys_le16_to_cpu(rp->hci_revision);
   2096e:	8851      	ldrh	r1, [r2, #2]
   20970:	f8a3 106a 	strh.w	r1, [r3, #106]	; 0x6a
	bt_dev.lmp_version = rp->lmp_version;
   20974:	7911      	ldrb	r1, [r2, #4]
   20976:	f883 1069 	strb.w	r1, [r3, #105]	; 0x69
	bt_dev.lmp_subversion = sys_le16_to_cpu(rp->lmp_subversion);
   2097a:	f8b2 1007 	ldrh.w	r1, [r2, #7]
   2097e:	f8a3 106c 	strh.w	r1, [r3, #108]	; 0x6c
	bt_dev.manufacturer = sys_le16_to_cpu(rp->manufacturer);
   20982:	f8b2 2005 	ldrh.w	r2, [r2, #5]
   20986:	f8a3 206e 	strh.w	r2, [r3, #110]	; 0x6e
}
   2098a:	4770      	bx	lr
   2098c:	200002a8 	.word	0x200002a8

00020990 <le_read_supp_states_complete>:
	memcpy(bt_dev.features[0], rp->features, sizeof(bt_dev.features[0]));
}

static void le_read_supp_states_complete(struct net_buf *buf)
{
	struct bt_hci_rp_le_read_supp_states *rp = (void *)buf->data;
   20990:	6883      	ldr	r3, [r0, #8]
	return ((uint16_t)src[1] << 8) | src[0];
   20992:	7a19      	ldrb	r1, [r3, #8]
   20994:	79da      	ldrb	r2, [r3, #7]
   20996:	ea42 2101 	orr.w	r1, r2, r1, lsl #8
   2099a:	7998      	ldrb	r0, [r3, #6]
   2099c:	795a      	ldrb	r2, [r3, #5]
   2099e:	ea42 2200 	orr.w	r2, r2, r0, lsl #8
	return ((uint32_t)sys_get_le16(&src[2]) << 16) | sys_get_le16(&src[0]);
   209a2:	ea42 4201 	orr.w	r2, r2, r1, lsl #16
	return ((uint16_t)src[1] << 8) | src[0];
   209a6:	7918      	ldrb	r0, [r3, #4]
   209a8:	78d9      	ldrb	r1, [r3, #3]
   209aa:	ea41 2100 	orr.w	r1, r1, r0, lsl #8
   209ae:	7898      	ldrb	r0, [r3, #2]
   209b0:	785b      	ldrb	r3, [r3, #1]
   209b2:	ea43 2300 	orr.w	r3, r3, r0, lsl #8
	return ((uint32_t)sys_get_le16(&src[2]) << 16) | sys_get_le16(&src[0]);
   209b6:	ea43 4301 	orr.w	r3, r3, r1, lsl #16

	BT_DBG("status 0x%02x", rp->status);

	bt_dev.le.states = sys_get_le64(rp->le_states);
   209ba:	4903      	ldr	r1, [pc, #12]	; (209c8 <le_read_supp_states_complete+0x38>)
   209bc:	f8c1 30d8 	str.w	r3, [r1, #216]	; 0xd8
   209c0:	f8c1 20dc 	str.w	r2, [r1, #220]	; 0xdc
}
   209c4:	4770      	bx	lr
   209c6:	bf00      	nop
   209c8:	200002a8 	.word	0x200002a8

000209cc <le_read_resolving_list_size_complete>:

#if defined(CONFIG_BT_SMP)
static void le_read_resolving_list_size_complete(struct net_buf *buf)
{
	struct bt_hci_rp_le_read_rl_size *rp = (void *)buf->data;
   209cc:	6883      	ldr	r3, [r0, #8]

	BT_DBG("Resolving List size %u", rp->rl_size);

	bt_dev.le.rl_size = rp->rl_size;
   209ce:	785a      	ldrb	r2, [r3, #1]
   209d0:	4b01      	ldr	r3, [pc, #4]	; (209d8 <le_read_resolving_list_size_complete+0xc>)
   209d2:	f883 2118 	strb.w	r2, [r3, #280]	; 0x118
}
   209d6:	4770      	bx	lr
   209d8:	200002a8 	.word	0x200002a8

000209dc <hci_data_buf_overflow>:
{
   209dc:	b508      	push	{r3, lr}
	struct bt_hci_evt_data_buf_overflow *evt = (void *)buf->data;
   209de:	6883      	ldr	r3, [r0, #8]
	BT_WARN("Data buffer overflow (link type 0x%02x)", evt->link_type);
   209e0:	781a      	ldrb	r2, [r3, #0]
   209e2:	2157      	movs	r1, #87	; 0x57
   209e4:	4801      	ldr	r0, [pc, #4]	; (209ec <hci_data_buf_overflow+0x10>)
   209e6:	f013 f881 	bl	33aec <z_log_minimal_printk>
}
   209ea:	bd08      	pop	{r3, pc}
   209ec:	0003ce14 	.word	0x0003ce14

000209f0 <hci_reset_complete>:
	uint8_t status = buf->data[0];
   209f0:	6883      	ldr	r3, [r0, #8]
   209f2:	781b      	ldrb	r3, [r3, #0]
	if (status) {
   209f4:	b993      	cbnz	r3, 20a1c <hci_reset_complete+0x2c>
	return __atomic_load_n(target, __ATOMIC_SEQ_CST);
   209f6:	f3bf 8f5b 	dmb	ish
   209fa:	4b09      	ldr	r3, [pc, #36]	; (20a20 <hci_reset_complete+0x30>)
   209fc:	f853 2fcc 	ldr.w	r2, [r3, #204]!
   20a00:	f3bf 8f5b 	dmb	ish
	flags = (atomic_get(bt_dev.flags) & BT_DEV_PERSISTENT_FLAGS);
   20a04:	f002 0205 	and.w	r2, r2, #5
	return __atomic_exchange_n(target, value, __ATOMIC_SEQ_CST);
   20a08:	f3bf 8f5b 	dmb	ish
   20a0c:	e853 1f00 	ldrex	r1, [r3]
   20a10:	e843 2000 	strex	r0, r2, [r3]
   20a14:	2800      	cmp	r0, #0
   20a16:	d1f9      	bne.n	20a0c <hci_reset_complete+0x1c>
   20a18:	f3bf 8f5b 	dmb	ish
}
   20a1c:	4770      	bx	lr
   20a1e:	bf00      	nop
   20a20:	200002a8 	.word	0x200002a8

00020a24 <read_local_features_complete>:
{
   20a24:	b508      	push	{r3, lr}
	struct bt_hci_rp_read_local_features *rp = (void *)buf->data;
   20a26:	6881      	ldr	r1, [r0, #8]
	memcpy(bt_dev.features[0], rp->features, sizeof(bt_dev.features[0]));
   20a28:	2208      	movs	r2, #8
   20a2a:	3101      	adds	r1, #1
   20a2c:	4801      	ldr	r0, [pc, #4]	; (20a34 <read_local_features_complete+0x10>)
   20a2e:	f015 f865 	bl	35afc <memcpy>
}
   20a32:	bd08      	pop	{r3, pc}
   20a34:	20000318 	.word	0x20000318

00020a38 <read_le_features_complete>:
{
   20a38:	b508      	push	{r3, lr}
	struct bt_hci_rp_le_read_local_features *rp = (void *)buf->data;
   20a3a:	6881      	ldr	r1, [r0, #8]
	memcpy(bt_dev.le.features, rp->features, sizeof(bt_dev.le.features));
   20a3c:	2208      	movs	r2, #8
   20a3e:	3101      	adds	r1, #1
   20a40:	4801      	ldr	r0, [pc, #4]	; (20a48 <read_le_features_complete+0x10>)
   20a42:	f015 f85b 	bl	35afc <memcpy>
}
   20a46:	bd08      	pop	{r3, pc}
   20a48:	20000378 	.word	0x20000378

00020a4c <read_supported_commands_complete>:
{
   20a4c:	b510      	push	{r4, lr}
	struct bt_hci_rp_read_supported_commands *rp = (void *)buf->data;
   20a4e:	6881      	ldr	r1, [r0, #8]
	memcpy(bt_dev.supported_commands, rp->commands,
   20a50:	4c04      	ldr	r4, [pc, #16]	; (20a64 <read_supported_commands_complete+0x18>)
   20a52:	2240      	movs	r2, #64	; 0x40
   20a54:	3101      	adds	r1, #1
   20a56:	4620      	mov	r0, r4
   20a58:	f015 f850 	bl	35afc <memcpy>
		bt_hci_ecc_supported_commands(bt_dev.supported_commands);
   20a5c:	4620      	mov	r0, r4
   20a5e:	f015 f934 	bl	35cca <bt_hci_ecc_supported_commands>
}
   20a62:	bd10      	pop	{r4, pc}
   20a64:	20000320 	.word	0x20000320

00020a68 <le_read_buffer_size_complete>:
{
   20a68:	b508      	push	{r3, lr}
	struct bt_hci_rp_le_read_buffer_size *rp = (void *)buf->data;
   20a6a:	6882      	ldr	r2, [r0, #8]
	bt_dev.le.acl_mtu = sys_le16_to_cpu(rp->le_max_len);
   20a6c:	f8b2 3001 	ldrh.w	r3, [r2, #1]
   20a70:	b299      	uxth	r1, r3
   20a72:	4806      	ldr	r0, [pc, #24]	; (20a8c <le_read_buffer_size_complete+0x24>)
   20a74:	f8a0 30fc 	strh.w	r3, [r0, #252]	; 0xfc
	if (!bt_dev.le.acl_mtu) {
   20a78:	b901      	cbnz	r1, 20a7c <le_read_buffer_size_complete+0x14>
}
   20a7a:	bd08      	pop	{r3, pc}
	k_sem_init(&bt_dev.le.acl_pkts, rp->le_max_num, rp->le_max_num);
   20a7c:	78d1      	ldrb	r1, [r2, #3]
	return z_impl_k_sem_init(sem, initial_count, limit);
   20a7e:	460a      	mov	r2, r1
   20a80:	f500 7080 	add.w	r0, r0, #256	; 0x100
   20a84:	f01a fbca 	bl	3b21c <z_impl_k_sem_init>
   20a88:	e7f7      	b.n	20a7a <le_read_buffer_size_complete+0x12>
   20a8a:	bf00      	nop
   20a8c:	200002a8 	.word	0x200002a8

00020a90 <read_buffer_size_complete>:
{
   20a90:	b508      	push	{r3, lr}
	struct bt_hci_rp_read_buffer_size *rp = (void *)buf->data;
   20a92:	6882      	ldr	r2, [r0, #8]
	if (bt_dev.le.acl_mtu) {
   20a94:	4b08      	ldr	r3, [pc, #32]	; (20ab8 <read_buffer_size_complete+0x28>)
   20a96:	f8b3 30fc 	ldrh.w	r3, [r3, #252]	; 0xfc
   20a9a:	b103      	cbz	r3, 20a9e <read_buffer_size_complete+0xe>
}
   20a9c:	bd08      	pop	{r3, pc}
	bt_dev.le.acl_mtu = sys_le16_to_cpu(rp->acl_max_len);
   20a9e:	f8b2 3001 	ldrh.w	r3, [r2, #1]
   20aa2:	4805      	ldr	r0, [pc, #20]	; (20ab8 <read_buffer_size_complete+0x28>)
   20aa4:	f8a0 30fc 	strh.w	r3, [r0, #252]	; 0xfc
	pkts = sys_le16_to_cpu(rp->acl_max_num);
   20aa8:	8891      	ldrh	r1, [r2, #4]
   20aaa:	460a      	mov	r2, r1
   20aac:	f500 7080 	add.w	r0, r0, #256	; 0x100
   20ab0:	f01a fbb4 	bl	3b21c <z_impl_k_sem_init>
   20ab4:	e7f2      	b.n	20a9c <read_buffer_size_complete+0xc>
   20ab6:	bf00      	nop
   20ab8:	200002a8 	.word	0x200002a8

00020abc <find_pending_connect>:
	if (IS_ENABLED(CONFIG_BT_PERIPHERAL) && role == BT_HCI_ROLE_PERIPHERAL) {
   20abc:	2801      	cmp	r0, #1
   20abe:	d001      	beq.n	20ac4 <find_pending_connect+0x8>
	return NULL;
   20ac0:	2000      	movs	r0, #0
}
   20ac2:	4770      	bx	lr
{
   20ac4:	b500      	push	{lr}
   20ac6:	b083      	sub	sp, #12
		conn = bt_conn_lookup_state_le(bt_dev.adv_conn_id, peer_addr,
   20ac8:	2205      	movs	r2, #5
   20aca:	4b0d      	ldr	r3, [pc, #52]	; (20b00 <find_pending_connect+0x44>)
   20acc:	f893 0067 	ldrb.w	r0, [r3, #103]	; 0x67
   20ad0:	f003 f980 	bl	23dd4 <bt_conn_lookup_state_le>
		if (!conn) {
   20ad4:	b110      	cbz	r0, 20adc <find_pending_connect+0x20>
}
   20ad6:	b003      	add	sp, #12
   20ad8:	f85d fb04 	ldr.w	pc, [sp], #4
						       BT_ADDR_LE_NONE,
   20adc:	4b09      	ldr	r3, [pc, #36]	; (20b04 <find_pending_connect+0x48>)
   20ade:	e893 0003 	ldmia.w	r3, {r0, r1}
   20ae2:	9000      	str	r0, [sp, #0]
   20ae4:	f8ad 1004 	strh.w	r1, [sp, #4]
   20ae8:	0c09      	lsrs	r1, r1, #16
   20aea:	f88d 1006 	strb.w	r1, [sp, #6]
			conn = bt_conn_lookup_state_le(bt_dev.adv_conn_id,
   20aee:	2204      	movs	r2, #4
   20af0:	4669      	mov	r1, sp
   20af2:	4b03      	ldr	r3, [pc, #12]	; (20b00 <find_pending_connect+0x44>)
   20af4:	f893 0067 	ldrb.w	r0, [r3, #103]	; 0x67
   20af8:	f003 f96c 	bl	23dd4 <bt_conn_lookup_state_le>
		return conn;
   20afc:	e7eb      	b.n	20ad6 <find_pending_connect+0x1a>
   20afe:	bf00      	nop
   20b00:	200002a8 	.word	0x200002a8
   20b04:	0003ba10 	.word	0x0003ba10

00020b08 <le_conn_complete_adv_timeout>:
{
   20b08:	b510      	push	{r4, lr}
		struct bt_le_ext_adv *adv = bt_le_adv_lookup_legacy();
   20b0a:	f002 f849 	bl	22ba0 <bt_le_adv_lookup_legacy>
		atomic_clear_bit(adv->flags, BT_ADV_ENABLED);
   20b0e:	3010      	adds	r0, #16
	return __atomic_fetch_and(target, value, __ATOMIC_SEQ_CST);
   20b10:	f3bf 8f5b 	dmb	ish
   20b14:	e850 3f00 	ldrex	r3, [r0]
   20b18:	f023 0340 	bic.w	r3, r3, #64	; 0x40
   20b1c:	e840 3200 	strex	r2, r3, [r0]
   20b20:	2a00      	cmp	r2, #0
   20b22:	d1f7      	bne.n	20b14 <le_conn_complete_adv_timeout+0xc>
   20b24:	f3bf 8f5b 	dmb	ish
		conn = find_pending_connect(BT_HCI_ROLE_PERIPHERAL, NULL);
   20b28:	2100      	movs	r1, #0
   20b2a:	2001      	movs	r0, #1
   20b2c:	f7ff ffc6 	bl	20abc <find_pending_connect>
		if (!conn) {
   20b30:	4604      	mov	r4, r0
   20b32:	b140      	cbz	r0, 20b46 <le_conn_complete_adv_timeout+0x3e>
		conn->err = BT_HCI_ERR_ADV_TIMEOUT;
   20b34:	233c      	movs	r3, #60	; 0x3c
   20b36:	7303      	strb	r3, [r0, #12]
		bt_conn_set_state(conn, BT_CONN_DISCONNECTED);
   20b38:	2100      	movs	r1, #0
   20b3a:	f002 fe7b 	bl	23834 <bt_conn_set_state>
		bt_conn_unref(conn);
   20b3e:	4620      	mov	r0, r4
   20b40:	f002 fe3c 	bl	237bc <bt_conn_unref>
}
   20b44:	bd10      	pop	{r4, pc}
			BT_ERR("No pending peripheral connection");
   20b46:	2145      	movs	r1, #69	; 0x45
   20b48:	4801      	ldr	r0, [pc, #4]	; (20b50 <le_conn_complete_adv_timeout+0x48>)
   20b4a:	f012 ffcf 	bl	33aec <z_log_minimal_printk>
			return;
   20b4e:	e7f9      	b.n	20b44 <le_conn_complete_adv_timeout+0x3c>
   20b50:	0003ce44 	.word	0x0003ce44

00020b54 <hci_disconn_complete>:
{
   20b54:	b570      	push	{r4, r5, r6, lr}
	struct bt_hci_evt_disconn_complete *evt = (void *)buf->data;
   20b56:	6884      	ldr	r4, [r0, #8]
	uint16_t handle = sys_le16_to_cpu(evt->handle);
   20b58:	f8b4 6001 	ldrh.w	r6, [r4, #1]
	if (evt->status) {
   20b5c:	7823      	ldrb	r3, [r4, #0]
   20b5e:	b103      	cbz	r3, 20b62 <hci_disconn_complete+0xe>
}
   20b60:	bd70      	pop	{r4, r5, r6, pc}
	conn = bt_conn_lookup_handle(handle);
   20b62:	4630      	mov	r0, r6
   20b64:	f002 fe5c 	bl	23820 <bt_conn_lookup_handle>
	if (!conn) {
   20b68:	4605      	mov	r5, r0
   20b6a:	b158      	cbz	r0, 20b84 <hci_disconn_complete+0x30>
	conn->err = evt->reason;
   20b6c:	78e3      	ldrb	r3, [r4, #3]
   20b6e:	7303      	strb	r3, [r0, #12]
	bt_conn_set_state(conn, BT_CONN_DISCONNECTED);
   20b70:	2100      	movs	r1, #0
   20b72:	f002 fe5f 	bl	23834 <bt_conn_set_state>
	if (conn->type != BT_CONN_TYPE_LE) {
   20b76:	78ab      	ldrb	r3, [r5, #2]
   20b78:	2b01      	cmp	r3, #1
   20b7a:	d009      	beq.n	20b90 <hci_disconn_complete+0x3c>
		bt_conn_unref(conn);
   20b7c:	4628      	mov	r0, r5
   20b7e:	f002 fe1d 	bl	237bc <bt_conn_unref>
		return;
   20b82:	e7ed      	b.n	20b60 <hci_disconn_complete+0xc>
		BT_ERR("Unable to look up conn with handle %u", handle);
   20b84:	4632      	mov	r2, r6
   20b86:	2145      	movs	r1, #69	; 0x45
   20b88:	4803      	ldr	r0, [pc, #12]	; (20b98 <hci_disconn_complete+0x44>)
   20b8a:	f012 ffaf 	bl	33aec <z_log_minimal_printk>
		return;
   20b8e:	e7e7      	b.n	20b60 <hci_disconn_complete+0xc>
	bt_conn_unref(conn);
   20b90:	4628      	mov	r0, r5
   20b92:	f002 fe13 	bl	237bc <bt_conn_unref>
   20b96:	e7e3      	b.n	20b60 <hci_disconn_complete+0xc>
   20b98:	0003ce6c 	.word	0x0003ce6c

00020b9c <le_data_len_change>:
{
   20b9c:	b510      	push	{r4, lr}
	struct bt_hci_evt_le_data_len_change *evt = (void *)buf->data;
   20b9e:	6883      	ldr	r3, [r0, #8]
	uint16_t handle = sys_le16_to_cpu(evt->handle);
   20ba0:	881c      	ldrh	r4, [r3, #0]
	conn = bt_conn_lookup_handle(handle);
   20ba2:	4620      	mov	r0, r4
   20ba4:	f002 fe3c 	bl	23820 <bt_conn_lookup_handle>
	if (!conn) {
   20ba8:	b110      	cbz	r0, 20bb0 <le_data_len_change+0x14>
	bt_conn_unref(conn);
   20baa:	f002 fe07 	bl	237bc <bt_conn_unref>
}
   20bae:	bd10      	pop	{r4, pc}
		BT_ERR("Unable to lookup conn for handle %u", handle);
   20bb0:	4622      	mov	r2, r4
   20bb2:	2145      	movs	r1, #69	; 0x45
   20bb4:	4801      	ldr	r0, [pc, #4]	; (20bbc <le_data_len_change+0x20>)
   20bb6:	f012 ff99 	bl	33aec <z_log_minimal_printk>
		return;
   20bba:	e7f8      	b.n	20bae <le_data_len_change+0x12>
   20bbc:	0003ce98 	.word	0x0003ce98

00020bc0 <hci_num_completed_packets>:
{
   20bc0:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
	struct bt_hci_evt_num_completed_packets *evt = (void *)buf->data;
   20bc4:	f8d0 8008 	ldr.w	r8, [r0, #8]
	for (i = 0; i < evt->num_handles; i++) {
   20bc8:	2700      	movs	r7, #0
   20bca:	e051      	b.n	20c70 <hci_num_completed_packets+0xb0>
				conn->pending_no_cb--;
   20bcc:	3b01      	subs	r3, #1
   20bce:	61e3      	str	r3, [r4, #28]
   20bd0:	f382 8811 	msr	BASEPRI, r2
   20bd4:	f3bf 8f6f 	isb	sy
				k_sem_give(bt_conn_get_pkts(conn));
   20bd8:	4620      	mov	r0, r4
   20bda:	f002 fc07 	bl	233ec <bt_conn_get_pkts>
	z_impl_k_sem_give(sem);
   20bde:	f00f f9a1 	bl	2ff24 <z_impl_k_sem_give>
				continue;
   20be2:	e025      	b.n	20c30 <hci_num_completed_packets+0x70>
	list->tail = node;
   20be4:	61a1      	str	r1, [r4, #24]
   20be6:	f382 8811 	msr	BASEPRI, r2
   20bea:	f3bf 8f6f 	isb	sy
			if (!node) {
   20bee:	2b00      	cmp	r3, #0
   20bf0:	d036      	beq.n	20c60 <hci_num_completed_packets+0xa0>
	__asm__ volatile(
   20bf2:	f04f 0240 	mov.w	r2, #64	; 0x40
   20bf6:	f3ef 8111 	mrs	r1, BASEPRI
   20bfa:	f382 8812 	msr	BASEPRI_MAX, r2
   20bfe:	f3bf 8f6f 	isb	sy
			conn->pending_no_cb = tx->pending_no_cb;
   20c02:	68da      	ldr	r2, [r3, #12]
   20c04:	61e2      	str	r2, [r4, #28]
			tx->pending_no_cb = 0U;
   20c06:	2200      	movs	r2, #0
   20c08:	60da      	str	r2, [r3, #12]
	parent->next = child;
   20c0a:	601a      	str	r2, [r3, #0]
	return list->tail;
   20c0c:	6a62      	ldr	r2, [r4, #36]	; 0x24
Z_GENLIST_APPEND(slist, snode)
   20c0e:	2a00      	cmp	r2, #0
   20c10:	d044      	beq.n	20c9c <hci_num_completed_packets+0xdc>
	parent->next = child;
   20c12:	6013      	str	r3, [r2, #0]
	list->tail = node;
   20c14:	6263      	str	r3, [r4, #36]	; 0x24
	__asm__ volatile(
   20c16:	f381 8811 	msr	BASEPRI, r1
   20c1a:	f3bf 8f6f 	isb	sy
			k_work_submit(&conn->tx_complete_work);
   20c1e:	f104 0028 	add.w	r0, r4, #40	; 0x28
   20c22:	f00f fd25 	bl	30670 <k_work_submit>
			k_sem_give(bt_conn_get_pkts(conn));
   20c26:	4620      	mov	r0, r4
   20c28:	f002 fbe0 	bl	233ec <bt_conn_get_pkts>
   20c2c:	f00f f97a 	bl	2ff24 <z_impl_k_sem_give>
{
   20c30:	462e      	mov	r6, r5
		while (count--) {
   20c32:	1e75      	subs	r5, r6, #1
   20c34:	b2ad      	uxth	r5, r5
   20c36:	b1be      	cbz	r6, 20c68 <hci_num_completed_packets+0xa8>
	__asm__ volatile(
   20c38:	f04f 0340 	mov.w	r3, #64	; 0x40
   20c3c:	f3ef 8211 	mrs	r2, BASEPRI
   20c40:	f383 8812 	msr	BASEPRI_MAX, r3
   20c44:	f3bf 8f6f 	isb	sy
			if (conn->pending_no_cb) {
   20c48:	69e3      	ldr	r3, [r4, #28]
   20c4a:	2b00      	cmp	r3, #0
   20c4c:	d1be      	bne.n	20bcc <hci_num_completed_packets+0xc>
	return list->head;
   20c4e:	6963      	ldr	r3, [r4, #20]
 *
 * @return A pointer to the first node of the list (or NULL if empty)
 */
static inline sys_snode_t *sys_slist_get(sys_slist_t *list);

Z_GENLIST_GET(slist, snode)
   20c50:	2b00      	cmp	r3, #0
   20c52:	d0c8      	beq.n	20be6 <hci_num_completed_packets+0x26>
	return node->next;
   20c54:	6819      	ldr	r1, [r3, #0]
	list->head = node;
   20c56:	6161      	str	r1, [r4, #20]
	return list->tail;
   20c58:	69a0      	ldr	r0, [r4, #24]
Z_GENLIST_GET_NOT_EMPTY(slist, snode)
   20c5a:	4298      	cmp	r0, r3
   20c5c:	d1c3      	bne.n	20be6 <hci_num_completed_packets+0x26>
   20c5e:	e7c1      	b.n	20be4 <hci_num_completed_packets+0x24>
				BT_ERR("packets count mismatch");
   20c60:	2145      	movs	r1, #69	; 0x45
   20c62:	4811      	ldr	r0, [pc, #68]	; (20ca8 <hci_num_completed_packets+0xe8>)
   20c64:	f012 ff42 	bl	33aec <z_log_minimal_printk>
		bt_conn_unref(conn);
   20c68:	4620      	mov	r0, r4
   20c6a:	f002 fda7 	bl	237bc <bt_conn_unref>
	for (i = 0; i < evt->num_handles; i++) {
   20c6e:	3701      	adds	r7, #1
   20c70:	f898 3000 	ldrb.w	r3, [r8]
   20c74:	429f      	cmp	r7, r3
   20c76:	da14      	bge.n	20ca2 <hci_num_completed_packets+0xe2>
		handle = sys_le16_to_cpu(evt->h[i].handle);
   20c78:	eb08 0387 	add.w	r3, r8, r7, lsl #2
   20c7c:	f8b3 5001 	ldrh.w	r5, [r3, #1]
		count = sys_le16_to_cpu(evt->h[i].count);
   20c80:	f8b3 6003 	ldrh.w	r6, [r3, #3]
		conn = bt_conn_lookup_handle(handle);
   20c84:	4628      	mov	r0, r5
   20c86:	f002 fdcb 	bl	23820 <bt_conn_lookup_handle>
		if (!conn) {
   20c8a:	4604      	mov	r4, r0
   20c8c:	2800      	cmp	r0, #0
   20c8e:	d1d0      	bne.n	20c32 <hci_num_completed_packets+0x72>
			BT_ERR("No connection for handle %u", handle);
   20c90:	462a      	mov	r2, r5
   20c92:	2145      	movs	r1, #69	; 0x45
   20c94:	4805      	ldr	r0, [pc, #20]	; (20cac <hci_num_completed_packets+0xec>)
   20c96:	f012 ff29 	bl	33aec <z_log_minimal_printk>
			continue;
   20c9a:	e7e8      	b.n	20c6e <hci_num_completed_packets+0xae>
	list->tail = node;
   20c9c:	6263      	str	r3, [r4, #36]	; 0x24
	list->head = node;
   20c9e:	6223      	str	r3, [r4, #32]
}
   20ca0:	e7b9      	b.n	20c16 <hci_num_completed_packets+0x56>
}
   20ca2:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
   20ca6:	bf00      	nop
   20ca8:	0003cee8 	.word	0x0003cee8
   20cac:	0003cec4 	.word	0x0003cec4

00020cb0 <hci_cmd_done>:
{
   20cb0:	b570      	push	{r4, r5, r6, lr}
   20cb2:	b082      	sub	sp, #8
   20cb4:	4605      	mov	r5, r0
   20cb6:	460e      	mov	r6, r1
   20cb8:	4614      	mov	r4, r2
	if (net_buf_pool_get(buf->pool_id) != &hci_cmd_pool) {
   20cba:	7990      	ldrb	r0, [r2, #6]
   20cbc:	f008 fbe6 	bl	2948c <net_buf_pool_get>
   20cc0:	4b47      	ldr	r3, [pc, #284]	; (20de0 <hci_cmd_done+0x130>)
   20cc2:	4283      	cmp	r3, r0
   20cc4:	d00e      	beq.n	20ce4 <hci_cmd_done+0x34>
		BT_WARN("opcode 0x%04x pool id %u pool %p != &hci_cmd_pool %p",
   20cc6:	79a4      	ldrb	r4, [r4, #6]
   20cc8:	4620      	mov	r0, r4
   20cca:	f008 fbdf 	bl	2948c <net_buf_pool_get>
   20cce:	4b44      	ldr	r3, [pc, #272]	; (20de0 <hci_cmd_done+0x130>)
   20cd0:	9301      	str	r3, [sp, #4]
   20cd2:	9000      	str	r0, [sp, #0]
   20cd4:	4623      	mov	r3, r4
   20cd6:	462a      	mov	r2, r5
   20cd8:	2157      	movs	r1, #87	; 0x57
   20cda:	4842      	ldr	r0, [pc, #264]	; (20de4 <hci_cmd_done+0x134>)
   20cdc:	f012 ff06 	bl	33aec <z_log_minimal_printk>
}
   20ce0:	b002      	add	sp, #8
   20ce2:	bd70      	pop	{r4, r5, r6, pc}
	if (cmd(buf)->opcode != opcode) {
   20ce4:	4620      	mov	r0, r4
   20ce6:	f008 fbd9 	bl	2949c <net_buf_id>
   20cea:	eb00 0340 	add.w	r3, r0, r0, lsl #1
   20cee:	483e      	ldr	r0, [pc, #248]	; (20de8 <hci_cmd_done+0x138>)
   20cf0:	eb00 0083 	add.w	r0, r0, r3, lsl #2
   20cf4:	8843      	ldrh	r3, [r0, #2]
   20cf6:	42ab      	cmp	r3, r5
   20cf8:	d132      	bne.n	20d60 <hci_cmd_done+0xb0>
	if (bt_dev.sent_cmd) {
   20cfa:	4b3c      	ldr	r3, [pc, #240]	; (20dec <hci_cmd_done+0x13c>)
   20cfc:	f8d3 0138 	ldr.w	r0, [r3, #312]	; 0x138
   20d00:	b128      	cbz	r0, 20d0e <hci_cmd_done+0x5e>
		net_buf_unref(bt_dev.sent_cmd);
   20d02:	f008 fd2d 	bl	29760 <net_buf_unref>
		bt_dev.sent_cmd = NULL;
   20d06:	4b39      	ldr	r3, [pc, #228]	; (20dec <hci_cmd_done+0x13c>)
   20d08:	2200      	movs	r2, #0
   20d0a:	f8c3 2138 	str.w	r2, [r3, #312]	; 0x138
	if (cmd(buf)->state && !status) {
   20d0e:	4620      	mov	r0, r4
   20d10:	f008 fbc4 	bl	2949c <net_buf_id>
   20d14:	eb00 0040 	add.w	r0, r0, r0, lsl #1
   20d18:	4b33      	ldr	r3, [pc, #204]	; (20de8 <hci_cmd_done+0x138>)
   20d1a:	eb03 0080 	add.w	r0, r3, r0, lsl #2
   20d1e:	6843      	ldr	r3, [r0, #4]
   20d20:	b103      	cbz	r3, 20d24 <hci_cmd_done+0x74>
   20d22:	b366      	cbz	r6, 20d7e <hci_cmd_done+0xce>
	if (cmd(buf)->sync) {
   20d24:	4620      	mov	r0, r4
   20d26:	f008 fbb9 	bl	2949c <net_buf_id>
   20d2a:	eb00 0040 	add.w	r0, r0, r0, lsl #1
   20d2e:	4b2e      	ldr	r3, [pc, #184]	; (20de8 <hci_cmd_done+0x138>)
   20d30:	eb03 0080 	add.w	r0, r3, r0, lsl #2
   20d34:	6883      	ldr	r3, [r0, #8]
   20d36:	2b00      	cmp	r3, #0
   20d38:	d0d2      	beq.n	20ce0 <hci_cmd_done+0x30>
		cmd(buf)->status = status;
   20d3a:	4620      	mov	r0, r4
   20d3c:	f008 fbae 	bl	2949c <net_buf_id>
   20d40:	4d29      	ldr	r5, [pc, #164]	; (20de8 <hci_cmd_done+0x138>)
   20d42:	eb00 0040 	add.w	r0, r0, r0, lsl #1
   20d46:	f805 6020 	strb.w	r6, [r5, r0, lsl #2]
		k_sem_give(cmd(buf)->sync);
   20d4a:	4620      	mov	r0, r4
   20d4c:	f008 fba6 	bl	2949c <net_buf_id>
   20d50:	eb00 0040 	add.w	r0, r0, r0, lsl #1
   20d54:	eb05 0580 	add.w	r5, r5, r0, lsl #2
   20d58:	68a8      	ldr	r0, [r5, #8]
   20d5a:	f00f f8e3 	bl	2ff24 <z_impl_k_sem_give>
}
   20d5e:	e7bf      	b.n	20ce0 <hci_cmd_done+0x30>
		BT_WARN("OpCode 0x%04x completed instead of expected 0x%04x",
   20d60:	4620      	mov	r0, r4
   20d62:	f008 fb9b 	bl	2949c <net_buf_id>
   20d66:	eb00 0040 	add.w	r0, r0, r0, lsl #1
   20d6a:	4b1f      	ldr	r3, [pc, #124]	; (20de8 <hci_cmd_done+0x138>)
   20d6c:	eb03 0080 	add.w	r0, r3, r0, lsl #2
   20d70:	8843      	ldrh	r3, [r0, #2]
   20d72:	462a      	mov	r2, r5
   20d74:	2157      	movs	r1, #87	; 0x57
   20d76:	481e      	ldr	r0, [pc, #120]	; (20df0 <hci_cmd_done+0x140>)
   20d78:	f012 feb8 	bl	33aec <z_log_minimal_printk>
		return;
   20d7c:	e7b0      	b.n	20ce0 <hci_cmd_done+0x30>
		struct bt_hci_cmd_state_set *update = cmd(buf)->state;
   20d7e:	4620      	mov	r0, r4
   20d80:	f008 fb8c 	bl	2949c <net_buf_id>
   20d84:	eb00 0040 	add.w	r0, r0, r0, lsl #1
   20d88:	4b17      	ldr	r3, [pc, #92]	; (20de8 <hci_cmd_done+0x138>)
   20d8a:	eb03 0080 	add.w	r0, r3, r0, lsl #2
   20d8e:	6842      	ldr	r2, [r0, #4]
		atomic_set_bit_to(update->target, update->bit, update->val);
   20d90:	6813      	ldr	r3, [r2, #0]
   20d92:	6851      	ldr	r1, [r2, #4]
   20d94:	7a10      	ldrb	r0, [r2, #8]
	atomic_val_t mask = ATOMIC_MASK(bit);
   20d96:	f001 051f 	and.w	r5, r1, #31
   20d9a:	2201      	movs	r2, #1
   20d9c:	40aa      	lsls	r2, r5
	if (val) {
   20d9e:	b170      	cbz	r0, 20dbe <hci_cmd_done+0x10e>
		(void)atomic_or(ATOMIC_ELEM(target, bit), mask);
   20da0:	0949      	lsrs	r1, r1, #5
   20da2:	eb03 0381 	add.w	r3, r3, r1, lsl #2
	return __atomic_fetch_or(target, value, __ATOMIC_SEQ_CST);
   20da6:	f3bf 8f5b 	dmb	ish
   20daa:	e853 1f00 	ldrex	r1, [r3]
   20dae:	4311      	orrs	r1, r2
   20db0:	e843 1000 	strex	r0, r1, [r3]
   20db4:	2800      	cmp	r0, #0
   20db6:	d1f8      	bne.n	20daa <hci_cmd_done+0xfa>
   20db8:	f3bf 8f5b 	dmb	ish
   20dbc:	e7b2      	b.n	20d24 <hci_cmd_done+0x74>
	} else {
		(void)atomic_and(ATOMIC_ELEM(target, bit), ~mask);
   20dbe:	0949      	lsrs	r1, r1, #5
   20dc0:	eb03 0381 	add.w	r3, r3, r1, lsl #2
   20dc4:	43d2      	mvns	r2, r2
	return __atomic_fetch_and(target, value, __ATOMIC_SEQ_CST);
   20dc6:	f3bf 8f5b 	dmb	ish
   20dca:	e853 1f00 	ldrex	r1, [r3]
   20dce:	4011      	ands	r1, r2
   20dd0:	e843 1000 	strex	r0, r1, [r3]
   20dd4:	2800      	cmp	r0, #0
   20dd6:	d1f8      	bne.n	20dca <hci_cmd_done+0x11a>
   20dd8:	f3bf 8f5b 	dmb	ish
	}
}
   20ddc:	e7a2      	b.n	20d24 <hci_cmd_done+0x74>
   20dde:	bf00      	nop
   20de0:	20000960 	.word	0x20000960
   20de4:	0003cf04 	.word	0x0003cf04
   20de8:	20002278 	.word	0x20002278
   20dec:	200002a8 	.word	0x200002a8
   20df0:	0003cf40 	.word	0x0003cf40

00020df4 <hci_cmd_status>:
{
   20df4:	b538      	push	{r3, r4, r5, lr}
   20df6:	4604      	mov	r4, r0
 *
 * @return Pointer to the old beginning of the buffer data.
 */
static inline void *net_buf_pull_mem(struct net_buf *buf, size_t len)
{
	return net_buf_simple_pull_mem(&buf->b, len);
   20df8:	2104      	movs	r1, #4
   20dfa:	3008      	adds	r0, #8
   20dfc:	f008 fd88 	bl	29910 <net_buf_simple_pull_mem>
	ncmd = evt->ncmd;
   20e00:	7845      	ldrb	r5, [r0, #1]
	hci_cmd_done(opcode, evt->status, buf);
   20e02:	4622      	mov	r2, r4
   20e04:	7801      	ldrb	r1, [r0, #0]
   20e06:	8840      	ldrh	r0, [r0, #2]
   20e08:	f7ff ff52 	bl	20cb0 <hci_cmd_done>
	if (ncmd) {
   20e0c:	b905      	cbnz	r5, 20e10 <hci_cmd_status+0x1c>
}
   20e0e:	bd38      	pop	{r3, r4, r5, pc}
	z_impl_k_sem_give(sem);
   20e10:	4801      	ldr	r0, [pc, #4]	; (20e18 <hci_cmd_status+0x24>)
   20e12:	f00f f887 	bl	2ff24 <z_impl_k_sem_give>
   20e16:	e7fa      	b.n	20e0e <hci_cmd_status+0x1a>
   20e18:	200003c8 	.word	0x200003c8

00020e1c <hci_cmd_complete>:
{
   20e1c:	b538      	push	{r3, r4, r5, lr}
   20e1e:	4604      	mov	r4, r0
   20e20:	2103      	movs	r1, #3
   20e22:	3008      	adds	r0, #8
   20e24:	f008 fd74 	bl	29910 <net_buf_simple_pull_mem>
	ncmd = evt->ncmd;
   20e28:	7805      	ldrb	r5, [r0, #0]
	status = buf->data[0];
   20e2a:	68a3      	ldr	r3, [r4, #8]
	hci_cmd_done(opcode, status, buf);
   20e2c:	4622      	mov	r2, r4
   20e2e:	7819      	ldrb	r1, [r3, #0]
   20e30:	f8b0 0001 	ldrh.w	r0, [r0, #1]
   20e34:	f7ff ff3c 	bl	20cb0 <hci_cmd_done>
	if (ncmd) {
   20e38:	b905      	cbnz	r5, 20e3c <hci_cmd_complete+0x20>
}
   20e3a:	bd38      	pop	{r3, r4, r5, pc}
   20e3c:	4801      	ldr	r0, [pc, #4]	; (20e44 <hci_cmd_complete+0x28>)
   20e3e:	f00f f871 	bl	2ff24 <z_impl_k_sem_give>
   20e42:	e7fa      	b.n	20e3a <hci_cmd_complete+0x1e>
   20e44:	200003c8 	.word	0x200003c8

00020e48 <hci_hardware_error>:
{
   20e48:	b508      	push	{r3, lr}
   20e4a:	2101      	movs	r1, #1
   20e4c:	3008      	adds	r0, #8
   20e4e:	f008 fd5f 	bl	29910 <net_buf_simple_pull_mem>
	BT_ERR("Hardware error, hardware code: %d", evt->hardware_code);
   20e52:	7802      	ldrb	r2, [r0, #0]
   20e54:	2145      	movs	r1, #69	; 0x45
   20e56:	4802      	ldr	r0, [pc, #8]	; (20e60 <hci_hardware_error+0x18>)
   20e58:	f012 fe48 	bl	33aec <z_log_minimal_printk>
}
   20e5c:	bd08      	pop	{r3, pc}
   20e5e:	bf00      	nop
   20e60:	0003cf78 	.word	0x0003cf78

00020e64 <hci_vendor_event>:
{
   20e64:	b508      	push	{r3, lr}
		BT_WARN("Unhandled vendor-specific event: %s",
   20e66:	8981      	ldrh	r1, [r0, #12]
   20e68:	6880      	ldr	r0, [r0, #8]
   20e6a:	f7ff f87b 	bl	1ff64 <bt_hex_real>
   20e6e:	4602      	mov	r2, r0
   20e70:	2157      	movs	r1, #87	; 0x57
   20e72:	4802      	ldr	r0, [pc, #8]	; (20e7c <hci_vendor_event+0x18>)
   20e74:	f012 fe3a 	bl	33aec <z_log_minimal_printk>
}
   20e78:	bd08      	pop	{r3, pc}
   20e7a:	bf00      	nop
   20e7c:	0003cfa0 	.word	0x0003cfa0

00020e80 <hci_acl>:
{
   20e80:	b570      	push	{r4, r5, r6, lr}
   20e82:	4604      	mov	r4, r0
	BT_ASSERT(buf->len >= sizeof(*hdr));
   20e84:	8983      	ldrh	r3, [r0, #12]
   20e86:	2b03      	cmp	r3, #3
   20e88:	d917      	bls.n	20eba <hci_acl+0x3a>
   20e8a:	2104      	movs	r1, #4
   20e8c:	f104 0008 	add.w	r0, r4, #8
   20e90:	f008 fd3e 	bl	29910 <net_buf_simple_pull_mem>
	len = sys_le16_to_cpu(hdr->len);
   20e94:	8843      	ldrh	r3, [r0, #2]
	handle = sys_le16_to_cpu(hdr->handle);
   20e96:	8800      	ldrh	r0, [r0, #0]
	flags = bt_acl_flags(handle);
   20e98:	0b06      	lsrs	r6, r0, #12
	acl(buf)->handle = bt_acl_handle(handle);
   20e9a:	f3c0 000b 	ubfx	r0, r0, #0, #12
   20e9e:	82e0      	strh	r0, [r4, #22]
	acl(buf)->index = BT_CONN_INDEX_INVALID;
   20ea0:	22ff      	movs	r2, #255	; 0xff
   20ea2:	7562      	strb	r2, [r4, #21]
	if (buf->len != len) {
   20ea4:	89a2      	ldrh	r2, [r4, #12]
   20ea6:	429a      	cmp	r2, r3
   20ea8:	d014      	beq.n	20ed4 <hci_acl+0x54>
		BT_ERR("ACL data length mismatch (%u != %u)", buf->len, len);
   20eaa:	2145      	movs	r1, #69	; 0x45
   20eac:	4816      	ldr	r0, [pc, #88]	; (20f08 <hci_acl+0x88>)
   20eae:	f012 fe1d 	bl	33aec <z_log_minimal_printk>
		net_buf_unref(buf);
   20eb2:	4620      	mov	r0, r4
   20eb4:	f008 fc54 	bl	29760 <net_buf_unref>
}
   20eb8:	bd70      	pop	{r4, r5, r6, pc}
	BT_ASSERT(buf->len >= sizeof(*hdr));
   20eba:	f44f 72db 	mov.w	r2, #438	; 0x1b6
   20ebe:	4913      	ldr	r1, [pc, #76]	; (20f0c <hci_acl+0x8c>)
   20ec0:	4813      	ldr	r0, [pc, #76]	; (20f10 <hci_acl+0x90>)
   20ec2:	f012 fa72 	bl	333aa <printk>
   20ec6:	4040      	eors	r0, r0
   20ec8:	f380 8811 	msr	BASEPRI, r0
   20ecc:	f04f 0003 	mov.w	r0, #3
   20ed0:	df02      	svc	2
   20ed2:	e7da      	b.n	20e8a <hci_acl+0xa>
	conn = bt_conn_lookup_handle(acl(buf)->handle);
   20ed4:	f002 fca4 	bl	23820 <bt_conn_lookup_handle>
	if (!conn) {
   20ed8:	4605      	mov	r5, r0
   20eda:	b158      	cbz	r0, 20ef4 <hci_acl+0x74>
	acl(buf)->index = bt_conn_index(conn);
   20edc:	f002 fd7c 	bl	239d8 <bt_conn_index>
   20ee0:	7560      	strb	r0, [r4, #21]
	bt_conn_recv(conn, buf, flags);
   20ee2:	4632      	mov	r2, r6
   20ee4:	4621      	mov	r1, r4
   20ee6:	4628      	mov	r0, r5
   20ee8:	f015 fc64 	bl	367b4 <bt_conn_recv>
	bt_conn_unref(conn);
   20eec:	4628      	mov	r0, r5
   20eee:	f002 fc65 	bl	237bc <bt_conn_unref>
   20ef2:	e7e1      	b.n	20eb8 <hci_acl+0x38>
		BT_ERR("Unable to find conn for handle %u", acl(buf)->handle);
   20ef4:	8ae2      	ldrh	r2, [r4, #22]
   20ef6:	2145      	movs	r1, #69	; 0x45
   20ef8:	4806      	ldr	r0, [pc, #24]	; (20f14 <hci_acl+0x94>)
   20efa:	f012 fdf7 	bl	33aec <z_log_minimal_printk>
		net_buf_unref(buf);
   20efe:	4620      	mov	r0, r4
   20f00:	f008 fc2e 	bl	29760 <net_buf_unref>
		return;
   20f04:	e7d8      	b.n	20eb8 <hci_acl+0x38>
   20f06:	bf00      	nop
   20f08:	0003d000 	.word	0x0003d000
   20f0c:	0003cfcc 	.word	0x0003cfcc
   20f10:	0003bdac 	.word	0x0003bdac
   20f14:	0003d02c 	.word	0x0003d02c

00020f18 <le_conn_update_complete>:
{
   20f18:	b570      	push	{r4, r5, r6, lr}
   20f1a:	b082      	sub	sp, #8
	struct bt_hci_evt_le_conn_update_complete *evt = (void *)buf->data;
   20f1c:	6884      	ldr	r4, [r0, #8]
	handle = sys_le16_to_cpu(evt->handle);
   20f1e:	f8b4 6001 	ldrh.w	r6, [r4, #1]
	conn = bt_conn_lookup_handle(handle);
   20f22:	4630      	mov	r0, r6
   20f24:	f002 fc7c 	bl	23820 <bt_conn_lookup_handle>
	if (!conn) {
   20f28:	b148      	cbz	r0, 20f3e <le_conn_update_complete+0x26>
   20f2a:	4605      	mov	r5, r0
	if (!evt->status) {
   20f2c:	7823      	ldrb	r3, [r4, #0]
   20f2e:	b163      	cbz	r3, 20f4a <le_conn_update_complete+0x32>
	} else if (evt->status == BT_HCI_ERR_UNSUPP_REMOTE_FEATURE &&
   20f30:	2b1a      	cmp	r3, #26
   20f32:	d019      	beq.n	20f68 <le_conn_update_complete+0x50>
	bt_conn_unref(conn);
   20f34:	4628      	mov	r0, r5
   20f36:	f002 fc41 	bl	237bc <bt_conn_unref>
}
   20f3a:	b002      	add	sp, #8
   20f3c:	bd70      	pop	{r4, r5, r6, pc}
		BT_ERR("Unable to lookup conn for handle %u", handle);
   20f3e:	4632      	mov	r2, r6
   20f40:	2145      	movs	r1, #69	; 0x45
   20f42:	481d      	ldr	r0, [pc, #116]	; (20fb8 <le_conn_update_complete+0xa0>)
   20f44:	f012 fdd2 	bl	33aec <z_log_minimal_printk>
		return;
   20f48:	e7f7      	b.n	20f3a <le_conn_update_complete+0x22>
		conn->le.interval = sys_le16_to_cpu(evt->interval);
   20f4a:	f8b4 3003 	ldrh.w	r3, [r4, #3]
   20f4e:	f8a0 30a6 	strh.w	r3, [r0, #166]	; 0xa6
		conn->le.latency = sys_le16_to_cpu(evt->latency);
   20f52:	f8b4 3005 	ldrh.w	r3, [r4, #5]
   20f56:	f8a0 30ac 	strh.w	r3, [r0, #172]	; 0xac
		conn->le.timeout = sys_le16_to_cpu(evt->supv_timeout);
   20f5a:	f8b4 3007 	ldrh.w	r3, [r4, #7]
   20f5e:	f8a0 30ae 	strh.w	r3, [r0, #174]	; 0xae
		notify_le_param_updated(conn);
   20f62:	f002 fd8f 	bl	23a84 <notify_le_param_updated>
   20f66:	e7e5      	b.n	20f34 <le_conn_update_complete+0x1c>
		   conn->role == BT_HCI_ROLE_PERIPHERAL &&
   20f68:	78c3      	ldrb	r3, [r0, #3]
	} else if (evt->status == BT_HCI_ERR_UNSUPP_REMOTE_FEATURE &&
   20f6a:	2b01      	cmp	r3, #1
   20f6c:	d1e2      	bne.n	20f34 <le_conn_update_complete+0x1c>
		   !atomic_test_and_set_bit(conn->flags,
   20f6e:	1d03      	adds	r3, r0, #4
	return __atomic_fetch_or(target, value, __ATOMIC_SEQ_CST);
   20f70:	f3bf 8f5b 	dmb	ish
   20f74:	e853 2f00 	ldrex	r2, [r3]
   20f78:	f442 6180 	orr.w	r1, r2, #1024	; 0x400
   20f7c:	e843 1000 	strex	r0, r1, [r3]
   20f80:	2800      	cmp	r0, #0
   20f82:	d1f7      	bne.n	20f74 <le_conn_update_complete+0x5c>
   20f84:	f3bf 8f5b 	dmb	ish
		   conn->role == BT_HCI_ROLE_PERIPHERAL &&
   20f88:	f412 6f80 	tst.w	r2, #1024	; 0x400
   20f8c:	d1d2      	bne.n	20f34 <le_conn_update_complete+0x1c>
		param.interval_min = conn->le.interval_min;
   20f8e:	f8b5 30a8 	ldrh.w	r3, [r5, #168]	; 0xa8
   20f92:	f8ad 3000 	strh.w	r3, [sp]
		param.interval_max = conn->le.interval_max;
   20f96:	f8b5 30aa 	ldrh.w	r3, [r5, #170]	; 0xaa
   20f9a:	f8ad 3002 	strh.w	r3, [sp, #2]
		param.latency = conn->le.pending_latency;
   20f9e:	f8b5 30b0 	ldrh.w	r3, [r5, #176]	; 0xb0
   20fa2:	f8ad 3004 	strh.w	r3, [sp, #4]
		param.timeout = conn->le.pending_timeout;
   20fa6:	f8b5 30b2 	ldrh.w	r3, [r5, #178]	; 0xb2
   20faa:	f8ad 3006 	strh.w	r3, [sp, #6]
		bt_l2cap_update_conn_param(conn, &param);
   20fae:	4669      	mov	r1, sp
   20fb0:	4628      	mov	r0, r5
   20fb2:	f015 fe3f 	bl	36c34 <bt_l2cap_update_conn_param>
   20fb6:	e7bd      	b.n	20f34 <le_conn_update_complete+0x1c>
   20fb8:	0003ce98 	.word	0x0003ce98

00020fbc <hci_le_meta_event>:
{
   20fbc:	b570      	push	{r4, r5, r6, lr}
   20fbe:	b082      	sub	sp, #8
   20fc0:	4604      	mov	r4, r0
   20fc2:	2101      	movs	r1, #1
   20fc4:	3008      	adds	r0, #8
   20fc6:	f008 fca3 	bl	29910 <net_buf_simple_pull_mem>
	handle_event(evt->subevent, buf, meta_events, ARRAY_SIZE(meta_events));
   20fca:	7805      	ldrb	r5, [r0, #0]
	for (i = 0; i < num_handlers; i++) {
   20fcc:	2300      	movs	r3, #0
   20fce:	2b09      	cmp	r3, #9
   20fd0:	d817      	bhi.n	21002 <hci_le_meta_event+0x46>
		const struct event_handler *handler = &handlers[i];
   20fd2:	4a12      	ldr	r2, [pc, #72]	; (2101c <hci_le_meta_event+0x60>)
   20fd4:	eb02 01c3 	add.w	r1, r2, r3, lsl #3
		if (handler->event != event) {
   20fd8:	f812 2033 	ldrb.w	r2, [r2, r3, lsl #3]
   20fdc:	4295      	cmp	r5, r2
   20fde:	d108      	bne.n	20ff2 <hci_le_meta_event+0x36>
		if (buf->len < handler->min_len) {
   20fe0:	89a2      	ldrh	r2, [r4, #12]
   20fe2:	784b      	ldrb	r3, [r1, #1]
   20fe4:	429a      	cmp	r2, r3
   20fe6:	d306      	bcc.n	20ff6 <hci_le_meta_event+0x3a>
		handler->handler(buf);
   20fe8:	684b      	ldr	r3, [r1, #4]
   20fea:	4620      	mov	r0, r4
   20fec:	4798      	blx	r3
}
   20fee:	b002      	add	sp, #8
   20ff0:	bd70      	pop	{r4, r5, r6, pc}
	for (i = 0; i < num_handlers; i++) {
   20ff2:	3301      	adds	r3, #1
   20ff4:	e7eb      	b.n	20fce <hci_le_meta_event+0x12>
			BT_ERR("Too small (%u bytes) event 0x%02x",
   20ff6:	462b      	mov	r3, r5
   20ff8:	2145      	movs	r1, #69	; 0x45
   20ffa:	4809      	ldr	r0, [pc, #36]	; (21020 <hci_le_meta_event+0x64>)
   20ffc:	f012 fd76 	bl	33aec <z_log_minimal_printk>
			return;
   21000:	e7f5      	b.n	20fee <hci_le_meta_event+0x32>
	BT_WARN("Unhandled event 0x%02x len %u: %s", event,
   21002:	89a6      	ldrh	r6, [r4, #12]
   21004:	4631      	mov	r1, r6
   21006:	68a0      	ldr	r0, [r4, #8]
   21008:	f7fe ffac 	bl	1ff64 <bt_hex_real>
   2100c:	9000      	str	r0, [sp, #0]
   2100e:	4633      	mov	r3, r6
   21010:	462a      	mov	r2, r5
   21012:	2157      	movs	r1, #87	; 0x57
   21014:	4803      	ldr	r0, [pc, #12]	; (21024 <hci_le_meta_event+0x68>)
   21016:	f012 fd69 	bl	33aec <z_log_minimal_printk>
}
   2101a:	e7e8      	b.n	20fee <hci_le_meta_event+0x32>
   2101c:	0003d3d4 	.word	0x0003d3d4
   21020:	0003d054 	.word	0x0003d054
   21024:	0003d07c 	.word	0x0003d07c

00021028 <hci_event>:
{
   21028:	b570      	push	{r4, r5, r6, lr}
   2102a:	b082      	sub	sp, #8
   2102c:	4604      	mov	r4, r0
	BT_ASSERT(buf->len >= sizeof(*hdr));
   2102e:	8983      	ldrh	r3, [r0, #12]
   21030:	2b01      	cmp	r3, #1
   21032:	d916      	bls.n	21062 <hci_event+0x3a>
   21034:	2102      	movs	r1, #2
   21036:	f104 0008 	add.w	r0, r4, #8
   2103a:	f008 fc69 	bl	29910 <net_buf_simple_pull_mem>
   2103e:	4605      	mov	r5, r0
	BT_ASSERT(bt_hci_evt_get_flags(hdr->evt) & BT_HCI_EVT_FLAG_RECV);
   21040:	7803      	ldrb	r3, [r0, #0]
 *
 * @return HCI event flags for the specified event.
 */
static inline uint8_t bt_hci_evt_get_flags(uint8_t evt)
{
	switch (evt) {
   21042:	3b05      	subs	r3, #5
   21044:	2b15      	cmp	r3, #21
   21046:	d81b      	bhi.n	21080 <hci_event+0x58>
   21048:	e8df f003 	tbb	[pc, r3]
   2104c:	1a1a1a18 	.word	0x1a1a1a18
   21050:	1a1a1a1a 	.word	0x1a1a1a1a
   21054:	1a35351a 	.word	0x1a35351a
   21058:	1a351a1a 	.word	0x1a351a1a
   2105c:	1a1a1a1a 	.word	0x1a1a1a1a
   21060:	351a      	.short	0x351a
	BT_ASSERT(buf->len >= sizeof(*hdr));
   21062:	f640 120d 	movw	r2, #2317	; 0x90d
   21066:	4926      	ldr	r1, [pc, #152]	; (21100 <hci_event+0xd8>)
   21068:	4826      	ldr	r0, [pc, #152]	; (21104 <hci_event+0xdc>)
   2106a:	f012 f99e 	bl	333aa <printk>
   2106e:	4040      	eors	r0, r0
   21070:	f380 8811 	msr	BASEPRI, r0
   21074:	f04f 0003 	mov.w	r0, #3
   21078:	df02      	svc	2
   2107a:	e7db      	b.n	21034 <hci_event+0xc>
	BT_ASSERT(bt_hci_evt_get_flags(hdr->evt) & BT_HCI_EVT_FLAG_RECV);
   2107c:	2303      	movs	r3, #3
   2107e:	e000      	b.n	21082 <hci_event+0x5a>
#endif /* CONFIG_BT_CONN ||  CONFIG_BT_ISO */
	case BT_HCI_EVT_CMD_COMPLETE:
	case BT_HCI_EVT_CMD_STATUS:
		return BT_HCI_EVT_FLAG_RECV_PRIO;
	default:
		return BT_HCI_EVT_FLAG_RECV;
   21080:	2302      	movs	r3, #2
   21082:	f013 0f02 	tst.w	r3, #2
   21086:	d018      	beq.n	210ba <hci_event+0x92>
	handle_event(hdr->evt, buf, normal_events, ARRAY_SIZE(normal_events));
   21088:	782d      	ldrb	r5, [r5, #0]
	for (i = 0; i < num_handlers; i++) {
   2108a:	2300      	movs	r3, #0
   2108c:	2b05      	cmp	r3, #5
   2108e:	d829      	bhi.n	210e4 <hci_event+0xbc>
		const struct event_handler *handler = &handlers[i];
   21090:	4a1d      	ldr	r2, [pc, #116]	; (21108 <hci_event+0xe0>)
   21092:	eb02 01c3 	add.w	r1, r2, r3, lsl #3
		if (handler->event != event) {
   21096:	f812 2033 	ldrb.w	r2, [r2, r3, lsl #3]
   2109a:	4295      	cmp	r5, r2
   2109c:	d11a      	bne.n	210d4 <hci_event+0xac>
		if (buf->len < handler->min_len) {
   2109e:	89a2      	ldrh	r2, [r4, #12]
   210a0:	784b      	ldrb	r3, [r1, #1]
   210a2:	429a      	cmp	r2, r3
   210a4:	d318      	bcc.n	210d8 <hci_event+0xb0>
		handler->handler(buf);
   210a6:	684b      	ldr	r3, [r1, #4]
   210a8:	4620      	mov	r0, r4
   210aa:	4798      	blx	r3
	net_buf_unref(buf);
   210ac:	4620      	mov	r0, r4
   210ae:	f008 fb57 	bl	29760 <net_buf_unref>
}
   210b2:	b002      	add	sp, #8
   210b4:	bd70      	pop	{r4, r5, r6, pc}
		return BT_HCI_EVT_FLAG_RECV_PRIO;
   210b6:	2301      	movs	r3, #1
   210b8:	e7e3      	b.n	21082 <hci_event+0x5a>
	BT_ASSERT(bt_hci_evt_get_flags(hdr->evt) & BT_HCI_EVT_FLAG_RECV);
   210ba:	f640 1211 	movw	r2, #2321	; 0x911
   210be:	4910      	ldr	r1, [pc, #64]	; (21100 <hci_event+0xd8>)
   210c0:	4810      	ldr	r0, [pc, #64]	; (21104 <hci_event+0xdc>)
   210c2:	f012 f972 	bl	333aa <printk>
   210c6:	4040      	eors	r0, r0
   210c8:	f380 8811 	msr	BASEPRI, r0
   210cc:	f04f 0003 	mov.w	r0, #3
   210d0:	df02      	svc	2
   210d2:	e7d9      	b.n	21088 <hci_event+0x60>
	for (i = 0; i < num_handlers; i++) {
   210d4:	3301      	adds	r3, #1
   210d6:	e7d9      	b.n	2108c <hci_event+0x64>
			BT_ERR("Too small (%u bytes) event 0x%02x",
   210d8:	462b      	mov	r3, r5
   210da:	2145      	movs	r1, #69	; 0x45
   210dc:	480b      	ldr	r0, [pc, #44]	; (2110c <hci_event+0xe4>)
   210de:	f012 fd05 	bl	33aec <z_log_minimal_printk>
			return;
   210e2:	e7e3      	b.n	210ac <hci_event+0x84>
	BT_WARN("Unhandled event 0x%02x len %u: %s", event,
   210e4:	89a6      	ldrh	r6, [r4, #12]
   210e6:	4631      	mov	r1, r6
   210e8:	68a0      	ldr	r0, [r4, #8]
   210ea:	f7fe ff3b 	bl	1ff64 <bt_hex_real>
   210ee:	9000      	str	r0, [sp, #0]
   210f0:	4633      	mov	r3, r6
   210f2:	462a      	mov	r2, r5
   210f4:	2157      	movs	r1, #87	; 0x57
   210f6:	4806      	ldr	r0, [pc, #24]	; (21110 <hci_event+0xe8>)
   210f8:	f012 fcf8 	bl	33aec <z_log_minimal_printk>
   210fc:	e7d6      	b.n	210ac <hci_event+0x84>
   210fe:	bf00      	nop
   21100:	0003cfcc 	.word	0x0003cfcc
   21104:	0003bdac 	.word	0x0003bdac
   21108:	0003d434 	.word	0x0003d434
   2110c:	0003d054 	.word	0x0003d054
   21110:	0003d07c 	.word	0x0003d07c

00021114 <hci_rx_thread>:
	}
}

#if !defined(CONFIG_BT_RECV_IS_RX_THREAD)
static void hci_rx_thread(void)
{
   21114:	b510      	push	{r4, lr}
   21116:	e003      	b.n	21120 <hci_rx_thread+0xc>
		case BT_BUF_ISO_IN:
			hci_iso(buf);
			break;
#endif /* CONFIG_BT_ISO */
		case BT_BUF_EVT:
			hci_event(buf);
   21118:	f7ff ff86 	bl	21028 <hci_event>
	z_impl_k_yield();
   2111c:	f010 fc3c 	bl	31998 <z_impl_k_yield>
		buf = net_buf_get(&bt_dev.rx_queue, K_FOREVER);
   21120:	f04f 32ff 	mov.w	r2, #4294967295
   21124:	f04f 33ff 	mov.w	r3, #4294967295
   21128:	4809      	ldr	r0, [pc, #36]	; (21150 <hci_rx_thread+0x3c>)
   2112a:	f008 fa91 	bl	29650 <net_buf_get>
   2112e:	4604      	mov	r4, r0
	return (enum bt_buf_type)((struct bt_buf_data *)net_buf_user_data(buf))
   21130:	7d02      	ldrb	r2, [r0, #20]
		switch (bt_buf_get_type(buf)) {
   21132:	2a01      	cmp	r2, #1
   21134:	d0f0      	beq.n	21118 <hci_rx_thread+0x4>
   21136:	2a03      	cmp	r2, #3
   21138:	d102      	bne.n	21140 <hci_rx_thread+0x2c>
			hci_acl(buf);
   2113a:	f7ff fea1 	bl	20e80 <hci_acl>
			break;
   2113e:	e7ed      	b.n	2111c <hci_rx_thread+0x8>
			break;
		default:
			BT_ERR("Unknown buf type %u", bt_buf_get_type(buf));
   21140:	2145      	movs	r1, #69	; 0x45
   21142:	4804      	ldr	r0, [pc, #16]	; (21154 <hci_rx_thread+0x40>)
   21144:	f012 fcd2 	bl	33aec <z_log_minimal_printk>
			net_buf_unref(buf);
   21148:	4620      	mov	r0, r4
   2114a:	f008 fb09 	bl	29760 <net_buf_unref>
			break;
   2114e:	e7e5      	b.n	2111c <hci_rx_thread+0x8>
   21150:	200003e4 	.word	0x200003e4
   21154:	0003d0a4 	.word	0x0003d0a4

00021158 <bt_hci_cmd_state_set_init>:
{
   21158:	b510      	push	{r4, lr}
   2115a:	460c      	mov	r4, r1
	state->target = target;
   2115c:	600a      	str	r2, [r1, #0]
	state->bit = bit;
   2115e:	604b      	str	r3, [r1, #4]
	state->val = val;
   21160:	f89d 3008 	ldrb.w	r3, [sp, #8]
   21164:	720b      	strb	r3, [r1, #8]
	cmd(buf)->state = state;
   21166:	f008 f999 	bl	2949c <net_buf_id>
   2116a:	eb00 0040 	add.w	r0, r0, r0, lsl #1
   2116e:	4b02      	ldr	r3, [pc, #8]	; (21178 <bt_hci_cmd_state_set_init+0x20>)
   21170:	eb03 0080 	add.w	r0, r3, r0, lsl #2
   21174:	6044      	str	r4, [r0, #4]
}
   21176:	bd10      	pop	{r4, pc}
   21178:	20002278 	.word	0x20002278

0002117c <bt_hci_cmd_create>:
{
   2117c:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
   21180:	4682      	mov	sl, r0
   21182:	460e      	mov	r6, r1
	return net_buf_alloc_fixed(pool, timeout);
   21184:	f04f 32ff 	mov.w	r2, #4294967295
   21188:	f04f 33ff 	mov.w	r3, #4294967295
   2118c:	481d      	ldr	r0, [pc, #116]	; (21204 <bt_hci_cmd_create+0x88>)
   2118e:	f017 ffbd 	bl	3910c <net_buf_alloc_fixed>
	__ASSERT_NO_MSG(buf);
   21192:	4604      	mov	r4, r0
   21194:	b358      	cbz	r0, 211ee <bt_hci_cmd_create+0x72>
	net_buf_simple_reserve(&buf->b, reserve);
   21196:	f104 0808 	add.w	r8, r4, #8
   2119a:	2100      	movs	r1, #0
   2119c:	4640      	mov	r0, r8
   2119e:	f008 fa85 	bl	296ac <net_buf_simple_reserve>
	((struct bt_buf_data *)net_buf_user_data(buf))->type = type;
   211a2:	2700      	movs	r7, #0
   211a4:	7527      	strb	r7, [r4, #20]
	cmd(buf)->opcode = opcode;
   211a6:	4620      	mov	r0, r4
   211a8:	f008 f978 	bl	2949c <net_buf_id>
   211ac:	4d16      	ldr	r5, [pc, #88]	; (21208 <bt_hci_cmd_create+0x8c>)
   211ae:	eb00 0040 	add.w	r0, r0, r0, lsl #1
   211b2:	eb05 0080 	add.w	r0, r5, r0, lsl #2
   211b6:	f8a0 a002 	strh.w	sl, [r0, #2]
	cmd(buf)->sync = NULL;
   211ba:	4620      	mov	r0, r4
   211bc:	f008 f96e 	bl	2949c <net_buf_id>
   211c0:	eb00 0040 	add.w	r0, r0, r0, lsl #1
   211c4:	eb05 0080 	add.w	r0, r5, r0, lsl #2
   211c8:	6087      	str	r7, [r0, #8]
	cmd(buf)->state = NULL;
   211ca:	4620      	mov	r0, r4
   211cc:	f008 f966 	bl	2949c <net_buf_id>
   211d0:	eb00 0040 	add.w	r0, r0, r0, lsl #1
   211d4:	eb05 0580 	add.w	r5, r5, r0, lsl #2
   211d8:	606f      	str	r7, [r5, #4]
	return net_buf_simple_add(&buf->b, len);
   211da:	2103      	movs	r1, #3
   211dc:	4640      	mov	r0, r8
   211de:	f008 fbd7 	bl	29990 <net_buf_simple_add>
	hdr->opcode = sys_cpu_to_le16(opcode);
   211e2:	f8a0 a000 	strh.w	sl, [r0]
	hdr->param_len = param_len;
   211e6:	7086      	strb	r6, [r0, #2]
}
   211e8:	4620      	mov	r0, r4
   211ea:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
	__ASSERT_NO_MSG(buf);
   211ee:	4d07      	ldr	r5, [pc, #28]	; (2120c <bt_hci_cmd_create+0x90>)
   211f0:	22e9      	movs	r2, #233	; 0xe9
   211f2:	4629      	mov	r1, r5
   211f4:	4806      	ldr	r0, [pc, #24]	; (21210 <bt_hci_cmd_create+0x94>)
   211f6:	f012 f8d8 	bl	333aa <printk>
   211fa:	21e9      	movs	r1, #233	; 0xe9
   211fc:	4628      	mov	r0, r5
   211fe:	f012 fc6d 	bl	33adc <assert_post_action>
   21202:	e7c8      	b.n	21196 <bt_hci_cmd_create+0x1a>
   21204:	20000960 	.word	0x20000960
   21208:	20002278 	.word	0x20002278
   2120c:	0003cfcc 	.word	0x0003cfcc
   21210:	0003bdac 	.word	0x0003bdac

00021214 <bt_hci_cmd_send_sync>:
{
   21214:	b5f0      	push	{r4, r5, r6, r7, lr}
   21216:	b087      	sub	sp, #28
   21218:	4606      	mov	r6, r0
   2121a:	4615      	mov	r5, r2
	if (!buf) {
   2121c:	460c      	mov	r4, r1
   2121e:	b351      	cbz	r1, 21276 <bt_hci_cmd_send_sync+0x62>
	return z_impl_k_sem_init(sem, initial_count, limit);
   21220:	2201      	movs	r2, #1
   21222:	2100      	movs	r1, #0
   21224:	4668      	mov	r0, sp
   21226:	f019 fff9 	bl	3b21c <z_impl_k_sem_init>
	cmd(buf)->sync = &sync_sem;
   2122a:	4620      	mov	r0, r4
   2122c:	f008 f936 	bl	2949c <net_buf_id>
   21230:	eb00 0040 	add.w	r0, r0, r0, lsl #1
   21234:	4b25      	ldr	r3, [pc, #148]	; (212cc <bt_hci_cmd_send_sync+0xb8>)
   21236:	eb03 0080 	add.w	r0, r3, r0, lsl #2
   2123a:	f8c0 d008 	str.w	sp, [r0, #8]
	net_buf_put(&bt_dev.cmd_tx_queue, net_buf_ref(buf));
   2123e:	4620      	mov	r0, r4
   21240:	f008 fac6 	bl	297d0 <net_buf_ref>
   21244:	4601      	mov	r1, r0
   21246:	4822      	ldr	r0, [pc, #136]	; (212d0 <bt_hci_cmd_send_sync+0xbc>)
   21248:	f008 fa58 	bl	296fc <net_buf_put>
	return z_impl_k_sem_take(sem, timeout);
   2124c:	f44f 22a0 	mov.w	r2, #327680	; 0x50000
   21250:	2300      	movs	r3, #0
   21252:	4668      	mov	r0, sp
   21254:	f00e fea6 	bl	2ffa4 <z_impl_k_sem_take>
	BT_ASSERT_MSG(err == 0, "k_sem_take failed with err %d", err);
   21258:	b9a8      	cbnz	r0, 21286 <bt_hci_cmd_send_sync+0x72>
	status = cmd(buf)->status;
   2125a:	4620      	mov	r0, r4
   2125c:	f008 f91e 	bl	2949c <net_buf_id>
   21260:	eb00 0040 	add.w	r0, r0, r0, lsl #1
   21264:	4b19      	ldr	r3, [pc, #100]	; (212cc <bt_hci_cmd_send_sync+0xb8>)
   21266:	f813 7020 	ldrb.w	r7, [r3, r0, lsl #2]
	if (status) {
   2126a:	b9cf      	cbnz	r7, 212a0 <bt_hci_cmd_send_sync+0x8c>
	if (rsp) {
   2126c:	b34d      	cbz	r5, 212c2 <bt_hci_cmd_send_sync+0xae>
		*rsp = buf;
   2126e:	602c      	str	r4, [r5, #0]
	return 0;
   21270:	2000      	movs	r0, #0
}
   21272:	b007      	add	sp, #28
   21274:	bdf0      	pop	{r4, r5, r6, r7, pc}
		buf = bt_hci_cmd_create(opcode, 0);
   21276:	f7ff ff81 	bl	2117c <bt_hci_cmd_create>
		if (!buf) {
   2127a:	4604      	mov	r4, r0
   2127c:	2800      	cmp	r0, #0
   2127e:	d1cf      	bne.n	21220 <bt_hci_cmd_send_sync+0xc>
			return -ENOBUFS;
   21280:	f06f 0068 	mvn.w	r0, #104	; 0x68
   21284:	e7f5      	b.n	21272 <bt_hci_cmd_send_sync+0x5e>
	BT_ASSERT_MSG(err == 0, "k_sem_take failed with err %d", err);
   21286:	f44f 7299 	mov.w	r2, #306	; 0x132
   2128a:	4912      	ldr	r1, [pc, #72]	; (212d4 <bt_hci_cmd_send_sync+0xc0>)
   2128c:	4812      	ldr	r0, [pc, #72]	; (212d8 <bt_hci_cmd_send_sync+0xc4>)
   2128e:	f012 f88c 	bl	333aa <printk>
   21292:	4040      	eors	r0, r0
   21294:	f380 8811 	msr	BASEPRI, r0
   21298:	f04f 0003 	mov.w	r0, #3
   2129c:	df02      	svc	2
   2129e:	e7dc      	b.n	2125a <bt_hci_cmd_send_sync+0x46>
		BT_WARN("opcode 0x%04x status 0x%02x", opcode, status);
   212a0:	463b      	mov	r3, r7
   212a2:	4632      	mov	r2, r6
   212a4:	2157      	movs	r1, #87	; 0x57
   212a6:	480d      	ldr	r0, [pc, #52]	; (212dc <bt_hci_cmd_send_sync+0xc8>)
   212a8:	f012 fc20 	bl	33aec <z_log_minimal_printk>
		net_buf_unref(buf);
   212ac:	4620      	mov	r0, r4
   212ae:	f008 fa57 	bl	29760 <net_buf_unref>
		switch (status) {
   212b2:	2f09      	cmp	r7, #9
   212b4:	d002      	beq.n	212bc <bt_hci_cmd_send_sync+0xa8>
			return -EIO;
   212b6:	f06f 0004 	mvn.w	r0, #4
   212ba:	e7da      	b.n	21272 <bt_hci_cmd_send_sync+0x5e>
			return -ECONNREFUSED;
   212bc:	f06f 006e 	mvn.w	r0, #110	; 0x6e
   212c0:	e7d7      	b.n	21272 <bt_hci_cmd_send_sync+0x5e>
		net_buf_unref(buf);
   212c2:	4620      	mov	r0, r4
   212c4:	f008 fa4c 	bl	29760 <net_buf_unref>
	return 0;
   212c8:	2000      	movs	r0, #0
   212ca:	e7d2      	b.n	21272 <bt_hci_cmd_send_sync+0x5e>
   212cc:	20002278 	.word	0x20002278
   212d0:	20000400 	.word	0x20000400
   212d4:	0003cfcc 	.word	0x0003cfcc
   212d8:	0003bdac 	.word	0x0003bdac
   212dc:	0003d0c0 	.word	0x0003d0c0

000212e0 <common_init>:
{
   212e0:	b510      	push	{r4, lr}
   212e2:	b082      	sub	sp, #8
	if (!(bt_dev.drv->quirks & BT_QUIRK_NO_RESET)) {
   212e4:	4b22      	ldr	r3, [pc, #136]	; (21370 <common_init+0x90>)
   212e6:	f8d3 3174 	ldr.w	r3, [r3, #372]	; 0x174
   212ea:	689b      	ldr	r3, [r3, #8]
   212ec:	f013 0f01 	tst.w	r3, #1
   212f0:	d10d      	bne.n	2130e <common_init+0x2e>
		err = bt_hci_cmd_send_sync(BT_HCI_OP_RESET, NULL, &rsp);
   212f2:	aa01      	add	r2, sp, #4
   212f4:	2100      	movs	r1, #0
   212f6:	f640 4003 	movw	r0, #3075	; 0xc03
   212fa:	f7ff ff8b 	bl	21214 <bt_hci_cmd_send_sync>
		if (err) {
   212fe:	4604      	mov	r4, r0
   21300:	b968      	cbnz	r0, 2131e <common_init+0x3e>
		hci_reset_complete(rsp);
   21302:	9801      	ldr	r0, [sp, #4]
   21304:	f7ff fb74 	bl	209f0 <hci_reset_complete>
		net_buf_unref(rsp);
   21308:	9801      	ldr	r0, [sp, #4]
   2130a:	f008 fa29 	bl	29760 <net_buf_unref>
	err = bt_hci_cmd_send_sync(BT_HCI_OP_READ_LOCAL_FEATURES, NULL, &rsp);
   2130e:	aa01      	add	r2, sp, #4
   21310:	2100      	movs	r1, #0
   21312:	f241 0003 	movw	r0, #4099	; 0x1003
   21316:	f7ff ff7d 	bl	21214 <bt_hci_cmd_send_sync>
	if (err) {
   2131a:	4604      	mov	r4, r0
   2131c:	b110      	cbz	r0, 21324 <common_init+0x44>
}
   2131e:	4620      	mov	r0, r4
   21320:	b002      	add	sp, #8
   21322:	bd10      	pop	{r4, pc}
	read_local_features_complete(rsp);
   21324:	9801      	ldr	r0, [sp, #4]
   21326:	f7ff fb7d 	bl	20a24 <read_local_features_complete>
	net_buf_unref(rsp);
   2132a:	9801      	ldr	r0, [sp, #4]
   2132c:	f008 fa18 	bl	29760 <net_buf_unref>
	err = bt_hci_cmd_send_sync(BT_HCI_OP_READ_LOCAL_VERSION_INFO, NULL,
   21330:	aa01      	add	r2, sp, #4
   21332:	2100      	movs	r1, #0
   21334:	f241 0001 	movw	r0, #4097	; 0x1001
   21338:	f7ff ff6c 	bl	21214 <bt_hci_cmd_send_sync>
	if (err) {
   2133c:	4604      	mov	r4, r0
   2133e:	2800      	cmp	r0, #0
   21340:	d1ed      	bne.n	2131e <common_init+0x3e>
	read_local_ver_complete(rsp);
   21342:	9801      	ldr	r0, [sp, #4]
   21344:	f7ff fb0e 	bl	20964 <read_local_ver_complete>
	net_buf_unref(rsp);
   21348:	9801      	ldr	r0, [sp, #4]
   2134a:	f008 fa09 	bl	29760 <net_buf_unref>
	err = bt_hci_cmd_send_sync(BT_HCI_OP_READ_SUPPORTED_COMMANDS, NULL,
   2134e:	aa01      	add	r2, sp, #4
   21350:	2100      	movs	r1, #0
   21352:	f241 0002 	movw	r0, #4098	; 0x1002
   21356:	f7ff ff5d 	bl	21214 <bt_hci_cmd_send_sync>
	if (err) {
   2135a:	4604      	mov	r4, r0
   2135c:	2800      	cmp	r0, #0
   2135e:	d1de      	bne.n	2131e <common_init+0x3e>
	read_supported_commands_complete(rsp);
   21360:	9801      	ldr	r0, [sp, #4]
   21362:	f7ff fb73 	bl	20a4c <read_supported_commands_complete>
	net_buf_unref(rsp);
   21366:	9801      	ldr	r0, [sp, #4]
   21368:	f008 f9fa 	bl	29760 <net_buf_unref>
	return 0;
   2136c:	e7d7      	b.n	2131e <common_init+0x3e>
   2136e:	bf00      	nop
   21370:	200002a8 	.word	0x200002a8

00021374 <hci_le_read_max_data_len>:
{
   21374:	b570      	push	{r4, r5, r6, lr}
   21376:	b082      	sub	sp, #8
   21378:	4605      	mov	r5, r0
   2137a:	460c      	mov	r4, r1
	err = bt_hci_cmd_send_sync(BT_HCI_OP_LE_READ_MAX_DATA_LEN, NULL, &rsp);
   2137c:	aa01      	add	r2, sp, #4
   2137e:	2100      	movs	r1, #0
   21380:	f242 002f 	movw	r0, #8239	; 0x202f
   21384:	f7ff ff46 	bl	21214 <bt_hci_cmd_send_sync>
	if (err) {
   21388:	4606      	mov	r6, r0
   2138a:	b960      	cbnz	r0, 213a6 <hci_le_read_max_data_len+0x32>
	rp = (void *)rsp->data;
   2138c:	9801      	ldr	r0, [sp, #4]
   2138e:	6883      	ldr	r3, [r0, #8]
	*tx_octets = sys_le16_to_cpu(rp->max_tx_octets);
   21390:	f8b3 2001 	ldrh.w	r2, [r3, #1]
   21394:	802a      	strh	r2, [r5, #0]
	*tx_time = sys_le16_to_cpu(rp->max_tx_time);
   21396:	f8b3 3003 	ldrh.w	r3, [r3, #3]
   2139a:	8023      	strh	r3, [r4, #0]
	net_buf_unref(rsp);
   2139c:	f008 f9e0 	bl	29760 <net_buf_unref>
}
   213a0:	4630      	mov	r0, r6
   213a2:	b002      	add	sp, #8
   213a4:	bd70      	pop	{r4, r5, r6, pc}
		BT_ERR("Failed to read DLE max data len");
   213a6:	2145      	movs	r1, #69	; 0x45
   213a8:	4801      	ldr	r0, [pc, #4]	; (213b0 <hci_le_read_max_data_len+0x3c>)
   213aa:	f012 fb9f 	bl	33aec <z_log_minimal_printk>
		return err;
   213ae:	e7f7      	b.n	213a0 <hci_le_read_max_data_len+0x2c>
   213b0:	0003d0e4 	.word	0x0003d0e4

000213b4 <le_set_event_mask>:
{
   213b4:	b570      	push	{r4, r5, r6, lr}
	buf = bt_hci_cmd_create(BT_HCI_OP_LE_SET_EVENT_MASK, sizeof(*cp_mask));
   213b6:	2108      	movs	r1, #8
   213b8:	f242 0001 	movw	r0, #8193	; 0x2001
   213bc:	f7ff fede 	bl	2117c <bt_hci_cmd_create>
	if (!buf) {
   213c0:	2800      	cmp	r0, #0
   213c2:	d04b      	beq.n	2145c <le_set_event_mask+0xa8>
   213c4:	4604      	mov	r4, r0
   213c6:	2108      	movs	r1, #8
   213c8:	4408      	add	r0, r1
   213ca:	f008 fae1 	bl	29990 <net_buf_simple_add>
		     BT_FEAT_LE_PRIVACY(bt_dev.le.features)) ||
   213ce:	4b25      	ldr	r3, [pc, #148]	; (21464 <le_set_event_mask+0xb0>)
   213d0:	f893 10d0 	ldrb.w	r1, [r3, #208]	; 0xd0
		if ((IS_ENABLED(CONFIG_BT_SMP) &&
   213d4:	f011 0f40 	tst.w	r1, #64	; 0x40
   213d8:	d03a      	beq.n	21450 <le_set_event_mask+0x9c>
			mask |= BT_EVT_MASK_LE_ENH_CONN_COMPLETE;
   213da:	f240 2602 	movw	r6, #514	; 0x202
   213de:	2500      	movs	r5, #0
		mask |= BT_EVT_MASK_LE_REMOTE_FEAT_COMPLETE;
   213e0:	f046 030c 	orr.w	r3, r6, #12
   213e4:	462a      	mov	r2, r5
		if (BT_FEAT_LE_CONN_PARAM_REQ_PROC(bt_dev.le.features)) {
   213e6:	f011 0f02 	tst.w	r1, #2
   213ea:	d001      	beq.n	213f0 <le_set_event_mask+0x3c>
			mask |= BT_EVT_MASK_LE_CONN_PARAM_REQ;
   213ec:	f046 032c 	orr.w	r3, r6, #44	; 0x2c
		if (IS_ENABLED(CONFIG_BT_DATA_LEN_UPDATE) &&
   213f0:	f011 0f20 	tst.w	r1, #32
   213f4:	d001      	beq.n	213fa <le_set_event_mask+0x46>
			mask |= BT_EVT_MASK_LE_DATA_LEN_CHANGE;
   213f6:	f043 0340 	orr.w	r3, r3, #64	; 0x40
		    (BT_FEAT_LE_PHY_2M(bt_dev.le.features) ||
   213fa:	4d1a      	ldr	r5, [pc, #104]	; (21464 <le_set_event_mask+0xb0>)
   213fc:	f895 50d1 	ldrb.w	r5, [r5, #209]	; 0xd1
		if (IS_ENABLED(CONFIG_BT_PHY_UPDATE) &&
   21400:	f015 0f09 	tst.w	r5, #9
   21404:	d001      	beq.n	2140a <le_set_event_mask+0x56>
			mask |= BT_EVT_MASK_LE_PHY_UPDATE_COMPLETE;
   21406:	f443 6300 	orr.w	r3, r3, #2048	; 0x800
	if (IS_ENABLED(CONFIG_BT_SMP) &&
   2140a:	f011 0f01 	tst.w	r1, #1
   2140e:	d001      	beq.n	21414 <le_set_event_mask+0x60>
		mask |= BT_EVT_MASK_LE_LTK_REQUEST;
   21410:	f043 0310 	orr.w	r3, r3, #16
	    (BT_CMD_TEST(bt_dev.supported_commands, 34, 1)) &&
   21414:	4913      	ldr	r1, [pc, #76]	; (21464 <le_set_event_mask+0xb0>)
   21416:	f891 109a 	ldrb.w	r1, [r1, #154]	; 0x9a
	if (IS_ENABLED(CONFIG_BT_ECC) &&
   2141a:	f001 0106 	and.w	r1, r1, #6
   2141e:	2906      	cmp	r1, #6
   21420:	d019      	beq.n	21456 <le_set_event_mask+0xa2>
	dst[0] = val;
   21422:	7003      	strb	r3, [r0, #0]
	dst[1] = val >> 8;
   21424:	f3c3 2107 	ubfx	r1, r3, #8, #8
   21428:	7041      	strb	r1, [r0, #1]
	sys_put_le16(val >> 16, &dst[2]);
   2142a:	0c19      	lsrs	r1, r3, #16
	dst[0] = val;
   2142c:	7081      	strb	r1, [r0, #2]
	dst[1] = val >> 8;
   2142e:	0e1b      	lsrs	r3, r3, #24
   21430:	70c3      	strb	r3, [r0, #3]
	dst[0] = val;
   21432:	7102      	strb	r2, [r0, #4]
	dst[1] = val >> 8;
   21434:	f3c2 2307 	ubfx	r3, r2, #8, #8
   21438:	7143      	strb	r3, [r0, #5]
	sys_put_le16(val >> 16, &dst[2]);
   2143a:	0c13      	lsrs	r3, r2, #16
	dst[0] = val;
   2143c:	7183      	strb	r3, [r0, #6]
	dst[1] = val >> 8;
   2143e:	0e12      	lsrs	r2, r2, #24
   21440:	71c2      	strb	r2, [r0, #7]
	return bt_hci_cmd_send_sync(BT_HCI_OP_LE_SET_EVENT_MASK, buf, NULL);
   21442:	2200      	movs	r2, #0
   21444:	4621      	mov	r1, r4
   21446:	f242 0001 	movw	r0, #8193	; 0x2001
   2144a:	f7ff fee3 	bl	21214 <bt_hci_cmd_send_sync>
}
   2144e:	bd70      	pop	{r4, r5, r6, pc}
			mask |= BT_EVT_MASK_LE_CONN_COMPLETE;
   21450:	2603      	movs	r6, #3
   21452:	2500      	movs	r5, #0
   21454:	e7c4      	b.n	213e0 <le_set_event_mask+0x2c>
		mask |= BT_EVT_MASK_LE_GENERATE_DHKEY_COMPLETE;
   21456:	f443 73c0 	orr.w	r3, r3, #384	; 0x180
   2145a:	e7e2      	b.n	21422 <le_set_event_mask+0x6e>
		return -ENOBUFS;
   2145c:	f06f 0068 	mvn.w	r0, #104	; 0x68
   21460:	e7f5      	b.n	2144e <le_set_event_mask+0x9a>
   21462:	bf00      	nop
   21464:	200002a8 	.word	0x200002a8

00021468 <le_init>:
{
   21468:	b510      	push	{r4, lr}
   2146a:	b082      	sub	sp, #8
	if (!BT_FEAT_LE(bt_dev.features)) {
   2146c:	4b54      	ldr	r3, [pc, #336]	; (215c0 <le_init+0x158>)
   2146e:	f893 3074 	ldrb.w	r3, [r3, #116]	; 0x74
   21472:	f013 0f40 	tst.w	r3, #64	; 0x40
   21476:	d00a      	beq.n	2148e <le_init+0x26>
	err = bt_hci_cmd_send_sync(BT_HCI_OP_LE_READ_LOCAL_FEATURES, NULL,
   21478:	aa01      	add	r2, sp, #4
   2147a:	2100      	movs	r1, #0
   2147c:	f242 0003 	movw	r0, #8195	; 0x2003
   21480:	f7ff fec8 	bl	21214 <bt_hci_cmd_send_sync>
	if (err) {
   21484:	4603      	mov	r3, r0
   21486:	b148      	cbz	r0, 2149c <le_init+0x34>
}
   21488:	4618      	mov	r0, r3
   2148a:	b002      	add	sp, #8
   2148c:	bd10      	pop	{r4, pc}
		BT_ERR("Non-LE capable controller detected!");
   2148e:	2145      	movs	r1, #69	; 0x45
   21490:	484c      	ldr	r0, [pc, #304]	; (215c4 <le_init+0x15c>)
   21492:	f012 fb2b 	bl	33aec <z_log_minimal_printk>
		return -ENODEV;
   21496:	f06f 0312 	mvn.w	r3, #18
   2149a:	e7f5      	b.n	21488 <le_init+0x20>
	read_le_features_complete(rsp);
   2149c:	9801      	ldr	r0, [sp, #4]
   2149e:	f7ff facb 	bl	20a38 <read_le_features_complete>
	net_buf_unref(rsp);
   214a2:	9801      	ldr	r0, [sp, #4]
   214a4:	f008 f95c 	bl	29760 <net_buf_unref>
		err = bt_hci_cmd_send_sync(BT_HCI_OP_LE_READ_BUFFER_SIZE,
   214a8:	aa01      	add	r2, sp, #4
   214aa:	2100      	movs	r1, #0
   214ac:	f242 0002 	movw	r0, #8194	; 0x2002
   214b0:	f7ff feb0 	bl	21214 <bt_hci_cmd_send_sync>
		if (err) {
   214b4:	4603      	mov	r3, r0
   214b6:	2800      	cmp	r0, #0
   214b8:	d1e6      	bne.n	21488 <le_init+0x20>
		le_read_buffer_size_complete(rsp);
   214ba:	9801      	ldr	r0, [sp, #4]
   214bc:	f7ff fad4 	bl	20a68 <le_read_buffer_size_complete>
		net_buf_unref(rsp);
   214c0:	9801      	ldr	r0, [sp, #4]
   214c2:	f008 f94d 	bl	29760 <net_buf_unref>
	if (BT_FEAT_BREDR(bt_dev.features)) {
   214c6:	4b3e      	ldr	r3, [pc, #248]	; (215c0 <le_init+0x158>)
   214c8:	f893 3074 	ldrb.w	r3, [r3, #116]	; 0x74
   214cc:	f013 0f20 	tst.w	r3, #32
   214d0:	d024      	beq.n	2151c <le_init+0xb4>
	if (BT_CMD_LE_STATES(bt_dev.supported_commands)) {
   214d2:	4b3b      	ldr	r3, [pc, #236]	; (215c0 <le_init+0x158>)
   214d4:	f893 3094 	ldrb.w	r3, [r3, #148]	; 0x94
   214d8:	f013 0f08 	tst.w	r3, #8
   214dc:	d137      	bne.n	2154e <le_init+0xe6>
	    BT_FEAT_LE_DLE(bt_dev.le.features)) {
   214de:	4b38      	ldr	r3, [pc, #224]	; (215c0 <le_init+0x158>)
   214e0:	f893 30d0 	ldrb.w	r3, [r3, #208]	; 0xd0
	if (IS_ENABLED(CONFIG_BT_CONN) &&
   214e4:	f013 0f20 	tst.w	r3, #32
   214e8:	d141      	bne.n	2156e <le_init+0x106>
	if (BT_FEAT_LE_PRIVACY(bt_dev.le.features)) {
   214ea:	4b35      	ldr	r3, [pc, #212]	; (215c0 <le_init+0x158>)
   214ec:	f893 30d0 	ldrb.w	r3, [r3, #208]	; 0xd0
   214f0:	f013 0f40 	tst.w	r3, #64	; 0x40
   214f4:	d00e      	beq.n	21514 <le_init+0xac>
		err = bt_hci_cmd_send_sync(BT_HCI_OP_LE_READ_RL_SIZE, NULL,
   214f6:	aa01      	add	r2, sp, #4
   214f8:	2100      	movs	r1, #0
   214fa:	f242 002a 	movw	r0, #8234	; 0x202a
   214fe:	f7ff fe89 	bl	21214 <bt_hci_cmd_send_sync>
		if (err) {
   21502:	4603      	mov	r3, r0
   21504:	2800      	cmp	r0, #0
   21506:	d1bf      	bne.n	21488 <le_init+0x20>
		le_read_resolving_list_size_complete(rsp);
   21508:	9801      	ldr	r0, [sp, #4]
   2150a:	f7ff fa5f 	bl	209cc <le_read_resolving_list_size_complete>
		net_buf_unref(rsp);
   2150e:	9801      	ldr	r0, [sp, #4]
   21510:	f008 f926 	bl	29760 <net_buf_unref>
	return  le_set_event_mask();
   21514:	f7ff ff4e 	bl	213b4 <le_set_event_mask>
   21518:	4603      	mov	r3, r0
   2151a:	e7b5      	b.n	21488 <le_init+0x20>
		buf = bt_hci_cmd_create(BT_HCI_OP_LE_WRITE_LE_HOST_SUPP,
   2151c:	2102      	movs	r1, #2
   2151e:	f640 406d 	movw	r0, #3181	; 0xc6d
   21522:	f7ff fe2b 	bl	2117c <bt_hci_cmd_create>
		if (!buf) {
   21526:	4604      	mov	r4, r0
   21528:	2800      	cmp	r0, #0
   2152a:	d046      	beq.n	215ba <le_init+0x152>
   2152c:	2102      	movs	r1, #2
   2152e:	3008      	adds	r0, #8
   21530:	f008 fa2e 	bl	29990 <net_buf_simple_add>
		cp_le->le = 0x01;
   21534:	2301      	movs	r3, #1
   21536:	7003      	strb	r3, [r0, #0]
		cp_le->simul = 0x00;
   21538:	2200      	movs	r2, #0
   2153a:	7042      	strb	r2, [r0, #1]
		err = bt_hci_cmd_send_sync(BT_HCI_OP_LE_WRITE_LE_HOST_SUPP, buf,
   2153c:	4621      	mov	r1, r4
   2153e:	f640 406d 	movw	r0, #3181	; 0xc6d
   21542:	f7ff fe67 	bl	21214 <bt_hci_cmd_send_sync>
		if (err) {
   21546:	4603      	mov	r3, r0
   21548:	2800      	cmp	r0, #0
   2154a:	d0c2      	beq.n	214d2 <le_init+0x6a>
   2154c:	e79c      	b.n	21488 <le_init+0x20>
		err = bt_hci_cmd_send_sync(BT_HCI_OP_LE_READ_SUPP_STATES, NULL,
   2154e:	aa01      	add	r2, sp, #4
   21550:	2100      	movs	r1, #0
   21552:	f242 001c 	movw	r0, #8220	; 0x201c
   21556:	f7ff fe5d 	bl	21214 <bt_hci_cmd_send_sync>
		if (err) {
   2155a:	4603      	mov	r3, r0
   2155c:	2800      	cmp	r0, #0
   2155e:	d193      	bne.n	21488 <le_init+0x20>
		le_read_supp_states_complete(rsp);
   21560:	9801      	ldr	r0, [sp, #4]
   21562:	f7ff fa15 	bl	20990 <le_read_supp_states_complete>
		net_buf_unref(rsp);
   21566:	9801      	ldr	r0, [sp, #4]
   21568:	f008 f8fa 	bl	29760 <net_buf_unref>
   2156c:	e7b7      	b.n	214de <le_init+0x76>
		err = hci_le_read_max_data_len(&tx_octets, &tx_time);
   2156e:	f10d 0102 	add.w	r1, sp, #2
   21572:	4668      	mov	r0, sp
   21574:	f7ff fefe 	bl	21374 <hci_le_read_max_data_len>
		if (err) {
   21578:	4603      	mov	r3, r0
   2157a:	2800      	cmp	r0, #0
   2157c:	d184      	bne.n	21488 <le_init+0x20>
		buf = bt_hci_cmd_create(BT_HCI_OP_LE_WRITE_DEFAULT_DATA_LEN,
   2157e:	2104      	movs	r1, #4
   21580:	f242 0024 	movw	r0, #8228	; 0x2024
   21584:	f7ff fdfa 	bl	2117c <bt_hci_cmd_create>
		if (!buf) {
   21588:	4604      	mov	r4, r0
   2158a:	b198      	cbz	r0, 215b4 <le_init+0x14c>
   2158c:	2104      	movs	r1, #4
   2158e:	3008      	adds	r0, #8
   21590:	f008 f9fe 	bl	29990 <net_buf_simple_add>
		cp->max_tx_octets = sys_cpu_to_le16(tx_octets);
   21594:	f8bd 3000 	ldrh.w	r3, [sp]
   21598:	8003      	strh	r3, [r0, #0]
		cp->max_tx_time = sys_cpu_to_le16(tx_time);
   2159a:	f8bd 3002 	ldrh.w	r3, [sp, #2]
   2159e:	8043      	strh	r3, [r0, #2]
		err = bt_hci_cmd_send_sync(BT_HCI_OP_LE_WRITE_DEFAULT_DATA_LEN,
   215a0:	2200      	movs	r2, #0
   215a2:	4621      	mov	r1, r4
   215a4:	f242 0024 	movw	r0, #8228	; 0x2024
   215a8:	f7ff fe34 	bl	21214 <bt_hci_cmd_send_sync>
		if (err) {
   215ac:	4603      	mov	r3, r0
   215ae:	2800      	cmp	r0, #0
   215b0:	d09b      	beq.n	214ea <le_init+0x82>
   215b2:	e769      	b.n	21488 <le_init+0x20>
			return -ENOBUFS;
   215b4:	f06f 0368 	mvn.w	r3, #104	; 0x68
   215b8:	e766      	b.n	21488 <le_init+0x20>
			return -ENOBUFS;
   215ba:	f06f 0368 	mvn.w	r3, #104	; 0x68
   215be:	e763      	b.n	21488 <le_init+0x20>
   215c0:	200002a8 	.word	0x200002a8
   215c4:	0003d10c 	.word	0x0003d10c

000215c8 <bt_br_init>:
{
   215c8:	b510      	push	{r4, lr}
   215ca:	b082      	sub	sp, #8
	if (bt_dev.le.acl_mtu) {
   215cc:	4b0b      	ldr	r3, [pc, #44]	; (215fc <bt_br_init+0x34>)
   215ce:	f8b3 30fc 	ldrh.w	r3, [r3, #252]	; 0xfc
   215d2:	b11b      	cbz	r3, 215dc <bt_br_init+0x14>
		return 0;
   215d4:	2400      	movs	r4, #0
}
   215d6:	4620      	mov	r0, r4
   215d8:	b002      	add	sp, #8
   215da:	bd10      	pop	{r4, pc}
	err = bt_hci_cmd_send_sync(BT_HCI_OP_READ_BUFFER_SIZE, NULL, &rsp);
   215dc:	aa01      	add	r2, sp, #4
   215de:	2100      	movs	r1, #0
   215e0:	f241 0005 	movw	r0, #4101	; 0x1005
   215e4:	f7ff fe16 	bl	21214 <bt_hci_cmd_send_sync>
	if (err) {
   215e8:	4604      	mov	r4, r0
   215ea:	2800      	cmp	r0, #0
   215ec:	d1f3      	bne.n	215d6 <bt_br_init+0xe>
	read_buffer_size_complete(rsp);
   215ee:	9801      	ldr	r0, [sp, #4]
   215f0:	f7ff fa4e 	bl	20a90 <read_buffer_size_complete>
	net_buf_unref(rsp);
   215f4:	9801      	ldr	r0, [sp, #4]
   215f6:	f008 f8b3 	bl	29760 <net_buf_unref>
	return 0;
   215fa:	e7ec      	b.n	215d6 <bt_br_init+0xe>
   215fc:	200002a8 	.word	0x200002a8

00021600 <set_event_mask>:
{
   21600:	b510      	push	{r4, lr}
	buf = bt_hci_cmd_create(BT_HCI_OP_SET_EVENT_MASK, sizeof(*ev));
   21602:	2108      	movs	r1, #8
   21604:	f640 4001 	movw	r0, #3073	; 0xc01
   21608:	f7ff fdb8 	bl	2117c <bt_hci_cmd_create>
	if (!buf) {
   2160c:	b338      	cbz	r0, 2165e <set_event_mask+0x5e>
   2160e:	4604      	mov	r4, r0
   21610:	2108      	movs	r1, #8
   21612:	4408      	add	r0, r1
   21614:	f008 f9bc 	bl	29990 <net_buf_simple_add>
	    BT_FEAT_LE_ENCR(bt_dev.le.features)) {
   21618:	4b12      	ldr	r3, [pc, #72]	; (21664 <set_event_mask+0x64>)
   2161a:	f893 30d0 	ldrb.w	r3, [r3, #208]	; 0xd0
	if (IS_ENABLED(CONFIG_BT_SMP) &&
   2161e:	f013 0f01 	tst.w	r3, #1
   21622:	d119      	bne.n	21658 <set_event_mask+0x58>
		mask |= BT_EVT_MASK_REMOTE_VERSION_INFO;
   21624:	4a10      	ldr	r2, [pc, #64]	; (21668 <set_event_mask+0x68>)
   21626:	f04f 5300 	mov.w	r3, #536870912	; 0x20000000
	sys_put_le16(val, dst);
   2162a:	b291      	uxth	r1, r2
	dst[0] = val;
   2162c:	7002      	strb	r2, [r0, #0]
	dst[1] = val >> 8;
   2162e:	0a09      	lsrs	r1, r1, #8
   21630:	7041      	strb	r1, [r0, #1]
	sys_put_le16(val >> 16, &dst[2]);
   21632:	0c11      	lsrs	r1, r2, #16
	dst[0] = val;
   21634:	7081      	strb	r1, [r0, #2]
	dst[1] = val >> 8;
   21636:	0e12      	lsrs	r2, r2, #24
   21638:	70c2      	strb	r2, [r0, #3]
	sys_put_le16(val, dst);
   2163a:	b29a      	uxth	r2, r3
	dst[0] = val;
   2163c:	7103      	strb	r3, [r0, #4]
	dst[1] = val >> 8;
   2163e:	0a12      	lsrs	r2, r2, #8
   21640:	7142      	strb	r2, [r0, #5]
	sys_put_le16(val >> 16, &dst[2]);
   21642:	0c1a      	lsrs	r2, r3, #16
	dst[0] = val;
   21644:	7182      	strb	r2, [r0, #6]
	dst[1] = val >> 8;
   21646:	0e1b      	lsrs	r3, r3, #24
   21648:	71c3      	strb	r3, [r0, #7]
	return bt_hci_cmd_send_sync(BT_HCI_OP_SET_EVENT_MASK, buf, NULL);
   2164a:	2200      	movs	r2, #0
   2164c:	4621      	mov	r1, r4
   2164e:	f640 4001 	movw	r0, #3073	; 0xc01
   21652:	f7ff fddf 	bl	21214 <bt_hci_cmd_send_sync>
}
   21656:	bd10      	pop	{r4, pc}
		mask |= BT_EVT_MASK_ENCRYPT_KEY_REFRESH_COMPLETE;
   21658:	4a04      	ldr	r2, [pc, #16]	; (2166c <set_event_mask+0x6c>)
   2165a:	4b05      	ldr	r3, [pc, #20]	; (21670 <set_event_mask+0x70>)
   2165c:	e7e5      	b.n	2162a <set_event_mask+0x2a>
		return -ENOBUFS;
   2165e:	f06f 0068 	mvn.w	r0, #104	; 0x68
   21662:	e7f8      	b.n	21656 <set_event_mask+0x56>
   21664:	200002a8 	.word	0x200002a8
   21668:	02008810 	.word	0x02008810
   2166c:	02008890 	.word	0x02008890
   21670:	20008000 	.word	0x20008000

00021674 <hci_vs_init>:
{
   21674:	b510      	push	{r4, lr}
   21676:	b082      	sub	sp, #8
	err = bt_hci_cmd_send_sync(BT_HCI_OP_VS_READ_VERSION_INFO, NULL, &rsp);
   21678:	aa01      	add	r2, sp, #4
   2167a:	2100      	movs	r1, #0
   2167c:	f64f 4001 	movw	r0, #64513	; 0xfc01
   21680:	f7ff fdc8 	bl	21214 <bt_hci_cmd_send_sync>
	if (err) {
   21684:	bb60      	cbnz	r0, 216e0 <hci_vs_init+0x6c>
	net_buf_unref(rsp);
   21686:	9801      	ldr	r0, [sp, #4]
   21688:	f008 f86a 	bl	29760 <net_buf_unref>
	err = bt_hci_cmd_send_sync(BT_HCI_OP_VS_READ_SUPPORTED_COMMANDS,
   2168c:	aa01      	add	r2, sp, #4
   2168e:	2100      	movs	r1, #0
   21690:	f64f 4002 	movw	r0, #64514	; 0xfc02
   21694:	f7ff fdbe 	bl	21214 <bt_hci_cmd_send_sync>
	if (err) {
   21698:	bb40      	cbnz	r0, 216ec <hci_vs_init+0x78>
	rp.cmds = (void *)rsp->data;
   2169a:	9b01      	ldr	r3, [sp, #4]
   2169c:	6899      	ldr	r1, [r3, #8]
	memcpy(bt_dev.vs_commands, rp.cmds->commands, BT_DEV_VS_CMDS_MAX);
   2169e:	4c18      	ldr	r4, [pc, #96]	; (21700 <hci_vs_init+0x8c>)
   216a0:	2202      	movs	r2, #2
   216a2:	3101      	adds	r1, #1
   216a4:	f104 00b9 	add.w	r0, r4, #185	; 0xb9
   216a8:	f014 fa28 	bl	35afc <memcpy>
	net_buf_unref(rsp);
   216ac:	9801      	ldr	r0, [sp, #4]
   216ae:	f008 f857 	bl	29760 <net_buf_unref>
	if (BT_VS_CMD_SUP_FEAT(bt_dev.vs_commands)) {
   216b2:	f894 30b9 	ldrb.w	r3, [r4, #185]	; 0xb9
   216b6:	f013 0f04 	tst.w	r3, #4
   216ba:	d015      	beq.n	216e8 <hci_vs_init+0x74>
		err = bt_hci_cmd_send_sync(BT_HCI_OP_VS_READ_SUPPORTED_FEATURES,
   216bc:	aa01      	add	r2, sp, #4
   216be:	2100      	movs	r1, #0
   216c0:	f64f 4003 	movw	r0, #64515	; 0xfc03
   216c4:	f7ff fda6 	bl	21214 <bt_hci_cmd_send_sync>
		if (err) {
   216c8:	b9a8      	cbnz	r0, 216f6 <hci_vs_init+0x82>
		rp.feat = (void *)rsp->data;
   216ca:	9b01      	ldr	r3, [sp, #4]
   216cc:	6899      	ldr	r1, [r3, #8]
		memcpy(bt_dev.vs_features, rp.feat->features,
   216ce:	2201      	movs	r2, #1
   216d0:	4411      	add	r1, r2
   216d2:	480c      	ldr	r0, [pc, #48]	; (21704 <hci_vs_init+0x90>)
   216d4:	f014 fa12 	bl	35afc <memcpy>
		net_buf_unref(rsp);
   216d8:	9801      	ldr	r0, [sp, #4]
   216da:	f008 f841 	bl	29760 <net_buf_unref>
   216de:	e003      	b.n	216e8 <hci_vs_init+0x74>
		BT_WARN("Vendor HCI extensions not available");
   216e0:	2157      	movs	r1, #87	; 0x57
   216e2:	4809      	ldr	r0, [pc, #36]	; (21708 <hci_vs_init+0x94>)
   216e4:	f012 fa02 	bl	33aec <z_log_minimal_printk>
}
   216e8:	b002      	add	sp, #8
   216ea:	bd10      	pop	{r4, pc}
		BT_WARN("Failed to read supported vendor commands");
   216ec:	2157      	movs	r1, #87	; 0x57
   216ee:	4807      	ldr	r0, [pc, #28]	; (2170c <hci_vs_init+0x98>)
   216f0:	f012 f9fc 	bl	33aec <z_log_minimal_printk>
		return;
   216f4:	e7f8      	b.n	216e8 <hci_vs_init+0x74>
			BT_WARN("Failed to read supported vendor features");
   216f6:	2157      	movs	r1, #87	; 0x57
   216f8:	4805      	ldr	r0, [pc, #20]	; (21710 <hci_vs_init+0x9c>)
   216fa:	f012 f9f7 	bl	33aec <z_log_minimal_printk>
			return;
   216fe:	e7f3      	b.n	216e8 <hci_vs_init+0x74>
   21700:	200002a8 	.word	0x200002a8
   21704:	20000360 	.word	0x20000360
   21708:	0003d138 	.word	0x0003d138
   2170c:	0003d164 	.word	0x0003d164
   21710:	0003d194 	.word	0x0003d194

00021714 <hci_init>:
{
   21714:	b508      	push	{r3, lr}
	err = common_init();
   21716:	f7ff fde3 	bl	212e0 <common_init>
	if (err) {
   2171a:	4603      	mov	r3, r0
   2171c:	b108      	cbz	r0, 21722 <hci_init+0xe>
}
   2171e:	4618      	mov	r0, r3
   21720:	bd08      	pop	{r3, pc}
	err = le_init();
   21722:	f7ff fea1 	bl	21468 <le_init>
	if (err) {
   21726:	4603      	mov	r3, r0
   21728:	2800      	cmp	r0, #0
   2172a:	d1f8      	bne.n	2171e <hci_init+0xa>
	if (BT_FEAT_BREDR(bt_dev.features)) {
   2172c:	4b0a      	ldr	r3, [pc, #40]	; (21758 <hci_init+0x44>)
   2172e:	f893 3074 	ldrb.w	r3, [r3, #116]	; 0x74
   21732:	f013 0f20 	tst.w	r3, #32
   21736:	d104      	bne.n	21742 <hci_init+0x2e>
		err = bt_br_init();
   21738:	f7ff ff46 	bl	215c8 <bt_br_init>
		if (err) {
   2173c:	4603      	mov	r3, r0
   2173e:	2800      	cmp	r0, #0
   21740:	d1ed      	bne.n	2171e <hci_init+0xa>
	err = set_event_mask();
   21742:	f7ff ff5d 	bl	21600 <set_event_mask>
	if (err) {
   21746:	4603      	mov	r3, r0
   21748:	2800      	cmp	r0, #0
   2174a:	d1e8      	bne.n	2171e <hci_init+0xa>
	hci_vs_init();
   2174c:	f7ff ff92 	bl	21674 <hci_vs_init>
	err = bt_id_init();
   21750:	f014 fda2 	bl	36298 <bt_id_init>
   21754:	4603      	mov	r3, r0
	if (err) {
   21756:	e7e2      	b.n	2171e <hci_init+0xa>
   21758:	200002a8 	.word	0x200002a8

0002175c <hci_encrypt_key_refresh_complete>:
{
   2175c:	b570      	push	{r4, r5, r6, lr}
	struct bt_hci_evt_encrypt_key_refresh_complete *evt = (void *)buf->data;
   2175e:	6883      	ldr	r3, [r0, #8]
	uint8_t status = evt->status;
   21760:	781c      	ldrb	r4, [r3, #0]
	handle = sys_le16_to_cpu(evt->handle);
   21762:	f8b3 6001 	ldrh.w	r6, [r3, #1]
	conn = bt_conn_lookup_handle(handle);
   21766:	4630      	mov	r0, r6
   21768:	f002 f85a 	bl	23820 <bt_conn_lookup_handle>
	if (!conn) {
   2176c:	b188      	cbz	r0, 21792 <hci_encrypt_key_refresh_complete+0x36>
   2176e:	4605      	mov	r5, r0
	if (status) {
   21770:	b9ac      	cbnz	r4, 2179e <hci_encrypt_key_refresh_complete+0x42>
	if (conn->type == BT_CONN_TYPE_LE) {
   21772:	7883      	ldrb	r3, [r0, #2]
   21774:	2b01      	cmp	r3, #1
   21776:	d01e      	beq.n	217b6 <hci_encrypt_key_refresh_complete+0x5a>
	bt_conn_security_changed(conn, status, bt_security_err_get(status));
   21778:	4620      	mov	r0, r4
   2177a:	f014 fbc3 	bl	35f04 <bt_security_err_get>
   2177e:	4602      	mov	r2, r0
   21780:	4621      	mov	r1, r4
   21782:	4628      	mov	r0, r5
   21784:	f002 fa76 	bl	23c74 <bt_conn_security_changed>
	if (status) {
   21788:	b9f4      	cbnz	r4, 217c8 <hci_encrypt_key_refresh_complete+0x6c>
	bt_conn_unref(conn);
   2178a:	4628      	mov	r0, r5
   2178c:	f002 f816 	bl	237bc <bt_conn_unref>
}
   21790:	bd70      	pop	{r4, r5, r6, pc}
		BT_ERR("Unable to look up conn with handle %u", handle);
   21792:	4632      	mov	r2, r6
   21794:	2145      	movs	r1, #69	; 0x45
   21796:	4811      	ldr	r0, [pc, #68]	; (217dc <hci_encrypt_key_refresh_complete+0x80>)
   21798:	f012 f9a8 	bl	33aec <z_log_minimal_printk>
		return;
   2179c:	e7f8      	b.n	21790 <hci_encrypt_key_refresh_complete+0x34>
		bt_conn_security_changed(conn, status,
   2179e:	4620      	mov	r0, r4
   217a0:	f014 fbb0 	bl	35f04 <bt_security_err_get>
   217a4:	4602      	mov	r2, r0
   217a6:	4621      	mov	r1, r4
   217a8:	4628      	mov	r0, r5
   217aa:	f002 fa63 	bl	23c74 <bt_conn_security_changed>
		bt_conn_unref(conn);
   217ae:	4628      	mov	r0, r5
   217b0:	f002 f804 	bl	237bc <bt_conn_unref>
		return;
   217b4:	e7ec      	b.n	21790 <hci_encrypt_key_refresh_complete+0x34>
		bt_smp_update_keys(conn);
   217b6:	f007 fb05 	bl	28dc4 <bt_smp_update_keys>
		if (!update_sec_level(conn)) {
   217ba:	4628      	mov	r0, r5
   217bc:	f014 fb2b 	bl	35e16 <update_sec_level>
   217c0:	2800      	cmp	r0, #0
   217c2:	d1d9      	bne.n	21778 <hci_encrypt_key_refresh_complete+0x1c>
			status = BT_HCI_ERR_AUTH_FAIL;
   217c4:	2405      	movs	r4, #5
   217c6:	e7d7      	b.n	21778 <hci_encrypt_key_refresh_complete+0x1c>
		BT_ERR("Failed to set required security level");
   217c8:	2145      	movs	r1, #69	; 0x45
   217ca:	4805      	ldr	r0, [pc, #20]	; (217e0 <hci_encrypt_key_refresh_complete+0x84>)
   217cc:	f012 f98e 	bl	33aec <z_log_minimal_printk>
		bt_conn_disconnect(conn, status);
   217d0:	4621      	mov	r1, r4
   217d2:	4628      	mov	r0, r5
   217d4:	f015 f865 	bl	368a2 <bt_conn_disconnect>
   217d8:	e7d7      	b.n	2178a <hci_encrypt_key_refresh_complete+0x2e>
   217da:	bf00      	nop
   217dc:	0003ce6c 	.word	0x0003ce6c
   217e0:	0003d1c4 	.word	0x0003d1c4

000217e4 <hci_encrypt_change>:
{
   217e4:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
	struct bt_hci_evt_encrypt_change *evt = (void *)buf->data;
   217e6:	6886      	ldr	r6, [r0, #8]
	uint16_t handle = sys_le16_to_cpu(evt->handle);
   217e8:	f8b6 7001 	ldrh.w	r7, [r6, #1]
	uint8_t status = evt->status;
   217ec:	7835      	ldrb	r5, [r6, #0]
	conn = bt_conn_lookup_handle(handle);
   217ee:	4638      	mov	r0, r7
   217f0:	f002 f816 	bl	23820 <bt_conn_lookup_handle>
	if (!conn) {
   217f4:	b198      	cbz	r0, 2181e <hci_encrypt_change+0x3a>
   217f6:	4604      	mov	r4, r0
	if (status) {
   217f8:	b9bd      	cbnz	r5, 2182a <hci_encrypt_change+0x46>
	conn->encrypt = evt->encrypt;
   217fa:	78f3      	ldrb	r3, [r6, #3]
   217fc:	72c3      	strb	r3, [r0, #11]
	if (conn->type == BT_CONN_TYPE_LE) {
   217fe:	7882      	ldrb	r2, [r0, #2]
   21800:	2a01      	cmp	r2, #1
   21802:	d01e      	beq.n	21842 <hci_encrypt_change+0x5e>
	bt_conn_security_changed(conn, status, bt_security_err_get(status));
   21804:	4628      	mov	r0, r5
   21806:	f014 fb7d 	bl	35f04 <bt_security_err_get>
   2180a:	4602      	mov	r2, r0
   2180c:	4629      	mov	r1, r5
   2180e:	4620      	mov	r0, r4
   21810:	f002 fa30 	bl	23c74 <bt_conn_security_changed>
	if (status) {
   21814:	bb05      	cbnz	r5, 21858 <hci_encrypt_change+0x74>
	bt_conn_unref(conn);
   21816:	4620      	mov	r0, r4
   21818:	f001 ffd0 	bl	237bc <bt_conn_unref>
}
   2181c:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
		BT_ERR("Unable to look up conn with handle %u", handle);
   2181e:	463a      	mov	r2, r7
   21820:	2145      	movs	r1, #69	; 0x45
   21822:	4812      	ldr	r0, [pc, #72]	; (2186c <hci_encrypt_change+0x88>)
   21824:	f012 f962 	bl	33aec <z_log_minimal_printk>
		return;
   21828:	e7f8      	b.n	2181c <hci_encrypt_change+0x38>
		bt_conn_security_changed(conn, status,
   2182a:	4628      	mov	r0, r5
   2182c:	f014 fb6a 	bl	35f04 <bt_security_err_get>
   21830:	4602      	mov	r2, r0
   21832:	4629      	mov	r1, r5
   21834:	4620      	mov	r0, r4
   21836:	f002 fa1d 	bl	23c74 <bt_conn_security_changed>
		bt_conn_unref(conn);
   2183a:	4620      	mov	r0, r4
   2183c:	f001 ffbe 	bl	237bc <bt_conn_unref>
		return;
   21840:	e7ec      	b.n	2181c <hci_encrypt_change+0x38>
		if (conn->encrypt) {
   21842:	b933      	cbnz	r3, 21852 <hci_encrypt_change+0x6e>
		if (!update_sec_level(conn)) {
   21844:	4620      	mov	r0, r4
   21846:	f014 fae6 	bl	35e16 <update_sec_level>
   2184a:	2800      	cmp	r0, #0
   2184c:	d1da      	bne.n	21804 <hci_encrypt_change+0x20>
			status = BT_HCI_ERR_AUTH_FAIL;
   2184e:	2505      	movs	r5, #5
   21850:	e7d8      	b.n	21804 <hci_encrypt_change+0x20>
			bt_smp_update_keys(conn);
   21852:	f007 fab7 	bl	28dc4 <bt_smp_update_keys>
   21856:	e7f5      	b.n	21844 <hci_encrypt_change+0x60>
		BT_ERR("Failed to set required security level");
   21858:	2145      	movs	r1, #69	; 0x45
   2185a:	4805      	ldr	r0, [pc, #20]	; (21870 <hci_encrypt_change+0x8c>)
   2185c:	f012 f946 	bl	33aec <z_log_minimal_printk>
		bt_conn_disconnect(conn, status);
   21860:	4629      	mov	r1, r5
   21862:	4620      	mov	r0, r4
   21864:	f015 f81d 	bl	368a2 <bt_conn_disconnect>
   21868:	e7d5      	b.n	21816 <hci_encrypt_change+0x32>
   2186a:	bf00      	nop
   2186c:	0003ce6c 	.word	0x0003ce6c
   21870:	0003d1c4 	.word	0x0003d1c4

00021874 <bt_hci_cmd_send>:
{
   21874:	b538      	push	{r3, r4, r5, lr}
   21876:	4604      	mov	r4, r0
	if (!buf) {
   21878:	460d      	mov	r5, r1
   2187a:	b151      	cbz	r1, 21892 <bt_hci_cmd_send+0x1e>
	if (opcode == BT_HCI_OP_HOST_NUM_COMPLETED_PACKETS) {
   2187c:	f640 4335 	movw	r3, #3125	; 0xc35
   21880:	429c      	cmp	r4, r3
   21882:	d00e      	beq.n	218a2 <bt_hci_cmd_send+0x2e>
	net_buf_put(&bt_dev.cmd_tx_queue, buf);
   21884:	4629      	mov	r1, r5
   21886:	480e      	ldr	r0, [pc, #56]	; (218c0 <bt_hci_cmd_send+0x4c>)
   21888:	f007 ff38 	bl	296fc <net_buf_put>
	return 0;
   2188c:	2400      	movs	r4, #0
}
   2188e:	4620      	mov	r0, r4
   21890:	bd38      	pop	{r3, r4, r5, pc}
		buf = bt_hci_cmd_create(opcode, 0);
   21892:	f7ff fc73 	bl	2117c <bt_hci_cmd_create>
		if (!buf) {
   21896:	4605      	mov	r5, r0
   21898:	2800      	cmp	r0, #0
   2189a:	d1ef      	bne.n	2187c <bt_hci_cmd_send+0x8>
			return -ENOBUFS;
   2189c:	f06f 0468 	mvn.w	r4, #104	; 0x68
   218a0:	e7f5      	b.n	2188e <bt_hci_cmd_send+0x1a>
		err = bt_send(buf);
   218a2:	4628      	mov	r0, r5
   218a4:	f014 fb53 	bl	35f4e <bt_send>
		if (err) {
   218a8:	4604      	mov	r4, r0
   218aa:	2800      	cmp	r0, #0
   218ac:	d0ef      	beq.n	2188e <bt_hci_cmd_send+0x1a>
			BT_ERR("Unable to send to driver (err %d)", err);
   218ae:	4602      	mov	r2, r0
   218b0:	2145      	movs	r1, #69	; 0x45
   218b2:	4804      	ldr	r0, [pc, #16]	; (218c4 <bt_hci_cmd_send+0x50>)
   218b4:	f012 f91a 	bl	33aec <z_log_minimal_printk>
			net_buf_unref(buf);
   218b8:	4628      	mov	r0, r5
   218ba:	f007 ff51 	bl	29760 <net_buf_unref>
		return err;
   218be:	e7e6      	b.n	2188e <bt_hci_cmd_send+0x1a>
   218c0:	20000400 	.word	0x20000400
   218c4:	0003d1f0 	.word	0x0003d1f0

000218c8 <conn_auto_initiate>:
	if (conn->state != BT_CONN_CONNECTED) {
   218c8:	7b43      	ldrb	r3, [r0, #13]
   218ca:	2b07      	cmp	r3, #7
   218cc:	d000      	beq.n	218d0 <conn_auto_initiate+0x8>
   218ce:	4770      	bx	lr
{
   218d0:	b530      	push	{r4, r5, lr}
   218d2:	b085      	sub	sp, #20
   218d4:	4604      	mov	r4, r0
	if (!atomic_test_bit(conn->flags, BT_CONN_AUTO_FEATURE_EXCH) &&
   218d6:	1d05      	adds	r5, r0, #4
	return __atomic_load_n(target, __ATOMIC_SEQ_CST);
   218d8:	f3bf 8f5b 	dmb	ish
   218dc:	6843      	ldr	r3, [r0, #4]
   218de:	f3bf 8f5b 	dmb	ish
   218e2:	f413 5f00 	tst.w	r3, #8192	; 0x2000
   218e6:	d10b      	bne.n	21900 <conn_auto_initiate+0x38>
	    ((conn->role == BT_HCI_ROLE_CENTRAL) ||
   218e8:	78c3      	ldrb	r3, [r0, #3]
	if (!atomic_test_bit(conn->flags, BT_CONN_AUTO_FEATURE_EXCH) &&
   218ea:	b12b      	cbz	r3, 218f8 <conn_auto_initiate+0x30>
	     BT_FEAT_LE_PER_INIT_FEAT_XCHG(bt_dev.le.features))) {
   218ec:	4b2b      	ldr	r3, [pc, #172]	; (2199c <conn_auto_initiate+0xd4>)
   218ee:	f893 30d0 	ldrb.w	r3, [r3, #208]	; 0xd0
	    ((conn->role == BT_HCI_ROLE_CENTRAL) ||
   218f2:	f013 0f08 	tst.w	r3, #8
   218f6:	d003      	beq.n	21900 <conn_auto_initiate+0x38>
		err = hci_le_read_remote_features(conn);
   218f8:	4620      	mov	r0, r4
   218fa:	f014 fb6c 	bl	35fd6 <hci_le_read_remote_features>
		if (!err) {
   218fe:	b1d0      	cbz	r0, 21936 <conn_auto_initiate+0x6e>
   21900:	f3bf 8f5b 	dmb	ish
   21904:	6863      	ldr	r3, [r4, #4]
   21906:	f3bf 8f5b 	dmb	ish
	if (IS_ENABLED(CONFIG_BT_AUTO_PHY_UPDATE) &&
   2190a:	f413 5f80 	tst.w	r3, #4096	; 0x1000
   2190e:	d105      	bne.n	2191c <conn_auto_initiate+0x54>
	    BT_FEAT_LE_PHY_2M(bt_dev.le.features)) {
   21910:	4b22      	ldr	r3, [pc, #136]	; (2199c <conn_auto_initiate+0xd4>)
   21912:	f893 30d1 	ldrb.w	r3, [r3, #209]	; 0xd1
	    !atomic_test_bit(conn->flags, BT_CONN_AUTO_PHY_COMPLETE) &&
   21916:	f013 0f01 	tst.w	r3, #1
   2191a:	d10e      	bne.n	2193a <conn_auto_initiate+0x72>
	    BT_FEAT_LE_DLE(bt_dev.le.features)) {
   2191c:	4b1f      	ldr	r3, [pc, #124]	; (2199c <conn_auto_initiate+0xd4>)
   2191e:	f893 30d0 	ldrb.w	r3, [r3, #208]	; 0xd0
	if (IS_ENABLED(CONFIG_BT_AUTO_DATA_LEN_UPDATE) &&
   21922:	f013 0f20 	tst.w	r3, #32
   21926:	d006      	beq.n	21936 <conn_auto_initiate+0x6e>
		if (IS_BT_QUIRK_NO_AUTO_DLE(&bt_dev)) {
   21928:	4b1c      	ldr	r3, [pc, #112]	; (2199c <conn_auto_initiate+0xd4>)
   2192a:	f8d3 3174 	ldr.w	r3, [r3, #372]	; 0x174
   2192e:	689b      	ldr	r3, [r3, #8]
   21930:	f013 0f02 	tst.w	r3, #2
   21934:	d11c      	bne.n	21970 <conn_auto_initiate+0xa8>
}
   21936:	b005      	add	sp, #20
   21938:	bd30      	pop	{r4, r5, pc}
		err = bt_le_set_phy(conn, 0U, BT_HCI_LE_PHY_PREFER_2M,
   2193a:	2100      	movs	r1, #0
   2193c:	9100      	str	r1, [sp, #0]
   2193e:	2302      	movs	r3, #2
   21940:	461a      	mov	r2, r3
   21942:	4620      	mov	r0, r4
   21944:	f014 fb23 	bl	35f8e <bt_le_set_phy>
		if (!err) {
   21948:	4602      	mov	r2, r0
   2194a:	b120      	cbz	r0, 21956 <conn_auto_initiate+0x8e>
		BT_ERR("Failed to set LE PHY (%d)", err);
   2194c:	2145      	movs	r1, #69	; 0x45
   2194e:	4814      	ldr	r0, [pc, #80]	; (219a0 <conn_auto_initiate+0xd8>)
   21950:	f012 f8cc 	bl	33aec <z_log_minimal_printk>
   21954:	e7e2      	b.n	2191c <conn_auto_initiate+0x54>
	return __atomic_fetch_or(target, value, __ATOMIC_SEQ_CST);
   21956:	f3bf 8f5b 	dmb	ish
   2195a:	e855 3f00 	ldrex	r3, [r5]
   2195e:	f043 0380 	orr.w	r3, r3, #128	; 0x80
   21962:	e845 3200 	strex	r2, r3, [r5]
   21966:	2a00      	cmp	r2, #0
   21968:	d1f7      	bne.n	2195a <conn_auto_initiate+0x92>
   2196a:	f3bf 8f5b 	dmb	ish
			return;
   2196e:	e7e2      	b.n	21936 <conn_auto_initiate+0x6e>
			err = hci_le_read_max_data_len(&tx_octets, &tx_time);
   21970:	f10d 010e 	add.w	r1, sp, #14
   21974:	a803      	add	r0, sp, #12
   21976:	f7ff fcfd 	bl	21374 <hci_le_read_max_data_len>
			if (!err) {
   2197a:	2800      	cmp	r0, #0
   2197c:	d1db      	bne.n	21936 <conn_auto_initiate+0x6e>
				err = bt_le_set_data_len(conn,
   2197e:	f8bd 200e 	ldrh.w	r2, [sp, #14]
   21982:	f8bd 100c 	ldrh.w	r1, [sp, #12]
   21986:	4620      	mov	r0, r4
   21988:	f014 fae5 	bl	35f56 <bt_le_set_data_len>
				if (err) {
   2198c:	4602      	mov	r2, r0
   2198e:	2800      	cmp	r0, #0
   21990:	d0d1      	beq.n	21936 <conn_auto_initiate+0x6e>
					BT_ERR("Failed to set data len (%d)", err);
   21992:	2145      	movs	r1, #69	; 0x45
   21994:	4803      	ldr	r0, [pc, #12]	; (219a4 <conn_auto_initiate+0xdc>)
   21996:	f012 f8a9 	bl	33aec <z_log_minimal_printk>
		}
   2199a:	e7cc      	b.n	21936 <conn_auto_initiate+0x6e>
   2199c:	200002a8 	.word	0x200002a8
   219a0:	0003d218 	.word	0x0003d218
   219a4:	0003d238 	.word	0x0003d238

000219a8 <bt_hci_le_enh_conn_complete>:
{
   219a8:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   219ac:	b084      	sub	sp, #16
   219ae:	4604      	mov	r4, r0
	uint16_t handle = sys_le16_to_cpu(evt->handle);
   219b0:	f8b0 7001 	ldrh.w	r7, [r0, #1]
   219b4:	fa1f f887 	uxth.w	r8, r7
	bool is_disconnected = conn_handle_is_disconnected(handle);
   219b8:	4640      	mov	r0, r8
   219ba:	f7fe ffbd 	bl	20938 <conn_handle_is_disconnected>
   219be:	4606      	mov	r6, r0
	bt_id_pending_keys_update();
   219c0:	f000 fd22 	bl	22408 <bt_id_pending_keys_update>
	if (evt->status) {
   219c4:	7820      	ldrb	r0, [r4, #0]
   219c6:	b150      	cbz	r0, 219de <bt_hci_le_enh_conn_complete+0x36>
		if (IS_ENABLED(CONFIG_BT_PERIPHERAL) &&
   219c8:	283c      	cmp	r0, #60	; 0x3c
   219ca:	d005      	beq.n	219d8 <bt_hci_le_enh_conn_complete+0x30>
		BT_WARN("Unexpected status 0x%02x", evt->status);
   219cc:	4602      	mov	r2, r0
   219ce:	2157      	movs	r1, #87	; 0x57
   219d0:	4855      	ldr	r0, [pc, #340]	; (21b28 <bt_hci_le_enh_conn_complete+0x180>)
   219d2:	f012 f88b 	bl	33aec <z_log_minimal_printk>
		return;
   219d6:	e04a      	b.n	21a6e <bt_hci_le_enh_conn_complete+0xc6>
			le_conn_complete_adv_timeout();
   219d8:	f7ff f896 	bl	20b08 <le_conn_complete_adv_timeout>
			return;
   219dc:	e047      	b.n	21a6e <bt_hci_le_enh_conn_complete+0xc6>
	if (evt->peer_addr.type == BT_ADDR_LE_PUBLIC_ID ||
   219de:	7923      	ldrb	r3, [r4, #4]
   219e0:	3b02      	subs	r3, #2
   219e2:	b2db      	uxtb	r3, r3
   219e4:	2b01      	cmp	r3, #1
   219e6:	d945      	bls.n	21a74 <bt_hci_le_enh_conn_complete+0xcc>
		uint8_t id = evt->role == BT_HCI_ROLE_PERIPHERAL ? bt_dev.adv_conn_id :
   219e8:	78e3      	ldrb	r3, [r4, #3]
   219ea:	2b01      	cmp	r3, #1
   219ec:	d057      	beq.n	21a9e <bt_hci_le_enh_conn_complete+0xf6>
				bt_lookup_id_addr(id, &evt->peer_addr));
   219ee:	1d25      	adds	r5, r4, #4
		bt_addr_le_copy(&id_addr,
   219f0:	4629      	mov	r1, r5
   219f2:	f014 fc17 	bl	36224 <bt_lookup_id_addr>
   219f6:	4601      	mov	r1, r0
	memcpy(dst, src, sizeof(*dst));
   219f8:	2207      	movs	r2, #7
   219fa:	4668      	mov	r0, sp
   219fc:	f014 f87e 	bl	35afc <memcpy>
   21a00:	2207      	movs	r2, #7
   21a02:	4629      	mov	r1, r5
   21a04:	a802      	add	r0, sp, #8
   21a06:	f014 f879 	bl	35afc <memcpy>
	conn = find_pending_connect(evt->role, &id_addr);
   21a0a:	4669      	mov	r1, sp
   21a0c:	78e0      	ldrb	r0, [r4, #3]
   21a0e:	f7ff f855 	bl	20abc <find_pending_connect>
   21a12:	4605      	mov	r5, r0
	    evt->role == BT_HCI_ROLE_PERIPHERAL &&
   21a14:	78e3      	ldrb	r3, [r4, #3]
	if (IS_ENABLED(CONFIG_BT_PERIPHERAL) &&
   21a16:	2b01      	cmp	r3, #1
   21a18:	d045      	beq.n	21aa6 <bt_hci_le_enh_conn_complete+0xfe>
	if (!conn) {
   21a1a:	2d00      	cmp	r5, #0
   21a1c:	d056      	beq.n	21acc <bt_hci_le_enh_conn_complete+0x124>
	conn->handle = handle;
   21a1e:	4628      	mov	r0, r5
   21a20:	f820 7b90 	strh.w	r7, [r0], #144
   21a24:	2207      	movs	r2, #7
   21a26:	4669      	mov	r1, sp
   21a28:	f014 f868 	bl	35afc <memcpy>
	conn->le.interval = sys_le16_to_cpu(evt->interval);
   21a2c:	f8b4 3017 	ldrh.w	r3, [r4, #23]
   21a30:	f8a5 30a6 	strh.w	r3, [r5, #166]	; 0xa6
	conn->le.latency = sys_le16_to_cpu(evt->latency);
   21a34:	f8b4 3019 	ldrh.w	r3, [r4, #25]
   21a38:	f8a5 30ac 	strh.w	r3, [r5, #172]	; 0xac
	conn->le.timeout = sys_le16_to_cpu(evt->supv_timeout);
   21a3c:	f8b4 301b 	ldrh.w	r3, [r4, #27]
   21a40:	f8a5 30ae 	strh.w	r3, [r5, #174]	; 0xae
	conn->role = evt->role;
   21a44:	78e3      	ldrb	r3, [r4, #3]
   21a46:	70eb      	strb	r3, [r5, #3]
	conn->err = 0U;
   21a48:	2200      	movs	r2, #0
   21a4a:	732a      	strb	r2, [r5, #12]
	if (IS_ENABLED(CONFIG_BT_PERIPHERAL) &&
   21a4c:	2b01      	cmp	r3, #1
   21a4e:	d04a      	beq.n	21ae6 <bt_hci_le_enh_conn_complete+0x13e>
	bt_conn_set_state(conn, BT_CONN_CONNECTED);
   21a50:	2107      	movs	r1, #7
   21a52:	4628      	mov	r0, r5
   21a54:	f001 feee 	bl	23834 <bt_conn_set_state>
	if (is_disconnected) {
   21a58:	2e00      	cmp	r6, #0
   21a5a:	d160      	bne.n	21b1e <bt_hci_le_enh_conn_complete+0x176>
	bt_conn_connected(conn);
   21a5c:	4628      	mov	r0, r5
   21a5e:	f014 ff18 	bl	36892 <bt_conn_connected>
	conn_auto_initiate(conn);
   21a62:	4628      	mov	r0, r5
   21a64:	f7ff ff30 	bl	218c8 <conn_auto_initiate>
	bt_conn_unref(conn);
   21a68:	4628      	mov	r0, r5
   21a6a:	f001 fea7 	bl	237bc <bt_conn_unref>
}
   21a6e:	b004      	add	sp, #16
   21a70:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
   21a74:	2207      	movs	r2, #7
   21a76:	1d21      	adds	r1, r4, #4
   21a78:	4668      	mov	r0, sp
   21a7a:	f014 f83f 	bl	35afc <memcpy>
		id_addr.type -= BT_ADDR_LE_PUBLIC_ID;
   21a7e:	f89d 3000 	ldrb.w	r3, [sp]
   21a82:	3b02      	subs	r3, #2
   21a84:	f88d 3000 	strb.w	r3, [sp]
	memcpy(dst, src, sizeof(*dst));
   21a88:	2206      	movs	r2, #6
   21a8a:	f104 0111 	add.w	r1, r4, #17
   21a8e:	f10d 0009 	add.w	r0, sp, #9
   21a92:	f014 f833 	bl	35afc <memcpy>
		peer_addr.type = BT_ADDR_LE_RANDOM;
   21a96:	2301      	movs	r3, #1
   21a98:	f88d 3008 	strb.w	r3, [sp, #8]
   21a9c:	e7b5      	b.n	21a0a <bt_hci_le_enh_conn_complete+0x62>
		uint8_t id = evt->role == BT_HCI_ROLE_PERIPHERAL ? bt_dev.adv_conn_id :
   21a9e:	4b23      	ldr	r3, [pc, #140]	; (21b2c <bt_hci_le_enh_conn_complete+0x184>)
   21aa0:	f893 0067 	ldrb.w	r0, [r3, #103]	; 0x67
   21aa4:	e7a3      	b.n	219ee <bt_hci_le_enh_conn_complete+0x46>
		struct bt_le_ext_adv *adv = bt_le_adv_lookup_legacy();
   21aa6:	f001 f87b 	bl	22ba0 <bt_le_adv_lookup_legacy>
		atomic_clear_bit(adv->flags, BT_ADV_ENABLED);
   21aaa:	f100 0310 	add.w	r3, r0, #16
	return __atomic_fetch_and(target, value, __ATOMIC_SEQ_CST);
   21aae:	f3bf 8f5b 	dmb	ish
   21ab2:	e853 2f00 	ldrex	r2, [r3]
   21ab6:	f022 0240 	bic.w	r2, r2, #64	; 0x40
   21aba:	e843 2100 	strex	r1, r2, [r3]
   21abe:	2900      	cmp	r1, #0
   21ac0:	d1f7      	bne.n	21ab2 <bt_hci_le_enh_conn_complete+0x10a>
   21ac2:	f3bf 8f5b 	dmb	ish
		(void)bt_le_lim_adv_cancel_timeout(adv);
   21ac6:	f014 fd31 	bl	3652c <bt_le_lim_adv_cancel_timeout>
   21aca:	e7a6      	b.n	21a1a <bt_hci_le_enh_conn_complete+0x72>
		BT_ERR("No pending conn for peer %s",
   21acc:	1d20      	adds	r0, r4, #4
   21ace:	f7fe fa71 	bl	1ffb4 <bt_addr_le_str_real>
   21ad2:	4602      	mov	r2, r0
   21ad4:	2145      	movs	r1, #69	; 0x45
   21ad6:	4816      	ldr	r0, [pc, #88]	; (21b30 <bt_hci_le_enh_conn_complete+0x188>)
   21ad8:	f012 f808 	bl	33aec <z_log_minimal_printk>
		bt_hci_disconnect(handle, BT_HCI_ERR_UNSPECIFIED);
   21adc:	211f      	movs	r1, #31
   21ade:	4640      	mov	r0, r8
   21ae0:	f014 f9cc 	bl	35e7c <bt_hci_disconnect>
		return;
   21ae4:	e7c3      	b.n	21a6e <bt_hci_le_enh_conn_complete+0xc6>
	memcpy(dst, src, sizeof(*dst));
   21ae6:	2207      	movs	r2, #7
   21ae8:	a902      	add	r1, sp, #8
   21aea:	f105 0097 	add.w	r0, r5, #151	; 0x97
   21aee:	f014 f805 	bl	35afc <memcpy>
			struct bt_le_ext_adv *adv = bt_le_adv_lookup_legacy();
   21af2:	f001 f855 	bl	22ba0 <bt_le_adv_lookup_legacy>
						&bt_dev.id_addr[conn->id]);
   21af6:	7a29      	ldrb	r1, [r5, #8]
   21af8:	4c0c      	ldr	r4, [pc, #48]	; (21b2c <bt_hci_le_enh_conn_complete+0x184>)
   21afa:	ebc1 01c1 	rsb	r1, r1, r1, lsl #3
   21afe:	2207      	movs	r2, #7
   21b00:	4421      	add	r1, r4
   21b02:	f105 009e 	add.w	r0, r5, #158	; 0x9e
   21b06:	f013 fff9 	bl	35afc <memcpy>
		if (BT_LE_STATES_PER_CONN_ADV(bt_dev.le.states)) {
   21b0a:	f8d4 10dc 	ldr.w	r1, [r4, #220]	; 0xdc
   21b0e:	2200      	movs	r2, #0
   21b10:	f001 0340 	and.w	r3, r1, #64	; 0x40
   21b14:	4313      	orrs	r3, r2
   21b16:	d09b      	beq.n	21a50 <bt_hci_le_enh_conn_complete+0xa8>
			bt_le_adv_resume();
   21b18:	f014 fd0d 	bl	36536 <bt_le_adv_resume>
   21b1c:	e798      	b.n	21a50 <bt_hci_le_enh_conn_complete+0xa8>
		bt_conn_set_state(conn, BT_CONN_DISCONNECT_COMPLETE);
   21b1e:	2101      	movs	r1, #1
   21b20:	4628      	mov	r0, r5
   21b22:	f001 fe87 	bl	23834 <bt_conn_set_state>
   21b26:	e799      	b.n	21a5c <bt_hci_le_enh_conn_complete+0xb4>
   21b28:	0003d25c 	.word	0x0003d25c
   21b2c:	200002a8 	.word	0x200002a8
   21b30:	0003d27c 	.word	0x0003d27c

00021b34 <le_phy_update_complete>:
{
   21b34:	b538      	push	{r3, r4, r5, lr}
	struct bt_hci_evt_le_phy_update_complete *evt = (void *)buf->data;
   21b36:	6883      	ldr	r3, [r0, #8]
	uint16_t handle = sys_le16_to_cpu(evt->handle);
   21b38:	f8b3 5001 	ldrh.w	r5, [r3, #1]
	conn = bt_conn_lookup_handle(handle);
   21b3c:	4628      	mov	r0, r5
   21b3e:	f001 fe6f 	bl	23820 <bt_conn_lookup_handle>
	if (!conn) {
   21b42:	b1a0      	cbz	r0, 21b6e <le_phy_update_complete+0x3a>
   21b44:	4604      	mov	r4, r0
	    atomic_test_and_clear_bit(conn->flags, BT_CONN_AUTO_PHY_UPDATE)) {
   21b46:	1d03      	adds	r3, r0, #4
   21b48:	f3bf 8f5b 	dmb	ish
   21b4c:	e853 2f00 	ldrex	r2, [r3]
   21b50:	f022 0180 	bic.w	r1, r2, #128	; 0x80
   21b54:	e843 1000 	strex	r0, r1, [r3]
   21b58:	2800      	cmp	r0, #0
   21b5a:	d1f7      	bne.n	21b4c <le_phy_update_complete+0x18>
   21b5c:	f3bf 8f5b 	dmb	ish
	if (IS_ENABLED(CONFIG_BT_AUTO_PHY_UPDATE) &&
   21b60:	f012 0f80 	tst.w	r2, #128	; 0x80
   21b64:	d109      	bne.n	21b7a <le_phy_update_complete+0x46>
	bt_conn_unref(conn);
   21b66:	4620      	mov	r0, r4
   21b68:	f001 fe28 	bl	237bc <bt_conn_unref>
}
   21b6c:	bd38      	pop	{r3, r4, r5, pc}
		BT_ERR("Unable to lookup conn for handle %u", handle);
   21b6e:	462a      	mov	r2, r5
   21b70:	2145      	movs	r1, #69	; 0x45
   21b72:	480a      	ldr	r0, [pc, #40]	; (21b9c <le_phy_update_complete+0x68>)
   21b74:	f011 ffba 	bl	33aec <z_log_minimal_printk>
		return;
   21b78:	e7f8      	b.n	21b6c <le_phy_update_complete+0x38>
	return __atomic_fetch_or(target, value, __ATOMIC_SEQ_CST);
   21b7a:	f3bf 8f5b 	dmb	ish
   21b7e:	e853 2f00 	ldrex	r2, [r3]
   21b82:	f442 5280 	orr.w	r2, r2, #4096	; 0x1000
   21b86:	e843 2100 	strex	r1, r2, [r3]
   21b8a:	2900      	cmp	r1, #0
   21b8c:	d1f7      	bne.n	21b7e <le_phy_update_complete+0x4a>
   21b8e:	f3bf 8f5b 	dmb	ish
		conn_auto_initiate(conn);
   21b92:	4620      	mov	r0, r4
   21b94:	f7ff fe98 	bl	218c8 <conn_auto_initiate>
   21b98:	e7e5      	b.n	21b66 <le_phy_update_complete+0x32>
   21b9a:	bf00      	nop
   21b9c:	0003ce98 	.word	0x0003ce98

00021ba0 <le_remote_feat_complete>:
{
   21ba0:	b570      	push	{r4, r5, r6, lr}
	struct bt_hci_evt_le_remote_feat_complete *evt = (void *)buf->data;
   21ba2:	6885      	ldr	r5, [r0, #8]
	uint16_t handle = sys_le16_to_cpu(evt->handle);
   21ba4:	f8b5 6001 	ldrh.w	r6, [r5, #1]
	conn = bt_conn_lookup_handle(handle);
   21ba8:	4630      	mov	r0, r6
   21baa:	f001 fe39 	bl	23820 <bt_conn_lookup_handle>
	if (!conn) {
   21bae:	b1b0      	cbz	r0, 21bde <le_remote_feat_complete+0x3e>
   21bb0:	4604      	mov	r4, r0
	if (!evt->status) {
   21bb2:	782b      	ldrb	r3, [r5, #0]
   21bb4:	b1cb      	cbz	r3, 21bea <le_remote_feat_complete+0x4a>
	atomic_set_bit(conn->flags, BT_CONN_AUTO_FEATURE_EXCH);
   21bb6:	1d23      	adds	r3, r4, #4
   21bb8:	f3bf 8f5b 	dmb	ish
   21bbc:	e853 2f00 	ldrex	r2, [r3]
   21bc0:	f442 5200 	orr.w	r2, r2, #8192	; 0x2000
   21bc4:	e843 2100 	strex	r1, r2, [r3]
   21bc8:	2900      	cmp	r1, #0
   21bca:	d1f7      	bne.n	21bbc <le_remote_feat_complete+0x1c>
   21bcc:	f3bf 8f5b 	dmb	ish
	conn_auto_initiate(conn);
   21bd0:	4620      	mov	r0, r4
   21bd2:	f7ff fe79 	bl	218c8 <conn_auto_initiate>
	bt_conn_unref(conn);
   21bd6:	4620      	mov	r0, r4
   21bd8:	f001 fdf0 	bl	237bc <bt_conn_unref>
}
   21bdc:	bd70      	pop	{r4, r5, r6, pc}
		BT_ERR("Unable to lookup conn for handle %u", handle);
   21bde:	4632      	mov	r2, r6
   21be0:	2145      	movs	r1, #69	; 0x45
   21be2:	4805      	ldr	r0, [pc, #20]	; (21bf8 <le_remote_feat_complete+0x58>)
   21be4:	f011 ff82 	bl	33aec <z_log_minimal_printk>
		return;
   21be8:	e7f8      	b.n	21bdc <le_remote_feat_complete+0x3c>
		memcpy(conn->le.features, evt->features,
   21bea:	2208      	movs	r2, #8
   21bec:	1ce9      	adds	r1, r5, #3
   21bee:	30b4      	adds	r0, #180	; 0xb4
   21bf0:	f013 ff84 	bl	35afc <memcpy>
   21bf4:	e7df      	b.n	21bb6 <le_remote_feat_complete+0x16>
   21bf6:	bf00      	nop
   21bf8:	0003ce98 	.word	0x0003ce98

00021bfc <le_ltk_reply>:
{
   21bfc:	b570      	push	{r4, r5, r6, lr}
   21bfe:	4605      	mov	r5, r0
   21c00:	460c      	mov	r4, r1
	buf = bt_hci_cmd_create(BT_HCI_OP_LE_LTK_REQ_REPLY,
   21c02:	2112      	movs	r1, #18
   21c04:	f242 001a 	movw	r0, #8218	; 0x201a
   21c08:	f7ff fab8 	bl	2117c <bt_hci_cmd_create>
	if (!buf) {
   21c0c:	b180      	cbz	r0, 21c30 <le_ltk_reply+0x34>
   21c0e:	4606      	mov	r6, r0
   21c10:	2112      	movs	r1, #18
   21c12:	3008      	adds	r0, #8
   21c14:	f007 febc 	bl	29990 <net_buf_simple_add>
	cp->handle = sys_cpu_to_le16(handle);
   21c18:	f820 5b02 	strh.w	r5, [r0], #2
	memcpy(cp->ltk, ltk, sizeof(cp->ltk));
   21c1c:	2210      	movs	r2, #16
   21c1e:	4621      	mov	r1, r4
   21c20:	f013 ff6c 	bl	35afc <memcpy>
	bt_hci_cmd_send(BT_HCI_OP_LE_LTK_REQ_REPLY, buf);
   21c24:	4631      	mov	r1, r6
   21c26:	f242 001a 	movw	r0, #8218	; 0x201a
   21c2a:	f7ff fe23 	bl	21874 <bt_hci_cmd_send>
}
   21c2e:	bd70      	pop	{r4, r5, r6, pc}
		BT_ERR("Out of command buffers");
   21c30:	2145      	movs	r1, #69	; 0x45
   21c32:	4802      	ldr	r0, [pc, #8]	; (21c3c <le_ltk_reply+0x40>)
   21c34:	f011 ff5a 	bl	33aec <z_log_minimal_printk>
		return;
   21c38:	e7f9      	b.n	21c2e <le_ltk_reply+0x32>
   21c3a:	bf00      	nop
   21c3c:	0003d2a0 	.word	0x0003d2a0

00021c40 <le_ltk_neg_reply>:
{
   21c40:	b538      	push	{r3, r4, r5, lr}
   21c42:	4604      	mov	r4, r0
	buf = bt_hci_cmd_create(BT_HCI_OP_LE_LTK_REQ_NEG_REPLY, sizeof(*cp));
   21c44:	2102      	movs	r1, #2
   21c46:	f242 001b 	movw	r0, #8219	; 0x201b
   21c4a:	f7ff fa97 	bl	2117c <bt_hci_cmd_create>
	if (!buf) {
   21c4e:	b158      	cbz	r0, 21c68 <le_ltk_neg_reply+0x28>
   21c50:	4605      	mov	r5, r0
   21c52:	2102      	movs	r1, #2
   21c54:	3008      	adds	r0, #8
   21c56:	f007 fe9b 	bl	29990 <net_buf_simple_add>
	cp->handle = sys_cpu_to_le16(handle);
   21c5a:	8004      	strh	r4, [r0, #0]
	bt_hci_cmd_send(BT_HCI_OP_LE_LTK_REQ_NEG_REPLY, buf);
   21c5c:	4629      	mov	r1, r5
   21c5e:	f242 001b 	movw	r0, #8219	; 0x201b
   21c62:	f7ff fe07 	bl	21874 <bt_hci_cmd_send>
}
   21c66:	bd38      	pop	{r3, r4, r5, pc}
		BT_ERR("Out of command buffers");
   21c68:	2145      	movs	r1, #69	; 0x45
   21c6a:	4802      	ldr	r0, [pc, #8]	; (21c74 <le_ltk_neg_reply+0x34>)
   21c6c:	f011 ff3e 	bl	33aec <z_log_minimal_printk>
		return;
   21c70:	e7f9      	b.n	21c66 <le_ltk_neg_reply+0x26>
   21c72:	bf00      	nop
   21c74:	0003d2a0 	.word	0x0003d2a0

00021c78 <le_ltk_request>:
{
   21c78:	b570      	push	{r4, r5, r6, lr}
   21c7a:	b086      	sub	sp, #24
	struct bt_hci_evt_le_ltk_request *evt = (void *)buf->data;
   21c7c:	6884      	ldr	r4, [r0, #8]
	handle = sys_le16_to_cpu(evt->handle);
   21c7e:	8825      	ldrh	r5, [r4, #0]
	conn = bt_conn_lookup_handle(handle);
   21c80:	4628      	mov	r0, r5
   21c82:	f001 fdcd 	bl	23820 <bt_conn_lookup_handle>
	if (!conn) {
   21c86:	b1a0      	cbz	r0, 21cb2 <le_ltk_request+0x3a>
   21c88:	4606      	mov	r6, r0
	if (bt_smp_request_ltk(conn, evt->rand, evt->ediv, ltk)) {
   21c8a:	f8d4 2002 	ldr.w	r2, [r4, #2]
   21c8e:	f8d4 3006 	ldr.w	r3, [r4, #6]
   21c92:	a902      	add	r1, sp, #8
   21c94:	9101      	str	r1, [sp, #4]
   21c96:	8961      	ldrh	r1, [r4, #10]
   21c98:	9100      	str	r1, [sp, #0]
   21c9a:	f016 fdaa 	bl	387f2 <bt_smp_request_ltk>
   21c9e:	b170      	cbz	r0, 21cbe <le_ltk_request+0x46>
		le_ltk_reply(handle, ltk);
   21ca0:	a902      	add	r1, sp, #8
   21ca2:	4628      	mov	r0, r5
   21ca4:	f7ff ffaa 	bl	21bfc <le_ltk_reply>
	bt_conn_unref(conn);
   21ca8:	4630      	mov	r0, r6
   21caa:	f001 fd87 	bl	237bc <bt_conn_unref>
}
   21cae:	b006      	add	sp, #24
   21cb0:	bd70      	pop	{r4, r5, r6, pc}
		BT_ERR("Unable to lookup conn for handle %u", handle);
   21cb2:	462a      	mov	r2, r5
   21cb4:	2145      	movs	r1, #69	; 0x45
   21cb6:	4804      	ldr	r0, [pc, #16]	; (21cc8 <le_ltk_request+0x50>)
   21cb8:	f011 ff18 	bl	33aec <z_log_minimal_printk>
		return;
   21cbc:	e7f7      	b.n	21cae <le_ltk_request+0x36>
		le_ltk_neg_reply(handle);
   21cbe:	4628      	mov	r0, r5
   21cc0:	f7ff ffbe 	bl	21c40 <le_ltk_neg_reply>
   21cc4:	e7f0      	b.n	21ca8 <le_ltk_request+0x30>
   21cc6:	bf00      	nop
   21cc8:	0003ce98 	.word	0x0003ce98

00021ccc <le_conn_param_neg_reply>:
{
   21ccc:	b570      	push	{r4, r5, r6, lr}
   21cce:	4605      	mov	r5, r0
   21cd0:	460c      	mov	r4, r1
	buf = bt_hci_cmd_create(BT_HCI_OP_LE_CONN_PARAM_REQ_NEG_REPLY,
   21cd2:	2103      	movs	r1, #3
   21cd4:	f242 0021 	movw	r0, #8225	; 0x2021
   21cd8:	f7ff fa50 	bl	2117c <bt_hci_cmd_create>
	if (!buf) {
   21cdc:	b160      	cbz	r0, 21cf8 <le_conn_param_neg_reply+0x2c>
   21cde:	4606      	mov	r6, r0
   21ce0:	2103      	movs	r1, #3
   21ce2:	3008      	adds	r0, #8
   21ce4:	f007 fe54 	bl	29990 <net_buf_simple_add>
	cp->handle = sys_cpu_to_le16(handle);
   21ce8:	8005      	strh	r5, [r0, #0]
	cp->reason = sys_cpu_to_le16(reason);
   21cea:	7084      	strb	r4, [r0, #2]
	bt_hci_cmd_send(BT_HCI_OP_LE_CONN_PARAM_REQ_NEG_REPLY, buf);
   21cec:	4631      	mov	r1, r6
   21cee:	f242 0021 	movw	r0, #8225	; 0x2021
   21cf2:	f7ff fdbf 	bl	21874 <bt_hci_cmd_send>
}
   21cf6:	bd70      	pop	{r4, r5, r6, pc}
		BT_ERR("Unable to allocate buffer");
   21cf8:	2145      	movs	r1, #69	; 0x45
   21cfa:	4802      	ldr	r0, [pc, #8]	; (21d04 <le_conn_param_neg_reply+0x38>)
   21cfc:	f011 fef6 	bl	33aec <z_log_minimal_printk>
		return;
   21d00:	e7f9      	b.n	21cf6 <le_conn_param_neg_reply+0x2a>
   21d02:	bf00      	nop
   21d04:	0003d2bc 	.word	0x0003d2bc

00021d08 <le_conn_param_req>:
{
   21d08:	b530      	push	{r4, r5, lr}
   21d0a:	b083      	sub	sp, #12
	struct bt_hci_evt_le_conn_param_req *evt = (void *)buf->data;
   21d0c:	6883      	ldr	r3, [r0, #8]
	handle = sys_le16_to_cpu(evt->handle);
   21d0e:	881c      	ldrh	r4, [r3, #0]
	param.interval_min = sys_le16_to_cpu(evt->interval_min);
   21d10:	885a      	ldrh	r2, [r3, #2]
   21d12:	f8ad 2000 	strh.w	r2, [sp]
	param.interval_max = sys_le16_to_cpu(evt->interval_max);
   21d16:	889a      	ldrh	r2, [r3, #4]
   21d18:	f8ad 2002 	strh.w	r2, [sp, #2]
	param.latency = sys_le16_to_cpu(evt->latency);
   21d1c:	88da      	ldrh	r2, [r3, #6]
   21d1e:	f8ad 2004 	strh.w	r2, [sp, #4]
	param.timeout = sys_le16_to_cpu(evt->timeout);
   21d22:	891b      	ldrh	r3, [r3, #8]
   21d24:	f8ad 3006 	strh.w	r3, [sp, #6]
	conn = bt_conn_lookup_handle(handle);
   21d28:	4620      	mov	r0, r4
   21d2a:	f001 fd79 	bl	23820 <bt_conn_lookup_handle>
	if (!conn) {
   21d2e:	b168      	cbz	r0, 21d4c <le_conn_param_req+0x44>
   21d30:	4605      	mov	r5, r0
	if (!le_param_req(conn, &param)) {
   21d32:	4669      	mov	r1, sp
   21d34:	f001 ff0c 	bl	23b50 <le_param_req>
   21d38:	b990      	cbnz	r0, 21d60 <le_conn_param_req+0x58>
		le_conn_param_neg_reply(handle, BT_HCI_ERR_INVALID_LL_PARAM);
   21d3a:	211e      	movs	r1, #30
   21d3c:	4620      	mov	r0, r4
   21d3e:	f7ff ffc5 	bl	21ccc <le_conn_param_neg_reply>
	bt_conn_unref(conn);
   21d42:	4628      	mov	r0, r5
   21d44:	f001 fd3a 	bl	237bc <bt_conn_unref>
}
   21d48:	b003      	add	sp, #12
   21d4a:	bd30      	pop	{r4, r5, pc}
		BT_ERR("Unable to lookup conn for handle %u", handle);
   21d4c:	4622      	mov	r2, r4
   21d4e:	2145      	movs	r1, #69	; 0x45
   21d50:	4806      	ldr	r0, [pc, #24]	; (21d6c <le_conn_param_req+0x64>)
   21d52:	f011 fecb 	bl	33aec <z_log_minimal_printk>
		le_conn_param_neg_reply(handle, BT_HCI_ERR_UNKNOWN_CONN_ID);
   21d56:	2102      	movs	r1, #2
   21d58:	4620      	mov	r0, r4
   21d5a:	f7ff ffb7 	bl	21ccc <le_conn_param_neg_reply>
		return;
   21d5e:	e7f3      	b.n	21d48 <le_conn_param_req+0x40>
		le_conn_param_req_reply(handle, &param);
   21d60:	4669      	mov	r1, sp
   21d62:	4620      	mov	r0, r4
   21d64:	f014 f992 	bl	3608c <le_conn_param_req_reply>
   21d68:	e7eb      	b.n	21d42 <le_conn_param_req+0x3a>
   21d6a:	bf00      	nop
   21d6c:	0003ce98 	.word	0x0003ce98

00021d70 <send_cmd>:
{
   21d70:	b538      	push	{r3, r4, r5, lr}
	buf = net_buf_get(&bt_dev.cmd_tx_queue, K_NO_WAIT);
   21d72:	2200      	movs	r2, #0
   21d74:	2300      	movs	r3, #0
   21d76:	482b      	ldr	r0, [pc, #172]	; (21e24 <send_cmd+0xb4>)
   21d78:	f007 fc6a 	bl	29650 <net_buf_get>
	BT_ASSERT(buf);
   21d7c:	4604      	mov	r4, r0
   21d7e:	b310      	cbz	r0, 21dc6 <send_cmd+0x56>
   21d80:	4d29      	ldr	r5, [pc, #164]	; (21e28 <send_cmd+0xb8>)
   21d82:	f04f 32ff 	mov.w	r2, #4294967295
   21d86:	f04f 33ff 	mov.w	r3, #4294967295
   21d8a:	f505 7090 	add.w	r0, r5, #288	; 0x120
   21d8e:	f00e f909 	bl	2ffa4 <z_impl_k_sem_take>
	if (bt_dev.sent_cmd) {
   21d92:	f8d5 3138 	ldr.w	r3, [r5, #312]	; 0x138
   21d96:	b153      	cbz	r3, 21dae <send_cmd+0x3e>
		BT_ERR("Uncleared pending sent_cmd");
   21d98:	2145      	movs	r1, #69	; 0x45
   21d9a:	4824      	ldr	r0, [pc, #144]	; (21e2c <send_cmd+0xbc>)
   21d9c:	f011 fea6 	bl	33aec <z_log_minimal_printk>
		net_buf_unref(bt_dev.sent_cmd);
   21da0:	f8d5 0138 	ldr.w	r0, [r5, #312]	; 0x138
   21da4:	f007 fcdc 	bl	29760 <net_buf_unref>
		bt_dev.sent_cmd = NULL;
   21da8:	2300      	movs	r3, #0
   21daa:	f8c5 3138 	str.w	r3, [r5, #312]	; 0x138
	bt_dev.sent_cmd = net_buf_ref(buf);
   21dae:	4620      	mov	r0, r4
   21db0:	f007 fd0e 	bl	297d0 <net_buf_ref>
   21db4:	4b1c      	ldr	r3, [pc, #112]	; (21e28 <send_cmd+0xb8>)
   21db6:	f8c3 0138 	str.w	r0, [r3, #312]	; 0x138
	err = bt_send(buf);
   21dba:	4620      	mov	r0, r4
   21dbc:	f014 f8c7 	bl	35f4e <bt_send>
	if (err) {
   21dc0:	4602      	mov	r2, r0
   21dc2:	b968      	cbnz	r0, 21de0 <send_cmd+0x70>
}
   21dc4:	bd38      	pop	{r3, r4, r5, pc}
	BT_ASSERT(buf);
   21dc6:	f44f 6212 	mov.w	r2, #2336	; 0x920
   21dca:	4919      	ldr	r1, [pc, #100]	; (21e30 <send_cmd+0xc0>)
   21dcc:	4819      	ldr	r0, [pc, #100]	; (21e34 <send_cmd+0xc4>)
   21dce:	f011 faec 	bl	333aa <printk>
   21dd2:	4040      	eors	r0, r0
   21dd4:	f380 8811 	msr	BASEPRI, r0
   21dd8:	f04f 0003 	mov.w	r0, #3
   21ddc:	df02      	svc	2
   21dde:	e7cf      	b.n	21d80 <send_cmd+0x10>
		BT_ERR("Unable to send to driver (err %d)", err);
   21de0:	2145      	movs	r1, #69	; 0x45
   21de2:	4815      	ldr	r0, [pc, #84]	; (21e38 <send_cmd+0xc8>)
   21de4:	f011 fe82 	bl	33aec <z_log_minimal_printk>
	z_impl_k_sem_give(sem);
   21de8:	4d0f      	ldr	r5, [pc, #60]	; (21e28 <send_cmd+0xb8>)
   21dea:	f505 7090 	add.w	r0, r5, #288	; 0x120
   21dee:	f00e f899 	bl	2ff24 <z_impl_k_sem_give>
		hci_cmd_done(cmd(buf)->opcode, BT_HCI_ERR_UNSPECIFIED, buf);
   21df2:	4620      	mov	r0, r4
   21df4:	f007 fb52 	bl	2949c <net_buf_id>
   21df8:	eb00 0040 	add.w	r0, r0, r0, lsl #1
   21dfc:	4b0f      	ldr	r3, [pc, #60]	; (21e3c <send_cmd+0xcc>)
   21dfe:	eb03 0080 	add.w	r0, r3, r0, lsl #2
   21e02:	4622      	mov	r2, r4
   21e04:	211f      	movs	r1, #31
   21e06:	8840      	ldrh	r0, [r0, #2]
   21e08:	f7fe ff52 	bl	20cb0 <hci_cmd_done>
		net_buf_unref(bt_dev.sent_cmd);
   21e0c:	f8d5 0138 	ldr.w	r0, [r5, #312]	; 0x138
   21e10:	f007 fca6 	bl	29760 <net_buf_unref>
		bt_dev.sent_cmd = NULL;
   21e14:	2300      	movs	r3, #0
   21e16:	f8c5 3138 	str.w	r3, [r5, #312]	; 0x138
		net_buf_unref(buf);
   21e1a:	4620      	mov	r0, r4
   21e1c:	f007 fca0 	bl	29760 <net_buf_unref>
   21e20:	e7d0      	b.n	21dc4 <send_cmd+0x54>
   21e22:	bf00      	nop
   21e24:	20000400 	.word	0x20000400
   21e28:	200002a8 	.word	0x200002a8
   21e2c:	0003d2dc 	.word	0x0003d2dc
   21e30:	0003cfcc 	.word	0x0003cfcc
   21e34:	0003bdac 	.word	0x0003bdac
   21e38:	0003d1f0 	.word	0x0003d1f0
   21e3c:	20002278 	.word	0x20002278

00021e40 <process_events>:
{
   21e40:	b538      	push	{r3, r4, r5, lr}
   21e42:	4604      	mov	r4, r0
   21e44:	460d      	mov	r5, r1
	BT_DBG("count %d", count);
   21e46:	e008      	b.n	21e5a <process_events+0x1a>
				send_cmd();
   21e48:	f7ff ff92 	bl	21d70 <send_cmd>
   21e4c:	e003      	b.n	21e56 <process_events+0x16>
			BT_WARN("Unexpected k_poll event state %u", ev->state);
   21e4e:	2157      	movs	r1, #87	; 0x57
   21e50:	480b      	ldr	r0, [pc, #44]	; (21e80 <process_events+0x40>)
   21e52:	f011 fe4b 	bl	33aec <z_log_minimal_printk>
	for (; count; ev++, count--) {
   21e56:	3414      	adds	r4, #20
   21e58:	3d01      	subs	r5, #1
   21e5a:	b185      	cbz	r5, 21e7e <process_events+0x3e>
		switch (ev->state) {
   21e5c:	68e2      	ldr	r2, [r4, #12]
   21e5e:	f3c2 3245 	ubfx	r2, r2, #13, #6
   21e62:	2a01      	cmp	r2, #1
   21e64:	d9f7      	bls.n	21e56 <process_events+0x16>
   21e66:	2a04      	cmp	r2, #4
   21e68:	d1f1      	bne.n	21e4e <process_events+0xe>
			if (ev->tag == BT_EVENT_CMD_TX) {
   21e6a:	7b23      	ldrb	r3, [r4, #12]
   21e6c:	2b00      	cmp	r3, #0
   21e6e:	d0eb      	beq.n	21e48 <process_events+0x8>
				if (ev->tag == BT_EVENT_CONN_TX_QUEUE) {
   21e70:	2b01      	cmp	r3, #1
   21e72:	d1f0      	bne.n	21e56 <process_events+0x16>
					conn = CONTAINER_OF(ev->fifo,
   21e74:	6920      	ldr	r0, [r4, #16]
					bt_conn_process_tx(conn);
   21e76:	3838      	subs	r0, #56	; 0x38
   21e78:	f002 f8e8 	bl	2404c <bt_conn_process_tx>
   21e7c:	e7eb      	b.n	21e56 <process_events+0x16>
}
   21e7e:	bd38      	pop	{r3, r4, r5, pc}
   21e80:	0003d2fc 	.word	0x0003d2fc

00021e84 <hci_tx_thread>:
{
   21e84:	b538      	push	{r3, r4, r5, lr}
   21e86:	e005      	b.n	21e94 <hci_tx_thread+0x10>
		process_events(events, ev_count);
   21e88:	4621      	mov	r1, r4
   21e8a:	4813      	ldr	r0, [pc, #76]	; (21ed8 <hci_tx_thread+0x54>)
   21e8c:	f7ff ffd8 	bl	21e40 <process_events>
	z_impl_k_yield();
   21e90:	f00f fd82 	bl	31998 <z_impl_k_yield>
		events[0].state = K_POLL_STATE_NOT_READY;
   21e94:	4d10      	ldr	r5, [pc, #64]	; (21ed8 <hci_tx_thread+0x54>)
   21e96:	68eb      	ldr	r3, [r5, #12]
   21e98:	f36f 3352 	bfc	r3, #13, #6
   21e9c:	60eb      	str	r3, [r5, #12]
			ev_count += bt_conn_prepare_events(&events[1]);
   21e9e:	f105 0014 	add.w	r0, r5, #20
   21ea2:	f001 fc6b 	bl	2377c <bt_conn_prepare_events>
   21ea6:	1c44      	adds	r4, r0, #1
	return z_impl_k_poll(events, num_events, timeout);
   21ea8:	f04f 32ff 	mov.w	r2, #4294967295
   21eac:	f04f 33ff 	mov.w	r3, #4294967295
   21eb0:	4621      	mov	r1, r4
   21eb2:	4628      	mov	r0, r5
   21eb4:	f010 fc74 	bl	327a0 <z_impl_k_poll>
		BT_ASSERT(err == 0);
   21eb8:	2800      	cmp	r0, #0
   21eba:	d0e5      	beq.n	21e88 <hci_tx_thread+0x4>
   21ebc:	f640 1289 	movw	r2, #2441	; 0x989
   21ec0:	4906      	ldr	r1, [pc, #24]	; (21edc <hci_tx_thread+0x58>)
   21ec2:	4807      	ldr	r0, [pc, #28]	; (21ee0 <hci_tx_thread+0x5c>)
   21ec4:	f011 fa71 	bl	333aa <printk>
   21ec8:	4040      	eors	r0, r0
   21eca:	f380 8811 	msr	BASEPRI, r0
   21ece:	f04f 0003 	mov.w	r0, #3
   21ed2:	df02      	svc	2
   21ed4:	e7d8      	b.n	21e88 <hci_tx_thread+0x4>
   21ed6:	bf00      	nop
   21ed8:	2000054c 	.word	0x2000054c
   21edc:	0003cfcc 	.word	0x0003cfcc
   21ee0:	0003bdac 	.word	0x0003bdac

00021ee4 <hci_event_prio>:
{
   21ee4:	b5f0      	push	{r4, r5, r6, r7, lr}
   21ee6:	b085      	sub	sp, #20
   21ee8:	4604      	mov	r4, r0
	net_buf_simple_save(&buf->b, &state);
   21eea:	f100 0508 	add.w	r5, r0, #8
	state->offset = net_buf_simple_headroom(buf);
   21eee:	4628      	mov	r0, r5
   21ef0:	f017 f91b 	bl	3912a <net_buf_simple_headroom>
   21ef4:	f8ad 000c 	strh.w	r0, [sp, #12]
	state->len = buf->len;
   21ef8:	89a3      	ldrh	r3, [r4, #12]
   21efa:	f8ad 300e 	strh.w	r3, [sp, #14]
	BT_ASSERT(buf->len >= sizeof(*hdr));
   21efe:	2b01      	cmp	r3, #1
   21f00:	d915      	bls.n	21f2e <hci_event_prio+0x4a>
	return net_buf_simple_pull_mem(&buf->b, len);
   21f02:	2102      	movs	r1, #2
   21f04:	4628      	mov	r0, r5
   21f06:	f007 fd03 	bl	29910 <net_buf_simple_pull_mem>
   21f0a:	4605      	mov	r5, r0
	evt_flags = bt_hci_evt_get_flags(hdr->evt);
   21f0c:	7803      	ldrb	r3, [r0, #0]
	switch (evt) {
   21f0e:	3b05      	subs	r3, #5
   21f10:	2b15      	cmp	r3, #21
   21f12:	d81b      	bhi.n	21f4c <hci_event_prio+0x68>
   21f14:	e8df f003 	tbb	[pc, r3]
   21f18:	1a1a1a18 	.word	0x1a1a1a18
   21f1c:	1a1a1a1a 	.word	0x1a1a1a1a
   21f20:	1a3d3d1a 	.word	0x1a3d3d1a
   21f24:	1a3d1a1a 	.word	0x1a3d1a1a
   21f28:	1a1a1a1a 	.word	0x1a1a1a1a
   21f2c:	3d1a      	.short	0x3d1a
	BT_ASSERT(buf->len >= sizeof(*hdr));
   21f2e:	f640 5215 	movw	r2, #3349	; 0xd15
   21f32:	492c      	ldr	r1, [pc, #176]	; (21fe4 <hci_event_prio+0x100>)
   21f34:	482c      	ldr	r0, [pc, #176]	; (21fe8 <hci_event_prio+0x104>)
   21f36:	f011 fa38 	bl	333aa <printk>
   21f3a:	4040      	eors	r0, r0
   21f3c:	f380 8811 	msr	BASEPRI, r0
   21f40:	f04f 0003 	mov.w	r0, #3
   21f44:	df02      	svc	2
   21f46:	e7dc      	b.n	21f02 <hci_event_prio+0x1e>
	evt_flags = bt_hci_evt_get_flags(hdr->evt);
   21f48:	2603      	movs	r6, #3
   21f4a:	e000      	b.n	21f4e <hci_event_prio+0x6a>
		return BT_HCI_EVT_FLAG_RECV;
   21f4c:	2602      	movs	r6, #2
	BT_ASSERT(evt_flags & BT_HCI_EVT_FLAG_RECV_PRIO);
   21f4e:	f016 0f01 	tst.w	r6, #1
   21f52:	d020      	beq.n	21f96 <hci_event_prio+0xb2>
	handle_event(hdr->evt, buf, prio_events, ARRAY_SIZE(prio_events));
   21f54:	782d      	ldrb	r5, [r5, #0]
	for (i = 0; i < num_handlers; i++) {
   21f56:	2300      	movs	r3, #0
   21f58:	2b04      	cmp	r3, #4
   21f5a:	d831      	bhi.n	21fc0 <hci_event_prio+0xdc>
		const struct event_handler *handler = &handlers[i];
   21f5c:	4a23      	ldr	r2, [pc, #140]	; (21fec <hci_event_prio+0x108>)
   21f5e:	eb02 01c3 	add.w	r1, r2, r3, lsl #3
		if (handler->event != event) {
   21f62:	f812 2033 	ldrb.w	r2, [r2, r3, lsl #3]
   21f66:	4295      	cmp	r5, r2
   21f68:	d122      	bne.n	21fb0 <hci_event_prio+0xcc>
		if (buf->len < handler->min_len) {
   21f6a:	89a2      	ldrh	r2, [r4, #12]
   21f6c:	784b      	ldrb	r3, [r1, #1]
   21f6e:	429a      	cmp	r2, r3
   21f70:	d320      	bcc.n	21fb4 <hci_event_prio+0xd0>
		handler->handler(buf);
   21f72:	684b      	ldr	r3, [r1, #4]
   21f74:	4620      	mov	r0, r4
   21f76:	4798      	blx	r3
	if (evt_flags & BT_HCI_EVT_FLAG_RECV) {
   21f78:	f016 0f02 	tst.w	r6, #2
   21f7c:	d02d      	beq.n	21fda <hci_event_prio+0xf6>
	buf->data = buf->__buf + state->offset;
   21f7e:	6923      	ldr	r3, [r4, #16]
   21f80:	f8bd 200c 	ldrh.w	r2, [sp, #12]
   21f84:	4413      	add	r3, r2
   21f86:	60a3      	str	r3, [r4, #8]
	buf->len = state->len;
   21f88:	f8bd 300e 	ldrh.w	r3, [sp, #14]
   21f8c:	81a3      	strh	r3, [r4, #12]
}
   21f8e:	b005      	add	sp, #20
   21f90:	bdf0      	pop	{r4, r5, r6, r7, pc}
		return BT_HCI_EVT_FLAG_RECV_PRIO;
   21f92:	2601      	movs	r6, #1
   21f94:	e7db      	b.n	21f4e <hci_event_prio+0x6a>
	BT_ASSERT(evt_flags & BT_HCI_EVT_FLAG_RECV_PRIO);
   21f96:	f640 5219 	movw	r2, #3353	; 0xd19
   21f9a:	4912      	ldr	r1, [pc, #72]	; (21fe4 <hci_event_prio+0x100>)
   21f9c:	4812      	ldr	r0, [pc, #72]	; (21fe8 <hci_event_prio+0x104>)
   21f9e:	f011 fa04 	bl	333aa <printk>
   21fa2:	4040      	eors	r0, r0
   21fa4:	f380 8811 	msr	BASEPRI, r0
   21fa8:	f04f 0003 	mov.w	r0, #3
   21fac:	df02      	svc	2
   21fae:	e7d1      	b.n	21f54 <hci_event_prio+0x70>
	for (i = 0; i < num_handlers; i++) {
   21fb0:	3301      	adds	r3, #1
   21fb2:	e7d1      	b.n	21f58 <hci_event_prio+0x74>
			BT_ERR("Too small (%u bytes) event 0x%02x",
   21fb4:	462b      	mov	r3, r5
   21fb6:	2145      	movs	r1, #69	; 0x45
   21fb8:	480d      	ldr	r0, [pc, #52]	; (21ff0 <hci_event_prio+0x10c>)
   21fba:	f011 fd97 	bl	33aec <z_log_minimal_printk>
			return;
   21fbe:	e7db      	b.n	21f78 <hci_event_prio+0x94>
	BT_WARN("Unhandled event 0x%02x len %u: %s", event,
   21fc0:	89a7      	ldrh	r7, [r4, #12]
   21fc2:	4639      	mov	r1, r7
   21fc4:	68a0      	ldr	r0, [r4, #8]
   21fc6:	f7fd ffcd 	bl	1ff64 <bt_hex_real>
   21fca:	9000      	str	r0, [sp, #0]
   21fcc:	463b      	mov	r3, r7
   21fce:	462a      	mov	r2, r5
   21fd0:	2157      	movs	r1, #87	; 0x57
   21fd2:	4808      	ldr	r0, [pc, #32]	; (21ff4 <hci_event_prio+0x110>)
   21fd4:	f011 fd8a 	bl	33aec <z_log_minimal_printk>
   21fd8:	e7ce      	b.n	21f78 <hci_event_prio+0x94>
		net_buf_unref(buf);
   21fda:	4620      	mov	r0, r4
   21fdc:	f007 fbc0 	bl	29760 <net_buf_unref>
}
   21fe0:	e7d5      	b.n	21f8e <hci_event_prio+0xaa>
   21fe2:	bf00      	nop
   21fe4:	0003cfcc 	.word	0x0003cfcc
   21fe8:	0003bdac 	.word	0x0003bdac
   21fec:	0003d464 	.word	0x0003d464
   21ff0:	0003d054 	.word	0x0003d054
   21ff4:	0003d07c 	.word	0x0003d07c

00021ff8 <bt_recv>:
{
   21ff8:	b538      	push	{r3, r4, r5, lr}
   21ffa:	4604      	mov	r4, r0
	return (enum bt_buf_type)((struct bt_buf_data *)net_buf_user_data(buf))
   21ffc:	7d05      	ldrb	r5, [r0, #20]
	switch (bt_buf_get_type(buf)) {
   21ffe:	2d01      	cmp	r5, #1
   22000:	d008      	beq.n	22014 <bt_recv+0x1c>
   22002:	462a      	mov	r2, r5
   22004:	2d03      	cmp	r5, #3
   22006:	d12c      	bne.n	22062 <bt_recv+0x6a>
		net_buf_put(&bt_dev.rx_queue, buf);
   22008:	4601      	mov	r1, r0
   2200a:	481b      	ldr	r0, [pc, #108]	; (22078 <bt_recv+0x80>)
   2200c:	f007 fb76 	bl	296fc <net_buf_put>
		return 0;
   22010:	2000      	movs	r0, #0
}
   22012:	bd38      	pop	{r3, r4, r5, pc}
		struct bt_hci_evt_hdr *hdr = (void *)buf->data;
   22014:	6883      	ldr	r3, [r0, #8]
		uint8_t evt_flags = bt_hci_evt_get_flags(hdr->evt);
   22016:	781b      	ldrb	r3, [r3, #0]
	switch (evt) {
   22018:	3b05      	subs	r3, #5
   2201a:	2b15      	cmp	r3, #21
   2201c:	d80e      	bhi.n	2203c <bt_recv+0x44>
   2201e:	e8df f003 	tbb	[pc, r3]
   22022:	0d0b      	.short	0x0d0b
   22024:	0d0d0d0d 	.word	0x0d0d0d0d
   22028:	0e0d0d0d 	.word	0x0e0d0d0d
   2202c:	0d0d0d0e 	.word	0x0d0d0d0e
   22030:	0d0d0d0e 	.word	0x0d0d0d0e
   22034:	0e0d0d0d 	.word	0x0e0d0d0d
   22038:	2503      	movs	r5, #3
   2203a:	e000      	b.n	2203e <bt_recv+0x46>
		return BT_HCI_EVT_FLAG_RECV;
   2203c:	2502      	movs	r5, #2
		if (evt_flags & BT_HCI_EVT_FLAG_RECV_PRIO) {
   2203e:	f015 0f01 	tst.w	r5, #1
   22042:	d104      	bne.n	2204e <bt_recv+0x56>
		if (evt_flags & BT_HCI_EVT_FLAG_RECV) {
   22044:	f015 0f02 	tst.w	r5, #2
   22048:	d105      	bne.n	22056 <bt_recv+0x5e>
		return 0;
   2204a:	2000      	movs	r0, #0
   2204c:	e7e1      	b.n	22012 <bt_recv+0x1a>
			hci_event_prio(buf);
   2204e:	4620      	mov	r0, r4
   22050:	f7ff ff48 	bl	21ee4 <hci_event_prio>
   22054:	e7f6      	b.n	22044 <bt_recv+0x4c>
			net_buf_put(&bt_dev.rx_queue, buf);
   22056:	4621      	mov	r1, r4
   22058:	4807      	ldr	r0, [pc, #28]	; (22078 <bt_recv+0x80>)
   2205a:	f007 fb4f 	bl	296fc <net_buf_put>
		return 0;
   2205e:	2000      	movs	r0, #0
   22060:	e7d7      	b.n	22012 <bt_recv+0x1a>
		BT_ERR("Invalid buf type %u", bt_buf_get_type(buf));
   22062:	2145      	movs	r1, #69	; 0x45
   22064:	4805      	ldr	r0, [pc, #20]	; (2207c <bt_recv+0x84>)
   22066:	f011 fd41 	bl	33aec <z_log_minimal_printk>
		net_buf_unref(buf);
   2206a:	4620      	mov	r0, r4
   2206c:	f007 fb78 	bl	29760 <net_buf_unref>
		return -EINVAL;
   22070:	f06f 0015 	mvn.w	r0, #21
   22074:	e7cd      	b.n	22012 <bt_recv+0x1a>
   22076:	bf00      	nop
   22078:	200003e4 	.word	0x200003e4
   2207c:	0003d324 	.word	0x0003d324

00022080 <bt_hci_driver_register>:
	if (bt_dev.drv) {
   22080:	4b0a      	ldr	r3, [pc, #40]	; (220ac <bt_hci_driver_register+0x2c>)
   22082:	f8d3 3174 	ldr.w	r3, [r3, #372]	; 0x174
   22086:	b943      	cbnz	r3, 2209a <bt_hci_driver_register+0x1a>
	if (!drv->open || !drv->send) {
   22088:	68c3      	ldr	r3, [r0, #12]
   2208a:	b14b      	cbz	r3, 220a0 <bt_hci_driver_register+0x20>
   2208c:	6903      	ldr	r3, [r0, #16]
   2208e:	b153      	cbz	r3, 220a6 <bt_hci_driver_register+0x26>
	bt_dev.drv = drv;
   22090:	4b06      	ldr	r3, [pc, #24]	; (220ac <bt_hci_driver_register+0x2c>)
   22092:	f8c3 0174 	str.w	r0, [r3, #372]	; 0x174
	return 0;
   22096:	2000      	movs	r0, #0
   22098:	4770      	bx	lr
		return -EALREADY;
   2209a:	f06f 0077 	mvn.w	r0, #119	; 0x77
   2209e:	4770      	bx	lr
		return -EINVAL;
   220a0:	f06f 0015 	mvn.w	r0, #21
   220a4:	4770      	bx	lr
   220a6:	f06f 0015 	mvn.w	r0, #21
}
   220aa:	4770      	bx	lr
   220ac:	200002a8 	.word	0x200002a8

000220b0 <bt_finalize_init>:
   220b0:	4b06      	ldr	r3, [pc, #24]	; (220cc <bt_finalize_init+0x1c>)
   220b2:	f3bf 8f5b 	dmb	ish
   220b6:	e853 2f00 	ldrex	r2, [r3]
   220ba:	f042 0202 	orr.w	r2, r2, #2
   220be:	e843 2100 	strex	r1, r2, [r3]
   220c2:	2900      	cmp	r1, #0
   220c4:	d1f7      	bne.n	220b6 <bt_finalize_init+0x6>
   220c6:	f3bf 8f5b 	dmb	ish
}
   220ca:	4770      	bx	lr
   220cc:	20000374 	.word	0x20000374

000220d0 <bt_init>:
{
   220d0:	b510      	push	{r4, lr}
	err = hci_init();
   220d2:	f7ff fb1f 	bl	21714 <hci_init>
	if (err) {
   220d6:	4604      	mov	r4, r0
   220d8:	b9a8      	cbnz	r0, 22106 <bt_init+0x36>
		err = bt_conn_init();
   220da:	f002 f81b 	bl	24114 <bt_conn_init>
		if (err) {
   220de:	4604      	mov	r4, r0
   220e0:	b988      	cbnz	r0, 22106 <bt_init+0x36>
		if (!bt_dev.id_count) {
   220e2:	4b0c      	ldr	r3, [pc, #48]	; (22114 <bt_init+0x44>)
   220e4:	79db      	ldrb	r3, [r3, #7]
   220e6:	b183      	cbz	r3, 2210a <bt_init+0x3a>
   220e8:	4b0b      	ldr	r3, [pc, #44]	; (22118 <bt_init+0x48>)
   220ea:	f3bf 8f5b 	dmb	ish
   220ee:	e853 2f00 	ldrex	r2, [r3]
   220f2:	f042 0204 	orr.w	r2, r2, #4
   220f6:	e843 2100 	strex	r1, r2, [r3]
   220fa:	2900      	cmp	r1, #0
   220fc:	d1f7      	bne.n	220ee <bt_init+0x1e>
   220fe:	f3bf 8f5b 	dmb	ish
	bt_finalize_init();
   22102:	f7ff ffd5 	bl	220b0 <bt_finalize_init>
}
   22106:	4620      	mov	r0, r4
   22108:	bd10      	pop	{r4, pc}
			BT_INFO("No ID address. App must call settings_load()");
   2210a:	2149      	movs	r1, #73	; 0x49
   2210c:	4803      	ldr	r0, [pc, #12]	; (2211c <bt_init+0x4c>)
   2210e:	f011 fced 	bl	33aec <z_log_minimal_printk>
			return 0;
   22112:	e7f8      	b.n	22106 <bt_init+0x36>
   22114:	200002a8 	.word	0x200002a8
   22118:	20000374 	.word	0x20000374
   2211c:	0003d340 	.word	0x0003d340

00022120 <init_work>:
{
   22120:	b508      	push	{r3, lr}
	err = bt_init();
   22122:	f7ff ffd5 	bl	220d0 <bt_init>
	if (ready_cb) {
   22126:	4b02      	ldr	r3, [pc, #8]	; (22130 <init_work+0x10>)
   22128:	681b      	ldr	r3, [r3, #0]
   2212a:	b103      	cbz	r3, 2212e <init_work+0xe>
		ready_cb(err);
   2212c:	4798      	blx	r3
}
   2212e:	bd08      	pop	{r3, pc}
   22130:	20002294 	.word	0x20002294

00022134 <bt_enable>:
	}
}
#endif /* !CONFIG_BT_RECV_IS_RX_THREAD */

int bt_enable(bt_ready_cb_t cb)
{
   22134:	e92d 4370 	stmdb	sp!, {r4, r5, r6, r8, r9, lr}
   22138:	b088      	sub	sp, #32
	int err;

	if (!bt_dev.drv) {
   2213a:	4b38      	ldr	r3, [pc, #224]	; (2221c <bt_enable+0xe8>)
   2213c:	f8d3 3174 	ldr.w	r3, [r3, #372]	; 0x174
   22140:	b1c3      	cbz	r3, 22174 <bt_enable+0x40>
   22142:	4605      	mov	r5, r0
   22144:	4b36      	ldr	r3, [pc, #216]	; (22220 <bt_enable+0xec>)
   22146:	f3bf 8f5b 	dmb	ish
   2214a:	e853 2f00 	ldrex	r2, [r3]
   2214e:	f042 0101 	orr.w	r1, r2, #1
   22152:	e843 1000 	strex	r0, r1, [r3]
   22156:	2800      	cmp	r0, #0
   22158:	d1f7      	bne.n	2214a <bt_enable+0x16>
   2215a:	f3bf 8f5b 	dmb	ish
		BT_ERR("No HCI driver registered");
		return -ENODEV;
	}

	if (atomic_test_and_set_bit(bt_dev.flags, BT_DEV_ENABLE)) {
   2215e:	f012 0f01 	tst.w	r2, #1
   22162:	d157      	bne.n	22214 <bt_enable+0xe0>
		return -EALREADY;
	}

	if (IS_ENABLED(CONFIG_BT_SETTINGS)) {
		err = bt_settings_init();
   22164:	f7fe fb1e 	bl	207a4 <bt_settings_init>
		if (err) {
   22168:	4604      	mov	r4, r0
   2216a:	b150      	cbz	r0, 22182 <bt_enable+0x4e>
		return bt_init();
	}

	k_work_submit(&bt_dev.init);
	return 0;
}
   2216c:	4620      	mov	r0, r4
   2216e:	b008      	add	sp, #32
   22170:	e8bd 8370 	ldmia.w	sp!, {r4, r5, r6, r8, r9, pc}
		BT_ERR("No HCI driver registered");
   22174:	2145      	movs	r1, #69	; 0x45
   22176:	482b      	ldr	r0, [pc, #172]	; (22224 <bt_enable+0xf0>)
   22178:	f011 fcb8 	bl	33aec <z_log_minimal_printk>
		return -ENODEV;
   2217c:	f06f 0412 	mvn.w	r4, #18
   22180:	e7f4      	b.n	2216c <bt_enable+0x38>
	ready_cb = cb;
   22182:	4b29      	ldr	r3, [pc, #164]	; (22228 <bt_enable+0xf4>)
   22184:	601d      	str	r5, [r3, #0]
	k_thread_create(&tx_thread_data, tx_thread_stack,
   22186:	f04f 0800 	mov.w	r8, #0
   2218a:	f04f 0900 	mov.w	r9, #0
	return z_impl_k_thread_create(new_thread, stack, stack_size, entry, p1, p2, p3, prio, options, delay);
   2218e:	4e27      	ldr	r6, [pc, #156]	; (2222c <bt_enable+0xf8>)
   22190:	e9cd 8906 	strd	r8, r9, [sp, #24]
   22194:	2400      	movs	r4, #0
   22196:	9404      	str	r4, [sp, #16]
   22198:	f06f 0308 	mvn.w	r3, #8
   2219c:	9303      	str	r3, [sp, #12]
   2219e:	9402      	str	r4, [sp, #8]
   221a0:	9401      	str	r4, [sp, #4]
   221a2:	9400      	str	r4, [sp, #0]
   221a4:	4b22      	ldr	r3, [pc, #136]	; (22230 <bt_enable+0xfc>)
   221a6:	f44f 62c0 	mov.w	r2, #1536	; 0x600
   221aa:	4922      	ldr	r1, [pc, #136]	; (22234 <bt_enable+0x100>)
   221ac:	4630      	mov	r0, r6
   221ae:	f00d fad3 	bl	2f758 <z_impl_k_thread_create>
	return z_impl_k_thread_name_set(thread, str);
   221b2:	4921      	ldr	r1, [pc, #132]	; (22238 <bt_enable+0x104>)
   221b4:	4630      	mov	r0, r6
   221b6:	f00d f991 	bl	2f4dc <z_impl_k_thread_name_set>
	return z_impl_k_thread_create(new_thread, stack, stack_size, entry, p1, p2, p3, prio, options, delay);
   221ba:	4e20      	ldr	r6, [pc, #128]	; (2223c <bt_enable+0x108>)
   221bc:	e9cd 8906 	strd	r8, r9, [sp, #24]
   221c0:	9404      	str	r4, [sp, #16]
   221c2:	f06f 0307 	mvn.w	r3, #7
   221c6:	9303      	str	r3, [sp, #12]
   221c8:	9402      	str	r4, [sp, #8]
   221ca:	9401      	str	r4, [sp, #4]
   221cc:	9400      	str	r4, [sp, #0]
   221ce:	4b1c      	ldr	r3, [pc, #112]	; (22240 <bt_enable+0x10c>)
   221d0:	f640 0298 	movw	r2, #2200	; 0x898
   221d4:	491b      	ldr	r1, [pc, #108]	; (22244 <bt_enable+0x110>)
   221d6:	4630      	mov	r0, r6
   221d8:	f00d fabe 	bl	2f758 <z_impl_k_thread_create>
	return z_impl_k_thread_name_set(thread, str);
   221dc:	491a      	ldr	r1, [pc, #104]	; (22248 <bt_enable+0x114>)
   221de:	4630      	mov	r0, r6
   221e0:	f00d f97c 	bl	2f4dc <z_impl_k_thread_name_set>
		bt_hci_ecc_init();
   221e4:	f7fe f9b0 	bl	20548 <bt_hci_ecc_init>
	err = bt_dev.drv->open();
   221e8:	4b0c      	ldr	r3, [pc, #48]	; (2221c <bt_enable+0xe8>)
   221ea:	f8d3 3174 	ldr.w	r3, [r3, #372]	; 0x174
   221ee:	68db      	ldr	r3, [r3, #12]
   221f0:	4798      	blx	r3
	if (err) {
   221f2:	4604      	mov	r4, r0
   221f4:	b920      	cbnz	r0, 22200 <bt_enable+0xcc>
	if (!cb) {
   221f6:	b14d      	cbz	r5, 2220c <bt_enable+0xd8>
	k_work_submit(&bt_dev.init);
   221f8:	4814      	ldr	r0, [pc, #80]	; (2224c <bt_enable+0x118>)
   221fa:	f00e fa39 	bl	30670 <k_work_submit>
	return 0;
   221fe:	e7b5      	b.n	2216c <bt_enable+0x38>
		BT_ERR("HCI driver open failed (%d)", err);
   22200:	4602      	mov	r2, r0
   22202:	2145      	movs	r1, #69	; 0x45
   22204:	4812      	ldr	r0, [pc, #72]	; (22250 <bt_enable+0x11c>)
   22206:	f011 fc71 	bl	33aec <z_log_minimal_printk>
		return err;
   2220a:	e7af      	b.n	2216c <bt_enable+0x38>
		return bt_init();
   2220c:	f7ff ff60 	bl	220d0 <bt_init>
   22210:	4604      	mov	r4, r0
   22212:	e7ab      	b.n	2216c <bt_enable+0x38>
		return -EALREADY;
   22214:	f06f 0477 	mvn.w	r4, #119	; 0x77
   22218:	e7a8      	b.n	2216c <bt_enable+0x38>
   2221a:	bf00      	nop
   2221c:	200002a8 	.word	0x200002a8
   22220:	20000374 	.word	0x20000374
   22224:	0003d374 	.word	0x0003d374
   22228:	20002294 	.word	0x20002294
   2222c:	20001790 	.word	0x20001790
   22230:	00021e85 	.word	0x00021e85
   22234:	20004260 	.word	0x20004260
   22238:	0003d394 	.word	0x0003d394
   2223c:	200016d8 	.word	0x200016d8
   22240:	00021115 	.word	0x00021115
   22244:	200039a0 	.word	0x200039a0
   22248:	0003d39c 	.word	0x0003d39c
   2224c:	20000364 	.word	0x20000364
   22250:	0003d3a4 	.word	0x0003d3a4

00022254 <bt_get_name>:
#if defined(CONFIG_BT_DEVICE_NAME_DYNAMIC)
	return bt_dev.name;
#else
	return CONFIG_BT_DEVICE_NAME;
#endif
}
   22254:	4800      	ldr	r0, [pc, #0]	; (22258 <bt_get_name+0x4>)
   22256:	4770      	bx	lr
   22258:	0003bd54 	.word	0x0003bd54

0002225c <id_find>:
		*count = bt_dev.id_count;
	}
}

static int id_find(const bt_addr_le_t *addr)
{
   2225c:	b570      	push	{r4, r5, r6, lr}
   2225e:	4605      	mov	r5, r0
	uint8_t id;

	for (id = 0U; id < bt_dev.id_count; id++) {
   22260:	2400      	movs	r4, #0
   22262:	4b0a      	ldr	r3, [pc, #40]	; (2228c <id_find+0x30>)
   22264:	79db      	ldrb	r3, [r3, #7]
   22266:	42a3      	cmp	r3, r4
   22268:	d90c      	bls.n	22284 <id_find+0x28>
		if (!bt_addr_le_cmp(addr, &bt_dev.id_addr[id])) {
   2226a:	4626      	mov	r6, r4
   2226c:	ebc4 01c4 	rsb	r1, r4, r4, lsl #3
	return memcmp(a, b, sizeof(*a));
   22270:	2207      	movs	r2, #7
   22272:	4b06      	ldr	r3, [pc, #24]	; (2228c <id_find+0x30>)
   22274:	4419      	add	r1, r3
   22276:	4628      	mov	r0, r5
   22278:	f013 fc29 	bl	35ace <memcmp>
   2227c:	b120      	cbz	r0, 22288 <id_find+0x2c>
	for (id = 0U; id < bt_dev.id_count; id++) {
   2227e:	3401      	adds	r4, #1
   22280:	b2e4      	uxtb	r4, r4
   22282:	e7ee      	b.n	22262 <id_find+0x6>
			return id;
		}
	}

	return -ENOENT;
   22284:	f06f 0601 	mvn.w	r6, #1
}
   22288:	4630      	mov	r0, r6
   2228a:	bd70      	pop	{r4, r5, r6, pc}
   2228c:	200002a8 	.word	0x200002a8

00022290 <set_random_address>:
{
   22290:	b570      	push	{r4, r5, r6, lr}
   22292:	4604      	mov	r4, r0
	return memcmp(a, b, sizeof(*a));
   22294:	2206      	movs	r2, #6
   22296:	4914      	ldr	r1, [pc, #80]	; (222e8 <set_random_address+0x58>)
   22298:	f013 fc19 	bl	35ace <memcmp>
	if (!bt_addr_cmp(addr, &bt_dev.random_addr.a)) {
   2229c:	4605      	mov	r5, r0
   2229e:	b908      	cbnz	r0, 222a4 <set_random_address+0x14>
}
   222a0:	4628      	mov	r0, r5
   222a2:	bd70      	pop	{r4, r5, r6, pc}
	buf = bt_hci_cmd_create(BT_HCI_OP_LE_SET_RANDOM_ADDRESS, sizeof(*addr));
   222a4:	2106      	movs	r1, #6
   222a6:	f242 0005 	movw	r0, #8197	; 0x2005
   222aa:	f7fe ff67 	bl	2117c <bt_hci_cmd_create>
	if (!buf) {
   222ae:	4605      	mov	r5, r0
   222b0:	b1b8      	cbz	r0, 222e2 <set_random_address+0x52>
	return net_buf_simple_add_mem(&buf->b, mem, len);
   222b2:	2206      	movs	r2, #6
   222b4:	4621      	mov	r1, r4
   222b6:	3008      	adds	r0, #8
   222b8:	f016 ff44 	bl	39144 <net_buf_simple_add_mem>
	err = bt_hci_cmd_send_sync(BT_HCI_OP_LE_SET_RANDOM_ADDRESS, buf, NULL);
   222bc:	2200      	movs	r2, #0
   222be:	4629      	mov	r1, r5
   222c0:	f242 0005 	movw	r0, #8197	; 0x2005
   222c4:	f7fe ffa6 	bl	21214 <bt_hci_cmd_send_sync>
	if (err) {
   222c8:	4605      	mov	r5, r0
   222ca:	2800      	cmp	r0, #0
   222cc:	d1e8      	bne.n	222a0 <set_random_address+0x10>
	memcpy(dst, src, sizeof(*dst));
   222ce:	4e06      	ldr	r6, [pc, #24]	; (222e8 <set_random_address+0x58>)
   222d0:	2206      	movs	r2, #6
   222d2:	4621      	mov	r1, r4
   222d4:	4630      	mov	r0, r6
   222d6:	f013 fc11 	bl	35afc <memcpy>
	bt_dev.random_addr.type = BT_ADDR_LE_RANDOM;
   222da:	2301      	movs	r3, #1
   222dc:	f806 3c01 	strb.w	r3, [r6, #-1]
	return 0;
   222e0:	e7de      	b.n	222a0 <set_random_address+0x10>
		return -ENOBUFS;
   222e2:	f06f 0568 	mvn.w	r5, #104	; 0x68
   222e6:	e7db      	b.n	222a0 <set_random_address+0x10>
   222e8:	20000309 	.word	0x20000309

000222ec <le_set_privacy_mode>:
{
   222ec:	b510      	push	{r4, lr}
   222ee:	b082      	sub	sp, #8
	if (!BT_CMD_TEST(bt_dev.supported_commands, 39, 2)) {
   222f0:	4b15      	ldr	r3, [pc, #84]	; (22348 <le_set_privacy_mode+0x5c>)
   222f2:	f893 309f 	ldrb.w	r3, [r3, #159]	; 0x9f
   222f6:	f013 0f04 	tst.w	r3, #4
   222fa:	d01b      	beq.n	22334 <le_set_privacy_mode+0x48>
   222fc:	460c      	mov	r4, r1
	memcpy(dst, src, sizeof(*dst));
   222fe:	2207      	movs	r2, #7
   22300:	4601      	mov	r1, r0
   22302:	4668      	mov	r0, sp
   22304:	f013 fbfa 	bl	35afc <memcpy>
	cp.mode = mode;
   22308:	f88d 4007 	strb.w	r4, [sp, #7]
	buf = bt_hci_cmd_create(BT_HCI_OP_LE_SET_PRIVACY_MODE, sizeof(cp));
   2230c:	2108      	movs	r1, #8
   2230e:	f242 004e 	movw	r0, #8270	; 0x204e
   22312:	f7fe ff33 	bl	2117c <bt_hci_cmd_create>
	if (!buf) {
   22316:	4604      	mov	r4, r0
   22318:	b190      	cbz	r0, 22340 <le_set_privacy_mode+0x54>
   2231a:	2208      	movs	r2, #8
   2231c:	4669      	mov	r1, sp
   2231e:	4410      	add	r0, r2
   22320:	f016 ff10 	bl	39144 <net_buf_simple_add_mem>
	err = bt_hci_cmd_send_sync(BT_HCI_OP_LE_SET_PRIVACY_MODE, buf, NULL);
   22324:	2200      	movs	r2, #0
   22326:	4621      	mov	r1, r4
   22328:	f242 004e 	movw	r0, #8270	; 0x204e
   2232c:	f7fe ff72 	bl	21214 <bt_hci_cmd_send_sync>
}
   22330:	b002      	add	sp, #8
   22332:	bd10      	pop	{r4, pc}
		BT_WARN("Set privacy mode command is not supported");
   22334:	2157      	movs	r1, #87	; 0x57
   22336:	4805      	ldr	r0, [pc, #20]	; (2234c <le_set_privacy_mode+0x60>)
   22338:	f011 fbd8 	bl	33aec <z_log_minimal_printk>
		return 0;
   2233c:	2000      	movs	r0, #0
   2233e:	e7f7      	b.n	22330 <le_set_privacy_mode+0x44>
		return -ENOBUFS;
   22340:	f06f 0068 	mvn.w	r0, #104	; 0x68
   22344:	e7f4      	b.n	22330 <le_set_privacy_mode+0x44>
   22346:	bf00      	nop
   22348:	200002a8 	.word	0x200002a8
   2234c:	0003d48c 	.word	0x0003d48c

00022350 <bt_id_pending_keys_update_set>:
   22350:	4b08      	ldr	r3, [pc, #32]	; (22374 <bt_id_pending_keys_update_set+0x24>)
   22352:	f3bf 8f5b 	dmb	ish
   22356:	e853 2f00 	ldrex	r2, [r3]
   2235a:	f442 5200 	orr.w	r2, r2, #8192	; 0x2000
   2235e:	e843 2c00 	strex	ip, r2, [r3]
   22362:	f1bc 0f00 	cmp.w	ip, #0
   22366:	d1f6      	bne.n	22356 <bt_id_pending_keys_update_set+0x6>
   22368:	f3bf 8f5b 	dmb	ish
	keys->state |= flag;
   2236c:	7a03      	ldrb	r3, [r0, #8]
   2236e:	4319      	orrs	r1, r3
   22370:	7201      	strb	r1, [r0, #8]
}
   22372:	4770      	bx	lr
   22374:	20000374 	.word	0x20000374

00022378 <id_create>:

static int id_create(uint8_t id, bt_addr_le_t *addr, uint8_t *irk)
{
   22378:	b530      	push	{r4, r5, lr}
   2237a:	b085      	sub	sp, #20
   2237c:	4604      	mov	r4, r0
	if (addr && bt_addr_le_cmp(addr, BT_ADDR_LE_ANY)) {
   2237e:	460d      	mov	r5, r1
   22380:	b149      	cbz	r1, 22396 <id_create+0x1e>
   22382:	2300      	movs	r3, #0
   22384:	9302      	str	r3, [sp, #8]
   22386:	f8cd 300b 	str.w	r3, [sp, #11]
	return memcmp(a, b, sizeof(*a));
   2238a:	2207      	movs	r2, #7
   2238c:	a902      	add	r1, sp, #8
   2238e:	4628      	mov	r0, r5
   22390:	f013 fb9d 	bl	35ace <memcmp>
   22394:	bb30      	cbnz	r0, 223e4 <id_create+0x6c>
		bt_addr_le_t new_addr;

		do {
			int err;

			err = bt_addr_le_create_static(&new_addr);
   22396:	4668      	mov	r0, sp
   22398:	f013 fd2f 	bl	35dfa <bt_addr_le_create_static>
			if (err) {
   2239c:	4603      	mov	r3, r0
   2239e:	b9f0      	cbnz	r0, 223de <id_create+0x66>
				return err;
			}
			/* Make sure we didn't generate a duplicate */
		} while (id_find(&new_addr) >= 0);
   223a0:	4668      	mov	r0, sp
   223a2:	f7ff ff5b 	bl	2225c <id_find>
   223a6:	2800      	cmp	r0, #0
   223a8:	daf5      	bge.n	22396 <id_create+0x1e>

		bt_addr_le_copy(&bt_dev.id_addr[id], &new_addr);
   223aa:	ebc4 04c4 	rsb	r4, r4, r4, lsl #3
   223ae:	4b14      	ldr	r3, [pc, #80]	; (22400 <id_create+0x88>)
   223b0:	441c      	add	r4, r3
	memcpy(dst, src, sizeof(*dst));
   223b2:	2207      	movs	r2, #7
   223b4:	4669      	mov	r1, sp
   223b6:	4620      	mov	r0, r4
   223b8:	f013 fba0 	bl	35afc <memcpy>

		if (addr) {
   223bc:	b125      	cbz	r5, 223c8 <id_create+0x50>
   223be:	2207      	movs	r2, #7
   223c0:	4621      	mov	r1, r4
   223c2:	4628      	mov	r0, r5
   223c4:	f013 fb9a 	bl	35afc <memcpy>
	return __atomic_load_n(target, __ATOMIC_SEQ_CST);
   223c8:	f3bf 8f5b 	dmb	ish
   223cc:	4b0d      	ldr	r3, [pc, #52]	; (22404 <id_create+0x8c>)
   223ce:	681a      	ldr	r2, [r3, #0]
   223d0:	f3bf 8f5b 	dmb	ish
	return (1 & (val >> (bit & (ATOMIC_BITS - 1)))) != 0;
   223d4:	f3c2 0340 	ubfx	r3, r2, #1, #1
#endif
	/* Only store if stack was already initialized. Before initialization
	 * we don't know the flash content, so it's potentially harmful to
	 * try to write anything there.
	 */
	if (IS_ENABLED(CONFIG_BT_SETTINGS) &&
   223d8:	f012 0f02 	tst.w	r2, #2
   223dc:	d10b      	bne.n	223f6 <id_create+0x7e>
	    atomic_test_bit(bt_dev.flags, BT_DEV_READY)) {
		bt_settings_save_id();
	}

	return 0;
}
   223de:	4618      	mov	r0, r3
   223e0:	b005      	add	sp, #20
   223e2:	bd30      	pop	{r4, r5, pc}
		bt_addr_le_copy(&bt_dev.id_addr[id], addr);
   223e4:	ebc4 04c4 	rsb	r4, r4, r4, lsl #3
   223e8:	2207      	movs	r2, #7
   223ea:	4629      	mov	r1, r5
   223ec:	4804      	ldr	r0, [pc, #16]	; (22400 <id_create+0x88>)
   223ee:	4420      	add	r0, r4
   223f0:	f013 fb84 	bl	35afc <memcpy>
}
   223f4:	e7e8      	b.n	223c8 <id_create+0x50>
		bt_settings_save_id();
   223f6:	f7fe f98b 	bl	20710 <bt_settings_save_id>
	return 0;
   223fa:	2300      	movs	r3, #0
   223fc:	e7ef      	b.n	223de <id_create+0x66>
   223fe:	bf00      	nop
   22400:	200002a8 	.word	0x200002a8
   22404:	20000374 	.word	0x20000374

00022408 <bt_id_pending_keys_update>:
{
   22408:	b508      	push	{r3, lr}
	return __atomic_fetch_and(target, value, __ATOMIC_SEQ_CST);
   2240a:	4b0b      	ldr	r3, [pc, #44]	; (22438 <bt_id_pending_keys_update+0x30>)
   2240c:	f3bf 8f5b 	dmb	ish
   22410:	e853 2f00 	ldrex	r2, [r3]
   22414:	f422 5100 	bic.w	r1, r2, #8192	; 0x2000
   22418:	e843 1000 	strex	r0, r1, [r3]
   2241c:	2800      	cmp	r0, #0
   2241e:	d1f7      	bne.n	22410 <bt_id_pending_keys_update+0x8>
   22420:	f3bf 8f5b 	dmb	ish
	if (atomic_test_and_clear_bit(bt_dev.flags, BT_DEV_ID_PENDING)) {
   22424:	f412 5f00 	tst.w	r2, #8192	; 0x2000
   22428:	d100      	bne.n	2242c <bt_id_pending_keys_update+0x24>
}
   2242a:	bd08      	pop	{r3, pc}
			bt_keys_foreach(BT_KEYS_IRK, pending_id_update, NULL);
   2242c:	2200      	movs	r2, #0
   2242e:	4903      	ldr	r1, [pc, #12]	; (2243c <bt_id_pending_keys_update+0x34>)
   22430:	2002      	movs	r0, #2
   22432:	f006 fdaf 	bl	28f94 <bt_keys_foreach>
}
   22436:	e7f8      	b.n	2242a <bt_id_pending_keys_update+0x22>
   22438:	20000374 	.word	0x20000374
   2243c:	0003626f 	.word	0x0003626f

00022440 <bt_id_add>:
{
   22440:	b538      	push	{r3, r4, r5, lr}
   22442:	4604      	mov	r4, r0
	if (!bt_dev.le.rl_size || bt_dev.le.rl_entries > bt_dev.le.rl_size) {
   22444:	4b40      	ldr	r3, [pc, #256]	; (22548 <bt_id_add+0x108>)
   22446:	f893 3118 	ldrb.w	r3, [r3, #280]	; 0x118
   2244a:	b123      	cbz	r3, 22456 <bt_id_add+0x16>
   2244c:	4a3e      	ldr	r2, [pc, #248]	; (22548 <bt_id_add+0x108>)
   2244e:	f892 2119 	ldrb.w	r2, [r2, #281]	; 0x119
   22452:	4293      	cmp	r3, r2
   22454:	d20a      	bcs.n	2246c <bt_id_add+0x2c>
		bt_dev.le.rl_entries++;
   22456:	4a3c      	ldr	r2, [pc, #240]	; (22548 <bt_id_add+0x108>)
   22458:	f892 3119 	ldrb.w	r3, [r2, #281]	; 0x119
   2245c:	3301      	adds	r3, #1
   2245e:	f882 3119 	strb.w	r3, [r2, #281]	; 0x119
		keys->state |= BT_KEYS_ID_ADDED;
   22462:	7a23      	ldrb	r3, [r4, #8]
   22464:	f043 0304 	orr.w	r3, r3, #4
   22468:	7223      	strb	r3, [r4, #8]
}
   2246a:	bd38      	pop	{r3, r4, r5, pc}
	conn = bt_conn_lookup_state_le(BT_ID_DEFAULT, NULL, BT_CONN_CONNECT);
   2246c:	2206      	movs	r2, #6
   2246e:	2100      	movs	r1, #0
   22470:	4608      	mov	r0, r1
   22472:	f001 fcaf 	bl	23dd4 <bt_conn_lookup_state_le>
	if (conn) {
   22476:	4605      	mov	r5, r0
   22478:	b138      	cbz	r0, 2248a <bt_id_add+0x4a>
		bt_id_pending_keys_update_set(keys, BT_KEYS_ID_PENDING_ADD);
   2247a:	2101      	movs	r1, #1
   2247c:	4620      	mov	r0, r4
   2247e:	f7ff ff67 	bl	22350 <bt_id_pending_keys_update_set>
		bt_conn_unref(conn);
   22482:	4628      	mov	r0, r5
   22484:	f001 f99a 	bl	237bc <bt_conn_unref>
		return;
   22488:	e7ef      	b.n	2246a <bt_id_add+0x2a>
		bt_le_ext_adv_foreach(adv_pause_enabled, NULL);
   2248a:	2100      	movs	r1, #0
   2248c:	482f      	ldr	r0, [pc, #188]	; (2254c <bt_id_add+0x10c>)
   2248e:	f000 fb7f 	bl	22b90 <bt_le_ext_adv_foreach>
	if (bt_dev.le.rl_entries) {
   22492:	4b2d      	ldr	r3, [pc, #180]	; (22548 <bt_id_add+0x108>)
   22494:	f893 3119 	ldrb.w	r3, [r3, #281]	; 0x119
   22498:	bb33      	cbnz	r3, 224e8 <bt_id_add+0xa8>
	if (bt_dev.le.rl_entries == bt_dev.le.rl_size) {
   2249a:	4b2b      	ldr	r3, [pc, #172]	; (22548 <bt_id_add+0x108>)
   2249c:	f893 2119 	ldrb.w	r2, [r3, #281]	; 0x119
   224a0:	f893 3118 	ldrb.w	r3, [r3, #280]	; 0x118
   224a4:	429a      	cmp	r2, r3
   224a6:	d029      	beq.n	224fc <bt_id_add+0xbc>
	err = hci_id_add(keys->id, &keys->addr, keys->irk.val);
   224a8:	1c65      	adds	r5, r4, #1
   224aa:	4622      	mov	r2, r4
   224ac:	f812 0b2a 	ldrb.w	r0, [r2], #42
   224b0:	4629      	mov	r1, r5
   224b2:	f013 fe4f 	bl	36154 <hci_id_add>
	if (err) {
   224b6:	2800      	cmp	r0, #0
   224b8:	d13b      	bne.n	22532 <bt_id_add+0xf2>
	bt_dev.le.rl_entries++;
   224ba:	4a23      	ldr	r2, [pc, #140]	; (22548 <bt_id_add+0x108>)
   224bc:	f892 3119 	ldrb.w	r3, [r2, #281]	; 0x119
   224c0:	3301      	adds	r3, #1
   224c2:	f882 3119 	strb.w	r3, [r2, #281]	; 0x119
	keys->state |= BT_KEYS_ID_ADDED;
   224c6:	7a23      	ldrb	r3, [r4, #8]
   224c8:	f043 0304 	orr.w	r3, r3, #4
   224cc:	7223      	strb	r3, [r4, #8]
	err = le_set_privacy_mode(&keys->addr, BT_HCI_LE_PRIVACY_MODE_DEVICE);
   224ce:	2101      	movs	r1, #1
   224d0:	4628      	mov	r0, r5
   224d2:	f7ff ff0b 	bl	222ec <le_set_privacy_mode>
	if (err) {
   224d6:	bb88      	cbnz	r0, 2253c <bt_id_add+0xfc>
	addr_res_enable(BT_HCI_ADDR_RES_ENABLE);
   224d8:	2001      	movs	r0, #1
   224da:	f013 fe8c 	bl	361f6 <addr_res_enable>
		bt_le_ext_adv_foreach(adv_unpause_enabled, NULL);
   224de:	2100      	movs	r1, #0
   224e0:	481b      	ldr	r0, [pc, #108]	; (22550 <bt_id_add+0x110>)
   224e2:	f000 fb55 	bl	22b90 <bt_le_ext_adv_foreach>
   224e6:	e7c0      	b.n	2246a <bt_id_add+0x2a>
		err = addr_res_enable(BT_HCI_ADDR_RES_DISABLE);
   224e8:	2000      	movs	r0, #0
   224ea:	f013 fe84 	bl	361f6 <addr_res_enable>
		if (err) {
   224ee:	2800      	cmp	r0, #0
   224f0:	d0d3      	beq.n	2249a <bt_id_add+0x5a>
			BT_WARN("Failed to disable address resolution");
   224f2:	2157      	movs	r1, #87	; 0x57
   224f4:	4817      	ldr	r0, [pc, #92]	; (22554 <bt_id_add+0x114>)
   224f6:	f011 faf9 	bl	33aec <z_log_minimal_printk>
			goto done;
   224fa:	e7ed      	b.n	224d8 <bt_id_add+0x98>
		BT_WARN("Resolving list size exceeded. Switching to host.");
   224fc:	2157      	movs	r1, #87	; 0x57
   224fe:	4816      	ldr	r0, [pc, #88]	; (22558 <bt_id_add+0x118>)
   22500:	f011 faf4 	bl	33aec <z_log_minimal_printk>
		err = bt_hci_cmd_send_sync(BT_HCI_OP_LE_CLEAR_RL, NULL, NULL);
   22504:	2200      	movs	r2, #0
   22506:	4611      	mov	r1, r2
   22508:	f242 0029 	movw	r0, #8233	; 0x2029
   2250c:	f7fe fe82 	bl	21214 <bt_hci_cmd_send_sync>
		if (err) {
   22510:	b950      	cbnz	r0, 22528 <bt_id_add+0xe8>
		bt_dev.le.rl_entries++;
   22512:	4a0d      	ldr	r2, [pc, #52]	; (22548 <bt_id_add+0x108>)
   22514:	f892 3119 	ldrb.w	r3, [r2, #281]	; 0x119
   22518:	3301      	adds	r3, #1
   2251a:	f882 3119 	strb.w	r3, [r2, #281]	; 0x119
		keys->state |= BT_KEYS_ID_ADDED;
   2251e:	7a23      	ldrb	r3, [r4, #8]
   22520:	f043 0304 	orr.w	r3, r3, #4
   22524:	7223      	strb	r3, [r4, #8]
		goto done;
   22526:	e7d7      	b.n	224d8 <bt_id_add+0x98>
			BT_ERR("Failed to clear resolution list");
   22528:	2145      	movs	r1, #69	; 0x45
   2252a:	480c      	ldr	r0, [pc, #48]	; (2255c <bt_id_add+0x11c>)
   2252c:	f011 fade 	bl	33aec <z_log_minimal_printk>
			goto done;
   22530:	e7d2      	b.n	224d8 <bt_id_add+0x98>
		BT_ERR("Failed to add IRK to controller");
   22532:	2145      	movs	r1, #69	; 0x45
   22534:	480a      	ldr	r0, [pc, #40]	; (22560 <bt_id_add+0x120>)
   22536:	f011 fad9 	bl	33aec <z_log_minimal_printk>
		goto done;
   2253a:	e7cd      	b.n	224d8 <bt_id_add+0x98>
		BT_ERR("Failed to set privacy mode");
   2253c:	2145      	movs	r1, #69	; 0x45
   2253e:	4809      	ldr	r0, [pc, #36]	; (22564 <bt_id_add+0x124>)
   22540:	f011 fad4 	bl	33aec <z_log_minimal_printk>
		goto done;
   22544:	e7c8      	b.n	224d8 <bt_id_add+0x98>
   22546:	bf00      	nop
   22548:	200002a8 	.word	0x200002a8
   2254c:	0003611f 	.word	0x0003611f
   22550:	000360ef 	.word	0x000360ef
   22554:	0003d4bc 	.word	0x0003d4bc
   22558:	0003d4e8 	.word	0x0003d4e8
   2255c:	0003d520 	.word	0x0003d520
   22560:	0003d548 	.word	0x0003d548
   22564:	0003d570 	.word	0x0003d570

00022568 <bt_id_del>:
{
   22568:	b538      	push	{r3, r4, r5, lr}
   2256a:	4604      	mov	r4, r0
	if (!bt_dev.le.rl_size ||
   2256c:	4b33      	ldr	r3, [pc, #204]	; (2263c <bt_id_del+0xd4>)
   2256e:	f893 3118 	ldrb.w	r3, [r3, #280]	; 0x118
   22572:	b12b      	cbz	r3, 22580 <bt_id_del+0x18>
	    bt_dev.le.rl_entries > bt_dev.le.rl_size + 1) {
   22574:	4a31      	ldr	r2, [pc, #196]	; (2263c <bt_id_del+0xd4>)
   22576:	f892 2119 	ldrb.w	r2, [r2, #281]	; 0x119
   2257a:	3301      	adds	r3, #1
	if (!bt_dev.le.rl_size ||
   2257c:	429a      	cmp	r2, r3
   2257e:	dd0a      	ble.n	22596 <bt_id_del+0x2e>
		bt_dev.le.rl_entries--;
   22580:	4a2e      	ldr	r2, [pc, #184]	; (2263c <bt_id_del+0xd4>)
   22582:	f892 3119 	ldrb.w	r3, [r2, #281]	; 0x119
   22586:	3b01      	subs	r3, #1
   22588:	f882 3119 	strb.w	r3, [r2, #281]	; 0x119
		keys->state &= ~BT_KEYS_ID_ADDED;
   2258c:	7a23      	ldrb	r3, [r4, #8]
   2258e:	f023 0304 	bic.w	r3, r3, #4
   22592:	7223      	strb	r3, [r4, #8]
}
   22594:	bd38      	pop	{r3, r4, r5, pc}
	conn = bt_conn_lookup_state_le(BT_ID_DEFAULT, NULL, BT_CONN_CONNECT);
   22596:	2206      	movs	r2, #6
   22598:	2100      	movs	r1, #0
   2259a:	4608      	mov	r0, r1
   2259c:	f001 fc1a 	bl	23dd4 <bt_conn_lookup_state_le>
	if (conn) {
   225a0:	4605      	mov	r5, r0
   225a2:	b138      	cbz	r0, 225b4 <bt_id_del+0x4c>
		bt_id_pending_keys_update_set(keys, BT_KEYS_ID_PENDING_DEL);
   225a4:	2102      	movs	r1, #2
   225a6:	4620      	mov	r0, r4
   225a8:	f7ff fed2 	bl	22350 <bt_id_pending_keys_update_set>
		bt_conn_unref(conn);
   225ac:	4628      	mov	r0, r5
   225ae:	f001 f905 	bl	237bc <bt_conn_unref>
		return;
   225b2:	e7ef      	b.n	22594 <bt_id_del+0x2c>
		bt_le_ext_adv_foreach(adv_pause_enabled, NULL);
   225b4:	2100      	movs	r1, #0
   225b6:	4822      	ldr	r0, [pc, #136]	; (22640 <bt_id_del+0xd8>)
   225b8:	f000 faea 	bl	22b90 <bt_le_ext_adv_foreach>
	err = addr_res_enable(BT_HCI_ADDR_RES_DISABLE);
   225bc:	2000      	movs	r0, #0
   225be:	f013 fe1a 	bl	361f6 <addr_res_enable>
	if (err) {
   225c2:	4602      	mov	r2, r0
   225c4:	b9e8      	cbnz	r0, 22602 <bt_id_del+0x9a>
	if (bt_dev.le.rl_entries > bt_dev.le.rl_size) {
   225c6:	4a1d      	ldr	r2, [pc, #116]	; (2263c <bt_id_del+0xd4>)
   225c8:	f892 3119 	ldrb.w	r3, [r2, #281]	; 0x119
   225cc:	f892 2118 	ldrb.w	r2, [r2, #280]	; 0x118
   225d0:	4293      	cmp	r3, r2
   225d2:	d81b      	bhi.n	2260c <bt_id_del+0xa4>
	err = hci_id_del(&keys->addr);
   225d4:	1c60      	adds	r0, r4, #1
   225d6:	f013 fdf3 	bl	361c0 <hci_id_del>
	if (err) {
   225da:	bb28      	cbnz	r0, 22628 <bt_id_del+0xc0>
	bt_dev.le.rl_entries--;
   225dc:	4a17      	ldr	r2, [pc, #92]	; (2263c <bt_id_del+0xd4>)
   225de:	f892 3119 	ldrb.w	r3, [r2, #281]	; 0x119
   225e2:	3b01      	subs	r3, #1
   225e4:	f882 3119 	strb.w	r3, [r2, #281]	; 0x119
	keys->state &= ~BT_KEYS_ID_ADDED;
   225e8:	7a23      	ldrb	r3, [r4, #8]
   225ea:	f023 0304 	bic.w	r3, r3, #4
   225ee:	7223      	strb	r3, [r4, #8]
	if (bt_dev.le.rl_entries) {
   225f0:	4b12      	ldr	r3, [pc, #72]	; (2263c <bt_id_del+0xd4>)
   225f2:	f893 3119 	ldrb.w	r3, [r3, #281]	; 0x119
   225f6:	b9e3      	cbnz	r3, 22632 <bt_id_del+0xca>
		bt_le_ext_adv_foreach(adv_unpause_enabled, NULL);
   225f8:	2100      	movs	r1, #0
   225fa:	4812      	ldr	r0, [pc, #72]	; (22644 <bt_id_del+0xdc>)
   225fc:	f000 fac8 	bl	22b90 <bt_le_ext_adv_foreach>
   22600:	e7c8      	b.n	22594 <bt_id_del+0x2c>
		BT_ERR("Disabling address resolution failed (err %d)", err);
   22602:	2145      	movs	r1, #69	; 0x45
   22604:	4810      	ldr	r0, [pc, #64]	; (22648 <bt_id_del+0xe0>)
   22606:	f011 fa71 	bl	33aec <z_log_minimal_printk>
		goto done;
   2260a:	e7f1      	b.n	225f0 <bt_id_del+0x88>
		bt_dev.le.rl_entries--;
   2260c:	3b01      	subs	r3, #1
   2260e:	4a0b      	ldr	r2, [pc, #44]	; (2263c <bt_id_del+0xd4>)
   22610:	f882 3119 	strb.w	r3, [r2, #281]	; 0x119
		keys->state &= ~BT_KEYS_ID_ADDED;
   22614:	7a23      	ldrb	r3, [r4, #8]
   22616:	f023 0304 	bic.w	r3, r3, #4
   2261a:	7223      	strb	r3, [r4, #8]
			bt_keys_foreach(BT_KEYS_IRK, keys_add_id, NULL);
   2261c:	2200      	movs	r2, #0
   2261e:	490b      	ldr	r1, [pc, #44]	; (2264c <bt_id_del+0xe4>)
   22620:	2002      	movs	r0, #2
   22622:	f006 fcb7 	bl	28f94 <bt_keys_foreach>
		goto done;
   22626:	e7e3      	b.n	225f0 <bt_id_del+0x88>
		BT_ERR("Failed to remove IRK from controller");
   22628:	2145      	movs	r1, #69	; 0x45
   2262a:	4809      	ldr	r0, [pc, #36]	; (22650 <bt_id_del+0xe8>)
   2262c:	f011 fa5e 	bl	33aec <z_log_minimal_printk>
		goto done;
   22630:	e7de      	b.n	225f0 <bt_id_del+0x88>
		addr_res_enable(BT_HCI_ADDR_RES_ENABLE);
   22632:	2001      	movs	r0, #1
   22634:	f013 fddf 	bl	361f6 <addr_res_enable>
   22638:	e7de      	b.n	225f8 <bt_id_del+0x90>
   2263a:	bf00      	nop
   2263c:	200002a8 	.word	0x200002a8
   22640:	0003611f 	.word	0x0003611f
   22644:	000360ef 	.word	0x000360ef
   22648:	0003d590 	.word	0x0003d590
   2264c:	000361a5 	.word	0x000361a5
   22650:	0003d5c4 	.word	0x0003d5c4

00022654 <bt_id_create>:

int bt_id_create(bt_addr_le_t *addr, uint8_t *irk)
{
   22654:	b570      	push	{r4, r5, r6, lr}
   22656:	b084      	sub	sp, #16
   22658:	460c      	mov	r4, r1
	int new_id, err;

	if (addr && bt_addr_le_cmp(addr, BT_ADDR_LE_ANY)) {
   2265a:	4605      	mov	r5, r0
   2265c:	b1e0      	cbz	r0, 22698 <bt_id_create+0x44>
   2265e:	2300      	movs	r3, #0
   22660:	9300      	str	r3, [sp, #0]
   22662:	f8cd 3003 	str.w	r3, [sp, #3]
	return memcmp(a, b, sizeof(*a));
   22666:	2207      	movs	r2, #7
   22668:	4669      	mov	r1, sp
   2266a:	f013 fa30 	bl	35ace <memcmp>
   2266e:	b198      	cbz	r0, 22698 <bt_id_create+0x44>
		if (addr->type != BT_ADDR_LE_RANDOM ||
   22670:	782b      	ldrb	r3, [r5, #0]
   22672:	2b01      	cmp	r3, #1
   22674:	d104      	bne.n	22680 <bt_id_create+0x2c>
		    !BT_ADDR_IS_STATIC(&addr->a)) {
   22676:	79ab      	ldrb	r3, [r5, #6]
		if (addr->type != BT_ADDR_LE_RANDOM ||
   22678:	f003 03c0 	and.w	r3, r3, #192	; 0xc0
   2267c:	2bc0      	cmp	r3, #192	; 0xc0
   2267e:	d006      	beq.n	2268e <bt_id_create+0x3a>
			BT_ERR("Only static random identity address supported");
   22680:	2145      	movs	r1, #69	; 0x45
   22682:	481e      	ldr	r0, [pc, #120]	; (226fc <bt_id_create+0xa8>)
   22684:	f011 fa32 	bl	33aec <z_log_minimal_printk>
			return -EINVAL;
   22688:	f06f 0015 	mvn.w	r0, #21
   2268c:	e028      	b.n	226e0 <bt_id_create+0x8c>
		}

		if (id_find(addr) >= 0) {
   2268e:	4628      	mov	r0, r5
   22690:	f7ff fde4 	bl	2225c <id_find>
   22694:	2800      	cmp	r0, #0
   22696:	da25      	bge.n	226e4 <bt_id_create+0x90>
			return -EALREADY;
		}
	}

	if (!IS_ENABLED(CONFIG_BT_PRIVACY) && irk) {
   22698:	bb54      	cbnz	r4, 226f0 <bt_id_create+0x9c>
		return -EINVAL;
	}

	if (bt_dev.id_count == ARRAY_SIZE(bt_dev.id_addr)) {
   2269a:	4b19      	ldr	r3, [pc, #100]	; (22700 <bt_id_create+0xac>)
   2269c:	79db      	ldrb	r3, [r3, #7]
   2269e:	2b01      	cmp	r3, #1
   226a0:	d029      	beq.n	226f6 <bt_id_create+0xa2>
	return __atomic_load_n(target, __ATOMIC_SEQ_CST);
   226a2:	f3bf 8f5b 	dmb	ish
   226a6:	4b17      	ldr	r3, [pc, #92]	; (22704 <bt_id_create+0xb0>)
   226a8:	681b      	ldr	r3, [r3, #0]
   226aa:	f3bf 8f5b 	dmb	ish
		return -ENOMEM;
	}

	/* bt_rand is not available before Bluetooth enable has been called */
	if (!atomic_test_bit(bt_dev.flags, BT_DEV_ENABLE)) {
   226ae:	f013 0f01 	tst.w	r3, #1
   226b2:	d10a      	bne.n	226ca <bt_id_create+0x76>
		uint8_t zero_irk[16] = { 0 };

		if (!(addr && bt_addr_le_cmp(addr, BT_ADDR_LE_ANY))) {
   226b4:	b1cd      	cbz	r5, 226ea <bt_id_create+0x96>
   226b6:	2300      	movs	r3, #0
   226b8:	9302      	str	r3, [sp, #8]
   226ba:	f8cd 300b 	str.w	r3, [sp, #11]
   226be:	2207      	movs	r2, #7
   226c0:	a902      	add	r1, sp, #8
   226c2:	4628      	mov	r0, r5
   226c4:	f013 fa03 	bl	35ace <memcmp>
   226c8:	b178      	cbz	r0, 226ea <bt_id_create+0x96>
		    !(irk && memcmp(irk, zero_irk, 16))) {
			return -EINVAL;
		}
	}

	new_id = bt_dev.id_count++;
   226ca:	4b0d      	ldr	r3, [pc, #52]	; (22700 <bt_id_create+0xac>)
   226cc:	79de      	ldrb	r6, [r3, #7]
   226ce:	1c72      	adds	r2, r6, #1
   226d0:	71da      	strb	r2, [r3, #7]
	err = id_create(new_id, addr, irk);
   226d2:	4622      	mov	r2, r4
   226d4:	4629      	mov	r1, r5
   226d6:	4630      	mov	r0, r6
   226d8:	f7ff fe4e 	bl	22378 <id_create>
	if (err) {
   226dc:	b900      	cbnz	r0, 226e0 <bt_id_create+0x8c>
		return err;
	}

	return new_id;
   226de:	4630      	mov	r0, r6
}
   226e0:	b004      	add	sp, #16
   226e2:	bd70      	pop	{r4, r5, r6, pc}
			return -EALREADY;
   226e4:	f06f 0077 	mvn.w	r0, #119	; 0x77
   226e8:	e7fa      	b.n	226e0 <bt_id_create+0x8c>
			return -EINVAL;
   226ea:	f06f 0015 	mvn.w	r0, #21
   226ee:	e7f7      	b.n	226e0 <bt_id_create+0x8c>
		return -EINVAL;
   226f0:	f06f 0015 	mvn.w	r0, #21
   226f4:	e7f4      	b.n	226e0 <bt_id_create+0x8c>
		return -ENOMEM;
   226f6:	f06f 000b 	mvn.w	r0, #11
   226fa:	e7f1      	b.n	226e0 <bt_id_create+0x8c>
   226fc:	0003d5f0 	.word	0x0003d5f0
   22700:	200002a8 	.word	0x200002a8
   22704:	20000374 	.word	0x20000374

00022708 <bt_id_read_public_addr>:
#endif /* defined(CONFIG_BT_HCI_VS_EXT) */
}
#endif /* defined(CONFIG_BT_PRIVACY) */

uint8_t bt_id_read_public_addr(bt_addr_le_t *addr)
{
   22708:	b530      	push	{r4, r5, lr}
   2270a:	b087      	sub	sp, #28
   2270c:	4605      	mov	r5, r0
	struct bt_hci_rp_read_bd_addr *rp;
	struct net_buf *rsp;
	int err;

	/* Read Bluetooth Address */
	err = bt_hci_cmd_send_sync(BT_HCI_OP_READ_BD_ADDR, NULL, &rsp);
   2270e:	aa01      	add	r2, sp, #4
   22710:	2100      	movs	r1, #0
   22712:	f241 0009 	movw	r0, #4105	; 0x1009
   22716:	f7fe fd7d 	bl	21214 <bt_hci_cmd_send_sync>
	if (err) {
   2271a:	b9f0      	cbnz	r0, 2275a <bt_id_read_public_addr+0x52>
		BT_WARN("Failed to read public address");
		return 0U;
	}

	rp = (void *)rsp->data;
   2271c:	9b01      	ldr	r3, [sp, #4]
   2271e:	689c      	ldr	r4, [r3, #8]

	if (!bt_addr_cmp(&rp->bdaddr, BT_ADDR_ANY) ||
   22720:	3401      	adds	r4, #1
   22722:	2300      	movs	r3, #0
   22724:	9302      	str	r3, [sp, #8]
   22726:	f8ad 300c 	strh.w	r3, [sp, #12]
	return memcmp(a, b, sizeof(*a));
   2272a:	2206      	movs	r2, #6
   2272c:	a902      	add	r1, sp, #8
   2272e:	4620      	mov	r0, r4
   22730:	f013 f9cd 	bl	35ace <memcmp>
   22734:	b158      	cbz	r0, 2274e <bt_id_read_public_addr+0x46>
	    !bt_addr_cmp(&rp->bdaddr, BT_ADDR_NONE)) {
   22736:	4b12      	ldr	r3, [pc, #72]	; (22780 <bt_id_read_public_addr+0x78>)
   22738:	e893 0003 	ldmia.w	r3, {r0, r1}
   2273c:	9004      	str	r0, [sp, #16]
   2273e:	f8ad 1014 	strh.w	r1, [sp, #20]
   22742:	2206      	movs	r2, #6
   22744:	a904      	add	r1, sp, #16
   22746:	4620      	mov	r0, r4
   22748:	f013 f9c1 	bl	35ace <memcmp>
	if (!bt_addr_cmp(&rp->bdaddr, BT_ADDR_ANY) ||
   2274c:	b958      	cbnz	r0, 22766 <bt_id_read_public_addr+0x5e>
		BT_DBG("Controller has no public address");
		net_buf_unref(rsp);
   2274e:	9801      	ldr	r0, [sp, #4]
   22750:	f007 f806 	bl	29760 <net_buf_unref>
		return 0U;
   22754:	2000      	movs	r0, #0
	bt_addr_copy(&addr->a, &rp->bdaddr);
	addr->type = BT_ADDR_LE_PUBLIC;

	net_buf_unref(rsp);
	return 1U;
}
   22756:	b007      	add	sp, #28
   22758:	bd30      	pop	{r4, r5, pc}
		BT_WARN("Failed to read public address");
   2275a:	2157      	movs	r1, #87	; 0x57
   2275c:	4809      	ldr	r0, [pc, #36]	; (22784 <bt_id_read_public_addr+0x7c>)
   2275e:	f011 f9c5 	bl	33aec <z_log_minimal_printk>
		return 0U;
   22762:	2000      	movs	r0, #0
   22764:	e7f7      	b.n	22756 <bt_id_read_public_addr+0x4e>
	memcpy(dst, src, sizeof(*dst));
   22766:	2206      	movs	r2, #6
   22768:	4621      	mov	r1, r4
   2276a:	1c68      	adds	r0, r5, #1
   2276c:	f013 f9c6 	bl	35afc <memcpy>
	addr->type = BT_ADDR_LE_PUBLIC;
   22770:	2300      	movs	r3, #0
   22772:	702b      	strb	r3, [r5, #0]
	net_buf_unref(rsp);
   22774:	9801      	ldr	r0, [sp, #4]
   22776:	f006 fff3 	bl	29760 <net_buf_unref>
	return 1U;
   2277a:	2001      	movs	r0, #1
   2277c:	e7eb      	b.n	22756 <bt_id_read_public_addr+0x4e>
   2277e:	bf00      	nop
   22780:	0003ba18 	.word	0x0003ba18
   22784:	0003d624 	.word	0x0003d624

00022788 <bt_setup_public_id_addr>:

int bt_setup_public_id_addr(void)
{
   22788:	b500      	push	{lr}
   2278a:	b083      	sub	sp, #12
	bt_addr_le_t addr;
	uint8_t *irk = NULL;

	bt_dev.id_count = bt_id_read_public_addr(&addr);
   2278c:	4668      	mov	r0, sp
   2278e:	f7ff ffbb 	bl	22708 <bt_id_read_public_addr>
   22792:	4b06      	ldr	r3, [pc, #24]	; (227ac <bt_setup_public_id_addr+0x24>)
   22794:	71d8      	strb	r0, [r3, #7]

	if (!bt_dev.id_count) {
   22796:	b918      	cbnz	r0, 227a0 <bt_setup_public_id_addr+0x18>
		return 0;
   22798:	2000      	movs	r0, #0
		atomic_set_bit(bt_dev.flags, BT_DEV_STORE_ID);
	}
#endif /* defined(CONFIG_BT_PRIVACY) */

	return id_create(BT_ID_DEFAULT, &addr, irk);
}
   2279a:	b003      	add	sp, #12
   2279c:	f85d fb04 	ldr.w	pc, [sp], #4
	return id_create(BT_ID_DEFAULT, &addr, irk);
   227a0:	2200      	movs	r2, #0
   227a2:	4669      	mov	r1, sp
   227a4:	4610      	mov	r0, r2
   227a6:	f7ff fde7 	bl	22378 <id_create>
   227aa:	e7f6      	b.n	2279a <bt_setup_public_id_addr+0x12>
   227ac:	200002a8 	.word	0x200002a8

000227b0 <bt_read_static_addr>:

#if defined(CONFIG_BT_HCI_VS_EXT)
uint8_t bt_read_static_addr(struct bt_hci_vs_static_addr addrs[], uint8_t size)
{
   227b0:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   227b4:	b082      	sub	sp, #8
	struct bt_hci_rp_vs_read_static_addrs *rp;
	struct net_buf *rsp;
	int err, i;
	uint8_t cnt;

	if (!BT_VS_CMD_READ_STATIC_ADDRS(bt_dev.vs_commands)) {
   227b6:	4b1c      	ldr	r3, [pc, #112]	; (22828 <bt_read_static_addr+0x78>)
   227b8:	f893 50ba 	ldrb.w	r5, [r3, #186]	; 0xba
   227bc:	f015 0501 	ands.w	r5, r5, #1
   227c0:	d010      	beq.n	227e4 <bt_read_static_addr+0x34>
   227c2:	4606      	mov	r6, r0
   227c4:	4688      	mov	r8, r1
		BT_WARN("Read Static Addresses command not available");
		return 0;
	}

	err = bt_hci_cmd_send_sync(BT_HCI_OP_VS_READ_STATIC_ADDRS, NULL, &rsp);
   227c6:	aa01      	add	r2, sp, #4
   227c8:	2100      	movs	r1, #0
   227ca:	f64f 4009 	movw	r0, #64521	; 0xfc09
   227ce:	f7fe fd21 	bl	21214 <bt_hci_cmd_send_sync>
	if (err) {
   227d2:	4604      	mov	r4, r0
   227d4:	b958      	cbnz	r0, 227ee <bt_read_static_addr+0x3e>
		BT_WARN("Invalid Vendor HCI extensions");
		net_buf_unref(rsp);
		return 0;
	}

	rp = (void *)rsp->data;
   227d6:	9b01      	ldr	r3, [sp, #4]
   227d8:	689f      	ldr	r7, [r3, #8]
	cnt = MIN(rp->num_addrs, size);
   227da:	787d      	ldrb	r5, [r7, #1]
   227dc:	4545      	cmp	r5, r8
   227de:	bf28      	it	cs
   227e0:	4645      	movcs	r5, r8
		BT_WARN("Invalid Vendor HCI extensions");
		net_buf_unref(rsp);
		return 0;
	}

	for (i = 0; i < cnt; i++) {
   227e2:	e011      	b.n	22808 <bt_read_static_addr+0x58>
		BT_WARN("Read Static Addresses command not available");
   227e4:	2157      	movs	r1, #87	; 0x57
   227e6:	4811      	ldr	r0, [pc, #68]	; (2282c <bt_read_static_addr+0x7c>)
   227e8:	f011 f980 	bl	33aec <z_log_minimal_printk>
		return 0;
   227ec:	e012      	b.n	22814 <bt_read_static_addr+0x64>
		BT_WARN("Failed to read static addresses");
   227ee:	2157      	movs	r1, #87	; 0x57
   227f0:	480f      	ldr	r0, [pc, #60]	; (22830 <bt_read_static_addr+0x80>)
   227f2:	f011 f97b 	bl	33aec <z_log_minimal_printk>
		return 0;
   227f6:	2500      	movs	r5, #0
   227f8:	e00c      	b.n	22814 <bt_read_static_addr+0x64>
		memcpy(&addrs[i], rp->a, sizeof(struct bt_hci_vs_static_addr));
   227fa:	2216      	movs	r2, #22
   227fc:	1cb9      	adds	r1, r7, #2
   227fe:	fb02 6004 	mla	r0, r2, r4, r6
   22802:	f013 f97b 	bl	35afc <memcpy>
	for (i = 0; i < cnt; i++) {
   22806:	3401      	adds	r4, #1
   22808:	42a5      	cmp	r5, r4
   2280a:	dcf6      	bgt.n	227fa <bt_read_static_addr+0x4a>
	}

	net_buf_unref(rsp);
   2280c:	9801      	ldr	r0, [sp, #4]
   2280e:	f006 ffa7 	bl	29760 <net_buf_unref>
	if (!cnt) {
   22812:	b11d      	cbz	r5, 2281c <bt_read_static_addr+0x6c>
		BT_WARN("No static addresses stored in controller");
	}

	return cnt;
}
   22814:	4628      	mov	r0, r5
   22816:	b002      	add	sp, #8
   22818:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
		BT_WARN("No static addresses stored in controller");
   2281c:	2157      	movs	r1, #87	; 0x57
   2281e:	4805      	ldr	r0, [pc, #20]	; (22834 <bt_read_static_addr+0x84>)
   22820:	f011 f964 	bl	33aec <z_log_minimal_printk>
   22824:	e7f6      	b.n	22814 <bt_read_static_addr+0x64>
   22826:	bf00      	nop
   22828:	200002a8 	.word	0x200002a8
   2282c:	0003d648 	.word	0x0003d648
   22830:	0003d67c 	.word	0x0003d67c
   22834:	0003d6a4 	.word	0x0003d6a4

00022838 <bt_setup_random_id_addr>:
#endif /* CONFIG_BT_HCI_VS_EXT */

int bt_setup_random_id_addr(void)
{
   22838:	b510      	push	{r4, lr}
   2283a:	b088      	sub	sp, #32
#if defined(CONFIG_BT_HCI_VS_EXT) || defined(CONFIG_BT_CTLR)
	/* Only read the addresses if the user has not already configured one or
	 * more identities (!bt_dev.id_count).
	 */
	if (!bt_dev.id_count) {
   2283c:	4b17      	ldr	r3, [pc, #92]	; (2289c <bt_setup_random_id_addr+0x64>)
   2283e:	79dc      	ldrb	r4, [r3, #7]
   22840:	b934      	cbnz	r4, 22850 <bt_setup_random_id_addr+0x18>
		struct bt_hci_vs_static_addr addrs[CONFIG_BT_ID_MAX];

		bt_dev.id_count = bt_read_static_addr(addrs, CONFIG_BT_ID_MAX);
   22842:	2101      	movs	r1, #1
   22844:	a802      	add	r0, sp, #8
   22846:	f7ff ffb3 	bl	227b0 <bt_read_static_addr>
   2284a:	4b14      	ldr	r3, [pc, #80]	; (2289c <bt_setup_random_id_addr+0x64>)
   2284c:	71d8      	strb	r0, [r3, #7]

		if (bt_dev.id_count) {
   2284e:	b938      	cbnz	r0, 22860 <bt_setup_random_id_addr+0x28>

	if (IS_ENABLED(CONFIG_BT_PRIVACY) && IS_ENABLED(CONFIG_BT_SETTINGS)) {
		atomic_set_bit(bt_dev.flags, BT_DEV_STORE_ID);
	}

	return bt_id_create(NULL, NULL);
   22850:	2100      	movs	r1, #0
   22852:	4608      	mov	r0, r1
   22854:	f7ff fefe 	bl	22654 <bt_id_create>
   22858:	4603      	mov	r3, r0
}
   2285a:	4618      	mov	r0, r3
   2285c:	b008      	add	sp, #32
   2285e:	bd10      	pop	{r4, pc}
			for (uint8_t i = 0; i < bt_dev.id_count; i++) {
   22860:	4b0e      	ldr	r3, [pc, #56]	; (2289c <bt_setup_random_id_addr+0x64>)
   22862:	79db      	ldrb	r3, [r3, #7]
   22864:	42a3      	cmp	r3, r4
   22866:	d916      	bls.n	22896 <bt_setup_random_id_addr+0x5e>
   22868:	2206      	movs	r2, #6
   2286a:	2116      	movs	r1, #22
   2286c:	ab02      	add	r3, sp, #8
   2286e:	fb01 3104 	mla	r1, r1, r4, r3
   22872:	f10d 0001 	add.w	r0, sp, #1
   22876:	f013 f941 	bl	35afc <memcpy>
				addr.type = BT_ADDR_LE_RANDOM;
   2287a:	2301      	movs	r3, #1
   2287c:	f88d 3000 	strb.w	r3, [sp]
				err = id_create(i, &addr, irk);
   22880:	2200      	movs	r2, #0
   22882:	4669      	mov	r1, sp
   22884:	4620      	mov	r0, r4
   22886:	f7ff fd77 	bl	22378 <id_create>
				if (err) {
   2288a:	4603      	mov	r3, r0
   2288c:	2800      	cmp	r0, #0
   2288e:	d1e4      	bne.n	2285a <bt_setup_random_id_addr+0x22>
			for (uint8_t i = 0; i < bt_dev.id_count; i++) {
   22890:	3401      	adds	r4, #1
   22892:	b2e4      	uxtb	r4, r4
   22894:	e7e4      	b.n	22860 <bt_setup_random_id_addr+0x28>
			return 0;
   22896:	2300      	movs	r3, #0
   22898:	e7df      	b.n	2285a <bt_setup_random_id_addr+0x22>
   2289a:	bf00      	nop
   2289c:	200002a8 	.word	0x200002a8

000228a0 <bt_id_set_adv_own_addr>:
}
#endif /* defined(CONFIG_BT_OBSERVER) */

int bt_id_set_adv_own_addr(struct bt_le_ext_adv *adv, uint32_t options,
			   bool dir_adv, uint8_t *own_addr_type)
{
   228a0:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
   228a2:	460d      	mov	r5, r1
   228a4:	461e      	mov	r6, r3
	const bt_addr_le_t *id_addr;
	int err = 0;

	/* Set which local identity address we're advertising with */
	id_addr = &bt_dev.id_addr[adv->id];
   228a6:	7804      	ldrb	r4, [r0, #0]

	if (options & BT_LE_ADV_OPT_CONNECTABLE) {
   228a8:	f011 0f01 	tst.w	r1, #1
   228ac:	d027      	beq.n	228fe <bt_id_set_adv_own_addr+0x5e>
   228ae:	4617      	mov	r7, r2
		if (dir_adv && (options & BT_LE_ADV_OPT_DIR_ADDR_RPA) &&
   228b0:	b142      	cbz	r2, 228c4 <bt_id_set_adv_own_addr+0x24>
   228b2:	f011 0f20 	tst.w	r1, #32
   228b6:	d005      	beq.n	228c4 <bt_id_set_adv_own_addr+0x24>
		    !BT_FEAT_LE_PRIVACY(bt_dev.le.features)) {
   228b8:	4b22      	ldr	r3, [pc, #136]	; (22944 <bt_id_set_adv_own_addr+0xa4>)
   228ba:	f893 30d0 	ldrb.w	r3, [r3, #208]	; 0xd0
		if (dir_adv && (options & BT_LE_ADV_OPT_DIR_ADDR_RPA) &&
   228be:	f013 0f40 	tst.w	r3, #64	; 0x40
   228c2:	d038      	beq.n	22936 <bt_id_set_adv_own_addr+0x96>
			 * If Static Random address is used as Identity
			 * address we need to restore it before advertising
			 * is enabled. Otherwise NRPA used for active scan
			 * could be used for advertising.
			 */
			if (id_addr->type == BT_ADDR_LE_RANDOM) {
   228c4:	ebc4 03c4 	rsb	r3, r4, r4, lsl #3
   228c8:	4a1e      	ldr	r2, [pc, #120]	; (22944 <bt_id_set_adv_own_addr+0xa4>)
   228ca:	5cd3      	ldrb	r3, [r2, r3]
   228cc:	2b01      	cmp	r3, #1
   228ce:	d00d      	beq.n	228ec <bt_id_set_adv_own_addr+0x4c>
				if (err) {
					return err;
				}
			}

			*own_addr_type = id_addr->type;
   228d0:	ebc4 04c4 	rsb	r4, r4, r4, lsl #3
   228d4:	4b1b      	ldr	r3, [pc, #108]	; (22944 <bt_id_set_adv_own_addr+0xa4>)
   228d6:	5d1b      	ldrb	r3, [r3, r4]
   228d8:	7033      	strb	r3, [r6, #0]

			if (dir_adv && (options & BT_LE_ADV_OPT_DIR_ADDR_RPA)) {
   228da:	b37f      	cbz	r7, 2293c <bt_id_set_adv_own_addr+0x9c>
   228dc:	f015 0f20 	tst.w	r5, #32
   228e0:	d02e      	beq.n	22940 <bt_id_set_adv_own_addr+0xa0>
				*own_addr_type |= BT_HCI_OWN_ADDR_RPA_MASK;
   228e2:	f043 0302 	orr.w	r3, r3, #2
   228e6:	7033      	strb	r3, [r6, #0]
		if (err) {
			return err;
		}
	}

	return 0;
   228e8:	2000      	movs	r0, #0
   228ea:	e017      	b.n	2291c <bt_id_set_adv_own_addr+0x7c>
				err = bt_id_set_adv_random_addr(adv, &id_addr->a);
   228ec:	ebc4 01c4 	rsb	r1, r4, r4, lsl #3
   228f0:	4411      	add	r1, r2
   228f2:	3101      	adds	r1, #1
   228f4:	f013 fc9f 	bl	36236 <bt_id_set_adv_random_addr>
				if (err) {
   228f8:	2800      	cmp	r0, #0
   228fa:	d0e9      	beq.n	228d0 <bt_id_set_adv_own_addr+0x30>
   228fc:	e00e      	b.n	2291c <bt_id_set_adv_own_addr+0x7c>
		if (options & BT_LE_ADV_OPT_USE_IDENTITY) {
   228fe:	f011 0f04 	tst.w	r1, #4
   22902:	d013      	beq.n	2292c <bt_id_set_adv_own_addr+0x8c>
			if (id_addr->type == BT_ADDR_LE_RANDOM) {
   22904:	ebc4 03c4 	rsb	r3, r4, r4, lsl #3
   22908:	4a0e      	ldr	r2, [pc, #56]	; (22944 <bt_id_set_adv_own_addr+0xa4>)
   2290a:	5cd3      	ldrb	r3, [r2, r3]
   2290c:	2b01      	cmp	r3, #1
   2290e:	d006      	beq.n	2291e <bt_id_set_adv_own_addr+0x7e>
	int err = 0;
   22910:	2000      	movs	r0, #0
			*own_addr_type = id_addr->type;
   22912:	ebc4 04c4 	rsb	r4, r4, r4, lsl #3
   22916:	4b0b      	ldr	r3, [pc, #44]	; (22944 <bt_id_set_adv_own_addr+0xa4>)
   22918:	5d1b      	ldrb	r3, [r3, r4]
   2291a:	7033      	strb	r3, [r6, #0]
}
   2291c:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
				err = bt_id_set_adv_random_addr(adv, &id_addr->a);
   2291e:	ebc4 01c4 	rsb	r1, r4, r4, lsl #3
   22922:	4411      	add	r1, r2
   22924:	3101      	adds	r1, #1
   22926:	f013 fc86 	bl	36236 <bt_id_set_adv_random_addr>
   2292a:	e7f2      	b.n	22912 <bt_id_set_adv_own_addr+0x72>
			err = bt_id_set_adv_private_addr(adv);
   2292c:	f013 fc88 	bl	36240 <bt_id_set_adv_private_addr>
			*own_addr_type = BT_ADDR_LE_RANDOM;
   22930:	2301      	movs	r3, #1
   22932:	7033      	strb	r3, [r6, #0]
		if (err) {
   22934:	e7f2      	b.n	2291c <bt_id_set_adv_own_addr+0x7c>
			return -ENOTSUP;
   22936:	f06f 0085 	mvn.w	r0, #133	; 0x85
   2293a:	e7ef      	b.n	2291c <bt_id_set_adv_own_addr+0x7c>
	return 0;
   2293c:	2000      	movs	r0, #0
   2293e:	e7ed      	b.n	2291c <bt_id_set_adv_own_addr+0x7c>
   22940:	2000      	movs	r0, #0
   22942:	e7eb      	b.n	2291c <bt_id_set_adv_own_addr+0x7c>
   22944:	200002a8 	.word	0x200002a8

00022948 <adv_new_legacy>:
	bt_dev.adv = adv_new();
	return bt_dev.adv;
#else
	return &bt_dev.adv;
#endif
}
   22948:	4800      	ldr	r0, [pc, #0]	; (2294c <adv_new_legacy+0x4>)
   2294a:	4770      	bx	lr
   2294c:	200002c0 	.word	0x200002c0

00022950 <set_data_add_complete>:
	size_t len;
};

static int set_data_add_complete(uint8_t *set_data, uint8_t set_data_len_max,
			const struct bt_ad *ad, size_t ad_len, uint8_t *data_len)
{
   22950:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
   22954:	b083      	sub	sp, #12
   22956:	4605      	mov	r5, r0
   22958:	4688      	mov	r8, r1
   2295a:	9201      	str	r2, [sp, #4]
   2295c:	9300      	str	r3, [sp, #0]
	uint8_t set_data_len = 0;

	for (size_t i = 0; i < ad_len; i++) {
   2295e:	f04f 0a00 	mov.w	sl, #0
	uint8_t set_data_len = 0;
   22962:	4653      	mov	r3, sl
	for (size_t i = 0; i < ad_len; i++) {
   22964:	9a00      	ldr	r2, [sp, #0]
   22966:	4552      	cmp	r2, sl
   22968:	d93f      	bls.n	229ea <set_data_add_complete+0x9a>
		const struct bt_data *data = ad[i].data;
   2296a:	9a01      	ldr	r2, [sp, #4]
   2296c:	eb02 09ca 	add.w	r9, r2, sl, lsl #3
   22970:	f852 703a 	ldr.w	r7, [r2, sl, lsl #3]

		for (size_t j = 0; j < ad[i].len; j++) {
   22974:	2400      	movs	r4, #0
   22976:	e016      	b.n	229a6 <set_data_add_complete+0x56>
				      shortened_len > 0)) {
					BT_ERR("Too big advertising data");
					return -EINVAL;
				}

				type = BT_DATA_NAME_SHORTENED;
   22978:	f04f 0c08 	mov.w	ip, #8
				len = shortened_len;
			}

			set_data[set_data_len++] = len + 1;
   2297c:	b2d6      	uxtb	r6, r2
   2297e:	1c59      	adds	r1, r3, #1
   22980:	b2c9      	uxtb	r1, r1
   22982:	f106 0b01 	add.w	fp, r6, #1
   22986:	f805 b00e 	strb.w	fp, [r5, lr]
			set_data[set_data_len++] = type;
   2298a:	3302      	adds	r3, #2
   2298c:	fa5f fb83 	uxtb.w	fp, r3
   22990:	f805 c001 	strb.w	ip, [r5, r1]

			memcpy(&set_data[set_data_len], data[j].data, len);
   22994:	6841      	ldr	r1, [r0, #4]
   22996:	eb05 000b 	add.w	r0, r5, fp
   2299a:	f013 f8af 	bl	35afc <memcpy>
			set_data_len += len;
   2299e:	eb0b 0306 	add.w	r3, fp, r6
   229a2:	b2db      	uxtb	r3, r3
		for (size_t j = 0; j < ad[i].len; j++) {
   229a4:	3401      	adds	r4, #1
   229a6:	f8d9 2004 	ldr.w	r2, [r9, #4]
   229aa:	4294      	cmp	r4, r2
   229ac:	d21a      	bcs.n	229e4 <set_data_add_complete+0x94>
			size_t len = data[j].data_len;
   229ae:	eb07 00c4 	add.w	r0, r7, r4, lsl #3
   229b2:	7842      	ldrb	r2, [r0, #1]
			uint8_t type = data[j].type;
   229b4:	f817 c034 	ldrb.w	ip, [r7, r4, lsl #3]
			if ((set_data_len + len + 2) > set_data_len_max) {
   229b8:	469e      	mov	lr, r3
   229ba:	1899      	adds	r1, r3, r2
   229bc:	3102      	adds	r1, #2
   229be:	4541      	cmp	r1, r8
   229c0:	d9dc      	bls.n	2297c <set_data_add_complete+0x2c>
				ssize_t shortened_len = set_data_len_max -
   229c2:	eba8 0203 	sub.w	r2, r8, r3
   229c6:	3a02      	subs	r2, #2
				if (!(type == BT_DATA_NAME_COMPLETE &&
   229c8:	f1bc 0f09 	cmp.w	ip, #9
   229cc:	d101      	bne.n	229d2 <set_data_add_complete+0x82>
   229ce:	2a00      	cmp	r2, #0
   229d0:	dcd2      	bgt.n	22978 <set_data_add_complete+0x28>
					BT_ERR("Too big advertising data");
   229d2:	2145      	movs	r1, #69	; 0x45
   229d4:	4807      	ldr	r0, [pc, #28]	; (229f4 <set_data_add_complete+0xa4>)
   229d6:	f011 f889 	bl	33aec <z_log_minimal_printk>
					return -EINVAL;
   229da:	f06f 0015 	mvn.w	r0, #21
		}
	}

	*data_len = set_data_len;
	return 0;
}
   229de:	b003      	add	sp, #12
   229e0:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
	for (size_t i = 0; i < ad_len; i++) {
   229e4:	f10a 0a01 	add.w	sl, sl, #1
   229e8:	e7bc      	b.n	22964 <set_data_add_complete+0x14>
	*data_len = set_data_len;
   229ea:	9a0c      	ldr	r2, [sp, #48]	; 0x30
   229ec:	7013      	strb	r3, [r2, #0]
	return 0;
   229ee:	2000      	movs	r0, #0
   229f0:	e7f5      	b.n	229de <set_data_add_complete+0x8e>
   229f2:	bf00      	nop
   229f4:	0003d6dc 	.word	0x0003d6dc

000229f8 <valid_adv_ext_param>:
{
   229f8:	b510      	push	{r4, lr}
   229fa:	b082      	sub	sp, #8
   229fc:	4604      	mov	r4, r0
	if (param->id >= bt_dev.id_count ||
   229fe:	7800      	ldrb	r0, [r0, #0]
   22a00:	4b23      	ldr	r3, [pc, #140]	; (22a90 <valid_adv_ext_param+0x98>)
   22a02:	79db      	ldrb	r3, [r3, #7]
   22a04:	4298      	cmp	r0, r3
   22a06:	d302      	bcc.n	22a0e <valid_adv_ext_param+0x16>
		return false;
   22a08:	2000      	movs	r0, #0
}
   22a0a:	b002      	add	sp, #8
   22a0c:	bd10      	pop	{r4, pc}
	    !bt_addr_le_cmp(&bt_dev.id_addr[param->id], BT_ADDR_LE_ANY)) {
   22a0e:	ebc0 00c0 	rsb	r0, r0, r0, lsl #3
   22a12:	2300      	movs	r3, #0
   22a14:	9300      	str	r3, [sp, #0]
   22a16:	f8cd 3003 	str.w	r3, [sp, #3]
	return memcmp(a, b, sizeof(*a));
   22a1a:	2207      	movs	r2, #7
   22a1c:	4669      	mov	r1, sp
   22a1e:	4b1c      	ldr	r3, [pc, #112]	; (22a90 <valid_adv_ext_param+0x98>)
   22a20:	4418      	add	r0, r3
   22a22:	f013 f854 	bl	35ace <memcmp>
	if (param->id >= bt_dev.id_count ||
   22a26:	2800      	cmp	r0, #0
   22a28:	d0ee      	beq.n	22a08 <valid_adv_ext_param+0x10>
	if (!(param->options & BT_LE_ADV_OPT_CONNECTABLE)) {
   22a2a:	6863      	ldr	r3, [r4, #4]
   22a2c:	f013 0f01 	tst.w	r3, #1
   22a30:	d107      	bne.n	22a42 <valid_adv_ext_param+0x4a>
		if (bt_dev.hci_version < BT_HCI_VERSION_5_0 &&
   22a32:	4a17      	ldr	r2, [pc, #92]	; (22a90 <valid_adv_ext_param+0x98>)
   22a34:	f892 2068 	ldrb.w	r2, [r2, #104]	; 0x68
   22a38:	2a08      	cmp	r2, #8
   22a3a:	d802      	bhi.n	22a42 <valid_adv_ext_param+0x4a>
		    param->interval_min < 0x00a0) {
   22a3c:	68a2      	ldr	r2, [r4, #8]
		if (bt_dev.hci_version < BT_HCI_VERSION_5_0 &&
   22a3e:	2a9f      	cmp	r2, #159	; 0x9f
   22a40:	d91b      	bls.n	22a7a <valid_adv_ext_param+0x82>
	if ((param->options & (BT_LE_ADV_OPT_DIR_MODE_LOW_DUTY |
   22a42:	f013 0f30 	tst.w	r3, #48	; 0x30
   22a46:	d001      	beq.n	22a4c <valid_adv_ext_param+0x54>
	    !param->peer) {
   22a48:	6922      	ldr	r2, [r4, #16]
			       BT_LE_ADV_OPT_DIR_ADDR_RPA)) &&
   22a4a:	b1c2      	cbz	r2, 22a7e <valid_adv_ext_param+0x86>
	if ((param->options & BT_LE_ADV_OPT_DIR_MODE_LOW_DUTY) ||
   22a4c:	f013 0f10 	tst.w	r3, #16
   22a50:	d108      	bne.n	22a64 <valid_adv_ext_param+0x6c>
	    !param->peer) {
   22a52:	6922      	ldr	r2, [r4, #16]
	if ((param->options & BT_LE_ADV_OPT_DIR_MODE_LOW_DUTY) ||
   22a54:	b132      	cbz	r2, 22a64 <valid_adv_ext_param+0x6c>
	    (param->options & BT_LE_ADV_OPT_DISABLE_CHAN_38) &&
   22a56:	f403 3360 	and.w	r3, r3, #229376	; 0x38000
	if ((param->options & BT_LE_ADV_OPT_DISABLE_CHAN_37) &&
   22a5a:	f5b3 3f60 	cmp.w	r3, #229376	; 0x38000
   22a5e:	d014      	beq.n	22a8a <valid_adv_ext_param+0x92>
	return true;
   22a60:	2001      	movs	r0, #1
   22a62:	e7d2      	b.n	22a0a <valid_adv_ext_param+0x12>
		if (param->interval_min > param->interval_max ||
   22a64:	68a2      	ldr	r2, [r4, #8]
   22a66:	68e1      	ldr	r1, [r4, #12]
   22a68:	428a      	cmp	r2, r1
   22a6a:	d80a      	bhi.n	22a82 <valid_adv_ext_param+0x8a>
   22a6c:	2a1f      	cmp	r2, #31
   22a6e:	d90a      	bls.n	22a86 <valid_adv_ext_param+0x8e>
		    param->interval_min < 0x0020 ||
   22a70:	f5b1 4f80 	cmp.w	r1, #16384	; 0x4000
   22a74:	d9ef      	bls.n	22a56 <valid_adv_ext_param+0x5e>
			return false;
   22a76:	2000      	movs	r0, #0
   22a78:	e7c7      	b.n	22a0a <valid_adv_ext_param+0x12>
			return false;
   22a7a:	2000      	movs	r0, #0
   22a7c:	e7c5      	b.n	22a0a <valid_adv_ext_param+0x12>
		return false;
   22a7e:	2000      	movs	r0, #0
   22a80:	e7c3      	b.n	22a0a <valid_adv_ext_param+0x12>
			return false;
   22a82:	2000      	movs	r0, #0
   22a84:	e7c1      	b.n	22a0a <valid_adv_ext_param+0x12>
   22a86:	2000      	movs	r0, #0
   22a88:	e7bf      	b.n	22a0a <valid_adv_ext_param+0x12>
		return false;
   22a8a:	2000      	movs	r0, #0
   22a8c:	e7bd      	b.n	22a0a <valid_adv_ext_param+0x12>
   22a8e:	bf00      	nop
   22a90:	200002a8 	.word	0x200002a8

00022a94 <le_adv_start_add_conn>:
	return channel_map;
}

static int le_adv_start_add_conn(const struct bt_le_ext_adv *adv,
				 struct bt_conn **out_conn)
{
   22a94:	b5f0      	push	{r4, r5, r6, r7, lr}
   22a96:	b085      	sub	sp, #20
   22a98:	4604      	mov	r4, r0
   22a9a:	460f      	mov	r7, r1
	struct bt_conn *conn;

	bt_dev.adv_conn_id = adv->id;
   22a9c:	4605      	mov	r5, r0
   22a9e:	f815 2b09 	ldrb.w	r2, [r5], #9
   22aa2:	4b1f      	ldr	r3, [pc, #124]	; (22b20 <le_adv_start_add_conn+0x8c>)
   22aa4:	f883 2067 	strb.w	r2, [r3, #103]	; 0x67

	if (!bt_addr_le_cmp(&adv->target_addr, BT_ADDR_LE_ANY)) {
   22aa8:	2300      	movs	r3, #0
   22aaa:	9300      	str	r3, [sp, #0]
   22aac:	f8cd 3003 	str.w	r3, [sp, #3]
   22ab0:	2207      	movs	r2, #7
   22ab2:	4669      	mov	r1, sp
   22ab4:	4628      	mov	r0, r5
   22ab6:	f013 f80a 	bl	35ace <memcmp>
   22aba:	b9b8      	cbnz	r0, 22aec <le_adv_start_add_conn+0x58>
   22abc:	4606      	mov	r6, r0
		/* Undirected advertising */
		conn = bt_conn_add_le(adv->id, BT_ADDR_LE_NONE);
   22abe:	4b19      	ldr	r3, [pc, #100]	; (22b24 <le_adv_start_add_conn+0x90>)
   22ac0:	e893 0003 	ldmia.w	r3, {r0, r1}
   22ac4:	9002      	str	r0, [sp, #8]
   22ac6:	f8ad 100c 	strh.w	r1, [sp, #12]
   22aca:	0c09      	lsrs	r1, r1, #16
   22acc:	f88d 100e 	strb.w	r1, [sp, #14]
   22ad0:	a902      	add	r1, sp, #8
   22ad2:	7820      	ldrb	r0, [r4, #0]
   22ad4:	f013 ff38 	bl	36948 <bt_conn_add_le>
		if (!conn) {
   22ad8:	4604      	mov	r4, r0
   22ada:	b120      	cbz	r0, 22ae6 <le_adv_start_add_conn+0x52>
			return -ENOMEM;
		}

		bt_conn_set_state(conn, BT_CONN_CONNECT_ADV);
   22adc:	2104      	movs	r1, #4
   22ade:	f000 fea9 	bl	23834 <bt_conn_set_state>
		*out_conn = conn;
   22ae2:	603c      	str	r4, [r7, #0]
		return 0;
   22ae4:	e012      	b.n	22b0c <le_adv_start_add_conn+0x78>
			return -ENOMEM;
   22ae6:	f06f 060b 	mvn.w	r6, #11
   22aea:	e00f      	b.n	22b0c <le_adv_start_add_conn+0x78>
	}

	if (bt_conn_exists_le(adv->id, &adv->target_addr)) {
   22aec:	4629      	mov	r1, r5
   22aee:	7820      	ldrb	r0, [r4, #0]
   22af0:	f001 f92c 	bl	23d4c <bt_conn_exists_le>
   22af4:	b968      	cbnz	r0, 22b12 <le_adv_start_add_conn+0x7e>
		return -EINVAL;
	}

	conn = bt_conn_add_le(adv->id, &adv->target_addr);
   22af6:	4629      	mov	r1, r5
   22af8:	7820      	ldrb	r0, [r4, #0]
   22afa:	f013 ff25 	bl	36948 <bt_conn_add_le>
	if (!conn) {
   22afe:	4604      	mov	r4, r0
   22b00:	b150      	cbz	r0, 22b18 <le_adv_start_add_conn+0x84>
		return -ENOMEM;
	}

	bt_conn_set_state(conn, BT_CONN_CONNECT_DIR_ADV);
   22b02:	2105      	movs	r1, #5
   22b04:	f000 fe96 	bl	23834 <bt_conn_set_state>
	*out_conn = conn;
   22b08:	603c      	str	r4, [r7, #0]
	return 0;
   22b0a:	2600      	movs	r6, #0
}
   22b0c:	4630      	mov	r0, r6
   22b0e:	b005      	add	sp, #20
   22b10:	bdf0      	pop	{r4, r5, r6, r7, pc}
		return -EINVAL;
   22b12:	f06f 0615 	mvn.w	r6, #21
   22b16:	e7f9      	b.n	22b0c <le_adv_start_add_conn+0x78>
		return -ENOMEM;
   22b18:	f06f 060b 	mvn.w	r6, #11
   22b1c:	e7f6      	b.n	22b0c <le_adv_start_add_conn+0x78>
   22b1e:	bf00      	nop
   22b20:	200002a8 	.word	0x200002a8
   22b24:	0003ba20 	.word	0x0003ba20

00022b28 <le_adv_stop_free_conn>:

static void le_adv_stop_free_conn(const struct bt_le_ext_adv *adv, uint8_t status)
{
   22b28:	b570      	push	{r4, r5, r6, lr}
   22b2a:	b084      	sub	sp, #16
   22b2c:	4604      	mov	r4, r0
   22b2e:	460e      	mov	r6, r1
	struct bt_conn *conn;

	if (!bt_addr_le_cmp(&adv->target_addr, BT_ADDR_LE_ANY)) {
   22b30:	f100 0509 	add.w	r5, r0, #9
   22b34:	2300      	movs	r3, #0
   22b36:	9300      	str	r3, [sp, #0]
   22b38:	f8cd 3003 	str.w	r3, [sp, #3]
   22b3c:	2207      	movs	r2, #7
   22b3e:	4669      	mov	r1, sp
   22b40:	4628      	mov	r0, r5
   22b42:	f012 ffc4 	bl	35ace <memcmp>
   22b46:	b9c8      	cbnz	r0, 22b7c <le_adv_stop_free_conn+0x54>
		conn = bt_conn_lookup_state_le(adv->id, BT_ADDR_LE_NONE,
   22b48:	4b10      	ldr	r3, [pc, #64]	; (22b8c <le_adv_stop_free_conn+0x64>)
   22b4a:	e893 0003 	ldmia.w	r3, {r0, r1}
   22b4e:	9002      	str	r0, [sp, #8]
   22b50:	f8ad 100c 	strh.w	r1, [sp, #12]
   22b54:	0c09      	lsrs	r1, r1, #16
   22b56:	f88d 100e 	strb.w	r1, [sp, #14]
   22b5a:	2204      	movs	r2, #4
   22b5c:	a902      	add	r1, sp, #8
   22b5e:	7820      	ldrb	r0, [r4, #0]
   22b60:	f001 f938 	bl	23dd4 <bt_conn_lookup_state_le>
   22b64:	4604      	mov	r4, r0
	} else {
		conn = bt_conn_lookup_state_le(adv->id, &adv->target_addr,
					       BT_CONN_CONNECT_DIR_ADV);
	}

	if (conn) {
   22b66:	b13c      	cbz	r4, 22b78 <le_adv_stop_free_conn+0x50>
		conn->err = status;
   22b68:	7326      	strb	r6, [r4, #12]
		bt_conn_set_state(conn, BT_CONN_DISCONNECTED);
   22b6a:	2100      	movs	r1, #0
   22b6c:	4620      	mov	r0, r4
   22b6e:	f000 fe61 	bl	23834 <bt_conn_set_state>
		bt_conn_unref(conn);
   22b72:	4620      	mov	r0, r4
   22b74:	f000 fe22 	bl	237bc <bt_conn_unref>
	}
}
   22b78:	b004      	add	sp, #16
   22b7a:	bd70      	pop	{r4, r5, r6, pc}
		conn = bt_conn_lookup_state_le(adv->id, &adv->target_addr,
   22b7c:	2205      	movs	r2, #5
   22b7e:	4629      	mov	r1, r5
   22b80:	7820      	ldrb	r0, [r4, #0]
   22b82:	f001 f927 	bl	23dd4 <bt_conn_lookup_state_le>
   22b86:	4604      	mov	r4, r0
   22b88:	e7ed      	b.n	22b66 <le_adv_stop_free_conn+0x3e>
   22b8a:	bf00      	nop
   22b8c:	0003ba20 	.word	0x0003ba20

00022b90 <bt_le_ext_adv_foreach>:
{
   22b90:	b508      	push	{r3, lr}
   22b92:	4603      	mov	r3, r0
	func(&bt_dev.adv, data);
   22b94:	4801      	ldr	r0, [pc, #4]	; (22b9c <bt_le_ext_adv_foreach+0xc>)
   22b96:	4798      	blx	r3
}
   22b98:	bd08      	pop	{r3, pc}
   22b9a:	bf00      	nop
   22b9c:	200002c0 	.word	0x200002c0

00022ba0 <bt_le_adv_lookup_legacy>:
}
   22ba0:	4800      	ldr	r0, [pc, #0]	; (22ba4 <bt_le_adv_lookup_legacy+0x4>)
   22ba2:	4770      	bx	lr
   22ba4:	200002c0 	.word	0x200002c0

00022ba8 <bt_le_adv_start_legacy>:

int bt_le_adv_start_legacy(struct bt_le_ext_adv *adv,
			   const struct bt_le_adv_param *param,
			   const struct bt_data *ad, size_t ad_len,
			   const struct bt_data *sd, size_t sd_len)
{
   22ba8:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
   22bac:	b08f      	sub	sp, #60	; 0x3c
   22bae:	9205      	str	r2, [sp, #20]
   22bb0:	4698      	mov	r8, r3
	struct bt_hci_cp_le_set_adv_param set_param;
	struct bt_conn *conn = NULL;
   22bb2:	2300      	movs	r3, #0
   22bb4:	9307      	str	r3, [sp, #28]
	struct net_buf *buf;
	bool dir_adv = (param->peer != NULL), scannable = false;
   22bb6:	690f      	ldr	r7, [r1, #16]
   22bb8:	ebb7 0b03 	subs.w	fp, r7, r3
   22bbc:	bf18      	it	ne
   22bbe:	f04f 0b01 	movne.w	fp, #1
   22bc2:	f3bf 8f5b 	dmb	ish
   22bc6:	4bc4      	ldr	r3, [pc, #784]	; (22ed8 <bt_le_adv_start_legacy+0x330>)
   22bc8:	681b      	ldr	r3, [r3, #0]
   22bca:	f3bf 8f5b 	dmb	ish
	enum adv_name_type name_type;

	int err;

	if (!atomic_test_bit(bt_dev.flags, BT_DEV_READY)) {
   22bce:	f013 0f02 	tst.w	r3, #2
   22bd2:	f000 81ae 	beq.w	22f32 <bt_le_adv_start_legacy+0x38a>
   22bd6:	4605      	mov	r5, r0
   22bd8:	460c      	mov	r4, r1
		return -EAGAIN;
	}

	if (!valid_adv_param(param)) {
   22bda:	4608      	mov	r0, r1
   22bdc:	f013 fc55 	bl	3648a <valid_adv_param>
   22be0:	2800      	cmp	r0, #0
   22be2:	f000 81a9 	beq.w	22f38 <bt_le_adv_start_legacy+0x390>
		return -EINVAL;
	}

	if (!bt_id_adv_random_addr_check(param)) {
   22be6:	4620      	mov	r0, r4
   22be8:	f013 fb3f 	bl	3626a <bt_id_adv_random_addr_check>
   22bec:	4682      	mov	sl, r0
   22bee:	2800      	cmp	r0, #0
   22bf0:	f000 81a5 	beq.w	22f3e <bt_le_adv_start_legacy+0x396>
		return -EINVAL;
	}

	if (atomic_test_bit(adv->flags, BT_ADV_ENABLED)) {
   22bf4:	f105 0610 	add.w	r6, r5, #16
   22bf8:	f3bf 8f5b 	dmb	ish
   22bfc:	692b      	ldr	r3, [r5, #16]
   22bfe:	f3bf 8f5b 	dmb	ish
   22c02:	f013 0f40 	tst.w	r3, #64	; 0x40
   22c06:	f040 819d 	bne.w	22f44 <bt_le_adv_start_legacy+0x39c>
		return -EALREADY;
	}

	(void)memset(&set_param, 0, sizeof(set_param));
   22c0a:	220f      	movs	r2, #15
   22c0c:	2100      	movs	r1, #0
   22c0e:	a808      	add	r0, sp, #32
   22c10:	f012 ff98 	bl	35b44 <memset>

	set_param.min_interval = sys_cpu_to_le16(param->interval_min);
   22c14:	68a3      	ldr	r3, [r4, #8]
   22c16:	f8ad 3020 	strh.w	r3, [sp, #32]
	set_param.max_interval = sys_cpu_to_le16(param->interval_max);
   22c1a:	68e3      	ldr	r3, [r4, #12]
   22c1c:	f8ad 3022 	strh.w	r3, [sp, #34]	; 0x22
	set_param.channel_map  = get_adv_channel_map(param->options);
   22c20:	f8d4 9004 	ldr.w	r9, [r4, #4]
   22c24:	4648      	mov	r0, r9
   22c26:	f013 fb59 	bl	362dc <get_adv_channel_map>
   22c2a:	f88d 002d 	strb.w	r0, [sp, #45]	; 0x2d
	set_param.filter_policy = get_filter_policy(param->options);
   22c2e:	4648      	mov	r0, r9
   22c30:	f013 fb52 	bl	362d8 <get_filter_policy>
   22c34:	f88d 002e 	strb.w	r0, [sp, #46]	; 0x2e

	if (adv->id != param->id) {
   22c38:	782a      	ldrb	r2, [r5, #0]
   22c3a:	7823      	ldrb	r3, [r4, #0]
   22c3c:	429a      	cmp	r2, r3
   22c3e:	d00c      	beq.n	22c5a <bt_le_adv_start_legacy+0xb2>
	return __atomic_fetch_and(target, value, __ATOMIC_SEQ_CST);
   22c40:	4ba5      	ldr	r3, [pc, #660]	; (22ed8 <bt_le_adv_start_legacy+0x330>)
   22c42:	f3bf 8f5b 	dmb	ish
   22c46:	e853 2f00 	ldrex	r2, [r3]
   22c4a:	f422 5280 	bic.w	r2, r2, #4096	; 0x1000
   22c4e:	e843 2100 	strex	r1, r2, [r3]
   22c52:	2900      	cmp	r1, #0
   22c54:	d1f7      	bne.n	22c46 <bt_le_adv_start_legacy+0x9e>
   22c56:	f3bf 8f5b 	dmb	ish
		atomic_clear_bit(bt_dev.flags, BT_DEV_RPA_VALID);
	}

	adv->id = param->id;
   22c5a:	7823      	ldrb	r3, [r4, #0]
   22c5c:	702b      	strb	r3, [r5, #0]
	bt_dev.adv_conn_id = adv->id;
   22c5e:	4a9f      	ldr	r2, [pc, #636]	; (22edc <bt_le_adv_start_legacy+0x334>)
   22c60:	f882 3067 	strb.w	r3, [r2, #103]	; 0x67

	err = bt_id_set_adv_own_addr(adv, param->options, dir_adv,
   22c64:	f10d 0325 	add.w	r3, sp, #37	; 0x25
   22c68:	465a      	mov	r2, fp
   22c6a:	6861      	ldr	r1, [r4, #4]
   22c6c:	4628      	mov	r0, r5
   22c6e:	f7ff fe17 	bl	228a0 <bt_id_set_adv_own_addr>
				     &set_param.own_addr_type);
	if (err) {
   22c72:	4681      	mov	r9, r0
   22c74:	2800      	cmp	r0, #0
   22c76:	f040 80ed 	bne.w	22e54 <bt_le_adv_start_legacy+0x2ac>
		return err;
	}

	if (dir_adv) {
   22c7a:	b1ef      	cbz	r7, 22cb8 <bt_le_adv_start_legacy+0x110>
	memcpy(dst, src, sizeof(*dst));
   22c7c:	2207      	movs	r2, #7
   22c7e:	6921      	ldr	r1, [r4, #16]
   22c80:	f105 0009 	add.w	r0, r5, #9
   22c84:	f012 ff3a 	bl	35afc <memcpy>
		bt_addr_le_copy(&adv->target_addr, param->peer);
	} else {
		bt_addr_le_copy(&adv->target_addr, BT_ADDR_LE_ANY);
	}

	name_type = get_adv_name_type_param(param);
   22c88:	4620      	mov	r0, r4
   22c8a:	f013 fc0f 	bl	364ac <get_adv_name_type_param>
   22c8e:	4683      	mov	fp, r0

	if (param->options & BT_LE_ADV_OPT_CONNECTABLE) {
   22c90:	6863      	ldr	r3, [r4, #4]
   22c92:	f013 0f01 	tst.w	r3, #1
   22c96:	d022      	beq.n	22cde <bt_le_adv_start_legacy+0x136>
		if (dir_adv) {
   22c98:	b1ef      	cbz	r7, 22cd6 <bt_le_adv_start_legacy+0x12e>
			if (param->options & BT_LE_ADV_OPT_DIR_MODE_LOW_DUTY) {
   22c9a:	f013 0f10 	tst.w	r3, #16
   22c9e:	d016      	beq.n	22cce <bt_le_adv_start_legacy+0x126>
				set_param.type = BT_HCI_ADV_DIRECT_IND_LOW_DUTY;
   22ca0:	2304      	movs	r3, #4
   22ca2:	f88d 3024 	strb.w	r3, [sp, #36]	; 0x24
   22ca6:	2207      	movs	r2, #7
   22ca8:	6921      	ldr	r1, [r4, #16]
   22caa:	f10d 0026 	add.w	r0, sp, #38	; 0x26
   22cae:	f012 ff25 	bl	35afc <memcpy>
	bool dir_adv = (param->peer != NULL), scannable = false;
   22cb2:	f04f 0a00 	mov.w	sl, #0
}
   22cb6:	e01a      	b.n	22cee <bt_le_adv_start_legacy+0x146>
		bt_addr_le_copy(&adv->target_addr, BT_ADDR_LE_ANY);
   22cb8:	2300      	movs	r3, #0
   22cba:	930c      	str	r3, [sp, #48]	; 0x30
   22cbc:	f8cd 3033 	str.w	r3, [sp, #51]	; 0x33
	memcpy(dst, src, sizeof(*dst));
   22cc0:	2207      	movs	r2, #7
   22cc2:	a90c      	add	r1, sp, #48	; 0x30
   22cc4:	f105 0009 	add.w	r0, r5, #9
   22cc8:	f012 ff18 	bl	35afc <memcpy>
   22ccc:	e7dc      	b.n	22c88 <bt_le_adv_start_legacy+0xe0>
			} else {
				set_param.type = BT_HCI_ADV_DIRECT_IND;
   22cce:	2301      	movs	r3, #1
   22cd0:	f88d 3024 	strb.w	r3, [sp, #36]	; 0x24
   22cd4:	e7e7      	b.n	22ca6 <bt_le_adv_start_legacy+0xfe>
			}

			bt_addr_le_copy(&set_param.direct_addr, param->peer);
		} else {
			scannable = true;
			set_param.type = BT_HCI_ADV_IND;
   22cd6:	2300      	movs	r3, #0
   22cd8:	f88d 3024 	strb.w	r3, [sp, #36]	; 0x24
   22cdc:	e007      	b.n	22cee <bt_le_adv_start_legacy+0x146>
		}
	} else if ((param->options & BT_LE_ADV_OPT_SCANNABLE) || sd ||
   22cde:	f413 7f00 	tst.w	r3, #512	; 0x200
   22ce2:	d101      	bne.n	22ce8 <bt_le_adv_start_legacy+0x140>
   22ce4:	9b18      	ldr	r3, [sp, #96]	; 0x60
   22ce6:	b35b      	cbz	r3, 22d40 <bt_le_adv_start_legacy+0x198>
		   (name_type == ADV_NAME_TYPE_SD)) {
		scannable = true;
		set_param.type = BT_HCI_ADV_SCAN_IND;
   22ce8:	2302      	movs	r3, #2
   22cea:	f88d 3024 	strb.w	r3, [sp, #36]	; 0x24
	} else {
		set_param.type = BT_HCI_ADV_NONCONN_IND;
	}

	buf = bt_hci_cmd_create(BT_HCI_OP_LE_SET_ADV_PARAM, sizeof(set_param));
   22cee:	210f      	movs	r1, #15
   22cf0:	f242 0006 	movw	r0, #8198	; 0x2006
   22cf4:	f7fe fa42 	bl	2117c <bt_hci_cmd_create>
	if (!buf) {
   22cf8:	4681      	mov	r9, r0
   22cfa:	2800      	cmp	r0, #0
   22cfc:	f000 8125 	beq.w	22f4a <bt_le_adv_start_legacy+0x3a2>
   22d00:	220f      	movs	r2, #15
   22d02:	a908      	add	r1, sp, #32
   22d04:	3008      	adds	r0, #8
   22d06:	f016 fa1d 	bl	39144 <net_buf_simple_add_mem>
		return -ENOBUFS;
	}

	net_buf_add_mem(buf, &set_param, sizeof(set_param));

	err = bt_hci_cmd_send_sync(BT_HCI_OP_LE_SET_ADV_PARAM, buf, NULL);
   22d0a:	2200      	movs	r2, #0
   22d0c:	4649      	mov	r1, r9
   22d0e:	f242 0006 	movw	r0, #8198	; 0x2006
   22d12:	f7fe fa7f 	bl	21214 <bt_hci_cmd_send_sync>
	if (err) {
   22d16:	4681      	mov	r9, r0
   22d18:	2800      	cmp	r0, #0
   22d1a:	f040 809b 	bne.w	22e54 <bt_le_adv_start_legacy+0x2ac>
		return err;
	}

	if (!dir_adv) {
   22d1e:	b1bf      	cbz	r7, 22d50 <bt_le_adv_start_legacy+0x1a8>
			return err;
		}
	}

	if (IS_ENABLED(CONFIG_BT_PERIPHERAL) &&
	    (param->options & BT_LE_ADV_OPT_CONNECTABLE)) {
   22d20:	6863      	ldr	r3, [r4, #4]
	if (IS_ENABLED(CONFIG_BT_PERIPHERAL) &&
   22d22:	f013 0f01 	tst.w	r3, #1
   22d26:	d02b      	beq.n	22d80 <bt_le_adv_start_legacy+0x1d8>
		err = le_adv_start_add_conn(adv, &conn);
   22d28:	a907      	add	r1, sp, #28
   22d2a:	4628      	mov	r0, r5
   22d2c:	f7ff feb2 	bl	22a94 <le_adv_start_add_conn>
		if (err) {
   22d30:	b330      	cbz	r0, 22d80 <bt_le_adv_start_legacy+0x1d8>
			if (err == -ENOMEM && !dir_adv &&
   22d32:	f110 0f0c 	cmn.w	r0, #12
   22d36:	f040 810b 	bne.w	22f50 <bt_le_adv_start_legacy+0x3a8>
   22d3a:	b1df      	cbz	r7, 22d74 <bt_le_adv_start_legacy+0x1cc>
			    !(param->options & BT_LE_ADV_OPT_ONE_TIME)) {
				goto set_adv_state;
			}

			return err;
   22d3c:	4681      	mov	r9, r0
   22d3e:	e089      	b.n	22e54 <bt_le_adv_start_legacy+0x2ac>
	} else if ((param->options & BT_LE_ADV_OPT_SCANNABLE) || sd ||
   22d40:	2802      	cmp	r0, #2
   22d42:	d0d1      	beq.n	22ce8 <bt_le_adv_start_legacy+0x140>
		set_param.type = BT_HCI_ADV_NONCONN_IND;
   22d44:	2303      	movs	r3, #3
   22d46:	f88d 3024 	strb.w	r3, [sp, #36]	; 0x24
	bool dir_adv = (param->peer != NULL), scannable = false;
   22d4a:	f04f 0a00 	mov.w	sl, #0
   22d4e:	e7ce      	b.n	22cee <bt_le_adv_start_legacy+0x146>
		err = le_adv_update(adv, ad, ad_len, sd, sd_len, false,
   22d50:	f8cd b00c 	str.w	fp, [sp, #12]
   22d54:	f8cd a008 	str.w	sl, [sp, #8]
   22d58:	2300      	movs	r3, #0
   22d5a:	9301      	str	r3, [sp, #4]
   22d5c:	9b19      	ldr	r3, [sp, #100]	; 0x64
   22d5e:	9300      	str	r3, [sp, #0]
   22d60:	9b18      	ldr	r3, [sp, #96]	; 0x60
   22d62:	4642      	mov	r2, r8
   22d64:	9905      	ldr	r1, [sp, #20]
   22d66:	4628      	mov	r0, r5
   22d68:	f013 fb04 	bl	36374 <le_adv_update>
		if (err) {
   22d6c:	2800      	cmp	r0, #0
   22d6e:	d0d7      	beq.n	22d20 <bt_le_adv_start_legacy+0x178>
			return err;
   22d70:	4681      	mov	r9, r0
   22d72:	e06f      	b.n	22e54 <bt_le_adv_start_legacy+0x2ac>
			    !(param->options & BT_LE_ADV_OPT_ONE_TIME)) {
   22d74:	6862      	ldr	r2, [r4, #4]
			if (err == -ENOMEM && !dir_adv &&
   22d76:	f012 0f02 	tst.w	r2, #2
   22d7a:	d00c      	beq.n	22d96 <bt_le_adv_start_legacy+0x1ee>
			return err;
   22d7c:	4681      	mov	r9, r0
   22d7e:	e069      	b.n	22e54 <bt_le_adv_start_legacy+0x2ac>
		}
	}

	err = bt_le_adv_set_enable(adv, true);
   22d80:	2101      	movs	r1, #1
   22d82:	4628      	mov	r0, r5
   22d84:	f013 fbce 	bl	36524 <bt_le_adv_set_enable>
	if (err) {
   22d88:	4605      	mov	r5, r0
   22d8a:	2800      	cmp	r0, #0
   22d8c:	d166      	bne.n	22e5c <bt_le_adv_start_legacy+0x2b4>
		}

		return err;
	}

	if (IS_ENABLED(CONFIG_BT_PERIPHERAL) && conn) {
   22d8e:	9807      	ldr	r0, [sp, #28]
   22d90:	b108      	cbz	r0, 22d96 <bt_le_adv_start_legacy+0x1ee>
		/* If undirected connectable advertiser we have created a
		 * connection object that we don't yet give to the application.
		 * Since we don't give the application a reference to manage in
		 * this case, we need to release this reference here
		 */
		bt_conn_unref(conn);
   22d92:	f000 fd13 	bl	237bc <bt_conn_unref>
	}

set_adv_state:
	atomic_set_bit_to(adv->flags, BT_ADV_PERSIST, !dir_adv &&
   22d96:	2f00      	cmp	r7, #0
   22d98:	d06e      	beq.n	22e78 <bt_le_adv_start_legacy+0x2d0>
   22d9a:	464b      	mov	r3, r9
	if (val) {
   22d9c:	f013 0f01 	tst.w	r3, #1
   22da0:	d072      	beq.n	22e88 <bt_le_adv_start_legacy+0x2e0>
	return __atomic_fetch_or(target, value, __ATOMIC_SEQ_CST);
   22da2:	f3bf 8f5b 	dmb	ish
   22da6:	e856 3f00 	ldrex	r3, [r6]
   22daa:	f443 5300 	orr.w	r3, r3, #8192	; 0x2000
   22dae:	e846 3200 	strex	r2, r3, [r6]
   22db2:	2a00      	cmp	r2, #0
   22db4:	d1f7      	bne.n	22da6 <bt_le_adv_start_legacy+0x1fe>
   22db6:	f3bf 8f5b 	dmb	ish
   22dba:	f1bb 0f01 	cmp.w	fp, #1
   22dbe:	d170      	bne.n	22ea2 <bt_le_adv_start_legacy+0x2fa>
   22dc0:	f3bf 8f5b 	dmb	ish
   22dc4:	e856 3f00 	ldrex	r3, [r6]
   22dc8:	f043 0380 	orr.w	r3, r3, #128	; 0x80
   22dcc:	e846 3200 	strex	r2, r3, [r6]
   22dd0:	2a00      	cmp	r2, #0
   22dd2:	d1f7      	bne.n	22dc4 <bt_le_adv_start_legacy+0x21c>
   22dd4:	f3bf 8f5b 	dmb	ish
   22dd8:	f1bb 0f02 	cmp.w	fp, #2
   22ddc:	d16e      	bne.n	22ebc <bt_le_adv_start_legacy+0x314>
   22dde:	f3bf 8f5b 	dmb	ish
   22de2:	e856 3f00 	ldrex	r3, [r6]
   22de6:	f443 7380 	orr.w	r3, r3, #256	; 0x100
   22dea:	e846 3200 	strex	r2, r3, [r6]
   22dee:	2a00      	cmp	r2, #0
   22df0:	d1f7      	bne.n	22de2 <bt_le_adv_start_legacy+0x23a>
   22df2:	f3bf 8f5b 	dmb	ish

	atomic_set_bit_to(adv->flags, BT_ADV_INCLUDE_NAME_SD,
			  name_type == ADV_NAME_TYPE_SD);

	atomic_set_bit_to(adv->flags, BT_ADV_CONNECTABLE,
			  param->options & BT_LE_ADV_OPT_CONNECTABLE);
   22df6:	6863      	ldr	r3, [r4, #4]
   22df8:	f013 0f01 	tst.w	r3, #1
   22dfc:	d072      	beq.n	22ee4 <bt_le_adv_start_legacy+0x33c>
   22dfe:	f3bf 8f5b 	dmb	ish
   22e02:	e856 3f00 	ldrex	r3, [r6]
   22e06:	f443 7300 	orr.w	r3, r3, #512	; 0x200
   22e0a:	e846 3200 	strex	r2, r3, [r6]
   22e0e:	2a00      	cmp	r2, #0
   22e10:	d1f7      	bne.n	22e02 <bt_le_adv_start_legacy+0x25a>
   22e12:	f3bf 8f5b 	dmb	ish
   22e16:	f1ba 0f00 	cmp.w	sl, #0
   22e1a:	d070      	beq.n	22efe <bt_le_adv_start_legacy+0x356>
   22e1c:	f3bf 8f5b 	dmb	ish
   22e20:	e856 3f00 	ldrex	r3, [r6]
   22e24:	f443 6380 	orr.w	r3, r3, #1024	; 0x400
   22e28:	e846 3200 	strex	r2, r3, [r6]
   22e2c:	2a00      	cmp	r2, #0
   22e2e:	d1f7      	bne.n	22e20 <bt_le_adv_start_legacy+0x278>
   22e30:	f3bf 8f5b 	dmb	ish

	atomic_set_bit_to(adv->flags, BT_ADV_SCANNABLE, scannable);

	atomic_set_bit_to(adv->flags, BT_ADV_USE_IDENTITY,
			  param->options & BT_LE_ADV_OPT_USE_IDENTITY);
   22e34:	6863      	ldr	r3, [r4, #4]
   22e36:	f013 0f04 	tst.w	r3, #4
   22e3a:	d06d      	beq.n	22f18 <bt_le_adv_start_legacy+0x370>
   22e3c:	f3bf 8f5b 	dmb	ish
   22e40:	e856 3f00 	ldrex	r3, [r6]
   22e44:	f443 5380 	orr.w	r3, r3, #4096	; 0x1000
   22e48:	e846 3200 	strex	r2, r3, [r6]
   22e4c:	2a00      	cmp	r2, #0
   22e4e:	d1f7      	bne.n	22e40 <bt_le_adv_start_legacy+0x298>
   22e50:	f3bf 8f5b 	dmb	ish

	return 0;
}
   22e54:	4648      	mov	r0, r9
   22e56:	b00f      	add	sp, #60	; 0x3c
   22e58:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
		BT_ERR("Failed to start advertiser");
   22e5c:	2145      	movs	r1, #69	; 0x45
   22e5e:	4820      	ldr	r0, [pc, #128]	; (22ee0 <bt_le_adv_start_legacy+0x338>)
   22e60:	f010 fe44 	bl	33aec <z_log_minimal_printk>
		if (IS_ENABLED(CONFIG_BT_PERIPHERAL) && conn) {
   22e64:	9807      	ldr	r0, [sp, #28]
   22e66:	b128      	cbz	r0, 22e74 <bt_le_adv_start_legacy+0x2cc>
			bt_conn_set_state(conn, BT_CONN_DISCONNECTED);
   22e68:	2100      	movs	r1, #0
   22e6a:	f000 fce3 	bl	23834 <bt_conn_set_state>
			bt_conn_unref(conn);
   22e6e:	9807      	ldr	r0, [sp, #28]
   22e70:	f000 fca4 	bl	237bc <bt_conn_unref>
		return err;
   22e74:	46a9      	mov	r9, r5
   22e76:	e7ed      	b.n	22e54 <bt_le_adv_start_legacy+0x2ac>
			  !(param->options & BT_LE_ADV_OPT_ONE_TIME));
   22e78:	6863      	ldr	r3, [r4, #4]
	atomic_set_bit_to(adv->flags, BT_ADV_PERSIST, !dir_adv &&
   22e7a:	f013 0f02 	tst.w	r3, #2
   22e7e:	d001      	beq.n	22e84 <bt_le_adv_start_legacy+0x2dc>
   22e80:	464b      	mov	r3, r9
   22e82:	e78b      	b.n	22d9c <bt_le_adv_start_legacy+0x1f4>
   22e84:	2301      	movs	r3, #1
   22e86:	e789      	b.n	22d9c <bt_le_adv_start_legacy+0x1f4>
	return __atomic_fetch_and(target, value, __ATOMIC_SEQ_CST);
   22e88:	f3bf 8f5b 	dmb	ish
   22e8c:	e856 3f00 	ldrex	r3, [r6]
   22e90:	f423 5300 	bic.w	r3, r3, #8192	; 0x2000
   22e94:	e846 3200 	strex	r2, r3, [r6]
   22e98:	2a00      	cmp	r2, #0
   22e9a:	d1f7      	bne.n	22e8c <bt_le_adv_start_legacy+0x2e4>
   22e9c:	f3bf 8f5b 	dmb	ish
   22ea0:	e78b      	b.n	22dba <bt_le_adv_start_legacy+0x212>
   22ea2:	f3bf 8f5b 	dmb	ish
   22ea6:	e856 3f00 	ldrex	r3, [r6]
   22eaa:	f023 0380 	bic.w	r3, r3, #128	; 0x80
   22eae:	e846 3200 	strex	r2, r3, [r6]
   22eb2:	2a00      	cmp	r2, #0
   22eb4:	d1f7      	bne.n	22ea6 <bt_le_adv_start_legacy+0x2fe>
   22eb6:	f3bf 8f5b 	dmb	ish
   22eba:	e78d      	b.n	22dd8 <bt_le_adv_start_legacy+0x230>
   22ebc:	f3bf 8f5b 	dmb	ish
   22ec0:	e856 3f00 	ldrex	r3, [r6]
   22ec4:	f423 7380 	bic.w	r3, r3, #256	; 0x100
   22ec8:	e846 3200 	strex	r2, r3, [r6]
   22ecc:	2a00      	cmp	r2, #0
   22ece:	d1f7      	bne.n	22ec0 <bt_le_adv_start_legacy+0x318>
   22ed0:	f3bf 8f5b 	dmb	ish
   22ed4:	e78f      	b.n	22df6 <bt_le_adv_start_legacy+0x24e>
   22ed6:	bf00      	nop
   22ed8:	20000374 	.word	0x20000374
   22edc:	200002a8 	.word	0x200002a8
   22ee0:	0003d6fc 	.word	0x0003d6fc
   22ee4:	f3bf 8f5b 	dmb	ish
   22ee8:	e856 3f00 	ldrex	r3, [r6]
   22eec:	f423 7300 	bic.w	r3, r3, #512	; 0x200
   22ef0:	e846 3200 	strex	r2, r3, [r6]
   22ef4:	2a00      	cmp	r2, #0
   22ef6:	d1f7      	bne.n	22ee8 <bt_le_adv_start_legacy+0x340>
   22ef8:	f3bf 8f5b 	dmb	ish
   22efc:	e78b      	b.n	22e16 <bt_le_adv_start_legacy+0x26e>
   22efe:	f3bf 8f5b 	dmb	ish
   22f02:	e856 3f00 	ldrex	r3, [r6]
   22f06:	f423 6380 	bic.w	r3, r3, #1024	; 0x400
   22f0a:	e846 3200 	strex	r2, r3, [r6]
   22f0e:	2a00      	cmp	r2, #0
   22f10:	d1f7      	bne.n	22f02 <bt_le_adv_start_legacy+0x35a>
   22f12:	f3bf 8f5b 	dmb	ish
   22f16:	e78d      	b.n	22e34 <bt_le_adv_start_legacy+0x28c>
   22f18:	f3bf 8f5b 	dmb	ish
   22f1c:	e856 3f00 	ldrex	r3, [r6]
   22f20:	f423 5380 	bic.w	r3, r3, #4096	; 0x1000
   22f24:	e846 3200 	strex	r2, r3, [r6]
   22f28:	2a00      	cmp	r2, #0
   22f2a:	d1f7      	bne.n	22f1c <bt_le_adv_start_legacy+0x374>
   22f2c:	f3bf 8f5b 	dmb	ish
}
   22f30:	e790      	b.n	22e54 <bt_le_adv_start_legacy+0x2ac>
		return -EAGAIN;
   22f32:	f06f 090a 	mvn.w	r9, #10
   22f36:	e78d      	b.n	22e54 <bt_le_adv_start_legacy+0x2ac>
		return -EINVAL;
   22f38:	f06f 0915 	mvn.w	r9, #21
   22f3c:	e78a      	b.n	22e54 <bt_le_adv_start_legacy+0x2ac>
		return -EINVAL;
   22f3e:	f06f 0915 	mvn.w	r9, #21
   22f42:	e787      	b.n	22e54 <bt_le_adv_start_legacy+0x2ac>
		return -EALREADY;
   22f44:	f06f 0977 	mvn.w	r9, #119	; 0x77
   22f48:	e784      	b.n	22e54 <bt_le_adv_start_legacy+0x2ac>
		return -ENOBUFS;
   22f4a:	f06f 0968 	mvn.w	r9, #104	; 0x68
   22f4e:	e781      	b.n	22e54 <bt_le_adv_start_legacy+0x2ac>
			return err;
   22f50:	4681      	mov	r9, r0
   22f52:	e77f      	b.n	22e54 <bt_le_adv_start_legacy+0x2ac>

00022f54 <bt_le_adv_start>:
}

int bt_le_adv_start(const struct bt_le_adv_param *param,
		    const struct bt_data *ad, size_t ad_len,
		    const struct bt_data *sd, size_t sd_len)
{
   22f54:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   22f58:	b082      	sub	sp, #8
   22f5a:	4606      	mov	r6, r0
   22f5c:	460c      	mov	r4, r1
   22f5e:	4615      	mov	r5, r2
   22f60:	461f      	mov	r7, r3
	struct bt_le_ext_adv *adv = adv_new_legacy();
   22f62:	f7ff fcf1 	bl	22948 <adv_new_legacy>
	int err;

	if (!adv) {
   22f66:	b1f8      	cbz	r0, 22fa8 <bt_le_adv_start+0x54>
   22f68:	4680      	mov	r8, r0

	if (IS_ENABLED(CONFIG_BT_EXT_ADV) &&
	    BT_DEV_FEAT_LE_EXT_ADV(bt_dev.le.features)) {
		err = bt_le_adv_start_ext(adv, param, ad, ad_len, sd, sd_len);
	} else {
		err = bt_le_adv_start_legacy(adv, param, ad, ad_len, sd, sd_len);
   22f6a:	9b08      	ldr	r3, [sp, #32]
   22f6c:	9301      	str	r3, [sp, #4]
   22f6e:	9700      	str	r7, [sp, #0]
   22f70:	462b      	mov	r3, r5
   22f72:	4622      	mov	r2, r4
   22f74:	4631      	mov	r1, r6
   22f76:	f7ff fe17 	bl	22ba8 <bt_le_adv_start_legacy>
   22f7a:	4606      	mov	r6, r0

	if (err) {
		bt_le_adv_delete_legacy();
	}

	if (ad_is_limited(ad, ad_len)) {
   22f7c:	4629      	mov	r1, r5
   22f7e:	4620      	mov	r0, r4
   22f80:	f013 f98c 	bl	3629c <ad_is_limited>
   22f84:	b918      	cbnz	r0, 22f8e <bt_le_adv_start+0x3a>
		k_work_reschedule(&adv->lim_adv_timeout_work,
				  K_SECONDS(CONFIG_BT_LIM_ADV_TIMEOUT));
	}

	return err;
}
   22f86:	4630      	mov	r0, r6
   22f88:	b002      	add	sp, #8
   22f8a:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
		k_work_init_delayable(&adv->lim_adv_timeout_work, adv_timeout);
   22f8e:	f108 0818 	add.w	r8, r8, #24
   22f92:	4907      	ldr	r1, [pc, #28]	; (22fb0 <bt_le_adv_start+0x5c>)
   22f94:	4640      	mov	r0, r8
   22f96:	f00d fbf1 	bl	3077c <k_work_init_delayable>
		k_work_reschedule(&adv->lim_adv_timeout_work,
   22f9a:	f44f 2270 	mov.w	r2, #983040	; 0xf0000
   22f9e:	2300      	movs	r3, #0
   22fa0:	4640      	mov	r0, r8
   22fa2:	f00d fcdf 	bl	30964 <k_work_reschedule>
   22fa6:	e7ee      	b.n	22f86 <bt_le_adv_start+0x32>
		return -ENOMEM;
   22fa8:	f06f 060b 	mvn.w	r6, #11
   22fac:	e7eb      	b.n	22f86 <bt_le_adv_start+0x32>
   22fae:	bf00      	nop
   22fb0:	00023029 	.word	0x00023029

00022fb4 <bt_le_adv_stop>:

int bt_le_adv_stop(void)
{
   22fb4:	b510      	push	{r4, lr}
	struct bt_le_ext_adv *adv = bt_le_adv_lookup_legacy();
   22fb6:	f7ff fdf3 	bl	22ba0 <bt_le_adv_lookup_legacy>
   22fba:	4604      	mov	r4, r0
	int err;

	(void)bt_le_lim_adv_cancel_timeout(adv);
   22fbc:	f013 fab6 	bl	3652c <bt_le_lim_adv_cancel_timeout>

	if (!adv) {
   22fc0:	b1c4      	cbz	r4, 22ff4 <bt_le_adv_stop+0x40>
	}

	/* Make sure advertising is not re-enabled later even if it's not
	 * currently enabled (i.e. BT_DEV_ADVERTISING is not set).
	 */
	atomic_clear_bit(adv->flags, BT_ADV_PERSIST);
   22fc2:	f104 0310 	add.w	r3, r4, #16
   22fc6:	f3bf 8f5b 	dmb	ish
   22fca:	e853 2f00 	ldrex	r2, [r3]
   22fce:	f422 5200 	bic.w	r2, r2, #8192	; 0x2000
   22fd2:	e843 2100 	strex	r1, r2, [r3]
   22fd6:	2900      	cmp	r1, #0
   22fd8:	d1f7      	bne.n	22fca <bt_le_adv_stop+0x16>
   22fda:	f3bf 8f5b 	dmb	ish
	return __atomic_load_n(target, __ATOMIC_SEQ_CST);
   22fde:	f3bf 8f5b 	dmb	ish
   22fe2:	6923      	ldr	r3, [r4, #16]
   22fe4:	f3bf 8f5b 	dmb	ish
	return (1 & (val >> (bit & (ATOMIC_BITS - 1)))) != 0;
   22fe8:	f3c3 1080 	ubfx	r0, r3, #6, #1

	if (!atomic_test_bit(adv->flags, BT_ADV_ENABLED)) {
   22fec:	f013 0f40 	tst.w	r3, #64	; 0x40
   22ff0:	d106      	bne.n	23000 <bt_le_adv_stop+0x4c>
		}
	}
#endif /* defined(CONFIG_BT_OBSERVER) */

	return 0;
}
   22ff2:	bd10      	pop	{r4, pc}
		BT_ERR("No valid legacy adv");
   22ff4:	2145      	movs	r1, #69	; 0x45
   22ff6:	480b      	ldr	r0, [pc, #44]	; (23024 <bt_le_adv_stop+0x70>)
   22ff8:	f010 fd78 	bl	33aec <z_log_minimal_printk>
		return 0;
   22ffc:	2000      	movs	r0, #0
   22ffe:	e7f8      	b.n	22ff2 <bt_le_adv_stop+0x3e>
   23000:	f3bf 8f5b 	dmb	ish
   23004:	6923      	ldr	r3, [r4, #16]
   23006:	f3bf 8f5b 	dmb	ish
	if (IS_ENABLED(CONFIG_BT_PERIPHERAL) &&
   2300a:	f413 7f00 	tst.w	r3, #512	; 0x200
   2300e:	d104      	bne.n	2301a <bt_le_adv_stop+0x66>
		err = bt_le_adv_set_enable_legacy(adv, false);
   23010:	2100      	movs	r1, #0
   23012:	4620      	mov	r0, r4
   23014:	f013 fa5e 	bl	364d4 <bt_le_adv_set_enable_legacy>
		if (err) {
   23018:	e7eb      	b.n	22ff2 <bt_le_adv_stop+0x3e>
		le_adv_stop_free_conn(adv, 0);
   2301a:	2100      	movs	r1, #0
   2301c:	4620      	mov	r0, r4
   2301e:	f7ff fd83 	bl	22b28 <le_adv_stop_free_conn>
   23022:	e7f5      	b.n	23010 <bt_le_adv_stop+0x5c>
   23024:	0003d71c 	.word	0x0003d71c

00023028 <adv_timeout>:
}
#endif /* defined(CONFIG_BT_EXT_ADV) */


static void adv_timeout(struct k_work *work)
{
   23028:	b508      	push	{r3, lr}
		err = bt_le_adv_stop();
	} else {
		err = bt_le_ext_adv_stop(adv);
	}
#else
	err = bt_le_adv_stop();
   2302a:	f7ff ffc3 	bl	22fb4 <bt_le_adv_stop>
   2302e:	4602      	mov	r2, r0
#endif
	BT_WARN("Failed to stop advertising: %d", err);
   23030:	2157      	movs	r1, #87	; 0x57
   23032:	4802      	ldr	r0, [pc, #8]	; (2303c <adv_timeout+0x14>)
   23034:	f010 fd5a 	bl	33aec <z_log_minimal_printk>
}
   23038:	bd08      	pop	{r3, pc}
   2303a:	bf00      	nop
   2303c:	0003d738 	.word	0x0003d738

00023040 <bt_pub_key_is_debug>:
	0x5c, 0x15, 0x52, 0x5a, 0xbf, 0x9a, 0x32, 0x63,
	0x6d, 0xeb, 0x2a, 0x65, 0x49, 0x9c, 0x80, 0xdc
};

bool bt_pub_key_is_debug(uint8_t *pub_key)
{
   23040:	b508      	push	{r3, lr}
	return memcmp(pub_key, debug_public_key, BT_PUB_KEY_LEN) == 0;
   23042:	2240      	movs	r2, #64	; 0x40
   23044:	4903      	ldr	r1, [pc, #12]	; (23054 <bt_pub_key_is_debug+0x14>)
   23046:	f012 fd42 	bl	35ace <memcmp>
}
   2304a:	fab0 f080 	clz	r0, r0
   2304e:	0940      	lsrs	r0, r0, #5
   23050:	bd08      	pop	{r3, pc}
   23052:	bf00      	nop
   23054:	0003d80c 	.word	0x0003d80c

00023058 <bt_pub_key_gen>:

int bt_pub_key_gen(struct bt_pub_key_cb *new_cb)
{
   23058:	b538      	push	{r3, r4, r5, lr}
	 * We check for both "LE Read Local P-256 Public Key" and
	 * "LE Generate DH Key" support here since both commands are needed for
	 * ECC support. If "LE Generate DH Key" is not supported then there
	 * is no point in reading local public key.
	 */
	if (!BT_CMD_TEST(bt_dev.supported_commands, 34, 1) ||
   2305a:	4b42      	ldr	r3, [pc, #264]	; (23164 <bt_pub_key_gen+0x10c>)
   2305c:	f893 309a 	ldrb.w	r3, [r3, #154]	; 0x9a
   23060:	f003 0306 	and.w	r3, r3, #6
   23064:	2b06      	cmp	r3, #6
   23066:	d106      	bne.n	23076 <bt_pub_key_gen+0x1e>
			new_cb->func(debug_public_key);
			return 0;
		}
	}

	if (!new_cb) {
   23068:	2800      	cmp	r0, #0
   2306a:	d077      	beq.n	2315c <bt_pub_key_gen+0x104>
	return list->head;
   2306c:	4b3e      	ldr	r3, [pc, #248]	; (23168 <bt_pub_key_gen+0x110>)
   2306e:	6819      	ldr	r1, [r3, #0]
		return -EINVAL;
	}

	SYS_SLIST_FOR_EACH_CONTAINER(&pub_key_cb_slist, cb, node) {
   23070:	b179      	cbz	r1, 23092 <bt_pub_key_gen+0x3a>
   23072:	1f0b      	subs	r3, r1, #4
   23074:	e010      	b.n	23098 <bt_pub_key_gen+0x40>
		BT_WARN("ECC HCI commands not available");
   23076:	2157      	movs	r1, #87	; 0x57
   23078:	483c      	ldr	r0, [pc, #240]	; (2316c <bt_pub_key_gen+0x114>)
   2307a:	f010 fd37 	bl	33aec <z_log_minimal_printk>
		return -ENOTSUP;
   2307e:	f06f 0585 	mvn.w	r5, #133	; 0x85
   23082:	e041      	b.n	23108 <bt_pub_key_gen+0xb0>
		if (cb == new_cb) {
			BT_WARN("Callback already registered");
   23084:	2157      	movs	r1, #87	; 0x57
   23086:	483a      	ldr	r0, [pc, #232]	; (23170 <bt_pub_key_gen+0x118>)
   23088:	f010 fd30 	bl	33aec <z_log_minimal_printk>
			return -EALREADY;
   2308c:	f06f 0577 	mvn.w	r5, #119	; 0x77
   23090:	e03a      	b.n	23108 <bt_pub_key_gen+0xb0>
	SYS_SLIST_FOR_EACH_CONTAINER(&pub_key_cb_slist, cb, node) {
   23092:	460b      	mov	r3, r1
   23094:	e000      	b.n	23098 <bt_pub_key_gen+0x40>
   23096:	4613      	mov	r3, r2
   23098:	b13b      	cbz	r3, 230aa <bt_pub_key_gen+0x52>
		if (cb == new_cb) {
   2309a:	4298      	cmp	r0, r3
   2309c:	d0f2      	beq.n	23084 <bt_pub_key_gen+0x2c>
Z_GENLIST_PEEK_NEXT(slist, snode)
   2309e:	1d1a      	adds	r2, r3, #4
   230a0:	d0f9      	beq.n	23096 <bt_pub_key_gen+0x3e>
	return node->next;
   230a2:	685b      	ldr	r3, [r3, #4]
	SYS_SLIST_FOR_EACH_CONTAINER(&pub_key_cb_slist, cb, node) {
   230a4:	b10b      	cbz	r3, 230aa <bt_pub_key_gen+0x52>
   230a6:	3b04      	subs	r3, #4
   230a8:	e7f6      	b.n	23098 <bt_pub_key_gen+0x40>
		}
	}

	sys_slist_prepend(&pub_key_cb_slist, &new_cb->node);
   230aa:	1d02      	adds	r2, r0, #4
	parent->next = child;
   230ac:	6041      	str	r1, [r0, #4]
	list->head = node;
   230ae:	4b2e      	ldr	r3, [pc, #184]	; (23168 <bt_pub_key_gen+0x110>)
   230b0:	601a      	str	r2, [r3, #0]
	return list->tail;
   230b2:	685b      	ldr	r3, [r3, #4]
Z_GENLIST_PREPEND(slist, snode)
   230b4:	b18b      	cbz	r3, 230da <bt_pub_key_gen+0x82>
	return __atomic_fetch_or(target, value, __ATOMIC_SEQ_CST);
   230b6:	4b2f      	ldr	r3, [pc, #188]	; (23174 <bt_pub_key_gen+0x11c>)
   230b8:	f3bf 8f5b 	dmb	ish
   230bc:	e853 2f00 	ldrex	r2, [r3]
   230c0:	f042 0110 	orr.w	r1, r2, #16
   230c4:	e843 1000 	strex	r0, r1, [r3]
   230c8:	2800      	cmp	r0, #0
   230ca:	d1f7      	bne.n	230bc <bt_pub_key_gen+0x64>
   230cc:	f3bf 8f5b 	dmb	ish

	if (atomic_test_and_set_bit(bt_dev.flags, BT_DEV_PUB_KEY_BUSY)) {
   230d0:	f012 0f10 	tst.w	r2, #16
   230d4:	d004      	beq.n	230e0 <bt_pub_key_gen+0x88>
		return 0;
   230d6:	2500      	movs	r5, #0
   230d8:	e016      	b.n	23108 <bt_pub_key_gen+0xb0>
	list->tail = node;
   230da:	4b23      	ldr	r3, [pc, #140]	; (23168 <bt_pub_key_gen+0x110>)
   230dc:	605a      	str	r2, [r3, #4]
}
   230de:	e7ea      	b.n	230b6 <bt_pub_key_gen+0x5e>
	return __atomic_fetch_and(target, value, __ATOMIC_SEQ_CST);
   230e0:	f3bf 8f5b 	dmb	ish
   230e4:	e853 2f00 	ldrex	r2, [r3]
   230e8:	f022 0208 	bic.w	r2, r2, #8
   230ec:	e843 2100 	strex	r1, r2, [r3]
   230f0:	2900      	cmp	r1, #0
   230f2:	d1f7      	bne.n	230e4 <bt_pub_key_gen+0x8c>
   230f4:	f3bf 8f5b 	dmb	ish
	}

	atomic_clear_bit(bt_dev.flags, BT_DEV_HAS_PUB_KEY);

	err = bt_hci_cmd_send_sync(BT_HCI_OP_LE_P256_PUBLIC_KEY, NULL, NULL);
   230f8:	2200      	movs	r2, #0
   230fa:	4611      	mov	r1, r2
   230fc:	f242 0025 	movw	r0, #8229	; 0x2025
   23100:	f7fe f888 	bl	21214 <bt_hci_cmd_send_sync>
	if (err) {
   23104:	4605      	mov	r5, r0
   23106:	b908      	cbnz	r0, 2310c <bt_pub_key_gen+0xb4>
		sys_slist_init(&pub_key_cb_slist);
		return err;
	}

	return 0;
}
   23108:	4628      	mov	r0, r5
   2310a:	bd38      	pop	{r3, r4, r5, pc}
		BT_ERR("Sending LE P256 Public Key command failed");
   2310c:	2145      	movs	r1, #69	; 0x45
   2310e:	481a      	ldr	r0, [pc, #104]	; (23178 <bt_pub_key_gen+0x120>)
   23110:	f010 fcec 	bl	33aec <z_log_minimal_printk>
   23114:	4b17      	ldr	r3, [pc, #92]	; (23174 <bt_pub_key_gen+0x11c>)
   23116:	f3bf 8f5b 	dmb	ish
   2311a:	e853 2f00 	ldrex	r2, [r3]
   2311e:	f022 0210 	bic.w	r2, r2, #16
   23122:	e843 2100 	strex	r1, r2, [r3]
   23126:	2900      	cmp	r1, #0
   23128:	d1f7      	bne.n	2311a <bt_pub_key_gen+0xc2>
   2312a:	f3bf 8f5b 	dmb	ish
	return list->head;
   2312e:	4b0e      	ldr	r3, [pc, #56]	; (23168 <bt_pub_key_gen+0x110>)
   23130:	681c      	ldr	r4, [r3, #0]
		SYS_SLIST_FOR_EACH_CONTAINER(&pub_key_cb_slist, cb, node) {
   23132:	b13c      	cbz	r4, 23144 <bt_pub_key_gen+0xec>
   23134:	3c04      	subs	r4, #4
   23136:	e005      	b.n	23144 <bt_pub_key_gen+0xec>
Z_GENLIST_PEEK_NEXT(slist, snode)
   23138:	f114 0f04 	cmn.w	r4, #4
   2313c:	d009      	beq.n	23152 <bt_pub_key_gen+0xfa>
	return node->next;
   2313e:	6864      	ldr	r4, [r4, #4]
   23140:	b13c      	cbz	r4, 23152 <bt_pub_key_gen+0xfa>
   23142:	3c04      	subs	r4, #4
   23144:	b12c      	cbz	r4, 23152 <bt_pub_key_gen+0xfa>
			if (cb->func) {
   23146:	6823      	ldr	r3, [r4, #0]
   23148:	2b00      	cmp	r3, #0
   2314a:	d0f5      	beq.n	23138 <bt_pub_key_gen+0xe0>
				cb->func(NULL);
   2314c:	2000      	movs	r0, #0
   2314e:	4798      	blx	r3
   23150:	e7f2      	b.n	23138 <bt_pub_key_gen+0xe0>
	list->head = NULL;
   23152:	4b05      	ldr	r3, [pc, #20]	; (23168 <bt_pub_key_gen+0x110>)
   23154:	2200      	movs	r2, #0
   23156:	601a      	str	r2, [r3, #0]
	list->tail = NULL;
   23158:	605a      	str	r2, [r3, #4]
		return err;
   2315a:	e7d5      	b.n	23108 <bt_pub_key_gen+0xb0>
		return -EINVAL;
   2315c:	f06f 0515 	mvn.w	r5, #21
   23160:	e7d2      	b.n	23108 <bt_pub_key_gen+0xb0>
   23162:	bf00      	nop
   23164:	200002a8 	.word	0x200002a8
   23168:	200022dc 	.word	0x200022dc
   2316c:	0003d764 	.word	0x0003d764
   23170:	0003d788 	.word	0x0003d788
   23174:	20000374 	.word	0x20000374
   23178:	0003d7ac 	.word	0x0003d7ac

0002317c <bt_pub_key_get>:
	return __atomic_load_n(target, __ATOMIC_SEQ_CST);
   2317c:	f3bf 8f5b 	dmb	ish
   23180:	4b05      	ldr	r3, [pc, #20]	; (23198 <bt_pub_key_get+0x1c>)
   23182:	681b      	ldr	r3, [r3, #0]
   23184:	f3bf 8f5b 	dmb	ish
	if (IS_ENABLED(CONFIG_BT_USE_DEBUG_KEYS) &&
	    BT_CMD_TEST(bt_dev.supported_commands, 41, 2)) {
		return debug_public_key;
	}

	if (atomic_test_bit(bt_dev.flags, BT_DEV_HAS_PUB_KEY)) {
   23188:	f013 0f08 	tst.w	r3, #8
   2318c:	d001      	beq.n	23192 <bt_pub_key_get+0x16>
		return pub_key;
   2318e:	4803      	ldr	r0, [pc, #12]	; (2319c <bt_pub_key_get+0x20>)
	}

	return NULL;
}
   23190:	4770      	bx	lr
	return NULL;
   23192:	2000      	movs	r0, #0
   23194:	4770      	bx	lr
   23196:	bf00      	nop
   23198:	20000374 	.word	0x20000374
   2319c:	2000229c 	.word	0x2000229c

000231a0 <bt_dh_key_gen>:

	return bt_hci_cmd_send_sync(BT_HCI_OP_LE_GENERATE_DHKEY_V2, buf, NULL);
}

int bt_dh_key_gen(const uint8_t remote_pk[BT_PUB_KEY_LEN], bt_dh_key_cb_t cb)
{
   231a0:	b510      	push	{r4, lr}
	int err;

	if (dh_key_cb == cb) {
   231a2:	4b18      	ldr	r3, [pc, #96]	; (23204 <bt_dh_key_gen+0x64>)
   231a4:	681b      	ldr	r3, [r3, #0]
   231a6:	428b      	cmp	r3, r1
   231a8:	d026      	beq.n	231f8 <bt_dh_key_gen+0x58>
		return -EALREADY;
	}

	if (dh_key_cb || atomic_test_bit(bt_dev.flags, BT_DEV_PUB_KEY_BUSY)) {
   231aa:	b9cb      	cbnz	r3, 231e0 <bt_dh_key_gen+0x40>
   231ac:	f3bf 8f5b 	dmb	ish
   231b0:	4b15      	ldr	r3, [pc, #84]	; (23208 <bt_dh_key_gen+0x68>)
   231b2:	681b      	ldr	r3, [r3, #0]
   231b4:	f3bf 8f5b 	dmb	ish
   231b8:	f013 0f10 	tst.w	r3, #16
   231bc:	d110      	bne.n	231e0 <bt_dh_key_gen+0x40>
   231be:	f3bf 8f5b 	dmb	ish
   231c2:	4b11      	ldr	r3, [pc, #68]	; (23208 <bt_dh_key_gen+0x68>)
   231c4:	681b      	ldr	r3, [r3, #0]
   231c6:	f3bf 8f5b 	dmb	ish
		return -EBUSY;
	}

	if (!atomic_test_bit(bt_dev.flags, BT_DEV_HAS_PUB_KEY)) {
   231ca:	f013 0f08 	tst.w	r3, #8
   231ce:	d016      	beq.n	231fe <bt_dh_key_gen+0x5e>
		return -EADDRNOTAVAIL;
	}

	dh_key_cb = cb;
   231d0:	4b0c      	ldr	r3, [pc, #48]	; (23204 <bt_dh_key_gen+0x64>)
   231d2:	6019      	str	r1, [r3, #0]
	if (IS_ENABLED(CONFIG_BT_USE_DEBUG_KEYS) &&
	    BT_CMD_TEST(bt_dev.supported_commands, 41, 2)) {
		err = hci_generate_dhkey_v2(remote_pk,
					    BT_HCI_LE_KEY_TYPE_DEBUG);
	} else {
		err = hci_generate_dhkey_v1(remote_pk);
   231d4:	f013 fa01 	bl	365da <hci_generate_dhkey_v1>
	}

	if (err) {
   231d8:	4604      	mov	r4, r0
   231da:	b920      	cbnz	r0, 231e6 <bt_dh_key_gen+0x46>
		BT_WARN("Failed to generate DHKey (err %d)", err);
		return err;
	}

	return 0;
}
   231dc:	4620      	mov	r0, r4
   231de:	bd10      	pop	{r4, pc}
		return -EBUSY;
   231e0:	f06f 040f 	mvn.w	r4, #15
   231e4:	e7fa      	b.n	231dc <bt_dh_key_gen+0x3c>
		dh_key_cb = NULL;
   231e6:	4b07      	ldr	r3, [pc, #28]	; (23204 <bt_dh_key_gen+0x64>)
   231e8:	2200      	movs	r2, #0
   231ea:	601a      	str	r2, [r3, #0]
		BT_WARN("Failed to generate DHKey (err %d)", err);
   231ec:	4602      	mov	r2, r0
   231ee:	2157      	movs	r1, #87	; 0x57
   231f0:	4806      	ldr	r0, [pc, #24]	; (2320c <bt_dh_key_gen+0x6c>)
   231f2:	f010 fc7b 	bl	33aec <z_log_minimal_printk>
		return err;
   231f6:	e7f1      	b.n	231dc <bt_dh_key_gen+0x3c>
		return -EALREADY;
   231f8:	f06f 0477 	mvn.w	r4, #119	; 0x77
   231fc:	e7ee      	b.n	231dc <bt_dh_key_gen+0x3c>
		return -EADDRNOTAVAIL;
   231fe:	f06f 047c 	mvn.w	r4, #124	; 0x7c
   23202:	e7eb      	b.n	231dc <bt_dh_key_gen+0x3c>
   23204:	20002298 	.word	0x20002298
   23208:	20000374 	.word	0x20000374
   2320c:	0003d7dc 	.word	0x0003d7dc

00023210 <bt_hci_evt_le_pkey_complete>:

void bt_hci_evt_le_pkey_complete(struct net_buf *buf)
{
   23210:	b538      	push	{r3, r4, r5, lr}
	struct bt_hci_evt_le_p256_public_key_complete *evt = (void *)buf->data;
   23212:	6885      	ldr	r5, [r0, #8]
	return __atomic_fetch_and(target, value, __ATOMIC_SEQ_CST);
   23214:	4b1e      	ldr	r3, [pc, #120]	; (23290 <bt_hci_evt_le_pkey_complete+0x80>)
   23216:	f3bf 8f5b 	dmb	ish
   2321a:	e853 2f00 	ldrex	r2, [r3]
   2321e:	f022 0210 	bic.w	r2, r2, #16
   23222:	e843 2100 	strex	r1, r2, [r3]
   23226:	2900      	cmp	r1, #0
   23228:	d1f7      	bne.n	2321a <bt_hci_evt_le_pkey_complete+0xa>
   2322a:	f3bf 8f5b 	dmb	ish

	BT_DBG("status: 0x%02x", evt->status);

	atomic_clear_bit(bt_dev.flags, BT_DEV_PUB_KEY_BUSY);

	if (!evt->status) {
   2322e:	782b      	ldrb	r3, [r5, #0]
   23230:	b123      	cbz	r3, 2323c <bt_hci_evt_le_pkey_complete+0x2c>
	return list->head;
   23232:	4b18      	ldr	r3, [pc, #96]	; (23294 <bt_hci_evt_le_pkey_complete+0x84>)
   23234:	681c      	ldr	r4, [r3, #0]
		memcpy(pub_key, evt->key, BT_PUB_KEY_LEN);
		atomic_set_bit(bt_dev.flags, BT_DEV_HAS_PUB_KEY);
	}

	SYS_SLIST_FOR_EACH_CONTAINER(&pub_key_cb_slist, cb, node) {
   23236:	b1dc      	cbz	r4, 23270 <bt_hci_evt_le_pkey_complete+0x60>
   23238:	3c04      	subs	r4, #4
   2323a:	e019      	b.n	23270 <bt_hci_evt_le_pkey_complete+0x60>
		memcpy(pub_key, evt->key, BT_PUB_KEY_LEN);
   2323c:	2240      	movs	r2, #64	; 0x40
   2323e:	1c69      	adds	r1, r5, #1
   23240:	4815      	ldr	r0, [pc, #84]	; (23298 <bt_hci_evt_le_pkey_complete+0x88>)
   23242:	f012 fc5b 	bl	35afc <memcpy>
	return __atomic_fetch_or(target, value, __ATOMIC_SEQ_CST);
   23246:	4b12      	ldr	r3, [pc, #72]	; (23290 <bt_hci_evt_le_pkey_complete+0x80>)
   23248:	f3bf 8f5b 	dmb	ish
   2324c:	e853 2f00 	ldrex	r2, [r3]
   23250:	f042 0208 	orr.w	r2, r2, #8
   23254:	e843 2100 	strex	r1, r2, [r3]
   23258:	2900      	cmp	r1, #0
   2325a:	d1f7      	bne.n	2324c <bt_hci_evt_le_pkey_complete+0x3c>
   2325c:	f3bf 8f5b 	dmb	ish
}
   23260:	e7e7      	b.n	23232 <bt_hci_evt_le_pkey_complete+0x22>
		if (cb->func) {
			cb->func(evt->status ? NULL : pub_key);
   23262:	2000      	movs	r0, #0
   23264:	4798      	blx	r3
Z_GENLIST_PEEK_NEXT(slist, snode)
   23266:	1d23      	adds	r3, r4, #4
   23268:	d00b      	beq.n	23282 <bt_hci_evt_le_pkey_complete+0x72>
	return node->next;
   2326a:	6864      	ldr	r4, [r4, #4]
	SYS_SLIST_FOR_EACH_CONTAINER(&pub_key_cb_slist, cb, node) {
   2326c:	b15c      	cbz	r4, 23286 <bt_hci_evt_le_pkey_complete+0x76>
   2326e:	3c04      	subs	r4, #4
   23270:	b14c      	cbz	r4, 23286 <bt_hci_evt_le_pkey_complete+0x76>
		if (cb->func) {
   23272:	6823      	ldr	r3, [r4, #0]
   23274:	2b00      	cmp	r3, #0
   23276:	d0f6      	beq.n	23266 <bt_hci_evt_le_pkey_complete+0x56>
			cb->func(evt->status ? NULL : pub_key);
   23278:	782a      	ldrb	r2, [r5, #0]
   2327a:	2a00      	cmp	r2, #0
   2327c:	d1f1      	bne.n	23262 <bt_hci_evt_le_pkey_complete+0x52>
   2327e:	4806      	ldr	r0, [pc, #24]	; (23298 <bt_hci_evt_le_pkey_complete+0x88>)
   23280:	e7f0      	b.n	23264 <bt_hci_evt_le_pkey_complete+0x54>
	SYS_SLIST_FOR_EACH_CONTAINER(&pub_key_cb_slist, cb, node) {
   23282:	461c      	mov	r4, r3
   23284:	e7f4      	b.n	23270 <bt_hci_evt_le_pkey_complete+0x60>
	list->head = NULL;
   23286:	4b03      	ldr	r3, [pc, #12]	; (23294 <bt_hci_evt_le_pkey_complete+0x84>)
   23288:	2200      	movs	r2, #0
   2328a:	601a      	str	r2, [r3, #0]
	list->tail = NULL;
   2328c:	605a      	str	r2, [r3, #4]
		}
	}

	sys_slist_init(&pub_key_cb_slist);
}
   2328e:	bd38      	pop	{r3, r4, r5, pc}
   23290:	20000374 	.word	0x20000374
   23294:	200022dc 	.word	0x200022dc
   23298:	2000229c 	.word	0x2000229c

0002329c <bt_hci_evt_le_dhkey_complete>:

void bt_hci_evt_le_dhkey_complete(struct net_buf *buf)
{
   2329c:	b508      	push	{r3, lr}
	struct bt_hci_evt_le_generate_dhkey_complete *evt = (void *)buf->data;
   2329e:	6880      	ldr	r0, [r0, #8]

	BT_DBG("status: 0x%02x", evt->status);

	if (dh_key_cb) {
   232a0:	4b06      	ldr	r3, [pc, #24]	; (232bc <bt_hci_evt_le_dhkey_complete+0x20>)
   232a2:	681b      	ldr	r3, [r3, #0]
   232a4:	b133      	cbz	r3, 232b4 <bt_hci_evt_le_dhkey_complete+0x18>
		bt_dh_key_cb_t cb = dh_key_cb;

		dh_key_cb = NULL;
   232a6:	4a05      	ldr	r2, [pc, #20]	; (232bc <bt_hci_evt_le_dhkey_complete+0x20>)
   232a8:	2100      	movs	r1, #0
   232aa:	6011      	str	r1, [r2, #0]
		cb(evt->status ? NULL : evt->dhkey);
   232ac:	7802      	ldrb	r2, [r0, #0]
   232ae:	b912      	cbnz	r2, 232b6 <bt_hci_evt_le_dhkey_complete+0x1a>
   232b0:	3001      	adds	r0, #1
   232b2:	4798      	blx	r3
	}
}
   232b4:	bd08      	pop	{r3, pc}
		cb(evt->status ? NULL : evt->dhkey);
   232b6:	2000      	movs	r0, #0
   232b8:	e7fb      	b.n	232b2 <bt_hci_evt_le_dhkey_complete+0x16>
   232ba:	bf00      	nop
   232bc:	20002298 	.word	0x20002298

000232c0 <tx_free>:
		return "(unknown)";
	}
}

static void tx_free(struct bt_conn_tx *tx)
{
   232c0:	b508      	push	{r3, lr}
   232c2:	4601      	mov	r1, r0
	tx->cb = NULL;
   232c4:	2300      	movs	r3, #0
   232c6:	6043      	str	r3, [r0, #4]
	tx->user_data = NULL;
   232c8:	6083      	str	r3, [r0, #8]
	tx->pending_no_cb = 0U;
   232ca:	60c3      	str	r3, [r0, #12]
	k_fifo_put(&free_tx, tx);
   232cc:	4801      	ldr	r0, [pc, #4]	; (232d4 <tx_free+0x14>)
   232ce:	f017 ff8e 	bl	3b1ee <k_queue_append>
}
   232d2:	bd08      	pop	{r3, pc}
   232d4:	200008c0 	.word	0x200008c0

000232d8 <notify_disconnected>:
		bt_gatt_connected(conn);
	}
}

static void notify_disconnected(struct bt_conn *conn)
{
   232d8:	b570      	push	{r4, r5, r6, lr}
   232da:	4605      	mov	r5, r0
	struct bt_conn_cb *cb;

	for (cb = callback_list; cb; cb = cb->_next) {
   232dc:	4b14      	ldr	r3, [pc, #80]	; (23330 <notify_disconnected+0x58>)
   232de:	681c      	ldr	r4, [r3, #0]
   232e0:	e000      	b.n	232e4 <notify_disconnected+0xc>
   232e2:	69a4      	ldr	r4, [r4, #24]
   232e4:	b134      	cbz	r4, 232f4 <notify_disconnected+0x1c>
		if (cb->disconnected) {
   232e6:	6863      	ldr	r3, [r4, #4]
   232e8:	2b00      	cmp	r3, #0
   232ea:	d0fa      	beq.n	232e2 <notify_disconnected+0xa>
			cb->disconnected(conn, conn->err);
   232ec:	7b29      	ldrb	r1, [r5, #12]
   232ee:	4628      	mov	r0, r5
   232f0:	4798      	blx	r3
   232f2:	e7f6      	b.n	232e2 <notify_disconnected+0xa>
		}
	}

	STRUCT_SECTION_FOREACH(bt_conn_cb, cb) {
   232f4:	4c0f      	ldr	r4, [pc, #60]	; (23334 <notify_disconnected+0x5c>)
   232f6:	e000      	b.n	232fa <notify_disconnected+0x22>
   232f8:	341c      	adds	r4, #28
   232fa:	4b0f      	ldr	r3, [pc, #60]	; (23338 <notify_disconnected+0x60>)
   232fc:	429c      	cmp	r4, r3
   232fe:	d809      	bhi.n	23314 <notify_disconnected+0x3c>
   23300:	4b0d      	ldr	r3, [pc, #52]	; (23338 <notify_disconnected+0x60>)
   23302:	429c      	cmp	r4, r3
   23304:	d213      	bcs.n	2332e <notify_disconnected+0x56>
		if (cb->disconnected) {
   23306:	6863      	ldr	r3, [r4, #4]
   23308:	2b00      	cmp	r3, #0
   2330a:	d0f5      	beq.n	232f8 <notify_disconnected+0x20>
			cb->disconnected(conn, conn->err);
   2330c:	7b29      	ldrb	r1, [r5, #12]
   2330e:	4628      	mov	r0, r5
   23310:	4798      	blx	r3
   23312:	e7f1      	b.n	232f8 <notify_disconnected+0x20>
	STRUCT_SECTION_FOREACH(bt_conn_cb, cb) {
   23314:	4e09      	ldr	r6, [pc, #36]	; (2333c <notify_disconnected+0x64>)
   23316:	f240 5212 	movw	r2, #1298	; 0x512
   2331a:	4631      	mov	r1, r6
   2331c:	4808      	ldr	r0, [pc, #32]	; (23340 <notify_disconnected+0x68>)
   2331e:	f010 f844 	bl	333aa <printk>
   23322:	f240 5112 	movw	r1, #1298	; 0x512
   23326:	4630      	mov	r0, r6
   23328:	f010 fbd8 	bl	33adc <assert_post_action>
   2332c:	e7e8      	b.n	23300 <notify_disconnected+0x28>
		}
	}
}
   2332e:	bd70      	pop	{r4, r5, r6, pc}
   23330:	200022e8 	.word	0x200022e8
   23334:	0003b7a8 	.word	0x0003b7a8
   23338:	0003b7a8 	.word	0x0003b7a8
   2333c:	0003d84c 	.word	0x0003d84c
   23340:	0003bdac 	.word	0x0003bdac

00023344 <conn_tx_alloc>:
{
   23344:	b508      	push	{r3, lr}
	return z_impl_z_current_get();
   23346:	f00e fc9b 	bl	31c80 <z_impl_z_current_get>
	if (k_current_get() == &k_sys_work_q.thread) {
   2334a:	4b08      	ldr	r3, [pc, #32]	; (2336c <conn_tx_alloc+0x28>)
   2334c:	4283      	cmp	r3, r0
   2334e:	d007      	beq.n	23360 <conn_tx_alloc+0x1c>
	return z_impl_k_queue_get(queue, timeout);
   23350:	f04f 32ff 	mov.w	r2, #4294967295
   23354:	f04f 33ff 	mov.w	r3, #4294967295
   23358:	4805      	ldr	r0, [pc, #20]	; (23370 <conn_tx_alloc+0x2c>)
   2335a:	f00c fd6d 	bl	2fe38 <z_impl_k_queue_get>
}
   2335e:	bd08      	pop	{r3, pc}
   23360:	2200      	movs	r2, #0
   23362:	2300      	movs	r3, #0
   23364:	4802      	ldr	r0, [pc, #8]	; (23370 <conn_tx_alloc+0x2c>)
   23366:	f00c fd67 	bl	2fe38 <z_impl_k_queue_get>
		return k_fifo_get(&free_tx, K_NO_WAIT);
   2336a:	e7f8      	b.n	2335e <conn_tx_alloc+0x1a>
   2336c:	20002010 	.word	0x20002010
   23370:	200008c0 	.word	0x200008c0

00023374 <notify_connected>:
{
   23374:	b570      	push	{r4, r5, r6, lr}
   23376:	4605      	mov	r5, r0
	for (cb = callback_list; cb; cb = cb->_next) {
   23378:	4b17      	ldr	r3, [pc, #92]	; (233d8 <notify_connected+0x64>)
   2337a:	681c      	ldr	r4, [r3, #0]
   2337c:	e000      	b.n	23380 <notify_connected+0xc>
   2337e:	69a4      	ldr	r4, [r4, #24]
   23380:	b134      	cbz	r4, 23390 <notify_connected+0x1c>
		if (cb->connected) {
   23382:	6823      	ldr	r3, [r4, #0]
   23384:	2b00      	cmp	r3, #0
   23386:	d0fa      	beq.n	2337e <notify_connected+0xa>
			cb->connected(conn, conn->err);
   23388:	7b29      	ldrb	r1, [r5, #12]
   2338a:	4628      	mov	r0, r5
   2338c:	4798      	blx	r3
   2338e:	e7f6      	b.n	2337e <notify_connected+0xa>
	STRUCT_SECTION_FOREACH(bt_conn_cb, cb) {
   23390:	4c12      	ldr	r4, [pc, #72]	; (233dc <notify_connected+0x68>)
   23392:	e000      	b.n	23396 <notify_connected+0x22>
   23394:	341c      	adds	r4, #28
   23396:	4b12      	ldr	r3, [pc, #72]	; (233e0 <notify_connected+0x6c>)
   23398:	429c      	cmp	r4, r3
   2339a:	d809      	bhi.n	233b0 <notify_connected+0x3c>
   2339c:	4b10      	ldr	r3, [pc, #64]	; (233e0 <notify_connected+0x6c>)
   2339e:	429c      	cmp	r4, r3
   233a0:	d213      	bcs.n	233ca <notify_connected+0x56>
		if (cb->connected) {
   233a2:	6823      	ldr	r3, [r4, #0]
   233a4:	2b00      	cmp	r3, #0
   233a6:	d0f5      	beq.n	23394 <notify_connected+0x20>
			cb->connected(conn, conn->err);
   233a8:	7b29      	ldrb	r1, [r5, #12]
   233aa:	4628      	mov	r0, r5
   233ac:	4798      	blx	r3
   233ae:	e7f1      	b.n	23394 <notify_connected+0x20>
	STRUCT_SECTION_FOREACH(bt_conn_cb, cb) {
   233b0:	4e0c      	ldr	r6, [pc, #48]	; (233e4 <notify_connected+0x70>)
   233b2:	f240 42fd 	movw	r2, #1277	; 0x4fd
   233b6:	4631      	mov	r1, r6
   233b8:	480b      	ldr	r0, [pc, #44]	; (233e8 <notify_connected+0x74>)
   233ba:	f00f fff6 	bl	333aa <printk>
   233be:	f240 41fd 	movw	r1, #1277	; 0x4fd
   233c2:	4630      	mov	r0, r6
   233c4:	f010 fb8a 	bl	33adc <assert_post_action>
   233c8:	e7e8      	b.n	2339c <notify_connected+0x28>
	if (!conn->err) {
   233ca:	7b2b      	ldrb	r3, [r5, #12]
   233cc:	b103      	cbz	r3, 233d0 <notify_connected+0x5c>
}
   233ce:	bd70      	pop	{r4, r5, r6, pc}
		bt_gatt_connected(conn);
   233d0:	4628      	mov	r0, r5
   233d2:	f003 fc5f 	bl	26c94 <bt_gatt_connected>
}
   233d6:	e7fa      	b.n	233ce <notify_connected+0x5a>
   233d8:	200022e8 	.word	0x200022e8
   233dc:	0003b7a8 	.word	0x0003b7a8
   233e0:	0003b7a8 	.word	0x0003b7a8
   233e4:	0003d84c 	.word	0x0003d84c
   233e8:	0003bdac 	.word	0x0003bdac

000233ec <bt_conn_get_pkts>:
}
   233ec:	4800      	ldr	r0, [pc, #0]	; (233f0 <bt_conn_get_pkts+0x4>)
   233ee:	4770      	bx	lr
   233f0:	200003a8 	.word	0x200003a8

000233f4 <send_frag>:
{
   233f4:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
   233f8:	4605      	mov	r5, r0
   233fa:	460e      	mov	r6, r1
   233fc:	4691      	mov	r9, r2
   233fe:	461c      	mov	r4, r3
	struct bt_conn_tx *tx = tx_data(buf)->tx;
   23400:	694f      	ldr	r7, [r1, #20]
	k_sem_take(bt_conn_get_pkts(conn), K_FOREVER);
   23402:	f7ff fff3 	bl	233ec <bt_conn_get_pkts>
   23406:	4680      	mov	r8, r0
	return z_impl_k_sem_take(sem, timeout);
   23408:	f04f 32ff 	mov.w	r2, #4294967295
   2340c:	f04f 33ff 	mov.w	r3, #4294967295
   23410:	f00c fdc8 	bl	2ffa4 <z_impl_k_sem_take>
	if (conn->state != BT_CONN_CONNECTED) {
   23414:	7b6b      	ldrb	r3, [r5, #13]
   23416:	2b07      	cmp	r3, #7
   23418:	d14d      	bne.n	234b6 <send_frag+0xc2>
   2341a:	f04f 0240 	mov.w	r2, #64	; 0x40
   2341e:	f3ef 8311 	mrs	r3, BASEPRI
   23422:	f382 8812 	msr	BASEPRI_MAX, r2
   23426:	f3bf 8f6f 	isb	sy
	if (tx) {
   2342a:	b1af      	cbz	r7, 23458 <send_frag+0x64>
	parent->next = child;
   2342c:	2200      	movs	r2, #0
   2342e:	603a      	str	r2, [r7, #0]
	return list->tail;
   23430:	69aa      	ldr	r2, [r5, #24]
Z_GENLIST_APPEND(slist, snode)
   23432:	b172      	cbz	r2, 23452 <send_frag+0x5e>
	parent->next = child;
   23434:	6017      	str	r7, [r2, #0]
	list->tail = node;
   23436:	61af      	str	r7, [r5, #24]
	__asm__ volatile(
   23438:	f383 8811 	msr	BASEPRI, r3
   2343c:	f3bf 8f6f 	isb	sy
		err = send_acl(conn, buf, flags);
   23440:	464a      	mov	r2, r9
   23442:	4631      	mov	r1, r6
   23444:	4628      	mov	r0, r5
   23446:	f013 f910 	bl	3666a <send_acl>
	if (err) {
   2344a:	4602      	mov	r2, r0
   2344c:	b988      	cbnz	r0, 23472 <send_frag+0x7e>
	return true;
   2344e:	2001      	movs	r0, #1
   23450:	e03a      	b.n	234c8 <send_frag+0xd4>
   23452:	61af      	str	r7, [r5, #24]
	list->head = node;
   23454:	616f      	str	r7, [r5, #20]
}
   23456:	e7ef      	b.n	23438 <send_frag+0x44>
	return list->tail;
   23458:	69aa      	ldr	r2, [r5, #24]
		if (tail_tx) {
   2345a:	b13a      	cbz	r2, 2346c <send_frag+0x78>
			pending_no_cb = &tail_tx->pending_no_cb;
   2345c:	f102 0a0c 	add.w	sl, r2, #12
		(*pending_no_cb)++;
   23460:	f8da 2000 	ldr.w	r2, [sl]
   23464:	3201      	adds	r2, #1
   23466:	f8ca 2000 	str.w	r2, [sl]
   2346a:	e7e5      	b.n	23438 <send_frag+0x44>
			pending_no_cb = &conn->pending_no_cb;
   2346c:	f105 0a1c 	add.w	sl, r5, #28
   23470:	e7f6      	b.n	23460 <send_frag+0x6c>
		BT_ERR("Unable to send to driver (err %d)", err);
   23472:	2145      	movs	r1, #69	; 0x45
   23474:	4827      	ldr	r0, [pc, #156]	; (23514 <send_frag+0x120>)
   23476:	f010 fb39 	bl	33aec <z_log_minimal_printk>
	__asm__ volatile(
   2347a:	f04f 0340 	mov.w	r3, #64	; 0x40
   2347e:	f3ef 8911 	mrs	r9, BASEPRI
   23482:	f383 8812 	msr	BASEPRI_MAX, r3
   23486:	f3bf 8f6f 	isb	sy
		if (tx) {
   2348a:	b347      	cbz	r7, 234de <send_frag+0xea>
			sys_slist_find_and_remove(&conn->tx_pending, &tx->node);
   2348c:	4639      	mov	r1, r7
	return list->head;
   2348e:	696b      	ldr	r3, [r5, #20]
 */
static inline bool sys_slist_find_and_remove(sys_slist_t *list,
					     sys_snode_t *node);

/** @} */
Z_GENLIST_FIND_AND_REMOVE(slist, snode)
   23490:	2200      	movs	r2, #0
   23492:	b163      	cbz	r3, 234ae <send_frag+0xba>
   23494:	428b      	cmp	r3, r1
   23496:	d002      	beq.n	2349e <send_frag+0xaa>
   23498:	461a      	mov	r2, r3
   2349a:	681b      	ldr	r3, [r3, #0]
   2349c:	e7f9      	b.n	23492 <send_frag+0x9e>
Z_GENLIST_REMOVE(slist, snode)
   2349e:	b1aa      	cbz	r2, 234cc <send_frag+0xd8>
	return node->next;
   234a0:	683b      	ldr	r3, [r7, #0]
	parent->next = child;
   234a2:	6013      	str	r3, [r2, #0]
	return list->tail;
   234a4:	69ab      	ldr	r3, [r5, #24]
Z_GENLIST_REMOVE(slist, snode)
   234a6:	42bb      	cmp	r3, r7
   234a8:	d017      	beq.n	234da <send_frag+0xe6>
	parent->next = child;
   234aa:	2300      	movs	r3, #0
   234ac:	603b      	str	r3, [r7, #0]
	__asm__ volatile(
   234ae:	f389 8811 	msr	BASEPRI, r9
   234b2:	f3bf 8f6f 	isb	sy
	z_impl_k_sem_give(sem);
   234b6:	4640      	mov	r0, r8
   234b8:	f00c fd34 	bl	2ff24 <z_impl_k_sem_give>
	if (tx) {
   234bc:	b117      	cbz	r7, 234c4 <send_frag+0xd0>
		tx_free(tx);
   234be:	4638      	mov	r0, r7
   234c0:	f7ff fefe 	bl	232c0 <tx_free>
	if (always_consume) {
   234c4:	bb0c      	cbnz	r4, 2350a <send_frag+0x116>
	return false;
   234c6:	4620      	mov	r0, r4
}
   234c8:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
	return node->next;
   234cc:	683b      	ldr	r3, [r7, #0]
	list->head = node;
   234ce:	616b      	str	r3, [r5, #20]
	return list->tail;
   234d0:	69aa      	ldr	r2, [r5, #24]
Z_GENLIST_REMOVE(slist, snode)
   234d2:	42ba      	cmp	r2, r7
   234d4:	d1e9      	bne.n	234aa <send_frag+0xb6>
	list->tail = node;
   234d6:	61ab      	str	r3, [r5, #24]
}
   234d8:	e7e7      	b.n	234aa <send_frag+0xb6>
	list->tail = node;
   234da:	61aa      	str	r2, [r5, #24]
}
   234dc:	e7e5      	b.n	234aa <send_frag+0xb6>
			__ASSERT_NO_MSG(*pending_no_cb > 0);
   234de:	f8da 3000 	ldr.w	r3, [sl]
   234e2:	b12b      	cbz	r3, 234f0 <send_frag+0xfc>
			(*pending_no_cb)--;
   234e4:	f8da 3000 	ldr.w	r3, [sl]
   234e8:	3b01      	subs	r3, #1
   234ea:	f8ca 3000 	str.w	r3, [sl]
   234ee:	e7de      	b.n	234ae <send_frag+0xba>
			__ASSERT_NO_MSG(*pending_no_cb > 0);
   234f0:	4d09      	ldr	r5, [pc, #36]	; (23518 <send_frag+0x124>)
   234f2:	f240 2207 	movw	r2, #519	; 0x207
   234f6:	4629      	mov	r1, r5
   234f8:	4808      	ldr	r0, [pc, #32]	; (2351c <send_frag+0x128>)
   234fa:	f00f ff56 	bl	333aa <printk>
   234fe:	f240 2107 	movw	r1, #519	; 0x207
   23502:	4628      	mov	r0, r5
   23504:	f010 faea 	bl	33adc <assert_post_action>
   23508:	e7ec      	b.n	234e4 <send_frag+0xf0>
		net_buf_unref(buf);
   2350a:	4630      	mov	r0, r6
   2350c:	f006 f928 	bl	29760 <net_buf_unref>
	return false;
   23510:	2000      	movs	r0, #0
   23512:	e7d9      	b.n	234c8 <send_frag+0xd4>
   23514:	0003d1f0 	.word	0x0003d1f0
   23518:	0003d84c 	.word	0x0003d84c
   2351c:	0003bdac 	.word	0x0003bdac

00023520 <bt_conn_new>:
{
   23520:	b570      	push	{r4, r5, r6, lr}
	for (i = 0; i < size; i++) {
   23522:	2300      	movs	r3, #0
   23524:	428b      	cmp	r3, r1
   23526:	d227      	bcs.n	23578 <bt_conn_new+0x58>
		if (atomic_cas(&conns[i].ref, 0, 1)) {
   23528:	24c8      	movs	r4, #200	; 0xc8
   2352a:	fb04 0403 	mla	r4, r4, r3, r0
   2352e:	f104 02c0 	add.w	r2, r4, #192	; 0xc0
	return __atomic_compare_exchange_n(target, &old_value, new_value,
   23532:	2501      	movs	r5, #1
   23534:	f3bf 8f5b 	dmb	ish
   23538:	e852 6f00 	ldrex	r6, [r2]
   2353c:	2e00      	cmp	r6, #0
   2353e:	d104      	bne.n	2354a <bt_conn_new+0x2a>
   23540:	e842 5c00 	strex	ip, r5, [r2]
   23544:	f1bc 0f00 	cmp.w	ip, #0
   23548:	d1f6      	bne.n	23538 <bt_conn_new+0x18>
   2354a:	f3bf 8f5b 	dmb	ish
   2354e:	d111      	bne.n	23574 <bt_conn_new+0x54>
	if (!conn) {
   23550:	b174      	cbz	r4, 23570 <bt_conn_new+0x50>
	(void)memset(conn, 0, offsetof(struct bt_conn, ref));
   23552:	22c0      	movs	r2, #192	; 0xc0
   23554:	2100      	movs	r1, #0
   23556:	4620      	mov	r0, r4
   23558:	f012 faf4 	bl	35b44 <memset>
	k_work_init_delayable(&conn->deferred_work, deferred_work);
   2355c:	4907      	ldr	r1, [pc, #28]	; (2357c <bt_conn_new+0x5c>)
   2355e:	f104 0060 	add.w	r0, r4, #96	; 0x60
   23562:	f00d f90b 	bl	3077c <k_work_init_delayable>
	k_work_init(&conn->tx_complete_work, tx_complete_work);
   23566:	4906      	ldr	r1, [pc, #24]	; (23580 <bt_conn_new+0x60>)
   23568:	f104 0028 	add.w	r0, r4, #40	; 0x28
   2356c:	f00d f800 	bl	30570 <k_work_init>
}
   23570:	4620      	mov	r0, r4
   23572:	bd70      	pop	{r4, r5, r6, pc}
	for (i = 0; i < size; i++) {
   23574:	442b      	add	r3, r5
   23576:	e7d5      	b.n	23524 <bt_conn_new+0x4>
	struct bt_conn *conn = NULL;
   23578:	2400      	movs	r4, #0
   2357a:	e7e9      	b.n	23550 <bt_conn_new+0x30>
   2357c:	00023ead 	.word	0x00023ead
   23580:	00036661 	.word	0x00036661

00023584 <acl_conn_new>:

	atomic_set_bit(conn->flags, BT_CONN_PERIPHERAL_PARAM_UPDATE);
}

static struct bt_conn *acl_conn_new(void)
{
   23584:	b508      	push	{r3, lr}
	return bt_conn_new(acl_conns, ARRAY_SIZE(acl_conns));
   23586:	2101      	movs	r1, #1
   23588:	4801      	ldr	r0, [pc, #4]	; (23590 <acl_conn_new+0xc>)
   2358a:	f7ff ffc9 	bl	23520 <bt_conn_new>
}
   2358e:	bd08      	pop	{r3, pc}
   23590:	20001848 	.word	0x20001848

00023594 <bt_acl_recv>:
{
   23594:	b570      	push	{r4, r5, r6, lr}
   23596:	4604      	mov	r4, r0
   23598:	460d      	mov	r5, r1
	switch (flags) {
   2359a:	2a01      	cmp	r2, #1
   2359c:	d020      	beq.n	235e0 <bt_acl_recv+0x4c>
   2359e:	2a02      	cmp	r2, #2
   235a0:	d14f      	bne.n	23642 <bt_acl_recv+0xae>
		if (conn->rx) {
   235a2:	6903      	ldr	r3, [r0, #16]
   235a4:	b133      	cbz	r3, 235b4 <bt_acl_recv+0x20>
			BT_ERR("Unexpected first L2CAP frame");
   235a6:	2145      	movs	r1, #69	; 0x45
   235a8:	482f      	ldr	r0, [pc, #188]	; (23668 <bt_acl_recv+0xd4>)
   235aa:	f010 fa9f 	bl	33aec <z_log_minimal_printk>
			bt_conn_reset_rx_state(conn);
   235ae:	4620      	mov	r0, r4
   235b0:	f013 f8c2 	bl	36738 <bt_conn_reset_rx_state>
		conn->rx = buf;
   235b4:	6125      	str	r5, [r4, #16]
	if (conn->rx->len < sizeof(uint16_t)) {
   235b6:	6921      	ldr	r1, [r4, #16]
   235b8:	898a      	ldrh	r2, [r1, #12]
   235ba:	2a01      	cmp	r2, #1
   235bc:	d94b      	bls.n	23656 <bt_acl_recv+0xc2>
	acl_total_len = sys_get_le16(conn->rx->data) + sizeof(struct bt_l2cap_hdr);
   235be:	6888      	ldr	r0, [r1, #8]
	return ((uint16_t)src[1] << 8) | src[0];
   235c0:	7845      	ldrb	r5, [r0, #1]
   235c2:	7803      	ldrb	r3, [r0, #0]
   235c4:	ea43 2305 	orr.w	r3, r3, r5, lsl #8
   235c8:	3304      	adds	r3, #4
   235ca:	b29b      	uxth	r3, r3
	if (conn->rx->len < acl_total_len) {
   235cc:	429a      	cmp	r2, r3
   235ce:	d342      	bcc.n	23656 <bt_acl_recv+0xc2>
	if (conn->rx->len > acl_total_len) {
   235d0:	d842      	bhi.n	23658 <bt_acl_recv+0xc4>
	conn->rx = NULL;
   235d2:	2300      	movs	r3, #0
   235d4:	6123      	str	r3, [r4, #16]
	bt_l2cap_recv(conn, buf, true);
   235d6:	2201      	movs	r2, #1
   235d8:	4620      	mov	r0, r4
   235da:	f000 fee1 	bl	243a0 <bt_l2cap_recv>
   235de:	e03a      	b.n	23656 <bt_acl_recv+0xc2>
		if (!conn->rx) {
   235e0:	6900      	ldr	r0, [r0, #16]
   235e2:	b180      	cbz	r0, 23606 <bt_acl_recv+0x72>
		if (!buf->len) {
   235e4:	898e      	ldrh	r6, [r1, #12]
   235e6:	b1ce      	cbz	r6, 2361c <bt_acl_recv+0x88>
 *
 * @return Number of bytes available at the end of the buffer.
 */
static inline size_t net_buf_tailroom(struct net_buf *buf)
{
	return net_buf_simple_tailroom(&buf->b);
   235e8:	3008      	adds	r0, #8
   235ea:	f015 fda2 	bl	39132 <net_buf_simple_tailroom>
		if (buf->len > net_buf_tailroom(conn->rx)) {
   235ee:	4286      	cmp	r6, r0
   235f0:	d818      	bhi.n	23624 <bt_acl_recv+0x90>
		net_buf_add_mem(conn->rx, buf->data, buf->len);
   235f2:	6920      	ldr	r0, [r4, #16]
	return net_buf_simple_add_mem(&buf->b, mem, len);
   235f4:	89aa      	ldrh	r2, [r5, #12]
   235f6:	68a9      	ldr	r1, [r5, #8]
   235f8:	3008      	adds	r0, #8
   235fa:	f015 fda3 	bl	39144 <net_buf_simple_add_mem>
		net_buf_unref(buf);
   235fe:	4628      	mov	r0, r5
   23600:	f006 f8ae 	bl	29760 <net_buf_unref>
		break;
   23604:	e7d7      	b.n	235b6 <bt_acl_recv+0x22>
			BT_ERR("Unexpected L2CAP continuation");
   23606:	2145      	movs	r1, #69	; 0x45
   23608:	4818      	ldr	r0, [pc, #96]	; (2366c <bt_acl_recv+0xd8>)
   2360a:	f010 fa6f 	bl	33aec <z_log_minimal_printk>
			bt_conn_reset_rx_state(conn);
   2360e:	4620      	mov	r0, r4
   23610:	f013 f892 	bl	36738 <bt_conn_reset_rx_state>
			net_buf_unref(buf);
   23614:	4628      	mov	r0, r5
   23616:	f006 f8a3 	bl	29760 <net_buf_unref>
			return;
   2361a:	e01c      	b.n	23656 <bt_acl_recv+0xc2>
			net_buf_unref(buf);
   2361c:	4608      	mov	r0, r1
   2361e:	f006 f89f 	bl	29760 <net_buf_unref>
			return;
   23622:	e018      	b.n	23656 <bt_acl_recv+0xc2>
			BT_ERR("Not enough buffer space for L2CAP data");
   23624:	2145      	movs	r1, #69	; 0x45
   23626:	4812      	ldr	r0, [pc, #72]	; (23670 <bt_acl_recv+0xdc>)
   23628:	f010 fa60 	bl	33aec <z_log_minimal_printk>
			bt_l2cap_recv(conn, conn->rx, false);
   2362c:	2200      	movs	r2, #0
   2362e:	6921      	ldr	r1, [r4, #16]
   23630:	4620      	mov	r0, r4
   23632:	f000 feb5 	bl	243a0 <bt_l2cap_recv>
			conn->rx = NULL;
   23636:	2300      	movs	r3, #0
   23638:	6123      	str	r3, [r4, #16]
			net_buf_unref(buf);
   2363a:	4628      	mov	r0, r5
   2363c:	f006 f890 	bl	29760 <net_buf_unref>
			return;
   23640:	e009      	b.n	23656 <bt_acl_recv+0xc2>
		BT_ERR("Unexpected ACL flags (0x%02x)", flags);
   23642:	2145      	movs	r1, #69	; 0x45
   23644:	480b      	ldr	r0, [pc, #44]	; (23674 <bt_acl_recv+0xe0>)
   23646:	f010 fa51 	bl	33aec <z_log_minimal_printk>
		bt_conn_reset_rx_state(conn);
   2364a:	4620      	mov	r0, r4
   2364c:	f013 f874 	bl	36738 <bt_conn_reset_rx_state>
		net_buf_unref(buf);
   23650:	4628      	mov	r0, r5
   23652:	f006 f885 	bl	29760 <net_buf_unref>
}
   23656:	bd70      	pop	{r4, r5, r6, pc}
		BT_ERR("ACL len mismatch (%u > %u)",
   23658:	2145      	movs	r1, #69	; 0x45
   2365a:	4807      	ldr	r0, [pc, #28]	; (23678 <bt_acl_recv+0xe4>)
   2365c:	f010 fa46 	bl	33aec <z_log_minimal_printk>
		bt_conn_reset_rx_state(conn);
   23660:	4620      	mov	r0, r4
   23662:	f013 f869 	bl	36738 <bt_conn_reset_rx_state>
		return;
   23666:	e7f6      	b.n	23656 <bt_acl_recv+0xc2>
   23668:	0003d87c 	.word	0x0003d87c
   2366c:	0003d8a0 	.word	0x0003d8a0
   23670:	0003d8c4 	.word	0x0003d8c4
   23674:	0003d8f0 	.word	0x0003d8f0
   23678:	0003d914 	.word	0x0003d914

0002367c <conn_cleanup>:
{
   2367c:	b538      	push	{r3, r4, r5, lr}
   2367e:	4605      	mov	r5, r0
	while ((buf = net_buf_get(&conn->tx_queue, K_NO_WAIT))) {
   23680:	e004      	b.n	2368c <conn_cleanup+0x10>
			tx_free(tx_data(buf)->tx);
   23682:	f7ff fe1d 	bl	232c0 <tx_free>
		net_buf_unref(buf);
   23686:	4620      	mov	r0, r4
   23688:	f006 f86a 	bl	29760 <net_buf_unref>
	while ((buf = net_buf_get(&conn->tx_queue, K_NO_WAIT))) {
   2368c:	2200      	movs	r2, #0
   2368e:	2300      	movs	r3, #0
   23690:	f105 0038 	add.w	r0, r5, #56	; 0x38
   23694:	f005 ffdc 	bl	29650 <net_buf_get>
   23698:	4604      	mov	r4, r0
   2369a:	b118      	cbz	r0, 236a4 <conn_cleanup+0x28>
		if (tx_data(buf)->tx) {
   2369c:	6960      	ldr	r0, [r4, #20]
   2369e:	2800      	cmp	r0, #0
   236a0:	d1ef      	bne.n	23682 <conn_cleanup+0x6>
   236a2:	e7f0      	b.n	23686 <conn_cleanup+0xa>
	return list->head;
   236a4:	696b      	ldr	r3, [r5, #20]
	__ASSERT(sys_slist_is_empty(&conn->tx_pending), "Pending TX packets");
   236a6:	b15b      	cbz	r3, 236c0 <conn_cleanup+0x44>
   236a8:	4c12      	ldr	r4, [pc, #72]	; (236f4 <conn_cleanup+0x78>)
   236aa:	f240 228a 	movw	r2, #650	; 0x28a
   236ae:	4621      	mov	r1, r4
   236b0:	4811      	ldr	r0, [pc, #68]	; (236f8 <conn_cleanup+0x7c>)
   236b2:	f00f fe7a 	bl	333aa <printk>
   236b6:	f240 218a 	movw	r1, #650	; 0x28a
   236ba:	4620      	mov	r0, r4
   236bc:	f010 fa0e 	bl	33adc <assert_post_action>
	__ASSERT_NO_MSG(conn->pending_no_cb == 0);
   236c0:	69eb      	ldr	r3, [r5, #28]
   236c2:	b94b      	cbnz	r3, 236d8 <conn_cleanup+0x5c>
	bt_conn_reset_rx_state(conn);
   236c4:	4628      	mov	r0, r5
   236c6:	f013 f837 	bl	36738 <bt_conn_reset_rx_state>
	k_work_reschedule(&conn->deferred_work, K_NO_WAIT);
   236ca:	2200      	movs	r2, #0
   236cc:	2300      	movs	r3, #0
   236ce:	f105 0060 	add.w	r0, r5, #96	; 0x60
   236d2:	f00d f947 	bl	30964 <k_work_reschedule>
}
   236d6:	bd38      	pop	{r3, r4, r5, pc}
	__ASSERT_NO_MSG(conn->pending_no_cb == 0);
   236d8:	4c06      	ldr	r4, [pc, #24]	; (236f4 <conn_cleanup+0x78>)
   236da:	f240 228b 	movw	r2, #651	; 0x28b
   236de:	4621      	mov	r1, r4
   236e0:	4805      	ldr	r0, [pc, #20]	; (236f8 <conn_cleanup+0x7c>)
   236e2:	f00f fe62 	bl	333aa <printk>
   236e6:	f240 218b 	movw	r1, #651	; 0x28b
   236ea:	4620      	mov	r0, r4
   236ec:	f010 f9f6 	bl	33adc <assert_post_action>
   236f0:	e7e8      	b.n	236c4 <conn_cleanup+0x48>
   236f2:	bf00      	nop
   236f4:	0003d84c 	.word	0x0003d84c
   236f8:	0003bdac 	.word	0x0003bdac

000236fc <bt_conn_send_cb>:
{
   236fc:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   23700:	461f      	mov	r7, r3
	if (conn->state != BT_CONN_CONNECTED) {
   23702:	7b43      	ldrb	r3, [r0, #13]
   23704:	2b07      	cmp	r3, #7
   23706:	d117      	bne.n	23738 <bt_conn_send_cb+0x3c>
   23708:	4604      	mov	r4, r0
   2370a:	460d      	mov	r5, r1
   2370c:	4616      	mov	r6, r2
	if (cb) {
   2370e:	b35a      	cbz	r2, 23768 <bt_conn_send_cb+0x6c>
		tx = conn_tx_alloc();
   23710:	f7ff fe18 	bl	23344 <conn_tx_alloc>
		if (!tx) {
   23714:	4680      	mov	r8, r0
   23716:	b1b0      	cbz	r0, 23746 <bt_conn_send_cb+0x4a>
		if (conn->state != BT_CONN_CONNECTED) {
   23718:	7b63      	ldrb	r3, [r4, #13]
   2371a:	2b07      	cmp	r3, #7
   2371c:	d11a      	bne.n	23754 <bt_conn_send_cb+0x58>
		tx->cb = cb;
   2371e:	6046      	str	r6, [r0, #4]
		tx->user_data = user_data;
   23720:	6087      	str	r7, [r0, #8]
		tx->pending_no_cb = 0U;
   23722:	2300      	movs	r3, #0
   23724:	60c3      	str	r3, [r0, #12]
		tx_data(buf)->tx = tx;
   23726:	6168      	str	r0, [r5, #20]
	net_buf_put(&conn->tx_queue, buf);
   23728:	4629      	mov	r1, r5
   2372a:	f104 0038 	add.w	r0, r4, #56	; 0x38
   2372e:	f005 ffe5 	bl	296fc <net_buf_put>
	return 0;
   23732:	2000      	movs	r0, #0
}
   23734:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
		BT_ERR("not connected!");
   23738:	2145      	movs	r1, #69	; 0x45
   2373a:	480d      	ldr	r0, [pc, #52]	; (23770 <bt_conn_send_cb+0x74>)
   2373c:	f010 f9d6 	bl	33aec <z_log_minimal_printk>
		return -ENOTCONN;
   23740:	f06f 007f 	mvn.w	r0, #127	; 0x7f
   23744:	e7f6      	b.n	23734 <bt_conn_send_cb+0x38>
			BT_ERR("Unable to allocate TX context");
   23746:	2145      	movs	r1, #69	; 0x45
   23748:	480a      	ldr	r0, [pc, #40]	; (23774 <bt_conn_send_cb+0x78>)
   2374a:	f010 f9cf 	bl	33aec <z_log_minimal_printk>
			return -ENOBUFS;
   2374e:	f06f 0068 	mvn.w	r0, #104	; 0x68
   23752:	e7ef      	b.n	23734 <bt_conn_send_cb+0x38>
			BT_WARN("Disconnected while allocating context");
   23754:	2157      	movs	r1, #87	; 0x57
   23756:	4808      	ldr	r0, [pc, #32]	; (23778 <bt_conn_send_cb+0x7c>)
   23758:	f010 f9c8 	bl	33aec <z_log_minimal_printk>
			tx_free(tx);
   2375c:	4640      	mov	r0, r8
   2375e:	f7ff fdaf 	bl	232c0 <tx_free>
			return -ENOTCONN;
   23762:	f06f 007f 	mvn.w	r0, #127	; 0x7f
   23766:	e7e5      	b.n	23734 <bt_conn_send_cb+0x38>
		tx_data(buf)->tx = NULL;
   23768:	2300      	movs	r3, #0
   2376a:	614b      	str	r3, [r1, #20]
   2376c:	e7dc      	b.n	23728 <bt_conn_send_cb+0x2c>
   2376e:	bf00      	nop
   23770:	0003d934 	.word	0x0003d934
   23774:	0003d948 	.word	0x0003d948
   23778:	0003d96c 	.word	0x0003d96c

0002377c <bt_conn_prepare_events>:
{
   2377c:	b570      	push	{r4, r5, r6, lr}
   2377e:	4606      	mov	r6, r0
	conn_change.signaled = 0U;
   23780:	4b0c      	ldr	r3, [pc, #48]	; (237b4 <bt_conn_prepare_events+0x38>)
   23782:	2400      	movs	r4, #0
   23784:	609c      	str	r4, [r3, #8]
	k_poll_event_init(&events[ev_count++], K_POLL_TYPE_SIGNAL,
   23786:	4622      	mov	r2, r4
   23788:	2101      	movs	r1, #1
   2378a:	f00e ffc1 	bl	32710 <k_poll_event_init>
   2378e:	2501      	movs	r5, #1
	for (i = 0; i < ARRAY_SIZE(acl_conns); i++) {
   23790:	2c00      	cmp	r4, #0
   23792:	dd01      	ble.n	23798 <bt_conn_prepare_events+0x1c>
}
   23794:	4628      	mov	r0, r5
   23796:	bd70      	pop	{r4, r5, r6, pc}
		if (!conn_prepare_events(conn, &events[ev_count])) {
   23798:	eb05 0185 	add.w	r1, r5, r5, lsl #2
   2379c:	eb06 0181 	add.w	r1, r6, r1, lsl #2
   237a0:	4b05      	ldr	r3, [pc, #20]	; (237b8 <bt_conn_prepare_events+0x3c>)
   237a2:	20c8      	movs	r0, #200	; 0xc8
   237a4:	fb00 3004 	mla	r0, r0, r4, r3
   237a8:	f012 ffcf 	bl	3674a <conn_prepare_events>
   237ac:	b900      	cbnz	r0, 237b0 <bt_conn_prepare_events+0x34>
			ev_count++;
   237ae:	3501      	adds	r5, #1
	for (i = 0; i < ARRAY_SIZE(acl_conns); i++) {
   237b0:	3401      	adds	r4, #1
   237b2:	e7ed      	b.n	23790 <bt_conn_prepare_events+0x14>
   237b4:	20000588 	.word	0x20000588
   237b8:	20001848 	.word	0x20001848

000237bc <bt_conn_unref>:
{
   237bc:	b538      	push	{r3, r4, r5, lr}
   237be:	4604      	mov	r4, r0
	old = atomic_dec(&conn->ref);
   237c0:	f100 03c0 	add.w	r3, r0, #192	; 0xc0
	return __atomic_fetch_sub(target, value, __ATOMIC_SEQ_CST);
   237c4:	f3bf 8f5b 	dmb	ish
   237c8:	e853 2f00 	ldrex	r2, [r3]
   237cc:	1e51      	subs	r1, r2, #1
   237ce:	e843 1000 	strex	r0, r1, [r3]
   237d2:	2800      	cmp	r0, #0
   237d4:	d1f8      	bne.n	237c8 <bt_conn_unref+0xc>
   237d6:	f3bf 8f5b 	dmb	ish
	__ASSERT(old > 0, "Conn reference counter is 0");
   237da:	2a00      	cmp	r2, #0
   237dc:	dd03      	ble.n	237e6 <bt_conn_unref+0x2a>
	if (IS_ENABLED(CONFIG_BT_PERIPHERAL) && conn->type == BT_CONN_TYPE_LE &&
   237de:	78a3      	ldrb	r3, [r4, #2]
   237e0:	2b01      	cmp	r3, #1
   237e2:	d00d      	beq.n	23800 <bt_conn_unref+0x44>
}
   237e4:	bd38      	pop	{r3, r4, r5, pc}
	__ASSERT(old > 0, "Conn reference counter is 0");
   237e6:	4d0c      	ldr	r5, [pc, #48]	; (23818 <bt_conn_unref+0x5c>)
   237e8:	f240 4246 	movw	r2, #1094	; 0x446
   237ec:	4629      	mov	r1, r5
   237ee:	480b      	ldr	r0, [pc, #44]	; (2381c <bt_conn_unref+0x60>)
   237f0:	f00f fddb 	bl	333aa <printk>
   237f4:	f240 4146 	movw	r1, #1094	; 0x446
   237f8:	4628      	mov	r0, r5
   237fa:	f010 f96f 	bl	33adc <assert_post_action>
   237fe:	e7ee      	b.n	237de <bt_conn_unref+0x22>
	return __atomic_load_n(target, __ATOMIC_SEQ_CST);
   23800:	f3bf 8f5b 	dmb	ish
   23804:	f8d4 30c0 	ldr.w	r3, [r4, #192]	; 0xc0
   23808:	f3bf 8f5b 	dmb	ish
	if (IS_ENABLED(CONFIG_BT_PERIPHERAL) && conn->type == BT_CONN_TYPE_LE &&
   2380c:	2b00      	cmp	r3, #0
   2380e:	d1e9      	bne.n	237e4 <bt_conn_unref+0x28>
		bt_le_adv_resume();
   23810:	f012 fe91 	bl	36536 <bt_le_adv_resume>
}
   23814:	e7e6      	b.n	237e4 <bt_conn_unref+0x28>
   23816:	bf00      	nop
   23818:	0003d84c 	.word	0x0003d84c
   2381c:	0003bdac 	.word	0x0003bdac

00023820 <bt_conn_lookup_handle>:
{
   23820:	b508      	push	{r3, lr}
   23822:	4602      	mov	r2, r0
	conn = conn_lookup_handle(acl_conns, ARRAY_SIZE(acl_conns), handle);
   23824:	2101      	movs	r1, #1
   23826:	4802      	ldr	r0, [pc, #8]	; (23830 <bt_conn_lookup_handle+0x10>)
   23828:	f012 fff7 	bl	3681a <conn_lookup_handle>
}
   2382c:	bd08      	pop	{r3, pc}
   2382e:	bf00      	nop
   23830:	20001848 	.word	0x20001848

00023834 <bt_conn_set_state>:
{
   23834:	b570      	push	{r4, r5, r6, lr}
   23836:	460d      	mov	r5, r1
	if (conn->state == state) {
   23838:	7b46      	ldrb	r6, [r0, #13]
   2383a:	428e      	cmp	r6, r1
   2383c:	d010      	beq.n	23860 <bt_conn_set_state+0x2c>
   2383e:	4604      	mov	r4, r0
	conn->state = state;
   23840:	7341      	strb	r1, [r0, #13]
	switch (old_state) {
   23842:	b916      	cbnz	r6, 2384a <bt_conn_set_state+0x16>
		if (conn->type != BT_CONN_TYPE_ISO) {
   23844:	7883      	ldrb	r3, [r0, #2]
   23846:	2b08      	cmp	r3, #8
   23848:	d12b      	bne.n	238a2 <bt_conn_set_state+0x6e>
	switch (conn->state) {
   2384a:	7b63      	ldrb	r3, [r4, #13]
   2384c:	2b08      	cmp	r3, #8
   2384e:	f200 80a1 	bhi.w	23994 <bt_conn_set_state+0x160>
   23852:	e8df f003 	tbb	[pc, r3]
   23856:	9b42      	.short	0x9b42
   23858:	9e9e9e9e 	.word	0x9e9e9e9e
   2385c:	299e      	.short	0x299e
   2385e:	9e          	.byte	0x9e
   2385f:	00          	.byte	0x00
	switch (state) {
   23860:	2908      	cmp	r1, #8
   23862:	d81a      	bhi.n	2389a <bt_conn_set_state+0x66>
   23864:	e8df f001 	tbb	[pc, r1]
   23868:	11071b05 	.word	0x11071b05
   2386c:	15130d0f 	.word	0x15130d0f
   23870:	17          	.byte	0x17
   23871:	00          	.byte	0x00
	if (conn->state == state) {
   23872:	4a4b      	ldr	r2, [pc, #300]	; (239a0 <bt_conn_set_state+0x16c>)
   23874:	e000      	b.n	23878 <bt_conn_set_state+0x44>
		return "connect-scan";
   23876:	4a4b      	ldr	r2, [pc, #300]	; (239a4 <bt_conn_set_state+0x170>)
		BT_WARN("no transition %s", state2str(state));
   23878:	2157      	movs	r1, #87	; 0x57
   2387a:	484b      	ldr	r0, [pc, #300]	; (239a8 <bt_conn_set_state+0x174>)
   2387c:	f010 f936 	bl	33aec <z_log_minimal_printk>
		return;
   23880:	e087      	b.n	23992 <bt_conn_set_state+0x15e>
		return "connect-dir-adv";
   23882:	4a4a      	ldr	r2, [pc, #296]	; (239ac <bt_conn_set_state+0x178>)
   23884:	e7f8      	b.n	23878 <bt_conn_set_state+0x44>
		return "connect-adv";
   23886:	4a4a      	ldr	r2, [pc, #296]	; (239b0 <bt_conn_set_state+0x17c>)
   23888:	e7f6      	b.n	23878 <bt_conn_set_state+0x44>
		return "connect-auto";
   2388a:	4a4a      	ldr	r2, [pc, #296]	; (239b4 <bt_conn_set_state+0x180>)
   2388c:	e7f4      	b.n	23878 <bt_conn_set_state+0x44>
		return "connect";
   2388e:	4a4a      	ldr	r2, [pc, #296]	; (239b8 <bt_conn_set_state+0x184>)
   23890:	e7f2      	b.n	23878 <bt_conn_set_state+0x44>
		return "connected";
   23892:	4a4a      	ldr	r2, [pc, #296]	; (239bc <bt_conn_set_state+0x188>)
   23894:	e7f0      	b.n	23878 <bt_conn_set_state+0x44>
		return "disconnect";
   23896:	4a4a      	ldr	r2, [pc, #296]	; (239c0 <bt_conn_set_state+0x18c>)
   23898:	e7ee      	b.n	23878 <bt_conn_set_state+0x44>
		return "(unknown)";
   2389a:	4a4a      	ldr	r2, [pc, #296]	; (239c4 <bt_conn_set_state+0x190>)
   2389c:	e7ec      	b.n	23878 <bt_conn_set_state+0x44>
		return "disconnect-complete";
   2389e:	4a4a      	ldr	r2, [pc, #296]	; (239c8 <bt_conn_set_state+0x194>)
   238a0:	e7ea      	b.n	23878 <bt_conn_set_state+0x44>
			bt_conn_ref(conn);
   238a2:	f012 ff93 	bl	367cc <bt_conn_ref>
   238a6:	e7d0      	b.n	2384a <bt_conn_set_state+0x16>
		if (conn->type == BT_CONN_TYPE_SCO) {
   238a8:	78a3      	ldrb	r3, [r4, #2]
   238aa:	2b04      	cmp	r3, #4
   238ac:	d071      	beq.n	23992 <bt_conn_set_state+0x15e>
		k_fifo_init(&conn->tx_queue);
   238ae:	f104 0038 	add.w	r0, r4, #56	; 0x38
	z_impl_k_queue_init(queue);
   238b2:	f017 fc8f 	bl	3b1d4 <z_impl_k_queue_init>
	return z_impl_k_poll_signal_raise(sig, result);
   238b6:	2100      	movs	r1, #0
   238b8:	4844      	ldr	r0, [pc, #272]	; (239cc <bt_conn_set_state+0x198>)
   238ba:	f00f fc2f 	bl	3311c <z_impl_k_poll_signal_raise>
	list->head = NULL;
   238be:	2300      	movs	r3, #0
   238c0:	6563      	str	r3, [r4, #84]	; 0x54
	list->tail = NULL;
   238c2:	65a3      	str	r3, [r4, #88]	; 0x58
		    conn->role == BT_CONN_ROLE_PERIPHERAL) {
   238c4:	78e3      	ldrb	r3, [r4, #3]
		if (IS_ENABLED(CONFIG_BT_PERIPHERAL) &&
   238c6:	2b01      	cmp	r3, #1
   238c8:	d163      	bne.n	23992 <bt_conn_set_state+0x15e>
			k_work_schedule(&conn->deferred_work,
   238ca:	f44f 3220 	mov.w	r2, #163840	; 0x28000
   238ce:	2300      	movs	r3, #0
   238d0:	f104 0060 	add.w	r0, r4, #96	; 0x60
   238d4:	f00c ffdc 	bl	30890 <k_work_schedule>
   238d8:	e05b      	b.n	23992 <bt_conn_set_state+0x15e>
		if (conn->type == BT_CONN_TYPE_SCO) {
   238da:	78a3      	ldrb	r3, [r4, #2]
   238dc:	2b04      	cmp	r3, #4
   238de:	d008      	beq.n	238f2 <bt_conn_set_state+0xbe>
		switch (old_state) {
   238e0:	2e08      	cmp	r6, #8
   238e2:	d856      	bhi.n	23992 <bt_conn_set_state+0x15e>
   238e4:	e8df f006 	tbb	[pc, r6]
   238e8:	4430094c 	.word	0x4430094c
   238ec:	4c263a48 	.word	0x4c263a48
   238f0:	4c          	.byte	0x4c
   238f1:	00          	.byte	0x00
			bt_conn_unref(conn);
   238f2:	4620      	mov	r0, r4
   238f4:	f7ff ff62 	bl	237bc <bt_conn_unref>
			break;
   238f8:	e04b      	b.n	23992 <bt_conn_set_state+0x15e>
			tx_notify(conn);
   238fa:	4620      	mov	r0, r4
   238fc:	f012 fe8b 	bl	36616 <tx_notify>
			if (conn->type == BT_CONN_TYPE_LE) {
   23900:	78a3      	ldrb	r3, [r4, #2]
   23902:	2b01      	cmp	r3, #1
   23904:	d011      	beq.n	2392a <bt_conn_set_state+0xf6>
			atomic_set_bit(conn->flags, BT_CONN_CLEANUP);
   23906:	3404      	adds	r4, #4
	return __atomic_fetch_or(target, value, __ATOMIC_SEQ_CST);
   23908:	f3bf 8f5b 	dmb	ish
   2390c:	e854 3f00 	ldrex	r3, [r4]
   23910:	f043 0340 	orr.w	r3, r3, #64	; 0x40
   23914:	e844 3200 	strex	r2, r3, [r4]
   23918:	2a00      	cmp	r2, #0
   2391a:	d1f7      	bne.n	2390c <bt_conn_set_state+0xd8>
   2391c:	f3bf 8f5b 	dmb	ish
   23920:	2100      	movs	r1, #0
   23922:	482a      	ldr	r0, [pc, #168]	; (239cc <bt_conn_set_state+0x198>)
   23924:	f00f fbfa 	bl	3311c <z_impl_k_poll_signal_raise>
   23928:	e033      	b.n	23992 <bt_conn_set_state+0x15e>
				k_work_cancel_delayable(&conn->deferred_work);
   2392a:	f104 0060 	add.w	r0, r4, #96	; 0x60
   2392e:	f00d f821 	bl	30974 <k_work_cancel_delayable>
   23932:	e7e8      	b.n	23906 <bt_conn_set_state+0xd2>
			if (conn->err) {
   23934:	7b23      	ldrb	r3, [r4, #12]
   23936:	b91b      	cbnz	r3, 23940 <bt_conn_set_state+0x10c>
			bt_conn_unref(conn);
   23938:	4620      	mov	r0, r4
   2393a:	f7ff ff3f 	bl	237bc <bt_conn_unref>
			break;
   2393e:	e028      	b.n	23992 <bt_conn_set_state+0x15e>
				notify_connected(conn);
   23940:	4620      	mov	r0, r4
   23942:	f7ff fd17 	bl	23374 <notify_connected>
   23946:	e7f7      	b.n	23938 <bt_conn_set_state+0x104>
			if (conn->err) {
   23948:	7b23      	ldrb	r3, [r4, #12]
   2394a:	b91b      	cbnz	r3, 23954 <bt_conn_set_state+0x120>
			bt_conn_unref(conn);
   2394c:	4620      	mov	r0, r4
   2394e:	f7ff ff35 	bl	237bc <bt_conn_unref>
			break;
   23952:	e01e      	b.n	23992 <bt_conn_set_state+0x15e>
				notify_connected(conn);
   23954:	4620      	mov	r0, r4
   23956:	f7ff fd0d 	bl	23374 <notify_connected>
   2395a:	e7f7      	b.n	2394c <bt_conn_set_state+0x118>
			if (conn->err) {
   2395c:	7b23      	ldrb	r3, [r4, #12]
   2395e:	b91b      	cbnz	r3, 23968 <bt_conn_set_state+0x134>
			bt_conn_unref(conn);
   23960:	4620      	mov	r0, r4
   23962:	f7ff ff2b 	bl	237bc <bt_conn_unref>
			break;
   23966:	e014      	b.n	23992 <bt_conn_set_state+0x15e>
				notify_connected(conn);
   23968:	4620      	mov	r0, r4
   2396a:	f7ff fd03 	bl	23374 <notify_connected>
   2396e:	e7f7      	b.n	23960 <bt_conn_set_state+0x12c>
			bt_conn_unref(conn);
   23970:	4620      	mov	r0, r4
   23972:	f7ff ff23 	bl	237bc <bt_conn_unref>
			break;
   23976:	e00c      	b.n	23992 <bt_conn_set_state+0x15e>
			bt_conn_unref(conn);
   23978:	4620      	mov	r0, r4
   2397a:	f7ff ff1f 	bl	237bc <bt_conn_unref>
			break;
   2397e:	e008      	b.n	23992 <bt_conn_set_state+0x15e>
			BT_WARN("Invalid (%u) old state", state);
   23980:	462a      	mov	r2, r5
   23982:	2157      	movs	r1, #87	; 0x57
   23984:	4812      	ldr	r0, [pc, #72]	; (239d0 <bt_conn_set_state+0x19c>)
   23986:	f010 f8b1 	bl	33aec <z_log_minimal_printk>
   2398a:	e002      	b.n	23992 <bt_conn_set_state+0x15e>
		process_unack_tx(conn);
   2398c:	4620      	mov	r0, r4
   2398e:	f012 fe92 	bl	366b6 <process_unack_tx>
}
   23992:	bd70      	pop	{r4, r5, r6, pc}
		BT_WARN("no valid (%u) state was set", state);
   23994:	462a      	mov	r2, r5
   23996:	2157      	movs	r1, #87	; 0x57
   23998:	480e      	ldr	r0, [pc, #56]	; (239d4 <bt_conn_set_state+0x1a0>)
   2399a:	f010 f8a7 	bl	33aec <z_log_minimal_printk>
   2399e:	e7f8      	b.n	23992 <bt_conn_set_state+0x15e>
   239a0:	0003da14 	.word	0x0003da14
   239a4:	0003d9b8 	.word	0x0003d9b8
   239a8:	0003da24 	.word	0x0003da24
   239ac:	0003d9c8 	.word	0x0003d9c8
   239b0:	0003d9d8 	.word	0x0003d9d8
   239b4:	0003d9e4 	.word	0x0003d9e4
   239b8:	0003d9f4 	.word	0x0003d9f4
   239bc:	0003d9fc 	.word	0x0003d9fc
   239c0:	0003da08 	.word	0x0003da08
   239c4:	0003d998 	.word	0x0003d998
   239c8:	0003d9a4 	.word	0x0003d9a4
   239cc:	20000588 	.word	0x20000588
   239d0:	0003da3c 	.word	0x0003da3c
   239d4:	0003da58 	.word	0x0003da58

000239d8 <bt_conn_index>:
{
   239d8:	b538      	push	{r3, r4, r5, lr}
		index = conn - acl_conns;
   239da:	4a0b      	ldr	r2, [pc, #44]	; (23a08 <bt_conn_index+0x30>)
   239dc:	1a84      	subs	r4, r0, r2
   239de:	10e3      	asrs	r3, r4, #3
   239e0:	4c0a      	ldr	r4, [pc, #40]	; (23a0c <bt_conn_index+0x34>)
   239e2:	fb04 f403 	mul.w	r4, r4, r3
		__ASSERT(index >= 0 && index < ARRAY_SIZE(acl_conns),
   239e6:	4290      	cmp	r0, r2
   239e8:	d00b      	beq.n	23a02 <bt_conn_index+0x2a>
   239ea:	4d09      	ldr	r5, [pc, #36]	; (23a10 <bt_conn_index+0x38>)
   239ec:	f240 4264 	movw	r2, #1124	; 0x464
   239f0:	4629      	mov	r1, r5
   239f2:	4808      	ldr	r0, [pc, #32]	; (23a14 <bt_conn_index+0x3c>)
   239f4:	f00f fcd9 	bl	333aa <printk>
   239f8:	f240 4164 	movw	r1, #1124	; 0x464
   239fc:	4628      	mov	r0, r5
   239fe:	f010 f86d 	bl	33adc <assert_post_action>
}
   23a02:	b2e0      	uxtb	r0, r4
   23a04:	bd38      	pop	{r3, r4, r5, pc}
   23a06:	bf00      	nop
   23a08:	20001848 	.word	0x20001848
   23a0c:	c28f5c29 	.word	0xc28f5c29
   23a10:	0003d84c 	.word	0x0003d84c
   23a14:	0003bdac 	.word	0x0003bdac

00023a18 <bt_conn_create_pdu_timeout>:
{
   23a18:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   23a1c:	4604      	mov	r4, r0
   23a1e:	460f      	mov	r7, r1
   23a20:	4616      	mov	r6, r2
   23a22:	461d      	mov	r5, r3
	__ASSERT_NO_MSG(!k_is_in_isr());
   23a24:	f017 fb85 	bl	3b132 <k_is_in_isr>
   23a28:	b970      	cbnz	r0, 23a48 <bt_conn_create_pdu_timeout+0x30>
	if (!pool) {
   23a2a:	b1dc      	cbz	r4, 23a64 <bt_conn_create_pdu_timeout+0x4c>
	return net_buf_alloc_fixed(pool, timeout);
   23a2c:	4632      	mov	r2, r6
   23a2e:	462b      	mov	r3, r5
   23a30:	4620      	mov	r0, r4
   23a32:	f015 fb6b 	bl	3910c <net_buf_alloc_fixed>
	if (!buf) {
   23a36:	4604      	mov	r4, r0
   23a38:	b1b0      	cbz	r0, 23a68 <bt_conn_create_pdu_timeout+0x50>
	net_buf_simple_reserve(&buf->b, reserve);
   23a3a:	1d39      	adds	r1, r7, #4
   23a3c:	3008      	adds	r0, #8
   23a3e:	f005 fe35 	bl	296ac <net_buf_simple_reserve>
}
   23a42:	4620      	mov	r0, r4
   23a44:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
	__ASSERT_NO_MSG(!k_is_in_isr());
   23a48:	f8df 8034 	ldr.w	r8, [pc, #52]	; 23a80 <bt_conn_create_pdu_timeout+0x68>
   23a4c:	f44f 6290 	mov.w	r2, #1152	; 0x480
   23a50:	4641      	mov	r1, r8
   23a52:	4808      	ldr	r0, [pc, #32]	; (23a74 <bt_conn_create_pdu_timeout+0x5c>)
   23a54:	f00f fca9 	bl	333aa <printk>
   23a58:	f44f 6190 	mov.w	r1, #1152	; 0x480
   23a5c:	4640      	mov	r0, r8
   23a5e:	f010 f83d 	bl	33adc <assert_post_action>
   23a62:	e7e2      	b.n	23a2a <bt_conn_create_pdu_timeout+0x12>
		pool = &acl_tx_pool;
   23a64:	4c04      	ldr	r4, [pc, #16]	; (23a78 <bt_conn_create_pdu_timeout+0x60>)
   23a66:	e7e1      	b.n	23a2c <bt_conn_create_pdu_timeout+0x14>
		BT_WARN("Unable to allocate buffer within timeout");
   23a68:	2157      	movs	r1, #87	; 0x57
   23a6a:	4804      	ldr	r0, [pc, #16]	; (23a7c <bt_conn_create_pdu_timeout+0x64>)
   23a6c:	f010 f83e 	bl	33aec <z_log_minimal_printk>
		return NULL;
   23a70:	e7e7      	b.n	23a42 <bt_conn_create_pdu_timeout+0x2a>
   23a72:	bf00      	nop
   23a74:	0003bdac 	.word	0x0003bdac
   23a78:	200008dc 	.word	0x200008dc
   23a7c:	0003da7c 	.word	0x0003da7c
   23a80:	0003d84c 	.word	0x0003d84c

00023a84 <notify_le_param_updated>:
{
   23a84:	b570      	push	{r4, r5, r6, lr}
   23a86:	4604      	mov	r4, r0
	return __atomic_load_n(target, __ATOMIC_SEQ_CST);
   23a88:	f3bf 8f5b 	dmb	ish
   23a8c:	6843      	ldr	r3, [r0, #4]
   23a8e:	f3bf 8f5b 	dmb	ish
	if (atomic_test_bit(conn->flags, BT_CONN_PERIPHERAL_PARAM_SET) &&
   23a92:	f413 7f00 	tst.w	r3, #512	; 0x200
   23a96:	d010      	beq.n	23aba <notify_le_param_updated+0x36>
   23a98:	1d02      	adds	r2, r0, #4
	    conn->le.interval >= conn->le.interval_min &&
   23a9a:	f8b0 30a6 	ldrh.w	r3, [r0, #166]	; 0xa6
   23a9e:	f8b0 10a8 	ldrh.w	r1, [r0, #168]	; 0xa8
	if (atomic_test_bit(conn->flags, BT_CONN_PERIPHERAL_PARAM_SET) &&
   23aa2:	428b      	cmp	r3, r1
   23aa4:	d309      	bcc.n	23aba <notify_le_param_updated+0x36>
	    conn->le.interval <= conn->le.interval_max &&
   23aa6:	f8b0 10aa 	ldrh.w	r1, [r0, #170]	; 0xaa
	    conn->le.interval >= conn->le.interval_min &&
   23aaa:	428b      	cmp	r3, r1
   23aac:	d805      	bhi.n	23aba <notify_le_param_updated+0x36>
	    conn->le.latency == conn->le.pending_latency &&
   23aae:	f8d0 10ac 	ldr.w	r1, [r0, #172]	; 0xac
   23ab2:	f8d0 30b0 	ldr.w	r3, [r0, #176]	; 0xb0
   23ab6:	4299      	cmp	r1, r3
   23ab8:	d002      	beq.n	23ac0 <notify_le_param_updated+0x3c>
	for (cb = callback_list; cb; cb = cb->_next) {
   23aba:	4b20      	ldr	r3, [pc, #128]	; (23b3c <notify_le_param_updated+0xb8>)
   23abc:	681d      	ldr	r5, [r3, #0]
   23abe:	e00d      	b.n	23adc <notify_le_param_updated+0x58>
	return __atomic_fetch_and(target, value, __ATOMIC_SEQ_CST);
   23ac0:	f3bf 8f5b 	dmb	ish
   23ac4:	e852 3f00 	ldrex	r3, [r2]
   23ac8:	f423 7300 	bic.w	r3, r3, #512	; 0x200
   23acc:	e842 3100 	strex	r1, r3, [r2]
   23ad0:	2900      	cmp	r1, #0
   23ad2:	d1f7      	bne.n	23ac4 <notify_le_param_updated+0x40>
   23ad4:	f3bf 8f5b 	dmb	ish
}
   23ad8:	e7ef      	b.n	23aba <notify_le_param_updated+0x36>
   23ada:	69ad      	ldr	r5, [r5, #24]
   23adc:	b15d      	cbz	r5, 23af6 <notify_le_param_updated+0x72>
		if (cb->le_param_updated) {
   23ade:	68ee      	ldr	r6, [r5, #12]
   23ae0:	2e00      	cmp	r6, #0
   23ae2:	d0fa      	beq.n	23ada <notify_le_param_updated+0x56>
			cb->le_param_updated(conn, conn->le.interval,
   23ae4:	f8b4 30ae 	ldrh.w	r3, [r4, #174]	; 0xae
   23ae8:	f8b4 20ac 	ldrh.w	r2, [r4, #172]	; 0xac
   23aec:	f8b4 10a6 	ldrh.w	r1, [r4, #166]	; 0xa6
   23af0:	4620      	mov	r0, r4
   23af2:	47b0      	blx	r6
   23af4:	e7f1      	b.n	23ada <notify_le_param_updated+0x56>
	STRUCT_SECTION_FOREACH(bt_conn_cb, cb) {
   23af6:	4d12      	ldr	r5, [pc, #72]	; (23b40 <notify_le_param_updated+0xbc>)
   23af8:	e000      	b.n	23afc <notify_le_param_updated+0x78>
   23afa:	351c      	adds	r5, #28
   23afc:	4b11      	ldr	r3, [pc, #68]	; (23b44 <notify_le_param_updated+0xc0>)
   23afe:	429d      	cmp	r5, r3
   23b00:	d80e      	bhi.n	23b20 <notify_le_param_updated+0x9c>
   23b02:	4b10      	ldr	r3, [pc, #64]	; (23b44 <notify_le_param_updated+0xc0>)
   23b04:	429d      	cmp	r5, r3
   23b06:	d218      	bcs.n	23b3a <notify_le_param_updated+0xb6>
		if (cb->le_param_updated) {
   23b08:	68ee      	ldr	r6, [r5, #12]
   23b0a:	2e00      	cmp	r6, #0
   23b0c:	d0f5      	beq.n	23afa <notify_le_param_updated+0x76>
			cb->le_param_updated(conn, conn->le.interval,
   23b0e:	f8b4 30ae 	ldrh.w	r3, [r4, #174]	; 0xae
   23b12:	f8b4 20ac 	ldrh.w	r2, [r4, #172]	; 0xac
   23b16:	f8b4 10a6 	ldrh.w	r1, [r4, #166]	; 0xa6
   23b1a:	4620      	mov	r0, r4
   23b1c:	47b0      	blx	r6
   23b1e:	e7ec      	b.n	23afa <notify_le_param_updated+0x76>
	STRUCT_SECTION_FOREACH(bt_conn_cb, cb) {
   23b20:	4e09      	ldr	r6, [pc, #36]	; (23b48 <notify_le_param_updated+0xc4>)
   23b22:	f240 524b 	movw	r2, #1355	; 0x54b
   23b26:	4631      	mov	r1, r6
   23b28:	4808      	ldr	r0, [pc, #32]	; (23b4c <notify_le_param_updated+0xc8>)
   23b2a:	f00f fc3e 	bl	333aa <printk>
   23b2e:	f240 514b 	movw	r1, #1355	; 0x54b
   23b32:	4630      	mov	r0, r6
   23b34:	f00f ffd2 	bl	33adc <assert_post_action>
   23b38:	e7e3      	b.n	23b02 <notify_le_param_updated+0x7e>
}
   23b3a:	bd70      	pop	{r4, r5, r6, pc}
   23b3c:	200022e8 	.word	0x200022e8
   23b40:	0003b7a8 	.word	0x0003b7a8
   23b44:	0003b7a8 	.word	0x0003b7a8
   23b48:	0003d84c 	.word	0x0003d84c
   23b4c:	0003bdac 	.word	0x0003bdac

00023b50 <le_param_req>:
{
   23b50:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   23b54:	4606      	mov	r6, r0
   23b56:	460d      	mov	r5, r1
	if (!bt_le_conn_params_valid(param)) {
   23b58:	4608      	mov	r0, r1
   23b5a:	f012 f9a9 	bl	35eb0 <bt_le_conn_params_valid>
   23b5e:	4607      	mov	r7, r0
   23b60:	2800      	cmp	r0, #0
   23b62:	d034      	beq.n	23bce <le_param_req+0x7e>
	for (cb = callback_list; cb; cb = cb->_next) {
   23b64:	4b1d      	ldr	r3, [pc, #116]	; (23bdc <le_param_req+0x8c>)
   23b66:	681c      	ldr	r4, [r3, #0]
   23b68:	e000      	b.n	23b6c <le_param_req+0x1c>
   23b6a:	69a4      	ldr	r4, [r4, #24]
   23b6c:	b16c      	cbz	r4, 23b8a <le_param_req+0x3a>
		if (!cb->le_param_req) {
   23b6e:	68a3      	ldr	r3, [r4, #8]
   23b70:	2b00      	cmp	r3, #0
   23b72:	d0fa      	beq.n	23b6a <le_param_req+0x1a>
		if (!cb->le_param_req(conn, param)) {
   23b74:	4629      	mov	r1, r5
   23b76:	4630      	mov	r0, r6
   23b78:	4798      	blx	r3
   23b7a:	b338      	cbz	r0, 23bcc <le_param_req+0x7c>
		if (!bt_le_conn_params_valid(param)) {
   23b7c:	4628      	mov	r0, r5
   23b7e:	f012 f997 	bl	35eb0 <bt_le_conn_params_valid>
   23b82:	2800      	cmp	r0, #0
   23b84:	d1f1      	bne.n	23b6a <le_param_req+0x1a>
			return false;
   23b86:	4607      	mov	r7, r0
   23b88:	e021      	b.n	23bce <le_param_req+0x7e>
	STRUCT_SECTION_FOREACH(bt_conn_cb, cb) {
   23b8a:	4c15      	ldr	r4, [pc, #84]	; (23be0 <le_param_req+0x90>)
   23b8c:	e01a      	b.n	23bc4 <le_param_req+0x74>
   23b8e:	f8df 805c 	ldr.w	r8, [pc, #92]	; 23bec <le_param_req+0x9c>
   23b92:	f240 5293 	movw	r2, #1427	; 0x593
   23b96:	4641      	mov	r1, r8
   23b98:	4812      	ldr	r0, [pc, #72]	; (23be4 <le_param_req+0x94>)
   23b9a:	f00f fc06 	bl	333aa <printk>
   23b9e:	f240 5193 	movw	r1, #1427	; 0x593
   23ba2:	4640      	mov	r0, r8
   23ba4:	f00f ff9a 	bl	33adc <assert_post_action>
   23ba8:	4b0f      	ldr	r3, [pc, #60]	; (23be8 <le_param_req+0x98>)
   23baa:	429c      	cmp	r4, r3
   23bac:	d20f      	bcs.n	23bce <le_param_req+0x7e>
		if (!cb->le_param_req) {
   23bae:	68a3      	ldr	r3, [r4, #8]
   23bb0:	b13b      	cbz	r3, 23bc2 <le_param_req+0x72>
		if (!cb->le_param_req(conn, param)) {
   23bb2:	4629      	mov	r1, r5
   23bb4:	4630      	mov	r0, r6
   23bb6:	4798      	blx	r3
   23bb8:	b160      	cbz	r0, 23bd4 <le_param_req+0x84>
		if (!bt_le_conn_params_valid(param)) {
   23bba:	4628      	mov	r0, r5
   23bbc:	f012 f978 	bl	35eb0 <bt_le_conn_params_valid>
   23bc0:	b150      	cbz	r0, 23bd8 <le_param_req+0x88>
	STRUCT_SECTION_FOREACH(bt_conn_cb, cb) {
   23bc2:	341c      	adds	r4, #28
   23bc4:	4b08      	ldr	r3, [pc, #32]	; (23be8 <le_param_req+0x98>)
   23bc6:	429c      	cmp	r4, r3
   23bc8:	d9ee      	bls.n	23ba8 <le_param_req+0x58>
   23bca:	e7e0      	b.n	23b8e <le_param_req+0x3e>
			return false;
   23bcc:	4607      	mov	r7, r0
}
   23bce:	4638      	mov	r0, r7
   23bd0:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
			return false;
   23bd4:	4607      	mov	r7, r0
   23bd6:	e7fa      	b.n	23bce <le_param_req+0x7e>
			return false;
   23bd8:	4607      	mov	r7, r0
   23bda:	e7f8      	b.n	23bce <le_param_req+0x7e>
   23bdc:	200022e8 	.word	0x200022e8
   23be0:	0003b7a8 	.word	0x0003b7a8
   23be4:	0003bdac 	.word	0x0003bdac
   23be8:	0003b7a8 	.word	0x0003b7a8
   23bec:	0003d84c 	.word	0x0003d84c

00023bf0 <bt_conn_identity_resolved>:

#endif /* CONFIG_BT_BREDR */

#if defined(CONFIG_BT_SMP)
void bt_conn_identity_resolved(struct bt_conn *conn)
{
   23bf0:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
   23bf2:	4605      	mov	r5, r0
	const bt_addr_le_t *rpa;
	struct bt_conn_cb *cb;

	if (conn->role == BT_HCI_ROLE_CENTRAL) {
   23bf4:	78c3      	ldrb	r3, [r0, #3]
   23bf6:	b923      	cbnz	r3, 23c02 <bt_conn_identity_resolved+0x12>
		rpa = &conn->le.resp_addr;
   23bf8:	f100 069e 	add.w	r6, r0, #158	; 0x9e
	} else {
		rpa = &conn->le.init_addr;
	}

	for (cb = callback_list; cb; cb = cb->_next) {
   23bfc:	4b18      	ldr	r3, [pc, #96]	; (23c60 <bt_conn_identity_resolved+0x70>)
   23bfe:	681c      	ldr	r4, [r3, #0]
   23c00:	e003      	b.n	23c0a <bt_conn_identity_resolved+0x1a>
		rpa = &conn->le.init_addr;
   23c02:	f100 0697 	add.w	r6, r0, #151	; 0x97
   23c06:	e7f9      	b.n	23bfc <bt_conn_identity_resolved+0xc>
	for (cb = callback_list; cb; cb = cb->_next) {
   23c08:	69a4      	ldr	r4, [r4, #24]
   23c0a:	b144      	cbz	r4, 23c1e <bt_conn_identity_resolved+0x2e>
		if (cb->identity_resolved) {
   23c0c:	6923      	ldr	r3, [r4, #16]
   23c0e:	2b00      	cmp	r3, #0
   23c10:	d0fa      	beq.n	23c08 <bt_conn_identity_resolved+0x18>
			cb->identity_resolved(conn, rpa, &conn->le.dst);
   23c12:	f105 0290 	add.w	r2, r5, #144	; 0x90
   23c16:	4631      	mov	r1, r6
   23c18:	4628      	mov	r0, r5
   23c1a:	4798      	blx	r3
   23c1c:	e7f4      	b.n	23c08 <bt_conn_identity_resolved+0x18>
		}
	}

	STRUCT_SECTION_FOREACH(bt_conn_cb, cb) {
   23c1e:	4c11      	ldr	r4, [pc, #68]	; (23c64 <bt_conn_identity_resolved+0x74>)
   23c20:	e000      	b.n	23c24 <bt_conn_identity_resolved+0x34>
   23c22:	341c      	adds	r4, #28
   23c24:	4b10      	ldr	r3, [pc, #64]	; (23c68 <bt_conn_identity_resolved+0x78>)
   23c26:	429c      	cmp	r4, r3
   23c28:	d80b      	bhi.n	23c42 <bt_conn_identity_resolved+0x52>
   23c2a:	4b0f      	ldr	r3, [pc, #60]	; (23c68 <bt_conn_identity_resolved+0x78>)
   23c2c:	429c      	cmp	r4, r3
   23c2e:	d215      	bcs.n	23c5c <bt_conn_identity_resolved+0x6c>
		if (cb->identity_resolved) {
   23c30:	6923      	ldr	r3, [r4, #16]
   23c32:	2b00      	cmp	r3, #0
   23c34:	d0f5      	beq.n	23c22 <bt_conn_identity_resolved+0x32>
			cb->identity_resolved(conn, rpa, &conn->le.dst);
   23c36:	f105 0290 	add.w	r2, r5, #144	; 0x90
   23c3a:	4631      	mov	r1, r6
   23c3c:	4628      	mov	r0, r5
   23c3e:	4798      	blx	r3
   23c40:	e7ef      	b.n	23c22 <bt_conn_identity_resolved+0x32>
	STRUCT_SECTION_FOREACH(bt_conn_cb, cb) {
   23c42:	4f0a      	ldr	r7, [pc, #40]	; (23c6c <bt_conn_identity_resolved+0x7c>)
   23c44:	f44f 62eb 	mov.w	r2, #1880	; 0x758
   23c48:	4639      	mov	r1, r7
   23c4a:	4809      	ldr	r0, [pc, #36]	; (23c70 <bt_conn_identity_resolved+0x80>)
   23c4c:	f00f fbad 	bl	333aa <printk>
   23c50:	f44f 61eb 	mov.w	r1, #1880	; 0x758
   23c54:	4638      	mov	r0, r7
   23c56:	f00f ff41 	bl	33adc <assert_post_action>
   23c5a:	e7e6      	b.n	23c2a <bt_conn_identity_resolved+0x3a>
		}
	}
}
   23c5c:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
   23c5e:	bf00      	nop
   23c60:	200022e8 	.word	0x200022e8
   23c64:	0003b7a8 	.word	0x0003b7a8
   23c68:	0003b7a8 	.word	0x0003b7a8
   23c6c:	0003d84c 	.word	0x0003d84c
   23c70:	0003bdac 	.word	0x0003bdac

00023c74 <bt_conn_security_changed>:
	conn->required_sec_level = conn->sec_level;
}

void bt_conn_security_changed(struct bt_conn *conn, uint8_t hci_err,
			      enum bt_security_err err)
{
   23c74:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
   23c76:	4605      	mov	r5, r0
   23c78:	460c      	mov	r4, r1
   23c7a:	4616      	mov	r6, r2
	struct bt_conn_cb *cb;

	reset_pairing(conn);
   23c7c:	f012 fcc8 	bl	36610 <reset_pairing>
	bt_l2cap_security_changed(conn, hci_err);
   23c80:	4621      	mov	r1, r4
   23c82:	4628      	mov	r0, r5
   23c84:	f012 ff44 	bl	36b10 <bt_l2cap_security_changed>

	for (cb = callback_list; cb; cb = cb->_next) {
   23c88:	4b15      	ldr	r3, [pc, #84]	; (23ce0 <bt_conn_security_changed+0x6c>)
   23c8a:	681c      	ldr	r4, [r3, #0]
   23c8c:	e000      	b.n	23c90 <bt_conn_security_changed+0x1c>
   23c8e:	69a4      	ldr	r4, [r4, #24]
   23c90:	b13c      	cbz	r4, 23ca2 <bt_conn_security_changed+0x2e>
		if (cb->security_changed) {
   23c92:	6963      	ldr	r3, [r4, #20]
   23c94:	2b00      	cmp	r3, #0
   23c96:	d0fa      	beq.n	23c8e <bt_conn_security_changed+0x1a>
			cb->security_changed(conn, conn->sec_level, err);
   23c98:	4632      	mov	r2, r6
   23c9a:	7a69      	ldrb	r1, [r5, #9]
   23c9c:	4628      	mov	r0, r5
   23c9e:	4798      	blx	r3
   23ca0:	e7f5      	b.n	23c8e <bt_conn_security_changed+0x1a>
		}
	}

	STRUCT_SECTION_FOREACH(bt_conn_cb, cb) {
   23ca2:	4c10      	ldr	r4, [pc, #64]	; (23ce4 <bt_conn_security_changed+0x70>)
   23ca4:	e000      	b.n	23ca8 <bt_conn_security_changed+0x34>
   23ca6:	341c      	adds	r4, #28
   23ca8:	4b0f      	ldr	r3, [pc, #60]	; (23ce8 <bt_conn_security_changed+0x74>)
   23caa:	429c      	cmp	r4, r3
   23cac:	d80a      	bhi.n	23cc4 <bt_conn_security_changed+0x50>
   23cae:	4b0e      	ldr	r3, [pc, #56]	; (23ce8 <bt_conn_security_changed+0x74>)
   23cb0:	429c      	cmp	r4, r3
   23cb2:	d214      	bcs.n	23cde <bt_conn_security_changed+0x6a>
		if (cb->security_changed) {
   23cb4:	6963      	ldr	r3, [r4, #20]
   23cb6:	2b00      	cmp	r3, #0
   23cb8:	d0f5      	beq.n	23ca6 <bt_conn_security_changed+0x32>
			cb->security_changed(conn, conn->sec_level, err);
   23cba:	4632      	mov	r2, r6
   23cbc:	7a69      	ldrb	r1, [r5, #9]
   23cbe:	4628      	mov	r0, r5
   23cc0:	4798      	blx	r3
   23cc2:	e7f0      	b.n	23ca6 <bt_conn_security_changed+0x32>
	STRUCT_SECTION_FOREACH(bt_conn_cb, cb) {
   23cc4:	4f09      	ldr	r7, [pc, #36]	; (23cec <bt_conn_security_changed+0x78>)
   23cc6:	f240 72c1 	movw	r2, #1985	; 0x7c1
   23cca:	4639      	mov	r1, r7
   23ccc:	4808      	ldr	r0, [pc, #32]	; (23cf0 <bt_conn_security_changed+0x7c>)
   23cce:	f00f fb6c 	bl	333aa <printk>
   23cd2:	f240 71c1 	movw	r1, #1985	; 0x7c1
   23cd6:	4638      	mov	r0, r7
   23cd8:	f00f ff00 	bl	33adc <assert_post_action>
   23cdc:	e7e7      	b.n	23cae <bt_conn_security_changed+0x3a>
		}
#endif /* CONFIG_BT_BREDR */

	}
#endif
}
   23cde:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
   23ce0:	200022e8 	.word	0x200022e8
   23ce4:	0003b7a8 	.word	0x0003b7a8
   23ce8:	0003b7a8 	.word	0x0003b7a8
   23cec:	0003d84c 	.word	0x0003d84c
   23cf0:	0003bdac 	.word	0x0003bdac

00023cf4 <bt_conn_cb_register>:
}
#endif /* CONFIG_BT_SMP */

void bt_conn_cb_register(struct bt_conn_cb *cb)
{
	cb->_next = callback_list;
   23cf4:	4b02      	ldr	r3, [pc, #8]	; (23d00 <bt_conn_cb_register+0xc>)
   23cf6:	681a      	ldr	r2, [r3, #0]
   23cf8:	6182      	str	r2, [r0, #24]
	callback_list = cb;
   23cfa:	6018      	str	r0, [r3, #0]
}
   23cfc:	4770      	bx	lr
   23cfe:	bf00      	nop
   23d00:	200022e8 	.word	0x200022e8

00023d04 <bt_conn_lookup_addr_le>:

	return bt_addr_le_cmp(peer, &conn->le.init_addr) == 0;
}

struct bt_conn *bt_conn_lookup_addr_le(uint8_t id, const bt_addr_le_t *peer)
{
   23d04:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
   23d06:	4607      	mov	r7, r0
   23d08:	460e      	mov	r6, r1
	int i;

	for (i = 0; i < ARRAY_SIZE(acl_conns); i++) {
   23d0a:	2400      	movs	r4, #0
   23d0c:	2c00      	cmp	r4, #0
   23d0e:	dd02      	ble.n	23d16 <bt_conn_lookup_addr_le+0x12>
		}

		return conn;
	}

	return NULL;
   23d10:	2500      	movs	r5, #0
}
   23d12:	4628      	mov	r0, r5
   23d14:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
		struct bt_conn *conn = bt_conn_ref(&acl_conns[i]);
   23d16:	4b0c      	ldr	r3, [pc, #48]	; (23d48 <bt_conn_lookup_addr_le+0x44>)
   23d18:	20c8      	movs	r0, #200	; 0xc8
   23d1a:	fb00 3004 	mla	r0, r0, r4, r3
   23d1e:	f012 fd55 	bl	367cc <bt_conn_ref>
		if (!conn) {
   23d22:	4605      	mov	r5, r0
   23d24:	b170      	cbz	r0, 23d44 <bt_conn_lookup_addr_le+0x40>
		if (conn->type != BT_CONN_TYPE_LE) {
   23d26:	7883      	ldrb	r3, [r0, #2]
   23d28:	2b01      	cmp	r3, #1
   23d2a:	d109      	bne.n	23d40 <bt_conn_lookup_addr_le+0x3c>
		if (!bt_conn_is_peer_addr_le(conn, id, peer)) {
   23d2c:	4632      	mov	r2, r6
   23d2e:	4639      	mov	r1, r7
   23d30:	f012 fe23 	bl	3697a <bt_conn_is_peer_addr_le>
   23d34:	2800      	cmp	r0, #0
   23d36:	d1ec      	bne.n	23d12 <bt_conn_lookup_addr_le+0xe>
			bt_conn_unref(conn);
   23d38:	4628      	mov	r0, r5
   23d3a:	f7ff fd3f 	bl	237bc <bt_conn_unref>
			continue;
   23d3e:	e001      	b.n	23d44 <bt_conn_lookup_addr_le+0x40>
			bt_conn_unref(conn);
   23d40:	f7ff fd3c 	bl	237bc <bt_conn_unref>
	for (i = 0; i < ARRAY_SIZE(acl_conns); i++) {
   23d44:	3401      	adds	r4, #1
   23d46:	e7e1      	b.n	23d0c <bt_conn_lookup_addr_le+0x8>
   23d48:	20001848 	.word	0x20001848

00023d4c <bt_conn_exists_le>:
{
   23d4c:	b510      	push	{r4, lr}
	struct bt_conn *conn = bt_conn_lookup_addr_le(id, peer);
   23d4e:	f7ff ffd9 	bl	23d04 <bt_conn_lookup_addr_le>
	if (conn) {
   23d52:	b908      	cbnz	r0, 23d58 <bt_conn_exists_le+0xc>
	return false;
   23d54:	2000      	movs	r0, #0
}
   23d56:	bd10      	pop	{r4, pc}
   23d58:	4604      	mov	r4, r0
		BT_WARN("Found valid connection in %s state",
   23d5a:	7b43      	ldrb	r3, [r0, #13]
	switch (state) {
   23d5c:	2b08      	cmp	r3, #8
   23d5e:	d81e      	bhi.n	23d9e <bt_conn_exists_le+0x52>
   23d60:	e8df f003 	tbb	[pc, r3]
   23d64:	150f1f05 	.word	0x150f1f05
   23d68:	19171113 	.word	0x19171113
   23d6c:	1b          	.byte	0x1b
   23d6d:	00          	.byte	0x00
		BT_WARN("Found valid connection in %s state",
   23d6e:	4a0e      	ldr	r2, [pc, #56]	; (23da8 <bt_conn_exists_le+0x5c>)
   23d70:	2157      	movs	r1, #87	; 0x57
   23d72:	480e      	ldr	r0, [pc, #56]	; (23dac <bt_conn_exists_le+0x60>)
   23d74:	f00f feba 	bl	33aec <z_log_minimal_printk>
		bt_conn_unref(conn);
   23d78:	4620      	mov	r0, r4
   23d7a:	f7ff fd1f 	bl	237bc <bt_conn_unref>
		return true;
   23d7e:	2001      	movs	r0, #1
   23d80:	e7e9      	b.n	23d56 <bt_conn_exists_le+0xa>
		return "connect-scan";
   23d82:	4a0b      	ldr	r2, [pc, #44]	; (23db0 <bt_conn_exists_le+0x64>)
   23d84:	e7f4      	b.n	23d70 <bt_conn_exists_le+0x24>
		return "connect-dir-adv";
   23d86:	4a0b      	ldr	r2, [pc, #44]	; (23db4 <bt_conn_exists_le+0x68>)
   23d88:	e7f2      	b.n	23d70 <bt_conn_exists_le+0x24>
		return "connect-adv";
   23d8a:	4a0b      	ldr	r2, [pc, #44]	; (23db8 <bt_conn_exists_le+0x6c>)
   23d8c:	e7f0      	b.n	23d70 <bt_conn_exists_le+0x24>
		return "connect-auto";
   23d8e:	4a0b      	ldr	r2, [pc, #44]	; (23dbc <bt_conn_exists_le+0x70>)
   23d90:	e7ee      	b.n	23d70 <bt_conn_exists_le+0x24>
		return "connect";
   23d92:	4a0b      	ldr	r2, [pc, #44]	; (23dc0 <bt_conn_exists_le+0x74>)
   23d94:	e7ec      	b.n	23d70 <bt_conn_exists_le+0x24>
		return "connected";
   23d96:	4a0b      	ldr	r2, [pc, #44]	; (23dc4 <bt_conn_exists_le+0x78>)
   23d98:	e7ea      	b.n	23d70 <bt_conn_exists_le+0x24>
		return "disconnect";
   23d9a:	4a0b      	ldr	r2, [pc, #44]	; (23dc8 <bt_conn_exists_le+0x7c>)
   23d9c:	e7e8      	b.n	23d70 <bt_conn_exists_le+0x24>
		return "(unknown)";
   23d9e:	4a0b      	ldr	r2, [pc, #44]	; (23dcc <bt_conn_exists_le+0x80>)
   23da0:	e7e6      	b.n	23d70 <bt_conn_exists_le+0x24>
		return "disconnect-complete";
   23da2:	4a0b      	ldr	r2, [pc, #44]	; (23dd0 <bt_conn_exists_le+0x84>)
   23da4:	e7e4      	b.n	23d70 <bt_conn_exists_le+0x24>
   23da6:	bf00      	nop
   23da8:	0003da14 	.word	0x0003da14
   23dac:	0003daac 	.word	0x0003daac
   23db0:	0003d9b8 	.word	0x0003d9b8
   23db4:	0003d9c8 	.word	0x0003d9c8
   23db8:	0003d9d8 	.word	0x0003d9d8
   23dbc:	0003d9e4 	.word	0x0003d9e4
   23dc0:	0003d9f4 	.word	0x0003d9f4
   23dc4:	0003d9fc 	.word	0x0003d9fc
   23dc8:	0003da08 	.word	0x0003da08
   23dcc:	0003d998 	.word	0x0003d998
   23dd0:	0003d9a4 	.word	0x0003d9a4

00023dd4 <bt_conn_lookup_state_le>:

struct bt_conn *bt_conn_lookup_state_le(uint8_t id, const bt_addr_le_t *peer,
					const bt_conn_state_t state)
{
   23dd4:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   23dd8:	4680      	mov	r8, r0
   23dda:	460f      	mov	r7, r1
   23ddc:	4616      	mov	r6, r2
	int i;

	for (i = 0; i < ARRAY_SIZE(acl_conns); i++) {
   23dde:	2400      	movs	r4, #0
   23de0:	2c00      	cmp	r4, #0
   23de2:	dd03      	ble.n	23dec <bt_conn_lookup_state_le+0x18>
		}

		return conn;
	}

	return NULL;
   23de4:	2500      	movs	r5, #0
}
   23de6:	4628      	mov	r0, r5
   23de8:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
		struct bt_conn *conn = bt_conn_ref(&acl_conns[i]);
   23dec:	4b11      	ldr	r3, [pc, #68]	; (23e34 <bt_conn_lookup_state_le+0x60>)
   23dee:	20c8      	movs	r0, #200	; 0xc8
   23df0:	fb00 3004 	mla	r0, r0, r4, r3
   23df4:	f012 fcea 	bl	367cc <bt_conn_ref>
		if (!conn) {
   23df8:	4605      	mov	r5, r0
   23dfa:	b188      	cbz	r0, 23e20 <bt_conn_lookup_state_le+0x4c>
		if (conn->type != BT_CONN_TYPE_LE) {
   23dfc:	7883      	ldrb	r3, [r0, #2]
   23dfe:	2b01      	cmp	r3, #1
   23e00:	d110      	bne.n	23e24 <bt_conn_lookup_state_le+0x50>
		if (peer && !bt_conn_is_peer_addr_le(conn, id, peer)) {
   23e02:	b127      	cbz	r7, 23e0e <bt_conn_lookup_state_le+0x3a>
   23e04:	463a      	mov	r2, r7
   23e06:	4641      	mov	r1, r8
   23e08:	f012 fdb7 	bl	3697a <bt_conn_is_peer_addr_le>
   23e0c:	b168      	cbz	r0, 23e2a <bt_conn_lookup_state_le+0x56>
		if (!(conn->state == state && conn->id == id)) {
   23e0e:	7b6b      	ldrb	r3, [r5, #13]
   23e10:	42b3      	cmp	r3, r6
   23e12:	d102      	bne.n	23e1a <bt_conn_lookup_state_le+0x46>
   23e14:	7a2b      	ldrb	r3, [r5, #8]
   23e16:	4543      	cmp	r3, r8
   23e18:	d0e5      	beq.n	23de6 <bt_conn_lookup_state_le+0x12>
			bt_conn_unref(conn);
   23e1a:	4628      	mov	r0, r5
   23e1c:	f7ff fcce 	bl	237bc <bt_conn_unref>
	for (i = 0; i < ARRAY_SIZE(acl_conns); i++) {
   23e20:	3401      	adds	r4, #1
   23e22:	e7dd      	b.n	23de0 <bt_conn_lookup_state_le+0xc>
			bt_conn_unref(conn);
   23e24:	f7ff fcca 	bl	237bc <bt_conn_unref>
			continue;
   23e28:	e7fa      	b.n	23e20 <bt_conn_lookup_state_le+0x4c>
			bt_conn_unref(conn);
   23e2a:	4628      	mov	r0, r5
   23e2c:	f7ff fcc6 	bl	237bc <bt_conn_unref>
			continue;
   23e30:	e7f6      	b.n	23e20 <bt_conn_lookup_state_le+0x4c>
   23e32:	bf00      	nop
   23e34:	20001848 	.word	0x20001848

00023e38 <send_conn_le_param_update>:
{
   23e38:	b538      	push	{r3, r4, r5, lr}
   23e3a:	4604      	mov	r4, r0
   23e3c:	460d      	mov	r5, r1
	if (!bt_le_conn_params_valid(param)) {
   23e3e:	4608      	mov	r0, r1
   23e40:	f012 f836 	bl	35eb0 <bt_le_conn_params_valid>
   23e44:	b360      	cbz	r0, 23ea0 <send_conn_le_param_update+0x68>
	if ((BT_FEAT_LE_CONN_PARAM_REQ_PROC(bt_dev.le.features) &&
   23e46:	4b18      	ldr	r3, [pc, #96]	; (23ea8 <send_conn_le_param_update+0x70>)
   23e48:	f893 30d0 	ldrb.w	r3, [r3, #208]	; 0xd0
   23e4c:	f013 0f02 	tst.w	r3, #2
   23e50:	d004      	beq.n	23e5c <send_conn_le_param_update+0x24>
	     BT_FEAT_LE_CONN_PARAM_REQ_PROC(conn->le.features) &&
   23e52:	f894 30b4 	ldrb.w	r3, [r4, #180]	; 0xb4
	if ((BT_FEAT_LE_CONN_PARAM_REQ_PROC(bt_dev.le.features) &&
   23e56:	f013 0f02 	tst.w	r3, #2
   23e5a:	d113      	bne.n	23e84 <send_conn_le_param_update+0x4c>
	     (conn->role == BT_HCI_ROLE_CENTRAL)) {
   23e5c:	78e3      	ldrb	r3, [r4, #3]
	     !atomic_test_bit(conn->flags, BT_CONN_PERIPHERAL_PARAM_L2CAP)) ||
   23e5e:	b9d3      	cbnz	r3, 23e96 <send_conn_le_param_update+0x5e>
		rc = bt_conn_le_conn_update(conn, param);
   23e60:	4629      	mov	r1, r5
   23e62:	4620      	mov	r0, r4
   23e64:	f012 fdb2 	bl	369cc <bt_conn_le_conn_update>
		if (rc == 0) {
   23e68:	b9c8      	cbnz	r0, 23e9e <send_conn_le_param_update+0x66>
			conn->le.interval_min = param->interval_min;
   23e6a:	882b      	ldrh	r3, [r5, #0]
   23e6c:	f8a4 30a8 	strh.w	r3, [r4, #168]	; 0xa8
			conn->le.interval_max = param->interval_max;
   23e70:	886b      	ldrh	r3, [r5, #2]
   23e72:	f8a4 30aa 	strh.w	r3, [r4, #170]	; 0xaa
			conn->le.pending_latency = param->latency;
   23e76:	88ab      	ldrh	r3, [r5, #4]
   23e78:	f8a4 30b0 	strh.w	r3, [r4, #176]	; 0xb0
			conn->le.pending_timeout = param->timeout;
   23e7c:	88eb      	ldrh	r3, [r5, #6]
   23e7e:	f8a4 30b2 	strh.w	r3, [r4, #178]	; 0xb2
		return rc;
   23e82:	e00c      	b.n	23e9e <send_conn_le_param_update+0x66>
	return __atomic_load_n(target, __ATOMIC_SEQ_CST);
   23e84:	f3bf 8f5b 	dmb	ish
   23e88:	6863      	ldr	r3, [r4, #4]
   23e8a:	f3bf 8f5b 	dmb	ish
	     BT_FEAT_LE_CONN_PARAM_REQ_PROC(conn->le.features) &&
   23e8e:	f413 6f80 	tst.w	r3, #1024	; 0x400
   23e92:	d1e3      	bne.n	23e5c <send_conn_le_param_update+0x24>
   23e94:	e7e4      	b.n	23e60 <send_conn_le_param_update+0x28>
	return bt_l2cap_update_conn_param(conn, param);
   23e96:	4629      	mov	r1, r5
   23e98:	4620      	mov	r0, r4
   23e9a:	f012 fecb 	bl	36c34 <bt_l2cap_update_conn_param>
}
   23e9e:	bd38      	pop	{r3, r4, r5, pc}
		return -EINVAL;
   23ea0:	f06f 0015 	mvn.w	r0, #21
   23ea4:	e7fb      	b.n	23e9e <send_conn_le_param_update+0x66>
   23ea6:	bf00      	nop
   23ea8:	200002a8 	.word	0x200002a8

00023eac <deferred_work>:
{
   23eac:	b530      	push	{r4, r5, lr}
   23eae:	b085      	sub	sp, #20
	struct bt_conn *conn = CONTAINER_OF(work, struct bt_conn, deferred_work);
   23eb0:	f1a0 0460 	sub.w	r4, r0, #96	; 0x60
	if (conn->state == BT_CONN_DISCONNECTED) {
   23eb4:	f810 3c53 	ldrb.w	r3, [r0, #-83]
   23eb8:	b3b3      	cbz	r3, 23f28 <deferred_work+0x7c>
	if (conn->type != BT_CONN_TYPE_LE) {
   23eba:	f810 3c5e 	ldrb.w	r3, [r0, #-94]
   23ebe:	2b01      	cmp	r3, #1
   23ec0:	d130      	bne.n	23f24 <deferred_work+0x78>
	if (atomic_test_and_clear_bit(conn->flags,
   23ec2:	f1a0 055c 	sub.w	r5, r0, #92	; 0x5c
	return __atomic_fetch_and(target, value, __ATOMIC_SEQ_CST);
   23ec6:	f3bf 8f5b 	dmb	ish
   23eca:	e855 3f00 	ldrex	r3, [r5]
   23ece:	f423 7200 	bic.w	r2, r3, #512	; 0x200
   23ed2:	e845 2100 	strex	r1, r2, [r5]
   23ed6:	2900      	cmp	r1, #0
   23ed8:	d1f7      	bne.n	23eca <deferred_work+0x1e>
   23eda:	f3bf 8f5b 	dmb	ish
   23ede:	f413 7f00 	tst.w	r3, #512	; 0x200
   23ee2:	d02b      	beq.n	23f3c <deferred_work+0x90>
		param = BT_LE_CONN_PARAM(conn->le.interval_min,
   23ee4:	f8b0 3048 	ldrh.w	r3, [r0, #72]	; 0x48
   23ee8:	f8ad 3000 	strh.w	r3, [sp]
   23eec:	f8b0 304a 	ldrh.w	r3, [r0, #74]	; 0x4a
   23ef0:	f8ad 3002 	strh.w	r3, [sp, #2]
   23ef4:	f8b0 3050 	ldrh.w	r3, [r0, #80]	; 0x50
   23ef8:	f8ad 3004 	strh.w	r3, [sp, #4]
   23efc:	f8b0 3052 	ldrh.w	r3, [r0, #82]	; 0x52
   23f00:	f8ad 3006 	strh.w	r3, [sp, #6]
		send_conn_le_param_update(conn, param);
   23f04:	4669      	mov	r1, sp
   23f06:	4620      	mov	r0, r4
   23f08:	f7ff ff96 	bl	23e38 <send_conn_le_param_update>
	return __atomic_fetch_or(target, value, __ATOMIC_SEQ_CST);
   23f0c:	f3bf 8f5b 	dmb	ish
   23f10:	e855 3f00 	ldrex	r3, [r5]
   23f14:	f443 7380 	orr.w	r3, r3, #256	; 0x100
   23f18:	e845 3200 	strex	r2, r3, [r5]
   23f1c:	2a00      	cmp	r2, #0
   23f1e:	d1f7      	bne.n	23f10 <deferred_work+0x64>
   23f20:	f3bf 8f5b 	dmb	ish
}
   23f24:	b005      	add	sp, #20
   23f26:	bd30      	pop	{r4, r5, pc}
		bt_l2cap_disconnected(conn);
   23f28:	4620      	mov	r0, r4
   23f2a:	f012 fdd0 	bl	36ace <bt_l2cap_disconnected>
		notify_disconnected(conn);
   23f2e:	4620      	mov	r0, r4
   23f30:	f7ff f9d2 	bl	232d8 <notify_disconnected>
		bt_conn_unref(conn);
   23f34:	4620      	mov	r0, r4
   23f36:	f7ff fc41 	bl	237bc <bt_conn_unref>
		return;
   23f3a:	e7f3      	b.n	23f24 <deferred_work+0x78>
		param = BT_LE_CONN_PARAM(
   23f3c:	4a05      	ldr	r2, [pc, #20]	; (23f54 <deferred_work+0xa8>)
   23f3e:	ab02      	add	r3, sp, #8
   23f40:	e892 0003 	ldmia.w	r2, {r0, r1}
   23f44:	e883 0003 	stmia.w	r3, {r0, r1}
		send_conn_le_param_update(conn, param);
   23f48:	4619      	mov	r1, r3
   23f4a:	4620      	mov	r0, r4
   23f4c:	f7ff ff74 	bl	23e38 <send_conn_le_param_update>
   23f50:	e7dc      	b.n	23f0c <deferred_work+0x60>
   23f52:	bf00      	nop
   23f54:	0003ba28 	.word	0x0003ba28

00023f58 <bt_conn_create_frag_timeout>:
						  k_timeout_t timeout,
						  const char *func, int line)
#else
struct net_buf *bt_conn_create_frag_timeout(size_t reserve, k_timeout_t timeout)
#endif
{
   23f58:	b508      	push	{r3, lr}
   23f5a:	4601      	mov	r1, r0

#if defined(CONFIG_NET_BUF_LOG)
	return bt_conn_create_pdu_timeout_debug(pool, reserve, timeout,
						func, line);
#else
	return bt_conn_create_pdu_timeout(pool, reserve, timeout);
   23f5c:	4801      	ldr	r0, [pc, #4]	; (23f64 <bt_conn_create_frag_timeout+0xc>)
   23f5e:	f7ff fd5b 	bl	23a18 <bt_conn_create_pdu_timeout>
#endif /* CONFIG_NET_BUF_LOG */
}
   23f62:	bd08      	pop	{r3, pc}
   23f64:	20000934 	.word	0x20000934

00023f68 <create_frag>:
{
   23f68:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
   23f6a:	4606      	mov	r6, r0
   23f6c:	460d      	mov	r5, r1
		frag = bt_conn_create_frag(0);
   23f6e:	f04f 32ff 	mov.w	r2, #4294967295
   23f72:	f04f 33ff 	mov.w	r3, #4294967295
   23f76:	2000      	movs	r0, #0
   23f78:	f7ff ffee 	bl	23f58 <bt_conn_create_frag_timeout>
   23f7c:	4604      	mov	r4, r0
	if (conn->state != BT_CONN_CONNECTED) {
   23f7e:	7b73      	ldrb	r3, [r6, #13]
   23f80:	2b07      	cmp	r3, #7
   23f82:	d11a      	bne.n	23fba <create_frag+0x52>
	tx_data(frag)->tx = NULL;
   23f84:	2300      	movs	r3, #0
   23f86:	6143      	str	r3, [r0, #20]
	return bt_dev.le.acl_mtu;
   23f88:	4b10      	ldr	r3, [pc, #64]	; (23fcc <create_frag+0x64>)
   23f8a:	f8b3 60fc 	ldrh.w	r6, [r3, #252]	; 0xfc
	return net_buf_simple_tailroom(&buf->b);
   23f8e:	f100 0708 	add.w	r7, r0, #8
   23f92:	4638      	mov	r0, r7
   23f94:	f015 f8cd 	bl	39132 <net_buf_simple_tailroom>
	frag_len = MIN(conn_mtu(conn), net_buf_tailroom(frag));
   23f98:	4286      	cmp	r6, r0
   23f9a:	d212      	bcs.n	23fc2 <create_frag+0x5a>
	return bt_dev.le.acl_mtu;
   23f9c:	4b0b      	ldr	r3, [pc, #44]	; (23fcc <create_frag+0x64>)
   23f9e:	f8b3 60fc 	ldrh.w	r6, [r3, #252]	; 0xfc
	return net_buf_simple_add_mem(&buf->b, mem, len);
   23fa2:	4632      	mov	r2, r6
   23fa4:	f855 1f08 	ldr.w	r1, [r5, #8]!
   23fa8:	4638      	mov	r0, r7
   23faa:	f015 f8cb 	bl	39144 <net_buf_simple_add_mem>
	return net_buf_simple_pull(&buf->b, len);
   23fae:	4631      	mov	r1, r6
   23fb0:	4628      	mov	r0, r5
   23fb2:	f005 fc8f 	bl	298d4 <net_buf_simple_pull>
}
   23fb6:	4620      	mov	r0, r4
   23fb8:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
		net_buf_unref(frag);
   23fba:	f005 fbd1 	bl	29760 <net_buf_unref>
		return NULL;
   23fbe:	2400      	movs	r4, #0
   23fc0:	e7f9      	b.n	23fb6 <create_frag+0x4e>
	return net_buf_simple_tailroom(&buf->b);
   23fc2:	4638      	mov	r0, r7
   23fc4:	f015 f8b5 	bl	39132 <net_buf_simple_tailroom>
	frag_len = MIN(conn_mtu(conn), net_buf_tailroom(frag));
   23fc8:	b286      	uxth	r6, r0
   23fca:	e7ea      	b.n	23fa2 <create_frag+0x3a>
   23fcc:	200002a8 	.word	0x200002a8

00023fd0 <send_buf>:
{
   23fd0:	b538      	push	{r3, r4, r5, lr}
   23fd2:	4605      	mov	r5, r0
   23fd4:	460c      	mov	r4, r1
	if (buf->len <= conn_mtu(conn)) {
   23fd6:	898b      	ldrh	r3, [r1, #12]
	return bt_dev.le.acl_mtu;
   23fd8:	4a1b      	ldr	r2, [pc, #108]	; (24048 <send_buf+0x78>)
   23fda:	f8b2 20fc 	ldrh.w	r2, [r2, #252]	; 0xfc
	if (buf->len <= conn_mtu(conn)) {
   23fde:	429a      	cmp	r2, r3
   23fe0:	d21f      	bcs.n	24022 <send_buf+0x52>
	frag = create_frag(conn, buf);
   23fe2:	f7ff ffc1 	bl	23f68 <create_frag>
	if (!frag) {
   23fe6:	4601      	mov	r1, r0
   23fe8:	b350      	cbz	r0, 24040 <send_buf+0x70>
	if (!send_frag(conn, frag, FRAG_START, true)) {
   23fea:	2301      	movs	r3, #1
   23fec:	2200      	movs	r2, #0
   23fee:	4628      	mov	r0, r5
   23ff0:	f7ff fa00 	bl	233f4 <send_frag>
   23ff4:	4603      	mov	r3, r0
   23ff6:	b1c8      	cbz	r0, 2402c <send_buf+0x5c>
	while (buf->len > conn_mtu(conn)) {
   23ff8:	89a3      	ldrh	r3, [r4, #12]
	return bt_dev.le.acl_mtu;
   23ffa:	4a13      	ldr	r2, [pc, #76]	; (24048 <send_buf+0x78>)
   23ffc:	f8b2 20fc 	ldrh.w	r2, [r2, #252]	; 0xfc
	while (buf->len > conn_mtu(conn)) {
   24000:	429a      	cmp	r2, r3
   24002:	d215      	bcs.n	24030 <send_buf+0x60>
		frag = create_frag(conn, buf);
   24004:	4621      	mov	r1, r4
   24006:	4628      	mov	r0, r5
   24008:	f7ff ffae 	bl	23f68 <create_frag>
		if (!frag) {
   2400c:	4601      	mov	r1, r0
   2400e:	b1c8      	cbz	r0, 24044 <send_buf+0x74>
		if (!send_frag(conn, frag, FRAG_CONT, true)) {
   24010:	2301      	movs	r3, #1
   24012:	461a      	mov	r2, r3
   24014:	4628      	mov	r0, r5
   24016:	f7ff f9ed 	bl	233f4 <send_frag>
   2401a:	4603      	mov	r3, r0
   2401c:	2800      	cmp	r0, #0
   2401e:	d1eb      	bne.n	23ff8 <send_buf+0x28>
   24020:	e004      	b.n	2402c <send_buf+0x5c>
		return send_frag(conn, buf, FRAG_SINGLE, false);
   24022:	2300      	movs	r3, #0
   24024:	2202      	movs	r2, #2
   24026:	f7ff f9e5 	bl	233f4 <send_frag>
   2402a:	4603      	mov	r3, r0
}
   2402c:	4618      	mov	r0, r3
   2402e:	bd38      	pop	{r3, r4, r5, pc}
	return send_frag(conn, buf, FRAG_END, false);
   24030:	2300      	movs	r3, #0
   24032:	2203      	movs	r2, #3
   24034:	4621      	mov	r1, r4
   24036:	4628      	mov	r0, r5
   24038:	f7ff f9dc 	bl	233f4 <send_frag>
   2403c:	4603      	mov	r3, r0
   2403e:	e7f5      	b.n	2402c <send_buf+0x5c>
		return false;
   24040:	2300      	movs	r3, #0
   24042:	e7f3      	b.n	2402c <send_buf+0x5c>
			return false;
   24044:	2300      	movs	r3, #0
   24046:	e7f1      	b.n	2402c <send_buf+0x5c>
   24048:	200002a8 	.word	0x200002a8

0002404c <bt_conn_process_tx>:
{
   2404c:	b538      	push	{r3, r4, r5, lr}
   2404e:	4604      	mov	r4, r0
	if (conn->state == BT_CONN_DISCONNECTED &&
   24050:	7b43      	ldrb	r3, [r0, #13]
   24052:	b97b      	cbnz	r3, 24074 <bt_conn_process_tx+0x28>
	    atomic_test_and_clear_bit(conn->flags, BT_CONN_CLEANUP)) {
   24054:	1d03      	adds	r3, r0, #4
	return __atomic_fetch_and(target, value, __ATOMIC_SEQ_CST);
   24056:	f3bf 8f5b 	dmb	ish
   2405a:	e853 2f00 	ldrex	r2, [r3]
   2405e:	f022 0140 	bic.w	r1, r2, #64	; 0x40
   24062:	e843 1000 	strex	r0, r1, [r3]
   24066:	2800      	cmp	r0, #0
   24068:	d1f7      	bne.n	2405a <bt_conn_process_tx+0xe>
   2406a:	f3bf 8f5b 	dmb	ish
	if (conn->state == BT_CONN_DISCONNECTED &&
   2406e:	f012 0f40 	tst.w	r2, #64	; 0x40
   24072:	d10d      	bne.n	24090 <bt_conn_process_tx+0x44>
	buf = net_buf_get(&conn->tx_queue, K_NO_WAIT);
   24074:	2200      	movs	r2, #0
   24076:	2300      	movs	r3, #0
   24078:	f104 0038 	add.w	r0, r4, #56	; 0x38
   2407c:	f005 fae8 	bl	29650 <net_buf_get>
	BT_ASSERT(buf);
   24080:	4605      	mov	r5, r0
   24082:	b148      	cbz	r0, 24098 <bt_conn_process_tx+0x4c>
	if (!send_buf(conn, buf)) {
   24084:	4629      	mov	r1, r5
   24086:	4620      	mov	r0, r4
   24088:	f7ff ffa2 	bl	23fd0 <send_buf>
   2408c:	b188      	cbz	r0, 240b2 <bt_conn_process_tx+0x66>
}
   2408e:	bd38      	pop	{r3, r4, r5, pc}
		conn_cleanup(conn);
   24090:	4620      	mov	r0, r4
   24092:	f7ff faf3 	bl	2367c <conn_cleanup>
		return;
   24096:	e7fa      	b.n	2408e <bt_conn_process_tx+0x42>
	BT_ASSERT(buf);
   24098:	f240 22df 	movw	r2, #735	; 0x2df
   2409c:	4907      	ldr	r1, [pc, #28]	; (240bc <bt_conn_process_tx+0x70>)
   2409e:	4808      	ldr	r0, [pc, #32]	; (240c0 <bt_conn_process_tx+0x74>)
   240a0:	f00f f983 	bl	333aa <printk>
   240a4:	4040      	eors	r0, r0
   240a6:	f380 8811 	msr	BASEPRI, r0
   240aa:	f04f 0003 	mov.w	r0, #3
   240ae:	df02      	svc	2
   240b0:	e7e8      	b.n	24084 <bt_conn_process_tx+0x38>
		net_buf_unref(buf);
   240b2:	4628      	mov	r0, r5
   240b4:	f005 fb54 	bl	29760 <net_buf_unref>
   240b8:	e7e9      	b.n	2408e <bt_conn_process_tx+0x42>
   240ba:	bf00      	nop
   240bc:	0003d84c 	.word	0x0003d84c
   240c0:	0003bdac 	.word	0x0003bdac

000240c4 <bt_conn_auth_cb_register>:

#if defined(CONFIG_BT_SMP) || defined(CONFIG_BT_BREDR)
int bt_conn_auth_cb_register(const struct bt_conn_auth_cb *cb)
{
	if (!cb) {
   240c4:	4603      	mov	r3, r0
   240c6:	b140      	cbz	r0, 240da <bt_conn_auth_cb_register+0x16>
		bt_auth = NULL;
		return 0;
	}

	if (bt_auth) {
   240c8:	4a11      	ldr	r2, [pc, #68]	; (24110 <bt_conn_auth_cb_register+0x4c>)
   240ca:	6812      	ldr	r2, [r2, #0]
   240cc:	b9a2      	cbnz	r2, 240f8 <bt_conn_auth_cb_register+0x34>
	}

	/* The cancel callback must always be provided if the app provides
	 * interactive callbacks.
	 */
	if (!cb->cancel &&
   240ce:	6902      	ldr	r2, [r0, #16]
   240d0:	b132      	cbz	r2, 240e0 <bt_conn_auth_cb_register+0x1c>
#endif
	     cb->pairing_confirm)) {
		return -EINVAL;
	}

	bt_auth = cb;
   240d2:	4a0f      	ldr	r2, [pc, #60]	; (24110 <bt_conn_auth_cb_register+0x4c>)
   240d4:	6013      	str	r3, [r2, #0]
	return 0;
   240d6:	2000      	movs	r0, #0
   240d8:	4770      	bx	lr
		bt_auth = NULL;
   240da:	4b0d      	ldr	r3, [pc, #52]	; (24110 <bt_conn_auth_cb_register+0x4c>)
   240dc:	6018      	str	r0, [r3, #0]
		return 0;
   240de:	4770      	bx	lr
	    (cb->passkey_display || cb->passkey_entry || cb->passkey_confirm ||
   240e0:	6802      	ldr	r2, [r0, #0]
	if (!cb->cancel &&
   240e2:	b962      	cbnz	r2, 240fe <bt_conn_auth_cb_register+0x3a>
	    (cb->passkey_display || cb->passkey_entry || cb->passkey_confirm ||
   240e4:	6842      	ldr	r2, [r0, #4]
   240e6:	b96a      	cbnz	r2, 24104 <bt_conn_auth_cb_register+0x40>
   240e8:	6882      	ldr	r2, [r0, #8]
   240ea:	b972      	cbnz	r2, 2410a <bt_conn_auth_cb_register+0x46>
	     cb->pairing_confirm)) {
   240ec:	6942      	ldr	r2, [r0, #20]
	    (cb->passkey_display || cb->passkey_entry || cb->passkey_confirm ||
   240ee:	2a00      	cmp	r2, #0
   240f0:	d0ef      	beq.n	240d2 <bt_conn_auth_cb_register+0xe>
		return -EINVAL;
   240f2:	f06f 0015 	mvn.w	r0, #21
}
   240f6:	4770      	bx	lr
		return -EALREADY;
   240f8:	f06f 0077 	mvn.w	r0, #119	; 0x77
   240fc:	4770      	bx	lr
		return -EINVAL;
   240fe:	f06f 0015 	mvn.w	r0, #21
   24102:	4770      	bx	lr
   24104:	f06f 0015 	mvn.w	r0, #21
   24108:	4770      	bx	lr
   2410a:	f06f 0015 	mvn.w	r0, #21
   2410e:	4770      	bx	lr
   24110:	200022e4 	.word	0x200022e4

00024114 <bt_conn_init>:

	return bt_conn_ref(&acl_conns[index]);
}

int bt_conn_init(void)
{
   24114:	b510      	push	{r4, lr}
	int err, i;

	for (i = 0; i < ARRAY_SIZE(conn_tx); i++) {
   24116:	2400      	movs	r4, #0
   24118:	e006      	b.n	24128 <bt_conn_init+0x14>
		k_fifo_put(&free_tx, &conn_tx[i]);
   2411a:	490a      	ldr	r1, [pc, #40]	; (24144 <bt_conn_init+0x30>)
   2411c:	eb01 1104 	add.w	r1, r1, r4, lsl #4
   24120:	4809      	ldr	r0, [pc, #36]	; (24148 <bt_conn_init+0x34>)
   24122:	f017 f864 	bl	3b1ee <k_queue_append>
	for (i = 0; i < ARRAY_SIZE(conn_tx); i++) {
   24126:	3401      	adds	r4, #1
   24128:	2c02      	cmp	r4, #2
   2412a:	ddf6      	ble.n	2411a <bt_conn_init+0x6>
	}

	bt_att_init();
   2412c:	f013 fad4 	bl	376d8 <bt_att_init>

	err = bt_smp_init();
   24130:	f004 fed8 	bl	28ee4 <bt_smp_init>
	if (err) {
   24134:	4604      	mov	r4, r0
   24136:	b108      	cbz	r0, 2413c <bt_conn_init+0x28>
			bt_conn_unref(conn);
		}
	}

	return 0;
}
   24138:	4620      	mov	r0, r4
   2413a:	bd10      	pop	{r4, pc}
	bt_l2cap_init();
   2413c:	f012 fda7 	bl	36c8e <bt_l2cap_init>
	return 0;
   24140:	e7fa      	b.n	24138 <bt_conn_init+0x24>
   24142:	bf00      	nop
   24144:	200022ec 	.word	0x200022ec
   24148:	200008c0 	.word	0x200008c0

0002414c <get_ident>:

static uint8_t get_ident(void)
{
	static uint8_t ident;

	ident++;
   2414c:	4a05      	ldr	r2, [pc, #20]	; (24164 <get_ident+0x18>)
   2414e:	7813      	ldrb	r3, [r2, #0]
   24150:	3301      	adds	r3, #1
   24152:	b2db      	uxtb	r3, r3
   24154:	7013      	strb	r3, [r2, #0]
	/* handle integer overflow (0 is not valid) */
	if (!ident) {
   24156:	b90b      	cbnz	r3, 2415c <get_ident+0x10>
		ident++;
   24158:	3301      	adds	r3, #1
   2415a:	7013      	strb	r3, [r2, #0]
	}

	return ident;
}
   2415c:	4b01      	ldr	r3, [pc, #4]	; (24164 <get_ident+0x18>)
   2415e:	7818      	ldrb	r0, [r3, #0]
   24160:	4770      	bx	lr
   24162:	bf00      	nop
   24164:	200034eb 	.word	0x200034eb

00024168 <l2cap_accept>:
	 */
	(void)k_work_cancel_delayable(&chan->rtx_work);
}

static int l2cap_accept(struct bt_conn *conn, struct bt_l2cap_chan **chan)
{
   24168:	b510      	push	{r4, lr}
   2416a:	4602      	mov	r2, r0
		.recv = l2cap_recv,
	};

	BT_DBG("conn %p handle %u", conn, conn->handle);

	for (i = 0; i < ARRAY_SIZE(bt_l2cap_pool); i++) {
   2416c:	2300      	movs	r3, #0
   2416e:	2b00      	cmp	r3, #0
   24170:	dd06      	ble.n	24180 <l2cap_accept+0x18>
		*chan = &l2cap->chan.chan;

		return 0;
	}

	BT_ERR("No available L2CAP context for conn %p", conn);
   24172:	2145      	movs	r1, #69	; 0x45
   24174:	480b      	ldr	r0, [pc, #44]	; (241a4 <l2cap_accept+0x3c>)
   24176:	f00f fcb9 	bl	33aec <z_log_minimal_printk>

	return -ENOMEM;
   2417a:	f06f 000b 	mvn.w	r0, #11
}
   2417e:	bd10      	pop	{r4, pc}
		if (l2cap->chan.chan.conn) {
   24180:	ebc3 1003 	rsb	r0, r3, r3, lsl #4
   24184:	0100      	lsls	r0, r0, #4
   24186:	4c08      	ldr	r4, [pc, #32]	; (241a8 <l2cap_accept+0x40>)
   24188:	5820      	ldr	r0, [r4, r0]
   2418a:	b108      	cbz	r0, 24190 <l2cap_accept+0x28>
	for (i = 0; i < ARRAY_SIZE(bt_l2cap_pool); i++) {
   2418c:	3301      	adds	r3, #1
   2418e:	e7ee      	b.n	2416e <l2cap_accept+0x6>
		l2cap->chan.chan.ops = &ops;
   24190:	4a05      	ldr	r2, [pc, #20]	; (241a8 <l2cap_accept+0x40>)
   24192:	ebc3 1003 	rsb	r0, r3, r3, lsl #4
   24196:	eb02 1000 	add.w	r0, r2, r0, lsl #4
   2419a:	4c04      	ldr	r4, [pc, #16]	; (241ac <l2cap_accept+0x44>)
   2419c:	6044      	str	r4, [r0, #4]
		*chan = &l2cap->chan.chan;
   2419e:	6008      	str	r0, [r1, #0]
		return 0;
   241a0:	2000      	movs	r0, #0
   241a2:	e7ec      	b.n	2417e <l2cap_accept+0x16>
   241a4:	0003dafc 	.word	0x0003dafc
   241a8:	20001910 	.word	0x20001910
   241ac:	0003dcf0 	.word	0x0003dcf0

000241b0 <le_conn_param_rsp>:
{
   241b0:	b508      	push	{r3, lr}
	if (buf->len < sizeof(*rsp)) {
   241b2:	898b      	ldrh	r3, [r1, #12]
   241b4:	2b01      	cmp	r3, #1
   241b6:	d900      	bls.n	241ba <le_conn_param_rsp+0xa>
}
   241b8:	bd08      	pop	{r3, pc}
		BT_ERR("Too small LE conn param rsp");
   241ba:	2145      	movs	r1, #69	; 0x45
   241bc:	4801      	ldr	r0, [pc, #4]	; (241c4 <le_conn_param_rsp+0x14>)
   241be:	f00f fc95 	bl	33aec <z_log_minimal_printk>
		return;
   241c2:	e7f9      	b.n	241b8 <le_conn_param_rsp+0x8>
   241c4:	0003db28 	.word	0x0003db28

000241c8 <l2cap_rtx_timeout>:
{
   241c8:	b538      	push	{r3, r4, r5, lr}
	struct bt_l2cap_le_chan *chan = LE_CHAN_RTX(work);
   241ca:	f1a0 0410 	sub.w	r4, r0, #16
	struct bt_conn *conn = chan->chan.conn;
   241ce:	f850 5c10 	ldr.w	r5, [r0, #-16]
	BT_ERR("chan %p timeout", chan);
   241d2:	4622      	mov	r2, r4
   241d4:	2145      	movs	r1, #69	; 0x45
   241d6:	4805      	ldr	r0, [pc, #20]	; (241ec <l2cap_rtx_timeout+0x24>)
   241d8:	f00f fc88 	bl	33aec <z_log_minimal_printk>
	bt_l2cap_chan_remove(conn, &chan->chan);
   241dc:	4621      	mov	r1, r4
   241de:	4628      	mov	r0, r5
   241e0:	f012 fc2a 	bl	36a38 <bt_l2cap_chan_remove>
	bt_l2cap_chan_del(&chan->chan);
   241e4:	4620      	mov	r0, r4
   241e6:	f012 fc4f 	bl	36a88 <bt_l2cap_chan_del>
}
   241ea:	bd38      	pop	{r3, r4, r5, pc}
   241ec:	0003db4c 	.word	0x0003db4c

000241f0 <l2cap_chan_add>:
{
   241f0:	b570      	push	{r4, r5, r6, lr}
	if (!ch) {
   241f2:	b1d9      	cbz	r1, 2422c <l2cap_chan_add+0x3c>
   241f4:	4604      	mov	r4, r0
   241f6:	4615      	mov	r5, r2
   241f8:	460e      	mov	r6, r1
	k_work_init_delayable(&chan->rtx_work, l2cap_rtx_timeout);
   241fa:	490f      	ldr	r1, [pc, #60]	; (24238 <l2cap_chan_add+0x48>)
   241fc:	f106 0010 	add.w	r0, r6, #16
   24200:	f00c fabc 	bl	3077c <k_work_init_delayable>
	atomic_clear(chan->status);
   24204:	f106 0368 	add.w	r3, r6, #104	; 0x68
	return __atomic_exchange_n(target, value, __ATOMIC_SEQ_CST);
   24208:	2200      	movs	r2, #0
   2420a:	f3bf 8f5b 	dmb	ish
   2420e:	e853 1f00 	ldrex	r1, [r3]
   24212:	e843 2000 	strex	r0, r2, [r3]
   24216:	2800      	cmp	r0, #0
   24218:	d1f9      	bne.n	2420e <l2cap_chan_add+0x1e>
   2421a:	f3bf 8f5b 	dmb	ish
	bt_l2cap_chan_add(conn, chan, destroy);
   2421e:	462a      	mov	r2, r5
   24220:	4631      	mov	r1, r6
   24222:	4620      	mov	r0, r4
   24224:	f012 fc43 	bl	36aae <bt_l2cap_chan_add>
	return true;
   24228:	2001      	movs	r0, #1
}
   2422a:	bd70      	pop	{r4, r5, r6, pc}
		BT_ERR("Unable to allocate L2CAP channel ID");
   2422c:	2145      	movs	r1, #69	; 0x45
   2422e:	4803      	ldr	r0, [pc, #12]	; (2423c <l2cap_chan_add+0x4c>)
   24230:	f00f fc5c 	bl	33aec <z_log_minimal_printk>
		return false;
   24234:	2000      	movs	r0, #0
   24236:	e7f8      	b.n	2422a <l2cap_chan_add+0x3a>
   24238:	000241c9 	.word	0x000241c9
   2423c:	0003db64 	.word	0x0003db64

00024240 <bt_l2cap_connected>:
{
   24240:	b570      	push	{r4, r5, r6, lr}
   24242:	b082      	sub	sp, #8
   24244:	4605      	mov	r5, r0
	STRUCT_SECTION_FOREACH(bt_l2cap_fixed_chan, fchan) {
   24246:	4c22      	ldr	r4, [pc, #136]	; (242d0 <bt_l2cap_connected+0x90>)
   24248:	e000      	b.n	2424c <bt_l2cap_connected+0xc>
   2424a:	340c      	adds	r4, #12
   2424c:	4b21      	ldr	r3, [pc, #132]	; (242d4 <bt_l2cap_connected+0x94>)
   2424e:	429c      	cmp	r4, r3
   24250:	d82f      	bhi.n	242b2 <bt_l2cap_connected+0x72>
   24252:	4b20      	ldr	r3, [pc, #128]	; (242d4 <bt_l2cap_connected+0x94>)
   24254:	429c      	cmp	r4, r3
   24256:	d239      	bcs.n	242cc <bt_l2cap_connected+0x8c>
		if (fchan->accept(conn, &chan) < 0) {
   24258:	6863      	ldr	r3, [r4, #4]
   2425a:	a901      	add	r1, sp, #4
   2425c:	4628      	mov	r0, r5
   2425e:	4798      	blx	r3
   24260:	2800      	cmp	r0, #0
   24262:	dbf2      	blt.n	2424a <bt_l2cap_connected+0xa>
		ch = BT_L2CAP_LE_CHAN(chan);
   24264:	9901      	ldr	r1, [sp, #4]
		ch->rx.cid = fchan->cid;
   24266:	8823      	ldrh	r3, [r4, #0]
   24268:	f8a1 3070 	strh.w	r3, [r1, #112]	; 0x70
		ch->tx.cid = fchan->cid;
   2426c:	f8a1 3080 	strh.w	r3, [r1, #128]	; 0x80
		if (!l2cap_chan_add(conn, chan, fchan->destroy)) {
   24270:	68a2      	ldr	r2, [r4, #8]
   24272:	4628      	mov	r0, r5
   24274:	f7ff ffbc 	bl	241f0 <l2cap_chan_add>
   24278:	b340      	cbz	r0, 242cc <bt_l2cap_connected+0x8c>
		if (chan->ops->connected) {
   2427a:	9801      	ldr	r0, [sp, #4]
   2427c:	6843      	ldr	r3, [r0, #4]
   2427e:	681b      	ldr	r3, [r3, #0]
   24280:	b103      	cbz	r3, 24284 <bt_l2cap_connected+0x44>
			chan->ops->connected(chan);
   24282:	4798      	blx	r3
		atomic_set_bit(chan->status, BT_L2CAP_STATUS_OUT);
   24284:	9b01      	ldr	r3, [sp, #4]
   24286:	3368      	adds	r3, #104	; 0x68
	return __atomic_fetch_or(target, value, __ATOMIC_SEQ_CST);
   24288:	f3bf 8f5b 	dmb	ish
   2428c:	e853 2f00 	ldrex	r2, [r3]
   24290:	f042 0201 	orr.w	r2, r2, #1
   24294:	e843 2100 	strex	r1, r2, [r3]
   24298:	2900      	cmp	r1, #0
   2429a:	d1f7      	bne.n	2428c <bt_l2cap_connected+0x4c>
   2429c:	f3bf 8f5b 	dmb	ish
		if (chan->ops->status) {
   242a0:	9801      	ldr	r0, [sp, #4]
   242a2:	6843      	ldr	r3, [r0, #4]
   242a4:	699b      	ldr	r3, [r3, #24]
   242a6:	2b00      	cmp	r3, #0
   242a8:	d0cf      	beq.n	2424a <bt_l2cap_connected+0xa>
			chan->ops->status(chan, chan->status);
   242aa:	f100 0168 	add.w	r1, r0, #104	; 0x68
   242ae:	4798      	blx	r3
   242b0:	e7cb      	b.n	2424a <bt_l2cap_connected+0xa>
	STRUCT_SECTION_FOREACH(bt_l2cap_fixed_chan, fchan) {
   242b2:	4e09      	ldr	r6, [pc, #36]	; (242d8 <bt_l2cap_connected+0x98>)
   242b4:	f240 1265 	movw	r2, #357	; 0x165
   242b8:	4631      	mov	r1, r6
   242ba:	4808      	ldr	r0, [pc, #32]	; (242dc <bt_l2cap_connected+0x9c>)
   242bc:	f00f f875 	bl	333aa <printk>
   242c0:	f240 1165 	movw	r1, #357	; 0x165
   242c4:	4630      	mov	r0, r6
   242c6:	f00f fc09 	bl	33adc <assert_post_action>
   242ca:	e7c2      	b.n	24252 <bt_l2cap_connected+0x12>
}
   242cc:	b002      	add	sp, #8
   242ce:	bd70      	pop	{r4, r5, r6, pc}
   242d0:	0003b784 	.word	0x0003b784
   242d4:	0003b7a8 	.word	0x0003b7a8
   242d8:	0003db90 	.word	0x0003db90
   242dc:	0003bdac 	.word	0x0003bdac

000242e0 <l2cap_create_le_sig_pdu>:
{
   242e0:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
   242e2:	460c      	mov	r4, r1
   242e4:	4616      	mov	r6, r2
   242e6:	461d      	mov	r5, r3
	buf = bt_l2cap_create_pdu_timeout(pool, 0, L2CAP_RTX_TIMEOUT);
   242e8:	f44f 3280 	mov.w	r2, #65536	; 0x10000
   242ec:	2300      	movs	r3, #0
   242ee:	2100      	movs	r1, #0
   242f0:	4608      	mov	r0, r1
   242f2:	f012 fc32 	bl	36b5a <bt_l2cap_create_pdu_timeout>
	if (!buf) {
   242f6:	4607      	mov	r7, r0
   242f8:	b140      	cbz	r0, 2430c <l2cap_create_le_sig_pdu+0x2c>
	return net_buf_simple_add(&buf->b, len);
   242fa:	2104      	movs	r1, #4
   242fc:	3008      	adds	r0, #8
   242fe:	f005 fb47 	bl	29990 <net_buf_simple_add>
	hdr->code = code;
   24302:	7004      	strb	r4, [r0, #0]
	hdr->ident = ident;
   24304:	7046      	strb	r6, [r0, #1]
	hdr->len = sys_cpu_to_le16(len);
   24306:	8045      	strh	r5, [r0, #2]
}
   24308:	4638      	mov	r0, r7
   2430a:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
		BT_ERR("Unable to allocate buffer for op 0x%02x", code);
   2430c:	4622      	mov	r2, r4
   2430e:	2145      	movs	r1, #69	; 0x45
   24310:	4801      	ldr	r0, [pc, #4]	; (24318 <l2cap_create_le_sig_pdu+0x38>)
   24312:	f00f fbeb 	bl	33aec <z_log_minimal_printk>
		return NULL;
   24316:	e7f7      	b.n	24308 <l2cap_create_le_sig_pdu+0x28>
   24318:	0003dbc4 	.word	0x0003dbc4

0002431c <l2cap_recv>:
{
   2431c:	b570      	push	{r4, r5, r6, lr}
   2431e:	b082      	sub	sp, #8
	if (buf->len < sizeof(*hdr)) {
   24320:	898b      	ldrh	r3, [r1, #12]
   24322:	2b03      	cmp	r3, #3
   24324:	d917      	bls.n	24356 <l2cap_recv+0x3a>
   24326:	4606      	mov	r6, r0
   24328:	460c      	mov	r4, r1
	return net_buf_simple_pull_mem(&buf->b, len);
   2432a:	2104      	movs	r1, #4
   2432c:	f104 0008 	add.w	r0, r4, #8
   24330:	f005 faee 	bl	29910 <net_buf_simple_pull_mem>
   24334:	4605      	mov	r5, r0
	len = sys_le16_to_cpu(hdr->len);
   24336:	8843      	ldrh	r3, [r0, #2]
	if (buf->len != len) {
   24338:	89a2      	ldrh	r2, [r4, #12]
   2433a:	429a      	cmp	r2, r3
   2433c:	d112      	bne.n	24364 <l2cap_recv+0x48>
	if (!hdr->ident) {
   2433e:	7843      	ldrb	r3, [r0, #1]
   24340:	b1ab      	cbz	r3, 2436e <l2cap_recv+0x52>
	switch (hdr->code) {
   24342:	7802      	ldrb	r2, [r0, #0]
   24344:	2a01      	cmp	r2, #1
   24346:	d00a      	beq.n	2435e <l2cap_recv+0x42>
   24348:	2a13      	cmp	r2, #19
   2434a:	d115      	bne.n	24378 <l2cap_recv+0x5c>
		le_conn_param_rsp(l2cap, buf);
   2434c:	4621      	mov	r1, r4
   2434e:	4630      	mov	r0, r6
   24350:	f7ff ff2e 	bl	241b0 <le_conn_param_rsp>
		break;
   24354:	e003      	b.n	2435e <l2cap_recv+0x42>
		BT_ERR("Too small L2CAP signaling PDU");
   24356:	2145      	movs	r1, #69	; 0x45
   24358:	480d      	ldr	r0, [pc, #52]	; (24390 <l2cap_recv+0x74>)
   2435a:	f00f fbc7 	bl	33aec <z_log_minimal_printk>
}
   2435e:	2000      	movs	r0, #0
   24360:	b002      	add	sp, #8
   24362:	bd70      	pop	{r4, r5, r6, pc}
		BT_ERR("L2CAP length mismatch (%u != %u)", buf->len, len);
   24364:	2145      	movs	r1, #69	; 0x45
   24366:	480b      	ldr	r0, [pc, #44]	; (24394 <l2cap_recv+0x78>)
   24368:	f00f fbc0 	bl	33aec <z_log_minimal_printk>
		return 0;
   2436c:	e7f7      	b.n	2435e <l2cap_recv+0x42>
		BT_ERR("Invalid ident value in L2CAP PDU");
   2436e:	2145      	movs	r1, #69	; 0x45
   24370:	4809      	ldr	r0, [pc, #36]	; (24398 <l2cap_recv+0x7c>)
   24372:	f00f fbbb 	bl	33aec <z_log_minimal_printk>
		return 0;
   24376:	e7f2      	b.n	2435e <l2cap_recv+0x42>
		BT_WARN("Unknown L2CAP PDU code 0x%02x", hdr->code);
   24378:	2157      	movs	r1, #87	; 0x57
   2437a:	4808      	ldr	r0, [pc, #32]	; (2439c <l2cap_recv+0x80>)
   2437c:	f00f fbb6 	bl	33aec <z_log_minimal_printk>
		l2cap_send_reject(chan->conn, hdr->ident,
   24380:	7869      	ldrb	r1, [r5, #1]
   24382:	2200      	movs	r2, #0
   24384:	9200      	str	r2, [sp, #0]
   24386:	4613      	mov	r3, r2
   24388:	6830      	ldr	r0, [r6, #0]
   2438a:	f012 fc00 	bl	36b8e <l2cap_send_reject>
		break;
   2438e:	e7e6      	b.n	2435e <l2cap_recv+0x42>
   24390:	0003dbf4 	.word	0x0003dbf4
   24394:	0003dc18 	.word	0x0003dc18
   24398:	0003dc40 	.word	0x0003dc40
   2439c:	0003dc68 	.word	0x0003dc68

000243a0 <bt_l2cap_recv>:
{
   243a0:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
   243a2:	460c      	mov	r4, r1
	if (buf->len < sizeof(*hdr)) {
   243a4:	898b      	ldrh	r3, [r1, #12]
   243a6:	2b03      	cmp	r3, #3
   243a8:	d911      	bls.n	243ce <bt_l2cap_recv+0x2e>
   243aa:	4605      	mov	r5, r0
   243ac:	4616      	mov	r6, r2
   243ae:	2104      	movs	r1, #4
   243b0:	f104 0008 	add.w	r0, r4, #8
   243b4:	f005 faac 	bl	29910 <net_buf_simple_pull_mem>
	cid = sys_le16_to_cpu(hdr->cid);
   243b8:	8847      	ldrh	r7, [r0, #2]
	chan = bt_l2cap_le_lookup_rx_cid(conn, cid);
   243ba:	4639      	mov	r1, r7
   243bc:	4628      	mov	r0, r5
   243be:	f012 fc26 	bl	36c0e <bt_l2cap_le_lookup_rx_cid>
	if (!chan) {
   243c2:	b160      	cbz	r0, 243de <bt_l2cap_recv+0x3e>
	l2cap_chan_recv(chan, buf, complete);
   243c4:	4632      	mov	r2, r6
   243c6:	4621      	mov	r1, r4
   243c8:	f012 fb28 	bl	36a1c <l2cap_chan_recv>
}
   243cc:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
		BT_ERR("Too small L2CAP PDU received");
   243ce:	2145      	movs	r1, #69	; 0x45
   243d0:	4807      	ldr	r0, [pc, #28]	; (243f0 <bt_l2cap_recv+0x50>)
   243d2:	f00f fb8b 	bl	33aec <z_log_minimal_printk>
		net_buf_unref(buf);
   243d6:	4620      	mov	r0, r4
   243d8:	f005 f9c2 	bl	29760 <net_buf_unref>
		return;
   243dc:	e7f6      	b.n	243cc <bt_l2cap_recv+0x2c>
		BT_WARN("Ignoring data for unknown channel ID 0x%04x", cid);
   243de:	463a      	mov	r2, r7
   243e0:	2157      	movs	r1, #87	; 0x57
   243e2:	4804      	ldr	r0, [pc, #16]	; (243f4 <bt_l2cap_recv+0x54>)
   243e4:	f00f fb82 	bl	33aec <z_log_minimal_printk>
		net_buf_unref(buf);
   243e8:	4620      	mov	r0, r4
   243ea:	f005 f9b9 	bl	29760 <net_buf_unref>
		return;
   243ee:	e7ed      	b.n	243cc <bt_l2cap_recv+0x2c>
   243f0:	0003dc8c 	.word	0x0003dc8c
   243f4:	0003dcb0 	.word	0x0003dcb0

000243f8 <att_cfm_sent>:
		return NULL;
	}
}

static void att_cfm_sent(struct bt_conn *conn, void *user_data)
{
   243f8:	b508      	push	{r3, lr}
	struct bt_l2cap_chan *ch = user_data;
	struct bt_att_chan *chan = ATT_CHAN(ch);

	BT_DBG("conn %p chan %p", conn, chan);

	chan->sent = chan_cfm_sent;
   243fa:	4b03      	ldr	r3, [pc, #12]	; (24408 <att_cfm_sent+0x10>)
   243fc:	f8c1 3148 	str.w	r3, [r1, #328]	; 0x148

	att_sent(conn, user_data);
   24400:	f012 fc46 	bl	36c90 <att_sent>
}
   24404:	bd08      	pop	{r3, pc}
   24406:	bf00      	nop
   24408:	00036f79 	.word	0x00036f79

0002440c <att_rsp_sent>:

static void att_rsp_sent(struct bt_conn *conn, void *user_data)
{
   2440c:	b508      	push	{r3, lr}
	struct bt_l2cap_chan *ch = user_data;
	struct bt_att_chan *chan = ATT_CHAN(ch);

	BT_DBG("conn %p chan %p", conn, chan);

	chan->sent = chan_rsp_sent;
   2440e:	4b03      	ldr	r3, [pc, #12]	; (2441c <att_rsp_sent+0x10>)
   24410:	f8c1 3148 	str.w	r3, [r1, #328]	; 0x148

	att_sent(conn, user_data);
   24414:	f012 fc3c 	bl	36c90 <att_sent>
}
   24418:	bd08      	pop	{r3, pc}
   2441a:	bf00      	nop
   2441c:	00036f95 	.word	0x00036f95

00024420 <att_req_sent>:

static void att_req_sent(struct bt_conn *conn, void *user_data)
{
   24420:	b508      	push	{r3, lr}
	struct bt_l2cap_chan *ch = user_data;
	struct bt_att_chan *chan = ATT_CHAN(ch);

	BT_DBG("conn %p chan %p", conn, chan);

	chan->sent = chan_req_sent;
   24422:	4b03      	ldr	r3, [pc, #12]	; (24430 <att_req_sent+0x10>)
   24424:	f8c1 3148 	str.w	r3, [r1, #328]	; 0x148

	att_sent(conn, user_data);
   24428:	f012 fc32 	bl	36c90 <att_sent>
}
   2442c:	bd08      	pop	{r3, pc}
   2442e:	bf00      	nop
   24430:	00036f61 	.word	0x00036f61

00024434 <att_cb>:

static bt_conn_tx_cb_t att_cb(bt_att_chan_sent_t cb)
{
	if (cb == chan_rsp_sent) {
   24434:	4b08      	ldr	r3, [pc, #32]	; (24458 <att_cb+0x24>)
   24436:	4298      	cmp	r0, r3
   24438:	d009      	beq.n	2444e <att_cb+0x1a>
		return att_rsp_sent;
	} else if (cb == chan_cfm_sent) {
   2443a:	4b08      	ldr	r3, [pc, #32]	; (2445c <att_cb+0x28>)
   2443c:	4298      	cmp	r0, r3
   2443e:	d008      	beq.n	24452 <att_cb+0x1e>
		return att_cfm_sent;
	} else if (cb == chan_req_sent) {
   24440:	4b07      	ldr	r3, [pc, #28]	; (24460 <att_cb+0x2c>)
   24442:	4298      	cmp	r0, r3
   24444:	d001      	beq.n	2444a <att_cb+0x16>
		return att_req_sent;
	} else {
		return att_sent;
   24446:	4807      	ldr	r0, [pc, #28]	; (24464 <att_cb+0x30>)
	}
}
   24448:	4770      	bx	lr
		return att_req_sent;
   2444a:	4807      	ldr	r0, [pc, #28]	; (24468 <att_cb+0x34>)
   2444c:	4770      	bx	lr
		return att_rsp_sent;
   2444e:	4807      	ldr	r0, [pc, #28]	; (2446c <att_cb+0x38>)
   24450:	4770      	bx	lr
		return att_cfm_sent;
   24452:	4807      	ldr	r0, [pc, #28]	; (24470 <att_cb+0x3c>)
   24454:	4770      	bx	lr
   24456:	bf00      	nop
   24458:	00036f95 	.word	0x00036f95
   2445c:	00036f79 	.word	0x00036f79
   24460:	00036f61 	.word	0x00036f61
   24464:	00036c91 	.word	0x00036c91
   24468:	00024421 	.word	0x00024421
   2446c:	0002440d 	.word	0x0002440d
   24470:	000243f9 	.word	0x000243f9

00024474 <chan_cb>:
{
   24474:	b508      	push	{r3, lr}
	switch (att_op_get_type(buf->data[0])) {
   24476:	6883      	ldr	r3, [r0, #8]
   24478:	7818      	ldrb	r0, [r3, #0]
   2447a:	f012 fc52 	bl	36d22 <att_op_get_type>
   2447e:	3801      	subs	r0, #1
   24480:	2804      	cmp	r0, #4
   24482:	d808      	bhi.n	24496 <chan_cb+0x22>
   24484:	e8df f000 	tbb	[pc, r0]
   24488:	09070305 	.word	0x09070305
   2448c:	05          	.byte	0x05
   2448d:	00          	.byte	0x00
   2448e:	4804      	ldr	r0, [pc, #16]	; (244a0 <chan_cb+0x2c>)
   24490:	e000      	b.n	24494 <chan_cb+0x20>
		return chan_req_sent;
   24492:	4804      	ldr	r0, [pc, #16]	; (244a4 <chan_cb+0x30>)
}
   24494:	bd08      	pop	{r3, pc}
		return NULL;
   24496:	2000      	movs	r0, #0
   24498:	e7fc      	b.n	24494 <chan_cb+0x20>
		return chan_cfm_sent;
   2449a:	4803      	ldr	r0, [pc, #12]	; (244a8 <chan_cb+0x34>)
   2449c:	e7fa      	b.n	24494 <chan_cb+0x20>
   2449e:	bf00      	nop
   244a0:	00036f95 	.word	0x00036f95
   244a4:	00036f61 	.word	0x00036f61
   244a8:	00036f79 	.word	0x00036f79

000244ac <att_get>:

	return 0;
}

static struct bt_att *att_get(struct bt_conn *conn)
{
   244ac:	b510      	push	{r4, lr}
	struct bt_l2cap_chan *chan;
	struct bt_att_chan *att_chan;

	if (conn->state != BT_CONN_CONNECTED) {
   244ae:	7b43      	ldrb	r3, [r0, #13]
   244b0:	2b07      	cmp	r3, #7
   244b2:	d111      	bne.n	244d8 <att_get+0x2c>
		BT_WARN("Not connected");
		return NULL;
	}

	chan = bt_l2cap_le_lookup_rx_cid(conn, BT_L2CAP_CID_ATT);
   244b4:	2104      	movs	r1, #4
   244b6:	f012 fbaa 	bl	36c0e <bt_l2cap_le_lookup_rx_cid>
	if (!chan) {
   244ba:	4604      	mov	r4, r0
   244bc:	b190      	cbz	r0, 244e4 <att_get+0x38>
	return __atomic_load_n(target, __ATOMIC_SEQ_CST);
   244be:	f3bf 8f5b 	dmb	ish
   244c2:	f8d0 30f0 	ldr.w	r3, [r0, #240]	; 0xf0
   244c6:	f3bf 8f5b 	dmb	ish
		BT_ERR("Unable to find ATT channel");
		return NULL;
	}

	att_chan = ATT_CHAN(chan);
	if (atomic_test_bit(att_chan->flags, ATT_DISCONNECTED)) {
   244ca:	f013 0f04 	tst.w	r3, #4
   244ce:	d10e      	bne.n	244ee <att_get+0x42>
		BT_WARN("ATT channel flagged as disconnected");
		return NULL;
	}

	return att_chan->att;
   244d0:	f850 4c08 	ldr.w	r4, [r0, #-8]
}
   244d4:	4620      	mov	r0, r4
   244d6:	bd10      	pop	{r4, pc}
		BT_WARN("Not connected");
   244d8:	2157      	movs	r1, #87	; 0x57
   244da:	4808      	ldr	r0, [pc, #32]	; (244fc <att_get+0x50>)
   244dc:	f00f fb06 	bl	33aec <z_log_minimal_printk>
		return NULL;
   244e0:	2400      	movs	r4, #0
   244e2:	e7f7      	b.n	244d4 <att_get+0x28>
		BT_ERR("Unable to find ATT channel");
   244e4:	2145      	movs	r1, #69	; 0x45
   244e6:	4806      	ldr	r0, [pc, #24]	; (24500 <att_get+0x54>)
   244e8:	f00f fb00 	bl	33aec <z_log_minimal_printk>
		return NULL;
   244ec:	e7f2      	b.n	244d4 <att_get+0x28>
		BT_WARN("ATT channel flagged as disconnected");
   244ee:	2157      	movs	r1, #87	; 0x57
   244f0:	4804      	ldr	r0, [pc, #16]	; (24504 <att_get+0x58>)
   244f2:	f00f fafb 	bl	33aec <z_log_minimal_printk>
		return NULL;
   244f6:	2400      	movs	r4, #0
   244f8:	e7ec      	b.n	244d4 <att_get+0x28>
   244fa:	bf00      	nop
   244fc:	0003dd14 	.word	0x0003dd14
   24500:	0003dd28 	.word	0x0003dd28
   24504:	0003dd48 	.word	0x0003dd48

00024508 <att_chan_new>:

	k_mem_slab_free(&chan_slab, (void **)&chan);
}

static struct bt_att_chan *att_chan_new(struct bt_att *att, atomic_val_t flags)
{
   24508:	b570      	push	{r4, r5, r6, lr}
   2450a:	b082      	sub	sp, #8
   2450c:	4605      	mov	r5, r0
   2450e:	460e      	mov	r6, r1
	return list->head;
   24510:	6a83      	ldr	r3, [r0, #40]	; 0x28
	#endif /* CONFIG_BT_SMP */
		.released = bt_att_released,
	};
	struct bt_att_chan *chan;

	SYS_SLIST_FOR_EACH_CONTAINER(&att->chans, chan, node) {
   24512:	b10b      	cbz	r3, 24518 <att_chan_new+0x10>
   24514:	f5a3 73aa 	sub.w	r3, r3, #340	; 0x154
   24518:	9301      	str	r3, [sp, #4]
	int quota = 0;
   2451a:	2200      	movs	r2, #0
	SYS_SLIST_FOR_EACH_CONTAINER(&att->chans, chan, node) {
   2451c:	e008      	b.n	24530 <att_chan_new+0x28>
		if (chan->att == att) {
			quota++;
   2451e:	3201      	adds	r2, #1
   24520:	e00b      	b.n	2453a <att_chan_new+0x32>
		}

		if (quota == ATT_CHAN_MAX) {
			BT_ERR("Maximum number of channels reached: %d", quota);
   24522:	2145      	movs	r1, #69	; 0x45
   24524:	4821      	ldr	r0, [pc, #132]	; (245ac <att_chan_new+0xa4>)
   24526:	f00f fae1 	bl	33aec <z_log_minimal_printk>
			return NULL;
   2452a:	2400      	movs	r4, #0
   2452c:	e034      	b.n	24598 <att_chan_new+0x90>
	SYS_SLIST_FOR_EACH_CONTAINER(&att->chans, chan, node) {
   2452e:	9301      	str	r3, [sp, #4]
   24530:	9c01      	ldr	r4, [sp, #4]
   24532:	b174      	cbz	r4, 24552 <att_chan_new+0x4a>
		if (chan->att == att) {
   24534:	6823      	ldr	r3, [r4, #0]
   24536:	42ab      	cmp	r3, r5
   24538:	d0f1      	beq.n	2451e <att_chan_new+0x16>
		if (quota == ATT_CHAN_MAX) {
   2453a:	2a01      	cmp	r2, #1
   2453c:	d0f1      	beq.n	24522 <att_chan_new+0x1a>
Z_GENLIST_PEEK_NEXT(slist, snode)
   2453e:	f514 73aa 	adds.w	r3, r4, #340	; 0x154
   24542:	d0f4      	beq.n	2452e <att_chan_new+0x26>
	return node->next;
   24544:	f8d4 3154 	ldr.w	r3, [r4, #340]	; 0x154
	SYS_SLIST_FOR_EACH_CONTAINER(&att->chans, chan, node) {
   24548:	2b00      	cmp	r3, #0
   2454a:	d0f0      	beq.n	2452e <att_chan_new+0x26>
   2454c:	f5a3 73aa 	sub.w	r3, r3, #340	; 0x154
   24550:	e7ed      	b.n	2452e <att_chan_new+0x26>
		}
	}

	if (k_mem_slab_alloc(&chan_slab, (void **)&chan, K_NO_WAIT)) {
   24552:	2200      	movs	r2, #0
   24554:	2300      	movs	r3, #0
   24556:	a901      	add	r1, sp, #4
   24558:	4815      	ldr	r0, [pc, #84]	; (245b0 <att_chan_new+0xa8>)
   2455a:	f00a ff07 	bl	2f36c <k_mem_slab_alloc>
   2455e:	b9f0      	cbnz	r0, 2459e <att_chan_new+0x96>
		BT_ERR("No available ATT channel for conn %p", att->conn);
		return NULL;
	}

	(void)memset(chan, 0, sizeof(*chan));
   24560:	f44f 72ac 	mov.w	r2, #344	; 0x158
   24564:	2100      	movs	r1, #0
   24566:	9801      	ldr	r0, [sp, #4]
   24568:	f011 faec 	bl	35b44 <memset>
	chan->chan.chan.ops = &ops;
   2456c:	9801      	ldr	r0, [sp, #4]
   2456e:	4b11      	ldr	r3, [pc, #68]	; (245b4 <att_chan_new+0xac>)
   24570:	60c3      	str	r3, [r0, #12]
	k_fifo_init(&chan->tx_queue);
   24572:	f500 7080 	add.w	r0, r0, #256	; 0x100
	z_impl_k_queue_init(queue);
   24576:	f016 fe2d 	bl	3b1d4 <z_impl_k_queue_init>
	atomic_set(chan->flags, flags);
   2457a:	9b01      	ldr	r3, [sp, #4]
   2457c:	33f8      	adds	r3, #248	; 0xf8
	return __atomic_exchange_n(target, value, __ATOMIC_SEQ_CST);
   2457e:	f3bf 8f5b 	dmb	ish
   24582:	e853 2f00 	ldrex	r2, [r3]
   24586:	e843 6100 	strex	r1, r6, [r3]
   2458a:	2900      	cmp	r1, #0
   2458c:	d1f9      	bne.n	24582 <att_chan_new+0x7a>
   2458e:	f3bf 8f5b 	dmb	ish
	chan->att = att;
   24592:	9b01      	ldr	r3, [sp, #4]
   24594:	601d      	str	r5, [r3, #0]

	return chan;
   24596:	9c01      	ldr	r4, [sp, #4]
}
   24598:	4620      	mov	r0, r4
   2459a:	b002      	add	sp, #8
   2459c:	bd70      	pop	{r4, r5, r6, pc}
		BT_ERR("No available ATT channel for conn %p", att->conn);
   2459e:	682a      	ldr	r2, [r5, #0]
   245a0:	2145      	movs	r1, #69	; 0x45
   245a2:	4805      	ldr	r0, [pc, #20]	; (245b8 <att_chan_new+0xb0>)
   245a4:	f00f faa2 	bl	33aec <z_log_minimal_printk>
		return NULL;
   245a8:	e7f6      	b.n	24598 <att_chan_new+0x90>
   245aa:	bf00      	nop
   245ac:	0003dd74 	.word	0x0003dd74
   245b0:	200007f8 	.word	0x200007f8
   245b4:	20000598 	.word	0x20000598
   245b8:	0003dda0 	.word	0x0003dda0

000245bc <bt_att_accept>:

static int bt_att_accept(struct bt_conn *conn, struct bt_l2cap_chan **ch)
{
   245bc:	b570      	push	{r4, r5, r6, lr}
   245be:	b082      	sub	sp, #8
   245c0:	4604      	mov	r4, r0
   245c2:	460d      	mov	r5, r1
	struct bt_att *att;
	struct bt_att_chan *chan;

	BT_DBG("conn %p handle %u", conn, conn->handle);

	if (k_mem_slab_alloc(&att_slab, (void **)&att, K_NO_WAIT)) {
   245c4:	2200      	movs	r2, #0
   245c6:	2300      	movs	r3, #0
   245c8:	a901      	add	r1, sp, #4
   245ca:	4813      	ldr	r0, [pc, #76]	; (24618 <bt_att_accept+0x5c>)
   245cc:	f00a fece 	bl	2f36c <k_mem_slab_alloc>
   245d0:	b9b0      	cbnz	r0, 24600 <bt_att_accept+0x44>
   245d2:	4606      	mov	r6, r0
		BT_ERR("No available ATT context for conn %p", conn);
		return -ENOMEM;
	}

	(void)memset(att, 0, sizeof(*att));
   245d4:	2230      	movs	r2, #48	; 0x30
   245d6:	2100      	movs	r1, #0
   245d8:	9801      	ldr	r0, [sp, #4]
   245da:	f011 fab3 	bl	35b44 <memset>
	att->conn = conn;
   245de:	9b01      	ldr	r3, [sp, #4]
   245e0:	601c      	str	r4, [r3, #0]
	sys_slist_init(&att->reqs);
   245e2:	9801      	ldr	r0, [sp, #4]
	list->head = NULL;
   245e4:	2100      	movs	r1, #0
   245e6:	6041      	str	r1, [r0, #4]
	list->tail = NULL;
   245e8:	6081      	str	r1, [r0, #8]
	list->head = NULL;
   245ea:	6281      	str	r1, [r0, #40]	; 0x28
	list->tail = NULL;
   245ec:	62c1      	str	r1, [r0, #44]	; 0x2c
	sys_slist_init(&att->chans);

	chan = att_chan_new(att, 0);
   245ee:	f7ff ff8b 	bl	24508 <att_chan_new>
	if (!chan) {
   245f2:	4603      	mov	r3, r0
   245f4:	b160      	cbz	r0, 24610 <bt_att_accept+0x54>
		return -ENOMEM;
	}

	*ch = &chan->chan.chan;
   245f6:	3308      	adds	r3, #8
   245f8:	602b      	str	r3, [r5, #0]

	return 0;
}
   245fa:	4630      	mov	r0, r6
   245fc:	b002      	add	sp, #8
   245fe:	bd70      	pop	{r4, r5, r6, pc}
		BT_ERR("No available ATT context for conn %p", conn);
   24600:	4622      	mov	r2, r4
   24602:	2145      	movs	r1, #69	; 0x45
   24604:	4805      	ldr	r0, [pc, #20]	; (2461c <bt_att_accept+0x60>)
   24606:	f00f fa71 	bl	33aec <z_log_minimal_printk>
		return -ENOMEM;
   2460a:	f06f 060b 	mvn.w	r6, #11
   2460e:	e7f4      	b.n	245fa <bt_att_accept+0x3e>
		return -ENOMEM;
   24610:	f06f 060b 	mvn.w	r6, #11
   24614:	e7f1      	b.n	245fa <bt_att_accept+0x3e>
   24616:	bf00      	nop
   24618:	200007d8 	.word	0x200007d8
   2461c:	0003ddcc 	.word	0x0003ddcc

00024620 <bt_att_released>:
{
   24620:	b500      	push	{lr}
   24622:	b083      	sub	sp, #12
	struct bt_att_chan *chan = ATT_CHAN(ch);
   24624:	3808      	subs	r0, #8
   24626:	9001      	str	r0, [sp, #4]
	k_mem_slab_free(&chan_slab, (void **)&chan);
   24628:	a901      	add	r1, sp, #4
   2462a:	4803      	ldr	r0, [pc, #12]	; (24638 <bt_att_released+0x18>)
   2462c:	f00a ff00 	bl	2f430 <k_mem_slab_free>
}
   24630:	b003      	add	sp, #12
   24632:	f85d fb04 	ldr.w	pc, [sp], #4
   24636:	bf00      	nop
   24638:	200007f8 	.word	0x200007f8

0002463c <chan_send>:
{
   2463c:	e92d 43f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, lr}
   24640:	b083      	sub	sp, #12
   24642:	4604      	mov	r4, r0
   24644:	460d      	mov	r5, r1
   24646:	4616      	mov	r6, r2
	hdr = (void *)buf->data;
   24648:	688b      	ldr	r3, [r1, #8]
	if (hdr->code == BT_ATT_OP_SIGNED_WRITE_CMD) {
   2464a:	781b      	ldrb	r3, [r3, #0]
   2464c:	2bd2      	cmp	r3, #210	; 0xd2
   2464e:	d021      	beq.n	24694 <chan_send+0x58>
	state->offset = net_buf_simple_headroom(buf);
   24650:	f105 0008 	add.w	r0, r5, #8
   24654:	f014 fd69 	bl	3912a <net_buf_simple_headroom>
   24658:	b287      	uxth	r7, r0
	state->len = buf->len;
   2465a:	f8b5 900c 	ldrh.w	r9, [r5, #12]
	chan->sent = cb ? cb : chan_cb(buf);
   2465e:	b346      	cbz	r6, 246b2 <chan_send+0x76>
   24660:	f8c4 6150 	str.w	r6, [r4, #336]	; 0x150
	err = bt_l2cap_send_cb(chan->att->conn, BT_L2CAP_CID_ATT,
   24664:	f854 8b08 	ldr.w	r8, [r4], #8
   24668:	4630      	mov	r0, r6
   2466a:	f7ff fee3 	bl	24434 <att_cb>
   2466e:	4603      	mov	r3, r0
   24670:	f8d8 0000 	ldr.w	r0, [r8]
   24674:	9400      	str	r4, [sp, #0]
   24676:	462a      	mov	r2, r5
   24678:	2104      	movs	r1, #4
   2467a:	f012 fa73 	bl	36b64 <bt_l2cap_send_cb>
	if (err) {
   2467e:	4680      	mov	r8, r0
   24680:	b120      	cbz	r0, 2468c <chan_send+0x50>
	buf->data = buf->__buf + state->offset;
   24682:	6928      	ldr	r0, [r5, #16]
   24684:	4438      	add	r0, r7
   24686:	60a8      	str	r0, [r5, #8]
	buf->len = state->len;
   24688:	f8a5 900c 	strh.w	r9, [r5, #12]
}
   2468c:	4640      	mov	r0, r8
   2468e:	b003      	add	sp, #12
   24690:	e8bd 83f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, pc}
		err = bt_smp_sign(chan->att->conn, buf);
   24694:	6803      	ldr	r3, [r0, #0]
   24696:	6818      	ldr	r0, [r3, #0]
   24698:	f014 f983 	bl	389a2 <bt_smp_sign>
		if (err) {
   2469c:	4680      	mov	r8, r0
   2469e:	2800      	cmp	r0, #0
   246a0:	d0d6      	beq.n	24650 <chan_send+0x14>
			BT_ERR("Error signing data");
   246a2:	2145      	movs	r1, #69	; 0x45
   246a4:	4805      	ldr	r0, [pc, #20]	; (246bc <chan_send+0x80>)
   246a6:	f00f fa21 	bl	33aec <z_log_minimal_printk>
			net_buf_unref(buf);
   246aa:	4628      	mov	r0, r5
   246ac:	f005 f858 	bl	29760 <net_buf_unref>
			return err;
   246b0:	e7ec      	b.n	2468c <chan_send+0x50>
	chan->sent = cb ? cb : chan_cb(buf);
   246b2:	4628      	mov	r0, r5
   246b4:	f7ff fede 	bl	24474 <chan_cb>
   246b8:	4606      	mov	r6, r0
   246ba:	e7d1      	b.n	24660 <chan_send+0x24>
   246bc:	0003ddf8 	.word	0x0003ddf8

000246c0 <bt_att_chan_req_send>:
{
   246c0:	b570      	push	{r4, r5, r6, lr}
   246c2:	460c      	mov	r4, r1
	__ASSERT_NO_MSG(chan);
   246c4:	4605      	mov	r5, r0
   246c6:	b1b0      	cbz	r0, 246f6 <bt_att_chan_req_send+0x36>
	__ASSERT_NO_MSG(req);
   246c8:	b314      	cbz	r4, 24710 <bt_att_chan_req_send+0x50>
	__ASSERT_NO_MSG(req->func);
   246ca:	6863      	ldr	r3, [r4, #4]
   246cc:	b36b      	cbz	r3, 2472a <bt_att_chan_req_send+0x6a>
	__ASSERT_NO_MSG(!chan->req);
   246ce:	f8d5 30fc 	ldr.w	r3, [r5, #252]	; 0xfc
   246d2:	b15b      	cbz	r3, 246ec <bt_att_chan_req_send+0x2c>
   246d4:	4e1b      	ldr	r6, [pc, #108]	; (24744 <bt_att_chan_req_send+0x84>)
   246d6:	f240 2235 	movw	r2, #565	; 0x235
   246da:	4631      	mov	r1, r6
   246dc:	481a      	ldr	r0, [pc, #104]	; (24748 <bt_att_chan_req_send+0x88>)
   246de:	f00e fe64 	bl	333aa <printk>
   246e2:	f240 2135 	movw	r1, #565	; 0x235
   246e6:	4630      	mov	r0, r6
   246e8:	f00f f9f8 	bl	33adc <assert_post_action>
	return chan_req_send(chan, req);
   246ec:	4621      	mov	r1, r4
   246ee:	4628      	mov	r0, r5
   246f0:	f012 fbac 	bl	36e4c <chan_req_send>
}
   246f4:	bd70      	pop	{r4, r5, r6, pc}
	__ASSERT_NO_MSG(chan);
   246f6:	4e13      	ldr	r6, [pc, #76]	; (24744 <bt_att_chan_req_send+0x84>)
   246f8:	f240 2232 	movw	r2, #562	; 0x232
   246fc:	4631      	mov	r1, r6
   246fe:	4812      	ldr	r0, [pc, #72]	; (24748 <bt_att_chan_req_send+0x88>)
   24700:	f00e fe53 	bl	333aa <printk>
   24704:	f240 2132 	movw	r1, #562	; 0x232
   24708:	4630      	mov	r0, r6
   2470a:	f00f f9e7 	bl	33adc <assert_post_action>
   2470e:	e7db      	b.n	246c8 <bt_att_chan_req_send+0x8>
	__ASSERT_NO_MSG(req);
   24710:	4e0c      	ldr	r6, [pc, #48]	; (24744 <bt_att_chan_req_send+0x84>)
   24712:	f240 2233 	movw	r2, #563	; 0x233
   24716:	4631      	mov	r1, r6
   24718:	480b      	ldr	r0, [pc, #44]	; (24748 <bt_att_chan_req_send+0x88>)
   2471a:	f00e fe46 	bl	333aa <printk>
   2471e:	f240 2133 	movw	r1, #563	; 0x233
   24722:	4630      	mov	r0, r6
   24724:	f00f f9da 	bl	33adc <assert_post_action>
   24728:	e7cf      	b.n	246ca <bt_att_chan_req_send+0xa>
	__ASSERT_NO_MSG(req->func);
   2472a:	4e06      	ldr	r6, [pc, #24]	; (24744 <bt_att_chan_req_send+0x84>)
   2472c:	f44f 720d 	mov.w	r2, #564	; 0x234
   24730:	4631      	mov	r1, r6
   24732:	4805      	ldr	r0, [pc, #20]	; (24748 <bt_att_chan_req_send+0x88>)
   24734:	f00e fe39 	bl	333aa <printk>
   24738:	f44f 710d 	mov.w	r1, #564	; 0x234
   2473c:	4630      	mov	r0, r6
   2473e:	f00f f9cd 	bl	33adc <assert_post_action>
   24742:	e7c4      	b.n	246ce <bt_att_chan_req_send+0xe>
   24744:	0003de10 	.word	0x0003de10
   24748:	0003bdac 	.word	0x0003bdac

0002474c <read_group_cb>:
{
   2474c:	b5f0      	push	{r4, r5, r6, r7, lr}
   2474e:	b085      	sub	sp, #20
   24750:	4605      	mov	r5, r0
   24752:	460e      	mov	r6, r1
   24754:	4614      	mov	r4, r2
	struct bt_att_chan *chan = data->chan;
   24756:	6817      	ldr	r7, [r2, #0]
	if (bt_uuid_cmp(attr->uuid, BT_UUID_GATT_PRIMARY) &&
   24758:	2300      	movs	r3, #0
   2475a:	f88d 3008 	strb.w	r3, [sp, #8]
   2475e:	f44f 5320 	mov.w	r3, #10240	; 0x2800
   24762:	f8ad 300a 	strh.w	r3, [sp, #10]
   24766:	a902      	add	r1, sp, #8
   24768:	6800      	ldr	r0, [r0, #0]
   2476a:	f011 faff 	bl	35d6c <bt_uuid_cmp>
   2476e:	b158      	cbz	r0, 24788 <read_group_cb+0x3c>
	    bt_uuid_cmp(attr->uuid, BT_UUID_GATT_SECONDARY)) {
   24770:	2300      	movs	r3, #0
   24772:	f88d 300c 	strb.w	r3, [sp, #12]
   24776:	f642 0301 	movw	r3, #10241	; 0x2801
   2477a:	f8ad 300e 	strh.w	r3, [sp, #14]
   2477e:	a903      	add	r1, sp, #12
   24780:	6828      	ldr	r0, [r5, #0]
   24782:	f011 faf3 	bl	35d6c <bt_uuid_cmp>
	if (bt_uuid_cmp(attr->uuid, BT_UUID_GATT_PRIMARY) &&
   24786:	bb30      	cbnz	r0, 247d6 <read_group_cb+0x8a>
	if (bt_uuid_cmp(attr->uuid, data->uuid)) {
   24788:	6861      	ldr	r1, [r4, #4]
   2478a:	6828      	ldr	r0, [r5, #0]
   2478c:	f011 faee 	bl	35d6c <bt_uuid_cmp>
   24790:	bb48      	cbnz	r0, 247e6 <read_group_cb+0x9a>
	if (data->rsp->len &&
   24792:	68e3      	ldr	r3, [r4, #12]
   24794:	781a      	ldrb	r2, [r3, #0]
   24796:	b132      	cbz	r2, 247a6 <read_group_cb+0x5a>
	    chan->chan.tx.mtu - data->buf->len < data->rsp->len) {
   24798:	f8b7 308a 	ldrh.w	r3, [r7, #138]	; 0x8a
   2479c:	68a1      	ldr	r1, [r4, #8]
   2479e:	8989      	ldrh	r1, [r1, #12]
   247a0:	1a5b      	subs	r3, r3, r1
	if (data->rsp->len &&
   247a2:	4293      	cmp	r3, r2
   247a4:	db24      	blt.n	247f0 <read_group_cb+0xa4>
	data->group = net_buf_add(data->buf, sizeof(*data->group));
   247a6:	68a0      	ldr	r0, [r4, #8]
	return net_buf_simple_add(&buf->b, len);
   247a8:	2104      	movs	r1, #4
   247aa:	3008      	adds	r0, #8
   247ac:	f005 f8f0 	bl	29990 <net_buf_simple_add>
   247b0:	6120      	str	r0, [r4, #16]
	data->group->start_handle = sys_cpu_to_le16(handle);
   247b2:	8006      	strh	r6, [r0, #0]
	data->group->end_handle = sys_cpu_to_le16(handle);
   247b4:	6923      	ldr	r3, [r4, #16]
   247b6:	805e      	strh	r6, [r3, #2]
	read = att_chan_read(chan, attr, data->buf, 0, attr_read_group_cb,
   247b8:	9401      	str	r4, [sp, #4]
   247ba:	4b10      	ldr	r3, [pc, #64]	; (247fc <read_group_cb+0xb0>)
   247bc:	9300      	str	r3, [sp, #0]
   247be:	2300      	movs	r3, #0
   247c0:	68a2      	ldr	r2, [r4, #8]
   247c2:	4629      	mov	r1, r5
   247c4:	4638      	mov	r0, r7
   247c6:	f012 fcc4 	bl	37152 <att_chan_read>
	if (read < 0) {
   247ca:	2800      	cmp	r0, #0
   247cc:	db12      	blt.n	247f4 <read_group_cb+0xa8>
	if (!data->group) {
   247ce:	6923      	ldr	r3, [r4, #16]
   247d0:	b193      	cbz	r3, 247f8 <read_group_cb+0xac>
	return BT_GATT_ITER_CONTINUE;
   247d2:	2001      	movs	r0, #1
   247d4:	e00a      	b.n	247ec <read_group_cb+0xa0>
		if (data->group &&
   247d6:	6923      	ldr	r3, [r4, #16]
   247d8:	b11b      	cbz	r3, 247e2 <read_group_cb+0x96>
		    handle > sys_le16_to_cpu(data->group->end_handle)) {
   247da:	885a      	ldrh	r2, [r3, #2]
		if (data->group &&
   247dc:	42b2      	cmp	r2, r6
   247de:	d200      	bcs.n	247e2 <read_group_cb+0x96>
			data->group->end_handle = sys_cpu_to_le16(handle);
   247e0:	805e      	strh	r6, [r3, #2]
		return BT_GATT_ITER_CONTINUE;
   247e2:	2001      	movs	r0, #1
   247e4:	e002      	b.n	247ec <read_group_cb+0xa0>
		data->group = NULL;
   247e6:	2300      	movs	r3, #0
   247e8:	6123      	str	r3, [r4, #16]
		return BT_GATT_ITER_CONTINUE;
   247ea:	2001      	movs	r0, #1
}
   247ec:	b005      	add	sp, #20
   247ee:	bdf0      	pop	{r4, r5, r6, r7, pc}
		return BT_GATT_ITER_STOP;
   247f0:	2000      	movs	r0, #0
   247f2:	e7fb      	b.n	247ec <read_group_cb+0xa0>
		return BT_GATT_ITER_STOP;
   247f4:	2000      	movs	r0, #0
   247f6:	e7f9      	b.n	247ec <read_group_cb+0xa0>
		return BT_GATT_ITER_STOP;
   247f8:	2000      	movs	r0, #0
   247fa:	e7f7      	b.n	247ec <read_group_cb+0xa0>
   247fc:	00036cf5 	.word	0x00036cf5

00024800 <read_type_cb>:
{
   24800:	e92d 43f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, lr}
   24804:	b083      	sub	sp, #12
   24806:	4606      	mov	r6, r0
   24808:	4688      	mov	r8, r1
   2480a:	4614      	mov	r4, r2
	struct bt_att_chan *chan = data->chan;
   2480c:	6817      	ldr	r7, [r2, #0]
	struct bt_conn *conn = chan->chan.chan.conn;
   2480e:	68bd      	ldr	r5, [r7, #8]
	if (bt_uuid_cmp(attr->uuid, data->uuid)) {
   24810:	6851      	ldr	r1, [r2, #4]
   24812:	6800      	ldr	r0, [r0, #0]
   24814:	f011 faaa 	bl	35d6c <bt_uuid_cmp>
   24818:	b120      	cbz	r0, 24824 <read_type_cb+0x24>
		return BT_GATT_ITER_CONTINUE;
   2481a:	2501      	movs	r5, #1
}
   2481c:	4628      	mov	r0, r5
   2481e:	b003      	add	sp, #12
   24820:	e8bd 83f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, pc}
	data->err = bt_gatt_check_perm(conn, attr, BT_GATT_PERM_READ_MASK);
   24824:	2215      	movs	r2, #21
   24826:	4631      	mov	r1, r6
   24828:	4628      	mov	r0, r5
   2482a:	f013 fb21 	bl	37e70 <bt_gatt_check_perm>
   2482e:	4605      	mov	r5, r0
   24830:	7520      	strb	r0, [r4, #20]
	if (data->err) {
   24832:	b130      	cbz	r0, 24842 <read_type_cb+0x42>
		if (data->rsp->len) {
   24834:	68e3      	ldr	r3, [r4, #12]
   24836:	781b      	ldrb	r3, [r3, #0]
   24838:	b10b      	cbz	r3, 2483e <read_type_cb+0x3e>
			data->err = 0x00;
   2483a:	2300      	movs	r3, #0
   2483c:	7523      	strb	r3, [r4, #20]
		return BT_GATT_ITER_STOP;
   2483e:	2500      	movs	r5, #0
   24840:	e7ec      	b.n	2481c <read_type_cb+0x1c>
	data->err = 0x00;
   24842:	f04f 0900 	mov.w	r9, #0
   24846:	f884 9014 	strb.w	r9, [r4, #20]
	data->item = net_buf_add(net_buf_frag_last(data->buf),
   2484a:	68a0      	ldr	r0, [r4, #8]
   2484c:	f004 ffda 	bl	29804 <net_buf_frag_last>
   24850:	2102      	movs	r1, #2
   24852:	3008      	adds	r0, #8
   24854:	f005 f89c 	bl	29990 <net_buf_simple_add>
   24858:	6120      	str	r0, [r4, #16]
	data->item->handle = sys_cpu_to_le16(handle);
   2485a:	f8a0 8000 	strh.w	r8, [r0]
	read = att_chan_read(chan, attr, data->buf, 0, attr_read_type_cb, data);
   2485e:	9401      	str	r4, [sp, #4]
   24860:	4b11      	ldr	r3, [pc, #68]	; (248a8 <read_type_cb+0xa8>)
   24862:	9300      	str	r3, [sp, #0]
   24864:	464b      	mov	r3, r9
   24866:	68a2      	ldr	r2, [r4, #8]
   24868:	4631      	mov	r1, r6
   2486a:	4638      	mov	r0, r7
   2486c:	f012 fc71 	bl	37152 <att_chan_read>
	if (read < 0) {
   24870:	2800      	cmp	r0, #0
   24872:	db07      	blt.n	24884 <read_type_cb+0x84>
	if (!data->item) {
   24874:	6923      	ldr	r3, [r4, #16]
   24876:	2b00      	cmp	r3, #0
   24878:	d0d0      	beq.n	2481c <read_type_cb+0x1c>
	return chan->chan.tx.mtu - net_buf_frags_len(data->buf) >
   2487a:	f8b7 508a 	ldrh.w	r5, [r7, #138]	; 0x8a
   2487e:	68a3      	ldr	r3, [r4, #8]
 *
 * @return Number of bytes in the buffer and its fragments.
 */
static inline size_t net_buf_frags_len(struct net_buf *buf)
{
	size_t bytes = 0;
   24880:	2200      	movs	r2, #0

	while (buf) {
   24882:	e006      	b.n	24892 <read_type_cb+0x92>
		data->err = err_to_att(read);
   24884:	f012 fa1a 	bl	36cbc <err_to_att>
   24888:	7520      	strb	r0, [r4, #20]
		return BT_GATT_ITER_STOP;
   2488a:	e7c7      	b.n	2481c <read_type_cb+0x1c>
		bytes += buf->len;
   2488c:	8999      	ldrh	r1, [r3, #12]
   2488e:	440a      	add	r2, r1
		buf = buf->frags;
   24890:	681b      	ldr	r3, [r3, #0]
	while (buf) {
   24892:	2b00      	cmp	r3, #0
   24894:	d1fa      	bne.n	2488c <read_type_cb+0x8c>
	return chan->chan.tx.mtu - net_buf_frags_len(data->buf) >
   24896:	1aaa      	subs	r2, r5, r2
	       data->rsp->len ? BT_GATT_ITER_CONTINUE : BT_GATT_ITER_STOP;
   24898:	68e3      	ldr	r3, [r4, #12]
   2489a:	781d      	ldrb	r5, [r3, #0]
   2489c:	42aa      	cmp	r2, r5
   2489e:	bf94      	ite	ls
   248a0:	2500      	movls	r5, #0
   248a2:	2501      	movhi	r5, #1
   248a4:	e7ba      	b.n	2481c <read_type_cb+0x1c>
   248a6:	bf00      	nop
   248a8:	00036ccd 	.word	0x00036ccd

000248ac <find_type_cb>:
{
   248ac:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
   248b0:	b093      	sub	sp, #76	; 0x4c
   248b2:	4606      	mov	r6, r0
   248b4:	460f      	mov	r7, r1
   248b6:	4615      	mov	r5, r2
	struct bt_att_chan *chan = data->chan;
   248b8:	f8d2 8000 	ldr.w	r8, [r2]
	struct bt_conn *conn = chan->chan.chan.conn;
   248bc:	f8d8 9008 	ldr.w	r9, [r8, #8]
	if (!bt_uuid_cmp(attr->uuid, BT_UUID_GATT_SECONDARY)) {
   248c0:	2300      	movs	r3, #0
   248c2:	f88d 3040 	strb.w	r3, [sp, #64]	; 0x40
   248c6:	f642 0301 	movw	r3, #10241	; 0x2801
   248ca:	f8ad 3042 	strh.w	r3, [sp, #66]	; 0x42
   248ce:	a910      	add	r1, sp, #64	; 0x40
   248d0:	6800      	ldr	r0, [r0, #0]
   248d2:	f011 fa4b 	bl	35d6c <bt_uuid_cmp>
   248d6:	b928      	cbnz	r0, 248e4 <find_type_cb+0x38>
	data->group = NULL;
   248d8:	2300      	movs	r3, #0
   248da:	60ab      	str	r3, [r5, #8]
	return BT_GATT_ITER_CONTINUE;
   248dc:	2001      	movs	r0, #1
}
   248de:	b013      	add	sp, #76	; 0x4c
   248e0:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
	if (bt_uuid_cmp(attr->uuid, BT_UUID_GATT_PRIMARY)) {
   248e4:	2300      	movs	r3, #0
   248e6:	f88d 3044 	strb.w	r3, [sp, #68]	; 0x44
   248ea:	f44f 5320 	mov.w	r3, #10240	; 0x2800
   248ee:	f8ad 3046 	strh.w	r3, [sp, #70]	; 0x46
   248f2:	a911      	add	r1, sp, #68	; 0x44
   248f4:	6830      	ldr	r0, [r6, #0]
   248f6:	f011 fa39 	bl	35d6c <bt_uuid_cmp>
   248fa:	b928      	cbnz	r0, 24908 <find_type_cb+0x5c>
	if (chan->chan.tx.mtu - net_buf_frags_len(data->buf) <
   248fc:	f8b8 108a 	ldrh.w	r1, [r8, #138]	; 0x8a
   24900:	6868      	ldr	r0, [r5, #4]
   24902:	4603      	mov	r3, r0
	size_t bytes = 0;
   24904:	2400      	movs	r4, #0
	while (buf) {
   24906:	e00a      	b.n	2491e <find_type_cb+0x72>
		if (data->group &&
   24908:	68ab      	ldr	r3, [r5, #8]
   2490a:	b11b      	cbz	r3, 24914 <find_type_cb+0x68>
		    handle > sys_le16_to_cpu(data->group->end_handle)) {
   2490c:	885a      	ldrh	r2, [r3, #2]
		if (data->group &&
   2490e:	42ba      	cmp	r2, r7
   24910:	d200      	bcs.n	24914 <find_type_cb+0x68>
			data->group->end_handle = sys_cpu_to_le16(handle);
   24912:	805f      	strh	r7, [r3, #2]
		return BT_GATT_ITER_CONTINUE;
   24914:	2001      	movs	r0, #1
   24916:	e7e2      	b.n	248de <find_type_cb+0x32>
		bytes += buf->len;
   24918:	899a      	ldrh	r2, [r3, #12]
   2491a:	4414      	add	r4, r2
		buf = buf->frags;
   2491c:	681b      	ldr	r3, [r3, #0]
	while (buf) {
   2491e:	2b00      	cmp	r3, #0
   24920:	d1fa      	bne.n	24918 <find_type_cb+0x6c>
	if (chan->chan.tx.mtu - net_buf_frags_len(data->buf) <
   24922:	1b0c      	subs	r4, r1, r4
   24924:	2c03      	cmp	r4, #3
   24926:	d801      	bhi.n	2492c <find_type_cb+0x80>
		return BT_GATT_ITER_STOP;
   24928:	2000      	movs	r0, #0
   2492a:	e7d8      	b.n	248de <find_type_cb+0x32>
	frag = net_buf_frag_last(data->buf);
   2492c:	f004 ff6a 	bl	29804 <net_buf_frag_last>
   24930:	4604      	mov	r4, r0
	len = MIN(chan->chan.tx.mtu - net_buf_frags_len(data->buf),
   24932:	f8b8 a08a 	ldrh.w	sl, [r8, #138]	; 0x8a
   24936:	686b      	ldr	r3, [r5, #4]
	size_t bytes = 0;
   24938:	2200      	movs	r2, #0
	while (buf) {
   2493a:	b11b      	cbz	r3, 24944 <find_type_cb+0x98>
		bytes += buf->len;
   2493c:	8999      	ldrh	r1, [r3, #12]
   2493e:	440a      	add	r2, r1
		buf = buf->frags;
   24940:	681b      	ldr	r3, [r3, #0]
   24942:	e7fa      	b.n	2493a <find_type_cb+0x8e>
   24944:	ebaa 0a02 	sub.w	sl, sl, r2
	return net_buf_simple_tailroom(&buf->b);
   24948:	f104 0b08 	add.w	fp, r4, #8
   2494c:	4658      	mov	r0, fp
   2494e:	f014 fbf0 	bl	39132 <net_buf_simple_tailroom>
   24952:	4582      	cmp	sl, r0
   24954:	d22a      	bcs.n	249ac <find_type_cb+0x100>
   24956:	f8b8 008a 	ldrh.w	r0, [r8, #138]	; 0x8a
   2495a:	686b      	ldr	r3, [r5, #4]
	size_t bytes = 0;
   2495c:	2200      	movs	r2, #0
	while (buf) {
   2495e:	e002      	b.n	24966 <find_type_cb+0xba>
		bytes += buf->len;
   24960:	8999      	ldrh	r1, [r3, #12]
   24962:	440a      	add	r2, r1
		buf = buf->frags;
   24964:	681b      	ldr	r3, [r3, #0]
	while (buf) {
   24966:	2b00      	cmp	r3, #0
   24968:	d1fa      	bne.n	24960 <find_type_cb+0xb4>
   2496a:	1a80      	subs	r0, r0, r2
	if (!len) {
   2496c:	b310      	cbz	r0, 249b4 <find_type_cb+0x108>
	read = attr->read(conn, attr, uuid, sizeof(uuid), 0);
   2496e:	f8d6 8004 	ldr.w	r8, [r6, #4]
   24972:	2300      	movs	r3, #0
   24974:	9300      	str	r3, [sp, #0]
   24976:	2310      	movs	r3, #16
   24978:	aa0c      	add	r2, sp, #48	; 0x30
   2497a:	4631      	mov	r1, r6
   2497c:	4648      	mov	r0, r9
   2497e:	47c0      	blx	r8
	if (read < 0) {
   24980:	1e06      	subs	r6, r0, #0
   24982:	dba9      	blt.n	248d8 <find_type_cb+0x2c>
	if (read != data->value_len) {
   24984:	7c2a      	ldrb	r2, [r5, #16]
   24986:	42b2      	cmp	r2, r6
   24988:	d030      	beq.n	249ec <find_type_cb+0x140>
		if (!bt_uuid_create(&recvd_uuid.uuid, data->value, data->value_len)) {
   2498a:	68e9      	ldr	r1, [r5, #12]
   2498c:	a807      	add	r0, sp, #28
   2498e:	f011 fa0b 	bl	35da8 <bt_uuid_create>
   24992:	b1f8      	cbz	r0, 249d4 <find_type_cb+0x128>
		if (!bt_uuid_create(&ref_uuid.uuid, uuid, read)) {
   24994:	b2f2      	uxtb	r2, r6
   24996:	a90c      	add	r1, sp, #48	; 0x30
   24998:	a802      	add	r0, sp, #8
   2499a:	f011 fa05 	bl	35da8 <bt_uuid_create>
   2499e:	b1f8      	cbz	r0, 249e0 <find_type_cb+0x134>
		if (bt_uuid_cmp(&recvd_uuid.uuid, &ref_uuid.uuid)) {
   249a0:	a902      	add	r1, sp, #8
   249a2:	a807      	add	r0, sp, #28
   249a4:	f011 f9e2 	bl	35d6c <bt_uuid_cmp>
   249a8:	b340      	cbz	r0, 249fc <find_type_cb+0x150>
   249aa:	e795      	b.n	248d8 <find_type_cb+0x2c>
	return net_buf_simple_tailroom(&buf->b);
   249ac:	4658      	mov	r0, fp
   249ae:	f014 fbc0 	bl	39132 <net_buf_simple_tailroom>
   249b2:	e7db      	b.n	2496c <find_type_cb+0xc0>
		frag = net_buf_alloc(net_buf_pool_get(data->buf->pool_id),
   249b4:	686b      	ldr	r3, [r5, #4]
   249b6:	7998      	ldrb	r0, [r3, #6]
   249b8:	f004 fd68 	bl	2948c <net_buf_pool_get>
	return net_buf_alloc_fixed(pool, timeout);
   249bc:	2200      	movs	r2, #0
   249be:	2300      	movs	r3, #0
   249c0:	f014 fba4 	bl	3910c <net_buf_alloc_fixed>
		if (!frag) {
   249c4:	4604      	mov	r4, r0
   249c6:	2800      	cmp	r0, #0
   249c8:	d089      	beq.n	248de <find_type_cb+0x32>
		net_buf_frag_add(data->buf, frag);
   249ca:	4601      	mov	r1, r0
   249cc:	6868      	ldr	r0, [r5, #4]
   249ce:	f004 ff5f 	bl	29890 <net_buf_frag_add>
   249d2:	e7cc      	b.n	2496e <find_type_cb+0xc2>
			BT_WARN("Unable to create UUID: size %u", data->value_len);
   249d4:	7c2a      	ldrb	r2, [r5, #16]
   249d6:	2157      	movs	r1, #87	; 0x57
   249d8:	480f      	ldr	r0, [pc, #60]	; (24a18 <find_type_cb+0x16c>)
   249da:	f00f f887 	bl	33aec <z_log_minimal_printk>
			goto skip;
   249de:	e77b      	b.n	248d8 <find_type_cb+0x2c>
			BT_WARN("Unable to create UUID: size %d", read);
   249e0:	4632      	mov	r2, r6
   249e2:	2157      	movs	r1, #87	; 0x57
   249e4:	480d      	ldr	r0, [pc, #52]	; (24a1c <find_type_cb+0x170>)
   249e6:	f00f f881 	bl	33aec <z_log_minimal_printk>
			goto skip;
   249ea:	e775      	b.n	248d8 <find_type_cb+0x2c>
	} else if (memcmp(data->value, uuid, read)) {
   249ec:	4632      	mov	r2, r6
   249ee:	a90c      	add	r1, sp, #48	; 0x30
   249f0:	68e8      	ldr	r0, [r5, #12]
   249f2:	f011 f86c 	bl	35ace <memcmp>
   249f6:	2800      	cmp	r0, #0
   249f8:	f47f af6e 	bne.w	248d8 <find_type_cb+0x2c>
	data->err = 0x00;
   249fc:	2300      	movs	r3, #0
   249fe:	746b      	strb	r3, [r5, #17]
	return net_buf_simple_add(&buf->b, len);
   24a00:	2104      	movs	r1, #4
   24a02:	f104 0008 	add.w	r0, r4, #8
   24a06:	f004 ffc3 	bl	29990 <net_buf_simple_add>
	data->group = net_buf_add(frag, sizeof(*data->group));
   24a0a:	60a8      	str	r0, [r5, #8]
	data->group->start_handle = sys_cpu_to_le16(handle);
   24a0c:	8007      	strh	r7, [r0, #0]
	data->group->end_handle = sys_cpu_to_le16(handle);
   24a0e:	68ab      	ldr	r3, [r5, #8]
   24a10:	805f      	strh	r7, [r3, #2]
	return BT_GATT_ITER_CONTINUE;
   24a12:	2001      	movs	r0, #1
   24a14:	e763      	b.n	248de <find_type_cb+0x32>
   24a16:	bf00      	nop
   24a18:	0003de40 	.word	0x0003de40
   24a1c:	0003de64 	.word	0x0003de64

00024a20 <att_get_fixed_chan>:
{
   24a20:	b538      	push	{r3, r4, r5, lr}
	chan = bt_l2cap_le_lookup_tx_cid(conn, BT_L2CAP_CID_ATT);
   24a22:	2104      	movs	r1, #4
   24a24:	f012 f8e0 	bl	36be8 <bt_l2cap_le_lookup_tx_cid>
	__ASSERT(chan, "No ATT channel found");
   24a28:	4604      	mov	r4, r0
   24a2a:	b110      	cbz	r0, 24a32 <att_get_fixed_chan+0x12>
}
   24a2c:	f1a4 0008 	sub.w	r0, r4, #8
   24a30:	bd38      	pop	{r3, r4, r5, pc}
	__ASSERT(chan, "No ATT channel found");
   24a32:	4d06      	ldr	r5, [pc, #24]	; (24a4c <att_get_fixed_chan+0x2c>)
   24a34:	f640 2229 	movw	r2, #2601	; 0xa29
   24a38:	4629      	mov	r1, r5
   24a3a:	4805      	ldr	r0, [pc, #20]	; (24a50 <att_get_fixed_chan+0x30>)
   24a3c:	f00e fcb5 	bl	333aa <printk>
   24a40:	f640 2129 	movw	r1, #2601	; 0xa29
   24a44:	4628      	mov	r0, r5
   24a46:	f00f f849 	bl	33adc <assert_post_action>
   24a4a:	e7ef      	b.n	24a2c <att_get_fixed_chan+0xc>
   24a4c:	0003de10 	.word	0x0003de10
   24a50:	0003bdac 	.word	0x0003bdac

00024a54 <bt_att_connected>:
{
   24a54:	b538      	push	{r3, r4, r5, lr}
   24a56:	4604      	mov	r4, r0
	struct bt_att_chan *att_chan = att_get_fixed_chan(chan->conn);
   24a58:	4605      	mov	r5, r0
   24a5a:	f855 0908 	ldr.w	r0, [r5], #-8
   24a5e:	f7ff ffdf 	bl	24a20 <att_get_fixed_chan>
	att_chan_attach(att, att_chan);
   24a62:	4629      	mov	r1, r5
   24a64:	6800      	ldr	r0, [r0, #0]
   24a66:	f012 f9dd 	bl	36e24 <att_chan_attach>
	return __atomic_load_n(target, __ATOMIC_SEQ_CST);
   24a6a:	f3bf 8f5b 	dmb	ish
   24a6e:	f8d4 30f0 	ldr.w	r3, [r4, #240]	; 0xf0
   24a72:	f3bf 8f5b 	dmb	ish
	if (!atomic_test_bit(att_chan->flags, ATT_ENHANCED)) {
   24a76:	f013 0f08 	tst.w	r3, #8
   24a7a:	d104      	bne.n	24a86 <bt_att_connected+0x32>
		ch->tx.mtu = BT_ATT_DEFAULT_LE_MTU;
   24a7c:	2317      	movs	r3, #23
   24a7e:	f8a4 3082 	strh.w	r3, [r4, #130]	; 0x82
		ch->rx.mtu = BT_ATT_DEFAULT_LE_MTU;
   24a82:	f8a4 3072 	strh.w	r3, [r4, #114]	; 0x72
	att_chan_mtu_updated(att_chan);
   24a86:	4628      	mov	r0, r5
   24a88:	f012 fc8e 	bl	373a8 <att_chan_mtu_updated>
	k_work_init_delayable(&att_chan->timeout_work, att_timeout);
   24a8c:	4902      	ldr	r1, [pc, #8]	; (24a98 <bt_att_connected+0x44>)
   24a8e:	f504 708c 	add.w	r0, r4, #280	; 0x118
   24a92:	f00b fe73 	bl	3077c <k_work_init_delayable>
}
   24a96:	bd38      	pop	{r3, r4, r5, pc}
   24a98:	000252e9 	.word	0x000252e9

00024a9c <bt_att_chan_create_pdu>:
{
   24a9c:	b538      	push	{r3, r4, r5, lr}
	if (len + sizeof(op) > chan->chan.tx.mtu) {
   24a9e:	1c53      	adds	r3, r2, #1
   24aa0:	f8b0 208a 	ldrh.w	r2, [r0, #138]	; 0x8a
   24aa4:	4293      	cmp	r3, r2
   24aa6:	d811      	bhi.n	24acc <bt_att_chan_create_pdu+0x30>
   24aa8:	460d      	mov	r5, r1
	switch (att_op_get_type(op)) {
   24aaa:	4608      	mov	r0, r1
   24aac:	f012 f939 	bl	36d22 <att_op_get_type>
   24ab0:	2802      	cmp	r0, #2
   24ab2:	d011      	beq.n	24ad8 <bt_att_chan_create_pdu+0x3c>
   24ab4:	2804      	cmp	r0, #4
   24ab6:	d00f      	beq.n	24ad8 <bt_att_chan_create_pdu+0x3c>
		buf = bt_l2cap_create_pdu(NULL, 0);
   24ab8:	f04f 32ff 	mov.w	r2, #4294967295
   24abc:	f04f 33ff 	mov.w	r3, #4294967295
   24ac0:	2100      	movs	r1, #0
   24ac2:	4608      	mov	r0, r1
   24ac4:	f012 f849 	bl	36b5a <bt_l2cap_create_pdu_timeout>
   24ac8:	4604      	mov	r4, r0
   24aca:	e00d      	b.n	24ae8 <bt_att_chan_create_pdu+0x4c>
		BT_WARN("ATT MTU exceeded, max %u, wanted %zu",
   24acc:	2157      	movs	r1, #87	; 0x57
   24ace:	480e      	ldr	r0, [pc, #56]	; (24b08 <bt_att_chan_create_pdu+0x6c>)
   24ad0:	f00f f80c 	bl	33aec <z_log_minimal_printk>
		return NULL;
   24ad4:	2400      	movs	r4, #0
   24ad6:	e00e      	b.n	24af6 <bt_att_chan_create_pdu+0x5a>
		buf = bt_l2cap_create_pdu_timeout(NULL, 0, BT_ATT_TIMEOUT);
   24ad8:	f44f 2270 	mov.w	r2, #983040	; 0xf0000
   24adc:	2300      	movs	r3, #0
   24ade:	2100      	movs	r1, #0
   24ae0:	4608      	mov	r0, r1
   24ae2:	f012 f83a 	bl	36b5a <bt_l2cap_create_pdu_timeout>
   24ae6:	4604      	mov	r4, r0
	if (!buf) {
   24ae8:	b13c      	cbz	r4, 24afa <bt_att_chan_create_pdu+0x5e>
   24aea:	2101      	movs	r1, #1
   24aec:	f104 0008 	add.w	r0, r4, #8
   24af0:	f004 ff4e 	bl	29990 <net_buf_simple_add>
	hdr->code = op;
   24af4:	7005      	strb	r5, [r0, #0]
}
   24af6:	4620      	mov	r0, r4
   24af8:	bd38      	pop	{r3, r4, r5, pc}
		BT_ERR("Unable to allocate buffer for op 0x%02x", op);
   24afa:	462a      	mov	r2, r5
   24afc:	2145      	movs	r1, #69	; 0x45
   24afe:	4803      	ldr	r0, [pc, #12]	; (24b0c <bt_att_chan_create_pdu+0x70>)
   24b00:	f00e fff4 	bl	33aec <z_log_minimal_printk>
		return NULL;
   24b04:	e7f7      	b.n	24af6 <bt_att_chan_create_pdu+0x5a>
   24b06:	bf00      	nop
   24b08:	0003de88 	.word	0x0003de88
   24b0c:	0003dbc4 	.word	0x0003dbc4

00024b10 <send_err_rsp>:
	if (!req) {
   24b10:	b901      	cbnz	r1, 24b14 <send_err_rsp+0x4>
   24b12:	4770      	bx	lr
{
   24b14:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   24b18:	4606      	mov	r6, r0
   24b1a:	4615      	mov	r5, r2
   24b1c:	461c      	mov	r4, r3
   24b1e:	460f      	mov	r7, r1
	buf = bt_att_chan_create_pdu(chan, BT_ATT_OP_ERROR_RSP, sizeof(*rsp));
   24b20:	2204      	movs	r2, #4
   24b22:	2101      	movs	r1, #1
   24b24:	f7ff ffba 	bl	24a9c <bt_att_chan_create_pdu>
	if (!buf) {
   24b28:	4680      	mov	r8, r0
   24b2a:	b160      	cbz	r0, 24b46 <send_err_rsp+0x36>
   24b2c:	2104      	movs	r1, #4
   24b2e:	3008      	adds	r0, #8
   24b30:	f004 ff2e 	bl	29990 <net_buf_simple_add>
	rsp->request = req;
   24b34:	7007      	strb	r7, [r0, #0]
	rsp->handle = sys_cpu_to_le16(handle);
   24b36:	f8a0 5001 	strh.w	r5, [r0, #1]
	rsp->error = err;
   24b3a:	70c4      	strb	r4, [r0, #3]
	bt_att_chan_send_rsp(chan, buf, chan_rsp_sent);
   24b3c:	4a03      	ldr	r2, [pc, #12]	; (24b4c <send_err_rsp+0x3c>)
   24b3e:	4641      	mov	r1, r8
   24b40:	4630      	mov	r0, r6
   24b42:	f012 faf9 	bl	37138 <bt_att_chan_send_rsp>
}
   24b46:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
   24b4a:	bf00      	nop
   24b4c:	00036f95 	.word	0x00036f95

00024b50 <bt_att_recv>:
{
   24b50:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
	if (buf->len < sizeof(*hdr)) {
   24b54:	898b      	ldrh	r3, [r1, #12]
   24b56:	b1bb      	cbz	r3, 24b88 <bt_att_recv+0x38>
   24b58:	4607      	mov	r7, r0
   24b5a:	460e      	mov	r6, r1
   24b5c:	f1a0 0808 	sub.w	r8, r0, #8
	return net_buf_simple_pull_mem(&buf->b, len);
   24b60:	2101      	movs	r1, #1
   24b62:	f106 0008 	add.w	r0, r6, #8
   24b66:	f004 fed3 	bl	29910 <net_buf_simple_pull_mem>
   24b6a:	4605      	mov	r5, r0
	if (!att_chan->att) {
   24b6c:	f857 3c08 	ldr.w	r3, [r7, #-8]
   24b70:	b173      	cbz	r3, 24b90 <bt_att_recv+0x40>
	for (i = 0, handler = NULL; i < ARRAY_SIZE(handlers); i++) {
   24b72:	2300      	movs	r3, #0
   24b74:	2b0c      	cmp	r3, #12
   24b76:	d812      	bhi.n	24b9e <bt_att_recv+0x4e>
		if (hdr->code == handlers[i].op) {
   24b78:	782c      	ldrb	r4, [r5, #0]
   24b7a:	4a39      	ldr	r2, [pc, #228]	; (24c60 <bt_att_recv+0x110>)
   24b7c:	f812 2033 	ldrb.w	r2, [r2, r3, lsl #3]
   24b80:	4294      	cmp	r4, r2
   24b82:	d008      	beq.n	24b96 <bt_att_recv+0x46>
	for (i = 0, handler = NULL; i < ARRAY_SIZE(handlers); i++) {
   24b84:	3301      	adds	r3, #1
   24b86:	e7f5      	b.n	24b74 <bt_att_recv+0x24>
		BT_ERR("Too small ATT PDU received");
   24b88:	2145      	movs	r1, #69	; 0x45
   24b8a:	4836      	ldr	r0, [pc, #216]	; (24c64 <bt_att_recv+0x114>)
   24b8c:	f00e ffae 	bl	33aec <z_log_minimal_printk>
}
   24b90:	2000      	movs	r0, #0
   24b92:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
			handler = &handlers[i];
   24b96:	4c32      	ldr	r4, [pc, #200]	; (24c60 <bt_att_recv+0x110>)
   24b98:	eb04 04c3 	add.w	r4, r4, r3, lsl #3
			break;
   24b9c:	e000      	b.n	24ba0 <bt_att_recv+0x50>
	for (i = 0, handler = NULL; i < ARRAY_SIZE(handlers); i++) {
   24b9e:	2400      	movs	r4, #0
	if (!handler) {
   24ba0:	b1cc      	cbz	r4, 24bd6 <bt_att_recv+0x86>
		if (handler->type == ATT_REQUEST &&
   24ba2:	78a3      	ldrb	r3, [r4, #2]
   24ba4:	2b01      	cmp	r3, #1
   24ba6:	d028      	beq.n	24bfa <bt_att_recv+0xaa>
		} else if (handler->type == ATT_INDICATION &&
   24ba8:	78a3      	ldrb	r3, [r4, #2]
   24baa:	2b05      	cmp	r3, #5
   24bac:	d03b      	beq.n	24c26 <bt_att_recv+0xd6>
	if (buf->len < handler->expect_len) {
   24bae:	89b2      	ldrh	r2, [r6, #12]
   24bb0:	7863      	ldrb	r3, [r4, #1]
   24bb2:	429a      	cmp	r2, r3
   24bb4:	d34c      	bcc.n	24c50 <bt_att_recv+0x100>
		err = handler->func(att_chan, buf);
   24bb6:	6863      	ldr	r3, [r4, #4]
   24bb8:	4631      	mov	r1, r6
   24bba:	4640      	mov	r0, r8
   24bbc:	4798      	blx	r3
	if (handler->type == ATT_REQUEST && err) {
   24bbe:	78a3      	ldrb	r3, [r4, #2]
   24bc0:	2b01      	cmp	r3, #1
   24bc2:	d1e5      	bne.n	24b90 <bt_att_recv+0x40>
   24bc4:	2800      	cmp	r0, #0
   24bc6:	d0e3      	beq.n	24b90 <bt_att_recv+0x40>
		send_err_rsp(att_chan, hdr->code, 0, err);
   24bc8:	4603      	mov	r3, r0
   24bca:	2200      	movs	r2, #0
   24bcc:	7829      	ldrb	r1, [r5, #0]
   24bce:	4640      	mov	r0, r8
   24bd0:	f7ff ff9e 	bl	24b10 <send_err_rsp>
   24bd4:	e7dc      	b.n	24b90 <bt_att_recv+0x40>
		BT_WARN("Unhandled ATT code 0x%02x", hdr->code);
   24bd6:	782a      	ldrb	r2, [r5, #0]
   24bd8:	2157      	movs	r1, #87	; 0x57
   24bda:	4823      	ldr	r0, [pc, #140]	; (24c68 <bt_att_recv+0x118>)
   24bdc:	f00e ff86 	bl	33aec <z_log_minimal_printk>
		if (att_op_get_type(hdr->code) != ATT_COMMAND) {
   24be0:	782c      	ldrb	r4, [r5, #0]
   24be2:	4620      	mov	r0, r4
   24be4:	f012 f89d 	bl	36d22 <att_op_get_type>
   24be8:	2800      	cmp	r0, #0
   24bea:	d0d1      	beq.n	24b90 <bt_att_recv+0x40>
			send_err_rsp(att_chan, hdr->code, 0,
   24bec:	2306      	movs	r3, #6
   24bee:	2200      	movs	r2, #0
   24bf0:	4621      	mov	r1, r4
   24bf2:	4640      	mov	r0, r8
   24bf4:	f7ff ff8c 	bl	24b10 <send_err_rsp>
		return 0;
   24bf8:	e7ca      	b.n	24b90 <bt_att_recv+0x40>
		    atomic_test_and_set_bit(att_chan->flags, ATT_PENDING_RSP)) {
   24bfa:	f107 03f0 	add.w	r3, r7, #240	; 0xf0
	return __atomic_fetch_or(target, value, __ATOMIC_SEQ_CST);
   24bfe:	f3bf 8f5b 	dmb	ish
   24c02:	e853 2f00 	ldrex	r2, [r3]
   24c06:	f042 0101 	orr.w	r1, r2, #1
   24c0a:	e843 1000 	strex	r0, r1, [r3]
   24c0e:	2800      	cmp	r0, #0
   24c10:	d1f7      	bne.n	24c02 <bt_att_recv+0xb2>
   24c12:	f3bf 8f5b 	dmb	ish
		if (handler->type == ATT_REQUEST &&
   24c16:	f012 0f01 	tst.w	r2, #1
   24c1a:	d0c5      	beq.n	24ba8 <bt_att_recv+0x58>
			BT_WARN("Ignoring unexpected request");
   24c1c:	2157      	movs	r1, #87	; 0x57
   24c1e:	4813      	ldr	r0, [pc, #76]	; (24c6c <bt_att_recv+0x11c>)
   24c20:	f00e ff64 	bl	33aec <z_log_minimal_printk>
			return 0;
   24c24:	e7b4      	b.n	24b90 <bt_att_recv+0x40>
			   atomic_test_and_set_bit(att_chan->flags,
   24c26:	37f0      	adds	r7, #240	; 0xf0
   24c28:	f3bf 8f5b 	dmb	ish
   24c2c:	e857 3f00 	ldrex	r3, [r7]
   24c30:	f043 0202 	orr.w	r2, r3, #2
   24c34:	e847 2100 	strex	r1, r2, [r7]
   24c38:	2900      	cmp	r1, #0
   24c3a:	d1f7      	bne.n	24c2c <bt_att_recv+0xdc>
   24c3c:	f3bf 8f5b 	dmb	ish
		} else if (handler->type == ATT_INDICATION &&
   24c40:	f013 0f02 	tst.w	r3, #2
   24c44:	d0b3      	beq.n	24bae <bt_att_recv+0x5e>
			BT_WARN("Ignoring unexpected indication");
   24c46:	2157      	movs	r1, #87	; 0x57
   24c48:	4809      	ldr	r0, [pc, #36]	; (24c70 <bt_att_recv+0x120>)
   24c4a:	f00e ff4f 	bl	33aec <z_log_minimal_printk>
			return 0;
   24c4e:	e79f      	b.n	24b90 <bt_att_recv+0x40>
		BT_ERR("Invalid len %u for code 0x%02x", buf->len, hdr->code);
   24c50:	782b      	ldrb	r3, [r5, #0]
   24c52:	2145      	movs	r1, #69	; 0x45
   24c54:	4807      	ldr	r0, [pc, #28]	; (24c74 <bt_att_recv+0x124>)
   24c56:	f00e ff49 	bl	33aec <z_log_minimal_printk>
		err = BT_ATT_ERR_INVALID_PDU;
   24c5a:	2004      	movs	r0, #4
   24c5c:	e7af      	b.n	24bbe <bt_att_recv+0x6e>
   24c5e:	bf00      	nop
   24c60:	0003dfb8 	.word	0x0003dfb8
   24c64:	0003deb4 	.word	0x0003deb4
   24c68:	0003ded4 	.word	0x0003ded4
   24c6c:	0003def4 	.word	0x0003def4
   24c70:	0003df18 	.word	0x0003df18
   24c74:	0003df3c 	.word	0x0003df3c

00024c78 <att_write_rsp>:
{
   24c78:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   24c7c:	b08a      	sub	sp, #40	; 0x28
   24c7e:	4604      	mov	r4, r0
   24c80:	4617      	mov	r7, r2
   24c82:	461d      	mov	r5, r3
	if (!bt_gatt_change_aware(chan->att->conn, req ? true : false)) {
   24c84:	6803      	ldr	r3, [r0, #0]
   24c86:	4688      	mov	r8, r1
   24c88:	3900      	subs	r1, #0
   24c8a:	bf18      	it	ne
   24c8c:	2101      	movne	r1, #1
   24c8e:	6818      	ldr	r0, [r3, #0]
   24c90:	f013 f91f 	bl	37ed2 <bt_gatt_change_aware>
   24c94:	2800      	cmp	r0, #0
   24c96:	d04f      	beq.n	24d38 <att_write_rsp+0xc0>
	if (!handle) {
   24c98:	b925      	cbnz	r5, 24ca4 <att_write_rsp+0x2c>
		return BT_ATT_ERR_INVALID_HANDLE;
   24c9a:	2601      	movs	r6, #1
}
   24c9c:	4630      	mov	r0, r6
   24c9e:	b00a      	add	sp, #40	; 0x28
   24ca0:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
	(void)memset(&data, 0, sizeof(data));
   24ca4:	2218      	movs	r2, #24
   24ca6:	2100      	movs	r1, #0
   24ca8:	a804      	add	r0, sp, #16
   24caa:	f010 ff4b 	bl	35b44 <memset>
	if (rsp) {
   24cae:	b13f      	cbz	r7, 24cc0 <att_write_rsp+0x48>
		data.buf = bt_att_chan_create_pdu(chan, rsp, 0);
   24cb0:	2200      	movs	r2, #0
   24cb2:	4639      	mov	r1, r7
   24cb4:	4620      	mov	r0, r4
   24cb6:	f7ff fef1 	bl	24a9c <bt_att_chan_create_pdu>
   24cba:	9005      	str	r0, [sp, #20]
		if (!data.buf) {
   24cbc:	2800      	cmp	r0, #0
   24cbe:	d03d      	beq.n	24d3c <att_write_rsp+0xc4>
	data.conn = chan->att->conn;
   24cc0:	6823      	ldr	r3, [r4, #0]
   24cc2:	681b      	ldr	r3, [r3, #0]
   24cc4:	9304      	str	r3, [sp, #16]
	data.req = req;
   24cc6:	f88d 8018 	strb.w	r8, [sp, #24]
	data.offset = offset;
   24cca:	f8bd 3040 	ldrh.w	r3, [sp, #64]	; 0x40
   24cce:	f8ad 3022 	strh.w	r3, [sp, #34]	; 0x22
	data.value = value;
   24cd2:	9b11      	ldr	r3, [sp, #68]	; 0x44
   24cd4:	9307      	str	r3, [sp, #28]
	data.len = len;
   24cd6:	f8bd 3048 	ldrh.w	r3, [sp, #72]	; 0x48
   24cda:	f8ad 3020 	strh.w	r3, [sp, #32]
	data.err = BT_ATT_ERR_INVALID_HANDLE;
   24cde:	2301      	movs	r3, #1
   24ce0:	f88d 3024 	strb.w	r3, [sp, #36]	; 0x24
	bt_gatt_foreach_attr_type(start_handle, end_handle, NULL, NULL, 0, func,
   24ce4:	ab04      	add	r3, sp, #16
   24ce6:	9302      	str	r3, [sp, #8]
   24ce8:	4b15      	ldr	r3, [pc, #84]	; (24d40 <att_write_rsp+0xc8>)
   24cea:	9301      	str	r3, [sp, #4]
   24cec:	2200      	movs	r2, #0
   24cee:	9200      	str	r2, [sp, #0]
   24cf0:	4613      	mov	r3, r2
   24cf2:	4629      	mov	r1, r5
   24cf4:	4628      	mov	r0, r5
   24cf6:	f001 f9f1 	bl	260dc <bt_gatt_foreach_attr_type>
	if (data.err) {
   24cfa:	f89d 6024 	ldrb.w	r6, [sp, #36]	; 0x24
   24cfe:	b93e      	cbnz	r6, 24d10 <att_write_rsp+0x98>
	if (data.buf) {
   24d00:	9905      	ldr	r1, [sp, #20]
   24d02:	2900      	cmp	r1, #0
   24d04:	d0ca      	beq.n	24c9c <att_write_rsp+0x24>
		bt_att_chan_send_rsp(chan, data.buf, chan_rsp_sent);
   24d06:	4a0f      	ldr	r2, [pc, #60]	; (24d44 <att_write_rsp+0xcc>)
   24d08:	4620      	mov	r0, r4
   24d0a:	f012 fa15 	bl	37138 <bt_att_chan_send_rsp>
   24d0e:	e7c5      	b.n	24c9c <att_write_rsp+0x24>
		if (rsp) {
   24d10:	b927      	cbnz	r7, 24d1c <att_write_rsp+0xa4>
		return req == BT_ATT_OP_EXEC_WRITE_REQ ? data.err : 0;
   24d12:	f1b8 0f18 	cmp.w	r8, #24
   24d16:	d00c      	beq.n	24d32 <att_write_rsp+0xba>
   24d18:	2600      	movs	r6, #0
   24d1a:	e7bf      	b.n	24c9c <att_write_rsp+0x24>
			net_buf_unref(data.buf);
   24d1c:	9805      	ldr	r0, [sp, #20]
   24d1e:	f004 fd1f 	bl	29760 <net_buf_unref>
			send_err_rsp(chan, req, handle, data.err);
   24d22:	f89d 3024 	ldrb.w	r3, [sp, #36]	; 0x24
   24d26:	462a      	mov	r2, r5
   24d28:	4641      	mov	r1, r8
   24d2a:	4620      	mov	r0, r4
   24d2c:	f7ff fef0 	bl	24b10 <send_err_rsp>
   24d30:	e7ef      	b.n	24d12 <att_write_rsp+0x9a>
		return req == BT_ATT_OP_EXEC_WRITE_REQ ? data.err : 0;
   24d32:	f89d 6024 	ldrb.w	r6, [sp, #36]	; 0x24
   24d36:	e7b1      	b.n	24c9c <att_write_rsp+0x24>
		return BT_ATT_ERR_DB_OUT_OF_SYNC;
   24d38:	2612      	movs	r6, #18
   24d3a:	e7af      	b.n	24c9c <att_write_rsp+0x24>
			return BT_ATT_ERR_UNLIKELY;
   24d3c:	260e      	movs	r6, #14
   24d3e:	e7ad      	b.n	24c9c <att_write_rsp+0x24>
   24d40:	000370e3 	.word	0x000370e3
   24d44:	00036f95 	.word	0x00036f95

00024d48 <bt_att_create_pdu>:
{
   24d48:	b570      	push	{r4, r5, r6, lr}
   24d4a:	460e      	mov	r6, r1
   24d4c:	4615      	mov	r5, r2
	att = att_get(conn);
   24d4e:	f7ff fbad 	bl	244ac <att_get>
	if (!att) {
   24d52:	4604      	mov	r4, r0
   24d54:	b360      	cbz	r0, 24db0 <bt_att_create_pdu+0x68>
	return list->head;
   24d56:	6a84      	ldr	r4, [r0, #40]	; 0x28
	SYS_SLIST_FOR_EACH_CONTAINER_SAFE(&att->chans, chan, tmp, node) {
   24d58:	b15c      	cbz	r4, 24d72 <bt_att_create_pdu+0x2a>
   24d5a:	f5b4 74aa 	subs.w	r4, r4, #340	; 0x154
   24d5e:	d00a      	beq.n	24d76 <bt_att_create_pdu+0x2e>
Z_GENLIST_PEEK_NEXT(slist, snode)
   24d60:	f514 70aa 	adds.w	r0, r4, #340	; 0x154
   24d64:	d00c      	beq.n	24d80 <bt_att_create_pdu+0x38>
	return node->next;
   24d66:	f8d4 0154 	ldr.w	r0, [r4, #340]	; 0x154
   24d6a:	b148      	cbz	r0, 24d80 <bt_att_create_pdu+0x38>
   24d6c:	f5a0 70aa 	sub.w	r0, r0, #340	; 0x154
   24d70:	e006      	b.n	24d80 <bt_att_create_pdu+0x38>
   24d72:	4620      	mov	r0, r4
   24d74:	e004      	b.n	24d80 <bt_att_create_pdu+0x38>
   24d76:	4620      	mov	r0, r4
   24d78:	e002      	b.n	24d80 <bt_att_create_pdu+0x38>
   24d7a:	4603      	mov	r3, r0
   24d7c:	4604      	mov	r4, r0
   24d7e:	4618      	mov	r0, r3
   24d80:	b1c4      	cbz	r4, 24db4 <bt_att_create_pdu+0x6c>
		if (len + sizeof(op) > chan->chan.tx.mtu) {
   24d82:	1c6b      	adds	r3, r5, #1
   24d84:	f8b4 208a 	ldrh.w	r2, [r4, #138]	; 0x8a
   24d88:	4293      	cmp	r3, r2
   24d8a:	d90b      	bls.n	24da4 <bt_att_create_pdu+0x5c>
	SYS_SLIST_FOR_EACH_CONTAINER_SAFE(&att->chans, chan, tmp, node) {
   24d8c:	2800      	cmp	r0, #0
   24d8e:	d0f4      	beq.n	24d7a <bt_att_create_pdu+0x32>
Z_GENLIST_PEEK_NEXT(slist, snode)
   24d90:	f510 73aa 	adds.w	r3, r0, #340	; 0x154
   24d94:	d0f2      	beq.n	24d7c <bt_att_create_pdu+0x34>
	return node->next;
   24d96:	f8d0 3154 	ldr.w	r3, [r0, #340]	; 0x154
   24d9a:	2b00      	cmp	r3, #0
   24d9c:	d0ee      	beq.n	24d7c <bt_att_create_pdu+0x34>
   24d9e:	f5a3 73aa 	sub.w	r3, r3, #340	; 0x154
   24da2:	e7eb      	b.n	24d7c <bt_att_create_pdu+0x34>
		return bt_att_chan_create_pdu(chan, op, len);
   24da4:	462a      	mov	r2, r5
   24da6:	4631      	mov	r1, r6
   24da8:	4620      	mov	r0, r4
   24daa:	f7ff fe77 	bl	24a9c <bt_att_chan_create_pdu>
   24dae:	4604      	mov	r4, r0
}
   24db0:	4620      	mov	r0, r4
   24db2:	bd70      	pop	{r4, r5, r6, pc}
	BT_WARN("No ATT channel for MTU %zu", len + sizeof(op));
   24db4:	1c6a      	adds	r2, r5, #1
   24db6:	2157      	movs	r1, #87	; 0x57
   24db8:	4801      	ldr	r0, [pc, #4]	; (24dc0 <bt_att_create_pdu+0x78>)
   24dba:	f00e fe97 	bl	33aec <z_log_minimal_printk>
	return NULL;
   24dbe:	e7f7      	b.n	24db0 <bt_att_create_pdu+0x68>
   24dc0:	0003df60 	.word	0x0003df60

00024dc4 <att_read_group_rsp>:
{
   24dc4:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   24dc8:	b08a      	sub	sp, #40	; 0x28
   24dca:	4604      	mov	r4, r0
   24dcc:	460f      	mov	r7, r1
   24dce:	4615      	mov	r5, r2
   24dd0:	461e      	mov	r6, r3
	struct bt_conn *conn = chan->chan.chan.conn;
   24dd2:	f8d0 8008 	ldr.w	r8, [r0, #8]
	(void)memset(&data, 0, sizeof(data));
   24dd6:	2214      	movs	r2, #20
   24dd8:	2100      	movs	r1, #0
   24dda:	eb0d 0002 	add.w	r0, sp, r2
   24dde:	f010 feb1 	bl	35b44 <memset>
	data.buf = bt_att_create_pdu(conn, BT_ATT_OP_READ_GROUP_RSP,
   24de2:	2201      	movs	r2, #1
   24de4:	2111      	movs	r1, #17
   24de6:	4640      	mov	r0, r8
   24de8:	f7ff ffae 	bl	24d48 <bt_att_create_pdu>
   24dec:	9007      	str	r0, [sp, #28]
	if (!data.buf) {
   24dee:	b350      	cbz	r0, 24e46 <att_read_group_rsp+0x82>
	data.chan = chan;
   24df0:	9405      	str	r4, [sp, #20]
	data.uuid = uuid;
   24df2:	9706      	str	r7, [sp, #24]
	return net_buf_simple_add(&buf->b, len);
   24df4:	2101      	movs	r1, #1
   24df6:	3008      	adds	r0, #8
   24df8:	f004 fdca 	bl	29990 <net_buf_simple_add>
	data.rsp = net_buf_add(data.buf, sizeof(*data.rsp));
   24dfc:	9008      	str	r0, [sp, #32]
	data.rsp->len = 0U;
   24dfe:	2200      	movs	r2, #0
   24e00:	7002      	strb	r2, [r0, #0]
	data.group = NULL;
   24e02:	9209      	str	r2, [sp, #36]	; 0x24
   24e04:	ab05      	add	r3, sp, #20
   24e06:	9302      	str	r3, [sp, #8]
   24e08:	4b10      	ldr	r3, [pc, #64]	; (24e4c <att_read_group_rsp+0x88>)
   24e0a:	9301      	str	r3, [sp, #4]
   24e0c:	9200      	str	r2, [sp, #0]
   24e0e:	4613      	mov	r3, r2
   24e10:	4631      	mov	r1, r6
   24e12:	4628      	mov	r0, r5
   24e14:	f001 f962 	bl	260dc <bt_gatt_foreach_attr_type>
	if (!data.rsp->len) {
   24e18:	9b08      	ldr	r3, [sp, #32]
   24e1a:	781e      	ldrb	r6, [r3, #0]
   24e1c:	b14e      	cbz	r6, 24e32 <att_read_group_rsp+0x6e>
	bt_att_chan_send_rsp(chan, data.buf, chan_rsp_sent);
   24e1e:	4a0c      	ldr	r2, [pc, #48]	; (24e50 <att_read_group_rsp+0x8c>)
   24e20:	9907      	ldr	r1, [sp, #28]
   24e22:	4620      	mov	r0, r4
   24e24:	f012 f988 	bl	37138 <bt_att_chan_send_rsp>
	return 0;
   24e28:	2600      	movs	r6, #0
}
   24e2a:	4630      	mov	r0, r6
   24e2c:	b00a      	add	sp, #40	; 0x28
   24e2e:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
		net_buf_unref(data.buf);
   24e32:	9807      	ldr	r0, [sp, #28]
   24e34:	f004 fc94 	bl	29760 <net_buf_unref>
		send_err_rsp(chan, BT_ATT_OP_READ_GROUP_REQ, start_handle,
   24e38:	230a      	movs	r3, #10
   24e3a:	462a      	mov	r2, r5
   24e3c:	2110      	movs	r1, #16
   24e3e:	4620      	mov	r0, r4
   24e40:	f7ff fe66 	bl	24b10 <send_err_rsp>
		return 0;
   24e44:	e7f1      	b.n	24e2a <att_read_group_rsp+0x66>
		return BT_ATT_ERR_UNLIKELY;
   24e46:	260e      	movs	r6, #14
   24e48:	e7ef      	b.n	24e2a <att_read_group_rsp+0x66>
   24e4a:	bf00      	nop
   24e4c:	0002474d 	.word	0x0002474d
   24e50:	00036f95 	.word	0x00036f95

00024e54 <att_read_mult_req>:
{
   24e54:	b570      	push	{r4, r5, r6, lr}
   24e56:	b088      	sub	sp, #32
   24e58:	4606      	mov	r6, r0
   24e5a:	460d      	mov	r5, r1
	struct bt_conn *conn = chan->chan.chan.conn;
   24e5c:	6884      	ldr	r4, [r0, #8]
	if (!bt_gatt_change_aware(conn, true)) {
   24e5e:	2101      	movs	r1, #1
   24e60:	4620      	mov	r0, r4
   24e62:	f013 f836 	bl	37ed2 <bt_gatt_change_aware>
   24e66:	2800      	cmp	r0, #0
   24e68:	d039      	beq.n	24ede <att_read_mult_req+0x8a>
	(void)memset(&data, 0, sizeof(data));
   24e6a:	2210      	movs	r2, #16
   24e6c:	2100      	movs	r1, #0
   24e6e:	eb0d 0002 	add.w	r0, sp, r2
   24e72:	f010 fe67 	bl	35b44 <memset>
	data.buf = bt_att_create_pdu(conn, BT_ATT_OP_READ_MULT_RSP, 0);
   24e76:	2200      	movs	r2, #0
   24e78:	210f      	movs	r1, #15
   24e7a:	4620      	mov	r0, r4
   24e7c:	f7ff ff64 	bl	24d48 <bt_att_create_pdu>
   24e80:	9006      	str	r0, [sp, #24]
	if (!data.buf) {
   24e82:	b378      	cbz	r0, 24ee4 <att_read_mult_req+0x90>
	data.chan = chan;
   24e84:	9604      	str	r6, [sp, #16]
	while (buf->len >= sizeof(uint16_t)) {
   24e86:	89ab      	ldrh	r3, [r5, #12]
   24e88:	2b01      	cmp	r3, #1
   24e8a:	d921      	bls.n	24ed0 <att_read_mult_req+0x7c>
	return net_buf_simple_pull_le16(&buf->b);
   24e8c:	f105 0008 	add.w	r0, r5, #8
   24e90:	f014 f943 	bl	3911a <net_buf_simple_pull_le16>
   24e94:	4604      	mov	r4, r0
		data.err = BT_ATT_ERR_INVALID_HANDLE;
   24e96:	2301      	movs	r3, #1
   24e98:	f88d 301c 	strb.w	r3, [sp, #28]
   24e9c:	ab04      	add	r3, sp, #16
   24e9e:	9302      	str	r3, [sp, #8]
   24ea0:	4b11      	ldr	r3, [pc, #68]	; (24ee8 <att_read_mult_req+0x94>)
   24ea2:	9301      	str	r3, [sp, #4]
   24ea4:	2200      	movs	r2, #0
   24ea6:	9200      	str	r2, [sp, #0]
   24ea8:	4613      	mov	r3, r2
   24eaa:	4601      	mov	r1, r0
   24eac:	f001 f916 	bl	260dc <bt_gatt_foreach_attr_type>
		if (data.err) {
   24eb0:	f89d 301c 	ldrb.w	r3, [sp, #28]
   24eb4:	2b00      	cmp	r3, #0
   24eb6:	d0e6      	beq.n	24e86 <att_read_mult_req+0x32>
			net_buf_unref(data.buf);
   24eb8:	9806      	ldr	r0, [sp, #24]
   24eba:	f004 fc51 	bl	29760 <net_buf_unref>
			send_err_rsp(chan, BT_ATT_OP_READ_MULT_REQ, handle,
   24ebe:	f89d 301c 	ldrb.w	r3, [sp, #28]
   24ec2:	4622      	mov	r2, r4
   24ec4:	210e      	movs	r1, #14
   24ec6:	4630      	mov	r0, r6
   24ec8:	f7ff fe22 	bl	24b10 <send_err_rsp>
			return 0;
   24ecc:	2000      	movs	r0, #0
   24ece:	e007      	b.n	24ee0 <att_read_mult_req+0x8c>
	bt_att_chan_send_rsp(chan, data.buf, chan_rsp_sent);
   24ed0:	4a06      	ldr	r2, [pc, #24]	; (24eec <att_read_mult_req+0x98>)
   24ed2:	9906      	ldr	r1, [sp, #24]
   24ed4:	4630      	mov	r0, r6
   24ed6:	f012 f92f 	bl	37138 <bt_att_chan_send_rsp>
	return 0;
   24eda:	2000      	movs	r0, #0
   24edc:	e000      	b.n	24ee0 <att_read_mult_req+0x8c>
		return BT_ATT_ERR_DB_OUT_OF_SYNC;
   24ede:	2012      	movs	r0, #18
}
   24ee0:	b008      	add	sp, #32
   24ee2:	bd70      	pop	{r4, r5, r6, pc}
		return BT_ATT_ERR_UNLIKELY;
   24ee4:	200e      	movs	r0, #14
   24ee6:	e7fb      	b.n	24ee0 <att_read_mult_req+0x8c>
   24ee8:	000372a9 	.word	0x000372a9
   24eec:	00036f95 	.word	0x00036f95

00024ef0 <att_read_rsp>:
{
   24ef0:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   24ef4:	b088      	sub	sp, #32
   24ef6:	4604      	mov	r4, r0
   24ef8:	4688      	mov	r8, r1
   24efa:	4616      	mov	r6, r2
   24efc:	461d      	mov	r5, r3
	struct bt_conn *conn = chan->chan.chan.conn;
   24efe:	6887      	ldr	r7, [r0, #8]
	if (!bt_gatt_change_aware(conn, true)) {
   24f00:	2101      	movs	r1, #1
   24f02:	4638      	mov	r0, r7
   24f04:	f012 ffe5 	bl	37ed2 <bt_gatt_change_aware>
   24f08:	2800      	cmp	r0, #0
   24f0a:	d03a      	beq.n	24f82 <att_read_rsp+0x92>
	if (!handle) {
   24f0c:	b925      	cbnz	r5, 24f18 <att_read_rsp+0x28>
		return BT_ATT_ERR_INVALID_HANDLE;
   24f0e:	2601      	movs	r6, #1
}
   24f10:	4630      	mov	r0, r6
   24f12:	b008      	add	sp, #32
   24f14:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
	(void)memset(&data, 0, sizeof(data));
   24f18:	2210      	movs	r2, #16
   24f1a:	2100      	movs	r1, #0
   24f1c:	eb0d 0002 	add.w	r0, sp, r2
   24f20:	f010 fe10 	bl	35b44 <memset>
	data.buf = bt_att_create_pdu(conn, rsp, 0);
   24f24:	2200      	movs	r2, #0
   24f26:	4631      	mov	r1, r6
   24f28:	4638      	mov	r0, r7
   24f2a:	f7ff ff0d 	bl	24d48 <bt_att_create_pdu>
   24f2e:	9006      	str	r0, [sp, #24]
	if (!data.buf) {
   24f30:	b348      	cbz	r0, 24f86 <att_read_rsp+0x96>
	data.chan = chan;
   24f32:	9404      	str	r4, [sp, #16]
	data.offset = offset;
   24f34:	f8bd 3038 	ldrh.w	r3, [sp, #56]	; 0x38
   24f38:	f8ad 3014 	strh.w	r3, [sp, #20]
	data.err = BT_ATT_ERR_INVALID_HANDLE;
   24f3c:	2301      	movs	r3, #1
   24f3e:	f88d 301c 	strb.w	r3, [sp, #28]
   24f42:	ab04      	add	r3, sp, #16
   24f44:	9302      	str	r3, [sp, #8]
   24f46:	4b11      	ldr	r3, [pc, #68]	; (24f8c <att_read_rsp+0x9c>)
   24f48:	9301      	str	r3, [sp, #4]
   24f4a:	2200      	movs	r2, #0
   24f4c:	9200      	str	r2, [sp, #0]
   24f4e:	4613      	mov	r3, r2
   24f50:	4629      	mov	r1, r5
   24f52:	4628      	mov	r0, r5
   24f54:	f001 f8c2 	bl	260dc <bt_gatt_foreach_attr_type>
	if (data.err) {
   24f58:	f89d 601c 	ldrb.w	r6, [sp, #28]
   24f5c:	b92e      	cbnz	r6, 24f6a <att_read_rsp+0x7a>
	bt_att_chan_send_rsp(chan, data.buf, chan_rsp_sent);
   24f5e:	4a0c      	ldr	r2, [pc, #48]	; (24f90 <att_read_rsp+0xa0>)
   24f60:	9906      	ldr	r1, [sp, #24]
   24f62:	4620      	mov	r0, r4
   24f64:	f012 f8e8 	bl	37138 <bt_att_chan_send_rsp>
	return 0;
   24f68:	e7d2      	b.n	24f10 <att_read_rsp+0x20>
		net_buf_unref(data.buf);
   24f6a:	9806      	ldr	r0, [sp, #24]
   24f6c:	f004 fbf8 	bl	29760 <net_buf_unref>
		send_err_rsp(chan, op, handle, data.err);
   24f70:	f89d 301c 	ldrb.w	r3, [sp, #28]
   24f74:	462a      	mov	r2, r5
   24f76:	4641      	mov	r1, r8
   24f78:	4620      	mov	r0, r4
   24f7a:	f7ff fdc9 	bl	24b10 <send_err_rsp>
		return 0;
   24f7e:	2600      	movs	r6, #0
   24f80:	e7c6      	b.n	24f10 <att_read_rsp+0x20>
		return BT_ATT_ERR_DB_OUT_OF_SYNC;
   24f82:	2612      	movs	r6, #18
   24f84:	e7c4      	b.n	24f10 <att_read_rsp+0x20>
		return BT_ATT_ERR_UNLIKELY;
   24f86:	260e      	movs	r6, #14
   24f88:	e7c2      	b.n	24f10 <att_read_rsp+0x20>
   24f8a:	bf00      	nop
   24f8c:	000372a9 	.word	0x000372a9
   24f90:	00036f95 	.word	0x00036f95

00024f94 <att_read_type_rsp>:
{
   24f94:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   24f98:	b08a      	sub	sp, #40	; 0x28
   24f9a:	4604      	mov	r4, r0
   24f9c:	460f      	mov	r7, r1
   24f9e:	4615      	mov	r5, r2
   24fa0:	461e      	mov	r6, r3
	struct bt_conn *conn = chan->chan.chan.conn;
   24fa2:	f8d0 8008 	ldr.w	r8, [r0, #8]
	(void)memset(&data, 0, sizeof(data));
   24fa6:	2218      	movs	r2, #24
   24fa8:	2100      	movs	r1, #0
   24faa:	a804      	add	r0, sp, #16
   24fac:	f010 fdca 	bl	35b44 <memset>
	data.buf = bt_att_create_pdu(conn, BT_ATT_OP_READ_TYPE_RSP,
   24fb0:	2201      	movs	r2, #1
   24fb2:	2109      	movs	r1, #9
   24fb4:	4640      	mov	r0, r8
   24fb6:	f7ff fec7 	bl	24d48 <bt_att_create_pdu>
   24fba:	9006      	str	r0, [sp, #24]
	if (!data.buf) {
   24fbc:	b368      	cbz	r0, 2501a <att_read_type_rsp+0x86>
	data.chan = chan;
   24fbe:	9404      	str	r4, [sp, #16]
	data.uuid = uuid;
   24fc0:	9705      	str	r7, [sp, #20]
	return net_buf_simple_add(&buf->b, len);
   24fc2:	2101      	movs	r1, #1
   24fc4:	3008      	adds	r0, #8
   24fc6:	f004 fce3 	bl	29990 <net_buf_simple_add>
	data.rsp = net_buf_add(data.buf, sizeof(*data.rsp));
   24fca:	9007      	str	r0, [sp, #28]
	data.rsp->len = 0U;
   24fcc:	2200      	movs	r2, #0
   24fce:	7002      	strb	r2, [r0, #0]
	data.err = BT_ATT_ERR_ATTRIBUTE_NOT_FOUND;
   24fd0:	230a      	movs	r3, #10
   24fd2:	f88d 3024 	strb.w	r3, [sp, #36]	; 0x24
   24fd6:	ab04      	add	r3, sp, #16
   24fd8:	9302      	str	r3, [sp, #8]
   24fda:	4b11      	ldr	r3, [pc, #68]	; (25020 <att_read_type_rsp+0x8c>)
   24fdc:	9301      	str	r3, [sp, #4]
   24fde:	9200      	str	r2, [sp, #0]
   24fe0:	4613      	mov	r3, r2
   24fe2:	4631      	mov	r1, r6
   24fe4:	4628      	mov	r0, r5
   24fe6:	f001 f879 	bl	260dc <bt_gatt_foreach_attr_type>
	if (data.err) {
   24fea:	f89d 6024 	ldrb.w	r6, [sp, #36]	; 0x24
   24fee:	b946      	cbnz	r6, 25002 <att_read_type_rsp+0x6e>
	bt_att_chan_send_rsp(chan, data.buf, chan_rsp_sent);
   24ff0:	4a0c      	ldr	r2, [pc, #48]	; (25024 <att_read_type_rsp+0x90>)
   24ff2:	9906      	ldr	r1, [sp, #24]
   24ff4:	4620      	mov	r0, r4
   24ff6:	f012 f89f 	bl	37138 <bt_att_chan_send_rsp>
}
   24ffa:	4630      	mov	r0, r6
   24ffc:	b00a      	add	sp, #40	; 0x28
   24ffe:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
		net_buf_unref(data.buf);
   25002:	9806      	ldr	r0, [sp, #24]
   25004:	f004 fbac 	bl	29760 <net_buf_unref>
		send_err_rsp(chan, BT_ATT_OP_READ_TYPE_REQ, start_handle,
   25008:	f89d 3024 	ldrb.w	r3, [sp, #36]	; 0x24
   2500c:	462a      	mov	r2, r5
   2500e:	2108      	movs	r1, #8
   25010:	4620      	mov	r0, r4
   25012:	f7ff fd7d 	bl	24b10 <send_err_rsp>
		return 0;
   25016:	2600      	movs	r6, #0
   25018:	e7ef      	b.n	24ffa <att_read_type_rsp+0x66>
		return BT_ATT_ERR_UNLIKELY;
   2501a:	260e      	movs	r6, #14
   2501c:	e7ed      	b.n	24ffa <att_read_type_rsp+0x66>
   2501e:	bf00      	nop
   25020:	00024801 	.word	0x00024801
   25024:	00036f95 	.word	0x00036f95

00025028 <att_find_type_rsp>:
{
   25028:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   2502c:	b08a      	sub	sp, #40	; 0x28
   2502e:	4604      	mov	r4, r0
   25030:	460d      	mov	r5, r1
   25032:	4616      	mov	r6, r2
   25034:	461f      	mov	r7, r3
	struct bt_conn *conn = chan->chan.chan.conn;
   25036:	f8d0 8008 	ldr.w	r8, [r0, #8]
	(void)memset(&data, 0, sizeof(data));
   2503a:	2214      	movs	r2, #20
   2503c:	2100      	movs	r1, #0
   2503e:	eb0d 0002 	add.w	r0, sp, r2
   25042:	f010 fd7f 	bl	35b44 <memset>
	data.buf = bt_att_create_pdu(conn, BT_ATT_OP_FIND_TYPE_RSP, 0);
   25046:	2200      	movs	r2, #0
   25048:	2107      	movs	r1, #7
   2504a:	4640      	mov	r0, r8
   2504c:	f7ff fe7c 	bl	24d48 <bt_att_create_pdu>
   25050:	9006      	str	r0, [sp, #24]
	if (!data.buf) {
   25052:	b360      	cbz	r0, 250ae <att_find_type_rsp+0x86>
	data.chan = chan;
   25054:	9405      	str	r4, [sp, #20]
	data.group = NULL;
   25056:	2200      	movs	r2, #0
   25058:	9207      	str	r2, [sp, #28]
	data.value = value;
   2505a:	9708      	str	r7, [sp, #32]
	data.value_len = value_len;
   2505c:	f89d 3040 	ldrb.w	r3, [sp, #64]	; 0x40
   25060:	f88d 3024 	strb.w	r3, [sp, #36]	; 0x24
	data.err = BT_ATT_ERR_ATTRIBUTE_NOT_FOUND;
   25064:	230a      	movs	r3, #10
   25066:	f88d 3025 	strb.w	r3, [sp, #37]	; 0x25
   2506a:	ab05      	add	r3, sp, #20
   2506c:	9302      	str	r3, [sp, #8]
   2506e:	4b11      	ldr	r3, [pc, #68]	; (250b4 <att_find_type_rsp+0x8c>)
   25070:	9301      	str	r3, [sp, #4]
   25072:	9200      	str	r2, [sp, #0]
   25074:	4613      	mov	r3, r2
   25076:	4631      	mov	r1, r6
   25078:	4628      	mov	r0, r5
   2507a:	f001 f82f 	bl	260dc <bt_gatt_foreach_attr_type>
	if (data.err) {
   2507e:	f89d 6025 	ldrb.w	r6, [sp, #37]	; 0x25
   25082:	b946      	cbnz	r6, 25096 <att_find_type_rsp+0x6e>
	bt_att_chan_send_rsp(chan, data.buf, chan_rsp_sent);
   25084:	4a0c      	ldr	r2, [pc, #48]	; (250b8 <att_find_type_rsp+0x90>)
   25086:	9906      	ldr	r1, [sp, #24]
   25088:	4620      	mov	r0, r4
   2508a:	f012 f855 	bl	37138 <bt_att_chan_send_rsp>
}
   2508e:	4630      	mov	r0, r6
   25090:	b00a      	add	sp, #40	; 0x28
   25092:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
		net_buf_unref(data.buf);
   25096:	9806      	ldr	r0, [sp, #24]
   25098:	f004 fb62 	bl	29760 <net_buf_unref>
		send_err_rsp(chan, BT_ATT_OP_FIND_TYPE_REQ, start_handle,
   2509c:	f89d 3025 	ldrb.w	r3, [sp, #37]	; 0x25
   250a0:	462a      	mov	r2, r5
   250a2:	2106      	movs	r1, #6
   250a4:	4620      	mov	r0, r4
   250a6:	f7ff fd33 	bl	24b10 <send_err_rsp>
		return 0;
   250aa:	2600      	movs	r6, #0
   250ac:	e7ef      	b.n	2508e <att_find_type_rsp+0x66>
		return BT_ATT_ERR_UNLIKELY;
   250ae:	260e      	movs	r6, #14
   250b0:	e7ed      	b.n	2508e <att_find_type_rsp+0x66>
   250b2:	bf00      	nop
   250b4:	000248ad 	.word	0x000248ad
   250b8:	00036f95 	.word	0x00036f95

000250bc <att_find_info_rsp>:
{
   250bc:	b5f0      	push	{r4, r5, r6, r7, lr}
   250be:	b089      	sub	sp, #36	; 0x24
   250c0:	4604      	mov	r4, r0
   250c2:	460f      	mov	r7, r1
   250c4:	4616      	mov	r6, r2
	struct bt_conn *conn = chan->chan.chan.conn;
   250c6:	6885      	ldr	r5, [r0, #8]
	(void)memset(&data, 0, sizeof(data));
   250c8:	2210      	movs	r2, #16
   250ca:	2100      	movs	r1, #0
   250cc:	eb0d 0002 	add.w	r0, sp, r2
   250d0:	f010 fd38 	bl	35b44 <memset>
	data.buf = bt_att_create_pdu(conn, BT_ATT_OP_FIND_INFO_RSP, 0);
   250d4:	2200      	movs	r2, #0
   250d6:	2105      	movs	r1, #5
   250d8:	4628      	mov	r0, r5
   250da:	f7ff fe35 	bl	24d48 <bt_att_create_pdu>
   250de:	9005      	str	r0, [sp, #20]
	if (!data.buf) {
   250e0:	b300      	cbz	r0, 25124 <att_find_info_rsp+0x68>
	data.chan = chan;
   250e2:	9404      	str	r4, [sp, #16]
   250e4:	ab04      	add	r3, sp, #16
   250e6:	9302      	str	r3, [sp, #8]
   250e8:	4b0f      	ldr	r3, [pc, #60]	; (25128 <att_find_info_rsp+0x6c>)
   250ea:	9301      	str	r3, [sp, #4]
   250ec:	2200      	movs	r2, #0
   250ee:	9200      	str	r2, [sp, #0]
   250f0:	4613      	mov	r3, r2
   250f2:	4631      	mov	r1, r6
   250f4:	4638      	mov	r0, r7
   250f6:	f000 fff1 	bl	260dc <bt_gatt_foreach_attr_type>
	if (!data.rsp) {
   250fa:	9b06      	ldr	r3, [sp, #24]
   250fc:	b13b      	cbz	r3, 2510e <att_find_info_rsp+0x52>
	bt_att_chan_send_rsp(chan, data.buf, chan_rsp_sent);
   250fe:	4a0b      	ldr	r2, [pc, #44]	; (2512c <att_find_info_rsp+0x70>)
   25100:	9905      	ldr	r1, [sp, #20]
   25102:	4620      	mov	r0, r4
   25104:	f012 f818 	bl	37138 <bt_att_chan_send_rsp>
	return 0;
   25108:	2000      	movs	r0, #0
}
   2510a:	b009      	add	sp, #36	; 0x24
   2510c:	bdf0      	pop	{r4, r5, r6, r7, pc}
		net_buf_unref(data.buf);
   2510e:	9805      	ldr	r0, [sp, #20]
   25110:	f004 fb26 	bl	29760 <net_buf_unref>
		send_err_rsp(chan, BT_ATT_OP_FIND_INFO_REQ, start_handle,
   25114:	230a      	movs	r3, #10
   25116:	463a      	mov	r2, r7
   25118:	2104      	movs	r1, #4
   2511a:	4620      	mov	r0, r4
   2511c:	f7ff fcf8 	bl	24b10 <send_err_rsp>
		return 0;
   25120:	2000      	movs	r0, #0
   25122:	e7f2      	b.n	2510a <att_find_info_rsp+0x4e>
		return BT_ATT_ERR_UNLIKELY;
   25124:	200e      	movs	r0, #14
   25126:	e7f0      	b.n	2510a <att_find_info_rsp+0x4e>
   25128:	000372f1 	.word	0x000372f1
   2512c:	00036f95 	.word	0x00036f95

00025130 <att_mtu_req>:
{
   25130:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
   25132:	4604      	mov	r4, r0
	struct bt_conn *conn = chan->att->conn;
   25134:	6803      	ldr	r3, [r0, #0]
   25136:	6818      	ldr	r0, [r3, #0]
	return __atomic_load_n(target, __ATOMIC_SEQ_CST);
   25138:	f3bf 8f5b 	dmb	ish
   2513c:	f8d4 30f8 	ldr.w	r3, [r4, #248]	; 0xf8
   25140:	f3bf 8f5b 	dmb	ish
	if (atomic_test_bit(chan->flags, ATT_ENHANCED)) {
   25144:	f013 0f08 	tst.w	r3, #8
   25148:	d123      	bne.n	25192 <att_mtu_req+0x62>
	req = (void *)buf->data;
   2514a:	688b      	ldr	r3, [r1, #8]
	mtu_client = sys_le16_to_cpu(req->mtu);
   2514c:	881e      	ldrh	r6, [r3, #0]
	if (mtu_client < BT_ATT_DEFAULT_LE_MTU) {
   2514e:	2e16      	cmp	r6, #22
   25150:	d921      	bls.n	25196 <att_mtu_req+0x66>
	pdu = bt_att_create_pdu(conn, BT_ATT_OP_MTU_RSP, sizeof(*rsp));
   25152:	2202      	movs	r2, #2
   25154:	2103      	movs	r1, #3
   25156:	f7ff fdf7 	bl	24d48 <bt_att_create_pdu>
	if (!pdu) {
   2515a:	4607      	mov	r7, r0
   2515c:	b1e8      	cbz	r0, 2519a <att_mtu_req+0x6a>
   2515e:	2102      	movs	r1, #2
   25160:	3008      	adds	r0, #8
   25162:	f004 fc15 	bl	29990 <net_buf_simple_add>
	rsp->mtu = sys_cpu_to_le16(mtu_server);
   25166:	2500      	movs	r5, #0
   25168:	f06f 0303 	mvn.w	r3, #3
   2516c:	7003      	strb	r3, [r0, #0]
   2516e:	7045      	strb	r5, [r0, #1]
	bt_att_chan_send_rsp(chan, pdu, chan_rsp_sent);
   25170:	4a0b      	ldr	r2, [pc, #44]	; (251a0 <att_mtu_req+0x70>)
   25172:	4639      	mov	r1, r7
   25174:	4620      	mov	r0, r4
   25176:	f011 ffdf 	bl	37138 <bt_att_chan_send_rsp>
	chan->chan.rx.mtu = MIN(mtu_client, mtu_server);
   2517a:	2efc      	cmp	r6, #252	; 0xfc
   2517c:	bf28      	it	cs
   2517e:	26fc      	movcs	r6, #252	; 0xfc
   25180:	f8a4 607a 	strh.w	r6, [r4, #122]	; 0x7a
	chan->chan.tx.mtu = chan->chan.rx.mtu;
   25184:	f8a4 608a 	strh.w	r6, [r4, #138]	; 0x8a
	att_chan_mtu_updated(chan);
   25188:	4620      	mov	r0, r4
   2518a:	f012 f90d 	bl	373a8 <att_chan_mtu_updated>
	return 0;
   2518e:	4628      	mov	r0, r5
}
   25190:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
		return BT_ATT_ERR_NOT_SUPPORTED;
   25192:	2006      	movs	r0, #6
   25194:	e7fc      	b.n	25190 <att_mtu_req+0x60>
		return BT_ATT_ERR_INVALID_PDU;
   25196:	2004      	movs	r0, #4
   25198:	e7fa      	b.n	25190 <att_mtu_req+0x60>
		return BT_ATT_ERR_UNLIKELY;
   2519a:	200e      	movs	r0, #14
   2519c:	e7f8      	b.n	25190 <att_mtu_req+0x60>
   2519e:	bf00      	nop
   251a0:	00036f95 	.word	0x00036f95

000251a4 <bt_att_req_alloc>:
		bt_gatt_att_max_mtu_changed(att->conn, max_tx, max_rx);
	}
}

struct bt_att_req *bt_att_req_alloc(k_timeout_t timeout)
{
   251a4:	b500      	push	{lr}
   251a6:	b083      	sub	sp, #12
   251a8:	4602      	mov	r2, r0
   251aa:	460b      	mov	r3, r1
	struct bt_att_req *req = NULL;
   251ac:	2100      	movs	r1, #0
   251ae:	9101      	str	r1, [sp, #4]

	/* Reserve space for request */
	if (k_mem_slab_alloc(&req_slab, (void **)&req, timeout)) {
   251b0:	a901      	add	r1, sp, #4
   251b2:	4807      	ldr	r0, [pc, #28]	; (251d0 <bt_att_req_alloc+0x2c>)
   251b4:	f00a f8da 	bl	2f36c <k_mem_slab_alloc>
   251b8:	b940      	cbnz	r0, 251cc <bt_att_req_alloc+0x28>
		return NULL;
	}

	BT_DBG("req %p", req);

	memset(req, 0, sizeof(*req));
   251ba:	221c      	movs	r2, #28
   251bc:	2100      	movs	r1, #0
   251be:	9801      	ldr	r0, [sp, #4]
   251c0:	f010 fcc0 	bl	35b44 <memset>

	return req;
   251c4:	9801      	ldr	r0, [sp, #4]
}
   251c6:	b003      	add	sp, #12
   251c8:	f85d fb04 	ldr.w	pc, [sp], #4
		return NULL;
   251cc:	2000      	movs	r0, #0
   251ce:	e7fa      	b.n	251c6 <bt_att_req_alloc+0x22>
   251d0:	20000818 	.word	0x20000818

000251d4 <bt_att_req_free>:

void bt_att_req_free(struct bt_att_req *req)
{
   251d4:	b500      	push	{lr}
   251d6:	b083      	sub	sp, #12
   251d8:	9001      	str	r0, [sp, #4]
	BT_DBG("req %p", req);

	if (req->buf) {
   251da:	6880      	ldr	r0, [r0, #8]
   251dc:	b120      	cbz	r0, 251e8 <bt_att_req_free+0x14>
		net_buf_unref(req->buf);
   251de:	f004 fabf 	bl	29760 <net_buf_unref>
		req->buf = NULL;
   251e2:	9b01      	ldr	r3, [sp, #4]
   251e4:	2200      	movs	r2, #0
   251e6:	609a      	str	r2, [r3, #8]
	}

	k_mem_slab_free(&req_slab, (void **)&req);
   251e8:	a901      	add	r1, sp, #4
   251ea:	4803      	ldr	r0, [pc, #12]	; (251f8 <bt_att_req_free+0x24>)
   251ec:	f00a f920 	bl	2f430 <k_mem_slab_free>
}
   251f0:	b003      	add	sp, #12
   251f2:	f85d fb04 	ldr.w	pc, [sp], #4
   251f6:	bf00      	nop
   251f8:	20000818 	.word	0x20000818

000251fc <att_handle_rsp>:
{
   251fc:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
   25200:	b082      	sub	sp, #8
   25202:	4604      	mov	r4, r0
   25204:	460f      	mov	r7, r1
   25206:	4691      	mov	r9, r2
   25208:	461e      	mov	r6, r3
	k_work_cancel_delayable(&chan->timeout_work);
   2520a:	f500 7090 	add.w	r0, r0, #288	; 0x120
   2520e:	f00b fbb1 	bl	30974 <k_work_cancel_delayable>
	if (!chan->req) {
   25212:	f8d4 00fc 	ldr.w	r0, [r4, #252]	; 0xfc
   25216:	b1f8      	cbz	r0, 25258 <att_handle_rsp+0x5c>
	if (chan->req == &cancel) {
   25218:	4b14      	ldr	r3, [pc, #80]	; (2526c <att_handle_rsp+0x70>)
   2521a:	4298      	cmp	r0, r3
   2521c:	d022      	beq.n	25264 <att_handle_rsp+0x68>
	func = chan->req->func;
   2521e:	6845      	ldr	r5, [r0, #4]
	chan->req->func = NULL;
   25220:	f04f 0a00 	mov.w	sl, #0
   25224:	f8c0 a004 	str.w	sl, [r0, #4]
	params = chan->req->user_data;
   25228:	f8d4 00fc 	ldr.w	r0, [r4, #252]	; 0xfc
   2522c:	f8d0 8018 	ldr.w	r8, [r0, #24]
	bt_att_req_free(chan->req);
   25230:	f7ff ffd0 	bl	251d4 <bt_att_req_free>
	chan->req = NULL;
   25234:	f8c4 a0fc 	str.w	sl, [r4, #252]	; 0xfc
	att_req_send_process(chan->att);
   25238:	6820      	ldr	r0, [r4, #0]
   2523a:	f011 fe4d 	bl	36ed8 <att_req_send_process>
	if (func) {
   2523e:	b13d      	cbz	r5, 25250 <att_handle_rsp+0x54>
		func(chan->att->conn, err, pdu, len, params);
   25240:	6823      	ldr	r3, [r4, #0]
   25242:	6818      	ldr	r0, [r3, #0]
   25244:	f8cd 8000 	str.w	r8, [sp]
   25248:	464b      	mov	r3, r9
   2524a:	463a      	mov	r2, r7
   2524c:	4631      	mov	r1, r6
   2524e:	47a8      	blx	r5
}
   25250:	2000      	movs	r0, #0
   25252:	b002      	add	sp, #8
   25254:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
		BT_WARN("No pending ATT request");
   25258:	2157      	movs	r1, #87	; 0x57
   2525a:	4805      	ldr	r0, [pc, #20]	; (25270 <att_handle_rsp+0x74>)
   2525c:	f00e fc46 	bl	33aec <z_log_minimal_printk>
	bt_att_func_t func = NULL;
   25260:	2500      	movs	r5, #0
		goto process;
   25262:	e7e9      	b.n	25238 <att_handle_rsp+0x3c>
		chan->req = NULL;
   25264:	2500      	movs	r5, #0
   25266:	f8c4 50fc 	str.w	r5, [r4, #252]	; 0xfc
		goto process;
   2526a:	e7e5      	b.n	25238 <att_handle_rsp+0x3c>
   2526c:	2000231c 	.word	0x2000231c
   25270:	0003df80 	.word	0x0003df80

00025274 <att_reset>:
{
   25274:	b570      	push	{r4, r5, r6, lr}
   25276:	b084      	sub	sp, #16
   25278:	9003      	str	r0, [sp, #12]
	while ((buf = net_buf_get(&att->tx_queue, K_NO_WAIT))) {
   2527a:	2200      	movs	r2, #0
   2527c:	2300      	movs	r3, #0
   2527e:	9803      	ldr	r0, [sp, #12]
   25280:	300c      	adds	r0, #12
   25282:	f004 f9e5 	bl	29650 <net_buf_get>
   25286:	4603      	mov	r3, r0
   25288:	b118      	cbz	r0, 25292 <att_reset+0x1e>
		net_buf_unref(buf);
   2528a:	4618      	mov	r0, r3
   2528c:	f004 fa68 	bl	29760 <net_buf_unref>
   25290:	e7f3      	b.n	2527a <att_reset+0x6>
	att->conn = NULL;
   25292:	9b03      	ldr	r3, [sp, #12]
   25294:	2200      	movs	r2, #0
   25296:	601a      	str	r2, [r3, #0]
	SYS_SLIST_FOR_EACH_CONTAINER_SAFE(&att->reqs, req, tmp, node) {
   25298:	9b03      	ldr	r3, [sp, #12]
	return list->head;
   2529a:	685d      	ldr	r5, [r3, #4]
   2529c:	b11d      	cbz	r5, 252a6 <att_reset+0x32>
   2529e:	462c      	mov	r4, r5
Z_GENLIST_PEEK_NEXT(slist, snode)
   252a0:	b135      	cbz	r5, 252b0 <att_reset+0x3c>
	return node->next;
   252a2:	682c      	ldr	r4, [r5, #0]
   252a4:	e004      	b.n	252b0 <att_reset+0x3c>
   252a6:	462c      	mov	r4, r5
   252a8:	e002      	b.n	252b0 <att_reset+0x3c>
   252aa:	4623      	mov	r3, r4
   252ac:	4625      	mov	r5, r4
   252ae:	461c      	mov	r4, r3
   252b0:	b195      	cbz	r5, 252d8 <att_reset+0x64>
		if (req->func) {
   252b2:	686e      	ldr	r6, [r5, #4]
   252b4:	b136      	cbz	r6, 252c4 <att_reset+0x50>
			req->func(NULL, BT_ATT_ERR_UNLIKELY, NULL, 0,
   252b6:	69ab      	ldr	r3, [r5, #24]
   252b8:	9300      	str	r3, [sp, #0]
   252ba:	2300      	movs	r3, #0
   252bc:	461a      	mov	r2, r3
   252be:	210e      	movs	r1, #14
   252c0:	4618      	mov	r0, r3
   252c2:	47b0      	blx	r6
		bt_att_req_free(req);
   252c4:	4628      	mov	r0, r5
   252c6:	f7ff ff85 	bl	251d4 <bt_att_req_free>
	SYS_SLIST_FOR_EACH_CONTAINER_SAFE(&att->reqs, req, tmp, node) {
   252ca:	2c00      	cmp	r4, #0
   252cc:	d0ed      	beq.n	252aa <att_reset+0x36>
   252ce:	4623      	mov	r3, r4
Z_GENLIST_PEEK_NEXT(slist, snode)
   252d0:	2c00      	cmp	r4, #0
   252d2:	d0eb      	beq.n	252ac <att_reset+0x38>
	return node->next;
   252d4:	6823      	ldr	r3, [r4, #0]
   252d6:	e7e9      	b.n	252ac <att_reset+0x38>
	k_mem_slab_free(&att_slab, (void **)&att);
   252d8:	a903      	add	r1, sp, #12
   252da:	4802      	ldr	r0, [pc, #8]	; (252e4 <att_reset+0x70>)
   252dc:	f00a f8a8 	bl	2f430 <k_mem_slab_free>
}
   252e0:	b004      	add	sp, #16
   252e2:	bd70      	pop	{r4, r5, r6, pc}
   252e4:	200007d8 	.word	0x200007d8

000252e8 <att_timeout>:
{
   252e8:	b510      	push	{r4, lr}
   252ea:	4604      	mov	r4, r0
	BT_ERR("ATT Timeout");
   252ec:	2145      	movs	r1, #69	; 0x45
   252ee:	4804      	ldr	r0, [pc, #16]	; (25300 <att_timeout+0x18>)
   252f0:	f00e fbfc 	bl	33aec <z_log_minimal_printk>
	bt_att_disconnected(&chan->chan.chan);
   252f4:	f5a4 708c 	sub.w	r0, r4, #280	; 0x118
   252f8:	f012 fa93 	bl	37822 <bt_att_disconnected>
}
   252fc:	bd10      	pop	{r4, pc}
   252fe:	bf00      	nop
   25300:	0003df9c 	.word	0x0003df9c

00025304 <bt_att_send>:

int bt_att_send(struct bt_conn *conn, struct net_buf *buf, bt_conn_tx_cb_t cb,
		void *user_data)
{
   25304:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   25308:	b082      	sub	sp, #8
   2530a:	460c      	mov	r4, r1
   2530c:	4615      	mov	r5, r2
   2530e:	461f      	mov	r7, r3
	struct bt_att *att;

	__ASSERT_NO_MSG(conn);
   25310:	4606      	mov	r6, r0
   25312:	b180      	cbz	r0, 25336 <bt_att_send+0x32>
	__ASSERT_NO_MSG(buf);
   25314:	b1ec      	cbz	r4, 25352 <bt_att_send+0x4e>

	att = att_get(conn);
   25316:	4630      	mov	r0, r6
   25318:	f7ff f8c8 	bl	244ac <att_get>
	if (!att) {
   2531c:	4680      	mov	r8, r0
   2531e:	b330      	cbz	r0, 2536e <bt_att_send+0x6a>
	}

	/* If callback is set use the fixed channel since bt_l2cap_chan_send
	 * cannot be used with a custom user_data.
	 */
	if (cb) {
   25320:	b35d      	cbz	r5, 2537a <bt_att_send+0x76>
		return bt_l2cap_send_cb(conn, BT_L2CAP_CID_ATT, buf, cb,
   25322:	9700      	str	r7, [sp, #0]
   25324:	462b      	mov	r3, r5
   25326:	4622      	mov	r2, r4
   25328:	2104      	movs	r1, #4
   2532a:	4630      	mov	r0, r6
   2532c:	f011 fc1a 	bl	36b64 <bt_l2cap_send_cb>

	net_buf_put(&att->tx_queue, buf);
	att_send_process(att);

	return 0;
}
   25330:	b002      	add	sp, #8
   25332:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
	__ASSERT_NO_MSG(conn);
   25336:	f8df 8058 	ldr.w	r8, [pc, #88]	; 25390 <bt_att_send+0x8c>
   2533a:	f640 32f2 	movw	r2, #3058	; 0xbf2
   2533e:	4641      	mov	r1, r8
   25340:	4812      	ldr	r0, [pc, #72]	; (2538c <bt_att_send+0x88>)
   25342:	f00e f832 	bl	333aa <printk>
   25346:	f640 31f2 	movw	r1, #3058	; 0xbf2
   2534a:	4640      	mov	r0, r8
   2534c:	f00e fbc6 	bl	33adc <assert_post_action>
   25350:	e7e0      	b.n	25314 <bt_att_send+0x10>
	__ASSERT_NO_MSG(buf);
   25352:	f8df 803c 	ldr.w	r8, [pc, #60]	; 25390 <bt_att_send+0x8c>
   25356:	f640 32f3 	movw	r2, #3059	; 0xbf3
   2535a:	4641      	mov	r1, r8
   2535c:	480b      	ldr	r0, [pc, #44]	; (2538c <bt_att_send+0x88>)
   2535e:	f00e f824 	bl	333aa <printk>
   25362:	f640 31f3 	movw	r1, #3059	; 0xbf3
   25366:	4640      	mov	r0, r8
   25368:	f00e fbb8 	bl	33adc <assert_post_action>
   2536c:	e7d3      	b.n	25316 <bt_att_send+0x12>
		net_buf_unref(buf);
   2536e:	4620      	mov	r0, r4
   25370:	f004 f9f6 	bl	29760 <net_buf_unref>
		return -ENOTCONN;
   25374:	f06f 007f 	mvn.w	r0, #127	; 0x7f
   25378:	e7da      	b.n	25330 <bt_att_send+0x2c>
	net_buf_put(&att->tx_queue, buf);
   2537a:	4621      	mov	r1, r4
   2537c:	300c      	adds	r0, #12
   2537e:	f004 f9bd 	bl	296fc <net_buf_put>
	att_send_process(att);
   25382:	4640      	mov	r0, r8
   25384:	f011 fe71 	bl	3706a <att_send_process>
	return 0;
   25388:	2000      	movs	r0, #0
   2538a:	e7d1      	b.n	25330 <bt_att_send+0x2c>
   2538c:	0003bdac 	.word	0x0003bdac
   25390:	0003de10 	.word	0x0003de10

00025394 <bt_att_req_send>:

int bt_att_req_send(struct bt_conn *conn, struct bt_att_req *req)
{
   25394:	b570      	push	{r4, r5, r6, lr}
   25396:	460c      	mov	r4, r1
	struct bt_att *att;

	BT_DBG("conn %p req %p", conn, req);

	__ASSERT_NO_MSG(conn);
   25398:	4605      	mov	r5, r0
   2539a:	b180      	cbz	r0, 253be <bt_att_req_send+0x2a>
	__ASSERT_NO_MSG(req);
   2539c:	b1e4      	cbz	r4, 253d8 <bt_att_req_send+0x44>

	att = att_get(conn);
   2539e:	4628      	mov	r0, r5
   253a0:	f7ff f884 	bl	244ac <att_get>
	if (!att) {
   253a4:	4603      	mov	r3, r0
   253a6:	b338      	cbz	r0, 253f8 <bt_att_req_send+0x64>
	parent->next = child;
   253a8:	2200      	movs	r2, #0
   253aa:	6022      	str	r2, [r4, #0]
	return list->tail;
   253ac:	6882      	ldr	r2, [r0, #8]
Z_GENLIST_APPEND(slist, snode)
   253ae:	b302      	cbz	r2, 253f2 <bt_att_req_send+0x5e>
	parent->next = child;
   253b0:	6014      	str	r4, [r2, #0]
	list->tail = node;
   253b2:	6084      	str	r4, [r0, #8]
		return -ENOTCONN;
	}

	sys_slist_append(&att->reqs, &req->node);
	att_req_send_process(att);
   253b4:	4618      	mov	r0, r3
   253b6:	f011 fd8f 	bl	36ed8 <att_req_send_process>

	return 0;
   253ba:	2000      	movs	r0, #0
}
   253bc:	bd70      	pop	{r4, r5, r6, pc}
	__ASSERT_NO_MSG(conn);
   253be:	4e10      	ldr	r6, [pc, #64]	; (25400 <bt_att_req_send+0x6c>)
   253c0:	f640 420f 	movw	r2, #3087	; 0xc0f
   253c4:	4631      	mov	r1, r6
   253c6:	480f      	ldr	r0, [pc, #60]	; (25404 <bt_att_req_send+0x70>)
   253c8:	f00d ffef 	bl	333aa <printk>
   253cc:	f640 410f 	movw	r1, #3087	; 0xc0f
   253d0:	4630      	mov	r0, r6
   253d2:	f00e fb83 	bl	33adc <assert_post_action>
   253d6:	e7e1      	b.n	2539c <bt_att_req_send+0x8>
	__ASSERT_NO_MSG(req);
   253d8:	4e09      	ldr	r6, [pc, #36]	; (25400 <bt_att_req_send+0x6c>)
   253da:	f44f 6241 	mov.w	r2, #3088	; 0xc10
   253de:	4631      	mov	r1, r6
   253e0:	4808      	ldr	r0, [pc, #32]	; (25404 <bt_att_req_send+0x70>)
   253e2:	f00d ffe2 	bl	333aa <printk>
   253e6:	f44f 6141 	mov.w	r1, #3088	; 0xc10
   253ea:	4630      	mov	r0, r6
   253ec:	f00e fb76 	bl	33adc <assert_post_action>
   253f0:	e7d5      	b.n	2539e <bt_att_req_send+0xa>
   253f2:	6084      	str	r4, [r0, #8]
	list->head = node;
   253f4:	6044      	str	r4, [r0, #4]
}
   253f6:	e7dd      	b.n	253b4 <bt_att_req_send+0x20>
		return -ENOTCONN;
   253f8:	f06f 007f 	mvn.w	r0, #127	; 0x7f
   253fc:	e7de      	b.n	253bc <bt_att_req_send+0x28>
   253fe:	bf00      	nop
   25400:	0003de10 	.word	0x0003de10
   25404:	0003bdac 	.word	0x0003bdac

00025408 <gatt_insert>:

static void gatt_insert(struct bt_gatt_service *svc, uint16_t last_handle)
{
	struct bt_gatt_service *tmp, *prev = NULL;

	if (last_handle == 0 || svc->attrs[0].handle > last_handle) {
   25408:	b161      	cbz	r1, 25424 <gatt_insert+0x1c>
   2540a:	460b      	mov	r3, r1
   2540c:	6802      	ldr	r2, [r0, #0]
   2540e:	8a11      	ldrh	r1, [r2, #16]
   25410:	4299      	cmp	r1, r3
   25412:	d807      	bhi.n	25424 <gatt_insert+0x1c>
{
   25414:	b430      	push	{r4, r5}
	return list->head;
   25416:	4b2a      	ldr	r3, [pc, #168]	; (254c0 <gatt_insert+0xb8>)
   25418:	681d      	ldr	r5, [r3, #0]
		sys_slist_append(&db, &svc->node);
		return;
	}

	/* DB shall always have its service in ascending order */
	SYS_SLIST_FOR_EACH_CONTAINER(&db, tmp, node) {
   2541a:	b195      	cbz	r5, 25442 <gatt_insert+0x3a>
   2541c:	f1a5 0308 	sub.w	r3, r5, #8
   25420:	2400      	movs	r4, #0
   25422:	e03e      	b.n	254a2 <gatt_insert+0x9a>
		sys_slist_append(&db, &svc->node);
   25424:	f100 0308 	add.w	r3, r0, #8
	parent->next = child;
   25428:	2200      	movs	r2, #0
   2542a:	6082      	str	r2, [r0, #8]
	return list->tail;
   2542c:	4a24      	ldr	r2, [pc, #144]	; (254c0 <gatt_insert+0xb8>)
   2542e:	6852      	ldr	r2, [r2, #4]
Z_GENLIST_APPEND(slist, snode)
   25430:	b11a      	cbz	r2, 2543a <gatt_insert+0x32>
	parent->next = child;
   25432:	6013      	str	r3, [r2, #0]
	list->tail = node;
   25434:	4a22      	ldr	r2, [pc, #136]	; (254c0 <gatt_insert+0xb8>)
   25436:	6053      	str	r3, [r2, #4]
		return;
   25438:	4770      	bx	lr
   2543a:	4a21      	ldr	r2, [pc, #132]	; (254c0 <gatt_insert+0xb8>)
   2543c:	6053      	str	r3, [r2, #4]
	list->head = node;
   2543e:	6013      	str	r3, [r2, #0]
}
   25440:	4770      	bx	lr
	SYS_SLIST_FOR_EACH_CONTAINER(&db, tmp, node) {
   25442:	462b      	mov	r3, r5
   25444:	e7ec      	b.n	25420 <gatt_insert+0x18>
		if (tmp->attrs[0].handle > svc->attrs[0].handle) {
			if (prev) {
   25446:	b1fc      	cbz	r4, 25488 <gatt_insert+0x80>
				sys_slist_insert(&db, &prev->node, &svc->node);
   25448:	f100 0308 	add.w	r3, r0, #8
Z_GENLIST_INSERT(slist, snode)
   2544c:	f114 0f08 	cmn.w	r4, #8
   25450:	d005      	beq.n	2545e <gatt_insert+0x56>
	return node->next;
   25452:	68a2      	ldr	r2, [r4, #8]
Z_GENLIST_INSERT(slist, snode)
   25454:	b162      	cbz	r2, 25470 <gatt_insert+0x68>
	parent->next = child;
   25456:	6082      	str	r2, [r0, #8]
   25458:	60a3      	str	r3, [r4, #8]
			return;
		}

		prev = tmp;
	}
}
   2545a:	bc30      	pop	{r4, r5}
   2545c:	4770      	bx	lr
   2545e:	6085      	str	r5, [r0, #8]
	list->head = node;
   25460:	4a17      	ldr	r2, [pc, #92]	; (254c0 <gatt_insert+0xb8>)
   25462:	6013      	str	r3, [r2, #0]
	return list->tail;
   25464:	6852      	ldr	r2, [r2, #4]
Z_GENLIST_PREPEND(slist, snode)
   25466:	2a00      	cmp	r2, #0
   25468:	d1f7      	bne.n	2545a <gatt_insert+0x52>
	list->tail = node;
   2546a:	4a15      	ldr	r2, [pc, #84]	; (254c0 <gatt_insert+0xb8>)
   2546c:	6053      	str	r3, [r2, #4]
}
   2546e:	e7f4      	b.n	2545a <gatt_insert+0x52>
	parent->next = child;
   25470:	6082      	str	r2, [r0, #8]
	return list->tail;
   25472:	4a13      	ldr	r2, [pc, #76]	; (254c0 <gatt_insert+0xb8>)
   25474:	6852      	ldr	r2, [r2, #4]
Z_GENLIST_APPEND(slist, snode)
   25476:	b11a      	cbz	r2, 25480 <gatt_insert+0x78>
	parent->next = child;
   25478:	6013      	str	r3, [r2, #0]
	list->tail = node;
   2547a:	4a11      	ldr	r2, [pc, #68]	; (254c0 <gatt_insert+0xb8>)
   2547c:	6053      	str	r3, [r2, #4]
}
   2547e:	e7ec      	b.n	2545a <gatt_insert+0x52>
	list->tail = node;
   25480:	4a0f      	ldr	r2, [pc, #60]	; (254c0 <gatt_insert+0xb8>)
   25482:	6053      	str	r3, [r2, #4]
	list->head = node;
   25484:	6013      	str	r3, [r2, #0]
}
   25486:	e7e8      	b.n	2545a <gatt_insert+0x52>
				sys_slist_prepend(&db, &svc->node);
   25488:	f100 0208 	add.w	r2, r0, #8
	parent->next = child;
   2548c:	6085      	str	r5, [r0, #8]
	list->head = node;
   2548e:	4b0c      	ldr	r3, [pc, #48]	; (254c0 <gatt_insert+0xb8>)
   25490:	601a      	str	r2, [r3, #0]
	return list->tail;
   25492:	685b      	ldr	r3, [r3, #4]
Z_GENLIST_PREPEND(slist, snode)
   25494:	2b00      	cmp	r3, #0
   25496:	d1e0      	bne.n	2545a <gatt_insert+0x52>
	list->tail = node;
   25498:	4b09      	ldr	r3, [pc, #36]	; (254c0 <gatt_insert+0xb8>)
   2549a:	605a      	str	r2, [r3, #4]
			return;
   2549c:	e7dd      	b.n	2545a <gatt_insert+0x52>
	SYS_SLIST_FOR_EACH_CONTAINER(&db, tmp, node) {
   2549e:	461c      	mov	r4, r3
   254a0:	4613      	mov	r3, r2
   254a2:	2b00      	cmp	r3, #0
   254a4:	d0d9      	beq.n	2545a <gatt_insert+0x52>
		if (tmp->attrs[0].handle > svc->attrs[0].handle) {
   254a6:	681a      	ldr	r2, [r3, #0]
   254a8:	8a12      	ldrh	r2, [r2, #16]
   254aa:	4291      	cmp	r1, r2
   254ac:	d3cb      	bcc.n	25446 <gatt_insert+0x3e>
Z_GENLIST_PEEK_NEXT(slist, snode)
   254ae:	f113 0208 	adds.w	r2, r3, #8
   254b2:	d0f4      	beq.n	2549e <gatt_insert+0x96>
	return node->next;
   254b4:	689a      	ldr	r2, [r3, #8]
	SYS_SLIST_FOR_EACH_CONTAINER(&db, tmp, node) {
   254b6:	2a00      	cmp	r2, #0
   254b8:	d0f1      	beq.n	2549e <gatt_insert+0x96>
   254ba:	3a08      	subs	r2, #8
   254bc:	e7ef      	b.n	2549e <gatt_insert+0x96>
   254be:	bf00      	nop
   254c0:	20002360 	.word	0x20002360

000254c4 <db_hash_set>:

SETTINGS_STATIC_HANDLER_DEFINE(bt_cf, "bt/cf", NULL, cf_set, NULL, NULL);

static int db_hash_set(const char *name, size_t len_rd,
		       settings_read_cb read_cb, void *cb_arg)
{
   254c4:	b510      	push	{r4, lr}
   254c6:	4614      	mov	r4, r2
	ssize_t len;

	len = read_cb(cb_arg, db_hash.stored_hash, sizeof(db_hash.stored_hash));
   254c8:	2210      	movs	r2, #16
   254ca:	4907      	ldr	r1, [pc, #28]	; (254e8 <db_hash_set+0x24>)
   254cc:	4618      	mov	r0, r3
   254ce:	47a0      	blx	r4
	if (len < 0) {
   254d0:	1e04      	subs	r4, r0, #0
   254d2:	db02      	blt.n	254da <db_hash_set+0x16>
	}

	BT_HEXDUMP_DBG(db_hash.stored_hash, sizeof(db_hash.stored_hash),
		       "Stored Hash: ");

	return 0;
   254d4:	2400      	movs	r4, #0
}
   254d6:	4620      	mov	r0, r4
   254d8:	bd10      	pop	{r4, pc}
		BT_ERR("Failed to decode value (err %zd)", len);
   254da:	4622      	mov	r2, r4
   254dc:	2145      	movs	r1, #69	; 0x45
   254de:	4803      	ldr	r0, [pc, #12]	; (254ec <db_hash_set+0x28>)
   254e0:	f00e fb04 	bl	33aec <z_log_minimal_printk>
		return len;
   254e4:	e7f7      	b.n	254d6 <db_hash_set+0x12>
   254e6:	bf00      	nop
   254e8:	20001a10 	.word	0x20001a10
   254ec:	0003e020 	.word	0x0003e020

000254f0 <db_hash_store>:
{
   254f0:	b508      	push	{r3, lr}
	err = settings_save_one("bt/hash", &db_hash.hash, sizeof(db_hash.hash));
   254f2:	2210      	movs	r2, #16
   254f4:	4905      	ldr	r1, [pc, #20]	; (2550c <db_hash_store+0x1c>)
   254f6:	4806      	ldr	r0, [pc, #24]	; (25510 <db_hash_store+0x20>)
   254f8:	f7f8 fe34 	bl	1e164 <settings_save_one>
	if (err) {
   254fc:	b900      	cbnz	r0, 25500 <db_hash_store+0x10>
}
   254fe:	bd08      	pop	{r3, pc}
   25500:	4602      	mov	r2, r0
		BT_ERR("Failed to save Database Hash (err %d)", err);
   25502:	2145      	movs	r1, #69	; 0x45
   25504:	4803      	ldr	r0, [pc, #12]	; (25514 <db_hash_store+0x24>)
   25506:	f00e faf1 	bl	33aec <z_log_minimal_printk>
}
   2550a:	e7f8      	b.n	254fe <db_hash_store+0xe>
   2550c:	20001a00 	.word	0x20001a00
   25510:	0003e048 	.word	0x0003e048
   25514:	0003e050 	.word	0x0003e050

00025518 <find_cf_cfg>:
{
   25518:	b570      	push	{r4, r5, r6, lr}
   2551a:	b082      	sub	sp, #8
   2551c:	4606      	mov	r6, r0
	for (i = 0; i < ARRAY_SIZE(cf_cfg); i++) {
   2551e:	2400      	movs	r4, #0
   25520:	e00b      	b.n	2553a <find_cf_cfg+0x22>
			if (!bt_addr_le_cmp(&cfg->peer, BT_ADDR_LE_ANY)) {
   25522:	4628      	mov	r0, r5
   25524:	2300      	movs	r3, #0
   25526:	9300      	str	r3, [sp, #0]
   25528:	f8cd 3003 	str.w	r3, [sp, #3]
	return memcmp(a, b, sizeof(*a));
   2552c:	2207      	movs	r2, #7
   2552e:	4669      	mov	r1, sp
   25530:	3001      	adds	r0, #1
   25532:	f010 facc 	bl	35ace <memcmp>
   25536:	b1a0      	cbz	r0, 25562 <find_cf_cfg+0x4a>
	for (i = 0; i < ARRAY_SIZE(cf_cfg); i++) {
   25538:	3401      	adds	r4, #1
   2553a:	2c01      	cmp	r4, #1
   2553c:	dc10      	bgt.n	25560 <find_cf_cfg+0x48>
		struct gatt_cf_cfg *cfg = &cf_cfg[i];
   2553e:	4d0a      	ldr	r5, [pc, #40]	; (25568 <find_cf_cfg+0x50>)
   25540:	eb05 1504 	add.w	r5, r5, r4, lsl #4
		if (!conn) {
   25544:	2e00      	cmp	r6, #0
   25546:	d0ec      	beq.n	25522 <find_cf_cfg+0xa>
		} else if (bt_conn_is_peer_addr_le(conn, cfg->id, &cfg->peer)) {
   25548:	4907      	ldr	r1, [pc, #28]	; (25568 <find_cf_cfg+0x50>)
   2554a:	0123      	lsls	r3, r4, #4
   2554c:	eb01 1204 	add.w	r2, r1, r4, lsl #4
   25550:	3201      	adds	r2, #1
   25552:	5cc9      	ldrb	r1, [r1, r3]
   25554:	4630      	mov	r0, r6
   25556:	f011 fa10 	bl	3697a <bt_conn_is_peer_addr_le>
   2555a:	2800      	cmp	r0, #0
   2555c:	d0ec      	beq.n	25538 <find_cf_cfg+0x20>
   2555e:	e000      	b.n	25562 <find_cf_cfg+0x4a>
	return NULL;
   25560:	2500      	movs	r5, #0
}
   25562:	4628      	mov	r0, r5
   25564:	b002      	add	sp, #8
   25566:	bd70      	pop	{r4, r5, r6, pc}
   25568:	20002340 	.word	0x20002340

0002556c <find_sc_cfg>:
{
   2556c:	b570      	push	{r4, r5, r6, lr}
   2556e:	4605      	mov	r5, r0
   25570:	460e      	mov	r6, r1
	for (size_t i = 0; i < ARRAY_SIZE(sc_cfg); i++) {
   25572:	2400      	movs	r4, #0
   25574:	e000      	b.n	25578 <find_sc_cfg+0xc>
   25576:	3401      	adds	r4, #1
   25578:	2c01      	cmp	r4, #1
   2557a:	d817      	bhi.n	255ac <find_sc_cfg+0x40>
		if (id == sc_cfg[i].id &&
   2557c:	eb04 0344 	add.w	r3, r4, r4, lsl #1
   25580:	4a0b      	ldr	r2, [pc, #44]	; (255b0 <find_sc_cfg+0x44>)
   25582:	f812 3023 	ldrb.w	r3, [r2, r3, lsl #2]
   25586:	429d      	cmp	r5, r3
   25588:	d1f5      	bne.n	25576 <find_sc_cfg+0xa>
		    !bt_addr_le_cmp(&sc_cfg[i].peer, addr)) {
   2558a:	eb04 0044 	add.w	r0, r4, r4, lsl #1
   2558e:	eb02 0080 	add.w	r0, r2, r0, lsl #2
   25592:	2207      	movs	r2, #7
   25594:	4631      	mov	r1, r6
   25596:	3001      	adds	r0, #1
   25598:	f010 fa99 	bl	35ace <memcmp>
		if (id == sc_cfg[i].id &&
   2559c:	2800      	cmp	r0, #0
   2559e:	d1ea      	bne.n	25576 <find_sc_cfg+0xa>
			return &sc_cfg[i];
   255a0:	eb04 0444 	add.w	r4, r4, r4, lsl #1
   255a4:	4802      	ldr	r0, [pc, #8]	; (255b0 <find_sc_cfg+0x44>)
   255a6:	eb00 0084 	add.w	r0, r0, r4, lsl #2
   255aa:	e000      	b.n	255ae <find_sc_cfg+0x42>
	return NULL;
   255ac:	2000      	movs	r0, #0
}
   255ae:	bd70      	pop	{r4, r5, r6, pc}
   255b0:	2000236c 	.word	0x2000236c

000255b4 <ccc_save>:
{
   255b4:	b538      	push	{r3, r4, r5, lr}
   255b6:	4614      	mov	r4, r2
	if (attr->write != bt_gatt_attr_write_ccc) {
   255b8:	6882      	ldr	r2, [r0, #8]
   255ba:	4b0d      	ldr	r3, [pc, #52]	; (255f0 <ccc_save+0x3c>)
   255bc:	429a      	cmp	r2, r3
   255be:	d001      	beq.n	255c4 <ccc_save+0x10>
}
   255c0:	2001      	movs	r0, #1
   255c2:	bd38      	pop	{r3, r4, r5, pc}
   255c4:	460d      	mov	r5, r1
	cfg = ccc_find_cfg(ccc, save->addr_with_id.addr, save->addr_with_id.id);
   255c6:	7922      	ldrb	r2, [r4, #4]
   255c8:	6821      	ldr	r1, [r4, #0]
   255ca:	68c0      	ldr	r0, [r0, #12]
   255cc:	f012 fa66 	bl	37a9c <ccc_find_cfg>
	if (!cfg) {
   255d0:	2800      	cmp	r0, #0
   255d2:	d0f5      	beq.n	255c0 <ccc_save+0xc>
	save->store[save->count].handle = handle;
   255d4:	f8d4 30c8 	ldr.w	r3, [r4, #200]	; 0xc8
   255d8:	1c9a      	adds	r2, r3, #2
   255da:	f824 5022 	strh.w	r5, [r4, r2, lsl #2]
	save->store[save->count].value = cfg->value;
   255de:	8901      	ldrh	r1, [r0, #8]
   255e0:	eb04 0282 	add.w	r2, r4, r2, lsl #2
   255e4:	8051      	strh	r1, [r2, #2]
	save->count++;
   255e6:	3301      	adds	r3, #1
   255e8:	f8c4 30c8 	str.w	r3, [r4, #200]	; 0xc8
	return BT_GATT_ITER_CONTINUE;
   255ec:	e7e8      	b.n	255c0 <ccc_save+0xc>
   255ee:	bf00      	nop
   255f0:	000256bd 	.word	0x000256bd

000255f4 <find_cf_cfg_by_addr>:
{
   255f4:	b570      	push	{r4, r5, r6, lr}
   255f6:	4605      	mov	r5, r0
   255f8:	460e      	mov	r6, r1
		for (i = 0; i < ARRAY_SIZE(cf_cfg); i++) {
   255fa:	2400      	movs	r4, #0
   255fc:	e000      	b.n	25600 <find_cf_cfg_by_addr+0xc>
   255fe:	3401      	adds	r4, #1
   25600:	2c01      	cmp	r4, #1
   25602:	dc11      	bgt.n	25628 <find_cf_cfg_by_addr+0x34>
			if (id == cf_cfg[i].id &&
   25604:	0123      	lsls	r3, r4, #4
   25606:	4a09      	ldr	r2, [pc, #36]	; (2562c <find_cf_cfg_by_addr+0x38>)
   25608:	5cd3      	ldrb	r3, [r2, r3]
   2560a:	42ab      	cmp	r3, r5
   2560c:	d1f7      	bne.n	255fe <find_cf_cfg_by_addr+0xa>
			    !bt_addr_le_cmp(addr, &cf_cfg[i].peer)) {
   2560e:	eb02 1104 	add.w	r1, r2, r4, lsl #4
   25612:	2207      	movs	r2, #7
   25614:	3101      	adds	r1, #1
   25616:	4630      	mov	r0, r6
   25618:	f010 fa59 	bl	35ace <memcmp>
			if (id == cf_cfg[i].id &&
   2561c:	2800      	cmp	r0, #0
   2561e:	d1ee      	bne.n	255fe <find_cf_cfg_by_addr+0xa>
				return &cf_cfg[i];
   25620:	4802      	ldr	r0, [pc, #8]	; (2562c <find_cf_cfg_by_addr+0x38>)
   25622:	eb00 1004 	add.w	r0, r0, r4, lsl #4
   25626:	e000      	b.n	2562a <find_cf_cfg_by_addr+0x36>
	return NULL;
   25628:	2000      	movs	r0, #0
}
   2562a:	bd70      	pop	{r4, r5, r6, pc}
   2562c:	20002340 	.word	0x20002340

00025630 <cf_write>:
{
   25630:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   25634:	461d      	mov	r5, r3
   25636:	f8bd 3018 	ldrh.w	r3, [sp, #24]
	if (offset > sizeof(cfg->data)) {
   2563a:	2b01      	cmp	r3, #1
   2563c:	d833      	bhi.n	256a6 <cf_write+0x76>
   2563e:	4606      	mov	r6, r0
   25640:	4690      	mov	r8, r2
	if (offset + len > sizeof(cfg->data)) {
   25642:	462f      	mov	r7, r5
   25644:	442b      	add	r3, r5
   25646:	2b01      	cmp	r3, #1
   25648:	d830      	bhi.n	256ac <cf_write+0x7c>
	cfg = find_cf_cfg(conn);
   2564a:	f7ff ff65 	bl	25518 <find_cf_cfg>
	if (!cfg) {
   2564e:	4604      	mov	r4, r0
   25650:	b1f0      	cbz	r0, 25690 <cf_write+0x60>
	if (!cfg) {
   25652:	b30c      	cbz	r4, 25698 <cf_write+0x68>
	if (!cf_set_value(cfg, value, len)) {
   25654:	462a      	mov	r2, r5
   25656:	4641      	mov	r1, r8
   25658:	4620      	mov	r0, r4
   2565a:	f012 f909 	bl	37870 <cf_set_value>
   2565e:	b340      	cbz	r0, 256b2 <cf_write+0x82>
	memcpy(dst, src, sizeof(*dst));
   25660:	2207      	movs	r2, #7
   25662:	f106 0190 	add.w	r1, r6, #144	; 0x90
   25666:	1c60      	adds	r0, r4, #1
   25668:	f010 fa48 	bl	35afc <memcpy>
	cfg->id = conn->id;
   2566c:	7a33      	ldrb	r3, [r6, #8]
   2566e:	f804 3b0c 	strb.w	r3, [r4], #12
	return __atomic_fetch_or(target, value, __ATOMIC_SEQ_CST);
   25672:	f3bf 8f5b 	dmb	ish
   25676:	e854 3f00 	ldrex	r3, [r4]
   2567a:	f043 0301 	orr.w	r3, r3, #1
   2567e:	e844 3200 	strex	r2, r3, [r4]
   25682:	2a00      	cmp	r2, #0
   25684:	d1f7      	bne.n	25676 <cf_write+0x46>
   25686:	f3bf 8f5b 	dmb	ish
}
   2568a:	4638      	mov	r0, r7
   2568c:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
		cfg = find_cf_cfg(NULL);
   25690:	f7ff ff42 	bl	25518 <find_cf_cfg>
   25694:	4604      	mov	r4, r0
   25696:	e7dc      	b.n	25652 <cf_write+0x22>
		BT_WARN("No space to store Client Supported Features");
   25698:	2157      	movs	r1, #87	; 0x57
   2569a:	4807      	ldr	r0, [pc, #28]	; (256b8 <cf_write+0x88>)
   2569c:	f00e fa26 	bl	33aec <z_log_minimal_printk>
		return BT_GATT_ERR(BT_ATT_ERR_INSUFFICIENT_RESOURCES);
   256a0:	f06f 0710 	mvn.w	r7, #16
   256a4:	e7f1      	b.n	2568a <cf_write+0x5a>
		return BT_GATT_ERR(BT_ATT_ERR_INVALID_OFFSET);
   256a6:	f06f 0706 	mvn.w	r7, #6
   256aa:	e7ee      	b.n	2568a <cf_write+0x5a>
		return BT_GATT_ERR(BT_ATT_ERR_INVALID_ATTRIBUTE_LEN);
   256ac:	f06f 070c 	mvn.w	r7, #12
   256b0:	e7eb      	b.n	2568a <cf_write+0x5a>
		return BT_GATT_ERR(BT_ATT_ERR_VALUE_NOT_ALLOWED);
   256b2:	f06f 0712 	mvn.w	r7, #18
   256b6:	e7e8      	b.n	2568a <cf_write+0x5a>
   256b8:	0003e07c 	.word	0x0003e07c

000256bc <bt_gatt_attr_write_ccc>:
{
   256bc:	e92d 43f8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
   256c0:	461c      	mov	r4, r3
   256c2:	f8bd 3020 	ldrh.w	r3, [sp, #32]
	struct _bt_gatt_ccc *ccc = attr->user_data;
   256c6:	68cf      	ldr	r7, [r1, #12]
	if (offset) {
   256c8:	2b00      	cmp	r3, #0
   256ca:	d14b      	bne.n	25764 <bt_gatt_attr_write_ccc+0xa8>
   256cc:	4681      	mov	r9, r0
   256ce:	460e      	mov	r6, r1
	if (!len || len > sizeof(uint16_t)) {
   256d0:	1e63      	subs	r3, r4, #1
   256d2:	b29b      	uxth	r3, r3
   256d4:	2b01      	cmp	r3, #1
   256d6:	d848      	bhi.n	2576a <bt_gatt_attr_write_ccc+0xae>
	if (len < sizeof(uint16_t)) {
   256d8:	2c01      	cmp	r4, #1
   256da:	d91d      	bls.n	25718 <bt_gatt_attr_write_ccc+0x5c>
   256dc:	7853      	ldrb	r3, [r2, #1]
   256de:	7815      	ldrb	r5, [r2, #0]
   256e0:	ea45 2503 	orr.w	r5, r5, r3, lsl #8
	cfg = find_ccc_cfg(conn, ccc);
   256e4:	4639      	mov	r1, r7
   256e6:	4648      	mov	r0, r9
   256e8:	f012 f9ac 	bl	37a44 <find_ccc_cfg>
	if (!cfg) {
   256ec:	4680      	mov	r8, r0
   256ee:	b1a8      	cbz	r0, 2571c <bt_gatt_attr_write_ccc+0x60>
	if (ccc->cfg_write) {
   256f0:	693b      	ldr	r3, [r7, #16]
   256f2:	b143      	cbz	r3, 25706 <bt_gatt_attr_write_ccc+0x4a>
		ssize_t write = ccc->cfg_write(conn, attr, value);
   256f4:	462a      	mov	r2, r5
   256f6:	4631      	mov	r1, r6
   256f8:	4648      	mov	r0, r9
   256fa:	4798      	blx	r3
		if (write < 0) {
   256fc:	2800      	cmp	r0, #0
   256fe:	db09      	blt.n	25714 <bt_gatt_attr_write_ccc+0x58>
		if (write != sizeof(value) && write != 1) {
   25700:	3801      	subs	r0, #1
   25702:	2801      	cmp	r0, #1
   25704:	d834      	bhi.n	25770 <bt_gatt_attr_write_ccc+0xb4>
	cfg->value = value;
   25706:	f8a8 5008 	strh.w	r5, [r8, #8]
	if (cfg->value != ccc->value) {
   2570a:	897b      	ldrh	r3, [r7, #10]
   2570c:	429d      	cmp	r5, r3
   2570e:	d120      	bne.n	25752 <bt_gatt_attr_write_ccc+0x96>
	if (!value) {
   25710:	b325      	cbz	r5, 2575c <bt_gatt_attr_write_ccc+0xa0>
	return len;
   25712:	4620      	mov	r0, r4
}
   25714:	e8bd 83f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
		value = *(uint8_t *)buf;
   25718:	7815      	ldrb	r5, [r2, #0]
   2571a:	e7e3      	b.n	256e4 <bt_gatt_attr_write_ccc+0x28>
		if (!value) {
   2571c:	b90d      	cbnz	r5, 25722 <bt_gatt_attr_write_ccc+0x66>
			return len;
   2571e:	4620      	mov	r0, r4
   25720:	e7f8      	b.n	25714 <bt_gatt_attr_write_ccc+0x58>
		cfg = find_ccc_cfg(NULL, ccc);
   25722:	4639      	mov	r1, r7
   25724:	2000      	movs	r0, #0
   25726:	f012 f98d 	bl	37a44 <find_ccc_cfg>
		if (!cfg) {
   2572a:	4680      	mov	r8, r0
   2572c:	b150      	cbz	r0, 25744 <bt_gatt_attr_write_ccc+0x88>
   2572e:	2207      	movs	r2, #7
   25730:	f109 0190 	add.w	r1, r9, #144	; 0x90
   25734:	3001      	adds	r0, #1
   25736:	f010 f9e1 	bl	35afc <memcpy>
		cfg->id = conn->id;
   2573a:	f899 3008 	ldrb.w	r3, [r9, #8]
   2573e:	f888 3000 	strb.w	r3, [r8]
   25742:	e7d5      	b.n	256f0 <bt_gatt_attr_write_ccc+0x34>
			BT_WARN("No space to store CCC cfg");
   25744:	2157      	movs	r1, #87	; 0x57
   25746:	480c      	ldr	r0, [pc, #48]	; (25778 <bt_gatt_attr_write_ccc+0xbc>)
   25748:	f00e f9d0 	bl	33aec <z_log_minimal_printk>
			return BT_GATT_ERR(BT_ATT_ERR_INSUFFICIENT_RESOURCES);
   2574c:	f06f 0010 	mvn.w	r0, #16
   25750:	e7e0      	b.n	25714 <bt_gatt_attr_write_ccc+0x58>
		gatt_ccc_changed(attr, ccc);
   25752:	4639      	mov	r1, r7
   25754:	4630      	mov	r0, r6
   25756:	f012 f8bf 	bl	378d8 <gatt_ccc_changed>
   2575a:	e7d9      	b.n	25710 <bt_gatt_attr_write_ccc+0x54>
		clear_ccc_cfg(cfg);
   2575c:	4640      	mov	r0, r8
   2575e:	f012 f9bd 	bl	37adc <clear_ccc_cfg>
   25762:	e7d6      	b.n	25712 <bt_gatt_attr_write_ccc+0x56>
		return BT_GATT_ERR(BT_ATT_ERR_INVALID_OFFSET);
   25764:	f06f 0006 	mvn.w	r0, #6
   25768:	e7d4      	b.n	25714 <bt_gatt_attr_write_ccc+0x58>
		return BT_GATT_ERR(BT_ATT_ERR_INVALID_ATTRIBUTE_LEN);
   2576a:	f06f 000c 	mvn.w	r0, #12
   2576e:	e7d1      	b.n	25714 <bt_gatt_attr_write_ccc+0x58>
			return BT_GATT_ERR(BT_ATT_ERR_UNLIKELY);
   25770:	f06f 000d 	mvn.w	r0, #13
   25774:	e7ce      	b.n	25714 <bt_gatt_attr_write_ccc+0x58>
   25776:	bf00      	nop
   25778:	0003e0b0 	.word	0x0003e0b0

0002577c <ccc_load>:
{
   2577c:	b570      	push	{r4, r5, r6, lr}
   2577e:	b082      	sub	sp, #8
   25780:	4614      	mov	r4, r2
	if (attr->write != bt_gatt_attr_write_ccc) {
   25782:	6882      	ldr	r2, [r0, #8]
   25784:	4b20      	ldr	r3, [pc, #128]	; (25808 <ccc_load+0x8c>)
   25786:	429a      	cmp	r2, r3
   25788:	d002      	beq.n	25790 <ccc_load+0x14>
		return BT_GATT_ITER_CONTINUE;
   2578a:	2001      	movs	r0, #1
}
   2578c:	b002      	add	sp, #8
   2578e:	bd70      	pop	{r4, r5, r6, pc}
	ccc = attr->user_data;
   25790:	68c5      	ldr	r5, [r0, #12]
	if (!load->entry) {
   25792:	68a3      	ldr	r3, [r4, #8]
   25794:	b143      	cbz	r3, 257a8 <ccc_load+0x2c>
	} else if (!load->count) {
   25796:	68e2      	ldr	r2, [r4, #12]
   25798:	2a00      	cmp	r2, #0
   2579a:	d033      	beq.n	25804 <ccc_load+0x88>
	if (load->entry->handle != handle) {
   2579c:	881b      	ldrh	r3, [r3, #0]
   2579e:	428b      	cmp	r3, r1
   257a0:	d009      	beq.n	257b6 <ccc_load+0x3a>
		if (load->entry->handle < handle) {
   257a2:	d312      	bcc.n	257ca <ccc_load+0x4e>
		return BT_GATT_ITER_CONTINUE;
   257a4:	2001      	movs	r0, #1
   257a6:	e7f1      	b.n	2578c <ccc_load+0x10>
		ccc_clear(ccc, load->addr_with_id.addr, load->addr_with_id.id);
   257a8:	7922      	ldrb	r2, [r4, #4]
   257aa:	6821      	ldr	r1, [r4, #0]
   257ac:	4628      	mov	r0, r5
   257ae:	f012 f9a5 	bl	37afc <ccc_clear>
		return BT_GATT_ITER_CONTINUE;
   257b2:	2001      	movs	r0, #1
   257b4:	e7ea      	b.n	2578c <ccc_load+0x10>
	cfg = ccc_find_cfg(ccc, load->addr_with_id.addr, load->addr_with_id.id);
   257b6:	7922      	ldrb	r2, [r4, #4]
   257b8:	6821      	ldr	r1, [r4, #0]
   257ba:	4628      	mov	r0, r5
   257bc:	f012 f96e 	bl	37a9c <ccc_find_cfg>
	if (!cfg) {
   257c0:	4606      	mov	r6, r0
   257c2:	b160      	cbz	r0, 257de <ccc_load+0x62>
	cfg->value = load->entry->value;
   257c4:	68a3      	ldr	r3, [r4, #8]
   257c6:	885b      	ldrh	r3, [r3, #2]
   257c8:	8133      	strh	r3, [r6, #8]
	load->entry++;
   257ca:	68a3      	ldr	r3, [r4, #8]
   257cc:	3304      	adds	r3, #4
   257ce:	60a3      	str	r3, [r4, #8]
	load->count--;
   257d0:	68e0      	ldr	r0, [r4, #12]
   257d2:	3801      	subs	r0, #1
   257d4:	60e0      	str	r0, [r4, #12]
	return load->count ? BT_GATT_ITER_CONTINUE : BT_GATT_ITER_STOP;
   257d6:	3800      	subs	r0, #0
   257d8:	bf18      	it	ne
   257da:	2001      	movne	r0, #1
   257dc:	e7d6      	b.n	2578c <ccc_load+0x10>
		cfg = ccc_find_cfg(ccc, BT_ADDR_LE_ANY, 0);
   257de:	2200      	movs	r2, #0
   257e0:	9200      	str	r2, [sp, #0]
   257e2:	f8cd 2003 	str.w	r2, [sp, #3]
   257e6:	4669      	mov	r1, sp
   257e8:	4628      	mov	r0, r5
   257ea:	f012 f957 	bl	37a9c <ccc_find_cfg>
		if (!cfg) {
   257ee:	4606      	mov	r6, r0
   257f0:	2800      	cmp	r0, #0
   257f2:	d0ea      	beq.n	257ca <ccc_load+0x4e>
   257f4:	2207      	movs	r2, #7
   257f6:	6821      	ldr	r1, [r4, #0]
   257f8:	3001      	adds	r0, #1
   257fa:	f010 f97f 	bl	35afc <memcpy>
		cfg->id = load->addr_with_id.id;
   257fe:	7923      	ldrb	r3, [r4, #4]
   25800:	7033      	strb	r3, [r6, #0]
   25802:	e7df      	b.n	257c4 <ccc_load+0x48>
		return BT_GATT_ITER_STOP;
   25804:	2000      	movs	r0, #0
   25806:	e7c1      	b.n	2578c <ccc_load+0x10>
   25808:	000256bd 	.word	0x000256bd

0002580c <sc_store>:
{
   2580c:	b530      	push	{r4, r5, lr}
   2580e:	b08d      	sub	sp, #52	; 0x34
   25810:	4604      	mov	r4, r0
	if (cfg->id) {
   25812:	7802      	ldrb	r2, [r0, #0]
   25814:	b1aa      	cbz	r2, 25842 <sc_store+0x36>
		u8_to_dec(id_str, sizeof(id_str), cfg->id);
   25816:	ad02      	add	r5, sp, #8
   25818:	2104      	movs	r1, #4
   2581a:	4628      	mov	r0, r5
   2581c:	f7f6 fdd6 	bl	1c3cc <u8_to_dec>
		bt_settings_encode_key(key, sizeof(key), "sc",
   25820:	9500      	str	r5, [sp, #0]
   25822:	1c63      	adds	r3, r4, #1
   25824:	4a0e      	ldr	r2, [pc, #56]	; (25860 <sc_store+0x54>)
   25826:	2124      	movs	r1, #36	; 0x24
   25828:	a803      	add	r0, sp, #12
   2582a:	f7fa ff35 	bl	20698 <bt_settings_encode_key>
	err = settings_save_one(key, (char *)&cfg->data, sizeof(cfg->data));
   2582e:	2204      	movs	r2, #4
   25830:	f104 0108 	add.w	r1, r4, #8
   25834:	a803      	add	r0, sp, #12
   25836:	f7f8 fc95 	bl	1e164 <settings_save_one>
	if (err) {
   2583a:	4602      	mov	r2, r0
   2583c:	b950      	cbnz	r0, 25854 <sc_store+0x48>
}
   2583e:	b00d      	add	sp, #52	; 0x34
   25840:	bd30      	pop	{r4, r5, pc}
		bt_settings_encode_key(key, sizeof(key), "sc",
   25842:	2300      	movs	r3, #0
   25844:	9300      	str	r3, [sp, #0]
   25846:	1c43      	adds	r3, r0, #1
   25848:	4a05      	ldr	r2, [pc, #20]	; (25860 <sc_store+0x54>)
   2584a:	2124      	movs	r1, #36	; 0x24
   2584c:	a803      	add	r0, sp, #12
   2584e:	f7fa ff23 	bl	20698 <bt_settings_encode_key>
   25852:	e7ec      	b.n	2582e <sc_store+0x22>
		BT_ERR("failed to store SC (err %d)", err);
   25854:	2145      	movs	r1, #69	; 0x45
   25856:	4803      	ldr	r0, [pc, #12]	; (25864 <sc_store+0x58>)
   25858:	f00e f948 	bl	33aec <z_log_minimal_printk>
		return;
   2585c:	e7ef      	b.n	2583e <sc_store+0x32>
   2585e:	bf00      	nop
   25860:	0003e0d0 	.word	0x0003e0d0
   25864:	0003e0d4 	.word	0x0003e0d4

00025868 <sc_save>:
{
   25868:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   2586c:	b082      	sub	sp, #8
   2586e:	4607      	mov	r7, r0
   25870:	4688      	mov	r8, r1
   25872:	4616      	mov	r6, r2
   25874:	461d      	mov	r5, r3
	cfg = find_sc_cfg(id, peer);
   25876:	f7ff fe79 	bl	2556c <find_sc_cfg>
	if (!cfg) {
   2587a:	4604      	mov	r4, r0
   2587c:	b1a8      	cbz	r0, 258aa <sc_save+0x42>
	if (!(cfg->data.start || cfg->data.end)) {
   2587e:	8923      	ldrh	r3, [r4, #8]
   25880:	b90b      	cbnz	r3, 25886 <sc_save+0x1e>
   25882:	8963      	ldrh	r3, [r4, #10]
   25884:	b32b      	cbz	r3, 258d2 <sc_save+0x6a>
	modified = update_range(&cfg->data.start, &cfg->data.end, start, end);
   25886:	462b      	mov	r3, r5
   25888:	4632      	mov	r2, r6
   2588a:	f104 010a 	add.w	r1, r4, #10
   2588e:	f104 0008 	add.w	r0, r4, #8
   25892:	f011 ffd8 	bl	37846 <update_range>
	if (IS_ENABLED(CONFIG_BT_SETTINGS) &&
   25896:	b128      	cbz	r0, 258a4 <sc_save+0x3c>
	    modified && bt_addr_le_is_bonded(cfg->id, &cfg->peer)) {
   25898:	4621      	mov	r1, r4
   2589a:	f811 0b01 	ldrb.w	r0, [r1], #1
   2589e:	f010 fc1a 	bl	360d6 <bt_addr_le_is_bonded>
   258a2:	b9c8      	cbnz	r0, 258d8 <sc_save+0x70>
}
   258a4:	b002      	add	sp, #8
   258a6:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
		cfg = find_sc_cfg(BT_ID_DEFAULT, BT_ADDR_LE_ANY);
   258aa:	9000      	str	r0, [sp, #0]
   258ac:	f8cd 0003 	str.w	r0, [sp, #3]
   258b0:	4669      	mov	r1, sp
   258b2:	f7ff fe5b 	bl	2556c <find_sc_cfg>
		if (!cfg) {
   258b6:	4604      	mov	r4, r0
   258b8:	b130      	cbz	r0, 258c8 <sc_save+0x60>
		cfg->id = id;
   258ba:	f800 7b01 	strb.w	r7, [r0], #1
   258be:	2207      	movs	r2, #7
   258c0:	4641      	mov	r1, r8
   258c2:	f010 f91b 	bl	35afc <memcpy>
   258c6:	e7da      	b.n	2587e <sc_save+0x16>
			BT_ERR("unable to save SC: no cfg left");
   258c8:	2145      	movs	r1, #69	; 0x45
   258ca:	4805      	ldr	r0, [pc, #20]	; (258e0 <sc_save+0x78>)
   258cc:	f00e f90e 	bl	33aec <z_log_minimal_printk>
			return;
   258d0:	e7e8      	b.n	258a4 <sc_save+0x3c>
		cfg->data.start = start;
   258d2:	8126      	strh	r6, [r4, #8]
		cfg->data.end = end;
   258d4:	8165      	strh	r5, [r4, #10]
	if (IS_ENABLED(CONFIG_BT_SETTINGS) &&
   258d6:	e7df      	b.n	25898 <sc_save+0x30>
		sc_store(cfg);
   258d8:	4620      	mov	r0, r4
   258da:	f7ff ff97 	bl	2580c <sc_store>
   258de:	e7e1      	b.n	258a4 <sc_save+0x3c>
   258e0:	0003e0f8 	.word	0x0003e0f8

000258e4 <bt_gatt_store_cf>:
{
   258e4:	b5f0      	push	{r4, r5, r6, r7, lr}
   258e6:	b08d      	sub	sp, #52	; 0x34
   258e8:	4604      	mov	r4, r0
	cfg = find_cf_cfg(conn);
   258ea:	f7ff fe15 	bl	25518 <find_cf_cfg>
	if (!cfg) {
   258ee:	4605      	mov	r5, r0
   258f0:	b348      	cbz	r0, 25946 <bt_gatt_store_cf+0x62>
		str = (char *)cfg->data;
   258f2:	f100 0608 	add.w	r6, r0, #8
		if (conn->id) {
   258f6:	7a22      	ldrb	r2, [r4, #8]
   258f8:	b9b2      	cbnz	r2, 25928 <bt_gatt_store_cf+0x44>
		len = sizeof(cfg->data);
   258fa:	2701      	movs	r7, #1
	if (!cfg || !conn->id) {
   258fc:	b10d      	cbz	r5, 25902 <bt_gatt_store_cf+0x1e>
   258fe:	7a23      	ldrb	r3, [r4, #8]
   25900:	b943      	cbnz	r3, 25914 <bt_gatt_store_cf+0x30>
		bt_settings_encode_key(key, sizeof(key), "cf",
   25902:	2300      	movs	r3, #0
   25904:	9300      	str	r3, [sp, #0]
   25906:	f104 0390 	add.w	r3, r4, #144	; 0x90
   2590a:	4a13      	ldr	r2, [pc, #76]	; (25958 <bt_gatt_store_cf+0x74>)
   2590c:	2124      	movs	r1, #36	; 0x24
   2590e:	a803      	add	r0, sp, #12
   25910:	f7fa fec2 	bl	20698 <bt_settings_encode_key>
	err = settings_save_one(key, str, len);
   25914:	463a      	mov	r2, r7
   25916:	4631      	mov	r1, r6
   25918:	a803      	add	r0, sp, #12
   2591a:	f7f8 fc23 	bl	1e164 <settings_save_one>
	if (err) {
   2591e:	4604      	mov	r4, r0
   25920:	b9a0      	cbnz	r0, 2594c <bt_gatt_store_cf+0x68>
}
   25922:	4620      	mov	r0, r4
   25924:	b00d      	add	sp, #52	; 0x34
   25926:	bdf0      	pop	{r4, r5, r6, r7, pc}
			u8_to_dec(id_str, sizeof(id_str), conn->id);
   25928:	af02      	add	r7, sp, #8
   2592a:	2104      	movs	r1, #4
   2592c:	4638      	mov	r0, r7
   2592e:	f7f6 fd4d 	bl	1c3cc <u8_to_dec>
			bt_settings_encode_key(key, sizeof(key), "cf",
   25932:	9700      	str	r7, [sp, #0]
   25934:	f104 0390 	add.w	r3, r4, #144	; 0x90
   25938:	4a07      	ldr	r2, [pc, #28]	; (25958 <bt_gatt_store_cf+0x74>)
   2593a:	2124      	movs	r1, #36	; 0x24
   2593c:	a803      	add	r0, sp, #12
   2593e:	f7fa feab 	bl	20698 <bt_settings_encode_key>
		len = sizeof(cfg->data);
   25942:	2701      	movs	r7, #1
   25944:	e7da      	b.n	258fc <bt_gatt_store_cf+0x18>
		str = NULL;
   25946:	4606      	mov	r6, r0
		len = 0;
   25948:	2700      	movs	r7, #0
   2594a:	e7d7      	b.n	258fc <bt_gatt_store_cf+0x18>
		BT_ERR("Failed to store Client Features (err %d)", err);
   2594c:	4602      	mov	r2, r0
   2594e:	2145      	movs	r1, #69	; 0x45
   25950:	4802      	ldr	r0, [pc, #8]	; (2595c <bt_gatt_store_cf+0x78>)
   25952:	f00e f8cb 	bl	33aec <z_log_minimal_printk>
		return err;
   25956:	e7e4      	b.n	25922 <bt_gatt_store_cf+0x3e>
   25958:	0003e11c 	.word	0x0003e11c
   2595c:	0003e120 	.word	0x0003e120

00025960 <bt_gatt_clear_sc>:
{
   25960:	b530      	push	{r4, r5, lr}
   25962:	b08d      	sub	sp, #52	; 0x34
	cfg = find_sc_cfg(id, (bt_addr_le_t *)addr);
   25964:	f7ff fe02 	bl	2556c <find_sc_cfg>
	if (!cfg) {
   25968:	b1b0      	cbz	r0, 25998 <bt_gatt_clear_sc+0x38>
   2596a:	4604      	mov	r4, r0
		if (cfg->id) {
   2596c:	7802      	ldrb	r2, [r0, #0]
   2596e:	b1b2      	cbz	r2, 2599e <bt_gatt_clear_sc+0x3e>
			u8_to_dec(id_str, sizeof(id_str), cfg->id);
   25970:	ad02      	add	r5, sp, #8
   25972:	2104      	movs	r1, #4
   25974:	4628      	mov	r0, r5
   25976:	f7f6 fd29 	bl	1c3cc <u8_to_dec>
			bt_settings_encode_key(key, sizeof(key), "sc",
   2597a:	9500      	str	r5, [sp, #0]
   2597c:	1c63      	adds	r3, r4, #1
   2597e:	4a0f      	ldr	r2, [pc, #60]	; (259bc <bt_gatt_clear_sc+0x5c>)
   25980:	2124      	movs	r1, #36	; 0x24
   25982:	a803      	add	r0, sp, #12
   25984:	f7fa fe88 	bl	20698 <bt_settings_encode_key>
		err = settings_delete(key);
   25988:	a803      	add	r0, sp, #12
   2598a:	f00e fd9c 	bl	344c6 <settings_delete>
		if (err) {
   2598e:	4602      	mov	r2, r0
   25990:	b970      	cbnz	r0, 259b0 <bt_gatt_clear_sc+0x50>
	clear_sc_cfg(cfg);
   25992:	4620      	mov	r0, r4
   25994:	f012 f8b9 	bl	37b0a <clear_sc_cfg>
}
   25998:	2000      	movs	r0, #0
   2599a:	b00d      	add	sp, #52	; 0x34
   2599c:	bd30      	pop	{r4, r5, pc}
			bt_settings_encode_key(key, sizeof(key), "sc",
   2599e:	2300      	movs	r3, #0
   259a0:	9300      	str	r3, [sp, #0]
   259a2:	1c43      	adds	r3, r0, #1
   259a4:	4a05      	ldr	r2, [pc, #20]	; (259bc <bt_gatt_clear_sc+0x5c>)
   259a6:	2124      	movs	r1, #36	; 0x24
   259a8:	a803      	add	r0, sp, #12
   259aa:	f7fa fe75 	bl	20698 <bt_settings_encode_key>
   259ae:	e7eb      	b.n	25988 <bt_gatt_clear_sc+0x28>
			BT_ERR("failed to delete SC (err %d)", err);
   259b0:	2145      	movs	r1, #69	; 0x45
   259b2:	4803      	ldr	r0, [pc, #12]	; (259c0 <bt_gatt_clear_sc+0x60>)
   259b4:	f00e f89a 	bl	33aec <z_log_minimal_printk>
   259b8:	e7eb      	b.n	25992 <bt_gatt_clear_sc+0x32>
   259ba:	bf00      	nop
   259bc:	0003e0d0 	.word	0x0003e0d0
   259c0:	0003e150 	.word	0x0003e150

000259c4 <sc_clear>:
{
   259c4:	b538      	push	{r3, r4, r5, lr}
   259c6:	4604      	mov	r4, r0
	if (bt_addr_le_is_bonded(conn->id, &conn->le.dst)) {
   259c8:	f100 0590 	add.w	r5, r0, #144	; 0x90
   259cc:	4629      	mov	r1, r5
   259ce:	7a00      	ldrb	r0, [r0, #8]
   259d0:	f010 fb81 	bl	360d6 <bt_addr_le_is_bonded>
   259d4:	b158      	cbz	r0, 259ee <sc_clear+0x2a>
		err = bt_gatt_clear_sc(conn->id, &conn->le.dst);
   259d6:	4629      	mov	r1, r5
   259d8:	7a20      	ldrb	r0, [r4, #8]
   259da:	f7ff ffc1 	bl	25960 <bt_gatt_clear_sc>
		if (err) {
   259de:	4602      	mov	r2, r0
   259e0:	b900      	cbnz	r0, 259e4 <sc_clear+0x20>
}
   259e2:	bd38      	pop	{r3, r4, r5, pc}
			BT_ERR("Failed to clear SC %d", err);
   259e4:	2145      	movs	r1, #69	; 0x45
   259e6:	4806      	ldr	r0, [pc, #24]	; (25a00 <sc_clear+0x3c>)
   259e8:	f00e f880 	bl	33aec <z_log_minimal_printk>
   259ec:	e7f9      	b.n	259e2 <sc_clear+0x1e>
		cfg = find_sc_cfg(conn->id, &conn->le.dst);
   259ee:	4629      	mov	r1, r5
   259f0:	7a20      	ldrb	r0, [r4, #8]
   259f2:	f7ff fdbb 	bl	2556c <find_sc_cfg>
		if (cfg) {
   259f6:	2800      	cmp	r0, #0
   259f8:	d0f3      	beq.n	259e2 <sc_clear+0x1e>
			clear_sc_cfg(cfg);
   259fa:	f012 f886 	bl	37b0a <clear_sc_cfg>
}
   259fe:	e7f0      	b.n	259e2 <sc_clear+0x1e>
   25a00:	0003e174 	.word	0x0003e174

00025a04 <remove_peer_from_attr>:
#endif /*CONFIG_BT_GATT_CACHING */
#endif /* CONFIG_BT_SETTINGS */

static uint8_t remove_peer_from_attr(const struct bt_gatt_attr *attr,
				     uint16_t handle, void *user_data)
{
   25a04:	b508      	push	{r3, lr}
   25a06:	4613      	mov	r3, r2
	const struct addr_with_id *addr_with_id = user_data;
	struct _bt_gatt_ccc *ccc;
	struct bt_gatt_ccc_cfg *cfg;

	/* Check if attribute is a CCC */
	if (attr->write != bt_gatt_attr_write_ccc) {
   25a08:	6881      	ldr	r1, [r0, #8]
   25a0a:	4a08      	ldr	r2, [pc, #32]	; (25a2c <remove_peer_from_attr+0x28>)
   25a0c:	4291      	cmp	r1, r2
   25a0e:	d001      	beq.n	25a14 <remove_peer_from_attr+0x10>
	if (cfg) {
		memset(cfg, 0, sizeof(*cfg));
	}

	return BT_GATT_ITER_CONTINUE;
}
   25a10:	2001      	movs	r0, #1
   25a12:	bd08      	pop	{r3, pc}
	cfg = ccc_find_cfg(ccc, addr_with_id->addr, addr_with_id->id);
   25a14:	791a      	ldrb	r2, [r3, #4]
   25a16:	6819      	ldr	r1, [r3, #0]
   25a18:	68c0      	ldr	r0, [r0, #12]
   25a1a:	f012 f83f 	bl	37a9c <ccc_find_cfg>
	if (cfg) {
   25a1e:	2800      	cmp	r0, #0
   25a20:	d0f6      	beq.n	25a10 <remove_peer_from_attr+0xc>
		memset(cfg, 0, sizeof(*cfg));
   25a22:	220a      	movs	r2, #10
   25a24:	2100      	movs	r1, #0
   25a26:	f010 f88d 	bl	35b44 <memset>
   25a2a:	e7f1      	b.n	25a10 <remove_peer_from_attr+0xc>
   25a2c:	000256bd 	.word	0x000256bd

00025a30 <bt_gatt_service_init>:
{
   25a30:	b538      	push	{r3, r4, r5, lr}
	return __atomic_compare_exchange_n(target, &old_value, new_value,
   25a32:	4b15      	ldr	r3, [pc, #84]	; (25a88 <bt_gatt_service_init+0x58>)
   25a34:	2201      	movs	r2, #1
   25a36:	f3bf 8f5b 	dmb	ish
   25a3a:	e853 1f00 	ldrex	r1, [r3]
   25a3e:	2900      	cmp	r1, #0
   25a40:	d103      	bne.n	25a4a <bt_gatt_service_init+0x1a>
   25a42:	e843 2000 	strex	r0, r2, [r3]
   25a46:	2800      	cmp	r0, #0
   25a48:	d1f7      	bne.n	25a3a <bt_gatt_service_init+0xa>
   25a4a:	f3bf 8f5b 	dmb	ish
	if (!atomic_cas(&service_init, 0, 1)) {
   25a4e:	d11a      	bne.n	25a86 <bt_gatt_service_init+0x56>
	STRUCT_SECTION_FOREACH(bt_gatt_service_static, svc) {
   25a50:	4c0e      	ldr	r4, [pc, #56]	; (25a8c <bt_gatt_service_init+0x5c>)
   25a52:	e014      	b.n	25a7e <bt_gatt_service_init+0x4e>
   25a54:	4d0e      	ldr	r5, [pc, #56]	; (25a90 <bt_gatt_service_init+0x60>)
   25a56:	f240 424e 	movw	r2, #1102	; 0x44e
   25a5a:	4629      	mov	r1, r5
   25a5c:	480d      	ldr	r0, [pc, #52]	; (25a94 <bt_gatt_service_init+0x64>)
   25a5e:	f00d fca4 	bl	333aa <printk>
   25a62:	f240 414e 	movw	r1, #1102	; 0x44e
   25a66:	4628      	mov	r0, r5
   25a68:	f00e f838 	bl	33adc <assert_post_action>
   25a6c:	4b0a      	ldr	r3, [pc, #40]	; (25a98 <bt_gatt_service_init+0x68>)
   25a6e:	429c      	cmp	r4, r3
   25a70:	d209      	bcs.n	25a86 <bt_gatt_service_init+0x56>
		last_static_handle += svc->attr_count;
   25a72:	6863      	ldr	r3, [r4, #4]
   25a74:	4a09      	ldr	r2, [pc, #36]	; (25a9c <bt_gatt_service_init+0x6c>)
   25a76:	8811      	ldrh	r1, [r2, #0]
   25a78:	440b      	add	r3, r1
   25a7a:	8013      	strh	r3, [r2, #0]
	STRUCT_SECTION_FOREACH(bt_gatt_service_static, svc) {
   25a7c:	3408      	adds	r4, #8
   25a7e:	4b06      	ldr	r3, [pc, #24]	; (25a98 <bt_gatt_service_init+0x68>)
   25a80:	429c      	cmp	r4, r3
   25a82:	d9f3      	bls.n	25a6c <bt_gatt_service_init+0x3c>
   25a84:	e7e6      	b.n	25a54 <bt_gatt_service_init+0x24>
}
   25a86:	bd38      	pop	{r3, r4, r5, pc}
   25a88:	2000239c 	.word	0x2000239c
   25a8c:	0003b7a8 	.word	0x0003b7a8
   25a90:	0003e190 	.word	0x0003e190
   25a94:	0003bdac 	.word	0x0003bdac
   25a98:	0003b7c0 	.word	0x0003b7c0
   25a9c:	200034e4 	.word	0x200034e4

00025aa0 <sc_indicate>:
{
   25aa0:	b510      	push	{r4, lr}
   25aa2:	4602      	mov	r2, r0
	return __atomic_fetch_or(target, value, __ATOMIC_SEQ_CST);
   25aa4:	4c17      	ldr	r4, [pc, #92]	; (25b04 <sc_indicate+0x64>)
   25aa6:	f3bf 8f5b 	dmb	ish
   25aaa:	e854 3f00 	ldrex	r3, [r4]
   25aae:	f043 0001 	orr.w	r0, r3, #1
   25ab2:	e844 0c00 	strex	ip, r0, [r4]
   25ab6:	f1bc 0f00 	cmp.w	ip, #0
   25aba:	d1f6      	bne.n	25aaa <sc_indicate+0xa>
   25abc:	f3bf 8f5b 	dmb	ish
	if (!atomic_test_and_set_bit(gatt_sc.flags, SC_RANGE_CHANGED)) {
   25ac0:	f013 0f01 	tst.w	r3, #1
   25ac4:	d10d      	bne.n	25ae2 <sc_indicate+0x42>
		gatt_sc.start = start;
   25ac6:	f1a4 0350 	sub.w	r3, r4, #80	; 0x50
   25aca:	831a      	strh	r2, [r3, #24]
		gatt_sc.end = end;
   25acc:	8359      	strh	r1, [r3, #26]
	return __atomic_load_n(target, __ATOMIC_SEQ_CST);
   25ace:	f3bf 8f5b 	dmb	ish
   25ad2:	4b0d      	ldr	r3, [pc, #52]	; (25b08 <sc_indicate+0x68>)
   25ad4:	6d1b      	ldr	r3, [r3, #80]	; 0x50
   25ad6:	f3bf 8f5b 	dmb	ish
	if (atomic_test_bit(gatt_sc.flags, SC_INDICATE_PENDING)) {
   25ada:	f013 0f02 	tst.w	r3, #2
   25ade:	d00a      	beq.n	25af6 <sc_indicate+0x56>
}
   25ae0:	bd10      	pop	{r4, pc}
	if (!update_range(&gatt_sc.start, &gatt_sc.end, start, end)) {
   25ae2:	4809      	ldr	r0, [pc, #36]	; (25b08 <sc_indicate+0x68>)
   25ae4:	460b      	mov	r3, r1
   25ae6:	f100 011a 	add.w	r1, r0, #26
   25aea:	3018      	adds	r0, #24
   25aec:	f011 feab 	bl	37846 <update_range>
   25af0:	2800      	cmp	r0, #0
   25af2:	d1ec      	bne.n	25ace <sc_indicate+0x2e>
   25af4:	e7f4      	b.n	25ae0 <sc_indicate+0x40>
	k_work_reschedule(&gatt_sc.work, timeout);
   25af6:	f44f 72a4 	mov.w	r2, #328	; 0x148
   25afa:	2300      	movs	r3, #0
   25afc:	4803      	ldr	r0, [pc, #12]	; (25b0c <sc_indicate+0x6c>)
   25afe:	f00a ff31 	bl	30964 <k_work_reschedule>
   25b02:	e7ed      	b.n	25ae0 <sc_indicate+0x40>
   25b04:	20001ac8 	.word	0x20001ac8
   25b08:	20001a78 	.word	0x20001a78
   25b0c:	20001a98 	.word	0x20001a98

00025b10 <db_hash_commit>:
{
   25b10:	b508      	push	{r3, lr}
	return __atomic_fetch_or(target, value, __ATOMIC_SEQ_CST);
   25b12:	4b0a      	ldr	r3, [pc, #40]	; (25b3c <db_hash_commit+0x2c>)
   25b14:	f3bf 8f5b 	dmb	ish
   25b18:	e853 2f00 	ldrex	r2, [r3]
   25b1c:	f042 0208 	orr.w	r2, r2, #8
   25b20:	e843 2100 	strex	r1, r2, [r3]
   25b24:	2900      	cmp	r1, #0
   25b26:	d1f7      	bne.n	25b18 <db_hash_commit+0x8>
   25b28:	f3bf 8f5b 	dmb	ish
	k_work_reschedule(&db_hash.work, K_NO_WAIT);
   25b2c:	2200      	movs	r2, #0
   25b2e:	2300      	movs	r3, #0
   25b30:	4803      	ldr	r0, [pc, #12]	; (25b40 <db_hash_commit+0x30>)
   25b32:	f00a ff17 	bl	30964 <k_work_reschedule>
}
   25b36:	2000      	movs	r0, #0
   25b38:	bd08      	pop	{r3, pc}
   25b3a:	bf00      	nop
   25b3c:	20001ac8 	.word	0x20001ac8
   25b40:	20001a20 	.word	0x20001a20

00025b44 <sc_indicate_rsp>:
{
   25b44:	b510      	push	{r4, lr}
   25b46:	4604      	mov	r4, r0
	return __atomic_fetch_and(target, value, __ATOMIC_SEQ_CST);
   25b48:	4b19      	ldr	r3, [pc, #100]	; (25bb0 <sc_indicate_rsp+0x6c>)
   25b4a:	f103 0250 	add.w	r2, r3, #80	; 0x50
   25b4e:	f3bf 8f5b 	dmb	ish
   25b52:	e852 1f00 	ldrex	r1, [r2]
   25b56:	f021 0102 	bic.w	r1, r1, #2
   25b5a:	e842 1000 	strex	r0, r1, [r2]
   25b5e:	2800      	cmp	r0, #0
   25b60:	d1f7      	bne.n	25b52 <sc_indicate_rsp+0xe>
   25b62:	f3bf 8f5b 	dmb	ish
	return __atomic_load_n(target, __ATOMIC_SEQ_CST);
   25b66:	f3bf 8f5b 	dmb	ish
   25b6a:	6d1b      	ldr	r3, [r3, #80]	; 0x50
   25b6c:	f3bf 8f5b 	dmb	ish
	if (atomic_test_bit(gatt_sc.flags, SC_RANGE_CHANGED)) {
   25b70:	f013 0f01 	tst.w	r3, #1
   25b74:	d116      	bne.n	25ba4 <sc_indicate_rsp+0x60>
	cfg = find_cf_cfg(conn);
   25b76:	4620      	mov	r0, r4
   25b78:	f7ff fcce 	bl	25518 <find_cf_cfg>
	if (cfg && CF_ROBUST_CACHING(cfg)) {
   25b7c:	4603      	mov	r3, r0
   25b7e:	b180      	cbz	r0, 25ba2 <sc_indicate_rsp+0x5e>
   25b80:	7a02      	ldrb	r2, [r0, #8]
   25b82:	f012 0f01 	tst.w	r2, #1
   25b86:	d00c      	beq.n	25ba2 <sc_indicate_rsp+0x5e>
		atomic_set_bit(cfg->flags, CF_CHANGE_AWARE);
   25b88:	330c      	adds	r3, #12
	return __atomic_fetch_or(target, value, __ATOMIC_SEQ_CST);
   25b8a:	f3bf 8f5b 	dmb	ish
   25b8e:	e853 2f00 	ldrex	r2, [r3]
   25b92:	f042 0201 	orr.w	r2, r2, #1
   25b96:	e843 2100 	strex	r1, r2, [r3]
   25b9a:	2900      	cmp	r1, #0
   25b9c:	d1f7      	bne.n	25b8e <sc_indicate_rsp+0x4a>
   25b9e:	f3bf 8f5b 	dmb	ish
}
   25ba2:	bd10      	pop	{r4, pc}
	k_work_reschedule(&gatt_sc.work, timeout);
   25ba4:	2200      	movs	r2, #0
   25ba6:	2300      	movs	r3, #0
   25ba8:	4802      	ldr	r0, [pc, #8]	; (25bb4 <sc_indicate_rsp+0x70>)
   25baa:	f00a fedb 	bl	30964 <k_work_reschedule>
   25bae:	e7e2      	b.n	25b76 <sc_indicate_rsp+0x32>
   25bb0:	20001a78 	.word	0x20001a78
   25bb4:	20001a98 	.word	0x20001a98

00025bb8 <sc_commit>:
{
   25bb8:	b508      	push	{r3, lr}
	return __atomic_fetch_and(target, value, __ATOMIC_SEQ_CST);
   25bba:	4b10      	ldr	r3, [pc, #64]	; (25bfc <sc_commit+0x44>)
   25bbc:	f103 0250 	add.w	r2, r3, #80	; 0x50
   25bc0:	f3bf 8f5b 	dmb	ish
   25bc4:	e852 1f00 	ldrex	r1, [r2]
   25bc8:	f021 0102 	bic.w	r1, r1, #2
   25bcc:	e842 1000 	strex	r0, r1, [r2]
   25bd0:	2800      	cmp	r0, #0
   25bd2:	d1f7      	bne.n	25bc4 <sc_commit+0xc>
   25bd4:	f3bf 8f5b 	dmb	ish
	return __atomic_load_n(target, __ATOMIC_SEQ_CST);
   25bd8:	f3bf 8f5b 	dmb	ish
   25bdc:	6d1b      	ldr	r3, [r3, #80]	; 0x50
   25bde:	f3bf 8f5b 	dmb	ish
	if (atomic_test_bit(gatt_sc.flags, SC_RANGE_CHANGED)) {
   25be2:	f013 0f01 	tst.w	r3, #1
   25be6:	d101      	bne.n	25bec <sc_commit+0x34>
}
   25be8:	2000      	movs	r0, #0
   25bea:	bd08      	pop	{r3, pc}
	k_work_reschedule(&gatt_sc.work, timeout);
   25bec:	f44f 72a4 	mov.w	r2, #328	; 0x148
   25bf0:	2300      	movs	r3, #0
   25bf2:	4803      	ldr	r0, [pc, #12]	; (25c00 <sc_commit+0x48>)
   25bf4:	f00a feb6 	bl	30964 <k_work_reschedule>
   25bf8:	e7f6      	b.n	25be8 <sc_commit+0x30>
   25bfa:	bf00      	nop
   25bfc:	20001a78 	.word	0x20001a78
   25c00:	20001a98 	.word	0x20001a98

00025c04 <db_changed>:
{
   25c04:	b510      	push	{r4, lr}
   25c06:	b082      	sub	sp, #8
	return __atomic_fetch_and(target, value, __ATOMIC_SEQ_CST);
   25c08:	4b25      	ldr	r3, [pc, #148]	; (25ca0 <db_changed+0x9c>)
   25c0a:	f3bf 8f5b 	dmb	ish
   25c0e:	e853 2f00 	ldrex	r2, [r3]
   25c12:	f022 0204 	bic.w	r2, r2, #4
   25c16:	e843 2100 	strex	r1, r2, [r3]
   25c1a:	2900      	cmp	r1, #0
   25c1c:	d1f7      	bne.n	25c0e <db_changed+0xa>
   25c1e:	f3bf 8f5b 	dmb	ish
	k_work_reschedule(&db_hash.work, DB_HASH_TIMEOUT);
   25c22:	f44f 72a4 	mov.w	r2, #328	; 0x148
   25c26:	2300      	movs	r3, #0
   25c28:	481e      	ldr	r0, [pc, #120]	; (25ca4 <db_changed+0xa0>)
   25c2a:	f00a fe9b 	bl	30964 <k_work_reschedule>
	for (i = 0; i < ARRAY_SIZE(cf_cfg); i++) {
   25c2e:	2400      	movs	r4, #0
   25c30:	2c01      	cmp	r4, #1
   25c32:	dc33      	bgt.n	25c9c <db_changed+0x98>
		if (!bt_addr_le_cmp(&cfg->peer, BT_ADDR_LE_ANY)) {
   25c34:	481c      	ldr	r0, [pc, #112]	; (25ca8 <db_changed+0xa4>)
   25c36:	eb00 1004 	add.w	r0, r0, r4, lsl #4
   25c3a:	2300      	movs	r3, #0
   25c3c:	9300      	str	r3, [sp, #0]
   25c3e:	f8cd 3003 	str.w	r3, [sp, #3]
	return memcmp(a, b, sizeof(*a));
   25c42:	2207      	movs	r2, #7
   25c44:	4669      	mov	r1, sp
   25c46:	3001      	adds	r0, #1
   25c48:	f00f ff41 	bl	35ace <memcmp>
   25c4c:	b320      	cbz	r0, 25c98 <db_changed+0x94>
		if (CF_ROBUST_CACHING(cfg)) {
   25c4e:	4b16      	ldr	r3, [pc, #88]	; (25ca8 <db_changed+0xa4>)
   25c50:	eb03 1304 	add.w	r3, r3, r4, lsl #4
   25c54:	7a1b      	ldrb	r3, [r3, #8]
   25c56:	f013 0f01 	tst.w	r3, #1
   25c5a:	d01d      	beq.n	25c98 <db_changed+0x94>
			atomic_clear_bit(cfg->flags, CF_OUT_OF_SYNC);
   25c5c:	0123      	lsls	r3, r4, #4
   25c5e:	f103 0208 	add.w	r2, r3, #8
   25c62:	4b11      	ldr	r3, [pc, #68]	; (25ca8 <db_changed+0xa4>)
   25c64:	4413      	add	r3, r2
   25c66:	3304      	adds	r3, #4
   25c68:	f3bf 8f5b 	dmb	ish
   25c6c:	e853 2f00 	ldrex	r2, [r3]
   25c70:	f022 0202 	bic.w	r2, r2, #2
   25c74:	e843 2100 	strex	r1, r2, [r3]
   25c78:	2900      	cmp	r1, #0
   25c7a:	d1f7      	bne.n	25c6c <db_changed+0x68>
   25c7c:	f3bf 8f5b 	dmb	ish
   25c80:	f3bf 8f5b 	dmb	ish
   25c84:	e853 2f00 	ldrex	r2, [r3]
   25c88:	f022 0201 	bic.w	r2, r2, #1
   25c8c:	e843 2100 	strex	r1, r2, [r3]
   25c90:	2900      	cmp	r1, #0
   25c92:	d1f7      	bne.n	25c84 <db_changed+0x80>
   25c94:	f3bf 8f5b 	dmb	ish
	for (i = 0; i < ARRAY_SIZE(cf_cfg); i++) {
   25c98:	3401      	adds	r4, #1
   25c9a:	e7c9      	b.n	25c30 <db_changed+0x2c>
}
   25c9c:	b002      	add	sp, #8
   25c9e:	bd10      	pop	{r4, pc}
   25ca0:	20001ac8 	.word	0x20001ac8
   25ca4:	20001a20 	.word	0x20001a20
   25ca8:	20002340 	.word	0x20002340

00025cac <foreach_attr_type_dyndb>:
{
   25cac:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
   25cb0:	b087      	sub	sp, #28
   25cb2:	4606      	mov	r6, r0
   25cb4:	460f      	mov	r7, r1
   25cb6:	4690      	mov	r8, r2
   25cb8:	4699      	mov	r9, r3
   25cba:	f8dd a044 	ldr.w	sl, [sp, #68]	; 0x44
   25cbe:	f8dd b048 	ldr.w	fp, [sp, #72]	; 0x48
	return list->head;
   25cc2:	4b1d      	ldr	r3, [pc, #116]	; (25d38 <foreach_attr_type_dyndb+0x8c>)
   25cc4:	681d      	ldr	r5, [r3, #0]
	SYS_SLIST_FOR_EACH_CONTAINER(&db, svc, node) {
   25cc6:	b15d      	cbz	r5, 25ce0 <foreach_attr_type_dyndb+0x34>
   25cc8:	3d08      	subs	r5, #8
   25cca:	e009      	b.n	25ce0 <foreach_attr_type_dyndb+0x34>
   25ccc:	2400      	movs	r4, #0
   25cce:	e016      	b.n	25cfe <foreach_attr_type_dyndb+0x52>
   25cd0:	2400      	movs	r4, #0
   25cd2:	e014      	b.n	25cfe <foreach_attr_type_dyndb+0x52>
Z_GENLIST_PEEK_NEXT(slist, snode)
   25cd4:	f115 0f08 	cmn.w	r5, #8
   25cd8:	d02b      	beq.n	25d32 <foreach_attr_type_dyndb+0x86>
	return node->next;
   25cda:	68ad      	ldr	r5, [r5, #8]
   25cdc:	b34d      	cbz	r5, 25d32 <foreach_attr_type_dyndb+0x86>
   25cde:	3d08      	subs	r5, #8
   25ce0:	b33d      	cbz	r5, 25d32 <foreach_attr_type_dyndb+0x86>
Z_GENLIST_PEEK_NEXT(slist, snode)
   25ce2:	f115 0308 	adds.w	r3, r5, #8
   25ce6:	d003      	beq.n	25cf0 <foreach_attr_type_dyndb+0x44>
	return node->next;
   25ce8:	68ab      	ldr	r3, [r5, #8]
		next = SYS_SLIST_PEEK_NEXT_CONTAINER(svc, node);
   25cea:	2b00      	cmp	r3, #0
   25cec:	d0ee      	beq.n	25ccc <foreach_attr_type_dyndb+0x20>
   25cee:	3b08      	subs	r3, #8
		if (next) {
   25cf0:	2b00      	cmp	r3, #0
   25cf2:	d0ed      	beq.n	25cd0 <foreach_attr_type_dyndb+0x24>
			if (next->attrs[0].handle <= start_handle) {
   25cf4:	681b      	ldr	r3, [r3, #0]
   25cf6:	8a1b      	ldrh	r3, [r3, #16]
   25cf8:	42b3      	cmp	r3, r6
   25cfa:	d9eb      	bls.n	25cd4 <foreach_attr_type_dyndb+0x28>
   25cfc:	2400      	movs	r4, #0
		for (i = 0; i < svc->attr_count; i++) {
   25cfe:	686b      	ldr	r3, [r5, #4]
   25d00:	42a3      	cmp	r3, r4
   25d02:	d9e7      	bls.n	25cd4 <foreach_attr_type_dyndb+0x28>
			struct bt_gatt_attr *attr = &svc->attrs[i];
   25d04:	6828      	ldr	r0, [r5, #0]
   25d06:	eb04 0384 	add.w	r3, r4, r4, lsl #2
   25d0a:	eb00 0083 	add.w	r0, r0, r3, lsl #2
			if (gatt_foreach_iter(attr, attr->handle,
   25d0e:	8a01      	ldrh	r1, [r0, #16]
   25d10:	f8cd b010 	str.w	fp, [sp, #16]
   25d14:	f8cd a00c 	str.w	sl, [sp, #12]
   25d18:	ab10      	add	r3, sp, #64	; 0x40
   25d1a:	9302      	str	r3, [sp, #8]
   25d1c:	f8cd 9004 	str.w	r9, [sp, #4]
   25d20:	f8cd 8000 	str.w	r8, [sp]
   25d24:	463b      	mov	r3, r7
   25d26:	4632      	mov	r2, r6
   25d28:	f011 ff0f 	bl	37b4a <gatt_foreach_iter>
   25d2c:	b108      	cbz	r0, 25d32 <foreach_attr_type_dyndb+0x86>
		for (i = 0; i < svc->attr_count; i++) {
   25d2e:	3401      	adds	r4, #1
   25d30:	e7e5      	b.n	25cfe <foreach_attr_type_dyndb+0x52>
}
   25d32:	b007      	add	sp, #28
   25d34:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
   25d38:	20002360 	.word	0x20002360

00025d3c <disconnected_cb>:
{
   25d3c:	e92d 4ff8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
	if (attr->write != bt_gatt_attr_write_ccc) {
   25d40:	6881      	ldr	r1, [r0, #8]
   25d42:	4b2d      	ldr	r3, [pc, #180]	; (25df8 <disconnected_cb+0xbc>)
   25d44:	4299      	cmp	r1, r3
   25d46:	d002      	beq.n	25d4e <disconnected_cb+0x12>
}
   25d48:	2001      	movs	r0, #1
   25d4a:	e8bd 8ff8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
   25d4e:	4604      	mov	r4, r0
   25d50:	4616      	mov	r6, r2
	ccc = attr->user_data;
   25d52:	68c7      	ldr	r7, [r0, #12]
	if (!ccc->value) {
   25d54:	897b      	ldrh	r3, [r7, #10]
   25d56:	2b00      	cmp	r3, #0
   25d58:	d0f6      	beq.n	25d48 <disconnected_cb+0xc>
	for (i = 0; i < ARRAY_SIZE(ccc->cfg); i++) {
   25d5a:	2500      	movs	r5, #0
	value_used = false;
   25d5c:	46aa      	mov	sl, r5
   25d5e:	e021      	b.n	25da4 <disconnected_cb+0x68>
		struct bt_gatt_ccc_cfg *cfg = &ccc->cfg[i];
   25d60:	eb05 0885 	add.w	r8, r5, r5, lsl #2
   25d64:	eb07 0848 	add.w	r8, r7, r8, lsl #1
		if (!cfg->value) {
   25d68:	f8b8 3008 	ldrh.w	r3, [r8, #8]
   25d6c:	b1cb      	cbz	r3, 25da2 <disconnected_cb+0x66>
		if (!bt_conn_is_peer_addr_le(conn, cfg->id, &cfg->peer)) {
   25d6e:	eb05 0385 	add.w	r3, r5, r5, lsl #2
   25d72:	f108 0901 	add.w	r9, r8, #1
   25d76:	464a      	mov	r2, r9
   25d78:	f817 1013 	ldrb.w	r1, [r7, r3, lsl #1]
   25d7c:	4630      	mov	r0, r6
   25d7e:	f010 fdfc 	bl	3697a <bt_conn_is_peer_addr_le>
   25d82:	bb00      	cbnz	r0, 25dc6 <disconnected_cb+0x8a>
			tmp = bt_conn_lookup_addr_le(cfg->id, &cfg->peer);
   25d84:	eb05 0385 	add.w	r3, r5, r5, lsl #2
   25d88:	4649      	mov	r1, r9
   25d8a:	f817 0013 	ldrb.w	r0, [r7, r3, lsl #1]
   25d8e:	f7fd ffb9 	bl	23d04 <bt_conn_lookup_addr_le>
			if (tmp) {
   25d92:	4603      	mov	r3, r0
   25d94:	b128      	cbz	r0, 25da2 <disconnected_cb+0x66>
				if (tmp->state == BT_CONN_CONNECTED) {
   25d96:	7b42      	ldrb	r2, [r0, #13]
   25d98:	2a07      	cmp	r2, #7
   25d9a:	d011      	beq.n	25dc0 <disconnected_cb+0x84>
				bt_conn_unref(tmp);
   25d9c:	4618      	mov	r0, r3
   25d9e:	f7fd fd0d 	bl	237bc <bt_conn_unref>
	for (i = 0; i < ARRAY_SIZE(ccc->cfg); i++) {
   25da2:	3501      	adds	r5, #1
   25da4:	2d00      	cmp	r5, #0
   25da6:	d0db      	beq.n	25d60 <disconnected_cb+0x24>
	if (!value_used) {
   25da8:	f1ba 0f00 	cmp.w	sl, #0
   25dac:	d1cc      	bne.n	25d48 <disconnected_cb+0xc>
		ccc->value = 0U;
   25dae:	2300      	movs	r3, #0
   25db0:	817b      	strh	r3, [r7, #10]
		if (ccc->cfg_changed) {
   25db2:	68fb      	ldr	r3, [r7, #12]
   25db4:	2b00      	cmp	r3, #0
   25db6:	d0c7      	beq.n	25d48 <disconnected_cb+0xc>
			ccc->cfg_changed(attr, ccc->value);
   25db8:	2100      	movs	r1, #0
   25dba:	4620      	mov	r0, r4
   25dbc:	4798      	blx	r3
   25dbe:	e7c3      	b.n	25d48 <disconnected_cb+0xc>
					value_used = true;
   25dc0:	f04f 0a01 	mov.w	sl, #1
   25dc4:	e7ea      	b.n	25d9c <disconnected_cb+0x60>
			if (!bt_addr_le_is_bonded(conn->id, &conn->le.dst)) {
   25dc6:	f106 0b90 	add.w	fp, r6, #144	; 0x90
   25dca:	4659      	mov	r1, fp
   25dcc:	7a30      	ldrb	r0, [r6, #8]
   25dce:	f010 f982 	bl	360d6 <bt_addr_le_is_bonded>
   25dd2:	b950      	cbnz	r0, 25dea <disconnected_cb+0xae>
				if (ccc == &sc_ccc) {
   25dd4:	4b09      	ldr	r3, [pc, #36]	; (25dfc <disconnected_cb+0xc0>)
   25dd6:	429f      	cmp	r7, r3
   25dd8:	d003      	beq.n	25de2 <disconnected_cb+0xa6>
				clear_ccc_cfg(cfg);
   25dda:	4640      	mov	r0, r8
   25ddc:	f011 fe7e 	bl	37adc <clear_ccc_cfg>
   25de0:	e7df      	b.n	25da2 <disconnected_cb+0x66>
					sc_clear(conn);
   25de2:	4630      	mov	r0, r6
   25de4:	f7ff fdee 	bl	259c4 <sc_clear>
   25de8:	e7f7      	b.n	25dda <disconnected_cb+0x9e>
	memcpy(dst, src, sizeof(*dst));
   25dea:	2207      	movs	r2, #7
   25dec:	4659      	mov	r1, fp
   25dee:	4648      	mov	r0, r9
   25df0:	f00f fe84 	bl	35afc <memcpy>
}
   25df4:	e7d5      	b.n	25da2 <disconnected_cb+0x66>
   25df6:	bf00      	nop
   25df8:	000256bd 	.word	0x000256bd
   25dfc:	20000648 	.word	0x20000648

00025e00 <sc_set>:
{
   25e00:	e92d 43f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, lr}
   25e04:	b087      	sub	sp, #28
	if (!name) {
   25e06:	b338      	cbz	r0, 25e58 <sc_set+0x58>
   25e08:	460c      	mov	r4, r1
   25e0a:	4615      	mov	r5, r2
   25e0c:	461e      	mov	r6, r3
   25e0e:	4607      	mov	r7, r0
	err = bt_settings_decode_key(name, &addr);
   25e10:	a902      	add	r1, sp, #8
   25e12:	f00f ff6e 	bl	35cf2 <bt_settings_decode_key>
	if (err) {
   25e16:	4680      	mov	r8, r0
   25e18:	bb28      	cbnz	r0, 25e66 <sc_set+0x66>
	settings_name_next(name, &next);
   25e1a:	a901      	add	r1, sp, #4
   25e1c:	4638      	mov	r0, r7
   25e1e:	f00e fb82 	bl	34526 <settings_name_next>
	if (!next) {
   25e22:	9801      	ldr	r0, [sp, #4]
   25e24:	b378      	cbz	r0, 25e86 <sc_set+0x86>
		unsigned long next_id = strtoul(next, NULL, 10);
   25e26:	220a      	movs	r2, #10
   25e28:	2100      	movs	r1, #0
   25e2a:	f00f fd75 	bl	35918 <strtoul>
		if (next_id >= CONFIG_BT_ID_MAX) {
   25e2e:	bb10      	cbnz	r0, 25e76 <sc_set+0x76>
		id = (uint8_t)next_id;
   25e30:	b2c7      	uxtb	r7, r0
	cfg = find_sc_cfg(id, &addr);
   25e32:	a902      	add	r1, sp, #8
   25e34:	4638      	mov	r0, r7
   25e36:	f7ff fb99 	bl	2556c <find_sc_cfg>
	if (!cfg && len_rd) {
   25e3a:	4681      	mov	r9, r0
   25e3c:	b328      	cbz	r0, 25e8a <sc_set+0x8a>
	if (len_rd) {
   25e3e:	2c00      	cmp	r4, #0
   25e40:	d042      	beq.n	25ec8 <sc_set+0xc8>
		len = read_cb(cb_arg, &cfg->data, sizeof(cfg->data));
   25e42:	2204      	movs	r2, #4
   25e44:	f109 0108 	add.w	r1, r9, #8
   25e48:	4630      	mov	r0, r6
   25e4a:	47a8      	blx	r5
		if (len < 0) {
   25e4c:	1e04      	subs	r4, r0, #0
   25e4e:	db34      	blt.n	25eba <sc_set+0xba>
}
   25e50:	4640      	mov	r0, r8
   25e52:	b007      	add	sp, #28
   25e54:	e8bd 83f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, pc}
		BT_ERR("Insufficient number of arguments");
   25e58:	2145      	movs	r1, #69	; 0x45
   25e5a:	4820      	ldr	r0, [pc, #128]	; (25edc <sc_set+0xdc>)
   25e5c:	f00d fe46 	bl	33aec <z_log_minimal_printk>
		return -EINVAL;
   25e60:	f06f 0815 	mvn.w	r8, #21
   25e64:	e7f4      	b.n	25e50 <sc_set+0x50>
		BT_ERR("Unable to decode address %s", log_strdup(name));
   25e66:	463a      	mov	r2, r7
   25e68:	2145      	movs	r1, #69	; 0x45
   25e6a:	481d      	ldr	r0, [pc, #116]	; (25ee0 <sc_set+0xe0>)
   25e6c:	f00d fe3e 	bl	33aec <z_log_minimal_printk>
		return -EINVAL;
   25e70:	f06f 0815 	mvn.w	r8, #21
   25e74:	e7ec      	b.n	25e50 <sc_set+0x50>
			BT_ERR("Invalid local identity %lu", next_id);
   25e76:	4602      	mov	r2, r0
   25e78:	2145      	movs	r1, #69	; 0x45
   25e7a:	481a      	ldr	r0, [pc, #104]	; (25ee4 <sc_set+0xe4>)
   25e7c:	f00d fe36 	bl	33aec <z_log_minimal_printk>
			return -EINVAL;
   25e80:	f06f 0815 	mvn.w	r8, #21
   25e84:	e7e4      	b.n	25e50 <sc_set+0x50>
		id = BT_ID_DEFAULT;
   25e86:	2700      	movs	r7, #0
   25e88:	e7d3      	b.n	25e32 <sc_set+0x32>
	if (!cfg && len_rd) {
   25e8a:	2c00      	cmp	r4, #0
   25e8c:	d0d7      	beq.n	25e3e <sc_set+0x3e>
		cfg = find_sc_cfg(BT_ID_DEFAULT, BT_ADDR_LE_ANY);
   25e8e:	9004      	str	r0, [sp, #16]
   25e90:	f8cd 0013 	str.w	r0, [sp, #19]
   25e94:	a904      	add	r1, sp, #16
   25e96:	f7ff fb69 	bl	2556c <find_sc_cfg>
		if (!cfg) {
   25e9a:	4681      	mov	r9, r0
   25e9c:	b130      	cbz	r0, 25eac <sc_set+0xac>
		cfg->id = id;
   25e9e:	f800 7b01 	strb.w	r7, [r0], #1
	memcpy(dst, src, sizeof(*dst));
   25ea2:	2207      	movs	r2, #7
   25ea4:	a902      	add	r1, sp, #8
   25ea6:	f00f fe29 	bl	35afc <memcpy>
   25eaa:	e7c8      	b.n	25e3e <sc_set+0x3e>
			BT_ERR("Unable to restore SC: no cfg left");
   25eac:	2145      	movs	r1, #69	; 0x45
   25eae:	480e      	ldr	r0, [pc, #56]	; (25ee8 <sc_set+0xe8>)
   25eb0:	f00d fe1c 	bl	33aec <z_log_minimal_printk>
			return -ENOMEM;
   25eb4:	f06f 080b 	mvn.w	r8, #11
   25eb8:	e7ca      	b.n	25e50 <sc_set+0x50>
			BT_ERR("Failed to decode value (err %zd)", len);
   25eba:	4622      	mov	r2, r4
   25ebc:	2145      	movs	r1, #69	; 0x45
   25ebe:	480b      	ldr	r0, [pc, #44]	; (25eec <sc_set+0xec>)
   25ec0:	f00d fe14 	bl	33aec <z_log_minimal_printk>
			return len;
   25ec4:	46a0      	mov	r8, r4
   25ec6:	e7c3      	b.n	25e50 <sc_set+0x50>
	} else if (cfg) {
   25ec8:	f1b9 0f00 	cmp.w	r9, #0
   25ecc:	d0c0      	beq.n	25e50 <sc_set+0x50>
		memset(cfg, 0, sizeof(*cfg));
   25ece:	220c      	movs	r2, #12
   25ed0:	2100      	movs	r1, #0
   25ed2:	4648      	mov	r0, r9
   25ed4:	f00f fe36 	bl	35b44 <memset>
		BT_DBG("Removed SC for %s", bt_addr_le_str(&addr));
   25ed8:	e7ba      	b.n	25e50 <sc_set+0x50>
   25eda:	bf00      	nop
   25edc:	0003cc2c 	.word	0x0003cc2c
   25ee0:	0003e1c0 	.word	0x0003e1c0
   25ee4:	0003e1e4 	.word	0x0003e1e4
   25ee8:	0003e204 	.word	0x0003e204
   25eec:	0003e020 	.word	0x0003e020

00025ef0 <cf_set>:
{
   25ef0:	e92d 43f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, lr}
   25ef4:	b085      	sub	sp, #20
	if (!name) {
   25ef6:	b338      	cbz	r0, 25f48 <cf_set+0x58>
   25ef8:	460c      	mov	r4, r1
   25efa:	4615      	mov	r5, r2
   25efc:	461e      	mov	r6, r3
   25efe:	4607      	mov	r7, r0
	err = bt_settings_decode_key(name, &addr);
   25f00:	a902      	add	r1, sp, #8
   25f02:	f00f fef6 	bl	35cf2 <bt_settings_decode_key>
	if (err) {
   25f06:	4680      	mov	r8, r0
   25f08:	bb28      	cbnz	r0, 25f56 <cf_set+0x66>
	settings_name_next(name, &next);
   25f0a:	a901      	add	r1, sp, #4
   25f0c:	4638      	mov	r0, r7
   25f0e:	f00e fb0a 	bl	34526 <settings_name_next>
	if (!next) {
   25f12:	9801      	ldr	r0, [sp, #4]
   25f14:	b378      	cbz	r0, 25f76 <cf_set+0x86>
		unsigned long next_id = strtoul(next, NULL, 10);
   25f16:	220a      	movs	r2, #10
   25f18:	2100      	movs	r1, #0
   25f1a:	f00f fcfd 	bl	35918 <strtoul>
		if (next_id >= CONFIG_BT_ID_MAX) {
   25f1e:	bb10      	cbnz	r0, 25f66 <cf_set+0x76>
		id = (uint8_t)next_id;
   25f20:	b2c7      	uxtb	r7, r0
	cfg = find_cf_cfg_by_addr(id, &addr);
   25f22:	a902      	add	r1, sp, #8
   25f24:	4638      	mov	r0, r7
   25f26:	f7ff fb65 	bl	255f4 <find_cf_cfg_by_addr>
	if (!cfg) {
   25f2a:	4681      	mov	r9, r0
   25f2c:	b328      	cbz	r0, 25f7a <cf_set+0x8a>
	if (len_rd) {
   25f2e:	2c00      	cmp	r4, #0
   25f30:	d03c      	beq.n	25fac <cf_set+0xbc>
		len = read_cb(cb_arg, cfg->data, sizeof(cfg->data));
   25f32:	2201      	movs	r2, #1
   25f34:	f109 0108 	add.w	r1, r9, #8
   25f38:	4630      	mov	r0, r6
   25f3a:	47a8      	blx	r5
		if (len < 0) {
   25f3c:	1e04      	subs	r4, r0, #0
   25f3e:	db2e      	blt.n	25f9e <cf_set+0xae>
}
   25f40:	4640      	mov	r0, r8
   25f42:	b005      	add	sp, #20
   25f44:	e8bd 83f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, pc}
		BT_ERR("Insufficient number of arguments");
   25f48:	2145      	movs	r1, #69	; 0x45
   25f4a:	481a      	ldr	r0, [pc, #104]	; (25fb4 <cf_set+0xc4>)
   25f4c:	f00d fdce 	bl	33aec <z_log_minimal_printk>
		return -EINVAL;
   25f50:	f06f 0815 	mvn.w	r8, #21
   25f54:	e7f4      	b.n	25f40 <cf_set+0x50>
		BT_ERR("Unable to decode address %s", log_strdup(name));
   25f56:	463a      	mov	r2, r7
   25f58:	2145      	movs	r1, #69	; 0x45
   25f5a:	4817      	ldr	r0, [pc, #92]	; (25fb8 <cf_set+0xc8>)
   25f5c:	f00d fdc6 	bl	33aec <z_log_minimal_printk>
		return -EINVAL;
   25f60:	f06f 0815 	mvn.w	r8, #21
   25f64:	e7ec      	b.n	25f40 <cf_set+0x50>
			BT_ERR("Invalid local identity %lu", next_id);
   25f66:	4602      	mov	r2, r0
   25f68:	2145      	movs	r1, #69	; 0x45
   25f6a:	4814      	ldr	r0, [pc, #80]	; (25fbc <cf_set+0xcc>)
   25f6c:	f00d fdbe 	bl	33aec <z_log_minimal_printk>
			return -EINVAL;
   25f70:	f06f 0815 	mvn.w	r8, #21
   25f74:	e7e4      	b.n	25f40 <cf_set+0x50>
		id = BT_ID_DEFAULT;
   25f76:	2700      	movs	r7, #0
   25f78:	e7d3      	b.n	25f22 <cf_set+0x32>
		cfg = find_cf_cfg(NULL);
   25f7a:	f7ff facd 	bl	25518 <find_cf_cfg>
		if (!cfg) {
   25f7e:	4681      	mov	r9, r0
   25f80:	b130      	cbz	r0, 25f90 <cf_set+0xa0>
		cfg->id = id;
   25f82:	f800 7b01 	strb.w	r7, [r0], #1
   25f86:	2207      	movs	r2, #7
   25f88:	a902      	add	r1, sp, #8
   25f8a:	f00f fdb7 	bl	35afc <memcpy>
}
   25f8e:	e7ce      	b.n	25f2e <cf_set+0x3e>
			BT_ERR("Unable to restore CF: no cfg left");
   25f90:	2145      	movs	r1, #69	; 0x45
   25f92:	480b      	ldr	r0, [pc, #44]	; (25fc0 <cf_set+0xd0>)
   25f94:	f00d fdaa 	bl	33aec <z_log_minimal_printk>
			return -ENOMEM;
   25f98:	f06f 080b 	mvn.w	r8, #11
   25f9c:	e7d0      	b.n	25f40 <cf_set+0x50>
			BT_ERR("Failed to decode value (err %zd)", len);
   25f9e:	4622      	mov	r2, r4
   25fa0:	2145      	movs	r1, #69	; 0x45
   25fa2:	4808      	ldr	r0, [pc, #32]	; (25fc4 <cf_set+0xd4>)
   25fa4:	f00d fda2 	bl	33aec <z_log_minimal_printk>
			return len;
   25fa8:	46a0      	mov	r8, r4
   25faa:	e7c9      	b.n	25f40 <cf_set+0x50>
		clear_cf_cfg(cfg);
   25fac:	4648      	mov	r0, r9
   25fae:	f011 fe0e 	bl	37bce <clear_cf_cfg>
   25fb2:	e7c5      	b.n	25f40 <cf_set+0x50>
   25fb4:	0003cc2c 	.word	0x0003cc2c
   25fb8:	0003e1c0 	.word	0x0003e1c0
   25fbc:	0003e1e4 	.word	0x0003e1e4
   25fc0:	0003e22c 	.word	0x0003e22c
   25fc4:	0003e020 	.word	0x0003e020

00025fc8 <bt_gatt_init>:
	return __atomic_compare_exchange_n(target, &old_value, new_value,
   25fc8:	4b1a      	ldr	r3, [pc, #104]	; (26034 <bt_gatt_init+0x6c>)
   25fca:	2201      	movs	r2, #1
   25fcc:	f3bf 8f5b 	dmb	ish
   25fd0:	e853 1f00 	ldrex	r1, [r3]
   25fd4:	2900      	cmp	r1, #0
   25fd6:	d103      	bne.n	25fe0 <bt_gatt_init+0x18>
   25fd8:	e843 2000 	strex	r0, r2, [r3]
   25fdc:	2800      	cmp	r0, #0
   25fde:	d1f7      	bne.n	25fd0 <bt_gatt_init+0x8>
   25fe0:	f3bf 8f5b 	dmb	ish
	if (!atomic_cas(&init, 0, 1)) {
   25fe4:	d125      	bne.n	26032 <bt_gatt_init+0x6a>
{
   25fe6:	b510      	push	{r4, lr}
	bt_gatt_service_init();
   25fe8:	f7ff fd22 	bl	25a30 <bt_gatt_service_init>
	list->head = NULL;
   25fec:	4b12      	ldr	r3, [pc, #72]	; (26038 <bt_gatt_init+0x70>)
   25fee:	2200      	movs	r2, #0
   25ff0:	601a      	str	r2, [r3, #0]
	list->tail = NULL;
   25ff2:	605a      	str	r2, [r3, #4]
	k_work_init_delayable(&db_hash.work, db_hash_process);
   25ff4:	4c11      	ldr	r4, [pc, #68]	; (2603c <bt_gatt_init+0x74>)
   25ff6:	4912      	ldr	r1, [pc, #72]	; (26040 <bt_gatt_init+0x78>)
   25ff8:	4620      	mov	r0, r4
   25ffa:	f00a fbbf 	bl	3077c <k_work_init_delayable>
	k_work_schedule(&db_hash.work, DB_HASH_TIMEOUT);
   25ffe:	f44f 72a4 	mov.w	r2, #328	; 0x148
   26002:	2300      	movs	r3, #0
   26004:	4620      	mov	r0, r4
   26006:	f00a fc43 	bl	30890 <k_work_schedule>
	k_work_init_delayable(&gatt_sc.work, sc_process);
   2600a:	4c0e      	ldr	r4, [pc, #56]	; (26044 <bt_gatt_init+0x7c>)
   2600c:	490e      	ldr	r1, [pc, #56]	; (26048 <bt_gatt_init+0x80>)
   2600e:	f104 0020 	add.w	r0, r4, #32
   26012:	f00a fbb3 	bl	3077c <k_work_init_delayable>
	return __atomic_fetch_or(target, value, __ATOMIC_SEQ_CST);
   26016:	3450      	adds	r4, #80	; 0x50
   26018:	f3bf 8f5b 	dmb	ish
   2601c:	e854 3f00 	ldrex	r3, [r4]
   26020:	f043 0302 	orr.w	r3, r3, #2
   26024:	e844 3200 	strex	r2, r3, [r4]
   26028:	2a00      	cmp	r2, #0
   2602a:	d1f7      	bne.n	2601c <bt_gatt_init+0x54>
   2602c:	f3bf 8f5b 	dmb	ish
}
   26030:	bd10      	pop	{r4, pc}
   26032:	4770      	bx	lr
   26034:	20002368 	.word	0x20002368
   26038:	20002338 	.word	0x20002338
   2603c:	20001a20 	.word	0x20001a20
   26040:	00026255 	.word	0x00026255
   26044:	20001a78 	.word	0x20001a78
   26048:	000267cd 	.word	0x000267cd

0002604c <bt_gatt_attr_get_handle>:
{
   2604c:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
	if (!attr) {
   26050:	b3a8      	cbz	r0, 260be <bt_gatt_attr_get_handle+0x72>
   26052:	4606      	mov	r6, r0
	if (attr->handle) {
   26054:	8a07      	ldrh	r7, [r0, #16]
   26056:	bbaf      	cbnz	r7, 260c4 <bt_gatt_attr_get_handle+0x78>
	STRUCT_SECTION_FOREACH(bt_gatt_service_static, static_svc) {
   26058:	4d1c      	ldr	r5, [pc, #112]	; (260cc <bt_gatt_attr_get_handle+0x80>)
	uint16_t handle = 1;
   2605a:	2401      	movs	r4, #1
   2605c:	e003      	b.n	26066 <bt_gatt_attr_get_handle+0x1a>
			handle += static_svc->attr_count;
   2605e:	686b      	ldr	r3, [r5, #4]
   26060:	441c      	add	r4, r3
   26062:	b2a4      	uxth	r4, r4
	STRUCT_SECTION_FOREACH(bt_gatt_service_static, static_svc) {
   26064:	3508      	adds	r5, #8
   26066:	4b1a      	ldr	r3, [pc, #104]	; (260d0 <bt_gatt_attr_get_handle+0x84>)
   26068:	429d      	cmp	r5, r3
   2606a:	d81a      	bhi.n	260a2 <bt_gatt_attr_get_handle+0x56>
   2606c:	4b18      	ldr	r3, [pc, #96]	; (260d0 <bt_gatt_attr_get_handle+0x84>)
   2606e:	429d      	cmp	r5, r3
   26070:	d228      	bcs.n	260c4 <bt_gatt_attr_get_handle+0x78>
		if ((attr < &static_svc->attrs[0]) ||
   26072:	6829      	ldr	r1, [r5, #0]
   26074:	42b1      	cmp	r1, r6
   26076:	d8f2      	bhi.n	2605e <bt_gatt_attr_get_handle+0x12>
		    (attr > &static_svc->attrs[static_svc->attr_count - 1])) {
   26078:	6868      	ldr	r0, [r5, #4]
   2607a:	eb00 0380 	add.w	r3, r0, r0, lsl #2
   2607e:	009b      	lsls	r3, r3, #2
   26080:	3b14      	subs	r3, #20
   26082:	440b      	add	r3, r1
		if ((attr < &static_svc->attrs[0]) ||
   26084:	42b3      	cmp	r3, r6
   26086:	d3ea      	bcc.n	2605e <bt_gatt_attr_get_handle+0x12>
		for (size_t i = 0; i < static_svc->attr_count; i++, handle++) {
   26088:	2300      	movs	r3, #0
   2608a:	4298      	cmp	r0, r3
   2608c:	d9ea      	bls.n	26064 <bt_gatt_attr_get_handle+0x18>
			if (attr == &static_svc->attrs[i]) {
   2608e:	eb03 0283 	add.w	r2, r3, r3, lsl #2
   26092:	eb01 0282 	add.w	r2, r1, r2, lsl #2
   26096:	42b2      	cmp	r2, r6
   26098:	d013      	beq.n	260c2 <bt_gatt_attr_get_handle+0x76>
		for (size_t i = 0; i < static_svc->attr_count; i++, handle++) {
   2609a:	3301      	adds	r3, #1
   2609c:	3401      	adds	r4, #1
   2609e:	b2a4      	uxth	r4, r4
   260a0:	e7f3      	b.n	2608a <bt_gatt_attr_get_handle+0x3e>
	STRUCT_SECTION_FOREACH(bt_gatt_service_static, static_svc) {
   260a2:	f8df 8034 	ldr.w	r8, [pc, #52]	; 260d8 <bt_gatt_attr_get_handle+0x8c>
   260a6:	f240 5277 	movw	r2, #1399	; 0x577
   260aa:	4641      	mov	r1, r8
   260ac:	4809      	ldr	r0, [pc, #36]	; (260d4 <bt_gatt_attr_get_handle+0x88>)
   260ae:	f00d f97c 	bl	333aa <printk>
   260b2:	f240 5177 	movw	r1, #1399	; 0x577
   260b6:	4640      	mov	r0, r8
   260b8:	f00d fd10 	bl	33adc <assert_post_action>
   260bc:	e7d6      	b.n	2606c <bt_gatt_attr_get_handle+0x20>
		return 0;
   260be:	2700      	movs	r7, #0
   260c0:	e000      	b.n	260c4 <bt_gatt_attr_get_handle+0x78>
				return handle;
   260c2:	4627      	mov	r7, r4
}
   260c4:	4638      	mov	r0, r7
   260c6:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
   260ca:	bf00      	nop
   260cc:	0003b7a8 	.word	0x0003b7a8
   260d0:	0003b7c0 	.word	0x0003b7c0
   260d4:	0003bdac 	.word	0x0003bdac
   260d8:	0003e190 	.word	0x0003e190

000260dc <bt_gatt_foreach_attr_type>:
{
   260dc:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
   260e0:	b089      	sub	sp, #36	; 0x24
   260e2:	4607      	mov	r7, r0
   260e4:	468a      	mov	sl, r1
   260e6:	4690      	mov	r8, r2
   260e8:	4699      	mov	r9, r3
   260ea:	f8dd b050 	ldr.w	fp, [sp, #80]	; 0x50
	if (!num_matches) {
   260ee:	f8bd 3048 	ldrh.w	r3, [sp, #72]	; 0x48
   260f2:	b91b      	cbnz	r3, 260fc <bt_gatt_foreach_attr_type+0x20>
		num_matches = UINT16_MAX;
   260f4:	f64f 73ff 	movw	r3, #65535	; 0xffff
   260f8:	f8ad 3048 	strh.w	r3, [sp, #72]	; 0x48
	if (start_handle <= last_static_handle) {
   260fc:	4b27      	ldr	r3, [pc, #156]	; (2619c <bt_gatt_foreach_attr_type+0xc0>)
   260fe:	881b      	ldrh	r3, [r3, #0]
   26100:	42bb      	cmp	r3, r7
   26102:	d33b      	bcc.n	2617c <bt_gatt_foreach_attr_type+0xa0>
		STRUCT_SECTION_FOREACH(bt_gatt_service_static, static_svc) {
   26104:	4e26      	ldr	r6, [pc, #152]	; (261a0 <bt_gatt_foreach_attr_type+0xc4>)
		uint16_t handle = 1;
   26106:	2401      	movs	r4, #1
   26108:	e001      	b.n	2610e <bt_gatt_foreach_attr_type+0x32>
				handle += static_svc->attr_count;
   2610a:	b294      	uxth	r4, r2
		STRUCT_SECTION_FOREACH(bt_gatt_service_static, static_svc) {
   2610c:	3608      	adds	r6, #8
   2610e:	4b25      	ldr	r3, [pc, #148]	; (261a4 <bt_gatt_foreach_attr_type+0xc8>)
   26110:	429e      	cmp	r6, r3
   26112:	d826      	bhi.n	26162 <bt_gatt_foreach_attr_type+0x86>
   26114:	4b23      	ldr	r3, [pc, #140]	; (261a4 <bt_gatt_foreach_attr_type+0xc8>)
   26116:	429e      	cmp	r6, r3
   26118:	d230      	bcs.n	2617c <bt_gatt_foreach_attr_type+0xa0>
			if (handle + static_svc->attr_count < start_handle) {
   2611a:	6873      	ldr	r3, [r6, #4]
   2611c:	18e2      	adds	r2, r4, r3
   2611e:	42ba      	cmp	r2, r7
   26120:	d3f3      	bcc.n	2610a <bt_gatt_foreach_attr_type+0x2e>
			for (i = 0; i < static_svc->attr_count; i++, handle++) {
   26122:	2500      	movs	r5, #0
   26124:	9707      	str	r7, [sp, #28]
   26126:	6873      	ldr	r3, [r6, #4]
   26128:	42ab      	cmp	r3, r5
   2612a:	d918      	bls.n	2615e <bt_gatt_foreach_attr_type+0x82>
				if (gatt_foreach_iter(&static_svc->attrs[i],
   2612c:	eb05 0085 	add.w	r0, r5, r5, lsl #2
   26130:	f8cd b010 	str.w	fp, [sp, #16]
   26134:	9b13      	ldr	r3, [sp, #76]	; 0x4c
   26136:	9303      	str	r3, [sp, #12]
   26138:	ab12      	add	r3, sp, #72	; 0x48
   2613a:	9302      	str	r3, [sp, #8]
   2613c:	f8cd 9004 	str.w	r9, [sp, #4]
   26140:	f8cd 8000 	str.w	r8, [sp]
   26144:	4653      	mov	r3, sl
   26146:	9a07      	ldr	r2, [sp, #28]
   26148:	4621      	mov	r1, r4
   2614a:	6837      	ldr	r7, [r6, #0]
   2614c:	eb07 0080 	add.w	r0, r7, r0, lsl #2
   26150:	f011 fcfb 	bl	37b4a <gatt_foreach_iter>
   26154:	b1f8      	cbz	r0, 26196 <bt_gatt_foreach_attr_type+0xba>
			for (i = 0; i < static_svc->attr_count; i++, handle++) {
   26156:	3501      	adds	r5, #1
   26158:	3401      	adds	r4, #1
   2615a:	b2a4      	uxth	r4, r4
   2615c:	e7e3      	b.n	26126 <bt_gatt_foreach_attr_type+0x4a>
   2615e:	9f07      	ldr	r7, [sp, #28]
   26160:	e7d4      	b.n	2610c <bt_gatt_foreach_attr_type+0x30>
		STRUCT_SECTION_FOREACH(bt_gatt_service_static, static_svc) {
   26162:	4d11      	ldr	r5, [pc, #68]	; (261a8 <bt_gatt_foreach_attr_type+0xcc>)
   26164:	f240 623b 	movw	r2, #1595	; 0x63b
   26168:	4629      	mov	r1, r5
   2616a:	4810      	ldr	r0, [pc, #64]	; (261ac <bt_gatt_foreach_attr_type+0xd0>)
   2616c:	f00d f91d 	bl	333aa <printk>
   26170:	f240 613b 	movw	r1, #1595	; 0x63b
   26174:	4628      	mov	r0, r5
   26176:	f00d fcb1 	bl	33adc <assert_post_action>
   2617a:	e7cb      	b.n	26114 <bt_gatt_foreach_attr_type+0x38>
	foreach_attr_type_dyndb(start_handle, end_handle, uuid, attr_data,
   2617c:	f8cd b008 	str.w	fp, [sp, #8]
   26180:	9b13      	ldr	r3, [sp, #76]	; 0x4c
   26182:	9301      	str	r3, [sp, #4]
   26184:	f8bd 3048 	ldrh.w	r3, [sp, #72]	; 0x48
   26188:	9300      	str	r3, [sp, #0]
   2618a:	464b      	mov	r3, r9
   2618c:	4642      	mov	r2, r8
   2618e:	4651      	mov	r1, sl
   26190:	4638      	mov	r0, r7
   26192:	f7ff fd8b 	bl	25cac <foreach_attr_type_dyndb>
}
   26196:	b009      	add	sp, #36	; 0x24
   26198:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
   2619c:	200034e4 	.word	0x200034e4
   261a0:	0003b7a8 	.word	0x0003b7a8
   261a4:	0003b7c0 	.word	0x0003b7c0
   261a8:	0003e190 	.word	0x0003e190
   261ac:	0003bdac 	.word	0x0003bdac

000261b0 <db_hash_gen>:
{
   261b0:	b570      	push	{r4, r5, r6, lr}
   261b2:	b0cc      	sub	sp, #304	; 0x130
   261b4:	4606      	mov	r6, r0
	uint8_t key[16] = {};
   261b6:	2300      	movs	r3, #0
   261b8:	9348      	str	r3, [sp, #288]	; 0x120
   261ba:	9349      	str	r3, [sp, #292]	; 0x124
   261bc:	934a      	str	r3, [sp, #296]	; 0x128
   261be:	934b      	str	r3, [sp, #300]	; 0x12c
	if (tc_cmac_setup(&state.state, key, &sched) == TC_CRYPTO_FAIL) {
   261c0:	aa1c      	add	r2, sp, #112	; 0x70
   261c2:	a948      	add	r1, sp, #288	; 0x120
   261c4:	a804      	add	r0, sp, #16
   261c6:	f00f fa63 	bl	35690 <tc_cmac_setup>
   261ca:	b190      	cbz	r0, 261f2 <db_hash_gen+0x42>
   261cc:	ac04      	add	r4, sp, #16
   261ce:	9402      	str	r4, [sp, #8]
   261d0:	4b1b      	ldr	r3, [pc, #108]	; (26240 <db_hash_gen+0x90>)
   261d2:	9301      	str	r3, [sp, #4]
   261d4:	2200      	movs	r2, #0
   261d6:	9200      	str	r2, [sp, #0]
   261d8:	4613      	mov	r3, r2
   261da:	f64f 71ff 	movw	r1, #65535	; 0xffff
   261de:	2001      	movs	r0, #1
   261e0:	f7ff ff7c 	bl	260dc <bt_gatt_foreach_attr_type>
	if (tc_cmac_final(db_hash.hash, &state.state) == TC_CRYPTO_FAIL) {
   261e4:	4621      	mov	r1, r4
   261e6:	4817      	ldr	r0, [pc, #92]	; (26244 <db_hash_gen+0x94>)
   261e8:	f00f faed 	bl	357c6 <tc_cmac_final>
   261ec:	b130      	cbz	r0, 261fc <db_hash_gen+0x4c>
 */
static inline void sys_mem_swap(void *buf, size_t length)
{
	size_t i;

	for (i = 0; i < (length/2); i++) {
   261ee:	2300      	movs	r3, #0
   261f0:	e011      	b.n	26216 <db_hash_gen+0x66>
		BT_ERR("Unable to setup AES CMAC");
   261f2:	2145      	movs	r1, #69	; 0x45
   261f4:	4814      	ldr	r0, [pc, #80]	; (26248 <db_hash_gen+0x98>)
   261f6:	f00d fc79 	bl	33aec <z_log_minimal_printk>
		return;
   261fa:	e01c      	b.n	26236 <db_hash_gen+0x86>
		BT_ERR("Unable to calculate hash");
   261fc:	2145      	movs	r1, #69	; 0x45
   261fe:	4813      	ldr	r0, [pc, #76]	; (2624c <db_hash_gen+0x9c>)
   26200:	f00d fc74 	bl	33aec <z_log_minimal_printk>
		return;
   26204:	e017      	b.n	26236 <db_hash_gen+0x86>
		uint8_t tmp = ((uint8_t *)buf)[i];
   26206:	4a0f      	ldr	r2, [pc, #60]	; (26244 <db_hash_gen+0x94>)
   26208:	5cd4      	ldrb	r4, [r2, r3]

		((uint8_t *)buf)[i] = ((uint8_t *)buf)[length - 1 - i];
   2620a:	f1c3 010f 	rsb	r1, r3, #15
   2620e:	5c55      	ldrb	r5, [r2, r1]
   26210:	54d5      	strb	r5, [r2, r3]
		((uint8_t *)buf)[length - 1 - i] = tmp;
   26212:	5454      	strb	r4, [r2, r1]
	for (i = 0; i < (length/2); i++) {
   26214:	3301      	adds	r3, #1
   26216:	2b07      	cmp	r3, #7
   26218:	d9f5      	bls.n	26206 <db_hash_gen+0x56>
	if (IS_ENABLED(CONFIG_BT_SETTINGS) && store) {
   2621a:	b976      	cbnz	r6, 2623a <db_hash_gen+0x8a>
   2621c:	4b0c      	ldr	r3, [pc, #48]	; (26250 <db_hash_gen+0xa0>)
   2621e:	f3bf 8f5b 	dmb	ish
   26222:	e853 2f00 	ldrex	r2, [r3]
   26226:	f042 0204 	orr.w	r2, r2, #4
   2622a:	e843 2100 	strex	r1, r2, [r3]
   2622e:	2900      	cmp	r1, #0
   26230:	d1f7      	bne.n	26222 <db_hash_gen+0x72>
   26232:	f3bf 8f5b 	dmb	ish
}
   26236:	b04c      	add	sp, #304	; 0x130
   26238:	bd70      	pop	{r4, r5, r6, pc}
		db_hash_store();
   2623a:	f7ff f959 	bl	254f0 <db_hash_store>
   2623e:	e7ed      	b.n	2621c <db_hash_gen+0x6c>
   26240:	00037937 	.word	0x00037937
   26244:	20001a00 	.word	0x20001a00
   26248:	0003e254 	.word	0x0003e254
   2624c:	0003e274 	.word	0x0003e274
   26250:	20001ac8 	.word	0x20001ac8

00026254 <db_hash_process>:
{
   26254:	b510      	push	{r4, lr}
	return __atomic_fetch_and(target, value, __ATOMIC_SEQ_CST);
   26256:	4b21      	ldr	r3, [pc, #132]	; (262dc <db_hash_process+0x88>)
   26258:	f3bf 8f5b 	dmb	ish
   2625c:	e853 2f00 	ldrex	r2, [r3]
   26260:	f022 0108 	bic.w	r1, r2, #8
   26264:	e843 1000 	strex	r0, r1, [r3]
   26268:	2800      	cmp	r0, #0
   2626a:	d1f7      	bne.n	2625c <db_hash_process+0x8>
   2626c:	f3bf 8f5b 	dmb	ish
	if (atomic_test_and_clear_bit(gatt_sc.flags, DB_HASH_LOAD)) {
   26270:	f012 0f08 	tst.w	r2, #8
   26274:	d02d      	beq.n	262d2 <db_hash_process+0x7e>
	return __atomic_load_n(target, __ATOMIC_SEQ_CST);
   26276:	f3bf 8f5b 	dmb	ish
   2627a:	3b50      	subs	r3, #80	; 0x50
   2627c:	6d1b      	ldr	r3, [r3, #80]	; 0x50
   2627e:	f3bf 8f5b 	dmb	ish
		if (!atomic_test_bit(gatt_sc.flags, DB_HASH_VALID)) {
   26282:	f013 0f04 	tst.w	r3, #4
   26286:	d018      	beq.n	262ba <db_hash_process+0x66>
		if (!memcmp(db_hash.stored_hash, db_hash.hash,
   26288:	4915      	ldr	r1, [pc, #84]	; (262e0 <db_hash_process+0x8c>)
   2628a:	2210      	movs	r2, #16
   2628c:	1888      	adds	r0, r1, r2
   2628e:	f00f fc1e 	bl	35ace <memcmp>
   26292:	b9b0      	cbnz	r0, 262c2 <db_hash_process+0x6e>
			k_work_cancel_delayable(&gatt_sc.work);
   26294:	4c13      	ldr	r4, [pc, #76]	; (262e4 <db_hash_process+0x90>)
   26296:	f104 0020 	add.w	r0, r4, #32
   2629a:	f00a fb6b 	bl	30974 <k_work_cancel_delayable>
	return __atomic_fetch_and(target, value, __ATOMIC_SEQ_CST);
   2629e:	3450      	adds	r4, #80	; 0x50
   262a0:	f3bf 8f5b 	dmb	ish
   262a4:	e854 3f00 	ldrex	r3, [r4]
   262a8:	f023 0301 	bic.w	r3, r3, #1
   262ac:	e844 3200 	strex	r2, r3, [r4]
   262b0:	2a00      	cmp	r2, #0
   262b2:	d1f7      	bne.n	262a4 <db_hash_process+0x50>
   262b4:	f3bf 8f5b 	dmb	ish
}
   262b8:	bd10      	pop	{r4, pc}
			db_hash_gen(false);
   262ba:	2000      	movs	r0, #0
   262bc:	f7ff ff78 	bl	261b0 <db_hash_gen>
   262c0:	e7e2      	b.n	26288 <db_hash_process+0x34>
		sc_indicate(0x0001, 0xffff);
   262c2:	f64f 71ff 	movw	r1, #65535	; 0xffff
   262c6:	2001      	movs	r0, #1
   262c8:	f7ff fbea 	bl	25aa0 <sc_indicate>
		db_hash_store();
   262cc:	f7ff f910 	bl	254f0 <db_hash_store>
		return;
   262d0:	e7f2      	b.n	262b8 <db_hash_process+0x64>
	db_hash_gen(true);
   262d2:	2001      	movs	r0, #1
   262d4:	f7ff ff6c 	bl	261b0 <db_hash_gen>
   262d8:	e7ee      	b.n	262b8 <db_hash_process+0x64>
   262da:	bf00      	nop
   262dc:	20001ac8 	.word	0x20001ac8
   262e0:	20001a00 	.word	0x20001a00
   262e4:	20001a78 	.word	0x20001a78

000262e8 <find_attr>:
{
   262e8:	b500      	push	{lr}
   262ea:	b087      	sub	sp, #28
   262ec:	4601      	mov	r1, r0
	const struct bt_gatt_attr *attr = NULL;
   262ee:	2200      	movs	r2, #0
   262f0:	9205      	str	r2, [sp, #20]
   262f2:	ab05      	add	r3, sp, #20
   262f4:	9302      	str	r3, [sp, #8]
   262f6:	4b05      	ldr	r3, [pc, #20]	; (2630c <find_attr+0x24>)
   262f8:	9301      	str	r3, [sp, #4]
   262fa:	9200      	str	r2, [sp, #0]
   262fc:	4613      	mov	r3, r2
   262fe:	f7ff feed 	bl	260dc <bt_gatt_foreach_attr_type>
}
   26302:	9805      	ldr	r0, [sp, #20]
   26304:	b007      	add	sp, #28
   26306:	f85d fb04 	ldr.w	pc, [sp], #4
   2630a:	bf00      	nop
   2630c:	000378d3 	.word	0x000378d3

00026310 <gatt_register>:
{
   26310:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   26314:	4607      	mov	r7, r0
	struct bt_gatt_attr *attrs = svc->attrs;
   26316:	6806      	ldr	r6, [r0, #0]
	uint16_t count = svc->attr_count;
   26318:	8884      	ldrh	r4, [r0, #4]
	return list->head;
   2631a:	4b1c      	ldr	r3, [pc, #112]	; (2638c <gatt_register+0x7c>)
   2631c:	681b      	ldr	r3, [r3, #0]
	if (sys_slist_is_empty(&db)) {
   2631e:	b16b      	cbz	r3, 2633c <gatt_register+0x2c>
	return list->tail;
   26320:	4b1a      	ldr	r3, [pc, #104]	; (2638c <gatt_register+0x7c>)
   26322:	685a      	ldr	r2, [r3, #4]
	last = SYS_SLIST_PEEK_TAIL_CONTAINER(&db, last, node);
   26324:	b102      	cbz	r2, 26328 <gatt_register+0x18>
   26326:	3a08      	subs	r2, #8
	handle = last->attrs[last->attr_count - 1].handle;
   26328:	6811      	ldr	r1, [r2, #0]
   2632a:	6853      	ldr	r3, [r2, #4]
   2632c:	eb03 0383 	add.w	r3, r3, r3, lsl #2
   26330:	009b      	lsls	r3, r3, #2
   26332:	3b14      	subs	r3, #20
   26334:	440b      	add	r3, r1
   26336:	8a1d      	ldrh	r5, [r3, #16]
	last_handle = handle;
   26338:	46a8      	mov	r8, r5
   2633a:	e00a      	b.n	26352 <gatt_register+0x42>
		handle = last_static_handle;
   2633c:	4b14      	ldr	r3, [pc, #80]	; (26390 <gatt_register+0x80>)
   2633e:	881d      	ldrh	r5, [r3, #0]
		last_handle = 0;
   26340:	f04f 0800 	mov.w	r8, #0
		goto populate;
   26344:	e005      	b.n	26352 <gatt_register+0x42>
		} else if (attrs->handle > handle) {
   26346:	42a8      	cmp	r0, r5
   26348:	d90c      	bls.n	26364 <gatt_register+0x54>
			handle = attrs->handle;
   2634a:	4605      	mov	r5, r0
	for (; attrs && count; attrs++, count--) {
   2634c:	3614      	adds	r6, #20
   2634e:	3c01      	subs	r4, #1
   26350:	b2a4      	uxth	r4, r4
   26352:	b19e      	cbz	r6, 2637c <gatt_register+0x6c>
   26354:	b194      	cbz	r4, 2637c <gatt_register+0x6c>
		if (!attrs->handle) {
   26356:	8a30      	ldrh	r0, [r6, #16]
   26358:	2800      	cmp	r0, #0
   2635a:	d1f4      	bne.n	26346 <gatt_register+0x36>
			attrs->handle = ++handle;
   2635c:	3501      	adds	r5, #1
   2635e:	b2ad      	uxth	r5, r5
   26360:	8235      	strh	r5, [r6, #16]
   26362:	e7f3      	b.n	2634c <gatt_register+0x3c>
		} else if (find_attr(attrs->handle)) {
   26364:	f7ff ffc0 	bl	262e8 <find_attr>
   26368:	2800      	cmp	r0, #0
   2636a:	d0ef      	beq.n	2634c <gatt_register+0x3c>
			BT_ERR("Unable to register handle 0x%04x",
   2636c:	8a32      	ldrh	r2, [r6, #16]
   2636e:	2145      	movs	r1, #69	; 0x45
   26370:	4808      	ldr	r0, [pc, #32]	; (26394 <gatt_register+0x84>)
   26372:	f00d fbbb 	bl	33aec <z_log_minimal_printk>
			return -EINVAL;
   26376:	f06f 0015 	mvn.w	r0, #21
   2637a:	e004      	b.n	26386 <gatt_register+0x76>
	gatt_insert(svc, last_handle);
   2637c:	4641      	mov	r1, r8
   2637e:	4638      	mov	r0, r7
   26380:	f7ff f842 	bl	25408 <gatt_insert>
	return 0;
   26384:	2000      	movs	r0, #0
}
   26386:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
   2638a:	bf00      	nop
   2638c:	20002360 	.word	0x20002360
   26390:	200034e4 	.word	0x200034e4
   26394:	0003e294 	.word	0x0003e294

00026398 <bt_gatt_service_register>:
{
   26398:	b530      	push	{r4, r5, lr}
   2639a:	b083      	sub	sp, #12
	__ASSERT(svc, "invalid parameters\n");
   2639c:	4604      	mov	r4, r0
   2639e:	2800      	cmp	r0, #0
   263a0:	d045      	beq.n	2642e <bt_gatt_service_register+0x96>
	__ASSERT(svc->attrs, "invalid parameters\n");
   263a2:	6823      	ldr	r3, [r4, #0]
   263a4:	2b00      	cmp	r3, #0
   263a6:	d04f      	beq.n	26448 <bt_gatt_service_register+0xb0>
	__ASSERT(svc->attr_count, "invalid parameters\n");
   263a8:	6863      	ldr	r3, [r4, #4]
   263aa:	2b00      	cmp	r3, #0
   263ac:	d059      	beq.n	26462 <bt_gatt_service_register+0xca>
	bt_gatt_service_init();
   263ae:	f7ff fb3f 	bl	25a30 <bt_gatt_service_init>
	if (!bt_uuid_cmp(svc->attrs[0].uuid, BT_UUID_GAP) ||
   263b2:	6823      	ldr	r3, [r4, #0]
   263b4:	6818      	ldr	r0, [r3, #0]
   263b6:	2300      	movs	r3, #0
   263b8:	f88d 3000 	strb.w	r3, [sp]
   263bc:	f44f 53c0 	mov.w	r3, #6144	; 0x1800
   263c0:	f8ad 3002 	strh.w	r3, [sp, #2]
   263c4:	4669      	mov	r1, sp
   263c6:	f00f fcd1 	bl	35d6c <bt_uuid_cmp>
   263ca:	2800      	cmp	r0, #0
   263cc:	d056      	beq.n	2647c <bt_gatt_service_register+0xe4>
	    !bt_uuid_cmp(svc->attrs[0].uuid, BT_UUID_GATT)) {
   263ce:	6823      	ldr	r3, [r4, #0]
   263d0:	6818      	ldr	r0, [r3, #0]
   263d2:	2300      	movs	r3, #0
   263d4:	f88d 3004 	strb.w	r3, [sp, #4]
   263d8:	f641 0301 	movw	r3, #6145	; 0x1801
   263dc:	f8ad 3006 	strh.w	r3, [sp, #6]
   263e0:	a901      	add	r1, sp, #4
   263e2:	f00f fcc3 	bl	35d6c <bt_uuid_cmp>
	if (!bt_uuid_cmp(svc->attrs[0].uuid, BT_UUID_GAP) ||
   263e6:	2800      	cmp	r0, #0
   263e8:	d048      	beq.n	2647c <bt_gatt_service_register+0xe4>
	k_sched_lock();
   263ea:	f00a fcc3 	bl	30d74 <k_sched_lock>
	err = gatt_register(svc);
   263ee:	4620      	mov	r0, r4
   263f0:	f7ff ff8e 	bl	26310 <gatt_register>
	if (err < 0) {
   263f4:	1e05      	subs	r5, r0, #0
   263f6:	db44      	blt.n	26482 <bt_gatt_service_register+0xea>
	return __atomic_load_n(target, __ATOMIC_SEQ_CST);
   263f8:	f3bf 8f5b 	dmb	ish
   263fc:	4b24      	ldr	r3, [pc, #144]	; (26490 <bt_gatt_service_register+0xf8>)
   263fe:	681b      	ldr	r3, [r3, #0]
   26400:	f3bf 8f5b 	dmb	ish
	if (!atomic_get(&init)) {
   26404:	2b00      	cmp	r3, #0
   26406:	d03f      	beq.n	26488 <bt_gatt_service_register+0xf0>
	sc_indicate(svc->attrs[0].handle,
   26408:	6822      	ldr	r2, [r4, #0]
		    svc->attrs[svc->attr_count - 1].handle);
   2640a:	6863      	ldr	r3, [r4, #4]
   2640c:	eb03 0383 	add.w	r3, r3, r3, lsl #2
   26410:	009b      	lsls	r3, r3, #2
   26412:	3b14      	subs	r3, #20
   26414:	4413      	add	r3, r2
	sc_indicate(svc->attrs[0].handle,
   26416:	8a19      	ldrh	r1, [r3, #16]
   26418:	8a10      	ldrh	r0, [r2, #16]
   2641a:	f7ff fb41 	bl	25aa0 <sc_indicate>
	db_changed();
   2641e:	f7ff fbf1 	bl	25c04 <db_changed>
	k_sched_unlock();
   26422:	f00b f997 	bl	31754 <k_sched_unlock>
	return 0;
   26426:	2500      	movs	r5, #0
}
   26428:	4628      	mov	r0, r5
   2642a:	b003      	add	sp, #12
   2642c:	bd30      	pop	{r4, r5, pc}
	__ASSERT(svc, "invalid parameters\n");
   2642e:	4d19      	ldr	r5, [pc, #100]	; (26494 <bt_gatt_service_register+0xfc>)
   26430:	f240 42ec 	movw	r2, #1260	; 0x4ec
   26434:	4629      	mov	r1, r5
   26436:	4818      	ldr	r0, [pc, #96]	; (26498 <bt_gatt_service_register+0x100>)
   26438:	f00c ffb7 	bl	333aa <printk>
   2643c:	f240 41ec 	movw	r1, #1260	; 0x4ec
   26440:	4628      	mov	r0, r5
   26442:	f00d fb4b 	bl	33adc <assert_post_action>
   26446:	e7ac      	b.n	263a2 <bt_gatt_service_register+0xa>
	__ASSERT(svc->attrs, "invalid parameters\n");
   26448:	4d12      	ldr	r5, [pc, #72]	; (26494 <bt_gatt_service_register+0xfc>)
   2644a:	f240 42ed 	movw	r2, #1261	; 0x4ed
   2644e:	4629      	mov	r1, r5
   26450:	4811      	ldr	r0, [pc, #68]	; (26498 <bt_gatt_service_register+0x100>)
   26452:	f00c ffaa 	bl	333aa <printk>
   26456:	f240 41ed 	movw	r1, #1261	; 0x4ed
   2645a:	4628      	mov	r0, r5
   2645c:	f00d fb3e 	bl	33adc <assert_post_action>
   26460:	e7a2      	b.n	263a8 <bt_gatt_service_register+0x10>
	__ASSERT(svc->attr_count, "invalid parameters\n");
   26462:	4d0c      	ldr	r5, [pc, #48]	; (26494 <bt_gatt_service_register+0xfc>)
   26464:	f240 42ee 	movw	r2, #1262	; 0x4ee
   26468:	4629      	mov	r1, r5
   2646a:	480b      	ldr	r0, [pc, #44]	; (26498 <bt_gatt_service_register+0x100>)
   2646c:	f00c ff9d 	bl	333aa <printk>
   26470:	f240 41ee 	movw	r1, #1262	; 0x4ee
   26474:	4628      	mov	r0, r5
   26476:	f00d fb31 	bl	33adc <assert_post_action>
   2647a:	e798      	b.n	263ae <bt_gatt_service_register+0x16>
		return -EALREADY;
   2647c:	f06f 0577 	mvn.w	r5, #119	; 0x77
   26480:	e7d2      	b.n	26428 <bt_gatt_service_register+0x90>
		k_sched_unlock();
   26482:	f00b f967 	bl	31754 <k_sched_unlock>
		return err;
   26486:	e7cf      	b.n	26428 <bt_gatt_service_register+0x90>
		k_sched_unlock();
   26488:	f00b f964 	bl	31754 <k_sched_unlock>
		return 0;
   2648c:	2500      	movs	r5, #0
   2648e:	e7cb      	b.n	26428 <bt_gatt_service_register+0x90>
   26490:	20002368 	.word	0x20002368
   26494:	0003e190 	.word	0x0003e190
   26498:	0003bdac 	.word	0x0003bdac

0002649c <ccc_set>:
{
   2649c:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   264a0:	b0bc      	sub	sp, #240	; 0xf0
   264a2:	4604      	mov	r4, r0
   264a4:	460d      	mov	r5, r1
   264a6:	4690      	mov	r8, r2
   264a8:	461f      	mov	r7, r3
		settings_name_next(name, &next);
   264aa:	a905      	add	r1, sp, #20
   264ac:	f00e f83b 	bl	34526 <settings_name_next>
		if (!name) {
   264b0:	b154      	cbz	r4, 264c8 <ccc_set+0x2c>
		} else if (!next) {
   264b2:	9805      	ldr	r0, [sp, #20]
   264b4:	b178      	cbz	r0, 264d6 <ccc_set+0x3a>
			unsigned long next_id = strtoul(next, NULL, 10);
   264b6:	220a      	movs	r2, #10
   264b8:	2100      	movs	r1, #0
   264ba:	f00f fa2d 	bl	35918 <strtoul>
			if (next_id >= CONFIG_BT_ID_MAX) {
   264be:	4602      	mov	r2, r0
   264c0:	bb20      	cbnz	r0, 2650c <ccc_set+0x70>
			load.addr_with_id.id = (uint8_t)next_id;
   264c2:	f88d 0024 	strb.w	r0, [sp, #36]	; 0x24
   264c6:	e009      	b.n	264dc <ccc_set+0x40>
			BT_ERR("Insufficient number of arguments");
   264c8:	2145      	movs	r1, #69	; 0x45
   264ca:	4825      	ldr	r0, [pc, #148]	; (26560 <ccc_set+0xc4>)
   264cc:	f00d fb0e 	bl	33aec <z_log_minimal_printk>
			return -EINVAL;
   264d0:	f06f 0615 	mvn.w	r6, #21
   264d4:	e03f      	b.n	26556 <ccc_set+0xba>
			load.addr_with_id.id = BT_ID_DEFAULT;
   264d6:	2300      	movs	r3, #0
   264d8:	f88d 3024 	strb.w	r3, [sp, #36]	; 0x24
		err = bt_settings_decode_key(name, &addr);
   264dc:	a906      	add	r1, sp, #24
   264de:	4620      	mov	r0, r4
   264e0:	f00f fc07 	bl	35cf2 <bt_settings_decode_key>
		if (err) {
   264e4:	4606      	mov	r6, r0
   264e6:	b9c0      	cbnz	r0, 2651a <ccc_set+0x7e>
		load.addr_with_id.addr = &addr;
   264e8:	ab06      	add	r3, sp, #24
   264ea:	9308      	str	r3, [sp, #32]
		if (len_rd) {
   264ec:	b325      	cbz	r5, 26538 <ccc_set+0x9c>
			len = read_cb(cb_arg, ccc_store, sizeof(ccc_store));
   264ee:	22c0      	movs	r2, #192	; 0xc0
   264f0:	a90c      	add	r1, sp, #48	; 0x30
   264f2:	4638      	mov	r0, r7
   264f4:	47c0      	blx	r8
			if (len < 0) {
   264f6:	1e04      	subs	r4, r0, #0
   264f8:	db17      	blt.n	2652a <ccc_set+0x8e>
			load.entry = ccc_store;
   264fa:	ab0c      	add	r3, sp, #48	; 0x30
   264fc:	930a      	str	r3, [sp, #40]	; 0x28
			load.count = len / sizeof(*ccc_store);
   264fe:	08a4      	lsrs	r4, r4, #2
   26500:	940b      	str	r4, [sp, #44]	; 0x2c
			for (size_t i = 0; i < load.count; i++) {
   26502:	2300      	movs	r3, #0
   26504:	429c      	cmp	r4, r3
   26506:	d91a      	bls.n	2653e <ccc_set+0xa2>
   26508:	3301      	adds	r3, #1
   2650a:	e7fb      	b.n	26504 <ccc_set+0x68>
				BT_ERR("Invalid local identity %lu", next_id);
   2650c:	2145      	movs	r1, #69	; 0x45
   2650e:	4815      	ldr	r0, [pc, #84]	; (26564 <ccc_set+0xc8>)
   26510:	f00d faec 	bl	33aec <z_log_minimal_printk>
				return -EINVAL;
   26514:	f06f 0615 	mvn.w	r6, #21
   26518:	e01d      	b.n	26556 <ccc_set+0xba>
			BT_ERR("Unable to decode address %s", log_strdup(name));
   2651a:	4622      	mov	r2, r4
   2651c:	2145      	movs	r1, #69	; 0x45
   2651e:	4812      	ldr	r0, [pc, #72]	; (26568 <ccc_set+0xcc>)
   26520:	f00d fae4 	bl	33aec <z_log_minimal_printk>
			return -EINVAL;
   26524:	f06f 0615 	mvn.w	r6, #21
   26528:	e015      	b.n	26556 <ccc_set+0xba>
				BT_ERR("Failed to decode value (err %zd)", len);
   2652a:	4622      	mov	r2, r4
   2652c:	2145      	movs	r1, #69	; 0x45
   2652e:	480f      	ldr	r0, [pc, #60]	; (2656c <ccc_set+0xd0>)
   26530:	f00d fadc 	bl	33aec <z_log_minimal_printk>
				return len;
   26534:	4626      	mov	r6, r4
   26536:	e00e      	b.n	26556 <ccc_set+0xba>
			load.entry = NULL;
   26538:	2300      	movs	r3, #0
   2653a:	930a      	str	r3, [sp, #40]	; 0x28
			load.count = 0;
   2653c:	930b      	str	r3, [sp, #44]	; 0x2c
   2653e:	ab08      	add	r3, sp, #32
   26540:	9302      	str	r3, [sp, #8]
   26542:	4b0b      	ldr	r3, [pc, #44]	; (26570 <ccc_set+0xd4>)
   26544:	9301      	str	r3, [sp, #4]
   26546:	2200      	movs	r2, #0
   26548:	9200      	str	r2, [sp, #0]
   2654a:	4613      	mov	r3, r2
   2654c:	f64f 71ff 	movw	r1, #65535	; 0xffff
   26550:	2001      	movs	r0, #1
   26552:	f7ff fdc3 	bl	260dc <bt_gatt_foreach_attr_type>
}
   26556:	4630      	mov	r0, r6
   26558:	b03c      	add	sp, #240	; 0xf0
   2655a:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
   2655e:	bf00      	nop
   26560:	0003cc2c 	.word	0x0003cc2c
   26564:	0003e1e4 	.word	0x0003e1e4
   26568:	0003e1c0 	.word	0x0003e1c0
   2656c:	0003e020 	.word	0x0003e020
   26570:	0002577d 	.word	0x0002577d

00026574 <ccc_set_direct>:
{
   26574:	b570      	push	{r4, r5, r6, lr}
   26576:	b082      	sub	sp, #8
   26578:	460c      	mov	r4, r1
   2657a:	4615      	mov	r5, r2
   2657c:	461e      	mov	r6, r3
		if (!settings_name_steq((const char *)param, "bt/ccc", &name)) {
   2657e:	aa01      	add	r2, sp, #4
   26580:	4909      	ldr	r1, [pc, #36]	; (265a8 <ccc_set_direct+0x34>)
   26582:	9806      	ldr	r0, [sp, #24]
   26584:	f00d ffa5 	bl	344d2 <settings_name_steq>
   26588:	b138      	cbz	r0, 2659a <ccc_set_direct+0x26>
		return ccc_set(name, len, read_cb, cb_arg);
   2658a:	4633      	mov	r3, r6
   2658c:	462a      	mov	r2, r5
   2658e:	4621      	mov	r1, r4
   26590:	9801      	ldr	r0, [sp, #4]
   26592:	f7ff ff83 	bl	2649c <ccc_set>
}
   26596:	b002      	add	sp, #8
   26598:	bd70      	pop	{r4, r5, r6, pc}
			BT_ERR("Invalid key");
   2659a:	2145      	movs	r1, #69	; 0x45
   2659c:	4803      	ldr	r0, [pc, #12]	; (265ac <ccc_set_direct+0x38>)
   2659e:	f00d faa5 	bl	33aec <z_log_minimal_printk>
			return -EINVAL;
   265a2:	f06f 0015 	mvn.w	r0, #21
   265a6:	e7f6      	b.n	26596 <ccc_set_direct+0x22>
   265a8:	0003e2bc 	.word	0x0003e2bc
   265ac:	0003e2c4 	.word	0x0003e2c4

000265b0 <gatt_find_by_uuid>:
{
   265b0:	b510      	push	{r4, lr}
   265b2:	b084      	sub	sp, #16
   265b4:	4604      	mov	r4, r0
   265b6:	460a      	mov	r2, r1
	found->attr = NULL;
   265b8:	2300      	movs	r3, #0
   265ba:	6003      	str	r3, [r0, #0]
	bt_gatt_foreach_attr_type(found->handle, 0xffff, uuid, NULL, 1,
   265bc:	9002      	str	r0, [sp, #8]
   265be:	4907      	ldr	r1, [pc, #28]	; (265dc <gatt_find_by_uuid+0x2c>)
   265c0:	9101      	str	r1, [sp, #4]
   265c2:	2101      	movs	r1, #1
   265c4:	9100      	str	r1, [sp, #0]
   265c6:	f64f 71ff 	movw	r1, #65535	; 0xffff
   265ca:	8880      	ldrh	r0, [r0, #4]
   265cc:	f7ff fd86 	bl	260dc <bt_gatt_foreach_attr_type>
	return found->attr ? true : false;
   265d0:	6820      	ldr	r0, [r4, #0]
}
   265d2:	3800      	subs	r0, #0
   265d4:	bf18      	it	ne
   265d6:	2001      	movne	r0, #1
   265d8:	b004      	add	sp, #16
   265da:	bd10      	pop	{r4, pc}
   265dc:	0003792b 	.word	0x0003792b

000265e0 <gatt_indicate>:
{
   265e0:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
   265e4:	b082      	sub	sp, #8
   265e6:	4606      	mov	r6, r0
   265e8:	460f      	mov	r7, r1
   265ea:	4614      	mov	r4, r2
	if (bt_gatt_check_perm(conn, params->attr,
   265ec:	2214      	movs	r2, #20
   265ee:	6861      	ldr	r1, [r4, #4]
   265f0:	f011 fc3e 	bl	37e70 <bt_gatt_check_perm>
   265f4:	bb78      	cbnz	r0, 26656 <gatt_indicate+0x76>
	len = sizeof(*ind) + params->len;
   265f6:	8aa5      	ldrh	r5, [r4, #20]
   265f8:	3502      	adds	r5, #2
	req = gatt_req_alloc(gatt_indicate_rsp, params, NULL,
   265fa:	9500      	str	r5, [sp, #0]
   265fc:	231d      	movs	r3, #29
   265fe:	2200      	movs	r2, #0
   26600:	4621      	mov	r1, r4
   26602:	4821      	ldr	r0, [pc, #132]	; (26688 <gatt_indicate+0xa8>)
   26604:	f011 facc 	bl	37ba0 <gatt_req_alloc>
	if (!req) {
   26608:	4680      	mov	r8, r0
   2660a:	b3c8      	cbz	r0, 26680 <gatt_indicate+0xa0>
	buf = bt_att_create_pdu(conn, BT_ATT_OP_INDICATE, len);
   2660c:	462a      	mov	r2, r5
   2660e:	211d      	movs	r1, #29
   26610:	4630      	mov	r0, r6
   26612:	f7fe fb99 	bl	24d48 <bt_att_create_pdu>
	if (!buf) {
   26616:	4681      	mov	r9, r0
   26618:	b320      	cbz	r0, 26664 <gatt_indicate+0x84>
   2661a:	f100 0a08 	add.w	sl, r0, #8
   2661e:	2102      	movs	r1, #2
   26620:	4650      	mov	r0, sl
   26622:	f003 f9b5 	bl	29990 <net_buf_simple_add>
	ind->handle = sys_cpu_to_le16(handle);
   26626:	4605      	mov	r5, r0
   26628:	f825 7b02 	strh.w	r7, [r5], #2
   2662c:	8aa1      	ldrh	r1, [r4, #20]
   2662e:	4650      	mov	r0, sl
   26630:	f003 f9ae 	bl	29990 <net_buf_simple_add>
	memcpy(ind->value, params->data, params->len);
   26634:	8aa2      	ldrh	r2, [r4, #20]
   26636:	6921      	ldr	r1, [r4, #16]
   26638:	4628      	mov	r0, r5
   2663a:	f00f fa5f 	bl	35afc <memcpy>
	req->buf = buf;
   2663e:	f8c8 9008 	str.w	r9, [r8, #8]
	err = bt_att_req_send(conn, req);
   26642:	4641      	mov	r1, r8
   26644:	4630      	mov	r0, r6
   26646:	f7fe fea5 	bl	25394 <bt_att_req_send>
	if (err) {
   2664a:	4604      	mov	r4, r0
   2664c:	b9a0      	cbnz	r0, 26678 <gatt_indicate+0x98>
}
   2664e:	4620      	mov	r0, r4
   26650:	b002      	add	sp, #8
   26652:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
		BT_WARN("Link is not encrypted");
   26656:	2157      	movs	r1, #87	; 0x57
   26658:	480c      	ldr	r0, [pc, #48]	; (2668c <gatt_indicate+0xac>)
   2665a:	f00d fa47 	bl	33aec <z_log_minimal_printk>
		return -EPERM;
   2665e:	f04f 34ff 	mov.w	r4, #4294967295
   26662:	e7f4      	b.n	2664e <gatt_indicate+0x6e>
		BT_WARN("No buffer available to send indication");
   26664:	2157      	movs	r1, #87	; 0x57
   26666:	480a      	ldr	r0, [pc, #40]	; (26690 <gatt_indicate+0xb0>)
   26668:	f00d fa40 	bl	33aec <z_log_minimal_printk>
		bt_att_req_free(req);
   2666c:	4640      	mov	r0, r8
   2666e:	f7fe fdb1 	bl	251d4 <bt_att_req_free>
		return -ENOMEM;
   26672:	f06f 040b 	mvn.w	r4, #11
   26676:	e7ea      	b.n	2664e <gatt_indicate+0x6e>
		bt_att_req_free(req);
   26678:	4640      	mov	r0, r8
   2667a:	f7fe fdab 	bl	251d4 <bt_att_req_free>
   2667e:	e7e6      	b.n	2664e <gatt_indicate+0x6e>
		return -ENOMEM;
   26680:	f06f 040b 	mvn.w	r4, #11
   26684:	e7e3      	b.n	2664e <gatt_indicate+0x6e>
   26686:	bf00      	nop
   26688:	00037909 	.word	0x00037909
   2668c:	0003e2dc 	.word	0x0003e2dc
   26690:	0003e2f8 	.word	0x0003e2f8

00026694 <bt_gatt_indicate>:
{
   26694:	b570      	push	{r4, r5, r6, lr}
   26696:	b08c      	sub	sp, #48	; 0x30
   26698:	4605      	mov	r5, r0
	__ASSERT(params, "invalid parameters\n");
   2669a:	460c      	mov	r4, r1
   2669c:	2900      	cmp	r1, #0
   2669e:	d041      	beq.n	26724 <bt_gatt_indicate+0x90>
	__ASSERT(params->attr || params->uuid, "invalid parameters\n");
   266a0:	6863      	ldr	r3, [r4, #4]
   266a2:	2b00      	cmp	r3, #0
   266a4:	d04b      	beq.n	2673e <bt_gatt_indicate+0xaa>
   266a6:	f3bf 8f5b 	dmb	ish
   266aa:	4b44      	ldr	r3, [pc, #272]	; (267bc <bt_gatt_indicate+0x128>)
   266ac:	681b      	ldr	r3, [r3, #0]
   266ae:	f3bf 8f5b 	dmb	ish
	if (!atomic_test_bit(bt_dev.flags, BT_DEV_READY)) {
   266b2:	f013 0f02 	tst.w	r3, #2
   266b6:	d078      	beq.n	267aa <bt_gatt_indicate+0x116>
	if (conn && conn->state != BT_CONN_CONNECTED) {
   266b8:	b115      	cbz	r5, 266c0 <bt_gatt_indicate+0x2c>
   266ba:	7b6b      	ldrb	r3, [r5, #13]
   266bc:	2b07      	cmp	r3, #7
   266be:	d177      	bne.n	267b0 <bt_gatt_indicate+0x11c>
	data.attr = params->attr;
   266c0:	6860      	ldr	r0, [r4, #4]
   266c2:	9005      	str	r0, [sp, #20]
	data.handle = bt_gatt_attr_get_handle(data.attr);
   266c4:	f7ff fcc2 	bl	2604c <bt_gatt_attr_get_handle>
   266c8:	f8ad 0018 	strh.w	r0, [sp, #24]
	if (params->uuid) {
   266cc:	6821      	ldr	r1, [r4, #0]
   266ce:	2900      	cmp	r1, #0
   266d0:	d045      	beq.n	2675e <bt_gatt_indicate+0xca>
		if (!gatt_find_by_uuid(&data, params->uuid)) {
   266d2:	a805      	add	r0, sp, #20
   266d4:	f7ff ff6c 	bl	265b0 <gatt_find_by_uuid>
   266d8:	2800      	cmp	r0, #0
   266da:	d06c      	beq.n	267b6 <bt_gatt_indicate+0x122>
		params->attr = data.attr;
   266dc:	9b05      	ldr	r3, [sp, #20]
   266de:	6063      	str	r3, [r4, #4]
	if (!bt_uuid_cmp(data.attr->uuid, BT_UUID_GATT_CHRC)) {
   266e0:	9b05      	ldr	r3, [sp, #20]
   266e2:	6818      	ldr	r0, [r3, #0]
   266e4:	2300      	movs	r3, #0
   266e6:	f88d 302c 	strb.w	r3, [sp, #44]	; 0x2c
   266ea:	f642 0303 	movw	r3, #10243	; 0x2803
   266ee:	f8ad 302e 	strh.w	r3, [sp, #46]	; 0x2e
   266f2:	a90b      	add	r1, sp, #44	; 0x2c
   266f4:	f00f fb3a 	bl	35d6c <bt_uuid_cmp>
   266f8:	b948      	cbnz	r0, 2670e <bt_gatt_indicate+0x7a>
		struct bt_gatt_chrc *chrc = data.attr->user_data;
   266fa:	9805      	ldr	r0, [sp, #20]
   266fc:	68c3      	ldr	r3, [r0, #12]
		if (!(chrc->properties & BT_GATT_CHRC_INDICATE)) {
   266fe:	799b      	ldrb	r3, [r3, #6]
   26700:	f013 0f20 	tst.w	r3, #32
   26704:	d030      	beq.n	26768 <bt_gatt_indicate+0xd4>
		data.handle = bt_gatt_attr_value_handle(data.attr);
   26706:	f011 fb60 	bl	37dca <bt_gatt_attr_value_handle>
   2670a:	f8ad 0018 	strh.w	r0, [sp, #24]
	if (conn) {
   2670e:	b375      	cbz	r5, 2676e <bt_gatt_indicate+0xda>
		params->_ref = 1;
   26710:	2301      	movs	r3, #1
   26712:	75a3      	strb	r3, [r4, #22]
		return gatt_indicate(conn, data.handle, params);
   26714:	4622      	mov	r2, r4
   26716:	f8bd 1018 	ldrh.w	r1, [sp, #24]
   2671a:	4628      	mov	r0, r5
   2671c:	f7ff ff60 	bl	265e0 <gatt_indicate>
}
   26720:	b00c      	add	sp, #48	; 0x30
   26722:	bd70      	pop	{r4, r5, r6, pc}
	__ASSERT(params, "invalid parameters\n");
   26724:	4e26      	ldr	r6, [pc, #152]	; (267c0 <bt_gatt_indicate+0x12c>)
   26726:	f640 1238 	movw	r2, #2360	; 0x938
   2672a:	4631      	mov	r1, r6
   2672c:	4825      	ldr	r0, [pc, #148]	; (267c4 <bt_gatt_indicate+0x130>)
   2672e:	f00c fe3c 	bl	333aa <printk>
   26732:	f640 1138 	movw	r1, #2360	; 0x938
   26736:	4630      	mov	r0, r6
   26738:	f00d f9d0 	bl	33adc <assert_post_action>
   2673c:	e7b0      	b.n	266a0 <bt_gatt_indicate+0xc>
	__ASSERT(params->attr || params->uuid, "invalid parameters\n");
   2673e:	6823      	ldr	r3, [r4, #0]
   26740:	2b00      	cmp	r3, #0
   26742:	d1b0      	bne.n	266a6 <bt_gatt_indicate+0x12>
   26744:	4e1e      	ldr	r6, [pc, #120]	; (267c0 <bt_gatt_indicate+0x12c>)
   26746:	f640 1239 	movw	r2, #2361	; 0x939
   2674a:	4631      	mov	r1, r6
   2674c:	481d      	ldr	r0, [pc, #116]	; (267c4 <bt_gatt_indicate+0x130>)
   2674e:	f00c fe2c 	bl	333aa <printk>
   26752:	f640 1139 	movw	r1, #2361	; 0x939
   26756:	4630      	mov	r0, r6
   26758:	f00d f9c0 	bl	33adc <assert_post_action>
   2675c:	e7a3      	b.n	266a6 <bt_gatt_indicate+0x12>
		if (!data.handle) {
   2675e:	2800      	cmp	r0, #0
   26760:	d1be      	bne.n	266e0 <bt_gatt_indicate+0x4c>
			return -ENOENT;
   26762:	f06f 0001 	mvn.w	r0, #1
   26766:	e7db      	b.n	26720 <bt_gatt_indicate+0x8c>
			return -EINVAL;
   26768:	f06f 0015 	mvn.w	r0, #21
   2676c:	e7d8      	b.n	26720 <bt_gatt_indicate+0x8c>
	data.err = -ENOTCONN;
   2676e:	f06f 037f 	mvn.w	r3, #127	; 0x7f
   26772:	9307      	str	r3, [sp, #28]
	data.type = BT_GATT_CCC_INDICATE;
   26774:	2302      	movs	r3, #2
   26776:	f8ad 3020 	strh.w	r3, [sp, #32]
	data.ind_params = params;
   2677a:	9409      	str	r4, [sp, #36]	; 0x24
	params->_ref = 0;
   2677c:	2300      	movs	r3, #0
   2677e:	75a3      	strb	r3, [r4, #22]
	bt_gatt_foreach_attr_type(data.handle, 0xffff, BT_UUID_GATT_CCC, NULL,
   26780:	f88d 3028 	strb.w	r3, [sp, #40]	; 0x28
   26784:	f642 1202 	movw	r2, #10498	; 0x2902
   26788:	f8ad 202a 	strh.w	r2, [sp, #42]	; 0x2a
   2678c:	aa05      	add	r2, sp, #20
   2678e:	9202      	str	r2, [sp, #8]
   26790:	4a0d      	ldr	r2, [pc, #52]	; (267c8 <bt_gatt_indicate+0x134>)
   26792:	9201      	str	r2, [sp, #4]
   26794:	2201      	movs	r2, #1
   26796:	9200      	str	r2, [sp, #0]
   26798:	aa0a      	add	r2, sp, #40	; 0x28
   2679a:	f64f 71ff 	movw	r1, #65535	; 0xffff
   2679e:	f8bd 0018 	ldrh.w	r0, [sp, #24]
   267a2:	f7ff fc9b 	bl	260dc <bt_gatt_foreach_attr_type>
	return data.err;
   267a6:	9807      	ldr	r0, [sp, #28]
   267a8:	e7ba      	b.n	26720 <bt_gatt_indicate+0x8c>
		return -EAGAIN;
   267aa:	f06f 000a 	mvn.w	r0, #10
   267ae:	e7b7      	b.n	26720 <bt_gatt_indicate+0x8c>
		return -ENOTCONN;
   267b0:	f06f 007f 	mvn.w	r0, #127	; 0x7f
   267b4:	e7b4      	b.n	26720 <bt_gatt_indicate+0x8c>
			return -ENOENT;
   267b6:	f06f 0001 	mvn.w	r0, #1
   267ba:	e7b1      	b.n	26720 <bt_gatt_indicate+0x8c>
   267bc:	20000374 	.word	0x20000374
   267c0:	0003e190 	.word	0x0003e190
   267c4:	0003bdac 	.word	0x0003bdac
   267c8:	00026aa5 	.word	0x00026aa5

000267cc <sc_process>:
{
   267cc:	b570      	push	{r4, r5, r6, lr}
   267ce:	b082      	sub	sp, #8
   267d0:	4604      	mov	r4, r0
	__ASSERT(!atomic_test_bit(sc->flags, SC_INDICATE_PENDING),
   267d2:	f100 0530 	add.w	r5, r0, #48	; 0x30
   267d6:	f3bf 8f5b 	dmb	ish
   267da:	6b03      	ldr	r3, [r0, #48]	; 0x30
   267dc:	f3bf 8f5b 	dmb	ish
   267e0:	f013 0f02 	tst.w	r3, #2
   267e4:	d12b      	bne.n	2683e <sc_process+0x72>
	sc_range[0] = sys_cpu_to_le16(sc->start);
   267e6:	f834 3c08 	ldrh.w	r3, [r4, #-8]
   267ea:	f8ad 3004 	strh.w	r3, [sp, #4]
	sc_range[1] = sys_cpu_to_le16(sc->end);
   267ee:	f834 3c06 	ldrh.w	r3, [r4, #-6]
   267f2:	f8ad 3006 	strh.w	r3, [sp, #6]
	return __atomic_fetch_and(target, value, __ATOMIC_SEQ_CST);
   267f6:	f3bf 8f5b 	dmb	ish
   267fa:	e855 3f00 	ldrex	r3, [r5]
   267fe:	f023 0301 	bic.w	r3, r3, #1
   26802:	e845 3200 	strex	r2, r3, [r5]
   26806:	2a00      	cmp	r2, #0
   26808:	d1f7      	bne.n	267fa <sc_process+0x2e>
   2680a:	f3bf 8f5b 	dmb	ish
	sc->start = 0U;
   2680e:	2000      	movs	r0, #0
   26810:	f824 0c08 	strh.w	r0, [r4, #-8]
	sc->end = 0U;
   26814:	f824 0c06 	strh.w	r0, [r4, #-6]
	sc->params.attr = &_1_gatt_svc.attrs[2];
   26818:	4b16      	ldr	r3, [pc, #88]	; (26874 <sc_process+0xa8>)
   2681a:	f844 3c1c 	str.w	r3, [r4, #-28]
	sc->params.func = sc_indicate_rsp;
   2681e:	4b16      	ldr	r3, [pc, #88]	; (26878 <sc_process+0xac>)
   26820:	f844 3c18 	str.w	r3, [r4, #-24]
	sc->params.data = &sc_range[0];
   26824:	ab01      	add	r3, sp, #4
   26826:	f844 3c10 	str.w	r3, [r4, #-16]
	sc->params.len = sizeof(sc_range);
   2682a:	2304      	movs	r3, #4
   2682c:	f824 3c0c 	strh.w	r3, [r4, #-12]
	if (bt_gatt_indicate(NULL, &sc->params)) {
   26830:	f1a4 0120 	sub.w	r1, r4, #32
   26834:	f7ff ff2e 	bl	26694 <bt_gatt_indicate>
   26838:	b170      	cbz	r0, 26858 <sc_process+0x8c>
}
   2683a:	b002      	add	sp, #8
   2683c:	bd70      	pop	{r4, r5, r6, pc}
	__ASSERT(!atomic_test_bit(sc->flags, SC_INDICATE_PENDING),
   2683e:	4e0f      	ldr	r6, [pc, #60]	; (2687c <sc_process+0xb0>)
   26840:	f44f 7279 	mov.w	r2, #996	; 0x3e4
   26844:	4631      	mov	r1, r6
   26846:	480e      	ldr	r0, [pc, #56]	; (26880 <sc_process+0xb4>)
   26848:	f00c fdaf 	bl	333aa <printk>
   2684c:	f44f 7179 	mov.w	r1, #996	; 0x3e4
   26850:	4630      	mov	r0, r6
   26852:	f00d f943 	bl	33adc <assert_post_action>
   26856:	e7c6      	b.n	267e6 <sc_process+0x1a>
	return __atomic_fetch_or(target, value, __ATOMIC_SEQ_CST);
   26858:	f3bf 8f5b 	dmb	ish
   2685c:	e855 3f00 	ldrex	r3, [r5]
   26860:	f043 0302 	orr.w	r3, r3, #2
   26864:	e845 3200 	strex	r2, r3, [r5]
   26868:	2a00      	cmp	r2, #0
   2686a:	d1f7      	bne.n	2685c <sc_process+0x90>
   2686c:	f3bf 8f5b 	dmb	ish
   26870:	e7e3      	b.n	2683a <sc_process+0x6e>
   26872:	bf00      	nop
   26874:	0003e42c 	.word	0x0003e42c
   26878:	00025b45 	.word	0x00025b45
   2687c:	0003e190 	.word	0x0003e190
   26880:	0003bdac 	.word	0x0003bdac

00026884 <sc_restore>:
{
   26884:	b530      	push	{r4, r5, lr}
   26886:	b083      	sub	sp, #12
   26888:	4604      	mov	r4, r0
	cfg = find_sc_cfg(conn->id, &conn->le.dst);
   2688a:	f100 0190 	add.w	r1, r0, #144	; 0x90
   2688e:	7a00      	ldrb	r0, [r0, #8]
   26890:	f7fe fe6c 	bl	2556c <find_sc_cfg>
	if (!cfg) {
   26894:	b308      	cbz	r0, 268da <sc_restore+0x56>
   26896:	4605      	mov	r5, r0
	if (!(cfg->data.start || cfg->data.end)) {
   26898:	8903      	ldrh	r3, [r0, #8]
   2689a:	b90b      	cbnz	r3, 268a0 <sc_restore+0x1c>
   2689c:	8942      	ldrh	r2, [r0, #10]
   2689e:	b1e2      	cbz	r2, 268da <sc_restore+0x56>
	sc_range[0] = sys_cpu_to_le16(cfg->data.start);
   268a0:	f8ad 3004 	strh.w	r3, [sp, #4]
	sc_range[1] = sys_cpu_to_le16(cfg->data.end);
   268a4:	896b      	ldrh	r3, [r5, #10]
   268a6:	f8ad 3006 	strh.w	r3, [sp, #6]
	index = bt_conn_index(conn);
   268aa:	4620      	mov	r0, r4
   268ac:	f7fd f894 	bl	239d8 <bt_conn_index>
	sc_restore_params[index].attr = &_1_gatt_svc.attrs[2];
   268b0:	490d      	ldr	r1, [pc, #52]	; (268e8 <sc_restore+0x64>)
   268b2:	eb00 0340 	add.w	r3, r0, r0, lsl #1
   268b6:	eb01 03c3 	add.w	r3, r1, r3, lsl #3
   268ba:	4a0c      	ldr	r2, [pc, #48]	; (268ec <sc_restore+0x68>)
   268bc:	605a      	str	r2, [r3, #4]
	sc_restore_params[index].func = sc_restore_rsp;
   268be:	4a0c      	ldr	r2, [pc, #48]	; (268f0 <sc_restore+0x6c>)
   268c0:	609a      	str	r2, [r3, #8]
	sc_restore_params[index].data = &sc_range[0];
   268c2:	aa01      	add	r2, sp, #4
   268c4:	611a      	str	r2, [r3, #16]
	sc_restore_params[index].len = sizeof(sc_range);
   268c6:	2204      	movs	r2, #4
   268c8:	829a      	strh	r2, [r3, #20]
	if (bt_gatt_indicate(conn, &sc_restore_params[index])) {
   268ca:	4619      	mov	r1, r3
   268cc:	4620      	mov	r0, r4
   268ce:	f7ff fee1 	bl	26694 <bt_gatt_indicate>
   268d2:	b920      	cbnz	r0, 268de <sc_restore+0x5a>
	sc_reset(cfg);
   268d4:	4628      	mov	r0, r5
   268d6:	f011 f92d 	bl	37b34 <sc_reset>
}
   268da:	b003      	add	sp, #12
   268dc:	bd30      	pop	{r4, r5, pc}
		BT_ERR("SC restore indication failed");
   268de:	2145      	movs	r1, #69	; 0x45
   268e0:	4804      	ldr	r0, [pc, #16]	; (268f4 <sc_restore+0x70>)
   268e2:	f00d f903 	bl	33aec <z_log_minimal_printk>
   268e6:	e7f5      	b.n	268d4 <sc_restore+0x50>
   268e8:	20002384 	.word	0x20002384
   268ec:	0003e42c 	.word	0x0003e42c
   268f0:	00037a17 	.word	0x00037a17
   268f4:	0003e324 	.word	0x0003e324

000268f8 <gatt_notify>:
{
   268f8:	e92d 43f8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
   268fc:	4606      	mov	r6, r0
   268fe:	460f      	mov	r7, r1
   26900:	4614      	mov	r4, r2
	if (bt_gatt_check_perm(conn, params->attr,
   26902:	2214      	movs	r2, #20
   26904:	6861      	ldr	r1, [r4, #4]
   26906:	f011 fab3 	bl	37e70 <bt_gatt_check_perm>
   2690a:	bb08      	cbnz	r0, 26950 <gatt_notify+0x58>
				sizeof(*nfy) + params->len);
   2690c:	89a2      	ldrh	r2, [r4, #12]
	buf = bt_att_create_pdu(conn, BT_ATT_OP_NOTIFY,
   2690e:	3202      	adds	r2, #2
   26910:	211b      	movs	r1, #27
   26912:	4630      	mov	r0, r6
   26914:	f7fe fa18 	bl	24d48 <bt_att_create_pdu>
	if (!buf) {
   26918:	4680      	mov	r8, r0
   2691a:	b300      	cbz	r0, 2695e <gatt_notify+0x66>
   2691c:	f100 0908 	add.w	r9, r0, #8
   26920:	2102      	movs	r1, #2
   26922:	4648      	mov	r0, r9
   26924:	f003 f834 	bl	29990 <net_buf_simple_add>
	nfy->handle = sys_cpu_to_le16(handle);
   26928:	4605      	mov	r5, r0
   2692a:	f825 7b02 	strh.w	r7, [r5], #2
   2692e:	89a1      	ldrh	r1, [r4, #12]
   26930:	4648      	mov	r0, r9
   26932:	f003 f82d 	bl	29990 <net_buf_simple_add>
	memcpy(nfy->value, params->data, params->len);
   26936:	89a2      	ldrh	r2, [r4, #12]
   26938:	68a1      	ldr	r1, [r4, #8]
   2693a:	4628      	mov	r0, r5
   2693c:	f00f f8de 	bl	35afc <memcpy>
	return bt_att_send(conn, buf, params->func, params->user_data);
   26940:	6963      	ldr	r3, [r4, #20]
   26942:	6922      	ldr	r2, [r4, #16]
   26944:	4641      	mov	r1, r8
   26946:	4630      	mov	r0, r6
   26948:	f7fe fcdc 	bl	25304 <bt_att_send>
}
   2694c:	e8bd 83f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
		BT_WARN("Link is not encrypted");
   26950:	2157      	movs	r1, #87	; 0x57
   26952:	4806      	ldr	r0, [pc, #24]	; (2696c <gatt_notify+0x74>)
   26954:	f00d f8ca 	bl	33aec <z_log_minimal_printk>
		return -EPERM;
   26958:	f04f 30ff 	mov.w	r0, #4294967295
   2695c:	e7f6      	b.n	2694c <gatt_notify+0x54>
		BT_WARN("No buffer available to send notification");
   2695e:	2157      	movs	r1, #87	; 0x57
   26960:	4803      	ldr	r0, [pc, #12]	; (26970 <gatt_notify+0x78>)
   26962:	f00d f8c3 	bl	33aec <z_log_minimal_printk>
		return -ENOMEM;
   26966:	f06f 000b 	mvn.w	r0, #11
   2696a:	e7ef      	b.n	2694c <gatt_notify+0x54>
   2696c:	0003e2dc 	.word	0x0003e2dc
   26970:	0003e348 	.word	0x0003e348

00026974 <bt_gatt_notify_cb>:
{
   26974:	b570      	push	{r4, r5, r6, lr}
   26976:	b08c      	sub	sp, #48	; 0x30
   26978:	4604      	mov	r4, r0
	__ASSERT(params, "invalid parameters\n");
   2697a:	460d      	mov	r5, r1
   2697c:	2900      	cmp	r1, #0
   2697e:	d03f      	beq.n	26a00 <bt_gatt_notify_cb+0x8c>
	__ASSERT(params->attr || params->uuid, "invalid parameters\n");
   26980:	686b      	ldr	r3, [r5, #4]
   26982:	2b00      	cmp	r3, #0
   26984:	d049      	beq.n	26a1a <bt_gatt_notify_cb+0xa6>
	return __atomic_load_n(target, __ATOMIC_SEQ_CST);
   26986:	f3bf 8f5b 	dmb	ish
   2698a:	4b42      	ldr	r3, [pc, #264]	; (26a94 <bt_gatt_notify_cb+0x120>)
   2698c:	681b      	ldr	r3, [r3, #0]
   2698e:	f3bf 8f5b 	dmb	ish
	if (!atomic_test_bit(bt_dev.flags, BT_DEV_READY)) {
   26992:	f013 0f02 	tst.w	r3, #2
   26996:	d074      	beq.n	26a82 <bt_gatt_notify_cb+0x10e>
	if (conn && conn->state != BT_CONN_CONNECTED) {
   26998:	b114      	cbz	r4, 269a0 <bt_gatt_notify_cb+0x2c>
   2699a:	7b63      	ldrb	r3, [r4, #13]
   2699c:	2b07      	cmp	r3, #7
   2699e:	d173      	bne.n	26a88 <bt_gatt_notify_cb+0x114>
	data.attr = params->attr;
   269a0:	6868      	ldr	r0, [r5, #4]
   269a2:	9005      	str	r0, [sp, #20]
	data.handle = bt_gatt_attr_get_handle(data.attr);
   269a4:	f7ff fb52 	bl	2604c <bt_gatt_attr_get_handle>
   269a8:	f8ad 0018 	strh.w	r0, [sp, #24]
	if (params->uuid) {
   269ac:	6829      	ldr	r1, [r5, #0]
   269ae:	2900      	cmp	r1, #0
   269b0:	d043      	beq.n	26a3a <bt_gatt_notify_cb+0xc6>
		if (!gatt_find_by_uuid(&data, params->uuid)) {
   269b2:	a805      	add	r0, sp, #20
   269b4:	f7ff fdfc 	bl	265b0 <gatt_find_by_uuid>
   269b8:	2800      	cmp	r0, #0
   269ba:	d068      	beq.n	26a8e <bt_gatt_notify_cb+0x11a>
		params->attr = data.attr;
   269bc:	9b05      	ldr	r3, [sp, #20]
   269be:	606b      	str	r3, [r5, #4]
	if (!bt_uuid_cmp(data.attr->uuid, BT_UUID_GATT_CHRC)) {
   269c0:	9b05      	ldr	r3, [sp, #20]
   269c2:	6818      	ldr	r0, [r3, #0]
   269c4:	2300      	movs	r3, #0
   269c6:	f88d 302c 	strb.w	r3, [sp, #44]	; 0x2c
   269ca:	f642 0303 	movw	r3, #10243	; 0x2803
   269ce:	f8ad 302e 	strh.w	r3, [sp, #46]	; 0x2e
   269d2:	a90b      	add	r1, sp, #44	; 0x2c
   269d4:	f00f f9ca 	bl	35d6c <bt_uuid_cmp>
   269d8:	b948      	cbnz	r0, 269ee <bt_gatt_notify_cb+0x7a>
		struct bt_gatt_chrc *chrc = data.attr->user_data;
   269da:	9805      	ldr	r0, [sp, #20]
   269dc:	68c3      	ldr	r3, [r0, #12]
		if (!(chrc->properties & BT_GATT_CHRC_NOTIFY)) {
   269de:	799b      	ldrb	r3, [r3, #6]
   269e0:	f013 0f10 	tst.w	r3, #16
   269e4:	d02e      	beq.n	26a44 <bt_gatt_notify_cb+0xd0>
		data.handle = bt_gatt_attr_value_handle(data.attr);
   269e6:	f011 f9f0 	bl	37dca <bt_gatt_attr_value_handle>
   269ea:	f8ad 0018 	strh.w	r0, [sp, #24]
	if (conn) {
   269ee:	b364      	cbz	r4, 26a4a <bt_gatt_notify_cb+0xd6>
		return gatt_notify(conn, data.handle, params);
   269f0:	462a      	mov	r2, r5
   269f2:	f8bd 1018 	ldrh.w	r1, [sp, #24]
   269f6:	4620      	mov	r0, r4
   269f8:	f7ff ff7e 	bl	268f8 <gatt_notify>
}
   269fc:	b00c      	add	sp, #48	; 0x30
   269fe:	bd70      	pop	{r4, r5, r6, pc}
	__ASSERT(params, "invalid parameters\n");
   26a00:	4e25      	ldr	r6, [pc, #148]	; (26a98 <bt_gatt_notify_cb+0x124>)
   26a02:	f640 02ea 	movw	r2, #2282	; 0x8ea
   26a06:	4631      	mov	r1, r6
   26a08:	4824      	ldr	r0, [pc, #144]	; (26a9c <bt_gatt_notify_cb+0x128>)
   26a0a:	f00c fcce 	bl	333aa <printk>
   26a0e:	f640 01ea 	movw	r1, #2282	; 0x8ea
   26a12:	4630      	mov	r0, r6
   26a14:	f00d f862 	bl	33adc <assert_post_action>
   26a18:	e7b2      	b.n	26980 <bt_gatt_notify_cb+0xc>
	__ASSERT(params->attr || params->uuid, "invalid parameters\n");
   26a1a:	682b      	ldr	r3, [r5, #0]
   26a1c:	2b00      	cmp	r3, #0
   26a1e:	d1b2      	bne.n	26986 <bt_gatt_notify_cb+0x12>
   26a20:	4e1d      	ldr	r6, [pc, #116]	; (26a98 <bt_gatt_notify_cb+0x124>)
   26a22:	f640 02eb 	movw	r2, #2283	; 0x8eb
   26a26:	4631      	mov	r1, r6
   26a28:	481c      	ldr	r0, [pc, #112]	; (26a9c <bt_gatt_notify_cb+0x128>)
   26a2a:	f00c fcbe 	bl	333aa <printk>
   26a2e:	f640 01eb 	movw	r1, #2283	; 0x8eb
   26a32:	4630      	mov	r0, r6
   26a34:	f00d f852 	bl	33adc <assert_post_action>
   26a38:	e7a5      	b.n	26986 <bt_gatt_notify_cb+0x12>
		if (!data.handle) {
   26a3a:	2800      	cmp	r0, #0
   26a3c:	d1c0      	bne.n	269c0 <bt_gatt_notify_cb+0x4c>
			return -ENOENT;
   26a3e:	f06f 0001 	mvn.w	r0, #1
   26a42:	e7db      	b.n	269fc <bt_gatt_notify_cb+0x88>
			return -EINVAL;
   26a44:	f06f 0015 	mvn.w	r0, #21
   26a48:	e7d8      	b.n	269fc <bt_gatt_notify_cb+0x88>
	data.err = -ENOTCONN;
   26a4a:	f06f 037f 	mvn.w	r3, #127	; 0x7f
   26a4e:	9307      	str	r3, [sp, #28]
	data.type = BT_GATT_CCC_NOTIFY;
   26a50:	2201      	movs	r2, #1
   26a52:	f8ad 2020 	strh.w	r2, [sp, #32]
	data.nfy_params = params;
   26a56:	9509      	str	r5, [sp, #36]	; 0x24
	bt_gatt_foreach_attr_type(data.handle, 0xffff, BT_UUID_GATT_CCC, NULL,
   26a58:	2300      	movs	r3, #0
   26a5a:	f88d 3028 	strb.w	r3, [sp, #40]	; 0x28
   26a5e:	f642 1102 	movw	r1, #10498	; 0x2902
   26a62:	f8ad 102a 	strh.w	r1, [sp, #42]	; 0x2a
   26a66:	a905      	add	r1, sp, #20
   26a68:	9102      	str	r1, [sp, #8]
   26a6a:	490d      	ldr	r1, [pc, #52]	; (26aa0 <bt_gatt_notify_cb+0x12c>)
   26a6c:	9101      	str	r1, [sp, #4]
   26a6e:	9200      	str	r2, [sp, #0]
   26a70:	aa0a      	add	r2, sp, #40	; 0x28
   26a72:	f64f 71ff 	movw	r1, #65535	; 0xffff
   26a76:	f8bd 0018 	ldrh.w	r0, [sp, #24]
   26a7a:	f7ff fb2f 	bl	260dc <bt_gatt_foreach_attr_type>
	return data.err;
   26a7e:	9807      	ldr	r0, [sp, #28]
   26a80:	e7bc      	b.n	269fc <bt_gatt_notify_cb+0x88>
		return -EAGAIN;
   26a82:	f06f 000a 	mvn.w	r0, #10
   26a86:	e7b9      	b.n	269fc <bt_gatt_notify_cb+0x88>
		return -ENOTCONN;
   26a88:	f06f 007f 	mvn.w	r0, #127	; 0x7f
   26a8c:	e7b6      	b.n	269fc <bt_gatt_notify_cb+0x88>
			return -ENOENT;
   26a8e:	f06f 0001 	mvn.w	r0, #1
   26a92:	e7b3      	b.n	269fc <bt_gatt_notify_cb+0x88>
   26a94:	20000374 	.word	0x20000374
   26a98:	0003e190 	.word	0x0003e190
   26a9c:	0003bdac 	.word	0x0003bdac
   26aa0:	00026aa5 	.word	0x00026aa5

00026aa4 <notify_cb>:
{
   26aa4:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
   26aa8:	b082      	sub	sp, #8
   26aaa:	4616      	mov	r6, r2
	if (attr->write != bt_gatt_attr_write_ccc) {
   26aac:	6882      	ldr	r2, [r0, #8]
   26aae:	4b4b      	ldr	r3, [pc, #300]	; (26bdc <notify_cb+0x138>)
   26ab0:	429a      	cmp	r2, r3
   26ab2:	d005      	beq.n	26ac0 <notify_cb+0x1c>
		return BT_GATT_ITER_CONTINUE;
   26ab4:	f04f 0901 	mov.w	r9, #1
}
   26ab8:	4648      	mov	r0, r9
   26aba:	b002      	add	sp, #8
   26abc:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
   26ac0:	4607      	mov	r7, r0
	ccc = attr->user_data;
   26ac2:	68c5      	ldr	r5, [r0, #12]
	if (IS_ENABLED(CONFIG_BT_GATT_SERVICE_CHANGED) && ccc == &sc_ccc) {
   26ac4:	4b46      	ldr	r3, [pc, #280]	; (26be0 <notify_cb+0x13c>)
   26ac6:	429d      	cmp	r5, r3
   26ac8:	d031      	beq.n	26b2e <notify_cb+0x8a>
		for (i = 0; i < ARRAY_SIZE(sc_cfg); i++) {
   26aca:	2400      	movs	r4, #0
   26acc:	e052      	b.n	26b74 <notify_cb+0xd0>
				sc = (struct sc_data *)data->ind_params->data;
   26ace:	6933      	ldr	r3, [r6, #16]
   26ad0:	691a      	ldr	r2, [r3, #16]
				sc_save(cfg->id, &cfg->peer,
   26ad2:	eb08 0048 	add.w	r0, r8, r8, lsl #1
   26ad6:	8853      	ldrh	r3, [r2, #2]
   26ad8:	8812      	ldrh	r2, [r2, #0]
   26ada:	4621      	mov	r1, r4
   26adc:	4c41      	ldr	r4, [pc, #260]	; (26be4 <notify_cb+0x140>)
   26ade:	f814 0020 	ldrb.w	r0, [r4, r0, lsl #2]
   26ae2:	f7fe fec1 	bl	25868 <sc_save>
		for (i = 0; i < ARRAY_SIZE(sc_cfg); i++) {
   26ae6:	f108 0801 	add.w	r8, r8, #1
   26aea:	f1b8 0f01 	cmp.w	r8, #1
   26aee:	d8ec      	bhi.n	26aca <notify_cb+0x26>
			if (!bt_addr_le_cmp(&cfg->peer, BT_ADDR_LE_ANY)) {
   26af0:	eb08 0448 	add.w	r4, r8, r8, lsl #1
   26af4:	4b3b      	ldr	r3, [pc, #236]	; (26be4 <notify_cb+0x140>)
   26af6:	eb03 0484 	add.w	r4, r3, r4, lsl #2
   26afa:	3401      	adds	r4, #1
   26afc:	2300      	movs	r3, #0
   26afe:	9300      	str	r3, [sp, #0]
   26b00:	f8cd 3003 	str.w	r3, [sp, #3]
	return memcmp(a, b, sizeof(*a));
   26b04:	2207      	movs	r2, #7
   26b06:	4669      	mov	r1, sp
   26b08:	4620      	mov	r0, r4
   26b0a:	f00e ffe0 	bl	35ace <memcmp>
   26b0e:	2800      	cmp	r0, #0
   26b10:	d0e9      	beq.n	26ae6 <notify_cb+0x42>
			conn = bt_conn_lookup_state_le(cfg->id, &cfg->peer,
   26b12:	eb08 0348 	add.w	r3, r8, r8, lsl #1
   26b16:	2207      	movs	r2, #7
   26b18:	4621      	mov	r1, r4
   26b1a:	4832      	ldr	r0, [pc, #200]	; (26be4 <notify_cb+0x140>)
   26b1c:	f810 0023 	ldrb.w	r0, [r0, r3, lsl #2]
   26b20:	f7fd f958 	bl	23dd4 <bt_conn_lookup_state_le>
			if (!conn) {
   26b24:	2800      	cmp	r0, #0
   26b26:	d0d2      	beq.n	26ace <notify_cb+0x2a>
			bt_conn_unref(conn);
   26b28:	f7fc fe48 	bl	237bc <bt_conn_unref>
   26b2c:	e7db      	b.n	26ae6 <notify_cb+0x42>
		for (i = 0; i < ARRAY_SIZE(sc_cfg); i++) {
   26b2e:	f04f 0800 	mov.w	r8, #0
   26b32:	e7da      	b.n	26aea <notify_cb+0x46>
			bt_conn_unref(conn);
   26b34:	f7fc fe42 	bl	237bc <bt_conn_unref>
			continue;
   26b38:	e01b      	b.n	26b72 <notify_cb+0xce>
			bt_conn_unref(conn);
   26b3a:	4640      	mov	r0, r8
   26b3c:	f7fc fe3e 	bl	237bc <bt_conn_unref>
			continue;
   26b40:	e017      	b.n	26b72 <notify_cb+0xce>
			BT_WARN("Link is not encrypted");
   26b42:	2157      	movs	r1, #87	; 0x57
   26b44:	4828      	ldr	r0, [pc, #160]	; (26be8 <notify_cb+0x144>)
   26b46:	f00c ffd1 	bl	33aec <z_log_minimal_printk>
			continue;
   26b4a:	e012      	b.n	26b72 <notify_cb+0xce>
			err = gatt_indicate(conn, data->handle,
   26b4c:	6932      	ldr	r2, [r6, #16]
   26b4e:	88b1      	ldrh	r1, [r6, #4]
   26b50:	4640      	mov	r0, r8
   26b52:	f7ff fd45 	bl	265e0 <gatt_indicate>
			if (err == 0) {
   26b56:	4682      	mov	sl, r0
   26b58:	b918      	cbnz	r0, 26b62 <notify_cb+0xbe>
				data->ind_params->_ref++;
   26b5a:	6932      	ldr	r2, [r6, #16]
   26b5c:	7d93      	ldrb	r3, [r2, #22]
   26b5e:	3301      	adds	r3, #1
   26b60:	7593      	strb	r3, [r2, #22]
		bt_conn_unref(conn);
   26b62:	4640      	mov	r0, r8
   26b64:	f7fc fe2a 	bl	237bc <bt_conn_unref>
		if (err < 0) {
   26b68:	f1ba 0f00 	cmp.w	sl, #0
   26b6c:	dba4      	blt.n	26ab8 <notify_cb+0x14>
		data->err = 0;
   26b6e:	2300      	movs	r3, #0
   26b70:	60b3      	str	r3, [r6, #8]
	for (i = 0; i < ARRAY_SIZE(ccc->cfg); i++) {
   26b72:	3401      	adds	r4, #1
   26b74:	bb74      	cbnz	r4, 26bd4 <notify_cb+0x130>
		if (cfg->value != data->type) {
   26b76:	eb04 0384 	add.w	r3, r4, r4, lsl #2
   26b7a:	eb05 0343 	add.w	r3, r5, r3, lsl #1
   26b7e:	8919      	ldrh	r1, [r3, #8]
   26b80:	89b3      	ldrh	r3, [r6, #12]
   26b82:	4299      	cmp	r1, r3
   26b84:	d1f5      	bne.n	26b72 <notify_cb+0xce>
		conn = bt_conn_lookup_addr_le(cfg->id, &cfg->peer);
   26b86:	eb04 0384 	add.w	r3, r4, r4, lsl #2
   26b8a:	eb05 0143 	add.w	r1, r5, r3, lsl #1
   26b8e:	3101      	adds	r1, #1
   26b90:	f815 0013 	ldrb.w	r0, [r5, r3, lsl #1]
   26b94:	f7fd f8b6 	bl	23d04 <bt_conn_lookup_addr_le>
		if (!conn) {
   26b98:	4680      	mov	r8, r0
   26b9a:	2800      	cmp	r0, #0
   26b9c:	d0e9      	beq.n	26b72 <notify_cb+0xce>
		if (conn->state != BT_CONN_CONNECTED) {
   26b9e:	7b43      	ldrb	r3, [r0, #13]
   26ba0:	2b07      	cmp	r3, #7
   26ba2:	d1c7      	bne.n	26b34 <notify_cb+0x90>
		if (ccc->cfg_match && !ccc->cfg_match(conn, attr)) {
   26ba4:	696b      	ldr	r3, [r5, #20]
   26ba6:	b11b      	cbz	r3, 26bb0 <notify_cb+0x10c>
   26ba8:	4639      	mov	r1, r7
   26baa:	4798      	blx	r3
   26bac:	2800      	cmp	r0, #0
   26bae:	d0c4      	beq.n	26b3a <notify_cb+0x96>
		if (bt_gatt_check_perm(conn, attr,
   26bb0:	2214      	movs	r2, #20
   26bb2:	4639      	mov	r1, r7
   26bb4:	4640      	mov	r0, r8
   26bb6:	f011 f95b 	bl	37e70 <bt_gatt_check_perm>
   26bba:	4681      	mov	r9, r0
   26bbc:	2800      	cmp	r0, #0
   26bbe:	d1c0      	bne.n	26b42 <notify_cb+0x9e>
		if (data->type == BT_GATT_CCC_INDICATE) {
   26bc0:	89b3      	ldrh	r3, [r6, #12]
   26bc2:	2b02      	cmp	r3, #2
   26bc4:	d0c2      	beq.n	26b4c <notify_cb+0xa8>
			err = gatt_notify(conn, data->handle, data->nfy_params);
   26bc6:	6932      	ldr	r2, [r6, #16]
   26bc8:	88b1      	ldrh	r1, [r6, #4]
   26bca:	4640      	mov	r0, r8
   26bcc:	f7ff fe94 	bl	268f8 <gatt_notify>
   26bd0:	4682      	mov	sl, r0
   26bd2:	e7c6      	b.n	26b62 <notify_cb+0xbe>
	return BT_GATT_ITER_CONTINUE;
   26bd4:	f04f 0901 	mov.w	r9, #1
   26bd8:	e76e      	b.n	26ab8 <notify_cb+0x14>
   26bda:	bf00      	nop
   26bdc:	000256bd 	.word	0x000256bd
   26be0:	20000648 	.word	0x20000648
   26be4:	2000236c 	.word	0x2000236c
   26be8:	0003e2dc 	.word	0x0003e2dc

00026bec <update_ccc>:
{
   26bec:	e92d 43f8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
   26bf0:	4615      	mov	r5, r2
	struct bt_conn *conn = data->conn;
   26bf2:	6817      	ldr	r7, [r2, #0]
	if (attr->write != bt_gatt_attr_write_ccc) {
   26bf4:	6882      	ldr	r2, [r0, #8]
   26bf6:	4b24      	ldr	r3, [pc, #144]	; (26c88 <update_ccc+0x9c>)
   26bf8:	429a      	cmp	r2, r3
   26bfa:	d002      	beq.n	26c02 <update_ccc+0x16>
}
   26bfc:	2001      	movs	r0, #1
   26bfe:	e8bd 83f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
   26c02:	4604      	mov	r4, r0
	ccc = attr->user_data;
   26c04:	f8d0 800c 	ldr.w	r8, [r0, #12]
	for (i = 0; i < ARRAY_SIZE(ccc->cfg); i++) {
   26c08:	2600      	movs	r6, #0
   26c0a:	2e00      	cmp	r6, #0
   26c0c:	d1f6      	bne.n	26bfc <update_ccc+0x10>
		if (!cfg->value ||
   26c0e:	eb06 0386 	add.w	r3, r6, r6, lsl #2
   26c12:	eb08 0343 	add.w	r3, r8, r3, lsl #1
   26c16:	891b      	ldrh	r3, [r3, #8]
   26c18:	b3a3      	cbz	r3, 26c84 <update_ccc+0x98>
		    !bt_conn_is_peer_addr_le(conn, cfg->id, &cfg->peer)) {
   26c1a:	eb06 0386 	add.w	r3, r6, r6, lsl #2
   26c1e:	eb08 0243 	add.w	r2, r8, r3, lsl #1
   26c22:	3201      	adds	r2, #1
   26c24:	f818 1013 	ldrb.w	r1, [r8, r3, lsl #1]
   26c28:	4638      	mov	r0, r7
   26c2a:	f00f fea6 	bl	3697a <bt_conn_is_peer_addr_le>
		if (!cfg->value ||
   26c2e:	b348      	cbz	r0, 26c84 <update_ccc+0x98>
		err = bt_gatt_check_perm(conn, attr, BT_GATT_PERM_WRITE_MASK);
   26c30:	222a      	movs	r2, #42	; 0x2a
   26c32:	4621      	mov	r1, r4
   26c34:	4638      	mov	r0, r7
   26c36:	f011 f91b 	bl	37e70 <bt_gatt_check_perm>
		if (err) {
   26c3a:	b150      	cbz	r0, 26c52 <update_ccc+0x66>
			if (err == BT_ATT_ERR_WRITE_NOT_PERMITTED) {
   26c3c:	2803      	cmp	r0, #3
   26c3e:	d013      	beq.n	26c68 <update_ccc+0x7c>
			if (err == BT_ATT_ERR_AUTHENTICATION) {
   26c40:	2805      	cmp	r0, #5
   26c42:	d017      	beq.n	26c74 <update_ccc+0x88>
			sec = BT_SECURITY_L2;
   26c44:	f04f 0902 	mov.w	r9, #2
			    bt_conn_get_security(conn) < sec) {
   26c48:	4638      	mov	r0, r7
   26c4a:	f00f fe7b 	bl	36944 <bt_conn_get_security>
			if (IS_ENABLED(CONFIG_BT_SMP) &&
   26c4e:	4581      	cmp	r9, r0
   26c50:	d813      	bhi.n	26c7a <update_ccc+0x8e>
		gatt_ccc_changed(attr, ccc);
   26c52:	4641      	mov	r1, r8
   26c54:	4620      	mov	r0, r4
   26c56:	f010 fe3f 	bl	378d8 <gatt_ccc_changed>
		if (IS_ENABLED(CONFIG_BT_GATT_SERVICE_CHANGED) &&
   26c5a:	4b0c      	ldr	r3, [pc, #48]	; (26c8c <update_ccc+0xa0>)
   26c5c:	4598      	cmp	r8, r3
   26c5e:	d1cd      	bne.n	26bfc <update_ccc+0x10>
			sc_restore(conn);
   26c60:	4638      	mov	r0, r7
   26c62:	f7ff fe0f 	bl	26884 <sc_restore>
   26c66:	e7c9      	b.n	26bfc <update_ccc+0x10>
				BT_WARN("CCC %p not writable", attr);
   26c68:	4622      	mov	r2, r4
   26c6a:	2157      	movs	r1, #87	; 0x57
   26c6c:	4808      	ldr	r0, [pc, #32]	; (26c90 <update_ccc+0xa4>)
   26c6e:	f00c ff3d 	bl	33aec <z_log_minimal_printk>
				continue;
   26c72:	e007      	b.n	26c84 <update_ccc+0x98>
				sec = BT_SECURITY_L3;
   26c74:	f04f 0903 	mov.w	r9, #3
   26c78:	e7e6      	b.n	26c48 <update_ccc+0x5c>
				if (data->sec < sec) {
   26c7a:	792b      	ldrb	r3, [r5, #4]
   26c7c:	4599      	cmp	r9, r3
   26c7e:	d901      	bls.n	26c84 <update_ccc+0x98>
					data->sec = sec;
   26c80:	f885 9004 	strb.w	r9, [r5, #4]
	for (i = 0; i < ARRAY_SIZE(ccc->cfg); i++) {
   26c84:	3601      	adds	r6, #1
   26c86:	e7c0      	b.n	26c0a <update_ccc+0x1e>
   26c88:	000256bd 	.word	0x000256bd
   26c8c:	20000648 	.word	0x20000648
   26c90:	0003e378 	.word	0x0003e378

00026c94 <bt_gatt_connected>:
{
   26c94:	b570      	push	{r4, r5, r6, lr}
   26c96:	b090      	sub	sp, #64	; 0x40
   26c98:	4604      	mov	r4, r0
	data.conn = conn;
   26c9a:	900e      	str	r0, [sp, #56]	; 0x38
	data.sec = BT_SECURITY_L1;
   26c9c:	2301      	movs	r3, #1
   26c9e:	f88d 303c 	strb.w	r3, [sp, #60]	; 0x3c
	    bt_addr_le_is_bonded(conn->id, &conn->le.dst)) {
   26ca2:	f100 0590 	add.w	r5, r0, #144	; 0x90
   26ca6:	4629      	mov	r1, r5
   26ca8:	7a00      	ldrb	r0, [r0, #8]
   26caa:	f00f fa14 	bl	360d6 <bt_addr_le_is_bonded>
	if (IS_ENABLED(CONFIG_BT_SETTINGS_CCC_LAZY_LOADING) &&
   26cae:	b190      	cbz	r0, 26cd6 <bt_gatt_connected+0x42>
		if (conn->id) {
   26cb0:	7a22      	ldrb	r2, [r4, #8]
   26cb2:	b32a      	cbz	r2, 26d00 <bt_gatt_connected+0x6c>
			u8_to_dec(id_str, sizeof(id_str), conn->id);
   26cb4:	ae04      	add	r6, sp, #16
   26cb6:	2104      	movs	r1, #4
   26cb8:	4630      	mov	r0, r6
   26cba:	f7f5 fb87 	bl	1c3cc <u8_to_dec>
			bt_settings_encode_key(key, sizeof(key), "ccc",
   26cbe:	9600      	str	r6, [sp, #0]
   26cc0:	462b      	mov	r3, r5
   26cc2:	4a19      	ldr	r2, [pc, #100]	; (26d28 <bt_gatt_connected+0x94>)
   26cc4:	2124      	movs	r1, #36	; 0x24
   26cc6:	a805      	add	r0, sp, #20
   26cc8:	f7f9 fce6 	bl	20698 <bt_settings_encode_key>
		settings_load_subtree_direct(key, ccc_set_direct, (void *)key);
   26ccc:	aa05      	add	r2, sp, #20
   26cce:	4917      	ldr	r1, [pc, #92]	; (26d2c <bt_gatt_connected+0x98>)
   26cd0:	4610      	mov	r0, r2
   26cd2:	f7f7 faad 	bl	1e230 <settings_load_subtree_direct>
   26cd6:	ab0e      	add	r3, sp, #56	; 0x38
   26cd8:	9302      	str	r3, [sp, #8]
   26cda:	4b15      	ldr	r3, [pc, #84]	; (26d30 <bt_gatt_connected+0x9c>)
   26cdc:	9301      	str	r3, [sp, #4]
   26cde:	2200      	movs	r2, #0
   26ce0:	9200      	str	r2, [sp, #0]
   26ce2:	4613      	mov	r3, r2
   26ce4:	f64f 71ff 	movw	r1, #65535	; 0xffff
   26ce8:	2001      	movs	r0, #1
   26cea:	f7ff f9f7 	bl	260dc <bt_gatt_foreach_attr_type>
	    bt_conn_get_security(conn) < data.sec) {
   26cee:	4620      	mov	r0, r4
   26cf0:	f00f fe28 	bl	36944 <bt_conn_get_security>
   26cf4:	f89d 103c 	ldrb.w	r1, [sp, #60]	; 0x3c
	if (IS_ENABLED(CONFIG_BT_SMP) &&
   26cf8:	4288      	cmp	r0, r1
   26cfa:	d30a      	bcc.n	26d12 <bt_gatt_connected+0x7e>
}
   26cfc:	b010      	add	sp, #64	; 0x40
   26cfe:	bd70      	pop	{r4, r5, r6, pc}
			bt_settings_encode_key(key, sizeof(key), "ccc",
   26d00:	2300      	movs	r3, #0
   26d02:	9300      	str	r3, [sp, #0]
   26d04:	462b      	mov	r3, r5
   26d06:	4a08      	ldr	r2, [pc, #32]	; (26d28 <bt_gatt_connected+0x94>)
   26d08:	2124      	movs	r1, #36	; 0x24
   26d0a:	a805      	add	r0, sp, #20
   26d0c:	f7f9 fcc4 	bl	20698 <bt_settings_encode_key>
   26d10:	e7dc      	b.n	26ccc <bt_gatt_connected+0x38>
		int err = bt_conn_set_security(conn, data.sec);
   26d12:	4620      	mov	r0, r4
   26d14:	f00f fdde 	bl	368d4 <bt_conn_set_security>
		if (err) {
   26d18:	4602      	mov	r2, r0
   26d1a:	2800      	cmp	r0, #0
   26d1c:	d0ee      	beq.n	26cfc <bt_gatt_connected+0x68>
			BT_WARN("Failed to set security for bonded peer (%d)",
   26d1e:	2157      	movs	r1, #87	; 0x57
   26d20:	4804      	ldr	r0, [pc, #16]	; (26d34 <bt_gatt_connected+0xa0>)
   26d22:	f00c fee3 	bl	33aec <z_log_minimal_printk>
}
   26d26:	e7e9      	b.n	26cfc <bt_gatt_connected+0x68>
   26d28:	0003e2d8 	.word	0x0003e2d8
   26d2c:	00026575 	.word	0x00026575
   26d30:	00026bed 	.word	0x00026bed
   26d34:	0003e394 	.word	0x0003e394

00026d38 <bt_gatt_att_max_mtu_changed>:
{
   26d38:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
   26d3a:	4605      	mov	r5, r0
   26d3c:	460e      	mov	r6, r1
   26d3e:	4617      	mov	r7, r2
	return list->head;
   26d40:	4b0a      	ldr	r3, [pc, #40]	; (26d6c <bt_gatt_att_max_mtu_changed+0x34>)
   26d42:	681c      	ldr	r4, [r3, #0]
	SYS_SLIST_FOR_EACH_CONTAINER(&callback_list, cb, node) {
   26d44:	b134      	cbz	r4, 26d54 <bt_gatt_att_max_mtu_changed+0x1c>
   26d46:	3c04      	subs	r4, #4
   26d48:	e004      	b.n	26d54 <bt_gatt_att_max_mtu_changed+0x1c>
Z_GENLIST_PEEK_NEXT(slist, snode)
   26d4a:	1d23      	adds	r3, r4, #4
   26d4c:	d00b      	beq.n	26d66 <bt_gatt_att_max_mtu_changed+0x2e>
	return node->next;
   26d4e:	6864      	ldr	r4, [r4, #4]
   26d50:	b15c      	cbz	r4, 26d6a <bt_gatt_att_max_mtu_changed+0x32>
   26d52:	3c04      	subs	r4, #4
   26d54:	b14c      	cbz	r4, 26d6a <bt_gatt_att_max_mtu_changed+0x32>
		if (cb->att_mtu_updated) {
   26d56:	6823      	ldr	r3, [r4, #0]
   26d58:	2b00      	cmp	r3, #0
   26d5a:	d0f6      	beq.n	26d4a <bt_gatt_att_max_mtu_changed+0x12>
			cb->att_mtu_updated(conn, tx, rx);
   26d5c:	463a      	mov	r2, r7
   26d5e:	4631      	mov	r1, r6
   26d60:	4628      	mov	r0, r5
   26d62:	4798      	blx	r3
   26d64:	e7f1      	b.n	26d4a <bt_gatt_att_max_mtu_changed+0x12>
	SYS_SLIST_FOR_EACH_CONTAINER(&callback_list, cb, node) {
   26d66:	461c      	mov	r4, r3
   26d68:	e7f4      	b.n	26d54 <bt_gatt_att_max_mtu_changed+0x1c>
}
   26d6a:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
   26d6c:	20002338 	.word	0x20002338

00026d70 <bt_gatt_encrypt_change>:
{
   26d70:	b500      	push	{lr}
   26d72:	b087      	sub	sp, #28
	data.conn = conn;
   26d74:	9004      	str	r0, [sp, #16]
	data.sec = BT_SECURITY_L1;
   26d76:	2001      	movs	r0, #1
   26d78:	f88d 0014 	strb.w	r0, [sp, #20]
   26d7c:	ab04      	add	r3, sp, #16
   26d7e:	9302      	str	r3, [sp, #8]
   26d80:	4b05      	ldr	r3, [pc, #20]	; (26d98 <bt_gatt_encrypt_change+0x28>)
   26d82:	9301      	str	r3, [sp, #4]
   26d84:	2200      	movs	r2, #0
   26d86:	9200      	str	r2, [sp, #0]
   26d88:	4613      	mov	r3, r2
   26d8a:	f64f 71ff 	movw	r1, #65535	; 0xffff
   26d8e:	f7ff f9a5 	bl	260dc <bt_gatt_foreach_attr_type>
}
   26d92:	b007      	add	sp, #28
   26d94:	f85d fb04 	ldr.w	pc, [sp], #4
   26d98:	00026bed 	.word	0x00026bed

00026d9c <db_hash_read>:
{
   26d9c:	b5f0      	push	{r4, r5, r6, r7, lr}
   26d9e:	b085      	sub	sp, #20
   26da0:	4604      	mov	r4, r0
   26da2:	460d      	mov	r5, r1
   26da4:	4616      	mov	r6, r2
   26da6:	461f      	mov	r7, r3
	(void)k_work_cancel_delayable_sync(&db_hash.work, &db_hash.sync);
   26da8:	4812      	ldr	r0, [pc, #72]	; (26df4 <db_hash_read+0x58>)
   26daa:	f100 0150 	add.w	r1, r0, #80	; 0x50
   26dae:	3020      	adds	r0, #32
   26db0:	f009 fe2c 	bl	30a0c <k_work_cancel_delayable_sync>
   26db4:	f3bf 8f5b 	dmb	ish
   26db8:	4b0f      	ldr	r3, [pc, #60]	; (26df8 <db_hash_read+0x5c>)
   26dba:	6d1b      	ldr	r3, [r3, #80]	; 0x50
   26dbc:	f3bf 8f5b 	dmb	ish
	if (!atomic_test_bit(gatt_sc.flags, DB_HASH_VALID)) {
   26dc0:	f013 0f04 	tst.w	r3, #4
   26dc4:	d012      	beq.n	26dec <db_hash_read+0x50>
	(void)bt_gatt_change_aware(conn, true);
   26dc6:	2101      	movs	r1, #1
   26dc8:	4620      	mov	r0, r4
   26dca:	f011 f882 	bl	37ed2 <bt_gatt_change_aware>
	return bt_gatt_attr_read(conn, attr, buf, len, offset, db_hash.hash,
   26dce:	2310      	movs	r3, #16
   26dd0:	9302      	str	r3, [sp, #8]
   26dd2:	4b08      	ldr	r3, [pc, #32]	; (26df4 <db_hash_read+0x58>)
   26dd4:	9301      	str	r3, [sp, #4]
   26dd6:	f8bd 3028 	ldrh.w	r3, [sp, #40]	; 0x28
   26dda:	9300      	str	r3, [sp, #0]
   26ddc:	463b      	mov	r3, r7
   26dde:	4632      	mov	r2, r6
   26de0:	4629      	mov	r1, r5
   26de2:	4620      	mov	r0, r4
   26de4:	f010 ff36 	bl	37c54 <bt_gatt_attr_read>
}
   26de8:	b005      	add	sp, #20
   26dea:	bdf0      	pop	{r4, r5, r6, r7, pc}
		db_hash_gen(true);
   26dec:	2001      	movs	r0, #1
   26dee:	f7ff f9df 	bl	261b0 <db_hash_gen>
   26df2:	e7e8      	b.n	26dc6 <db_hash_read+0x2a>
   26df4:	20001a00 	.word	0x20001a00
   26df8:	20001a78 	.word	0x20001a78

00026dfc <bt_gatt_store_ccc>:
{
   26dfc:	b570      	push	{r4, r5, r6, lr}
   26dfe:	b0c2      	sub	sp, #264	; 0x108
   26e00:	4604      	mov	r4, r0
   26e02:	460d      	mov	r5, r1
	save.addr_with_id.addr = addr;
   26e04:	910f      	str	r1, [sp, #60]	; 0x3c
	save.addr_with_id.id = id;
   26e06:	f88d 0040 	strb.w	r0, [sp, #64]	; 0x40
	save.count = 0;
   26e0a:	2200      	movs	r2, #0
   26e0c:	9241      	str	r2, [sp, #260]	; 0x104
   26e0e:	ab0f      	add	r3, sp, #60	; 0x3c
   26e10:	9302      	str	r3, [sp, #8]
   26e12:	4b1e      	ldr	r3, [pc, #120]	; (26e8c <bt_gatt_store_ccc+0x90>)
   26e14:	9301      	str	r3, [sp, #4]
   26e16:	9200      	str	r2, [sp, #0]
   26e18:	4613      	mov	r3, r2
   26e1a:	f64f 71ff 	movw	r1, #65535	; 0xffff
   26e1e:	2001      	movs	r0, #1
   26e20:	f7ff f95c 	bl	260dc <bt_gatt_foreach_attr_type>
	if (id) {
   26e24:	b18c      	cbz	r4, 26e4a <bt_gatt_store_ccc+0x4e>
		u8_to_dec(id_str, sizeof(id_str), id);
   26e26:	ae05      	add	r6, sp, #20
   26e28:	4622      	mov	r2, r4
   26e2a:	2104      	movs	r1, #4
   26e2c:	4630      	mov	r0, r6
   26e2e:	f7f5 facd 	bl	1c3cc <u8_to_dec>
		bt_settings_encode_key(key, sizeof(key), "ccc", addr, id_str);
   26e32:	9600      	str	r6, [sp, #0]
   26e34:	462b      	mov	r3, r5
   26e36:	4a16      	ldr	r2, [pc, #88]	; (26e90 <bt_gatt_store_ccc+0x94>)
   26e38:	2124      	movs	r1, #36	; 0x24
   26e3a:	a806      	add	r0, sp, #24
   26e3c:	f7f9 fc2c 	bl	20698 <bt_settings_encode_key>
	if (save.count) {
   26e40:	9c41      	ldr	r4, [sp, #260]	; 0x104
   26e42:	b15c      	cbz	r4, 26e5c <bt_gatt_store_ccc+0x60>
		len = save.count * sizeof(*save.store);
   26e44:	00a4      	lsls	r4, r4, #2
		str = (char *)save.store;
   26e46:	a911      	add	r1, sp, #68	; 0x44
   26e48:	e009      	b.n	26e5e <bt_gatt_store_ccc+0x62>
		bt_settings_encode_key(key, sizeof(key), "ccc", addr, NULL);
   26e4a:	2300      	movs	r3, #0
   26e4c:	9300      	str	r3, [sp, #0]
   26e4e:	462b      	mov	r3, r5
   26e50:	4a0f      	ldr	r2, [pc, #60]	; (26e90 <bt_gatt_store_ccc+0x94>)
   26e52:	2124      	movs	r1, #36	; 0x24
   26e54:	a806      	add	r0, sp, #24
   26e56:	f7f9 fc1f 	bl	20698 <bt_settings_encode_key>
   26e5a:	e7f1      	b.n	26e40 <bt_gatt_store_ccc+0x44>
		str = NULL;
   26e5c:	2100      	movs	r1, #0
	err = settings_save_one(key, str, len);
   26e5e:	4622      	mov	r2, r4
   26e60:	a806      	add	r0, sp, #24
   26e62:	f7f7 f97f 	bl	1e164 <settings_save_one>
	if (err) {
   26e66:	4605      	mov	r5, r0
   26e68:	b918      	cbnz	r0, 26e72 <bt_gatt_store_ccc+0x76>
	if (len) {
   26e6a:	b96c      	cbnz	r4, 26e88 <bt_gatt_store_ccc+0x8c>
}
   26e6c:	4628      	mov	r0, r5
   26e6e:	b042      	add	sp, #264	; 0x108
   26e70:	bd70      	pop	{r4, r5, r6, pc}
		BT_ERR("Failed to store CCCs (err %d)", err);
   26e72:	4602      	mov	r2, r0
   26e74:	2145      	movs	r1, #69	; 0x45
   26e76:	4807      	ldr	r0, [pc, #28]	; (26e94 <bt_gatt_store_ccc+0x98>)
   26e78:	f00c fe38 	bl	33aec <z_log_minimal_printk>
		return err;
   26e7c:	e7f6      	b.n	26e6c <bt_gatt_store_ccc+0x70>
		for (size_t i = 0; i < save.count; i++) {
   26e7e:	3301      	adds	r3, #1
   26e80:	9a41      	ldr	r2, [sp, #260]	; 0x104
   26e82:	429a      	cmp	r2, r3
   26e84:	d8fb      	bhi.n	26e7e <bt_gatt_store_ccc+0x82>
   26e86:	e7f1      	b.n	26e6c <bt_gatt_store_ccc+0x70>
   26e88:	2300      	movs	r3, #0
   26e8a:	e7f9      	b.n	26e80 <bt_gatt_store_ccc+0x84>
   26e8c:	000255b5 	.word	0x000255b5
   26e90:	0003e2d8 	.word	0x0003e2d8
   26e94:	0003e3c8 	.word	0x0003e3c8

00026e98 <bt_gatt_disconnected>:

	return 0;
}

void bt_gatt_disconnected(struct bt_conn *conn)
{
   26e98:	b530      	push	{r4, r5, lr}
   26e9a:	b087      	sub	sp, #28
   26e9c:	4604      	mov	r4, r0
   26e9e:	9002      	str	r0, [sp, #8]
   26ea0:	4b19      	ldr	r3, [pc, #100]	; (26f08 <bt_gatt_disconnected+0x70>)
   26ea2:	9301      	str	r3, [sp, #4]
   26ea4:	2200      	movs	r2, #0
   26ea6:	9200      	str	r2, [sp, #0]
   26ea8:	4613      	mov	r3, r2
   26eaa:	f64f 71ff 	movw	r1, #65535	; 0xffff
   26eae:	2001      	movs	r0, #1
   26eb0:	f7ff f914 	bl	260dc <bt_gatt_foreach_attr_type>
		k_work_cancel_delayable(&gatt_ccc_store.work);
	}
#endif

	if (IS_ENABLED(CONFIG_BT_SETTINGS) &&
	    bt_addr_le_is_bonded(conn->id, &conn->le.dst)) {
   26eb4:	f104 0590 	add.w	r5, r4, #144	; 0x90
   26eb8:	4629      	mov	r1, r5
   26eba:	7a20      	ldrb	r0, [r4, #8]
   26ebc:	f00f f90b 	bl	360d6 <bt_addr_le_is_bonded>
	if (IS_ENABLED(CONFIG_BT_SETTINGS) &&
   26ec0:	b948      	cbnz	r0, 26ed6 <bt_gatt_disconnected+0x3e>
		bt_gatt_store_cf(conn);
	}

	/* Make sure to clear the CCC entry when using lazy loading */
	if (IS_ENABLED(CONFIG_BT_SETTINGS_CCC_LAZY_LOADING) &&
	    bt_addr_le_is_bonded(conn->id, &conn->le.dst)) {
   26ec2:	4629      	mov	r1, r5
   26ec4:	7a20      	ldrb	r0, [r4, #8]
   26ec6:	f00f f906 	bl	360d6 <bt_addr_le_is_bonded>
	if (IS_ENABLED(CONFIG_BT_SETTINGS_CCC_LAZY_LOADING) &&
   26eca:	b960      	cbnz	r0, 26ee6 <bt_gatt_disconnected+0x4e>
#if defined(CONFIG_BT_GATT_CLIENT)
	remove_subscriptions(conn);
#endif /* CONFIG_BT_GATT_CLIENT */

#if defined(CONFIG_BT_GATT_CACHING)
	remove_cf_cfg(conn);
   26ecc:	4620      	mov	r0, r4
   26ece:	f010 fe9d 	bl	37c0c <remove_cf_cfg>
#endif
}
   26ed2:	b007      	add	sp, #28
   26ed4:	bd30      	pop	{r4, r5, pc}
		bt_gatt_store_ccc(conn->id, &conn->le.dst);
   26ed6:	4629      	mov	r1, r5
   26ed8:	7a20      	ldrb	r0, [r4, #8]
   26eda:	f7ff ff8f 	bl	26dfc <bt_gatt_store_ccc>
		bt_gatt_store_cf(conn);
   26ede:	4620      	mov	r0, r4
   26ee0:	f7fe fd00 	bl	258e4 <bt_gatt_store_cf>
   26ee4:	e7ed      	b.n	26ec2 <bt_gatt_disconnected+0x2a>
		struct addr_with_id addr_with_id = {
   26ee6:	9504      	str	r5, [sp, #16]
			.id = conn->id,
   26ee8:	7a23      	ldrb	r3, [r4, #8]
		struct addr_with_id addr_with_id = {
   26eea:	f88d 3014 	strb.w	r3, [sp, #20]
   26eee:	ab04      	add	r3, sp, #16
   26ef0:	9302      	str	r3, [sp, #8]
   26ef2:	4b06      	ldr	r3, [pc, #24]	; (26f0c <bt_gatt_disconnected+0x74>)
   26ef4:	9301      	str	r3, [sp, #4]
   26ef6:	2200      	movs	r2, #0
   26ef8:	9200      	str	r2, [sp, #0]
   26efa:	4613      	mov	r3, r2
   26efc:	f64f 71ff 	movw	r1, #65535	; 0xffff
   26f00:	2001      	movs	r0, #1
   26f02:	f7ff f8eb 	bl	260dc <bt_gatt_foreach_attr_type>
   26f06:	e7e1      	b.n	26ecc <bt_gatt_disconnected+0x34>
   26f08:	00025d3d 	.word	0x00025d3d
   26f0c:	00025a05 	.word	0x00025a05

00026f10 <le_sc_supported>:
	 */
	if (IS_ENABLED(CONFIG_BT_SMP_OOB_LEGACY_PAIR_ONLY)) {
		return false;
	}

	return BT_CMD_TEST(bt_dev.supported_commands, 34, 1) &&
   26f10:	4b04      	ldr	r3, [pc, #16]	; (26f24 <le_sc_supported+0x14>)
   26f12:	f893 009a 	ldrb.w	r0, [r3, #154]	; 0x9a
   26f16:	f000 0006 	and.w	r0, r0, #6
	       BT_CMD_TEST(bt_dev.supported_commands, 34, 2);
}
   26f1a:	2806      	cmp	r0, #6
   26f1c:	bf14      	ite	ne
   26f1e:	2000      	movne	r0, #0
   26f20:	2001      	moveq	r0, #1
   26f22:	4770      	bx	lr
   26f24:	200002a8 	.word	0x200002a8

00026f28 <get_io_capa>:

static uint8_t get_io_capa(void)
{
	if (!bt_auth) {
   26f28:	4b11      	ldr	r3, [pc, #68]	; (26f70 <get_io_capa+0x48>)
   26f2a:	681b      	ldr	r3, [r3, #0]
   26f2c:	b1bb      	cbz	r3, 26f5e <get_io_capa+0x36>
		goto no_callbacks;
	}

	/* Passkey Confirmation is valid only for LE SC */
	if (bt_auth->passkey_display && bt_auth->passkey_entry &&
   26f2e:	681a      	ldr	r2, [r3, #0]
   26f30:	b132      	cbz	r2, 26f40 <get_io_capa+0x18>
   26f32:	6859      	ldr	r1, [r3, #4]
   26f34:	b121      	cbz	r1, 26f40 <get_io_capa+0x18>
	    (bt_auth->passkey_confirm || !sc_supported)) {
   26f36:	6899      	ldr	r1, [r3, #8]
	if (bt_auth->passkey_display && bt_auth->passkey_entry &&
   26f38:	b999      	cbnz	r1, 26f62 <get_io_capa+0x3a>
	    (bt_auth->passkey_confirm || !sc_supported)) {
   26f3a:	490e      	ldr	r1, [pc, #56]	; (26f74 <get_io_capa+0x4c>)
   26f3c:	7809      	ldrb	r1, [r1, #0]
   26f3e:	b191      	cbz	r1, 26f66 <get_io_capa+0x3e>
		return BT_SMP_IO_KEYBOARD_DISPLAY;
	}

	/* DisplayYesNo is useful only for LE SC */
	if (sc_supported && bt_auth->passkey_display &&
   26f40:	490c      	ldr	r1, [pc, #48]	; (26f74 <get_io_capa+0x4c>)
   26f42:	7809      	ldrb	r1, [r1, #0]
   26f44:	b121      	cbz	r1, 26f50 <get_io_capa+0x28>
   26f46:	b11a      	cbz	r2, 26f50 <get_io_capa+0x28>
	    bt_auth->passkey_confirm) {
   26f48:	6899      	ldr	r1, [r3, #8]
	if (sc_supported && bt_auth->passkey_display &&
   26f4a:	b109      	cbz	r1, 26f50 <get_io_capa+0x28>
		return BT_SMP_IO_DISPLAY_YESNO;
   26f4c:	2001      	movs	r0, #1
   26f4e:	4770      	bx	lr
	}

	if (bt_auth->passkey_entry) {
   26f50:	685b      	ldr	r3, [r3, #4]
   26f52:	b953      	cbnz	r3, 26f6a <get_io_capa+0x42>
		} else {
			return BT_SMP_IO_KEYBOARD_ONLY;
		}
	}

	if (bt_auth->passkey_display) {
   26f54:	b10a      	cbz	r2, 26f5a <get_io_capa+0x32>
		return BT_SMP_IO_DISPLAY_ONLY;
   26f56:	2000      	movs	r0, #0
	    fixed_passkey != BT_PASSKEY_INVALID) {
		return BT_SMP_IO_DISPLAY_ONLY;
	} else {
		return BT_SMP_IO_NO_INPUT_OUTPUT;
	}
}
   26f58:	4770      	bx	lr
		return BT_SMP_IO_NO_INPUT_OUTPUT;
   26f5a:	2003      	movs	r0, #3
   26f5c:	4770      	bx	lr
   26f5e:	2003      	movs	r0, #3
   26f60:	4770      	bx	lr
		return BT_SMP_IO_KEYBOARD_DISPLAY;
   26f62:	2004      	movs	r0, #4
   26f64:	4770      	bx	lr
   26f66:	2004      	movs	r0, #4
   26f68:	4770      	bx	lr
			return BT_SMP_IO_KEYBOARD_ONLY;
   26f6a:	2002      	movs	r0, #2
   26f6c:	4770      	bx	lr
   26f6e:	bf00      	nop
   26f70:	200022e4 	.word	0x200022e4
   26f74:	200034ed 	.word	0x200034ed

00026f78 <legacy_get_pair_method>:
static uint8_t legacy_get_pair_method(struct bt_smp *smp, uint8_t remote_io)
{
	struct bt_smp_pairing *req, *rsp;
	uint8_t method;

	if (remote_io > BT_SMP_IO_KEYBOARD_DISPLAY) {
   26f78:	2904      	cmp	r1, #4
   26f7a:	d820      	bhi.n	26fbe <legacy_get_pair_method+0x46>
{
   26f7c:	b538      	push	{r3, r4, r5, lr}
   26f7e:	4604      	mov	r4, r0
   26f80:	460d      	mov	r5, r1

	req = (struct bt_smp_pairing *)&smp->preq[1];
	rsp = (struct bt_smp_pairing *)&smp->prsp[1];

	/* if both sides have OOB data use OOB */
	if ((req->oob_flag & rsp->oob_flag) & BT_SMP_OOB_DATA_MASK) {
   26f82:	7ac3      	ldrb	r3, [r0, #11]
   26f84:	7c82      	ldrb	r2, [r0, #18]
   26f86:	4013      	ands	r3, r2
   26f88:	f013 0f01 	tst.w	r3, #1
   26f8c:	d119      	bne.n	26fc2 <legacy_get_pair_method+0x4a>
		return LEGACY_OOB;
	}

	/* if none side requires MITM use JustWorks */
	if (!((req->auth_req | rsp->auth_req) & BT_SMP_AUTH_MITM)) {
   26f8e:	7b00      	ldrb	r0, [r0, #12]
   26f90:	7ce3      	ldrb	r3, [r4, #19]
   26f92:	4318      	orrs	r0, r3
   26f94:	f010 0004 	ands.w	r0, r0, #4
   26f98:	d008      	beq.n	26fac <legacy_get_pair_method+0x34>
		return JUST_WORKS;
	}

	method = gen_method_legacy[remote_io][get_io_capa()];
   26f9a:	f7ff ffc5 	bl	26f28 <get_io_capa>
   26f9e:	eb05 0585 	add.w	r5, r5, r5, lsl #2
   26fa2:	4909      	ldr	r1, [pc, #36]	; (26fc8 <legacy_get_pair_method+0x50>)
   26fa4:	440d      	add	r5, r1
   26fa6:	5c28      	ldrb	r0, [r5, r0]

	/* if both sides have KeyboardDisplay capabilities, initiator displays
	 * and responder inputs
	 */
	if (method == PASSKEY_ROLE) {
   26fa8:	2804      	cmp	r0, #4
   26faa:	d000      	beq.n	26fae <legacy_get_pair_method+0x36>
			method = PASSKEY_INPUT;
		}
	}

	return method;
}
   26fac:	bd38      	pop	{r3, r4, r5, pc}
		if (smp->chan.chan.conn->role == BT_HCI_ROLE_CENTRAL) {
   26fae:	f8d4 30f0 	ldr.w	r3, [r4, #240]	; 0xf0
   26fb2:	78db      	ldrb	r3, [r3, #3]
   26fb4:	b10b      	cbz	r3, 26fba <legacy_get_pair_method+0x42>
			method = PASSKEY_INPUT;
   26fb6:	2001      	movs	r0, #1
   26fb8:	e7f8      	b.n	26fac <legacy_get_pair_method+0x34>
			method = PASSKEY_DISPLAY;
   26fba:	2002      	movs	r0, #2
   26fbc:	e7f6      	b.n	26fac <legacy_get_pair_method+0x34>
		return JUST_WORKS;
   26fbe:	2000      	movs	r0, #0
}
   26fc0:	4770      	bx	lr
		return LEGACY_OOB;
   26fc2:	2006      	movs	r0, #6
   26fc4:	e7f2      	b.n	26fac <legacy_get_pair_method+0x34>
   26fc6:	bf00      	nop
   26fc8:	0003e90c 	.word	0x0003e90c

00026fcc <get_auth>:
{
	oobd_present = enable;
}

static uint8_t get_auth(struct bt_conn *conn, uint8_t auth)
{
   26fcc:	b510      	push	{r4, lr}
	if (sc_supported) {
   26fce:	4b0d      	ldr	r3, [pc, #52]	; (27004 <get_auth+0x38>)
   26fd0:	781b      	ldrb	r3, [r3, #0]
   26fd2:	b16b      	cbz	r3, 26ff0 <get_auth+0x24>
		auth &= BT_SMP_AUTH_MASK_SC;
   26fd4:	f001 040f 	and.w	r4, r1, #15
	} else {
		auth &= BT_SMP_AUTH_MASK;
	}

	if ((get_io_capa() == BT_SMP_IO_NO_INPUT_OUTPUT) ||
   26fd8:	f7ff ffa6 	bl	26f28 <get_io_capa>
   26fdc:	2803      	cmp	r0, #3
   26fde:	d00a      	beq.n	26ff6 <get_auth+0x2a>
	    (!IS_ENABLED(CONFIG_BT_SMP_ENFORCE_MITM) &&
	    (conn->required_sec_level < BT_SECURITY_L3))) {
		auth &= ~(BT_SMP_AUTH_MITM);
	} else {
		auth |= BT_SMP_AUTH_MITM;
   26fe0:	f044 0004 	orr.w	r0, r4, #4
	}

	if (bondable) {
   26fe4:	4b08      	ldr	r3, [pc, #32]	; (27008 <get_auth+0x3c>)
   26fe6:	781b      	ldrb	r3, [r3, #0]
   26fe8:	b143      	cbz	r3, 26ffc <get_auth+0x30>
		auth |= BT_SMP_AUTH_BONDING;
   26fea:	f040 0001 	orr.w	r0, r0, #1
	} else {
		auth &= ~BT_SMP_AUTH_BONDING;
	}

	return auth;
}
   26fee:	bd10      	pop	{r4, pc}
		auth &= BT_SMP_AUTH_MASK;
   26ff0:	f001 0407 	and.w	r4, r1, #7
   26ff4:	e7f0      	b.n	26fd8 <get_auth+0xc>
		auth &= ~(BT_SMP_AUTH_MITM);
   26ff6:	f004 000b 	and.w	r0, r4, #11
   26ffa:	e7f3      	b.n	26fe4 <get_auth+0x18>
		auth &= ~BT_SMP_AUTH_BONDING;
   26ffc:	f000 00fe 	and.w	r0, r0, #254	; 0xfe
   27000:	e7f5      	b.n	26fee <get_auth+0x22>
   27002:	bf00      	nop
   27004:	200034ed 	.word	0x200034ed
   27008:	2000077c 	.word	0x2000077c

0002700c <sec_level_reachable>:
		return BT_SMP_ERR_UNSPECIFIED;
	}
}

static bool sec_level_reachable(struct bt_conn *conn)
{
   2700c:	b508      	push	{r3, lr}
	switch (conn->required_sec_level) {
   2700e:	7a83      	ldrb	r3, [r0, #10]
   27010:	2b03      	cmp	r3, #3
   27012:	d015      	beq.n	27040 <sec_level_reachable+0x34>
   27014:	d807      	bhi.n	27026 <sec_level_reachable+0x1a>
   27016:	3b01      	subs	r3, #1
   27018:	b2db      	uxtb	r3, r3
   2701a:	2b01      	cmp	r3, #1
   2701c:	d801      	bhi.n	27022 <sec_level_reachable+0x16>
   2701e:	2001      	movs	r0, #1
		return (get_io_capa() != BT_SMP_IO_NO_INPUT_OUTPUT ||
			(bt_auth && bt_auth->oob_data_request)) && sc_supported;
	default:
		return false;
	}
}
   27020:	bd08      	pop	{r3, pc}
		return false;
   27022:	2000      	movs	r0, #0
   27024:	e7fc      	b.n	27020 <sec_level_reachable+0x14>
	switch (conn->required_sec_level) {
   27026:	2b04      	cmp	r3, #4
   27028:	d108      	bne.n	2703c <sec_level_reachable+0x30>
		return (get_io_capa() != BT_SMP_IO_NO_INPUT_OUTPUT ||
   2702a:	f7ff ff7d 	bl	26f28 <get_io_capa>
			(bt_auth && bt_auth->oob_data_request)) && sc_supported;
   2702e:	2803      	cmp	r0, #3
   27030:	d017      	beq.n	27062 <sec_level_reachable+0x56>
   27032:	4b12      	ldr	r3, [pc, #72]	; (2707c <sec_level_reachable+0x70>)
   27034:	781b      	ldrb	r3, [r3, #0]
   27036:	b9f3      	cbnz	r3, 27076 <sec_level_reachable+0x6a>
   27038:	2000      	movs	r0, #0
   2703a:	e7f1      	b.n	27020 <sec_level_reachable+0x14>
		return false;
   2703c:	2000      	movs	r0, #0
   2703e:	e7ef      	b.n	27020 <sec_level_reachable+0x14>
		return get_io_capa() != BT_SMP_IO_NO_INPUT_OUTPUT ||
   27040:	f7ff ff72 	bl	26f28 <get_io_capa>
   27044:	2803      	cmp	r0, #3
   27046:	d001      	beq.n	2704c <sec_level_reachable+0x40>
   27048:	2001      	movs	r0, #1
   2704a:	e7e9      	b.n	27020 <sec_level_reachable+0x14>
		       (bt_auth && bt_auth->oob_data_request);
   2704c:	4b0c      	ldr	r3, [pc, #48]	; (27080 <sec_level_reachable+0x74>)
   2704e:	681b      	ldr	r3, [r3, #0]
		return get_io_capa() != BT_SMP_IO_NO_INPUT_OUTPUT ||
   27050:	b12b      	cbz	r3, 2705e <sec_level_reachable+0x52>
		       (bt_auth && bt_auth->oob_data_request);
   27052:	68db      	ldr	r3, [r3, #12]
   27054:	b10b      	cbz	r3, 2705a <sec_level_reachable+0x4e>
		return get_io_capa() != BT_SMP_IO_NO_INPUT_OUTPUT ||
   27056:	2001      	movs	r0, #1
   27058:	e7e2      	b.n	27020 <sec_level_reachable+0x14>
   2705a:	2000      	movs	r0, #0
   2705c:	e7e0      	b.n	27020 <sec_level_reachable+0x14>
   2705e:	2000      	movs	r0, #0
   27060:	e7de      	b.n	27020 <sec_level_reachable+0x14>
			(bt_auth && bt_auth->oob_data_request)) && sc_supported;
   27062:	4b07      	ldr	r3, [pc, #28]	; (27080 <sec_level_reachable+0x74>)
   27064:	681b      	ldr	r3, [r3, #0]
		return (get_io_capa() != BT_SMP_IO_NO_INPUT_OUTPUT ||
   27066:	b123      	cbz	r3, 27072 <sec_level_reachable+0x66>
			(bt_auth && bt_auth->oob_data_request)) && sc_supported;
   27068:	68db      	ldr	r3, [r3, #12]
   2706a:	2b00      	cmp	r3, #0
   2706c:	d1e1      	bne.n	27032 <sec_level_reachable+0x26>
   2706e:	2000      	movs	r0, #0
   27070:	e7d6      	b.n	27020 <sec_level_reachable+0x14>
   27072:	2000      	movs	r0, #0
   27074:	e7d4      	b.n	27020 <sec_level_reachable+0x14>
   27076:	2001      	movs	r0, #1
   27078:	e7d2      	b.n	27020 <sec_level_reachable+0x14>
   2707a:	bf00      	nop
   2707c:	200034ed 	.word	0x200034ed
   27080:	200022e4 	.word	0x200022e4

00027084 <smp_chan_get>:

static struct bt_smp *smp_chan_get(struct bt_conn *conn)
{
   27084:	b510      	push	{r4, lr}
	struct bt_l2cap_chan *chan;

	chan = bt_l2cap_le_lookup_rx_cid(conn, BT_L2CAP_CID_SMP);
   27086:	2106      	movs	r1, #6
   27088:	f00f fdc1 	bl	36c0e <bt_l2cap_le_lookup_rx_cid>
	if (!chan) {
   2708c:	4604      	mov	r4, r0
   2708e:	b118      	cbz	r0, 27098 <smp_chan_get+0x14>
		BT_ERR("Unable to find SMP channel");
		return NULL;
	}

	return CONTAINER_OF(chan, struct bt_smp, chan);
   27090:	f1a0 04f0 	sub.w	r4, r0, #240	; 0xf0
}
   27094:	4620      	mov	r0, r4
   27096:	bd10      	pop	{r4, pc}
		BT_ERR("Unable to find SMP channel");
   27098:	2145      	movs	r1, #69	; 0x45
   2709a:	4802      	ldr	r0, [pc, #8]	; (270a4 <smp_chan_get+0x20>)
   2709c:	f00c fd26 	bl	33aec <z_log_minimal_printk>
		return NULL;
   270a0:	e7f8      	b.n	27094 <smp_chan_get+0x10>
   270a2:	bf00      	nop
   270a4:	0003e530 	.word	0x0003e530

000270a8 <bt_smp_accept>:
		conn->le.keys->flags &= ~BT_KEYS_SC;
	}
}

static int bt_smp_accept(struct bt_conn *conn, struct bt_l2cap_chan **chan)
{
   270a8:	b510      	push	{r4, lr}
   270aa:	4602      	mov	r2, r0
		.recv = bt_smp_recv,
	};

	BT_DBG("conn %p handle %u", conn, conn->handle);

	for (i = 0; i < ARRAY_SIZE(bt_smp_pool); i++) {
   270ac:	2300      	movs	r3, #0
   270ae:	2b00      	cmp	r3, #0
   270b0:	dd06      	ble.n	270c0 <bt_smp_accept+0x18>
		*chan = &smp->chan.chan;

		return 0;
	}

	BT_ERR("No available SMP context for conn %p", conn);
   270b2:	2145      	movs	r1, #69	; 0x45
   270b4:	480f      	ldr	r0, [pc, #60]	; (270f4 <bt_smp_accept+0x4c>)
   270b6:	f00c fd19 	bl	33aec <z_log_minimal_printk>

	return -ENOMEM;
   270ba:	f06f 000b 	mvn.w	r0, #11
}
   270be:	bd10      	pop	{r4, pc}
		if (smp->chan.chan.conn) {
   270c0:	eb03 1043 	add.w	r0, r3, r3, lsl #5
   270c4:	4c0c      	ldr	r4, [pc, #48]	; (270f8 <bt_smp_accept+0x50>)
   270c6:	eb04 1000 	add.w	r0, r4, r0, lsl #4
   270ca:	f8d0 00f0 	ldr.w	r0, [r0, #240]	; 0xf0
   270ce:	b108      	cbz	r0, 270d4 <bt_smp_accept+0x2c>
	for (i = 0; i < ARRAY_SIZE(bt_smp_pool); i++) {
   270d0:	3301      	adds	r3, #1
   270d2:	e7ec      	b.n	270ae <bt_smp_accept+0x6>
		smp->chan.chan.ops = &ops;
   270d4:	4a08      	ldr	r2, [pc, #32]	; (270f8 <bt_smp_accept+0x50>)
   270d6:	eb03 1043 	add.w	r0, r3, r3, lsl #5
   270da:	eb02 1000 	add.w	r0, r2, r0, lsl #4
   270de:	4c07      	ldr	r4, [pc, #28]	; (270fc <bt_smp_accept+0x54>)
   270e0:	f8c0 40f4 	str.w	r4, [r0, #244]	; 0xf4
		*chan = &smp->chan.chan;
   270e4:	eb03 1343 	add.w	r3, r3, r3, lsl #5
   270e8:	011b      	lsls	r3, r3, #4
   270ea:	33f0      	adds	r3, #240	; 0xf0
   270ec:	4413      	add	r3, r2
   270ee:	600b      	str	r3, [r1, #0]
		return 0;
   270f0:	2000      	movs	r0, #0
   270f2:	e7e4      	b.n	270be <bt_smp_accept+0x16>
   270f4:	0003e550 	.word	0x0003e550
   270f8:	20001ad0 	.word	0x20001ad0
   270fc:	0003e9bc 	.word	0x0003e9bc

00027100 <smp_find>:
	for (int i = 0; i < ARRAY_SIZE(bt_smp_pool); i++) {
   27100:	2300      	movs	r3, #0
   27102:	2b00      	cmp	r3, #0
   27104:	dd01      	ble.n	2710a <smp_find+0xa>
	return NULL;
   27106:	2000      	movs	r0, #0
}
   27108:	4770      	bx	lr
		if (atomic_test_bit(bt_smp_pool[i].flags, flag)) {
   2710a:	eb03 1243 	add.w	r2, r3, r3, lsl #5
   2710e:	490c      	ldr	r1, [pc, #48]	; (27140 <smp_find+0x40>)
   27110:	eb01 1202 	add.w	r2, r1, r2, lsl #4
   27114:	3204      	adds	r2, #4
	atomic_val_t val = atomic_get(ATOMIC_ELEM(target, bit));
   27116:	0941      	lsrs	r1, r0, #5
   27118:	f3bf 8f5b 	dmb	ish
   2711c:	f852 2021 	ldr.w	r2, [r2, r1, lsl #2]
   27120:	f3bf 8f5b 	dmb	ish
	return (1 & (val >> (bit & (ATOMIC_BITS - 1)))) != 0;
   27124:	f000 011f 	and.w	r1, r0, #31
   27128:	410a      	asrs	r2, r1
   2712a:	f012 0f01 	tst.w	r2, #1
   2712e:	d101      	bne.n	27134 <smp_find+0x34>
	for (int i = 0; i < ARRAY_SIZE(bt_smp_pool); i++) {
   27130:	3301      	adds	r3, #1
   27132:	e7e6      	b.n	27102 <smp_find+0x2>
			return &bt_smp_pool[i];
   27134:	eb03 1343 	add.w	r3, r3, r3, lsl #5
   27138:	4801      	ldr	r0, [pc, #4]	; (27140 <smp_find+0x40>)
   2713a:	eb00 1003 	add.w	r0, r0, r3, lsl #4
   2713e:	4770      	bx	lr
   27140:	20001ad0 	.word	0x20001ad0

00027144 <get_pair_method>:
{
   27144:	b510      	push	{r4, lr}
   27146:	460c      	mov	r4, r1
   27148:	f3bf 8f5b 	dmb	ish
   2714c:	6843      	ldr	r3, [r0, #4]
   2714e:	f3bf 8f5b 	dmb	ish
	if (!atomic_test_bit(smp->flags, SMP_FLAG_SC)) {
   27152:	f013 0f20 	tst.w	r3, #32
   27156:	d01b      	beq.n	27190 <get_pair_method+0x4c>
	if ((req->auth_req & rsp->auth_req) & BT_SMP_AUTH_SC) {
   27158:	7b03      	ldrb	r3, [r0, #12]
   2715a:	7cc2      	ldrb	r2, [r0, #19]
   2715c:	ea03 0102 	and.w	r1, r3, r2
   27160:	f011 0f08 	tst.w	r1, #8
   27164:	d005      	beq.n	27172 <get_pair_method+0x2e>
		if ((req->oob_flag | rsp->oob_flag) & BT_SMP_OOB_DATA_MASK) {
   27166:	7ac1      	ldrb	r1, [r0, #11]
   27168:	7c80      	ldrb	r0, [r0, #18]
   2716a:	4301      	orrs	r1, r0
   2716c:	f011 0f01 	tst.w	r1, #1
   27170:	d111      	bne.n	27196 <get_pair_method+0x52>
	if (remote_io > BT_SMP_IO_KEYBOARD_DISPLAY) {
   27172:	2c04      	cmp	r4, #4
   27174:	d811      	bhi.n	2719a <get_pair_method+0x56>
	if (!((req->auth_req | rsp->auth_req) & BT_SMP_AUTH_MITM)) {
   27176:	ea43 0002 	orr.w	r0, r3, r2
   2717a:	f010 0004 	ands.w	r0, r0, #4
   2717e:	d009      	beq.n	27194 <get_pair_method+0x50>
	return gen_method_sc[remote_io][get_io_capa()];
   27180:	f7ff fed2 	bl	26f28 <get_io_capa>
   27184:	eb04 0484 	add.w	r4, r4, r4, lsl #2
   27188:	4905      	ldr	r1, [pc, #20]	; (271a0 <get_pair_method+0x5c>)
   2718a:	440c      	add	r4, r1
   2718c:	5c20      	ldrb	r0, [r4, r0]
   2718e:	e001      	b.n	27194 <get_pair_method+0x50>
		return legacy_get_pair_method(smp, remote_io);
   27190:	f7ff fef2 	bl	26f78 <legacy_get_pair_method>
}
   27194:	bd10      	pop	{r4, pc}
			return LE_SC_OOB;
   27196:	2005      	movs	r0, #5
   27198:	e7fc      	b.n	27194 <get_pair_method+0x50>
		return JUST_WORKS;
   2719a:	2000      	movs	r0, #0
   2719c:	e7fa      	b.n	27194 <get_pair_method+0x50>
   2719e:	bf00      	nop
   271a0:	0003e928 	.word	0x0003e928

000271a4 <legacy_pairing_random>:
{
   271a4:	b570      	push	{r4, r5, r6, lr}
   271a6:	b088      	sub	sp, #32
   271a8:	4604      	mov	r4, r0
	struct bt_conn *conn = smp->chan.chan.conn;
   271aa:	f8d0 30f0 	ldr.w	r3, [r0, #240]	; 0xf0
	err = smp_c1(smp->tk, smp->rrnd, smp->preq, smp->prsp,
   271ae:	f100 0547 	add.w	r5, r0, #71	; 0x47
   271b2:	f100 0637 	add.w	r6, r0, #55	; 0x37
		     &conn->le.init_addr, &conn->le.resp_addr, tmp);
   271b6:	f103 0297 	add.w	r2, r3, #151	; 0x97
   271ba:	339e      	adds	r3, #158	; 0x9e
	err = smp_c1(smp->tk, smp->rrnd, smp->preq, smp->prsp,
   271bc:	a904      	add	r1, sp, #16
   271be:	9102      	str	r1, [sp, #8]
   271c0:	9301      	str	r3, [sp, #4]
   271c2:	9200      	str	r2, [sp, #0]
   271c4:	f100 0310 	add.w	r3, r0, #16
   271c8:	f100 0209 	add.w	r2, r0, #9
   271cc:	4631      	mov	r1, r6
   271ce:	4628      	mov	r0, r5
   271d0:	f011 f828 	bl	38224 <smp_c1>
	if (err) {
   271d4:	bb68      	cbnz	r0, 27232 <legacy_pairing_random+0x8e>
	if (memcmp(smp->pcnf, tmp, sizeof(smp->pcnf))) {
   271d6:	2210      	movs	r2, #16
   271d8:	eb0d 0102 	add.w	r1, sp, r2
   271dc:	f104 0017 	add.w	r0, r4, #23
   271e0:	f00e fc75 	bl	35ace <memcmp>
   271e4:	bb38      	cbnz	r0, 27236 <legacy_pairing_random+0x92>
		err = smp_s1(smp->tk, smp->prnd, smp->rrnd, tmp);
   271e6:	ab04      	add	r3, sp, #16
   271e8:	4632      	mov	r2, r6
   271ea:	f104 0127 	add.w	r1, r4, #39	; 0x27
   271ee:	4628      	mov	r0, r5
   271f0:	f011 f862 	bl	382b8 <smp_s1>
		if (err) {
   271f4:	b9b8      	cbnz	r0, 27226 <legacy_pairing_random+0x82>
		memcpy(smp->tk, tmp, sizeof(smp->tk));
   271f6:	2210      	movs	r2, #16
   271f8:	eb0d 0102 	add.w	r1, sp, r2
   271fc:	4628      	mov	r0, r5
   271fe:	f00e fc7d 	bl	35afc <memcpy>
		atomic_set_bit(smp->flags, SMP_FLAG_ENC_PENDING);
   27202:	1d23      	adds	r3, r4, #4
	return __atomic_fetch_or(target, value, __ATOMIC_SEQ_CST);
   27204:	f3bf 8f5b 	dmb	ish
   27208:	e853 2f00 	ldrex	r2, [r3]
   2720c:	f042 0202 	orr.w	r2, r2, #2
   27210:	e843 2100 	strex	r1, r2, [r3]
   27214:	2900      	cmp	r1, #0
   27216:	d1f7      	bne.n	27208 <legacy_pairing_random+0x64>
   27218:	f3bf 8f5b 	dmb	ish
		return smp_send_pairing_random(smp);
   2721c:	4620      	mov	r0, r4
   2721e:	f011 f924 	bl	3846a <smp_send_pairing_random>
}
   27222:	b008      	add	sp, #32
   27224:	bd70      	pop	{r4, r5, r6, pc}
			BT_ERR("Calculate STK failed");
   27226:	2145      	movs	r1, #69	; 0x45
   27228:	4804      	ldr	r0, [pc, #16]	; (2723c <legacy_pairing_random+0x98>)
   2722a:	f00c fc5f 	bl	33aec <z_log_minimal_printk>
			return BT_SMP_ERR_UNSPECIFIED;
   2722e:	2008      	movs	r0, #8
   27230:	e7f7      	b.n	27222 <legacy_pairing_random+0x7e>
		return BT_SMP_ERR_UNSPECIFIED;
   27232:	2008      	movs	r0, #8
   27234:	e7f5      	b.n	27222 <legacy_pairing_random+0x7e>
		return BT_SMP_ERR_CONFIRM_FAILED;
   27236:	2004      	movs	r0, #4
   27238:	e7f3      	b.n	27222 <legacy_pairing_random+0x7e>
   2723a:	bf00      	nop
   2723c:	0003e57c 	.word	0x0003e57c

00027240 <sc_send_public_key>:
{
   27240:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
   27242:	4604      	mov	r4, r0
	req_buf = smp_create_pdu(smp, BT_SMP_CMD_PUBLIC_KEY, sizeof(*req));
   27244:	2240      	movs	r2, #64	; 0x40
   27246:	210c      	movs	r1, #12
   27248:	f011 f84a 	bl	382e0 <smp_create_pdu>
	if (!req_buf) {
   2724c:	b1c0      	cbz	r0, 27280 <sc_send_public_key+0x40>
   2724e:	4606      	mov	r6, r0
   27250:	2140      	movs	r1, #64	; 0x40
   27252:	3008      	adds	r0, #8
   27254:	f002 fb9c 	bl	29990 <net_buf_simple_add>
   27258:	4605      	mov	r5, r0
	memcpy(req->x, sc_public_key, sizeof(req->x));
   2725a:	4f0a      	ldr	r7, [pc, #40]	; (27284 <sc_send_public_key+0x44>)
   2725c:	2220      	movs	r2, #32
   2725e:	6839      	ldr	r1, [r7, #0]
   27260:	f00e fc4c 	bl	35afc <memcpy>
	memcpy(req->y, &sc_public_key[32], sizeof(req->y));
   27264:	6839      	ldr	r1, [r7, #0]
   27266:	2220      	movs	r2, #32
   27268:	4411      	add	r1, r2
   2726a:	18a8      	adds	r0, r5, r2
   2726c:	f00e fc46 	bl	35afc <memcpy>
	smp_send(smp, req_buf, NULL, NULL);
   27270:	2300      	movs	r3, #0
   27272:	461a      	mov	r2, r3
   27274:	4631      	mov	r1, r6
   27276:	4620      	mov	r0, r4
   27278:	f011 f85d 	bl	38336 <smp_send>
	return 0;
   2727c:	2000      	movs	r0, #0
}
   2727e:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
		return BT_SMP_ERR_UNSPECIFIED;
   27280:	2008      	movs	r0, #8
   27282:	e7fc      	b.n	2727e <sc_send_public_key+0x3e>
   27284:	200023a0 	.word	0x200023a0

00027288 <display_passkey>:
{
   27288:	b510      	push	{r4, lr}
   2728a:	4604      	mov	r4, r0
		if (bt_rand(&smp->passkey, sizeof(smp->passkey))) {
   2728c:	2104      	movs	r1, #4
   2728e:	30d8      	adds	r0, #216	; 0xd8
   27290:	f005 f8f0 	bl	2c474 <bt_rand>
   27294:	bb48      	cbnz	r0, 272ea <display_passkey+0x62>
		smp->passkey %= 1000000;
   27296:	f8d4 20d8 	ldr.w	r2, [r4, #216]	; 0xd8
   2729a:	4b15      	ldr	r3, [pc, #84]	; (272f0 <display_passkey+0x68>)
   2729c:	fba3 1302 	umull	r1, r3, r3, r2
   272a0:	0c9b      	lsrs	r3, r3, #18
   272a2:	4914      	ldr	r1, [pc, #80]	; (272f4 <display_passkey+0x6c>)
   272a4:	fb01 2313 	mls	r3, r1, r3, r2
   272a8:	f8c4 30d8 	str.w	r3, [r4, #216]	; 0xd8
	smp->passkey_round = 0U;
   272ac:	2300      	movs	r3, #0
   272ae:	f884 30dc 	strb.w	r3, [r4, #220]	; 0xdc
	if (bt_auth && bt_auth->passkey_display) {
   272b2:	4b11      	ldr	r3, [pc, #68]	; (272f8 <display_passkey+0x70>)
   272b4:	681b      	ldr	r3, [r3, #0]
   272b6:	b1b3      	cbz	r3, 272e6 <display_passkey+0x5e>
   272b8:	681b      	ldr	r3, [r3, #0]
   272ba:	b1a3      	cbz	r3, 272e6 <display_passkey+0x5e>
		atomic_set_bit(smp->flags, SMP_FLAG_DISPLAY);
   272bc:	1d23      	adds	r3, r4, #4
   272be:	f3bf 8f5b 	dmb	ish
   272c2:	e853 2f00 	ldrex	r2, [r3]
   272c6:	f442 6200 	orr.w	r2, r2, #2048	; 0x800
   272ca:	e843 2100 	strex	r1, r2, [r3]
   272ce:	2900      	cmp	r1, #0
   272d0:	d1f7      	bne.n	272c2 <display_passkey+0x3a>
   272d2:	f3bf 8f5b 	dmb	ish
		bt_auth->passkey_display(smp->chan.chan.conn, smp->passkey);
   272d6:	4b08      	ldr	r3, [pc, #32]	; (272f8 <display_passkey+0x70>)
   272d8:	681b      	ldr	r3, [r3, #0]
   272da:	681b      	ldr	r3, [r3, #0]
   272dc:	f8d4 10d8 	ldr.w	r1, [r4, #216]	; 0xd8
   272e0:	f8d4 00f0 	ldr.w	r0, [r4, #240]	; 0xf0
   272e4:	4798      	blx	r3
	return 0;
   272e6:	2000      	movs	r0, #0
}
   272e8:	bd10      	pop	{r4, pc}
			return BT_SMP_ERR_UNSPECIFIED;
   272ea:	2008      	movs	r0, #8
   272ec:	e7fc      	b.n	272e8 <display_passkey+0x60>
   272ee:	bf00      	nop
   272f0:	431bde83 	.word	0x431bde83
   272f4:	000f4240 	.word	0x000f4240
   272f8:	200022e4 	.word	0x200022e4

000272fc <smp_init>:
{
   272fc:	b538      	push	{r3, r4, r5, lr}
   272fe:	4604      	mov	r4, r0
	(void)memset(smp, 0, offsetof(struct bt_smp, chan));
   27300:	22f0      	movs	r2, #240	; 0xf0
   27302:	2100      	movs	r1, #0
   27304:	f00e fc1e 	bl	35b44 <memset>
	if (bt_rand(smp->prnd, 16)) {
   27308:	2110      	movs	r1, #16
   2730a:	f104 0027 	add.w	r0, r4, #39	; 0x27
   2730e:	f005 f8b1 	bl	2c474 <bt_rand>
   27312:	b990      	cbnz	r0, 2733a <smp_init+0x3e>
   27314:	4605      	mov	r5, r0
   27316:	f3bf 8f5b 	dmb	ish
   2731a:	e854 3f00 	ldrex	r3, [r4]
   2731e:	f043 0320 	orr.w	r3, r3, #32
   27322:	e844 3200 	strex	r2, r3, [r4]
   27326:	2a00      	cmp	r2, #0
   27328:	d1f7      	bne.n	2731a <smp_init+0x1e>
   2732a:	f3bf 8f5b 	dmb	ish
	sc_public_key = bt_pub_key_get();
   2732e:	f7fb ff25 	bl	2317c <bt_pub_key_get>
   27332:	4b03      	ldr	r3, [pc, #12]	; (27340 <smp_init+0x44>)
   27334:	6018      	str	r0, [r3, #0]
}
   27336:	4628      	mov	r0, r5
   27338:	bd38      	pop	{r3, r4, r5, pc}
		return BT_SMP_ERR_UNSPECIFIED;
   2733a:	2508      	movs	r5, #8
   2733c:	e7fb      	b.n	27336 <smp_init+0x3a>
   2733e:	bf00      	nop
   27340:	200023a0 	.word	0x200023a0

00027344 <legacy_distribute_keys>:
{
   27344:	b5f0      	push	{r4, r5, r6, r7, lr}
   27346:	b089      	sub	sp, #36	; 0x24
	struct bt_conn *conn = smp->chan.chan.conn;
   27348:	f8d0 30f0 	ldr.w	r3, [r0, #240]	; 0xf0
	struct bt_keys *keys = conn->le.keys;
   2734c:	f8d3 50bc 	ldr.w	r5, [r3, #188]	; 0xbc
	if (smp->local_dist & BT_SMP_DIST_ENC_KEY) {
   27350:	f890 30e8 	ldrb.w	r3, [r0, #232]	; 0xe8
   27354:	f013 0f01 	tst.w	r3, #1
   27358:	d101      	bne.n	2735e <legacy_distribute_keys+0x1a>
}
   2735a:	b009      	add	sp, #36	; 0x24
   2735c:	bdf0      	pop	{r4, r5, r6, r7, pc}
   2735e:	4604      	mov	r4, r0
		if (bt_rand((void *)&rand, sizeof(rand))) {
   27360:	211a      	movs	r1, #26
   27362:	a801      	add	r0, sp, #4
   27364:	f005 f886 	bl	2c474 <bt_rand>
   27368:	2800      	cmp	r0, #0
   2736a:	d155      	bne.n	27418 <legacy_distribute_keys+0xd4>
		buf = smp_create_pdu(smp, BT_SMP_CMD_ENCRYPT_INFO,
   2736c:	2210      	movs	r2, #16
   2736e:	2106      	movs	r1, #6
   27370:	4620      	mov	r0, r4
   27372:	f010 ffb5 	bl	382e0 <smp_create_pdu>
		if (!buf) {
   27376:	4607      	mov	r7, r0
   27378:	2800      	cmp	r0, #0
   2737a:	d052      	beq.n	27422 <legacy_distribute_keys+0xde>
   2737c:	2110      	movs	r1, #16
   2737e:	3008      	adds	r0, #8
   27380:	f002 fb06 	bl	29990 <net_buf_simple_add>
   27384:	4606      	mov	r6, r0
		memcpy(info->ltk, rand.key, keys->enc_size);
   27386:	7b2a      	ldrb	r2, [r5, #12]
   27388:	a901      	add	r1, sp, #4
   2738a:	f00e fbb7 	bl	35afc <memcpy>
		if (keys->enc_size < sizeof(info->ltk)) {
   2738e:	7b28      	ldrb	r0, [r5, #12]
   27390:	280f      	cmp	r0, #15
   27392:	d94b      	bls.n	2742c <legacy_distribute_keys+0xe8>
		smp_send(smp, buf, NULL, NULL);
   27394:	2300      	movs	r3, #0
   27396:	461a      	mov	r2, r3
   27398:	4639      	mov	r1, r7
   2739a:	4620      	mov	r0, r4
   2739c:	f010 ffcb 	bl	38336 <smp_send>
		buf = smp_create_pdu(smp, BT_SMP_CMD_CENTRAL_IDENT,
   273a0:	220a      	movs	r2, #10
   273a2:	2107      	movs	r1, #7
   273a4:	4620      	mov	r0, r4
   273a6:	f010 ff9b 	bl	382e0 <smp_create_pdu>
		if (!buf) {
   273aa:	4607      	mov	r7, r0
   273ac:	2800      	cmp	r0, #0
   273ae:	d044      	beq.n	2743a <legacy_distribute_keys+0xf6>
   273b0:	210a      	movs	r1, #10
   273b2:	3008      	adds	r0, #8
   273b4:	f002 faec 	bl	29990 <net_buf_simple_add>
   273b8:	4606      	mov	r6, r0
		memcpy(ident->rand, rand.rand, sizeof(ident->rand));
   273ba:	2208      	movs	r2, #8
   273bc:	a905      	add	r1, sp, #20
   273be:	3002      	adds	r0, #2
   273c0:	f00e fb9c 	bl	35afc <memcpy>
		memcpy(ident->ediv, rand.ediv, sizeof(ident->ediv));
   273c4:	2202      	movs	r2, #2
   273c6:	a907      	add	r1, sp, #28
   273c8:	4630      	mov	r0, r6
   273ca:	f00e fb97 	bl	35afc <memcpy>
		smp_send(smp, buf, smp_ident_sent, NULL);
   273ce:	2300      	movs	r3, #0
   273d0:	4a1c      	ldr	r2, [pc, #112]	; (27444 <legacy_distribute_keys+0x100>)
   273d2:	4639      	mov	r1, r7
   273d4:	4620      	mov	r0, r4
   273d6:	f010 ffae 	bl	38336 <smp_send>
	return __atomic_load_n(target, __ATOMIC_SEQ_CST);
   273da:	f3bf 8f5b 	dmb	ish
   273de:	6863      	ldr	r3, [r4, #4]
   273e0:	f3bf 8f5b 	dmb	ish
		if (atomic_test_bit(smp->flags, SMP_FLAG_BOND)) {
   273e4:	f413 5f00 	tst.w	r3, #8192	; 0x2000
   273e8:	d0b7      	beq.n	2735a <legacy_distribute_keys+0x16>
			bt_keys_add_type(keys, BT_KEYS_PERIPH_LTK);
   273ea:	2101      	movs	r1, #1
   273ec:	4628      	mov	r0, r5
   273ee:	f011 fc61 	bl	38cb4 <bt_keys_add_type>
			memcpy(keys->periph_ltk.val, rand.key,
   273f2:	2210      	movs	r2, #16
   273f4:	a901      	add	r1, sp, #4
   273f6:	f105 004a 	add.w	r0, r5, #74	; 0x4a
   273fa:	f00e fb7f 	bl	35afc <memcpy>
			memcpy(keys->periph_ltk.rand, rand.rand,
   273fe:	2208      	movs	r2, #8
   27400:	a905      	add	r1, sp, #20
   27402:	f105 0040 	add.w	r0, r5, #64	; 0x40
   27406:	f00e fb79 	bl	35afc <memcpy>
			memcpy(keys->periph_ltk.ediv, rand.ediv,
   2740a:	2202      	movs	r2, #2
   2740c:	a907      	add	r1, sp, #28
   2740e:	f105 0048 	add.w	r0, r5, #72	; 0x48
   27412:	f00e fb73 	bl	35afc <memcpy>
   27416:	e7a0      	b.n	2735a <legacy_distribute_keys+0x16>
			BT_ERR("Unable to get random bytes");
   27418:	2145      	movs	r1, #69	; 0x45
   2741a:	480b      	ldr	r0, [pc, #44]	; (27448 <legacy_distribute_keys+0x104>)
   2741c:	f00c fb66 	bl	33aec <z_log_minimal_printk>
			return;
   27420:	e79b      	b.n	2735a <legacy_distribute_keys+0x16>
			BT_ERR("Unable to allocate Encrypt Info buffer");
   27422:	2145      	movs	r1, #69	; 0x45
   27424:	4809      	ldr	r0, [pc, #36]	; (2744c <legacy_distribute_keys+0x108>)
   27426:	f00c fb61 	bl	33aec <z_log_minimal_printk>
			return;
   2742a:	e796      	b.n	2735a <legacy_distribute_keys+0x16>
			(void)memset(info->ltk + keys->enc_size, 0,
   2742c:	f1c0 0210 	rsb	r2, r0, #16
   27430:	2100      	movs	r1, #0
   27432:	4430      	add	r0, r6
   27434:	f00e fb86 	bl	35b44 <memset>
   27438:	e7ac      	b.n	27394 <legacy_distribute_keys+0x50>
			BT_ERR("Unable to allocate Central Ident buffer");
   2743a:	2145      	movs	r1, #69	; 0x45
   2743c:	4804      	ldr	r0, [pc, #16]	; (27450 <legacy_distribute_keys+0x10c>)
   2743e:	f00c fb55 	bl	33aec <z_log_minimal_printk>
			return;
   27442:	e78a      	b.n	2735a <legacy_distribute_keys+0x16>
   27444:	00038c2d 	.word	0x00038c2d
   27448:	0003e598 	.word	0x0003e598
   2744c:	0003e5b8 	.word	0x0003e5b8
   27450:	0003e5e4 	.word	0x0003e5e4

00027454 <bt_smp_distribute_keys>:
{
   27454:	b508      	push	{r3, lr}
	struct bt_conn *conn = smp->chan.chan.conn;
   27456:	f8d0 30f0 	ldr.w	r3, [r0, #240]	; 0xf0
	struct bt_keys *keys = conn->le.keys;
   2745a:	f8d3 20bc 	ldr.w	r2, [r3, #188]	; 0xbc
	if (!keys) {
   2745e:	b14a      	cbz	r2, 27474 <bt_smp_distribute_keys+0x20>
   27460:	f3bf 8f5b 	dmb	ish
   27464:	6843      	ldr	r3, [r0, #4]
   27466:	f3bf 8f5b 	dmb	ish
	if (!atomic_test_bit(smp->flags, SMP_FLAG_SC)) {
   2746a:	f013 0f20 	tst.w	r3, #32
   2746e:	d00c      	beq.n	2748a <bt_smp_distribute_keys+0x36>
	return 0;
   27470:	2000      	movs	r0, #0
}
   27472:	bd08      	pop	{r3, pc}
		BT_ERR("No keys space for %s", bt_addr_le_str(&conn->le.dst));
   27474:	f103 0090 	add.w	r0, r3, #144	; 0x90
   27478:	f7f8 fd9c 	bl	1ffb4 <bt_addr_le_str_real>
   2747c:	4602      	mov	r2, r0
   2747e:	2145      	movs	r1, #69	; 0x45
   27480:	4804      	ldr	r0, [pc, #16]	; (27494 <bt_smp_distribute_keys+0x40>)
   27482:	f00c fb33 	bl	33aec <z_log_minimal_printk>
		return BT_SMP_ERR_UNSPECIFIED;
   27486:	2008      	movs	r0, #8
   27488:	e7f3      	b.n	27472 <bt_smp_distribute_keys+0x1e>
		legacy_distribute_keys(smp);
   2748a:	f7ff ff5b 	bl	27344 <legacy_distribute_keys>
	return 0;
   2748e:	2000      	movs	r0, #0
   27490:	e7ef      	b.n	27472 <bt_smp_distribute_keys+0x1e>
   27492:	bf00      	nop
   27494:	0003e614 	.word	0x0003e614

00027498 <smp_dhkey_generate>:
{
   27498:	b510      	push	{r4, lr}
	atomic_set_bit(smp->flags, SMP_FLAG_DHKEY_GEN);
   2749a:	1d04      	adds	r4, r0, #4
	return __atomic_fetch_or(target, value, __ATOMIC_SEQ_CST);
   2749c:	f3bf 8f5b 	dmb	ish
   274a0:	e854 3f00 	ldrex	r3, [r4]
   274a4:	f443 7380 	orr.w	r3, r3, #256	; 0x100
   274a8:	e844 3200 	strex	r2, r3, [r4]
   274ac:	2a00      	cmp	r2, #0
   274ae:	d1f7      	bne.n	274a0 <smp_dhkey_generate+0x8>
   274b0:	f3bf 8f5b 	dmb	ish
	err = bt_dh_key_gen(smp->pkey, bt_smp_dhkey_ready);
   274b4:	490c      	ldr	r1, [pc, #48]	; (274e8 <smp_dhkey_generate+0x50>)
   274b6:	3057      	adds	r0, #87	; 0x57
   274b8:	f7fb fe72 	bl	231a0 <bt_dh_key_gen>
	if (err) {
   274bc:	b908      	cbnz	r0, 274c2 <smp_dhkey_generate+0x2a>
	return 0;
   274be:	2000      	movs	r0, #0
}
   274c0:	bd10      	pop	{r4, pc}
	return __atomic_fetch_and(target, value, __ATOMIC_SEQ_CST);
   274c2:	f3bf 8f5b 	dmb	ish
   274c6:	e854 3f00 	ldrex	r3, [r4]
   274ca:	f423 7380 	bic.w	r3, r3, #256	; 0x100
   274ce:	e844 3200 	strex	r2, r3, [r4]
   274d2:	2a00      	cmp	r2, #0
   274d4:	d1f7      	bne.n	274c6 <smp_dhkey_generate+0x2e>
   274d6:	f3bf 8f5b 	dmb	ish
		BT_ERR("Failed to generate DHKey");
   274da:	2145      	movs	r1, #69	; 0x45
   274dc:	4803      	ldr	r0, [pc, #12]	; (274ec <smp_dhkey_generate+0x54>)
   274de:	f00c fb05 	bl	33aec <z_log_minimal_printk>
		return BT_SMP_ERR_UNSPECIFIED;
   274e2:	2008      	movs	r0, #8
   274e4:	e7ec      	b.n	274c0 <smp_dhkey_generate+0x28>
   274e6:	bf00      	nop
   274e8:	00038a3d 	.word	0x00038a3d
   274ec:	0003e630 	.word	0x0003e630

000274f0 <legacy_request_tk>:
{
   274f0:	b530      	push	{r4, r5, lr}
   274f2:	b083      	sub	sp, #12
   274f4:	4604      	mov	r4, r0
	struct bt_conn *conn = smp->chan.chan.conn;
   274f6:	f8d0 50f0 	ldr.w	r5, [r0, #240]	; 0xf0
	keys = bt_keys_find_addr(conn->id, &conn->le.dst);
   274fa:	f105 0190 	add.w	r1, r5, #144	; 0x90
   274fe:	7a28      	ldrb	r0, [r5, #8]
   27500:	f001 fdfc 	bl	290fc <bt_keys_find_addr>
	if (keys && (keys->flags & BT_KEYS_AUTHENTICATED) &&
   27504:	b128      	cbz	r0, 27512 <legacy_request_tk+0x22>
   27506:	7b43      	ldrb	r3, [r0, #13]
   27508:	f013 0f01 	tst.w	r3, #1
   2750c:	d001      	beq.n	27512 <legacy_request_tk+0x22>
	    smp->method == JUST_WORKS) {
   2750e:	7a23      	ldrb	r3, [r4, #8]
	if (keys && (keys->flags & BT_KEYS_AUTHENTICATED) &&
   27510:	b143      	cbz	r3, 27524 <legacy_request_tk+0x34>
	switch (smp->method) {
   27512:	7a20      	ldrb	r0, [r4, #8]
   27514:	2806      	cmp	r0, #6
   27516:	d877      	bhi.n	27608 <legacy_request_tk+0x118>
   27518:	e8df f000 	tbb	[pc, r0]
   2751c:	762a6174 	.word	0x762a6174
   27520:	7676      	.short	0x7676
   27522:	0a          	.byte	0x0a
   27523:	00          	.byte	0x00
		BT_ERR("JustWorks failed, authenticated keys present");
   27524:	2145      	movs	r1, #69	; 0x45
   27526:	483f      	ldr	r0, [pc, #252]	; (27624 <legacy_request_tk+0x134>)
   27528:	f00c fae0 	bl	33aec <z_log_minimal_printk>
		return BT_SMP_ERR_UNSPECIFIED;
   2752c:	2008      	movs	r0, #8
   2752e:	e069      	b.n	27604 <legacy_request_tk+0x114>
		if (bt_auth && bt_auth->oob_data_request) {
   27530:	4b3d      	ldr	r3, [pc, #244]	; (27628 <legacy_request_tk+0x138>)
   27532:	681b      	ldr	r3, [r3, #0]
   27534:	2b00      	cmp	r3, #0
   27536:	d06e      	beq.n	27616 <legacy_request_tk+0x126>
   27538:	68db      	ldr	r3, [r3, #12]
   2753a:	2b00      	cmp	r3, #0
   2753c:	d06d      	beq.n	2761a <legacy_request_tk+0x12a>
			struct bt_conn_oob_info info = {
   2753e:	2500      	movs	r5, #0
   27540:	f8ad 5000 	strh.w	r5, [sp]
			atomic_set_bit(smp->flags, SMP_FLAG_USER);
   27544:	1d23      	adds	r3, r4, #4
	return __atomic_fetch_or(target, value, __ATOMIC_SEQ_CST);
   27546:	f3bf 8f5b 	dmb	ish
   2754a:	e853 2f00 	ldrex	r2, [r3]
   2754e:	f442 6280 	orr.w	r2, r2, #1024	; 0x400
   27552:	e843 2100 	strex	r1, r2, [r3]
   27556:	2900      	cmp	r1, #0
   27558:	d1f7      	bne.n	2754a <legacy_request_tk+0x5a>
   2755a:	f3bf 8f5b 	dmb	ish
			bt_auth->oob_data_request(smp->chan.chan.conn, &info);
   2755e:	4b32      	ldr	r3, [pc, #200]	; (27628 <legacy_request_tk+0x138>)
   27560:	681b      	ldr	r3, [r3, #0]
   27562:	68db      	ldr	r3, [r3, #12]
   27564:	4669      	mov	r1, sp
   27566:	f8d4 00f0 	ldr.w	r0, [r4, #240]	; 0xf0
   2756a:	4798      	blx	r3
	return 0;
   2756c:	4628      	mov	r0, r5
		break;
   2756e:	e049      	b.n	27604 <legacy_request_tk+0x114>
			if (bt_rand(&passkey, sizeof(passkey))) {
   27570:	2104      	movs	r1, #4
   27572:	eb0d 0001 	add.w	r0, sp, r1
   27576:	f004 ff7d 	bl	2c474 <bt_rand>
   2757a:	2800      	cmp	r0, #0
   2757c:	d14f      	bne.n	2761e <legacy_request_tk+0x12e>
			passkey %= 1000000;
   2757e:	9a01      	ldr	r2, [sp, #4]
   27580:	4b2a      	ldr	r3, [pc, #168]	; (2762c <legacy_request_tk+0x13c>)
   27582:	fba3 1302 	umull	r1, r3, r3, r2
   27586:	0c9b      	lsrs	r3, r3, #18
   27588:	4929      	ldr	r1, [pc, #164]	; (27630 <legacy_request_tk+0x140>)
   2758a:	fb01 2313 	mls	r3, r1, r3, r2
   2758e:	9301      	str	r3, [sp, #4]
		if (bt_auth && bt_auth->passkey_display) {
   27590:	4b25      	ldr	r3, [pc, #148]	; (27628 <legacy_request_tk+0x138>)
   27592:	681b      	ldr	r3, [r3, #0]
   27594:	b1a3      	cbz	r3, 275c0 <legacy_request_tk+0xd0>
   27596:	681b      	ldr	r3, [r3, #0]
   27598:	b193      	cbz	r3, 275c0 <legacy_request_tk+0xd0>
			atomic_set_bit(smp->flags, SMP_FLAG_DISPLAY);
   2759a:	1d23      	adds	r3, r4, #4
   2759c:	f3bf 8f5b 	dmb	ish
   275a0:	e853 2f00 	ldrex	r2, [r3]
   275a4:	f442 6200 	orr.w	r2, r2, #2048	; 0x800
   275a8:	e843 2100 	strex	r1, r2, [r3]
   275ac:	2900      	cmp	r1, #0
   275ae:	d1f7      	bne.n	275a0 <legacy_request_tk+0xb0>
   275b0:	f3bf 8f5b 	dmb	ish
			bt_auth->passkey_display(conn, passkey);
   275b4:	4b1c      	ldr	r3, [pc, #112]	; (27628 <legacy_request_tk+0x138>)
   275b6:	681b      	ldr	r3, [r3, #0]
   275b8:	681b      	ldr	r3, [r3, #0]
   275ba:	9901      	ldr	r1, [sp, #4]
   275bc:	4628      	mov	r0, r5
   275be:	4798      	blx	r3
		sys_put_le32(passkey, smp->tk);
   275c0:	9b01      	ldr	r3, [sp, #4]
	dst[0] = val;
   275c2:	f884 3047 	strb.w	r3, [r4, #71]	; 0x47
	dst[1] = val >> 8;
   275c6:	f3c3 2207 	ubfx	r2, r3, #8, #8
   275ca:	f884 2048 	strb.w	r2, [r4, #72]	; 0x48
	sys_put_le16(val >> 16, &dst[2]);
   275ce:	0c1a      	lsrs	r2, r3, #16
	dst[0] = val;
   275d0:	f884 2049 	strb.w	r2, [r4, #73]	; 0x49
	dst[1] = val >> 8;
   275d4:	0e1b      	lsrs	r3, r3, #24
   275d6:	f884 304a 	strb.w	r3, [r4, #74]	; 0x4a
	return 0;
   275da:	2000      	movs	r0, #0
}
   275dc:	e012      	b.n	27604 <legacy_request_tk+0x114>
		atomic_set_bit(smp->flags, SMP_FLAG_USER);
   275de:	3404      	adds	r4, #4
   275e0:	f3bf 8f5b 	dmb	ish
   275e4:	e854 3f00 	ldrex	r3, [r4]
   275e8:	f443 6380 	orr.w	r3, r3, #1024	; 0x400
   275ec:	e844 3200 	strex	r2, r3, [r4]
   275f0:	2a00      	cmp	r2, #0
   275f2:	d1f7      	bne.n	275e4 <legacy_request_tk+0xf4>
   275f4:	f3bf 8f5b 	dmb	ish
		bt_auth->passkey_entry(conn);
   275f8:	4b0b      	ldr	r3, [pc, #44]	; (27628 <legacy_request_tk+0x138>)
   275fa:	681b      	ldr	r3, [r3, #0]
   275fc:	685b      	ldr	r3, [r3, #4]
   275fe:	4628      	mov	r0, r5
   27600:	4798      	blx	r3
	return 0;
   27602:	2000      	movs	r0, #0
}
   27604:	b003      	add	sp, #12
   27606:	bd30      	pop	{r4, r5, pc}
		BT_ERR("Unknown pairing method (%u)", smp->method);
   27608:	4602      	mov	r2, r0
   2760a:	2145      	movs	r1, #69	; 0x45
   2760c:	4809      	ldr	r0, [pc, #36]	; (27634 <legacy_request_tk+0x144>)
   2760e:	f00c fa6d 	bl	33aec <z_log_minimal_printk>
		return BT_SMP_ERR_UNSPECIFIED;
   27612:	2008      	movs	r0, #8
   27614:	e7f6      	b.n	27604 <legacy_request_tk+0x114>
			return BT_SMP_ERR_OOB_NOT_AVAIL;
   27616:	2002      	movs	r0, #2
   27618:	e7f4      	b.n	27604 <legacy_request_tk+0x114>
   2761a:	2002      	movs	r0, #2
   2761c:	e7f2      	b.n	27604 <legacy_request_tk+0x114>
				return BT_SMP_ERR_UNSPECIFIED;
   2761e:	2008      	movs	r0, #8
   27620:	e7f0      	b.n	27604 <legacy_request_tk+0x114>
   27622:	bf00      	nop
   27624:	0003e650 	.word	0x0003e650
   27628:	200022e4 	.word	0x200022e4
   2762c:	431bde83 	.word	0x431bde83
   27630:	000f4240 	.word	0x000f4240
   27634:	0003e684 	.word	0x0003e684

00027638 <legacy_pairing_req>:
{
   27638:	b538      	push	{r3, r4, r5, lr}
   2763a:	4604      	mov	r4, r0
	ret = legacy_request_tk(smp);
   2763c:	f7ff ff58 	bl	274f0 <legacy_request_tk>
	if (ret) {
   27640:	4605      	mov	r5, r0
   27642:	bb58      	cbnz	r0, 2769c <legacy_pairing_req+0x64>
	if ((DISPLAY_FIXED(smp) || smp->method == JUST_WORKS) &&
   27644:	7a25      	ldrb	r5, [r4, #8]
   27646:	b96d      	cbnz	r5, 27664 <legacy_pairing_req+0x2c>
	    !atomic_test_bit(smp->flags, SMP_FLAG_SEC_REQ) &&
   27648:	1d22      	adds	r2, r4, #4
	return __atomic_load_n(target, __ATOMIC_SEQ_CST);
   2764a:	f3bf 8f5b 	dmb	ish
   2764e:	6863      	ldr	r3, [r4, #4]
   27650:	f3bf 8f5b 	dmb	ish
	if ((DISPLAY_FIXED(smp) || smp->method == JUST_WORKS) &&
   27654:	f413 4f00 	tst.w	r3, #32768	; 0x8000
   27658:	d104      	bne.n	27664 <legacy_pairing_req+0x2c>
	    !atomic_test_bit(smp->flags, SMP_FLAG_SEC_REQ) &&
   2765a:	4b1b      	ldr	r3, [pc, #108]	; (276c8 <legacy_pairing_req+0x90>)
   2765c:	681b      	ldr	r3, [r3, #0]
   2765e:	b10b      	cbz	r3, 27664 <legacy_pairing_req+0x2c>
	    bt_auth && bt_auth->pairing_confirm) {
   27660:	695b      	ldr	r3, [r3, #20]
   27662:	b9eb      	cbnz	r3, 276a0 <legacy_pairing_req+0x68>
	return __atomic_fetch_or(target, value, __ATOMIC_SEQ_CST);
   27664:	f3bf 8f5b 	dmb	ish
   27668:	e854 3f00 	ldrex	r3, [r4]
   2766c:	f043 0308 	orr.w	r3, r3, #8
   27670:	e844 3200 	strex	r2, r3, [r4]
   27674:	2a00      	cmp	r2, #0
   27676:	d1f7      	bne.n	27668 <legacy_pairing_req+0x30>
   27678:	f3bf 8f5b 	dmb	ish
   2767c:	f3bf 8f5b 	dmb	ish
   27680:	e854 3f00 	ldrex	r3, [r4]
   27684:	f443 4380 	orr.w	r3, r3, #16384	; 0x4000
   27688:	e844 3200 	strex	r2, r3, [r4]
   2768c:	2a00      	cmp	r2, #0
   2768e:	d1f7      	bne.n	27680 <legacy_pairing_req+0x48>
   27690:	f3bf 8f5b 	dmb	ish
	return send_pairing_rsp(smp);
   27694:	4620      	mov	r0, r4
   27696:	f010 ff03 	bl	384a0 <send_pairing_rsp>
   2769a:	4605      	mov	r5, r0
}
   2769c:	4628      	mov	r0, r5
   2769e:	bd38      	pop	{r3, r4, r5, pc}
   276a0:	f3bf 8f5b 	dmb	ish
   276a4:	e852 3f00 	ldrex	r3, [r2]
   276a8:	f443 6380 	orr.w	r3, r3, #1024	; 0x400
   276ac:	e842 3100 	strex	r1, r3, [r2]
   276b0:	2900      	cmp	r1, #0
   276b2:	d1f7      	bne.n	276a4 <legacy_pairing_req+0x6c>
   276b4:	f3bf 8f5b 	dmb	ish
		bt_auth->pairing_confirm(smp->chan.chan.conn);
   276b8:	4b03      	ldr	r3, [pc, #12]	; (276c8 <legacy_pairing_req+0x90>)
   276ba:	681b      	ldr	r3, [r3, #0]
   276bc:	695b      	ldr	r3, [r3, #20]
   276be:	f8d4 00f0 	ldr.w	r0, [r4, #240]	; 0xf0
   276c2:	4798      	blx	r3
		return 0;
   276c4:	e7ea      	b.n	2769c <legacy_pairing_req+0x64>
   276c6:	bf00      	nop
   276c8:	200022e4 	.word	0x200022e4

000276cc <smp_pairing_req>:
{
   276cc:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
	struct bt_conn *conn = smp->chan.chan.conn;
   276d0:	f8d0 60f0 	ldr.w	r6, [r0, #240]	; 0xf0
	struct bt_smp_pairing *req = (void *)buf->data;
   276d4:	688d      	ldr	r5, [r1, #8]
	if ((req->max_key_size > BT_SMP_MAX_ENC_KEY_SIZE) ||
   276d6:	78eb      	ldrb	r3, [r5, #3]
   276d8:	3b07      	subs	r3, #7
   276da:	b2db      	uxtb	r3, r3
   276dc:	2b09      	cmp	r3, #9
   276de:	f200 80e9 	bhi.w	278b4 <smp_pairing_req+0x1e8>
   276e2:	4604      	mov	r4, r0
	if (!conn->le.keys) {
   276e4:	f8d6 30bc 	ldr.w	r3, [r6, #188]	; 0xbc
   276e8:	2b00      	cmp	r3, #0
   276ea:	f000 80be 	beq.w	2786a <smp_pairing_req+0x19e>
	if (!atomic_test_bit(smp->flags, SMP_FLAG_SEC_REQ)) {
   276ee:	f104 0804 	add.w	r8, r4, #4
	return __atomic_load_n(target, __ATOMIC_SEQ_CST);
   276f2:	f3bf 8f5b 	dmb	ish
   276f6:	6863      	ldr	r3, [r4, #4]
   276f8:	f3bf 8f5b 	dmb	ish
   276fc:	f413 4f00 	tst.w	r3, #32768	; 0x8000
   27700:	d105      	bne.n	2770e <smp_pairing_req+0x42>
		int ret = smp_init(smp);
   27702:	4620      	mov	r0, r4
   27704:	f7ff fdfa 	bl	272fc <smp_init>
		if (ret) {
   27708:	2800      	cmp	r0, #0
   2770a:	f040 80ba 	bne.w	27882 <smp_pairing_req+0x1b6>
	smp->preq[0] = BT_SMP_CMD_PAIRING_REQ;
   2770e:	2301      	movs	r3, #1
   27710:	7263      	strb	r3, [r4, #9]
	memcpy(smp->preq + 1, req, sizeof(*req));
   27712:	2206      	movs	r2, #6
   27714:	4629      	mov	r1, r5
   27716:	f104 000a 	add.w	r0, r4, #10
   2771a:	f00e f9ef 	bl	35afc <memcpy>
	smp->prsp[0] = BT_SMP_CMD_PAIRING_RSP;
   2771e:	2302      	movs	r3, #2
   27720:	7423      	strb	r3, [r4, #16]
	rsp->auth_req = get_auth(conn, req->auth_req);
   27722:	78a9      	ldrb	r1, [r5, #2]
   27724:	4630      	mov	r0, r6
   27726:	f7ff fc51 	bl	26fcc <get_auth>
   2772a:	4607      	mov	r7, r0
   2772c:	74e0      	strb	r0, [r4, #19]
	rsp->io_capability = get_io_capa();
   2772e:	f7ff fbfb 	bl	26f28 <get_io_capa>
   27732:	7460      	strb	r0, [r4, #17]
	rsp->oob_flag = oobd_present ? BT_SMP_OOB_PRESENT :
   27734:	4b61      	ldr	r3, [pc, #388]	; (278bc <smp_pairing_req+0x1f0>)
   27736:	781b      	ldrb	r3, [r3, #0]
   27738:	74a3      	strb	r3, [r4, #18]
	rsp->max_key_size = BT_SMP_MAX_ENC_KEY_SIZE;
   2773a:	2310      	movs	r3, #16
   2773c:	7523      	strb	r3, [r4, #20]
	rsp->init_key_dist = (req->init_key_dist & RECV_KEYS);
   2773e:	792b      	ldrb	r3, [r5, #4]
   27740:	f003 0303 	and.w	r3, r3, #3
   27744:	7563      	strb	r3, [r4, #21]
	rsp->resp_key_dist = (req->resp_key_dist & SEND_KEYS);
   27746:	796b      	ldrb	r3, [r5, #5]
   27748:	f003 0301 	and.w	r3, r3, #1
   2774c:	75a3      	strb	r3, [r4, #22]
	if ((rsp->auth_req & BT_SMP_AUTH_SC) &&
   2774e:	f017 0f08 	tst.w	r7, #8
   27752:	d015      	beq.n	27780 <smp_pairing_req+0xb4>
	    (req->auth_req & BT_SMP_AUTH_SC)) {
   27754:	78ab      	ldrb	r3, [r5, #2]
	if ((rsp->auth_req & BT_SMP_AUTH_SC) &&
   27756:	f013 0f08 	tst.w	r3, #8
   2775a:	d011      	beq.n	27780 <smp_pairing_req+0xb4>
	return __atomic_fetch_or(target, value, __ATOMIC_SEQ_CST);
   2775c:	f3bf 8f5b 	dmb	ish
   27760:	e858 3f00 	ldrex	r3, [r8]
   27764:	f043 0320 	orr.w	r3, r3, #32
   27768:	e848 3200 	strex	r2, r3, [r8]
   2776c:	2a00      	cmp	r2, #0
   2776e:	d1f7      	bne.n	27760 <smp_pairing_req+0x94>
   27770:	f3bf 8f5b 	dmb	ish
		rsp->init_key_dist &= RECV_KEYS_SC;
   27774:	7d63      	ldrb	r3, [r4, #21]
   27776:	f003 0302 	and.w	r3, r3, #2
   2777a:	7563      	strb	r3, [r4, #21]
		rsp->resp_key_dist &= SEND_KEYS_SC;
   2777c:	2300      	movs	r3, #0
   2777e:	75a3      	strb	r3, [r4, #22]
	if ((rsp->auth_req & BT_SMP_AUTH_CT2) &&
   27780:	7ce3      	ldrb	r3, [r4, #19]
   27782:	f013 0f20 	tst.w	r3, #32
   27786:	d00f      	beq.n	277a8 <smp_pairing_req+0xdc>
	    (req->auth_req & BT_SMP_AUTH_CT2)) {
   27788:	78ab      	ldrb	r3, [r5, #2]
	if ((rsp->auth_req & BT_SMP_AUTH_CT2) &&
   2778a:	f013 0f20 	tst.w	r3, #32
   2778e:	d00b      	beq.n	277a8 <smp_pairing_req+0xdc>
   27790:	f3bf 8f5b 	dmb	ish
   27794:	e858 3f00 	ldrex	r3, [r8]
   27798:	f443 1380 	orr.w	r3, r3, #1048576	; 0x100000
   2779c:	e848 3200 	strex	r2, r3, [r8]
   277a0:	2a00      	cmp	r2, #0
   277a2:	d1f7      	bne.n	27794 <smp_pairing_req+0xc8>
   277a4:	f3bf 8f5b 	dmb	ish
	smp->local_dist = rsp->resp_key_dist;
   277a8:	7da3      	ldrb	r3, [r4, #22]
   277aa:	f884 30e8 	strb.w	r3, [r4, #232]	; 0xe8
	smp->remote_dist = rsp->init_key_dist;
   277ae:	7d63      	ldrb	r3, [r4, #21]
   277b0:	f884 30e9 	strb.w	r3, [r4, #233]	; 0xe9
	if ((rsp->auth_req & BT_SMP_AUTH_BONDING) &&
   277b4:	7ce3      	ldrb	r3, [r4, #19]
   277b6:	f013 0f01 	tst.w	r3, #1
   277ba:	d00f      	beq.n	277dc <smp_pairing_req+0x110>
	    (req->auth_req & BT_SMP_AUTH_BONDING)) {
   277bc:	78ab      	ldrb	r3, [r5, #2]
	if ((rsp->auth_req & BT_SMP_AUTH_BONDING) &&
   277be:	f013 0f01 	tst.w	r3, #1
   277c2:	d00b      	beq.n	277dc <smp_pairing_req+0x110>
   277c4:	f3bf 8f5b 	dmb	ish
   277c8:	e858 3f00 	ldrex	r3, [r8]
   277cc:	f443 5300 	orr.w	r3, r3, #8192	; 0x2000
   277d0:	e848 3200 	strex	r2, r3, [r8]
   277d4:	2a00      	cmp	r2, #0
   277d6:	d1f7      	bne.n	277c8 <smp_pairing_req+0xfc>
   277d8:	f3bf 8f5b 	dmb	ish
   277dc:	f3bf 8f5b 	dmb	ish
   277e0:	e858 3f00 	ldrex	r3, [r8]
   277e4:	f043 0308 	orr.w	r3, r3, #8
   277e8:	e848 3200 	strex	r2, r3, [r8]
   277ec:	2a00      	cmp	r2, #0
   277ee:	d1f7      	bne.n	277e0 <smp_pairing_req+0x114>
   277f0:	f3bf 8f5b 	dmb	ish
	smp->method = get_pair_method(smp, req->io_capability);
   277f4:	7829      	ldrb	r1, [r5, #0]
   277f6:	4620      	mov	r0, r4
   277f8:	f7ff fca4 	bl	27144 <get_pair_method>
   277fc:	7220      	strb	r0, [r4, #8]
	if (!update_keys_check(smp, conn->le.keys)) {
   277fe:	f8d6 10bc 	ldr.w	r1, [r6, #188]	; 0xbc
   27802:	4620      	mov	r0, r4
   27804:	f010 fc89 	bl	3811a <update_keys_check>
   27808:	2800      	cmp	r0, #0
   2780a:	d055      	beq.n	278b8 <smp_pairing_req+0x1ec>
	err = remote_sec_level_reachable(smp);
   2780c:	4620      	mov	r0, r4
   2780e:	f010 fcb5 	bl	3817c <remote_sec_level_reachable>
	if (err) {
   27812:	4605      	mov	r5, r0
   27814:	bb30      	cbnz	r0, 27864 <smp_pairing_req+0x198>
	return __atomic_load_n(target, __ATOMIC_SEQ_CST);
   27816:	f3bf 8f5b 	dmb	ish
   2781a:	6863      	ldr	r3, [r4, #4]
   2781c:	f3bf 8f5b 	dmb	ish
	if (!atomic_test_bit(smp->flags, SMP_FLAG_SC)) {
   27820:	f013 0f20 	tst.w	r3, #32
   27824:	d02f      	beq.n	27886 <smp_pairing_req+0x1ba>
	if ((DISPLAY_FIXED(smp) || smp->method == JUST_WORKS) &&
   27826:	7a25      	ldrb	r5, [r4, #8]
   27828:	b965      	cbnz	r5, 27844 <smp_pairing_req+0x178>
   2782a:	f3bf 8f5b 	dmb	ish
   2782e:	6863      	ldr	r3, [r4, #4]
   27830:	f3bf 8f5b 	dmb	ish
   27834:	f413 4f00 	tst.w	r3, #32768	; 0x8000
   27838:	d104      	bne.n	27844 <smp_pairing_req+0x178>
	    !atomic_test_bit(smp->flags, SMP_FLAG_SEC_REQ) &&
   2783a:	4b21      	ldr	r3, [pc, #132]	; (278c0 <smp_pairing_req+0x1f4>)
   2783c:	681b      	ldr	r3, [r3, #0]
   2783e:	b10b      	cbz	r3, 27844 <smp_pairing_req+0x178>
	    bt_auth && bt_auth->pairing_confirm) {
   27840:	695b      	ldr	r3, [r3, #20]
   27842:	bb2b      	cbnz	r3, 27890 <smp_pairing_req+0x1c4>
	return __atomic_fetch_or(target, value, __ATOMIC_SEQ_CST);
   27844:	f3bf 8f5b 	dmb	ish
   27848:	e854 3f00 	ldrex	r3, [r4]
   2784c:	f443 5380 	orr.w	r3, r3, #4096	; 0x1000
   27850:	e844 3200 	strex	r2, r3, [r4]
   27854:	2a00      	cmp	r2, #0
   27856:	d1f7      	bne.n	27848 <smp_pairing_req+0x17c>
   27858:	f3bf 8f5b 	dmb	ish
	return send_pairing_rsp(smp);
   2785c:	4620      	mov	r0, r4
   2785e:	f010 fe1f 	bl	384a0 <send_pairing_rsp>
   27862:	4605      	mov	r5, r0
}
   27864:	4628      	mov	r0, r5
   27866:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
		conn->le.keys = bt_keys_get_addr(conn->id, &conn->le.dst);
   2786a:	f106 0190 	add.w	r1, r6, #144	; 0x90
   2786e:	7a30      	ldrb	r0, [r6, #8]
   27870:	f001 fb46 	bl	28f00 <bt_keys_get_addr>
   27874:	f8c6 00bc 	str.w	r0, [r6, #188]	; 0xbc
		if (!conn->le.keys) {
   27878:	2800      	cmp	r0, #0
   2787a:	f47f af38 	bne.w	276ee <smp_pairing_req+0x22>
			return BT_SMP_ERR_UNSPECIFIED;
   2787e:	2508      	movs	r5, #8
   27880:	e7f0      	b.n	27864 <smp_pairing_req+0x198>
			return ret;
   27882:	b2c5      	uxtb	r5, r0
   27884:	e7ee      	b.n	27864 <smp_pairing_req+0x198>
		return legacy_pairing_req(smp);
   27886:	4620      	mov	r0, r4
   27888:	f7ff fed6 	bl	27638 <legacy_pairing_req>
   2788c:	4605      	mov	r5, r0
   2788e:	e7e9      	b.n	27864 <smp_pairing_req+0x198>
   27890:	f3bf 8f5b 	dmb	ish
   27894:	e858 3f00 	ldrex	r3, [r8]
   27898:	f443 6380 	orr.w	r3, r3, #1024	; 0x400
   2789c:	e848 3200 	strex	r2, r3, [r8]
   278a0:	2a00      	cmp	r2, #0
   278a2:	d1f7      	bne.n	27894 <smp_pairing_req+0x1c8>
   278a4:	f3bf 8f5b 	dmb	ish
		bt_auth->pairing_confirm(conn);
   278a8:	4b05      	ldr	r3, [pc, #20]	; (278c0 <smp_pairing_req+0x1f4>)
   278aa:	681b      	ldr	r3, [r3, #0]
   278ac:	695b      	ldr	r3, [r3, #20]
   278ae:	4630      	mov	r0, r6
   278b0:	4798      	blx	r3
		return 0;
   278b2:	e7d7      	b.n	27864 <smp_pairing_req+0x198>
		return BT_SMP_ERR_ENC_KEY_SIZE;
   278b4:	2506      	movs	r5, #6
   278b6:	e7d5      	b.n	27864 <smp_pairing_req+0x198>
		return BT_SMP_ERR_AUTH_REQUIREMENTS;
   278b8:	2503      	movs	r5, #3
   278ba:	e7d3      	b.n	27864 <smp_pairing_req+0x198>
   278bc:	200034ec 	.word	0x200034ec
   278c0:	200022e4 	.word	0x200022e4

000278c4 <smp_ident_info>:
{
   278c4:	b570      	push	{r4, r5, r6, lr}
   278c6:	4604      	mov	r4, r0
	return __atomic_load_n(target, __ATOMIC_SEQ_CST);
   278c8:	f3bf 8f5b 	dmb	ish
   278cc:	6843      	ldr	r3, [r0, #4]
   278ce:	f3bf 8f5b 	dmb	ish
	if (atomic_test_bit(smp->flags, SMP_FLAG_BOND)) {
   278d2:	f413 5f00 	tst.w	r3, #8192	; 0x2000
   278d6:	d00f      	beq.n	278f8 <smp_ident_info+0x34>
		struct bt_smp_ident_info *req = (void *)buf->data;
   278d8:	688e      	ldr	r6, [r1, #8]
		struct bt_conn *conn = smp->chan.chan.conn;
   278da:	f8d0 30f0 	ldr.w	r3, [r0, #240]	; 0xf0
		keys = bt_keys_get_type(BT_KEYS_IRK, conn->id, &conn->le.dst);
   278de:	f103 0590 	add.w	r5, r3, #144	; 0x90
   278e2:	462a      	mov	r2, r5
   278e4:	7a19      	ldrb	r1, [r3, #8]
   278e6:	2002      	movs	r0, #2
   278e8:	f011 f9e8 	bl	38cbc <bt_keys_get_type>
		if (!keys) {
   278ec:	b190      	cbz	r0, 27914 <smp_ident_info+0x50>
		memcpy(keys->irk.val, req->irk, 16);
   278ee:	2210      	movs	r2, #16
   278f0:	4631      	mov	r1, r6
   278f2:	302a      	adds	r0, #42	; 0x2a
   278f4:	f00e f902 	bl	35afc <memcpy>
	return __atomic_fetch_or(target, value, __ATOMIC_SEQ_CST);
   278f8:	f3bf 8f5b 	dmb	ish
   278fc:	e854 3f00 	ldrex	r3, [r4]
   27900:	f443 7300 	orr.w	r3, r3, #512	; 0x200
   27904:	e844 3200 	strex	r2, r3, [r4]
   27908:	2a00      	cmp	r2, #0
   2790a:	d1f7      	bne.n	278fc <smp_ident_info+0x38>
   2790c:	f3bf 8f5b 	dmb	ish
	return 0;
   27910:	2000      	movs	r0, #0
}
   27912:	bd70      	pop	{r4, r5, r6, pc}
			BT_ERR("Unable to get keys for %s",
   27914:	4628      	mov	r0, r5
   27916:	f7f8 fb4d 	bl	1ffb4 <bt_addr_le_str_real>
   2791a:	4602      	mov	r2, r0
   2791c:	2145      	movs	r1, #69	; 0x45
   2791e:	4802      	ldr	r0, [pc, #8]	; (27928 <smp_ident_info+0x64>)
   27920:	f00c f8e4 	bl	33aec <z_log_minimal_printk>
			return BT_SMP_ERR_UNSPECIFIED;
   27924:	2008      	movs	r0, #8
   27926:	e7f4      	b.n	27912 <smp_ident_info+0x4e>
   27928:	0003e6a8 	.word	0x0003e6a8

0002792c <smp_encrypt_info>:
{
   2792c:	b570      	push	{r4, r5, r6, lr}
   2792e:	4604      	mov	r4, r0
	return __atomic_load_n(target, __ATOMIC_SEQ_CST);
   27930:	f3bf 8f5b 	dmb	ish
   27934:	6843      	ldr	r3, [r0, #4]
   27936:	f3bf 8f5b 	dmb	ish
	if (atomic_test_bit(smp->flags, SMP_FLAG_BOND)) {
   2793a:	f413 5f00 	tst.w	r3, #8192	; 0x2000
   2793e:	d00f      	beq.n	27960 <smp_encrypt_info+0x34>
		struct bt_smp_encrypt_info *req = (void *)buf->data;
   27940:	688e      	ldr	r6, [r1, #8]
		struct bt_conn *conn = smp->chan.chan.conn;
   27942:	f8d0 30f0 	ldr.w	r3, [r0, #240]	; 0xf0
		keys = bt_keys_get_type(BT_KEYS_LTK, conn->id, &conn->le.dst);
   27946:	f103 0590 	add.w	r5, r3, #144	; 0x90
   2794a:	462a      	mov	r2, r5
   2794c:	7a19      	ldrb	r1, [r3, #8]
   2794e:	2004      	movs	r0, #4
   27950:	f011 f9b4 	bl	38cbc <bt_keys_get_type>
		if (!keys) {
   27954:	b190      	cbz	r0, 2797c <smp_encrypt_info+0x50>
		memcpy(keys->ltk.val, req->ltk, 16);
   27956:	2210      	movs	r2, #16
   27958:	4631      	mov	r1, r6
   2795a:	301a      	adds	r0, #26
   2795c:	f00e f8ce 	bl	35afc <memcpy>
	return __atomic_fetch_or(target, value, __ATOMIC_SEQ_CST);
   27960:	f3bf 8f5b 	dmb	ish
   27964:	e854 3f00 	ldrex	r3, [r4]
   27968:	f043 0380 	orr.w	r3, r3, #128	; 0x80
   2796c:	e844 3200 	strex	r2, r3, [r4]
   27970:	2a00      	cmp	r2, #0
   27972:	d1f7      	bne.n	27964 <smp_encrypt_info+0x38>
   27974:	f3bf 8f5b 	dmb	ish
	return 0;
   27978:	2000      	movs	r0, #0
}
   2797a:	bd70      	pop	{r4, r5, r6, pc}
			BT_ERR("Unable to get keys for %s",
   2797c:	4628      	mov	r0, r5
   2797e:	f7f8 fb19 	bl	1ffb4 <bt_addr_le_str_real>
   27982:	4602      	mov	r2, r0
   27984:	2145      	movs	r1, #69	; 0x45
   27986:	4802      	ldr	r0, [pc, #8]	; (27990 <smp_encrypt_info+0x64>)
   27988:	f00c f8b0 	bl	33aec <z_log_minimal_printk>
			return BT_SMP_ERR_UNSPECIFIED;
   2798c:	2008      	movs	r0, #8
   2798e:	e7f4      	b.n	2797a <smp_encrypt_info+0x4e>
   27990:	0003e6a8 	.word	0x0003e6a8

00027994 <bt_smp_connected>:
{
   27994:	b510      	push	{r4, lr}
	struct bt_smp *smp = CONTAINER_OF(chan, struct bt_smp, chan);
   27996:	f1a0 04f0 	sub.w	r4, r0, #240	; 0xf0
	k_work_init_delayable(&smp->work, smp_timeout);
   2799a:	4904      	ldr	r1, [pc, #16]	; (279ac <bt_smp_connected+0x18>)
   2799c:	30f0      	adds	r0, #240	; 0xf0
   2799e:	f008 feed 	bl	3077c <k_work_init_delayable>
	smp_reset(smp);
   279a2:	4620      	mov	r0, r4
   279a4:	f010 fc14 	bl	381d0 <smp_reset>
}
   279a8:	bd10      	pop	{r4, pc}
   279aa:	bf00      	nop
   279ac:	00028d89 	.word	0x00028d89

000279b0 <smp_f4>:
{
   279b0:	e92d 43f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, lr}
   279b4:	b097      	sub	sp, #92	; 0x5c
   279b6:	4680      	mov	r8, r0
   279b8:	460d      	mov	r5, r1
   279ba:	4614      	mov	r4, r2
   279bc:	461f      	mov	r7, r3
   279be:	9e1e      	ldr	r6, [sp, #120]	; 0x78
	__ASSERT(((psrc < pdst && (psrc + length) <= pdst) ||
   279c0:	ab01      	add	r3, sp, #4
   279c2:	4298      	cmp	r0, r3
   279c4:	d204      	bcs.n	279d0 <smp_f4+0x20>
   279c6:	f100 0320 	add.w	r3, r0, #32
   279ca:	aa01      	add	r2, sp, #4
   279cc:	4293      	cmp	r3, r2
   279ce:	d912      	bls.n	279f6 <smp_f4+0x46>
   279d0:	ab01      	add	r3, sp, #4
   279d2:	4598      	cmp	r8, r3
   279d4:	d902      	bls.n	279dc <smp_f4+0x2c>
   279d6:	ab09      	add	r3, sp, #36	; 0x24
   279d8:	4598      	cmp	r8, r3
   279da:	d20c      	bcs.n	279f6 <smp_f4+0x46>
   279dc:	f8df 90f4 	ldr.w	r9, [pc, #244]	; 27ad4 <smp_f4+0x124>
   279e0:	f240 2217 	movw	r2, #535	; 0x217
   279e4:	4649      	mov	r1, r9
   279e6:	483a      	ldr	r0, [pc, #232]	; (27ad0 <smp_f4+0x120>)
   279e8:	f00b fcdf 	bl	333aa <printk>
   279ec:	f240 2117 	movw	r1, #535	; 0x217
   279f0:	4648      	mov	r0, r9
   279f2:	f00c f873 	bl	33adc <assert_post_action>
	psrc += length - 1;
   279f6:	f108 001f 	add.w	r0, r8, #31
	uint8_t *pdst = (uint8_t *)dst;
   279fa:	ab01      	add	r3, sp, #4
	for (; length > 0; length--) {
   279fc:	2220      	movs	r2, #32
   279fe:	b12a      	cbz	r2, 27a0c <smp_f4+0x5c>
		*pdst++ = *psrc--;
   27a00:	f810 1901 	ldrb.w	r1, [r0], #-1
   27a04:	f803 1b01 	strb.w	r1, [r3], #1
	for (; length > 0; length--) {
   27a08:	3a01      	subs	r2, #1
   27a0a:	e7f8      	b.n	279fe <smp_f4+0x4e>
	__ASSERT(((psrc < pdst && (psrc + length) <= pdst) ||
   27a0c:	ab09      	add	r3, sp, #36	; 0x24
   27a0e:	429d      	cmp	r5, r3
   27a10:	d204      	bcs.n	27a1c <smp_f4+0x6c>
   27a12:	f105 0320 	add.w	r3, r5, #32
   27a16:	aa09      	add	r2, sp, #36	; 0x24
   27a18:	4293      	cmp	r3, r2
   27a1a:	d912      	bls.n	27a42 <smp_f4+0x92>
   27a1c:	ab09      	add	r3, sp, #36	; 0x24
   27a1e:	429d      	cmp	r5, r3
   27a20:	d902      	bls.n	27a28 <smp_f4+0x78>
   27a22:	ab11      	add	r3, sp, #68	; 0x44
   27a24:	429d      	cmp	r5, r3
   27a26:	d20c      	bcs.n	27a42 <smp_f4+0x92>
   27a28:	f8df 80a8 	ldr.w	r8, [pc, #168]	; 27ad4 <smp_f4+0x124>
   27a2c:	f240 2217 	movw	r2, #535	; 0x217
   27a30:	4641      	mov	r1, r8
   27a32:	4827      	ldr	r0, [pc, #156]	; (27ad0 <smp_f4+0x120>)
   27a34:	f00b fcb9 	bl	333aa <printk>
   27a38:	f240 2117 	movw	r1, #535	; 0x217
   27a3c:	4640      	mov	r0, r8
   27a3e:	f00c f84d 	bl	33adc <assert_post_action>
	psrc += length - 1;
   27a42:	f105 011f 	add.w	r1, r5, #31
	uint8_t *pdst = (uint8_t *)dst;
   27a46:	ab09      	add	r3, sp, #36	; 0x24
	for (; length > 0; length--) {
   27a48:	2220      	movs	r2, #32
   27a4a:	b12a      	cbz	r2, 27a58 <smp_f4+0xa8>
		*pdst++ = *psrc--;
   27a4c:	f811 0901 	ldrb.w	r0, [r1], #-1
   27a50:	f803 0b01 	strb.w	r0, [r3], #1
	for (; length > 0; length--) {
   27a54:	3a01      	subs	r2, #1
   27a56:	e7f8      	b.n	27a4a <smp_f4+0x9a>
	m[64] = z;
   27a58:	f88d 7044 	strb.w	r7, [sp, #68]	; 0x44
	__ASSERT(((psrc < pdst && (psrc + length) <= pdst) ||
   27a5c:	ab12      	add	r3, sp, #72	; 0x48
   27a5e:	429c      	cmp	r4, r3
   27a60:	d204      	bcs.n	27a6c <smp_f4+0xbc>
   27a62:	f104 0310 	add.w	r3, r4, #16
   27a66:	aa12      	add	r2, sp, #72	; 0x48
   27a68:	4293      	cmp	r3, r2
   27a6a:	d911      	bls.n	27a90 <smp_f4+0xe0>
   27a6c:	ab12      	add	r3, sp, #72	; 0x48
   27a6e:	429c      	cmp	r4, r3
   27a70:	d902      	bls.n	27a78 <smp_f4+0xc8>
   27a72:	ab16      	add	r3, sp, #88	; 0x58
   27a74:	429c      	cmp	r4, r3
   27a76:	d20b      	bcs.n	27a90 <smp_f4+0xe0>
   27a78:	4d16      	ldr	r5, [pc, #88]	; (27ad4 <smp_f4+0x124>)
   27a7a:	f240 2217 	movw	r2, #535	; 0x217
   27a7e:	4629      	mov	r1, r5
   27a80:	4813      	ldr	r0, [pc, #76]	; (27ad0 <smp_f4+0x120>)
   27a82:	f00b fc92 	bl	333aa <printk>
   27a86:	f240 2117 	movw	r1, #535	; 0x217
   27a8a:	4628      	mov	r0, r5
   27a8c:	f00c f826 	bl	33adc <assert_post_action>
	psrc += length - 1;
   27a90:	f104 020f 	add.w	r2, r4, #15
	uint8_t *pdst = (uint8_t *)dst;
   27a94:	ab12      	add	r3, sp, #72	; 0x48
	for (; length > 0; length--) {
   27a96:	2410      	movs	r4, #16
   27a98:	e004      	b.n	27aa4 <smp_f4+0xf4>
		*pdst++ = *psrc--;
   27a9a:	f812 1901 	ldrb.w	r1, [r2], #-1
   27a9e:	f803 1b01 	strb.w	r1, [r3], #1
	for (; length > 0; length--) {
   27aa2:	3c01      	subs	r4, #1
   27aa4:	2c00      	cmp	r4, #0
   27aa6:	d1f8      	bne.n	27a9a <smp_f4+0xea>
	err = bt_smp_aes_cmac(xs, m, sizeof(m), res);
   27aa8:	4633      	mov	r3, r6
   27aaa:	2241      	movs	r2, #65	; 0x41
   27aac:	a901      	add	r1, sp, #4
   27aae:	a812      	add	r0, sp, #72	; 0x48
   27ab0:	f010 fd11 	bl	384d6 <bt_smp_aes_cmac>
	if (err) {
   27ab4:	b948      	cbnz	r0, 27aca <smp_f4+0x11a>
	for (i = 0; i < (length/2); i++) {
   27ab6:	2c07      	cmp	r4, #7
   27ab8:	d807      	bhi.n	27aca <smp_f4+0x11a>
		uint8_t tmp = ((uint8_t *)buf)[i];
   27aba:	5d32      	ldrb	r2, [r6, r4]
		((uint8_t *)buf)[i] = ((uint8_t *)buf)[length - 1 - i];
   27abc:	f1c4 030f 	rsb	r3, r4, #15
   27ac0:	5cf1      	ldrb	r1, [r6, r3]
   27ac2:	5531      	strb	r1, [r6, r4]
		((uint8_t *)buf)[length - 1 - i] = tmp;
   27ac4:	54f2      	strb	r2, [r6, r3]
	for (i = 0; i < (length/2); i++) {
   27ac6:	3401      	adds	r4, #1
   27ac8:	e7f5      	b.n	27ab6 <smp_f4+0x106>
}
   27aca:	b017      	add	sp, #92	; 0x5c
   27acc:	e8bd 83f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, pc}
   27ad0:	0003bdac 	.word	0x0003bdac
   27ad4:	0003ca88 	.word	0x0003ca88

00027ad8 <smp_send_pairing_confirm>:
{
   27ad8:	b570      	push	{r4, r5, r6, lr}
   27ada:	b082      	sub	sp, #8
   27adc:	4605      	mov	r5, r0
	switch (smp->method) {
   27ade:	7a04      	ldrb	r4, [r0, #8]
   27ae0:	4622      	mov	r2, r4
   27ae2:	2c02      	cmp	r4, #2
   27ae4:	d808      	bhi.n	27af8 <smp_send_pairing_confirm+0x20>
   27ae6:	b263      	sxtb	r3, r4
   27ae8:	bbab      	cbnz	r3, 27b56 <smp_send_pairing_confirm+0x7e>
   27aea:	b144      	cbz	r4, 27afe <smp_send_pairing_confirm+0x26>
		BT_ERR("Unknown pairing method (%u)", smp->method);
   27aec:	2145      	movs	r1, #69	; 0x45
   27aee:	4823      	ldr	r0, [pc, #140]	; (27b7c <smp_send_pairing_confirm+0xa4>)
   27af0:	f00b fffc 	bl	33aec <z_log_minimal_printk>
		return BT_SMP_ERR_UNSPECIFIED;
   27af4:	2008      	movs	r0, #8
   27af6:	e02c      	b.n	27b52 <smp_send_pairing_confirm+0x7a>
	switch (smp->method) {
   27af8:	2c03      	cmp	r4, #3
   27afa:	d1f7      	bne.n	27aec <smp_send_pairing_confirm+0x14>
   27afc:	2400      	movs	r4, #0
	buf = smp_create_pdu(smp, BT_SMP_CMD_PAIRING_CONFIRM, sizeof(*req));
   27afe:	2210      	movs	r2, #16
   27b00:	2103      	movs	r1, #3
   27b02:	4628      	mov	r0, r5
   27b04:	f010 fbec 	bl	382e0 <smp_create_pdu>
	if (!buf) {
   27b08:	4606      	mov	r6, r0
   27b0a:	b3a0      	cbz	r0, 27b76 <smp_send_pairing_confirm+0x9e>
   27b0c:	2110      	movs	r1, #16
   27b0e:	3008      	adds	r0, #8
   27b10:	f001 ff3e 	bl	29990 <net_buf_simple_add>
	if (smp_f4(sc_public_key, smp->pkey, smp->prnd, r, req->val)) {
   27b14:	9000      	str	r0, [sp, #0]
   27b16:	4623      	mov	r3, r4
   27b18:	f105 0227 	add.w	r2, r5, #39	; 0x27
   27b1c:	f105 0157 	add.w	r1, r5, #87	; 0x57
   27b20:	4817      	ldr	r0, [pc, #92]	; (27b80 <smp_send_pairing_confirm+0xa8>)
   27b22:	6800      	ldr	r0, [r0, #0]
   27b24:	f7ff ff44 	bl	279b0 <smp_f4>
   27b28:	bb00      	cbnz	r0, 27b6c <smp_send_pairing_confirm+0x94>
	smp_send(smp, buf, NULL, NULL);
   27b2a:	2300      	movs	r3, #0
   27b2c:	461a      	mov	r2, r3
   27b2e:	4631      	mov	r1, r6
   27b30:	4628      	mov	r0, r5
   27b32:	f010 fc00 	bl	38336 <smp_send>
	atomic_clear_bit(smp->flags, SMP_FLAG_CFM_DELAYED);
   27b36:	3504      	adds	r5, #4
	return __atomic_fetch_and(target, value, __ATOMIC_SEQ_CST);
   27b38:	f3bf 8f5b 	dmb	ish
   27b3c:	e855 3f00 	ldrex	r3, [r5]
   27b40:	f023 0301 	bic.w	r3, r3, #1
   27b44:	e845 3200 	strex	r2, r3, [r5]
   27b48:	2a00      	cmp	r2, #0
   27b4a:	d1f7      	bne.n	27b3c <smp_send_pairing_confirm+0x64>
   27b4c:	f3bf 8f5b 	dmb	ish
	return 0;
   27b50:	2000      	movs	r0, #0
}
   27b52:	b002      	add	sp, #8
   27b54:	bd70      	pop	{r4, r5, r6, pc}
		r = (smp->passkey >> smp->passkey_round) & 0x01;
   27b56:	f8d0 40d8 	ldr.w	r4, [r0, #216]	; 0xd8
   27b5a:	f890 30dc 	ldrb.w	r3, [r0, #220]	; 0xdc
   27b5e:	40dc      	lsrs	r4, r3
   27b60:	f004 0401 	and.w	r4, r4, #1
		r |= 0x80;
   27b64:	f064 047f 	orn	r4, r4, #127	; 0x7f
   27b68:	b2e4      	uxtb	r4, r4
		break;
   27b6a:	e7c8      	b.n	27afe <smp_send_pairing_confirm+0x26>
		net_buf_unref(buf);
   27b6c:	4630      	mov	r0, r6
   27b6e:	f001 fdf7 	bl	29760 <net_buf_unref>
		return BT_SMP_ERR_UNSPECIFIED;
   27b72:	2008      	movs	r0, #8
   27b74:	e7ed      	b.n	27b52 <smp_send_pairing_confirm+0x7a>
		return BT_SMP_ERR_UNSPECIFIED;
   27b76:	2008      	movs	r0, #8
   27b78:	e7eb      	b.n	27b52 <smp_send_pairing_confirm+0x7a>
   27b7a:	bf00      	nop
   27b7c:	0003e684 	.word	0x0003e684
   27b80:	200023a0 	.word	0x200023a0

00027b84 <smp_pairing_confirm>:
{
   27b84:	b538      	push	{r3, r4, r5, lr}
   27b86:	4604      	mov	r4, r0
	struct bt_smp_pairing_confirm *req = (void *)buf->data;
   27b88:	6889      	ldr	r1, [r1, #8]
	atomic_clear_bit(smp->flags, SMP_FLAG_DISPLAY);
   27b8a:	1d05      	adds	r5, r0, #4
   27b8c:	f3bf 8f5b 	dmb	ish
   27b90:	e855 3f00 	ldrex	r3, [r5]
   27b94:	f423 6300 	bic.w	r3, r3, #2048	; 0x800
   27b98:	e845 3200 	strex	r2, r3, [r5]
   27b9c:	2a00      	cmp	r2, #0
   27b9e:	d1f7      	bne.n	27b90 <smp_pairing_confirm+0xc>
   27ba0:	f3bf 8f5b 	dmb	ish
	memcpy(smp->pcnf, req->val, sizeof(smp->pcnf));
   27ba4:	2210      	movs	r2, #16
   27ba6:	f104 0017 	add.w	r0, r4, #23
   27baa:	f00d ffa7 	bl	35afc <memcpy>
	return __atomic_load_n(target, __ATOMIC_SEQ_CST);
   27bae:	f3bf 8f5b 	dmb	ish
   27bb2:	6863      	ldr	r3, [r4, #4]
   27bb4:	f3bf 8f5b 	dmb	ish
	if (!atomic_test_bit(smp->flags, SMP_FLAG_SC)) {
   27bb8:	f013 0f20 	tst.w	r3, #32
   27bbc:	d014      	beq.n	27be8 <smp_pairing_confirm+0x64>
	switch (smp->method) {
   27bbe:	7a22      	ldrb	r2, [r4, #8]
   27bc0:	2a01      	cmp	r2, #1
   27bc2:	d015      	beq.n	27bf0 <smp_pairing_confirm+0x6c>
   27bc4:	2a02      	cmp	r2, #2
   27bc6:	d139      	bne.n	27c3c <smp_pairing_confirm+0xb8>
	return __atomic_fetch_or(target, value, __ATOMIC_SEQ_CST);
   27bc8:	f3bf 8f5b 	dmb	ish
   27bcc:	e854 3f00 	ldrex	r3, [r4]
   27bd0:	f043 0310 	orr.w	r3, r3, #16
   27bd4:	e844 3200 	strex	r2, r3, [r4]
   27bd8:	2a00      	cmp	r2, #0
   27bda:	d1f7      	bne.n	27bcc <smp_pairing_confirm+0x48>
   27bdc:	f3bf 8f5b 	dmb	ish
		return smp_send_pairing_confirm(smp);
   27be0:	4620      	mov	r0, r4
   27be2:	f7ff ff79 	bl	27ad8 <smp_send_pairing_confirm>
}
   27be6:	bd38      	pop	{r3, r4, r5, pc}
		return legacy_pairing_confirm(smp);
   27be8:	4620      	mov	r0, r4
   27bea:	f010 fbfc 	bl	383e6 <legacy_pairing_confirm>
   27bee:	e7fa      	b.n	27be6 <smp_pairing_confirm+0x62>
	return __atomic_load_n(target, __ATOMIC_SEQ_CST);
   27bf0:	f3bf 8f5b 	dmb	ish
   27bf4:	6863      	ldr	r3, [r4, #4]
   27bf6:	f3bf 8f5b 	dmb	ish
		if (atomic_test_bit(smp->flags, SMP_FLAG_USER)) {
   27bfa:	f413 6f80 	tst.w	r3, #1024	; 0x400
   27bfe:	d10f      	bne.n	27c20 <smp_pairing_confirm+0x9c>
	return __atomic_fetch_or(target, value, __ATOMIC_SEQ_CST);
   27c00:	f3bf 8f5b 	dmb	ish
   27c04:	e854 3f00 	ldrex	r3, [r4]
   27c08:	f043 0310 	orr.w	r3, r3, #16
   27c0c:	e844 3200 	strex	r2, r3, [r4]
   27c10:	2a00      	cmp	r2, #0
   27c12:	d1f7      	bne.n	27c04 <smp_pairing_confirm+0x80>
   27c14:	f3bf 8f5b 	dmb	ish
		return smp_send_pairing_confirm(smp);
   27c18:	4620      	mov	r0, r4
   27c1a:	f7ff ff5d 	bl	27ad8 <smp_send_pairing_confirm>
   27c1e:	e7e2      	b.n	27be6 <smp_pairing_confirm+0x62>
   27c20:	f3bf 8f5b 	dmb	ish
   27c24:	e855 3f00 	ldrex	r3, [r5]
   27c28:	f043 0301 	orr.w	r3, r3, #1
   27c2c:	e845 3200 	strex	r2, r3, [r5]
   27c30:	2a00      	cmp	r2, #0
   27c32:	d1f7      	bne.n	27c24 <smp_pairing_confirm+0xa0>
   27c34:	f3bf 8f5b 	dmb	ish
			return 0;
   27c38:	2000      	movs	r0, #0
   27c3a:	e7d4      	b.n	27be6 <smp_pairing_confirm+0x62>
		BT_ERR("Unknown pairing method (%u)", smp->method);
   27c3c:	2145      	movs	r1, #69	; 0x45
   27c3e:	4802      	ldr	r0, [pc, #8]	; (27c48 <smp_pairing_confirm+0xc4>)
   27c40:	f00b ff54 	bl	33aec <z_log_minimal_printk>
		return BT_SMP_ERR_UNSPECIFIED;
   27c44:	2008      	movs	r0, #8
   27c46:	e7ce      	b.n	27be6 <smp_pairing_confirm+0x62>
   27c48:	0003e684 	.word	0x0003e684

00027c4c <smp_public_key_periph>:
{
   27c4c:	b538      	push	{r3, r4, r5, lr}
   27c4e:	4604      	mov	r4, r0
	if (!atomic_test_bit(smp->flags, SMP_FLAG_SC_DEBUG_KEY) &&
   27c50:	1d05      	adds	r5, r0, #4
	return __atomic_load_n(target, __ATOMIC_SEQ_CST);
   27c52:	f3bf 8f5b 	dmb	ish
   27c56:	6843      	ldr	r3, [r0, #4]
   27c58:	f3bf 8f5b 	dmb	ish
   27c5c:	f413 4f80 	tst.w	r3, #16384	; 0x4000
   27c60:	d106      	bne.n	27c70 <smp_public_key_periph+0x24>
	    memcmp(smp->pkey, sc_public_key, BT_PUB_KEY_COORD_LEN) == 0) {
   27c62:	2220      	movs	r2, #32
   27c64:	4b47      	ldr	r3, [pc, #284]	; (27d84 <smp_public_key_periph+0x138>)
   27c66:	6819      	ldr	r1, [r3, #0]
   27c68:	3057      	adds	r0, #87	; 0x57
   27c6a:	f00d ff30 	bl	35ace <memcmp>
	if (!atomic_test_bit(smp->flags, SMP_FLAG_SC_DEBUG_KEY) &&
   27c6e:	b168      	cbz	r0, 27c8c <smp_public_key_periph+0x40>
	err = sc_send_public_key(smp);
   27c70:	4620      	mov	r0, r4
   27c72:	f7ff fae5 	bl	27240 <sc_send_public_key>
	if (err) {
   27c76:	4603      	mov	r3, r0
   27c78:	2800      	cmp	r0, #0
   27c7a:	d16d      	bne.n	27d58 <smp_public_key_periph+0x10c>
	switch (smp->method) {
   27c7c:	7a22      	ldrb	r2, [r4, #8]
   27c7e:	2a05      	cmp	r2, #5
   27c80:	d879      	bhi.n	27d76 <smp_public_key_periph+0x12a>
   27c82:	e8df f002 	tbb	[pc, r2]
   27c86:	3b09      	.short	0x3b09
   27c88:	6b78091c 	.word	0x6b78091c
		BT_WARN("Remote public key rejected");
   27c8c:	2157      	movs	r1, #87	; 0x57
   27c8e:	483e      	ldr	r0, [pc, #248]	; (27d88 <smp_public_key_periph+0x13c>)
   27c90:	f00b ff2c 	bl	33aec <z_log_minimal_printk>
		return BT_SMP_ERR_UNSPECIFIED;
   27c94:	2308      	movs	r3, #8
   27c96:	e05f      	b.n	27d58 <smp_public_key_periph+0x10c>
	return __atomic_fetch_or(target, value, __ATOMIC_SEQ_CST);
   27c98:	f3bf 8f5b 	dmb	ish
   27c9c:	e854 3f00 	ldrex	r3, [r4]
   27ca0:	f043 0310 	orr.w	r3, r3, #16
   27ca4:	e844 3200 	strex	r2, r3, [r4]
   27ca8:	2a00      	cmp	r2, #0
   27caa:	d1f7      	bne.n	27c9c <smp_public_key_periph+0x50>
   27cac:	f3bf 8f5b 	dmb	ish
		err = smp_send_pairing_confirm(smp);
   27cb0:	4620      	mov	r0, r4
   27cb2:	f7ff ff11 	bl	27ad8 <smp_send_pairing_confirm>
		if (err) {
   27cb6:	4603      	mov	r3, r0
   27cb8:	2800      	cmp	r0, #0
   27cba:	d049      	beq.n	27d50 <smp_public_key_periph+0x104>
   27cbc:	e04c      	b.n	27d58 <smp_public_key_periph+0x10c>
		err = display_passkey(smp);
   27cbe:	4620      	mov	r0, r4
   27cc0:	f7ff fae2 	bl	27288 <display_passkey>
		if (err) {
   27cc4:	4603      	mov	r3, r0
   27cc6:	2800      	cmp	r0, #0
   27cc8:	d146      	bne.n	27d58 <smp_public_key_periph+0x10c>
   27cca:	f3bf 8f5b 	dmb	ish
   27cce:	e854 3f00 	ldrex	r3, [r4]
   27cd2:	f043 0308 	orr.w	r3, r3, #8
   27cd6:	e844 3200 	strex	r2, r3, [r4]
   27cda:	2a00      	cmp	r2, #0
   27cdc:	d1f7      	bne.n	27cce <smp_public_key_periph+0x82>
   27cde:	f3bf 8f5b 	dmb	ish
   27ce2:	f3bf 8f5b 	dmb	ish
   27ce6:	e854 3f00 	ldrex	r3, [r4]
   27cea:	f443 4380 	orr.w	r3, r3, #16384	; 0x4000
   27cee:	e844 3200 	strex	r2, r3, [r4]
   27cf2:	2a00      	cmp	r2, #0
   27cf4:	d1f7      	bne.n	27ce6 <smp_public_key_periph+0x9a>
   27cf6:	f3bf 8f5b 	dmb	ish
}
   27cfa:	e029      	b.n	27d50 <smp_public_key_periph+0x104>
   27cfc:	f3bf 8f5b 	dmb	ish
   27d00:	e854 3f00 	ldrex	r3, [r4]
   27d04:	f043 0308 	orr.w	r3, r3, #8
   27d08:	e844 3200 	strex	r2, r3, [r4]
   27d0c:	2a00      	cmp	r2, #0
   27d0e:	d1f7      	bne.n	27d00 <smp_public_key_periph+0xb4>
   27d10:	f3bf 8f5b 	dmb	ish
   27d14:	f3bf 8f5b 	dmb	ish
   27d18:	e854 3f00 	ldrex	r3, [r4]
   27d1c:	f443 4380 	orr.w	r3, r3, #16384	; 0x4000
   27d20:	e844 3200 	strex	r2, r3, [r4]
   27d24:	2a00      	cmp	r2, #0
   27d26:	d1f7      	bne.n	27d18 <smp_public_key_periph+0xcc>
   27d28:	f3bf 8f5b 	dmb	ish
   27d2c:	f3bf 8f5b 	dmb	ish
   27d30:	e855 3f00 	ldrex	r3, [r5]
   27d34:	f443 6380 	orr.w	r3, r3, #1024	; 0x400
   27d38:	e845 3200 	strex	r2, r3, [r5]
   27d3c:	2a00      	cmp	r2, #0
   27d3e:	d1f7      	bne.n	27d30 <smp_public_key_periph+0xe4>
   27d40:	f3bf 8f5b 	dmb	ish
		bt_auth->passkey_entry(smp->chan.chan.conn);
   27d44:	4b11      	ldr	r3, [pc, #68]	; (27d8c <smp_public_key_periph+0x140>)
   27d46:	681b      	ldr	r3, [r3, #0]
   27d48:	685b      	ldr	r3, [r3, #4]
   27d4a:	f8d4 00f0 	ldr.w	r0, [r4, #240]	; 0xf0
   27d4e:	4798      	blx	r3
	return generate_dhkey(smp);
   27d50:	4620      	mov	r0, r4
   27d52:	f010 fc95 	bl	38680 <generate_dhkey>
   27d56:	4603      	mov	r3, r0
}
   27d58:	4618      	mov	r0, r3
   27d5a:	bd38      	pop	{r3, r4, r5, pc}
   27d5c:	f3bf 8f5b 	dmb	ish
   27d60:	e854 3f00 	ldrex	r3, [r4]
   27d64:	f043 0310 	orr.w	r3, r3, #16
   27d68:	e844 3200 	strex	r2, r3, [r4]
   27d6c:	2a00      	cmp	r2, #0
   27d6e:	d1f7      	bne.n	27d60 <smp_public_key_periph+0x114>
   27d70:	f3bf 8f5b 	dmb	ish
   27d74:	e7ec      	b.n	27d50 <smp_public_key_periph+0x104>
		BT_ERR("Unknown pairing method (%u)", smp->method);
   27d76:	2145      	movs	r1, #69	; 0x45
   27d78:	4805      	ldr	r0, [pc, #20]	; (27d90 <smp_public_key_periph+0x144>)
   27d7a:	f00b feb7 	bl	33aec <z_log_minimal_printk>
		return BT_SMP_ERR_UNSPECIFIED;
   27d7e:	2308      	movs	r3, #8
   27d80:	e7ea      	b.n	27d58 <smp_public_key_periph+0x10c>
   27d82:	bf00      	nop
   27d84:	200023a0 	.word	0x200023a0
   27d88:	0003e6c8 	.word	0x0003e6c8
   27d8c:	200022e4 	.word	0x200022e4
   27d90:	0003e684 	.word	0x0003e684

00027d94 <smp_public_key>:
{
   27d94:	b570      	push	{r4, r5, r6, lr}
   27d96:	4604      	mov	r4, r0
	struct bt_smp_public_key *req = (void *)buf->data;
   27d98:	688e      	ldr	r6, [r1, #8]
	memcpy(smp->pkey, req->x, BT_PUB_KEY_COORD_LEN);
   27d9a:	f100 0557 	add.w	r5, r0, #87	; 0x57
   27d9e:	2220      	movs	r2, #32
   27da0:	4631      	mov	r1, r6
   27da2:	4628      	mov	r0, r5
   27da4:	f00d feaa 	bl	35afc <memcpy>
	memcpy(&smp->pkey[BT_PUB_KEY_COORD_LEN], req->y, BT_PUB_KEY_COORD_LEN);
   27da8:	2220      	movs	r2, #32
   27daa:	18b1      	adds	r1, r6, r2
   27dac:	f104 0077 	add.w	r0, r4, #119	; 0x77
   27db0:	f00d fea4 	bl	35afc <memcpy>
	if (bt_pub_key_is_debug(smp->pkey)) {
   27db4:	4628      	mov	r0, r5
   27db6:	f7fb f943 	bl	23040 <bt_pub_key_is_debug>
   27dba:	b1a0      	cbz	r0, 27de6 <smp_public_key+0x52>
		BT_INFO("Remote is using Debug Public key");
   27dbc:	2149      	movs	r1, #73	; 0x49
   27dbe:	4816      	ldr	r0, [pc, #88]	; (27e18 <smp_public_key+0x84>)
   27dc0:	f00b fe94 	bl	33aec <z_log_minimal_printk>
		atomic_set_bit(smp->flags, SMP_FLAG_SC_DEBUG_KEY);
   27dc4:	1d23      	adds	r3, r4, #4
   27dc6:	f3bf 8f5b 	dmb	ish
   27dca:	e853 2f00 	ldrex	r2, [r3]
   27dce:	f442 4280 	orr.w	r2, r2, #16384	; 0x4000
   27dd2:	e843 2100 	strex	r1, r2, [r3]
   27dd6:	2900      	cmp	r1, #0
   27dd8:	d1f7      	bne.n	27dca <smp_public_key+0x36>
   27dda:	f3bf 8f5b 	dmb	ish
		if (!update_debug_keys_check(smp)) {
   27dde:	4620      	mov	r0, r4
   27de0:	f010 fb9b 	bl	3851a <update_debug_keys_check>
   27de4:	b1a8      	cbz	r0, 27e12 <smp_public_key+0x7e>
	if (!sc_public_key) {
   27de6:	4b0d      	ldr	r3, [pc, #52]	; (27e1c <smp_public_key+0x88>)
   27de8:	681b      	ldr	r3, [r3, #0]
   27dea:	b11b      	cbz	r3, 27df4 <smp_public_key+0x60>
	err = smp_public_key_periph(smp);
   27dec:	4620      	mov	r0, r4
   27dee:	f7ff ff2d 	bl	27c4c <smp_public_key_periph>
}
   27df2:	bd70      	pop	{r4, r5, r6, pc}
		atomic_set_bit(smp->flags, SMP_FLAG_PKEY_SEND);
   27df4:	3404      	adds	r4, #4
   27df6:	f3bf 8f5b 	dmb	ish
   27dfa:	e854 3f00 	ldrex	r3, [r4]
   27dfe:	f043 0340 	orr.w	r3, r3, #64	; 0x40
   27e02:	e844 3200 	strex	r2, r3, [r4]
   27e06:	2a00      	cmp	r2, #0
   27e08:	d1f7      	bne.n	27dfa <smp_public_key+0x66>
   27e0a:	f3bf 8f5b 	dmb	ish
		return 0;
   27e0e:	2000      	movs	r0, #0
   27e10:	e7ef      	b.n	27df2 <smp_public_key+0x5e>
			return BT_SMP_ERR_AUTH_REQUIREMENTS;
   27e12:	2003      	movs	r0, #3
   27e14:	e7ed      	b.n	27df2 <smp_public_key+0x5e>
   27e16:	bf00      	nop
   27e18:	0003e6e8 	.word	0x0003e6e8
   27e1c:	200023a0 	.word	0x200023a0

00027e20 <sc_smp_check_confirm>:
{
   27e20:	b510      	push	{r4, lr}
   27e22:	b086      	sub	sp, #24
   27e24:	4604      	mov	r4, r0
	switch (smp->method) {
   27e26:	7a02      	ldrb	r2, [r0, #8]
   27e28:	2a05      	cmp	r2, #5
   27e2a:	d80f      	bhi.n	27e4c <sc_smp_check_confirm+0x2c>
   27e2c:	e8df f002 	tbb	[pc, r2]
   27e30:	14030314 	.word	0x14030314
   27e34:	2f0e      	.short	0x2f0e
		r = (smp->passkey >> smp->passkey_round) & 0x01;
   27e36:	f8d0 30d8 	ldr.w	r3, [r0, #216]	; 0xd8
   27e3a:	f890 20dc 	ldrb.w	r2, [r0, #220]	; 0xdc
   27e3e:	40d3      	lsrs	r3, r2
   27e40:	f003 0301 	and.w	r3, r3, #1
		r |= 0x80;
   27e44:	f063 037f 	orn	r3, r3, #127	; 0x7f
   27e48:	b2db      	uxtb	r3, r3
		break;
   27e4a:	e006      	b.n	27e5a <sc_smp_check_confirm+0x3a>
		BT_ERR("Unknown pairing method (%u)", smp->method);
   27e4c:	2145      	movs	r1, #69	; 0x45
   27e4e:	4812      	ldr	r0, [pc, #72]	; (27e98 <sc_smp_check_confirm+0x78>)
   27e50:	f00b fe4c 	bl	33aec <z_log_minimal_printk>
		return BT_SMP_ERR_UNSPECIFIED;
   27e54:	2008      	movs	r0, #8
   27e56:	e012      	b.n	27e7e <sc_smp_check_confirm+0x5e>
	switch (smp->method) {
   27e58:	2300      	movs	r3, #0
	if (smp_f4(smp->pkey, sc_public_key, smp->rrnd, r, cfm)) {
   27e5a:	aa02      	add	r2, sp, #8
   27e5c:	9200      	str	r2, [sp, #0]
   27e5e:	f104 0237 	add.w	r2, r4, #55	; 0x37
   27e62:	490e      	ldr	r1, [pc, #56]	; (27e9c <sc_smp_check_confirm+0x7c>)
   27e64:	6809      	ldr	r1, [r1, #0]
   27e66:	f104 0057 	add.w	r0, r4, #87	; 0x57
   27e6a:	f7ff fda1 	bl	279b0 <smp_f4>
   27e6e:	b940      	cbnz	r0, 27e82 <sc_smp_check_confirm+0x62>
	if (memcmp(smp->pcnf, cfm, 16)) {
   27e70:	2210      	movs	r2, #16
   27e72:	a902      	add	r1, sp, #8
   27e74:	f104 0017 	add.w	r0, r4, #23
   27e78:	f00d fe29 	bl	35ace <memcmp>
   27e7c:	b948      	cbnz	r0, 27e92 <sc_smp_check_confirm+0x72>
}
   27e7e:	b006      	add	sp, #24
   27e80:	bd10      	pop	{r4, pc}
		BT_ERR("Calculate confirm failed");
   27e82:	2145      	movs	r1, #69	; 0x45
   27e84:	4806      	ldr	r0, [pc, #24]	; (27ea0 <sc_smp_check_confirm+0x80>)
   27e86:	f00b fe31 	bl	33aec <z_log_minimal_printk>
		return BT_SMP_ERR_UNSPECIFIED;
   27e8a:	2008      	movs	r0, #8
   27e8c:	e7f7      	b.n	27e7e <sc_smp_check_confirm+0x5e>
	switch (smp->method) {
   27e8e:	2000      	movs	r0, #0
   27e90:	e7f5      	b.n	27e7e <sc_smp_check_confirm+0x5e>
		return BT_SMP_ERR_CONFIRM_FAILED;
   27e92:	2004      	movs	r0, #4
   27e94:	e7f3      	b.n	27e7e <sc_smp_check_confirm+0x5e>
   27e96:	bf00      	nop
   27e98:	0003e684 	.word	0x0003e684
   27e9c:	200023a0 	.word	0x200023a0
   27ea0:	0003e710 	.word	0x0003e710

00027ea4 <smp_g2>:
{
   27ea4:	e92d 43f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, lr}
   27ea8:	b099      	sub	sp, #100	; 0x64
   27eaa:	4607      	mov	r7, r0
   27eac:	460e      	mov	r6, r1
   27eae:	4614      	mov	r4, r2
   27eb0:	461d      	mov	r5, r3
   27eb2:	f8dd 8080 	ldr.w	r8, [sp, #128]	; 0x80
	__ASSERT(((psrc < pdst && (psrc + length) <= pdst) ||
   27eb6:	ab04      	add	r3, sp, #16
   27eb8:	4298      	cmp	r0, r3
   27eba:	d204      	bcs.n	27ec6 <smp_g2+0x22>
   27ebc:	f100 0320 	add.w	r3, r0, #32
   27ec0:	aa04      	add	r2, sp, #16
   27ec2:	4293      	cmp	r3, r2
   27ec4:	d912      	bls.n	27eec <smp_g2+0x48>
   27ec6:	ab04      	add	r3, sp, #16
   27ec8:	429f      	cmp	r7, r3
   27eca:	d902      	bls.n	27ed2 <smp_g2+0x2e>
   27ecc:	ab0c      	add	r3, sp, #48	; 0x30
   27ece:	429f      	cmp	r7, r3
   27ed0:	d20c      	bcs.n	27eec <smp_g2+0x48>
   27ed2:	f8df 915c 	ldr.w	r9, [pc, #348]	; 28030 <smp_g2+0x18c>
   27ed6:	f240 2217 	movw	r2, #535	; 0x217
   27eda:	4649      	mov	r1, r9
   27edc:	4853      	ldr	r0, [pc, #332]	; (2802c <smp_g2+0x188>)
   27ede:	f00b fa64 	bl	333aa <printk>
   27ee2:	f240 2117 	movw	r1, #535	; 0x217
   27ee6:	4648      	mov	r0, r9
   27ee8:	f00b fdf8 	bl	33adc <assert_post_action>
	psrc += length - 1;
   27eec:	371f      	adds	r7, #31
	uint8_t *pdst = (uint8_t *)dst;
   27eee:	ab04      	add	r3, sp, #16
	for (; length > 0; length--) {
   27ef0:	2220      	movs	r2, #32
   27ef2:	b12a      	cbz	r2, 27f00 <smp_g2+0x5c>
		*pdst++ = *psrc--;
   27ef4:	f817 1901 	ldrb.w	r1, [r7], #-1
   27ef8:	f803 1b01 	strb.w	r1, [r3], #1
	for (; length > 0; length--) {
   27efc:	3a01      	subs	r2, #1
   27efe:	e7f8      	b.n	27ef2 <smp_g2+0x4e>
	__ASSERT(((psrc < pdst && (psrc + length) <= pdst) ||
   27f00:	ab0c      	add	r3, sp, #48	; 0x30
   27f02:	429e      	cmp	r6, r3
   27f04:	d204      	bcs.n	27f10 <smp_g2+0x6c>
   27f06:	f106 0320 	add.w	r3, r6, #32
   27f0a:	aa0c      	add	r2, sp, #48	; 0x30
   27f0c:	4293      	cmp	r3, r2
   27f0e:	d911      	bls.n	27f34 <smp_g2+0x90>
   27f10:	ab0c      	add	r3, sp, #48	; 0x30
   27f12:	429e      	cmp	r6, r3
   27f14:	d902      	bls.n	27f1c <smp_g2+0x78>
   27f16:	ab14      	add	r3, sp, #80	; 0x50
   27f18:	429e      	cmp	r6, r3
   27f1a:	d20b      	bcs.n	27f34 <smp_g2+0x90>
   27f1c:	4f44      	ldr	r7, [pc, #272]	; (28030 <smp_g2+0x18c>)
   27f1e:	f240 2217 	movw	r2, #535	; 0x217
   27f22:	4639      	mov	r1, r7
   27f24:	4841      	ldr	r0, [pc, #260]	; (2802c <smp_g2+0x188>)
   27f26:	f00b fa40 	bl	333aa <printk>
   27f2a:	f240 2117 	movw	r1, #535	; 0x217
   27f2e:	4638      	mov	r0, r7
   27f30:	f00b fdd4 	bl	33adc <assert_post_action>
	psrc += length - 1;
   27f34:	361f      	adds	r6, #31
	uint8_t *pdst = (uint8_t *)dst;
   27f36:	ab0c      	add	r3, sp, #48	; 0x30
	for (; length > 0; length--) {
   27f38:	2220      	movs	r2, #32
   27f3a:	b12a      	cbz	r2, 27f48 <smp_g2+0xa4>
		*pdst++ = *psrc--;
   27f3c:	f816 1901 	ldrb.w	r1, [r6], #-1
   27f40:	f803 1b01 	strb.w	r1, [r3], #1
	for (; length > 0; length--) {
   27f44:	3a01      	subs	r2, #1
   27f46:	e7f8      	b.n	27f3a <smp_g2+0x96>
	__ASSERT(((psrc < pdst && (psrc + length) <= pdst) ||
   27f48:	ab14      	add	r3, sp, #80	; 0x50
   27f4a:	429d      	cmp	r5, r3
   27f4c:	d204      	bcs.n	27f58 <smp_g2+0xb4>
   27f4e:	f105 0310 	add.w	r3, r5, #16
   27f52:	aa14      	add	r2, sp, #80	; 0x50
   27f54:	4293      	cmp	r3, r2
   27f56:	d911      	bls.n	27f7c <smp_g2+0xd8>
   27f58:	ab14      	add	r3, sp, #80	; 0x50
   27f5a:	429d      	cmp	r5, r3
   27f5c:	d902      	bls.n	27f64 <smp_g2+0xc0>
   27f5e:	ab18      	add	r3, sp, #96	; 0x60
   27f60:	429d      	cmp	r5, r3
   27f62:	d20b      	bcs.n	27f7c <smp_g2+0xd8>
   27f64:	4e32      	ldr	r6, [pc, #200]	; (28030 <smp_g2+0x18c>)
   27f66:	f240 2217 	movw	r2, #535	; 0x217
   27f6a:	4631      	mov	r1, r6
   27f6c:	482f      	ldr	r0, [pc, #188]	; (2802c <smp_g2+0x188>)
   27f6e:	f00b fa1c 	bl	333aa <printk>
   27f72:	f240 2117 	movw	r1, #535	; 0x217
   27f76:	4630      	mov	r0, r6
   27f78:	f00b fdb0 	bl	33adc <assert_post_action>
	psrc += length - 1;
   27f7c:	350f      	adds	r5, #15
	uint8_t *pdst = (uint8_t *)dst;
   27f7e:	ab14      	add	r3, sp, #80	; 0x50
	for (; length > 0; length--) {
   27f80:	2210      	movs	r2, #16
   27f82:	b12a      	cbz	r2, 27f90 <smp_g2+0xec>
		*pdst++ = *psrc--;
   27f84:	f815 1901 	ldrb.w	r1, [r5], #-1
   27f88:	f803 1b01 	strb.w	r1, [r3], #1
	for (; length > 0; length--) {
   27f8c:	3a01      	subs	r2, #1
   27f8e:	e7f8      	b.n	27f82 <smp_g2+0xde>
	__ASSERT(((psrc < pdst && (psrc + length) <= pdst) ||
   27f90:	466b      	mov	r3, sp
   27f92:	429c      	cmp	r4, r3
   27f94:	d204      	bcs.n	27fa0 <smp_g2+0xfc>
   27f96:	f104 0310 	add.w	r3, r4, #16
   27f9a:	466a      	mov	r2, sp
   27f9c:	4293      	cmp	r3, r2
   27f9e:	d911      	bls.n	27fc4 <smp_g2+0x120>
   27fa0:	466b      	mov	r3, sp
   27fa2:	429c      	cmp	r4, r3
   27fa4:	d902      	bls.n	27fac <smp_g2+0x108>
   27fa6:	ab04      	add	r3, sp, #16
   27fa8:	429c      	cmp	r4, r3
   27faa:	d20b      	bcs.n	27fc4 <smp_g2+0x120>
   27fac:	4d20      	ldr	r5, [pc, #128]	; (28030 <smp_g2+0x18c>)
   27fae:	f240 2217 	movw	r2, #535	; 0x217
   27fb2:	4629      	mov	r1, r5
   27fb4:	481d      	ldr	r0, [pc, #116]	; (2802c <smp_g2+0x188>)
   27fb6:	f00b f9f8 	bl	333aa <printk>
   27fba:	f240 2117 	movw	r1, #535	; 0x217
   27fbe:	4628      	mov	r0, r5
   27fc0:	f00b fd8c 	bl	33adc <assert_post_action>
	psrc += length - 1;
   27fc4:	340f      	adds	r4, #15
	uint8_t *pdst = (uint8_t *)dst;
   27fc6:	466b      	mov	r3, sp
	for (; length > 0; length--) {
   27fc8:	2210      	movs	r2, #16
   27fca:	e004      	b.n	27fd6 <smp_g2+0x132>
		*pdst++ = *psrc--;
   27fcc:	f814 1901 	ldrb.w	r1, [r4], #-1
   27fd0:	f803 1b01 	strb.w	r1, [r3], #1
	for (; length > 0; length--) {
   27fd4:	3a01      	subs	r2, #1
   27fd6:	2a00      	cmp	r2, #0
   27fd8:	d1f8      	bne.n	27fcc <smp_g2+0x128>
	err = bt_smp_aes_cmac(xs, m, sizeof(m), xs);
   27fda:	466b      	mov	r3, sp
   27fdc:	2250      	movs	r2, #80	; 0x50
   27fde:	a904      	add	r1, sp, #16
   27fe0:	4668      	mov	r0, sp
   27fe2:	f010 fa78 	bl	384d6 <bt_smp_aes_cmac>
	if (err) {
   27fe6:	4604      	mov	r4, r0
   27fe8:	b118      	cbz	r0, 27ff2 <smp_g2+0x14e>
}
   27fea:	4620      	mov	r0, r4
   27fec:	b019      	add	sp, #100	; 0x64
   27fee:	e8bd 83f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, pc}
	memcpy(passkey, xs + 12, 4);
   27ff2:	2204      	movs	r2, #4
   27ff4:	a903      	add	r1, sp, #12
   27ff6:	4640      	mov	r0, r8
   27ff8:	f00d fd80 	bl	35afc <memcpy>
	*passkey = sys_be32_to_cpu(*passkey) % 1000000;
   27ffc:	f8d8 2000 	ldr.w	r2, [r8]
   28000:	0a13      	lsrs	r3, r2, #8
   28002:	f403 437f 	and.w	r3, r3, #65280	; 0xff00
   28006:	ea43 6312 	orr.w	r3, r3, r2, lsr #24
   2800a:	0211      	lsls	r1, r2, #8
   2800c:	f401 017f 	and.w	r1, r1, #16711680	; 0xff0000
   28010:	430b      	orrs	r3, r1
   28012:	ea43 6302 	orr.w	r3, r3, r2, lsl #24
   28016:	4a07      	ldr	r2, [pc, #28]	; (28034 <smp_g2+0x190>)
   28018:	fba2 1203 	umull	r1, r2, r2, r3
   2801c:	0c92      	lsrs	r2, r2, #18
   2801e:	4906      	ldr	r1, [pc, #24]	; (28038 <smp_g2+0x194>)
   28020:	fb01 3212 	mls	r2, r1, r2, r3
   28024:	f8c8 2000 	str.w	r2, [r8]
	return 0;
   28028:	e7df      	b.n	27fea <smp_g2+0x146>
   2802a:	bf00      	nop
   2802c:	0003bdac 	.word	0x0003bdac
   28030:	0003ca88 	.word	0x0003ca88
   28034:	431bde83 	.word	0x431bde83
   28038:	000f4240 	.word	0x000f4240

0002803c <smp_pairing_random>:
{
   2803c:	b5f0      	push	{r4, r5, r6, r7, lr}
   2803e:	b085      	sub	sp, #20
   28040:	4604      	mov	r4, r0
	memcpy(smp->rrnd, req->val, sizeof(smp->rrnd));
   28042:	f100 0537 	add.w	r5, r0, #55	; 0x37
   28046:	2210      	movs	r2, #16
   28048:	6889      	ldr	r1, [r1, #8]
   2804a:	4628      	mov	r0, r5
   2804c:	f00d fd56 	bl	35afc <memcpy>
	return __atomic_load_n(target, __ATOMIC_SEQ_CST);
   28050:	f3bf 8f5b 	dmb	ish
   28054:	6863      	ldr	r3, [r4, #4]
   28056:	f3bf 8f5b 	dmb	ish
	if (!atomic_test_bit(smp->flags, SMP_FLAG_SC)) {
   2805a:	f013 0f20 	tst.w	r3, #32
   2805e:	d009      	beq.n	28074 <smp_pairing_random+0x38>
   28060:	1d26      	adds	r6, r4, #4
	switch (smp->method) {
   28062:	7a22      	ldrb	r2, [r4, #8]
   28064:	2a05      	cmp	r2, #5
   28066:	f200 80b9 	bhi.w	281dc <smp_pairing_random+0x1a0>
   2806a:	e8df f002 	tbb	[pc, r2]
   2806e:	4829      	.short	0x4829
   28070:	8bb70848 	.word	0x8bb70848
		return legacy_pairing_random(smp);
   28074:	4620      	mov	r0, r4
   28076:	f7ff f895 	bl	271a4 <legacy_pairing_random>
   2807a:	4605      	mov	r5, r0
   2807c:	e03c      	b.n	280f8 <smp_pairing_random+0xbc>
		if (smp_g2(smp->pkey, sc_public_key, smp->rrnd, smp->prnd,
   2807e:	ab03      	add	r3, sp, #12
   28080:	9300      	str	r3, [sp, #0]
   28082:	f104 0327 	add.w	r3, r4, #39	; 0x27
   28086:	462a      	mov	r2, r5
   28088:	495b      	ldr	r1, [pc, #364]	; (281f8 <smp_pairing_random+0x1bc>)
   2808a:	6809      	ldr	r1, [r1, #0]
   2808c:	f104 0057 	add.w	r0, r4, #87	; 0x57
   28090:	f7ff ff08 	bl	27ea4 <smp_g2>
   28094:	2800      	cmp	r0, #0
   28096:	f040 80a7 	bne.w	281e8 <smp_pairing_random+0x1ac>
	return __atomic_fetch_or(target, value, __ATOMIC_SEQ_CST);
   2809a:	f3bf 8f5b 	dmb	ish
   2809e:	e856 3f00 	ldrex	r3, [r6]
   280a2:	f443 6380 	orr.w	r3, r3, #1024	; 0x400
   280a6:	e846 3200 	strex	r2, r3, [r6]
   280aa:	2a00      	cmp	r2, #0
   280ac:	d1f7      	bne.n	2809e <smp_pairing_random+0x62>
   280ae:	f3bf 8f5b 	dmb	ish
		bt_auth->passkey_confirm(smp->chan.chan.conn, passkey);
   280b2:	4b52      	ldr	r3, [pc, #328]	; (281fc <smp_pairing_random+0x1c0>)
   280b4:	681b      	ldr	r3, [r3, #0]
   280b6:	689b      	ldr	r3, [r3, #8]
   280b8:	9903      	ldr	r1, [sp, #12]
   280ba:	f8d4 00f0 	ldr.w	r0, [r4, #240]	; 0xf0
   280be:	4798      	blx	r3
   280c0:	f3bf 8f5b 	dmb	ish
   280c4:	e854 3f00 	ldrex	r3, [r4]
   280c8:	f443 5300 	orr.w	r3, r3, #8192	; 0x2000
   280cc:	e844 3200 	strex	r2, r3, [r4]
   280d0:	2a00      	cmp	r2, #0
   280d2:	d1f7      	bne.n	280c4 <smp_pairing_random+0x88>
   280d4:	f3bf 8f5b 	dmb	ish
   280d8:	f3bf 8f5b 	dmb	ish
   280dc:	e856 3f00 	ldrex	r3, [r6]
   280e0:	f443 3380 	orr.w	r3, r3, #65536	; 0x10000
   280e4:	e846 3200 	strex	r2, r3, [r6]
   280e8:	2a00      	cmp	r2, #0
   280ea:	d1f7      	bne.n	280dc <smp_pairing_random+0xa0>
   280ec:	f3bf 8f5b 	dmb	ish
	return smp_send_pairing_random(smp);
   280f0:	4620      	mov	r0, r4
   280f2:	f010 f9ba 	bl	3846a <smp_send_pairing_random>
   280f6:	4605      	mov	r5, r0
}
   280f8:	4628      	mov	r0, r5
   280fa:	b005      	add	sp, #20
   280fc:	bdf0      	pop	{r4, r5, r6, r7, pc}
		err = sc_smp_check_confirm(smp);
   280fe:	4620      	mov	r0, r4
   28100:	f7ff fe8e 	bl	27e20 <sc_smp_check_confirm>
		if (err) {
   28104:	4605      	mov	r5, r0
   28106:	2800      	cmp	r0, #0
   28108:	d1f6      	bne.n	280f8 <smp_pairing_random+0xbc>
		atomic_set_bit(smp->allowed_cmds,
   2810a:	4627      	mov	r7, r4
   2810c:	f3bf 8f5b 	dmb	ish
   28110:	e854 3f00 	ldrex	r3, [r4]
   28114:	f043 0308 	orr.w	r3, r3, #8
   28118:	e844 3200 	strex	r2, r3, [r4]
   2811c:	2a00      	cmp	r2, #0
   2811e:	d1f7      	bne.n	28110 <smp_pairing_random+0xd4>
   28120:	f3bf 8f5b 	dmb	ish
		err = smp_send_pairing_random(smp);
   28124:	4620      	mov	r0, r4
   28126:	f010 f9a0 	bl	3846a <smp_send_pairing_random>
		if (err) {
   2812a:	4605      	mov	r5, r0
   2812c:	2800      	cmp	r0, #0
   2812e:	d1e3      	bne.n	280f8 <smp_pairing_random+0xbc>
		smp->passkey_round++;
   28130:	f894 30dc 	ldrb.w	r3, [r4, #220]	; 0xdc
   28134:	3301      	adds	r3, #1
   28136:	b2db      	uxtb	r3, r3
   28138:	f884 30dc 	strb.w	r3, [r4, #220]	; 0xdc
		if (smp->passkey_round == 20U) {
   2813c:	2b14      	cmp	r3, #20
   2813e:	d008      	beq.n	28152 <smp_pairing_random+0x116>
		if (bt_rand(smp->prnd, 16)) {
   28140:	2110      	movs	r1, #16
   28142:	f104 0027 	add.w	r0, r4, #39	; 0x27
   28146:	f004 f995 	bl	2c474 <bt_rand>
   2814a:	2800      	cmp	r0, #0
   2814c:	d0d4      	beq.n	280f8 <smp_pairing_random+0xbc>
			return BT_SMP_ERR_UNSPECIFIED;
   2814e:	2508      	movs	r5, #8
   28150:	e7d2      	b.n	280f8 <smp_pairing_random+0xbc>
   28152:	f3bf 8f5b 	dmb	ish
   28156:	e857 3f00 	ldrex	r3, [r7]
   2815a:	f443 5300 	orr.w	r3, r3, #8192	; 0x2000
   2815e:	e847 3200 	strex	r2, r3, [r7]
   28162:	2a00      	cmp	r2, #0
   28164:	d1f7      	bne.n	28156 <smp_pairing_random+0x11a>
   28166:	f3bf 8f5b 	dmb	ish
   2816a:	f3bf 8f5b 	dmb	ish
   2816e:	e856 3f00 	ldrex	r3, [r6]
   28172:	f443 3380 	orr.w	r3, r3, #65536	; 0x10000
   28176:	e846 3200 	strex	r2, r3, [r6]
   2817a:	2a00      	cmp	r2, #0
   2817c:	d1f7      	bne.n	2816e <smp_pairing_random+0x132>
   2817e:	f3bf 8f5b 	dmb	ish
			return 0;
   28182:	e7b9      	b.n	280f8 <smp_pairing_random+0xbc>
		if (bt_rand(smp->prnd, 16)) {
   28184:	2110      	movs	r1, #16
   28186:	f104 0027 	add.w	r0, r4, #39	; 0x27
   2818a:	f004 f973 	bl	2c474 <bt_rand>
   2818e:	bb68      	cbnz	r0, 281ec <smp_pairing_random+0x1b0>
		if (bt_auth && bt_auth->oob_data_request) {
   28190:	4b1a      	ldr	r3, [pc, #104]	; (281fc <smp_pairing_random+0x1c0>)
   28192:	681b      	ldr	r3, [r3, #0]
   28194:	b363      	cbz	r3, 281f0 <smp_pairing_random+0x1b4>
   28196:	68db      	ldr	r3, [r3, #12]
   28198:	b363      	cbz	r3, 281f4 <smp_pairing_random+0x1b8>
			struct bt_conn_oob_info info = {
   2819a:	4b19      	ldr	r3, [pc, #100]	; (28200 <smp_pairing_random+0x1c4>)
   2819c:	881b      	ldrh	r3, [r3, #0]
   2819e:	f8ad 3008 	strh.w	r3, [sp, #8]
			le_sc_oob_config_set(smp, &info);
   281a2:	a902      	add	r1, sp, #8
   281a4:	4620      	mov	r0, r4
   281a6:	f00f ff46 	bl	38036 <le_sc_oob_config_set>
			smp->oobd_local = NULL;
   281aa:	2500      	movs	r5, #0
   281ac:	f8c4 50e0 	str.w	r5, [r4, #224]	; 0xe0
			smp->oobd_remote = NULL;
   281b0:	f8c4 50e4 	str.w	r5, [r4, #228]	; 0xe4
   281b4:	f3bf 8f5b 	dmb	ish
   281b8:	e856 3f00 	ldrex	r3, [r6]
   281bc:	f443 5380 	orr.w	r3, r3, #4096	; 0x1000
   281c0:	e846 3200 	strex	r2, r3, [r6]
   281c4:	2a00      	cmp	r2, #0
   281c6:	d1f7      	bne.n	281b8 <smp_pairing_random+0x17c>
   281c8:	f3bf 8f5b 	dmb	ish
			bt_auth->oob_data_request(smp->chan.chan.conn, &info);
   281cc:	4b0b      	ldr	r3, [pc, #44]	; (281fc <smp_pairing_random+0x1c0>)
   281ce:	681b      	ldr	r3, [r3, #0]
   281d0:	68db      	ldr	r3, [r3, #12]
   281d2:	a902      	add	r1, sp, #8
   281d4:	f8d4 00f0 	ldr.w	r0, [r4, #240]	; 0xf0
   281d8:	4798      	blx	r3
			return 0;
   281da:	e78d      	b.n	280f8 <smp_pairing_random+0xbc>
		BT_ERR("Unknown pairing method (%u)", smp->method);
   281dc:	2145      	movs	r1, #69	; 0x45
   281de:	4809      	ldr	r0, [pc, #36]	; (28204 <smp_pairing_random+0x1c8>)
   281e0:	f00b fc84 	bl	33aec <z_log_minimal_printk>
		return BT_SMP_ERR_UNSPECIFIED;
   281e4:	2508      	movs	r5, #8
   281e6:	e787      	b.n	280f8 <smp_pairing_random+0xbc>
			return BT_SMP_ERR_UNSPECIFIED;
   281e8:	2508      	movs	r5, #8
   281ea:	e785      	b.n	280f8 <smp_pairing_random+0xbc>
			return BT_SMP_ERR_UNSPECIFIED;
   281ec:	2508      	movs	r5, #8
   281ee:	e783      	b.n	280f8 <smp_pairing_random+0xbc>
			return BT_SMP_ERR_OOB_NOT_AVAIL;
   281f0:	2502      	movs	r5, #2
   281f2:	e781      	b.n	280f8 <smp_pairing_random+0xbc>
   281f4:	2502      	movs	r5, #2
   281f6:	e77f      	b.n	280f8 <smp_pairing_random+0xbc>
   281f8:	200023a0 	.word	0x200023a0
   281fc:	200022e4 	.word	0x200022e4
   28200:	0003ba30 	.word	0x0003ba30
   28204:	0003e684 	.word	0x0003e684

00028208 <smp_f6>:
{
   28208:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
   2820c:	b096      	sub	sp, #88	; 0x58
   2820e:	4606      	mov	r6, r0
   28210:	4689      	mov	r9, r1
   28212:	4690      	mov	r8, r2
   28214:	461c      	mov	r4, r3
   28216:	9f1e      	ldr	r7, [sp, #120]	; 0x78
   28218:	9d21      	ldr	r5, [sp, #132]	; 0x84
	__ASSERT(((psrc < pdst && (psrc + length) <= pdst) ||
   2821a:	ab01      	add	r3, sp, #4
   2821c:	4299      	cmp	r1, r3
   2821e:	d204      	bcs.n	2822a <smp_f6+0x22>
   28220:	f101 0310 	add.w	r3, r1, #16
   28224:	aa01      	add	r2, sp, #4
   28226:	4293      	cmp	r3, r2
   28228:	d912      	bls.n	28250 <smp_f6+0x48>
   2822a:	ab01      	add	r3, sp, #4
   2822c:	4599      	cmp	r9, r3
   2822e:	d902      	bls.n	28236 <smp_f6+0x2e>
   28230:	ab05      	add	r3, sp, #20
   28232:	4599      	cmp	r9, r3
   28234:	d20c      	bcs.n	28250 <smp_f6+0x48>
   28236:	f8df a24c 	ldr.w	sl, [pc, #588]	; 28484 <smp_f6+0x27c>
   2823a:	f240 2217 	movw	r2, #535	; 0x217
   2823e:	4651      	mov	r1, sl
   28240:	488f      	ldr	r0, [pc, #572]	; (28480 <smp_f6+0x278>)
   28242:	f00b f8b2 	bl	333aa <printk>
   28246:	f240 2117 	movw	r1, #535	; 0x217
   2824a:	4650      	mov	r0, sl
   2824c:	f00b fc46 	bl	33adc <assert_post_action>
	psrc += length - 1;
   28250:	f109 010f 	add.w	r1, r9, #15
	uint8_t *pdst = (uint8_t *)dst;
   28254:	ab01      	add	r3, sp, #4
	for (; length > 0; length--) {
   28256:	2210      	movs	r2, #16
   28258:	b12a      	cbz	r2, 28266 <smp_f6+0x5e>
		*pdst++ = *psrc--;
   2825a:	f811 0901 	ldrb.w	r0, [r1], #-1
   2825e:	f803 0b01 	strb.w	r0, [r3], #1
	for (; length > 0; length--) {
   28262:	3a01      	subs	r2, #1
   28264:	e7f8      	b.n	28258 <smp_f6+0x50>
	__ASSERT(((psrc < pdst && (psrc + length) <= pdst) ||
   28266:	ab05      	add	r3, sp, #20
   28268:	4598      	cmp	r8, r3
   2826a:	d204      	bcs.n	28276 <smp_f6+0x6e>
   2826c:	f108 0310 	add.w	r3, r8, #16
   28270:	aa05      	add	r2, sp, #20
   28272:	4293      	cmp	r3, r2
   28274:	d912      	bls.n	2829c <smp_f6+0x94>
   28276:	ab05      	add	r3, sp, #20
   28278:	4598      	cmp	r8, r3
   2827a:	d902      	bls.n	28282 <smp_f6+0x7a>
   2827c:	ab09      	add	r3, sp, #36	; 0x24
   2827e:	4598      	cmp	r8, r3
   28280:	d20c      	bcs.n	2829c <smp_f6+0x94>
   28282:	f8df 9200 	ldr.w	r9, [pc, #512]	; 28484 <smp_f6+0x27c>
   28286:	f240 2217 	movw	r2, #535	; 0x217
   2828a:	4649      	mov	r1, r9
   2828c:	487c      	ldr	r0, [pc, #496]	; (28480 <smp_f6+0x278>)
   2828e:	f00b f88c 	bl	333aa <printk>
   28292:	f240 2117 	movw	r1, #535	; 0x217
   28296:	4648      	mov	r0, r9
   28298:	f00b fc20 	bl	33adc <assert_post_action>
	psrc += length - 1;
   2829c:	f108 020f 	add.w	r2, r8, #15
	uint8_t *pdst = (uint8_t *)dst;
   282a0:	ab05      	add	r3, sp, #20
	for (; length > 0; length--) {
   282a2:	2110      	movs	r1, #16
   282a4:	b129      	cbz	r1, 282b2 <smp_f6+0xaa>
		*pdst++ = *psrc--;
   282a6:	f812 0901 	ldrb.w	r0, [r2], #-1
   282aa:	f803 0b01 	strb.w	r0, [r3], #1
	for (; length > 0; length--) {
   282ae:	3901      	subs	r1, #1
   282b0:	e7f8      	b.n	282a4 <smp_f6+0x9c>
	__ASSERT(((psrc < pdst && (psrc + length) <= pdst) ||
   282b2:	ab09      	add	r3, sp, #36	; 0x24
   282b4:	429c      	cmp	r4, r3
   282b6:	d204      	bcs.n	282c2 <smp_f6+0xba>
   282b8:	f104 0310 	add.w	r3, r4, #16
   282bc:	aa09      	add	r2, sp, #36	; 0x24
   282be:	4293      	cmp	r3, r2
   282c0:	d912      	bls.n	282e8 <smp_f6+0xe0>
   282c2:	ab09      	add	r3, sp, #36	; 0x24
   282c4:	429c      	cmp	r4, r3
   282c6:	d902      	bls.n	282ce <smp_f6+0xc6>
   282c8:	ab0d      	add	r3, sp, #52	; 0x34
   282ca:	429c      	cmp	r4, r3
   282cc:	d20c      	bcs.n	282e8 <smp_f6+0xe0>
   282ce:	f8df 81b4 	ldr.w	r8, [pc, #436]	; 28484 <smp_f6+0x27c>
   282d2:	f240 2217 	movw	r2, #535	; 0x217
   282d6:	4641      	mov	r1, r8
   282d8:	4869      	ldr	r0, [pc, #420]	; (28480 <smp_f6+0x278>)
   282da:	f00b f866 	bl	333aa <printk>
   282de:	f240 2117 	movw	r1, #535	; 0x217
   282e2:	4640      	mov	r0, r8
   282e4:	f00b fbfa 	bl	33adc <assert_post_action>
	psrc += length - 1;
   282e8:	f104 030f 	add.w	r3, r4, #15
	uint8_t *pdst = (uint8_t *)dst;
   282ec:	aa09      	add	r2, sp, #36	; 0x24
	for (; length > 0; length--) {
   282ee:	2110      	movs	r1, #16
   282f0:	e004      	b.n	282fc <smp_f6+0xf4>
		*pdst++ = *psrc--;
   282f2:	f813 0901 	ldrb.w	r0, [r3], #-1
   282f6:	f802 0b01 	strb.w	r0, [r2], #1
	for (; length > 0; length--) {
   282fa:	3901      	subs	r1, #1
   282fc:	2900      	cmp	r1, #0
   282fe:	d1f8      	bne.n	282f2 <smp_f6+0xea>
	__ASSERT(((psrc < pdst && (psrc + length) <= pdst) ||
   28300:	ab0d      	add	r3, sp, #52	; 0x34
   28302:	429f      	cmp	r7, r3
   28304:	d202      	bcs.n	2830c <smp_f6+0x104>
   28306:	1cfa      	adds	r2, r7, #3
   28308:	429a      	cmp	r2, r3
   2830a:	d912      	bls.n	28332 <smp_f6+0x12a>
   2830c:	ab0d      	add	r3, sp, #52	; 0x34
   2830e:	429f      	cmp	r7, r3
   28310:	d903      	bls.n	2831a <smp_f6+0x112>
   28312:	f10d 0337 	add.w	r3, sp, #55	; 0x37
   28316:	429f      	cmp	r7, r3
   28318:	d20b      	bcs.n	28332 <smp_f6+0x12a>
   2831a:	4c5a      	ldr	r4, [pc, #360]	; (28484 <smp_f6+0x27c>)
   2831c:	f240 2217 	movw	r2, #535	; 0x217
   28320:	4621      	mov	r1, r4
   28322:	4857      	ldr	r0, [pc, #348]	; (28480 <smp_f6+0x278>)
   28324:	f00b f841 	bl	333aa <printk>
   28328:	f240 2117 	movw	r1, #535	; 0x217
   2832c:	4620      	mov	r0, r4
   2832e:	f00b fbd5 	bl	33adc <assert_post_action>
	psrc += length - 1;
   28332:	1cbb      	adds	r3, r7, #2
	uint8_t *pdst = (uint8_t *)dst;
   28334:	aa0d      	add	r2, sp, #52	; 0x34
	for (; length > 0; length--) {
   28336:	2103      	movs	r1, #3
   28338:	b129      	cbz	r1, 28346 <smp_f6+0x13e>
		*pdst++ = *psrc--;
   2833a:	f813 0901 	ldrb.w	r0, [r3], #-1
   2833e:	f802 0b01 	strb.w	r0, [r2], #1
	for (; length > 0; length--) {
   28342:	3901      	subs	r1, #1
   28344:	e7f8      	b.n	28338 <smp_f6+0x130>
	m[51] = a1->type;
   28346:	9c1f      	ldr	r4, [sp, #124]	; 0x7c
   28348:	f814 3b01 	ldrb.w	r3, [r4], #1
   2834c:	f88d 3037 	strb.w	r3, [sp, #55]	; 0x37
	memcpy(m + 52, a1->a.val, 6);
   28350:	af0e      	add	r7, sp, #56	; 0x38
   28352:	2206      	movs	r2, #6
   28354:	4621      	mov	r1, r4
   28356:	4638      	mov	r0, r7
   28358:	f00d fbd0 	bl	35afc <memcpy>
	__ASSERT(((psrc < pdst && (psrc + length) <= pdst) ||
   2835c:	42bc      	cmp	r4, r7
   2835e:	d203      	bcs.n	28368 <smp_f6+0x160>
   28360:	1da3      	adds	r3, r4, #6
   28362:	aa0e      	add	r2, sp, #56	; 0x38
   28364:	4293      	cmp	r3, r2
   28366:	d912      	bls.n	2838e <smp_f6+0x186>
   28368:	ab0e      	add	r3, sp, #56	; 0x38
   2836a:	429c      	cmp	r4, r3
   2836c:	d903      	bls.n	28376 <smp_f6+0x16e>
   2836e:	f10d 033e 	add.w	r3, sp, #62	; 0x3e
   28372:	429c      	cmp	r4, r3
   28374:	d20b      	bcs.n	2838e <smp_f6+0x186>
   28376:	4f43      	ldr	r7, [pc, #268]	; (28484 <smp_f6+0x27c>)
   28378:	f240 2217 	movw	r2, #535	; 0x217
   2837c:	4639      	mov	r1, r7
   2837e:	4840      	ldr	r0, [pc, #256]	; (28480 <smp_f6+0x278>)
   28380:	f00b f813 	bl	333aa <printk>
   28384:	f240 2117 	movw	r1, #535	; 0x217
   28388:	4638      	mov	r0, r7
   2838a:	f00b fba7 	bl	33adc <assert_post_action>
	psrc += length - 1;
   2838e:	1d63      	adds	r3, r4, #5
	uint8_t *pdst = (uint8_t *)dst;
   28390:	aa0e      	add	r2, sp, #56	; 0x38
	for (; length > 0; length--) {
   28392:	2106      	movs	r1, #6
   28394:	e004      	b.n	283a0 <smp_f6+0x198>
		*pdst++ = *psrc--;
   28396:	f813 0901 	ldrb.w	r0, [r3], #-1
   2839a:	f802 0b01 	strb.w	r0, [r2], #1
	for (; length > 0; length--) {
   2839e:	3901      	subs	r1, #1
   283a0:	2900      	cmp	r1, #0
   283a2:	d1f8      	bne.n	28396 <smp_f6+0x18e>
	m[58] = a2->type;
   283a4:	9c20      	ldr	r4, [sp, #128]	; 0x80
   283a6:	f814 3b01 	ldrb.w	r3, [r4], #1
   283aa:	f88d 303e 	strb.w	r3, [sp, #62]	; 0x3e
	memcpy(m + 59, a2->a.val, 6);
   283ae:	f10d 073f 	add.w	r7, sp, #63	; 0x3f
   283b2:	2206      	movs	r2, #6
   283b4:	4621      	mov	r1, r4
   283b6:	4638      	mov	r0, r7
   283b8:	f00d fba0 	bl	35afc <memcpy>
	__ASSERT(((psrc < pdst && (psrc + length) <= pdst) ||
   283bc:	42bc      	cmp	r4, r7
   283be:	d204      	bcs.n	283ca <smp_f6+0x1c2>
   283c0:	1da3      	adds	r3, r4, #6
   283c2:	f10d 023f 	add.w	r2, sp, #63	; 0x3f
   283c6:	4293      	cmp	r3, r2
   283c8:	d913      	bls.n	283f2 <smp_f6+0x1ea>
   283ca:	f10d 033f 	add.w	r3, sp, #63	; 0x3f
   283ce:	429c      	cmp	r4, r3
   283d0:	d903      	bls.n	283da <smp_f6+0x1d2>
   283d2:	f10d 0345 	add.w	r3, sp, #69	; 0x45
   283d6:	429c      	cmp	r4, r3
   283d8:	d20b      	bcs.n	283f2 <smp_f6+0x1ea>
   283da:	4f2a      	ldr	r7, [pc, #168]	; (28484 <smp_f6+0x27c>)
   283dc:	f240 2217 	movw	r2, #535	; 0x217
   283e0:	4639      	mov	r1, r7
   283e2:	4827      	ldr	r0, [pc, #156]	; (28480 <smp_f6+0x278>)
   283e4:	f00a ffe1 	bl	333aa <printk>
   283e8:	f240 2117 	movw	r1, #535	; 0x217
   283ec:	4638      	mov	r0, r7
   283ee:	f00b fb75 	bl	33adc <assert_post_action>
	psrc += length - 1;
   283f2:	1d63      	adds	r3, r4, #5
	uint8_t *pdst = (uint8_t *)dst;
   283f4:	f10d 023f 	add.w	r2, sp, #63	; 0x3f
	for (; length > 0; length--) {
   283f8:	2106      	movs	r1, #6
   283fa:	e004      	b.n	28406 <smp_f6+0x1fe>
		*pdst++ = *psrc--;
   283fc:	f813 0901 	ldrb.w	r0, [r3], #-1
   28400:	f802 0b01 	strb.w	r0, [r2], #1
	for (; length > 0; length--) {
   28404:	3901      	subs	r1, #1
   28406:	2900      	cmp	r1, #0
   28408:	d1f8      	bne.n	283fc <smp_f6+0x1f4>
	__ASSERT(((psrc < pdst && (psrc + length) <= pdst) ||
   2840a:	ab12      	add	r3, sp, #72	; 0x48
   2840c:	429e      	cmp	r6, r3
   2840e:	d204      	bcs.n	2841a <smp_f6+0x212>
   28410:	f106 0310 	add.w	r3, r6, #16
   28414:	aa12      	add	r2, sp, #72	; 0x48
   28416:	4293      	cmp	r3, r2
   28418:	d911      	bls.n	2843e <smp_f6+0x236>
   2841a:	ab12      	add	r3, sp, #72	; 0x48
   2841c:	429e      	cmp	r6, r3
   2841e:	d902      	bls.n	28426 <smp_f6+0x21e>
   28420:	ab16      	add	r3, sp, #88	; 0x58
   28422:	429e      	cmp	r6, r3
   28424:	d20b      	bcs.n	2843e <smp_f6+0x236>
   28426:	4c17      	ldr	r4, [pc, #92]	; (28484 <smp_f6+0x27c>)
   28428:	f240 2217 	movw	r2, #535	; 0x217
   2842c:	4621      	mov	r1, r4
   2842e:	4814      	ldr	r0, [pc, #80]	; (28480 <smp_f6+0x278>)
   28430:	f00a ffbb 	bl	333aa <printk>
   28434:	f240 2117 	movw	r1, #535	; 0x217
   28438:	4620      	mov	r0, r4
   2843a:	f00b fb4f 	bl	33adc <assert_post_action>
	psrc += length - 1;
   2843e:	f106 000f 	add.w	r0, r6, #15
	uint8_t *pdst = (uint8_t *)dst;
   28442:	ab12      	add	r3, sp, #72	; 0x48
	for (; length > 0; length--) {
   28444:	2410      	movs	r4, #16
   28446:	e004      	b.n	28452 <smp_f6+0x24a>
		*pdst++ = *psrc--;
   28448:	f810 2901 	ldrb.w	r2, [r0], #-1
   2844c:	f803 2b01 	strb.w	r2, [r3], #1
	for (; length > 0; length--) {
   28450:	3c01      	subs	r4, #1
   28452:	2c00      	cmp	r4, #0
   28454:	d1f8      	bne.n	28448 <smp_f6+0x240>
	err = bt_smp_aes_cmac(ws, m, sizeof(m), check);
   28456:	462b      	mov	r3, r5
   28458:	2241      	movs	r2, #65	; 0x41
   2845a:	a901      	add	r1, sp, #4
   2845c:	a812      	add	r0, sp, #72	; 0x48
   2845e:	f010 f83a 	bl	384d6 <bt_smp_aes_cmac>
	if (err) {
   28462:	b948      	cbnz	r0, 28478 <smp_f6+0x270>
	for (i = 0; i < (length/2); i++) {
   28464:	2c07      	cmp	r4, #7
   28466:	d807      	bhi.n	28478 <smp_f6+0x270>
		uint8_t tmp = ((uint8_t *)buf)[i];
   28468:	5d2a      	ldrb	r2, [r5, r4]
		((uint8_t *)buf)[i] = ((uint8_t *)buf)[length - 1 - i];
   2846a:	f1c4 030f 	rsb	r3, r4, #15
   2846e:	5ce9      	ldrb	r1, [r5, r3]
   28470:	5529      	strb	r1, [r5, r4]
		((uint8_t *)buf)[length - 1 - i] = tmp;
   28472:	54ea      	strb	r2, [r5, r3]
	for (i = 0; i < (length/2); i++) {
   28474:	3401      	adds	r4, #1
   28476:	e7f5      	b.n	28464 <smp_f6+0x25c>
}
   28478:	b016      	add	sp, #88	; 0x58
   2847a:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
   2847e:	bf00      	nop
   28480:	0003bdac 	.word	0x0003bdac
   28484:	0003ca88 	.word	0x0003ca88

00028488 <smp_f5>:
{
   28488:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
   2848c:	b09a      	sub	sp, #104	; 0x68
   2848e:	4604      	mov	r4, r0
   28490:	460f      	mov	r7, r1
   28492:	4616      	mov	r6, r2
   28494:	461d      	mov	r5, r3
   28496:	f8dd 808c 	ldr.w	r8, [sp, #140]	; 0x8c
   2849a:	f8dd 9090 	ldr.w	r9, [sp, #144]	; 0x90
	uint8_t m[53] = { 0x00, /* counter */
   2849e:	f10d 0c30 	add.w	ip, sp, #48	; 0x30
   284a2:	f8df e250 	ldr.w	lr, [pc, #592]	; 286f4 <smp_f5+0x26c>
   284a6:	e8be 000f 	ldmia.w	lr!, {r0, r1, r2, r3}
   284aa:	e8ac 000f 	stmia.w	ip!, {r0, r1, r2, r3}
   284ae:	e8be 000f 	ldmia.w	lr!, {r0, r1, r2, r3}
   284b2:	e8ac 000f 	stmia.w	ip!, {r0, r1, r2, r3}
   284b6:	e8be 000f 	ldmia.w	lr!, {r0, r1, r2, r3}
   284ba:	e8ac 000f 	stmia.w	ip!, {r0, r1, r2, r3}
   284be:	e89e 0003 	ldmia.w	lr, {r0, r1}
   284c2:	f84c 0b04 	str.w	r0, [ip], #4
   284c6:	f88c 1000 	strb.w	r1, [ip]
	__ASSERT(((psrc < pdst && (psrc + length) <= pdst) ||
   284ca:	466b      	mov	r3, sp
   284cc:	429c      	cmp	r4, r3
   284ce:	d204      	bcs.n	284da <smp_f5+0x52>
   284d0:	f104 0320 	add.w	r3, r4, #32
   284d4:	466a      	mov	r2, sp
   284d6:	4293      	cmp	r3, r2
   284d8:	d912      	bls.n	28500 <smp_f5+0x78>
   284da:	466b      	mov	r3, sp
   284dc:	429c      	cmp	r4, r3
   284de:	d902      	bls.n	284e6 <smp_f5+0x5e>
   284e0:	ab08      	add	r3, sp, #32
   284e2:	429c      	cmp	r4, r3
   284e4:	d20c      	bcs.n	28500 <smp_f5+0x78>
   284e6:	f8df a208 	ldr.w	sl, [pc, #520]	; 286f0 <smp_f5+0x268>
   284ea:	f240 2217 	movw	r2, #535	; 0x217
   284ee:	4651      	mov	r1, sl
   284f0:	487d      	ldr	r0, [pc, #500]	; (286e8 <smp_f5+0x260>)
   284f2:	f00a ff5a 	bl	333aa <printk>
   284f6:	f240 2117 	movw	r1, #535	; 0x217
   284fa:	4650      	mov	r0, sl
   284fc:	f00b faee 	bl	33adc <assert_post_action>
	psrc += length - 1;
   28500:	f104 001f 	add.w	r0, r4, #31
	uint8_t *pdst = (uint8_t *)dst;
   28504:	466b      	mov	r3, sp
	for (; length > 0; length--) {
   28506:	2220      	movs	r2, #32
   28508:	b12a      	cbz	r2, 28516 <smp_f5+0x8e>
		*pdst++ = *psrc--;
   2850a:	f810 1901 	ldrb.w	r1, [r0], #-1
   2850e:	f803 1b01 	strb.w	r1, [r3], #1
	for (; length > 0; length--) {
   28512:	3a01      	subs	r2, #1
   28514:	e7f8      	b.n	28508 <smp_f5+0x80>
	err = bt_smp_aes_cmac(salt, ws, 32, t);
   28516:	ab08      	add	r3, sp, #32
   28518:	2220      	movs	r2, #32
   2851a:	4669      	mov	r1, sp
   2851c:	4873      	ldr	r0, [pc, #460]	; (286ec <smp_f5+0x264>)
   2851e:	f00f ffda 	bl	384d6 <bt_smp_aes_cmac>
	if (err) {
   28522:	b110      	cbz	r0, 2852a <smp_f5+0xa2>
}
   28524:	b01a      	add	sp, #104	; 0x68
   28526:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
	__ASSERT(((psrc < pdst && (psrc + length) <= pdst) ||
   2852a:	f10d 0335 	add.w	r3, sp, #53	; 0x35
   2852e:	429f      	cmp	r7, r3
   28530:	d205      	bcs.n	2853e <smp_f5+0xb6>
   28532:	f107 0310 	add.w	r3, r7, #16
   28536:	f10d 0235 	add.w	r2, sp, #53	; 0x35
   2853a:	4293      	cmp	r3, r2
   2853c:	d913      	bls.n	28566 <smp_f5+0xde>
   2853e:	f10d 0335 	add.w	r3, sp, #53	; 0x35
   28542:	429f      	cmp	r7, r3
   28544:	d903      	bls.n	2854e <smp_f5+0xc6>
   28546:	f10d 0345 	add.w	r3, sp, #69	; 0x45
   2854a:	429f      	cmp	r7, r3
   2854c:	d20b      	bcs.n	28566 <smp_f5+0xde>
   2854e:	4c68      	ldr	r4, [pc, #416]	; (286f0 <smp_f5+0x268>)
   28550:	f240 2217 	movw	r2, #535	; 0x217
   28554:	4621      	mov	r1, r4
   28556:	4864      	ldr	r0, [pc, #400]	; (286e8 <smp_f5+0x260>)
   28558:	f00a ff27 	bl	333aa <printk>
   2855c:	f240 2117 	movw	r1, #535	; 0x217
   28560:	4620      	mov	r0, r4
   28562:	f00b fabb 	bl	33adc <assert_post_action>
	psrc += length - 1;
   28566:	370f      	adds	r7, #15
	uint8_t *pdst = (uint8_t *)dst;
   28568:	f10d 0335 	add.w	r3, sp, #53	; 0x35
	for (; length > 0; length--) {
   2856c:	2210      	movs	r2, #16
   2856e:	e004      	b.n	2857a <smp_f5+0xf2>
		*pdst++ = *psrc--;
   28570:	f817 1901 	ldrb.w	r1, [r7], #-1
   28574:	f803 1b01 	strb.w	r1, [r3], #1
	for (; length > 0; length--) {
   28578:	3a01      	subs	r2, #1
   2857a:	2a00      	cmp	r2, #0
   2857c:	d1f8      	bne.n	28570 <smp_f5+0xe8>
	__ASSERT(((psrc < pdst && (psrc + length) <= pdst) ||
   2857e:	f10d 0345 	add.w	r3, sp, #69	; 0x45
   28582:	429e      	cmp	r6, r3
   28584:	d205      	bcs.n	28592 <smp_f5+0x10a>
   28586:	f106 0310 	add.w	r3, r6, #16
   2858a:	f10d 0245 	add.w	r2, sp, #69	; 0x45
   2858e:	4293      	cmp	r3, r2
   28590:	d913      	bls.n	285ba <smp_f5+0x132>
   28592:	f10d 0345 	add.w	r3, sp, #69	; 0x45
   28596:	429e      	cmp	r6, r3
   28598:	d903      	bls.n	285a2 <smp_f5+0x11a>
   2859a:	f10d 0355 	add.w	r3, sp, #85	; 0x55
   2859e:	429e      	cmp	r6, r3
   285a0:	d20b      	bcs.n	285ba <smp_f5+0x132>
   285a2:	4c53      	ldr	r4, [pc, #332]	; (286f0 <smp_f5+0x268>)
   285a4:	f240 2217 	movw	r2, #535	; 0x217
   285a8:	4621      	mov	r1, r4
   285aa:	484f      	ldr	r0, [pc, #316]	; (286e8 <smp_f5+0x260>)
   285ac:	f00a fefd 	bl	333aa <printk>
   285b0:	f240 2117 	movw	r1, #535	; 0x217
   285b4:	4620      	mov	r0, r4
   285b6:	f00b fa91 	bl	33adc <assert_post_action>
	psrc += length - 1;
   285ba:	360f      	adds	r6, #15
	uint8_t *pdst = (uint8_t *)dst;
   285bc:	f10d 0345 	add.w	r3, sp, #69	; 0x45
	for (; length > 0; length--) {
   285c0:	2210      	movs	r2, #16
   285c2:	b12a      	cbz	r2, 285d0 <smp_f5+0x148>
		*pdst++ = *psrc--;
   285c4:	f816 1901 	ldrb.w	r1, [r6], #-1
   285c8:	f803 1b01 	strb.w	r1, [r3], #1
	for (; length > 0; length--) {
   285cc:	3a01      	subs	r2, #1
   285ce:	e7f8      	b.n	285c2 <smp_f5+0x13a>
	m[37] = a1->type;
   285d0:	f815 3b01 	ldrb.w	r3, [r5], #1
   285d4:	f88d 3055 	strb.w	r3, [sp, #85]	; 0x55
	__ASSERT(((psrc < pdst && (psrc + length) <= pdst) ||
   285d8:	f10d 0356 	add.w	r3, sp, #86	; 0x56
   285dc:	429d      	cmp	r5, r3
   285de:	d204      	bcs.n	285ea <smp_f5+0x162>
   285e0:	1dab      	adds	r3, r5, #6
   285e2:	f10d 0256 	add.w	r2, sp, #86	; 0x56
   285e6:	4293      	cmp	r3, r2
   285e8:	d912      	bls.n	28610 <smp_f5+0x188>
   285ea:	f10d 0356 	add.w	r3, sp, #86	; 0x56
   285ee:	429d      	cmp	r5, r3
   285f0:	d902      	bls.n	285f8 <smp_f5+0x170>
   285f2:	ab17      	add	r3, sp, #92	; 0x5c
   285f4:	429d      	cmp	r5, r3
   285f6:	d20b      	bcs.n	28610 <smp_f5+0x188>
   285f8:	4c3d      	ldr	r4, [pc, #244]	; (286f0 <smp_f5+0x268>)
   285fa:	f240 2217 	movw	r2, #535	; 0x217
   285fe:	4621      	mov	r1, r4
   28600:	4839      	ldr	r0, [pc, #228]	; (286e8 <smp_f5+0x260>)
   28602:	f00a fed2 	bl	333aa <printk>
   28606:	f240 2117 	movw	r1, #535	; 0x217
   2860a:	4620      	mov	r0, r4
   2860c:	f00b fa66 	bl	33adc <assert_post_action>
	psrc += length - 1;
   28610:	3505      	adds	r5, #5
	uint8_t *pdst = (uint8_t *)dst;
   28612:	f10d 0356 	add.w	r3, sp, #86	; 0x56
	for (; length > 0; length--) {
   28616:	2206      	movs	r2, #6
   28618:	b12a      	cbz	r2, 28626 <smp_f5+0x19e>
		*pdst++ = *psrc--;
   2861a:	f815 1901 	ldrb.w	r1, [r5], #-1
   2861e:	f803 1b01 	strb.w	r1, [r3], #1
	for (; length > 0; length--) {
   28622:	3a01      	subs	r2, #1
   28624:	e7f8      	b.n	28618 <smp_f5+0x190>
	m[44] = a2->type;
   28626:	9c22      	ldr	r4, [sp, #136]	; 0x88
   28628:	f814 3b01 	ldrb.w	r3, [r4], #1
   2862c:	f88d 305c 	strb.w	r3, [sp, #92]	; 0x5c
	__ASSERT(((psrc < pdst && (psrc + length) <= pdst) ||
   28630:	f10d 035d 	add.w	r3, sp, #93	; 0x5d
   28634:	429c      	cmp	r4, r3
   28636:	d204      	bcs.n	28642 <smp_f5+0x1ba>
   28638:	1da3      	adds	r3, r4, #6
   2863a:	f10d 025d 	add.w	r2, sp, #93	; 0x5d
   2863e:	4293      	cmp	r3, r2
   28640:	d913      	bls.n	2866a <smp_f5+0x1e2>
   28642:	f10d 035d 	add.w	r3, sp, #93	; 0x5d
   28646:	429c      	cmp	r4, r3
   28648:	d903      	bls.n	28652 <smp_f5+0x1ca>
   2864a:	f10d 0363 	add.w	r3, sp, #99	; 0x63
   2864e:	429c      	cmp	r4, r3
   28650:	d20b      	bcs.n	2866a <smp_f5+0x1e2>
   28652:	4d27      	ldr	r5, [pc, #156]	; (286f0 <smp_f5+0x268>)
   28654:	f240 2217 	movw	r2, #535	; 0x217
   28658:	4629      	mov	r1, r5
   2865a:	4823      	ldr	r0, [pc, #140]	; (286e8 <smp_f5+0x260>)
   2865c:	f00a fea5 	bl	333aa <printk>
   28660:	f240 2117 	movw	r1, #535	; 0x217
   28664:	4628      	mov	r0, r5
   28666:	f00b fa39 	bl	33adc <assert_post_action>
	psrc += length - 1;
   2866a:	1d63      	adds	r3, r4, #5
	uint8_t *pdst = (uint8_t *)dst;
   2866c:	f10d 025d 	add.w	r2, sp, #93	; 0x5d
	for (; length > 0; length--) {
   28670:	2406      	movs	r4, #6
   28672:	e004      	b.n	2867e <smp_f5+0x1f6>
		*pdst++ = *psrc--;
   28674:	f813 1901 	ldrb.w	r1, [r3], #-1
   28678:	f802 1b01 	strb.w	r1, [r2], #1
	for (; length > 0; length--) {
   2867c:	3c01      	subs	r4, #1
   2867e:	2c00      	cmp	r4, #0
   28680:	d1f8      	bne.n	28674 <smp_f5+0x1ec>
	err = bt_smp_aes_cmac(t, m, sizeof(m), mackey);
   28682:	4643      	mov	r3, r8
   28684:	2235      	movs	r2, #53	; 0x35
   28686:	a90c      	add	r1, sp, #48	; 0x30
   28688:	a808      	add	r0, sp, #32
   2868a:	f00f ff24 	bl	384d6 <bt_smp_aes_cmac>
	if (err) {
   2868e:	2800      	cmp	r0, #0
   28690:	f47f af48 	bne.w	28524 <smp_f5+0x9c>
	for (i = 0; i < (length/2); i++) {
   28694:	4623      	mov	r3, r4
   28696:	e00a      	b.n	286ae <smp_f5+0x226>
		uint8_t tmp = ((uint8_t *)buf)[i];
   28698:	f818 1003 	ldrb.w	r1, [r8, r3]
		((uint8_t *)buf)[i] = ((uint8_t *)buf)[length - 1 - i];
   2869c:	f1c3 020f 	rsb	r2, r3, #15
   286a0:	f818 0002 	ldrb.w	r0, [r8, r2]
   286a4:	f808 0003 	strb.w	r0, [r8, r3]
		((uint8_t *)buf)[length - 1 - i] = tmp;
   286a8:	f808 1002 	strb.w	r1, [r8, r2]
	for (i = 0; i < (length/2); i++) {
   286ac:	3301      	adds	r3, #1
   286ae:	2b07      	cmp	r3, #7
   286b0:	d9f2      	bls.n	28698 <smp_f5+0x210>
	m[0] = 0x01;
   286b2:	2301      	movs	r3, #1
   286b4:	f88d 3030 	strb.w	r3, [sp, #48]	; 0x30
	err = bt_smp_aes_cmac(t, m, sizeof(m), ltk);
   286b8:	464b      	mov	r3, r9
   286ba:	2235      	movs	r2, #53	; 0x35
   286bc:	a90c      	add	r1, sp, #48	; 0x30
   286be:	a808      	add	r0, sp, #32
   286c0:	f00f ff09 	bl	384d6 <bt_smp_aes_cmac>
	if (err) {
   286c4:	2800      	cmp	r0, #0
   286c6:	f47f af2d 	bne.w	28524 <smp_f5+0x9c>
   286ca:	2c07      	cmp	r4, #7
   286cc:	f63f af2a 	bhi.w	28524 <smp_f5+0x9c>
		uint8_t tmp = ((uint8_t *)buf)[i];
   286d0:	f819 2004 	ldrb.w	r2, [r9, r4]
		((uint8_t *)buf)[i] = ((uint8_t *)buf)[length - 1 - i];
   286d4:	f1c4 030f 	rsb	r3, r4, #15
   286d8:	f819 1003 	ldrb.w	r1, [r9, r3]
   286dc:	f809 1004 	strb.w	r1, [r9, r4]
		((uint8_t *)buf)[length - 1 - i] = tmp;
   286e0:	f809 2003 	strb.w	r2, [r9, r3]
	for (i = 0; i < (length/2); i++) {
   286e4:	3401      	adds	r4, #1
   286e6:	e7f0      	b.n	286ca <smp_f5+0x242>
   286e8:	0003bdac 	.word	0x0003bdac
   286ec:	0003e9e0 	.word	0x0003e9e0
   286f0:	0003ca88 	.word	0x0003ca88
   286f4:	0003ba34 	.word	0x0003ba34

000286f8 <compute_and_check_and_send_periph_dhcheck>:
{
   286f8:	b5f0      	push	{r4, r5, r6, r7, lr}
   286fa:	b091      	sub	sp, #68	; 0x44
   286fc:	4604      	mov	r4, r0
	(void)memset(r, 0, sizeof(r));
   286fe:	2210      	movs	r2, #16
   28700:	2100      	movs	r1, #0
   28702:	eb0d 0002 	add.w	r0, sp, r2
   28706:	f00d fa1d 	bl	35b44 <memset>
	switch (smp->method) {
   2870a:	7a22      	ldrb	r2, [r4, #8]
   2870c:	2a05      	cmp	r2, #5
   2870e:	d873      	bhi.n	287f8 <compute_and_check_and_send_periph_dhcheck+0x100>
   28710:	e8df f002 	tbb	[pc, r2]
   28714:	09030309 	.word	0x09030309
   28718:	6872      	.short	0x6872
		memcpy(r, &smp->passkey, sizeof(smp->passkey));
   2871a:	2204      	movs	r2, #4
   2871c:	f104 01d8 	add.w	r1, r4, #216	; 0xd8
   28720:	a804      	add	r0, sp, #16
   28722:	f00d f9eb 	bl	35afc <memcpy>
	if (smp_f5(smp->dhkey, smp->rrnd, smp->prnd,
   28726:	f104 0637 	add.w	r6, r4, #55	; 0x37
   2872a:	f104 0727 	add.w	r7, r4, #39	; 0x27
		   &smp->chan.chan.conn->le.init_addr,
   2872e:	f8d4 30f0 	ldr.w	r3, [r4, #240]	; 0xf0
		   &smp->chan.chan.conn->le.resp_addr, smp->mackey,
   28732:	f103 029e 	add.w	r2, r3, #158	; 0x9e
   28736:	f104 05c7 	add.w	r5, r4, #199	; 0xc7
		   smp->tk)) {
   2873a:	f104 0147 	add.w	r1, r4, #71	; 0x47
	if (smp_f5(smp->dhkey, smp->rrnd, smp->prnd,
   2873e:	9102      	str	r1, [sp, #8]
   28740:	9501      	str	r5, [sp, #4]
   28742:	9200      	str	r2, [sp, #0]
   28744:	3397      	adds	r3, #151	; 0x97
   28746:	463a      	mov	r2, r7
   28748:	4631      	mov	r1, r6
   2874a:	f104 0097 	add.w	r0, r4, #151	; 0x97
   2874e:	f7ff fe9b 	bl	28488 <smp_f5>
   28752:	2800      	cmp	r0, #0
   28754:	d156      	bne.n	28804 <compute_and_check_and_send_periph_dhcheck+0x10c>
	if (smp_f6(smp->mackey, smp->prnd, smp->rrnd, r, &smp->prsp[1],
   28756:	f104 0211 	add.w	r2, r4, #17
		   &smp->chan.chan.conn->le.resp_addr,
   2875a:	f8d4 30f0 	ldr.w	r3, [r4, #240]	; 0xf0
   2875e:	f103 019e 	add.w	r1, r3, #158	; 0x9e
		   &smp->chan.chan.conn->le.init_addr, e)) {
   28762:	3397      	adds	r3, #151	; 0x97
	if (smp_f6(smp->mackey, smp->prnd, smp->rrnd, r, &smp->prsp[1],
   28764:	a808      	add	r0, sp, #32
   28766:	9003      	str	r0, [sp, #12]
   28768:	9302      	str	r3, [sp, #8]
   2876a:	9101      	str	r1, [sp, #4]
   2876c:	9200      	str	r2, [sp, #0]
   2876e:	ab04      	add	r3, sp, #16
   28770:	4632      	mov	r2, r6
   28772:	4639      	mov	r1, r7
   28774:	4628      	mov	r0, r5
   28776:	f7ff fd47 	bl	28208 <smp_f6>
   2877a:	2800      	cmp	r0, #0
   2877c:	d148      	bne.n	28810 <compute_and_check_and_send_periph_dhcheck+0x118>
	if (smp->method == LE_SC_OOB) {
   2877e:	7a23      	ldrb	r3, [r4, #8]
   28780:	2b05      	cmp	r3, #5
   28782:	d04b      	beq.n	2881c <compute_and_check_and_send_periph_dhcheck+0x124>
	if (smp_f6(smp->mackey, smp->rrnd, smp->prnd, r, &smp->preq[1],
   28784:	f104 020a 	add.w	r2, r4, #10
		   &smp->chan.chan.conn->le.init_addr,
   28788:	f8d4 30f0 	ldr.w	r3, [r4, #240]	; 0xf0
   2878c:	f103 0197 	add.w	r1, r3, #151	; 0x97
		   &smp->chan.chan.conn->le.resp_addr, re)) {
   28790:	339e      	adds	r3, #158	; 0x9e
	if (smp_f6(smp->mackey, smp->rrnd, smp->prnd, r, &smp->preq[1],
   28792:	a80c      	add	r0, sp, #48	; 0x30
   28794:	9003      	str	r0, [sp, #12]
   28796:	9302      	str	r3, [sp, #8]
   28798:	9101      	str	r1, [sp, #4]
   2879a:	9200      	str	r2, [sp, #0]
   2879c:	ab04      	add	r3, sp, #16
   2879e:	463a      	mov	r2, r7
   287a0:	4631      	mov	r1, r6
   287a2:	4628      	mov	r0, r5
   287a4:	f7ff fd30 	bl	28208 <smp_f6>
   287a8:	2800      	cmp	r0, #0
   287aa:	d147      	bne.n	2883c <compute_and_check_and_send_periph_dhcheck+0x144>
	if (memcmp(smp->e, re, 16)) {
   287ac:	2210      	movs	r2, #16
   287ae:	a90c      	add	r1, sp, #48	; 0x30
   287b0:	f104 00b7 	add.w	r0, r4, #183	; 0xb7
   287b4:	f00d f98b 	bl	35ace <memcmp>
   287b8:	2800      	cmp	r0, #0
   287ba:	d145      	bne.n	28848 <compute_and_check_and_send_periph_dhcheck+0x150>
	err = sc_smp_send_dhkey_check(smp, e);
   287bc:	a908      	add	r1, sp, #32
   287be:	4620      	mov	r0, r4
   287c0:	f00f fe38 	bl	38434 <sc_smp_send_dhkey_check>
	if (err) {
   287c4:	b960      	cbnz	r0, 287e0 <compute_and_check_and_send_periph_dhcheck+0xe8>
	atomic_set_bit(smp->flags, SMP_FLAG_ENC_PENDING);
   287c6:	3404      	adds	r4, #4
   287c8:	f3bf 8f5b 	dmb	ish
   287cc:	e854 3f00 	ldrex	r3, [r4]
   287d0:	f043 0302 	orr.w	r3, r3, #2
   287d4:	e844 3200 	strex	r2, r3, [r4]
   287d8:	2a00      	cmp	r2, #0
   287da:	d1f7      	bne.n	287cc <compute_and_check_and_send_periph_dhcheck+0xd4>
   287dc:	f3bf 8f5b 	dmb	ish
}
   287e0:	b011      	add	sp, #68	; 0x44
   287e2:	bdf0      	pop	{r4, r5, r6, r7, pc}
		if (smp->oobd_remote) {
   287e4:	f8d4 10e4 	ldr.w	r1, [r4, #228]	; 0xe4
   287e8:	2900      	cmp	r1, #0
   287ea:	d09c      	beq.n	28726 <compute_and_check_and_send_periph_dhcheck+0x2e>
			memcpy(r, smp->oobd_remote->r, sizeof(r));
   287ec:	2210      	movs	r2, #16
   287ee:	eb0d 0002 	add.w	r0, sp, r2
   287f2:	f00d f983 	bl	35afc <memcpy>
   287f6:	e796      	b.n	28726 <compute_and_check_and_send_periph_dhcheck+0x2e>
		BT_ERR("Unknown pairing method (%u)", smp->method);
   287f8:	2145      	movs	r1, #69	; 0x45
   287fa:	4814      	ldr	r0, [pc, #80]	; (2884c <compute_and_check_and_send_periph_dhcheck+0x154>)
   287fc:	f00b f976 	bl	33aec <z_log_minimal_printk>
		return BT_SMP_ERR_UNSPECIFIED;
   28800:	2008      	movs	r0, #8
   28802:	e7ed      	b.n	287e0 <compute_and_check_and_send_periph_dhcheck+0xe8>
		BT_ERR("Calculate LTK failed");
   28804:	2145      	movs	r1, #69	; 0x45
   28806:	4812      	ldr	r0, [pc, #72]	; (28850 <compute_and_check_and_send_periph_dhcheck+0x158>)
   28808:	f00b f970 	bl	33aec <z_log_minimal_printk>
		return BT_SMP_ERR_UNSPECIFIED;
   2880c:	2008      	movs	r0, #8
   2880e:	e7e7      	b.n	287e0 <compute_and_check_and_send_periph_dhcheck+0xe8>
		BT_ERR("Calculate local DHKey check failed");
   28810:	2145      	movs	r1, #69	; 0x45
   28812:	4810      	ldr	r0, [pc, #64]	; (28854 <compute_and_check_and_send_periph_dhcheck+0x15c>)
   28814:	f00b f96a 	bl	33aec <z_log_minimal_printk>
		return BT_SMP_ERR_UNSPECIFIED;
   28818:	2008      	movs	r0, #8
   2881a:	e7e1      	b.n	287e0 <compute_and_check_and_send_periph_dhcheck+0xe8>
		if (smp->oobd_local) {
   2881c:	f8d4 10e0 	ldr.w	r1, [r4, #224]	; 0xe0
   28820:	b129      	cbz	r1, 2882e <compute_and_check_and_send_periph_dhcheck+0x136>
			memcpy(r, smp->oobd_local->r, sizeof(r));
   28822:	2210      	movs	r2, #16
   28824:	eb0d 0002 	add.w	r0, sp, r2
   28828:	f00d f968 	bl	35afc <memcpy>
   2882c:	e7aa      	b.n	28784 <compute_and_check_and_send_periph_dhcheck+0x8c>
			memset(r, 0, sizeof(r));
   2882e:	2210      	movs	r2, #16
   28830:	2100      	movs	r1, #0
   28832:	eb0d 0002 	add.w	r0, sp, r2
   28836:	f00d f985 	bl	35b44 <memset>
   2883a:	e7a3      	b.n	28784 <compute_and_check_and_send_periph_dhcheck+0x8c>
		BT_ERR("Calculate remote DHKey check failed");
   2883c:	2145      	movs	r1, #69	; 0x45
   2883e:	4806      	ldr	r0, [pc, #24]	; (28858 <compute_and_check_and_send_periph_dhcheck+0x160>)
   28840:	f00b f954 	bl	33aec <z_log_minimal_printk>
		return BT_SMP_ERR_UNSPECIFIED;
   28844:	2008      	movs	r0, #8
   28846:	e7cb      	b.n	287e0 <compute_and_check_and_send_periph_dhcheck+0xe8>
		return BT_SMP_ERR_DHKEY_CHECK_FAILED;
   28848:	200b      	movs	r0, #11
   2884a:	e7c9      	b.n	287e0 <compute_and_check_and_send_periph_dhcheck+0xe8>
   2884c:	0003e684 	.word	0x0003e684
   28850:	0003e730 	.word	0x0003e730
   28854:	0003e74c 	.word	0x0003e74c
   28858:	0003e774 	.word	0x0003e774

0002885c <smp_pairing_complete>:
{
   2885c:	b570      	push	{r4, r5, r6, lr}
   2885e:	4604      	mov	r4, r0
	struct bt_conn *conn = smp->chan.chan.conn;
   28860:	f8d0 50f0 	ldr.w	r5, [r0, #240]	; 0xf0
	if (!status) {
   28864:	2900      	cmp	r1, #0
   28866:	d037      	beq.n	288d8 <smp_pairing_complete+0x7c>
   28868:	4608      	mov	r0, r1
		enum bt_security_err security_err = security_err_get(status);
   2886a:	f00f fb7f 	bl	37f6c <security_err_get>
   2886e:	4606      	mov	r6, r0
		if (conn->le.keys &&
   28870:	f8d5 30bc 	ldr.w	r3, [r5, #188]	; 0xbc
   28874:	b183      	cbz	r3, 28898 <smp_pairing_complete+0x3c>
		    (!conn->le.keys->enc_size ||
   28876:	7b1b      	ldrb	r3, [r3, #12]
		if (conn->le.keys &&
   28878:	b13b      	cbz	r3, 2888a <smp_pairing_complete+0x2e>
	return __atomic_load_n(target, __ATOMIC_SEQ_CST);
   2887a:	f3bf 8f5b 	dmb	ish
   2887e:	6863      	ldr	r3, [r4, #4]
   28880:	f3bf 8f5b 	dmb	ish
		    (!conn->le.keys->enc_size ||
   28884:	f013 0f04 	tst.w	r3, #4
   28888:	d006      	beq.n	28898 <smp_pairing_complete+0x3c>
			bt_keys_clear(conn->le.keys);
   2888a:	f8d5 00bc 	ldr.w	r0, [r5, #188]	; 0xbc
   2888e:	f000 fc57 	bl	29140 <bt_keys_clear>
			conn->le.keys = NULL;
   28892:	2300      	movs	r3, #0
   28894:	f8c5 30bc 	str.w	r3, [r5, #188]	; 0xbc
   28898:	f3bf 8f5b 	dmb	ish
   2889c:	6863      	ldr	r3, [r4, #4]
   2889e:	f3bf 8f5b 	dmb	ish
		if (!atomic_test_bit(smp->flags, SMP_FLAG_KEYS_DISTR)) {
   288a2:	f013 0f04 	tst.w	r3, #4
   288a6:	d031      	beq.n	2890c <smp_pairing_complete+0xb0>
   288a8:	f3bf 8f5b 	dmb	ish
   288ac:	6863      	ldr	r3, [r4, #4]
   288ae:	f3bf 8f5b 	dmb	ish
		if (atomic_test_bit(smp->flags, SMP_FLAG_PAIRING) &&
   288b2:	f013 0f08 	tst.w	r3, #8
   288b6:	d007      	beq.n	288c8 <smp_pairing_complete+0x6c>
   288b8:	4b1b      	ldr	r3, [pc, #108]	; (28928 <smp_pairing_complete+0xcc>)
   288ba:	681b      	ldr	r3, [r3, #0]
   288bc:	b123      	cbz	r3, 288c8 <smp_pairing_complete+0x6c>
		    bt_auth && bt_auth->pairing_failed) {
   288be:	69db      	ldr	r3, [r3, #28]
   288c0:	b113      	cbz	r3, 288c8 <smp_pairing_complete+0x6c>
			bt_auth->pairing_failed(conn, security_err);
   288c2:	4631      	mov	r1, r6
   288c4:	4628      	mov	r0, r5
   288c6:	4798      	blx	r3
	smp_reset(smp);
   288c8:	4620      	mov	r0, r4
   288ca:	f00f fc81 	bl	381d0 <smp_reset>
	if (conn->sec_level != conn->required_sec_level) {
   288ce:	7a6a      	ldrb	r2, [r5, #9]
   288d0:	7aab      	ldrb	r3, [r5, #10]
   288d2:	429a      	cmp	r2, r3
   288d4:	d123      	bne.n	2891e <smp_pairing_complete+0xc2>
}
   288d6:	bd70      	pop	{r4, r5, r6, pc}
   288d8:	f3bf 8f5b 	dmb	ish
   288dc:	6846      	ldr	r6, [r0, #4]
   288de:	f3bf 8f5b 	dmb	ish
	return (1 & (val >> (bit & (ATOMIC_BITS - 1)))) != 0;
   288e2:	f416 5f00 	tst.w	r6, #8192	; 0x2000
   288e6:	f3c6 3640 	ubfx	r6, r6, #13, #1
		if (bond_flag) {
   288ea:	d10a      	bne.n	28902 <smp_pairing_complete+0xa6>
		if (bt_auth && bt_auth->pairing_complete) {
   288ec:	4b0e      	ldr	r3, [pc, #56]	; (28928 <smp_pairing_complete+0xcc>)
   288ee:	681b      	ldr	r3, [r3, #0]
   288f0:	2b00      	cmp	r3, #0
   288f2:	d0e9      	beq.n	288c8 <smp_pairing_complete+0x6c>
   288f4:	699b      	ldr	r3, [r3, #24]
   288f6:	2b00      	cmp	r3, #0
   288f8:	d0e6      	beq.n	288c8 <smp_pairing_complete+0x6c>
			bt_auth->pairing_complete(conn, bond_flag);
   288fa:	4631      	mov	r1, r6
   288fc:	4628      	mov	r0, r5
   288fe:	4798      	blx	r3
   28900:	e7e2      	b.n	288c8 <smp_pairing_complete+0x6c>
			bt_keys_store(conn->le.keys);
   28902:	f8d5 00bc 	ldr.w	r0, [r5, #188]	; 0xbc
   28906:	f000 fcd3 	bl	292b0 <bt_keys_store>
   2890a:	e7ef      	b.n	288ec <smp_pairing_complete+0x90>
			bt_conn_security_changed(conn,
   2890c:	4630      	mov	r0, r6
   2890e:	f00f fb65 	bl	37fdc <hci_err_get>
   28912:	4601      	mov	r1, r0
   28914:	4632      	mov	r2, r6
   28916:	4628      	mov	r0, r5
   28918:	f7fb f9ac 	bl	23c74 <bt_conn_security_changed>
   2891c:	e7c4      	b.n	288a8 <smp_pairing_complete+0x4c>
		bt_smp_start_security(conn);
   2891e:	4628      	mov	r0, r5
   28920:	f010 f842 	bl	389a8 <bt_smp_start_security>
}
   28924:	e7d7      	b.n	288d6 <smp_pairing_complete+0x7a>
   28926:	bf00      	nop
   28928:	200022e4 	.word	0x200022e4

0002892c <bt_smp_recv>:
{
   2892c:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
	if (buf->len < sizeof(*hdr)) {
   2892e:	898b      	ldrh	r3, [r1, #12]
   28930:	2b00      	cmp	r3, #0
   28932:	d046      	beq.n	289c2 <bt_smp_recv+0x96>
   28934:	4604      	mov	r4, r0
   28936:	460d      	mov	r5, r1
   28938:	f1a0 06f0 	sub.w	r6, r0, #240	; 0xf0
	return net_buf_simple_pull_mem(&buf->b, len);
   2893c:	2101      	movs	r1, #1
   2893e:	f105 0008 	add.w	r0, r5, #8
   28942:	f000 ffe5 	bl	29910 <net_buf_simple_pull_mem>
   28946:	4607      	mov	r7, r0
   28948:	f3bf 8f5b 	dmb	ish
   2894c:	f854 3cec 	ldr.w	r3, [r4, #-236]
   28950:	f3bf 8f5b 	dmb	ish
	if (atomic_test_bit(smp->flags, SMP_FLAG_TIMEOUT)) {
   28954:	f013 0f10 	tst.w	r3, #16
   28958:	d139      	bne.n	289ce <bt_smp_recv+0xa2>
	if (hdr->code >= ARRAY_SIZE(handlers)) {
   2895a:	7802      	ldrb	r2, [r0, #0]
   2895c:	2a0e      	cmp	r2, #14
   2895e:	d83c      	bhi.n	289da <bt_smp_recv+0xae>
	if (!handlers[hdr->code].func) {
   28960:	4b30      	ldr	r3, [pc, #192]	; (28a24 <bt_smp_recv+0xf8>)
   28962:	f853 3032 	ldr.w	r3, [r3, r2, lsl #3]
   28966:	2b00      	cmp	r3, #0
   28968:	d03c      	beq.n	289e4 <bt_smp_recv+0xb8>
	if (!atomic_test_and_clear_bit(smp->allowed_cmds, hdr->code)) {
   2896a:	3cf0      	subs	r4, #240	; 0xf0
	atomic_val_t mask = ATOMIC_MASK(bit);
   2896c:	f002 011f 	and.w	r1, r2, #31
   28970:	2301      	movs	r3, #1
   28972:	408b      	lsls	r3, r1
	old = atomic_and(ATOMIC_ELEM(target, bit), ~mask);
   28974:	0952      	lsrs	r2, r2, #5
   28976:	eb04 0482 	add.w	r4, r4, r2, lsl #2
   2897a:	43d9      	mvns	r1, r3
	return __atomic_fetch_and(target, value, __ATOMIC_SEQ_CST);
   2897c:	f3bf 8f5b 	dmb	ish
   28980:	e854 2f00 	ldrex	r2, [r4]
   28984:	ea02 0001 	and.w	r0, r2, r1
   28988:	e844 0c00 	strex	ip, r0, [r4]
   2898c:	f1bc 0f00 	cmp.w	ip, #0
   28990:	d1f6      	bne.n	28980 <bt_smp_recv+0x54>
   28992:	f3bf 8f5b 	dmb	ish
   28996:	4213      	tst	r3, r2
   28998:	d02d      	beq.n	289f6 <bt_smp_recv+0xca>
	if (buf->len != handlers[hdr->code].expect_len) {
   2899a:	89aa      	ldrh	r2, [r5, #12]
   2899c:	783b      	ldrb	r3, [r7, #0]
   2899e:	4921      	ldr	r1, [pc, #132]	; (28a24 <bt_smp_recv+0xf8>)
   289a0:	eb01 01c3 	add.w	r1, r1, r3, lsl #3
   289a4:	7909      	ldrb	r1, [r1, #4]
   289a6:	428a      	cmp	r2, r1
   289a8:	d132      	bne.n	28a10 <bt_smp_recv+0xe4>
	err = handlers[hdr->code].func(smp, buf);
   289aa:	4a1e      	ldr	r2, [pc, #120]	; (28a24 <bt_smp_recv+0xf8>)
   289ac:	f852 3033 	ldr.w	r3, [r2, r3, lsl #3]
   289b0:	4629      	mov	r1, r5
   289b2:	4630      	mov	r0, r6
   289b4:	4798      	blx	r3
	if (err) {
   289b6:	4601      	mov	r1, r0
   289b8:	b138      	cbz	r0, 289ca <bt_smp_recv+0x9e>
		smp_error(smp, err);
   289ba:	4630      	mov	r0, r6
   289bc:	f00f fffe 	bl	389bc <smp_error>
   289c0:	e003      	b.n	289ca <bt_smp_recv+0x9e>
		BT_ERR("Too small SMP PDU received");
   289c2:	2145      	movs	r1, #69	; 0x45
   289c4:	4818      	ldr	r0, [pc, #96]	; (28a28 <bt_smp_recv+0xfc>)
   289c6:	f00b f891 	bl	33aec <z_log_minimal_printk>
}
   289ca:	2000      	movs	r0, #0
   289cc:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
		BT_WARN("SMP command (code 0x%02x) received after timeout",
   289ce:	7802      	ldrb	r2, [r0, #0]
   289d0:	2157      	movs	r1, #87	; 0x57
   289d2:	4816      	ldr	r0, [pc, #88]	; (28a2c <bt_smp_recv+0x100>)
   289d4:	f00b f88a 	bl	33aec <z_log_minimal_printk>
		return 0;
   289d8:	e7f7      	b.n	289ca <bt_smp_recv+0x9e>
		BT_WARN("Received reserved SMP code 0x%02x", hdr->code);
   289da:	2157      	movs	r1, #87	; 0x57
   289dc:	4814      	ldr	r0, [pc, #80]	; (28a30 <bt_smp_recv+0x104>)
   289de:	f00b f885 	bl	33aec <z_log_minimal_printk>
		return 0;
   289e2:	e7f2      	b.n	289ca <bt_smp_recv+0x9e>
		BT_WARN("Unhandled SMP code 0x%02x", hdr->code);
   289e4:	2157      	movs	r1, #87	; 0x57
   289e6:	4813      	ldr	r0, [pc, #76]	; (28a34 <bt_smp_recv+0x108>)
   289e8:	f00b f880 	bl	33aec <z_log_minimal_printk>
		smp_error(smp, BT_SMP_ERR_CMD_NOTSUPP);
   289ec:	2107      	movs	r1, #7
   289ee:	4630      	mov	r0, r6
   289f0:	f00f ffe4 	bl	389bc <smp_error>
		return 0;
   289f4:	e7e9      	b.n	289ca <bt_smp_recv+0x9e>
		BT_WARN("Unexpected SMP code 0x%02x", hdr->code);
   289f6:	783a      	ldrb	r2, [r7, #0]
   289f8:	2157      	movs	r1, #87	; 0x57
   289fa:	480f      	ldr	r0, [pc, #60]	; (28a38 <bt_smp_recv+0x10c>)
   289fc:	f00b f876 	bl	33aec <z_log_minimal_printk>
		if (hdr->code != BT_SMP_CMD_PAIRING_FAIL) {
   28a00:	783b      	ldrb	r3, [r7, #0]
   28a02:	2b05      	cmp	r3, #5
   28a04:	d0e1      	beq.n	289ca <bt_smp_recv+0x9e>
			smp_error(smp, BT_SMP_ERR_UNSPECIFIED);
   28a06:	2108      	movs	r1, #8
   28a08:	4630      	mov	r0, r6
   28a0a:	f00f ffd7 	bl	389bc <smp_error>
		return 0;
   28a0e:	e7dc      	b.n	289ca <bt_smp_recv+0x9e>
		BT_ERR("Invalid len %u for code 0x%02x", buf->len, hdr->code);
   28a10:	2145      	movs	r1, #69	; 0x45
   28a12:	480a      	ldr	r0, [pc, #40]	; (28a3c <bt_smp_recv+0x110>)
   28a14:	f00b f86a 	bl	33aec <z_log_minimal_printk>
		smp_error(smp, BT_SMP_ERR_INVALID_PARAMS);
   28a18:	210a      	movs	r1, #10
   28a1a:	4630      	mov	r0, r6
   28a1c:	f00f ffce 	bl	389bc <smp_error>
		return 0;
   28a20:	e7d3      	b.n	289ca <bt_smp_recv+0x9e>
   28a22:	bf00      	nop
   28a24:	0003e944 	.word	0x0003e944
   28a28:	0003e7a0 	.word	0x0003e7a0
   28a2c:	0003e7c0 	.word	0x0003e7c0
   28a30:	0003e7f8 	.word	0x0003e7f8
   28a34:	0003e820 	.word	0x0003e820
   28a38:	0003e840 	.word	0x0003e840
   28a3c:	0003df3c 	.word	0x0003df3c

00028a40 <bt_smp_pkey_ready>:
{
   28a40:	b538      	push	{r3, r4, r5, lr}
	sc_public_key = pkey;
   28a42:	4b13      	ldr	r3, [pc, #76]	; (28a90 <bt_smp_pkey_ready+0x50>)
   28a44:	6018      	str	r0, [r3, #0]
	if (!pkey) {
   28a46:	b920      	cbnz	r0, 28a52 <bt_smp_pkey_ready+0x12>
		BT_WARN("Public key not available");
   28a48:	2157      	movs	r1, #87	; 0x57
   28a4a:	4812      	ldr	r0, [pc, #72]	; (28a94 <bt_smp_pkey_ready+0x54>)
   28a4c:	f00b f84e 	bl	33aec <z_log_minimal_printk>
}
   28a50:	bd38      	pop	{r3, r4, r5, pc}
	z_impl_k_sem_give(sem);
   28a52:	4811      	ldr	r0, [pc, #68]	; (28a98 <bt_smp_pkey_ready+0x58>)
   28a54:	f007 fa66 	bl	2ff24 <z_impl_k_sem_give>
	for (i = 0; i < ARRAY_SIZE(bt_smp_pool); i++) {
   28a58:	2400      	movs	r4, #0
   28a5a:	2c00      	cmp	r4, #0
   28a5c:	dcf8      	bgt.n	28a50 <bt_smp_pkey_ready+0x10>
		struct bt_smp *smp = &bt_smp_pool[i];
   28a5e:	eb04 1544 	add.w	r5, r4, r4, lsl #5
   28a62:	4b0e      	ldr	r3, [pc, #56]	; (28a9c <bt_smp_pkey_ready+0x5c>)
   28a64:	eb03 1505 	add.w	r5, r3, r5, lsl #4
	return __atomic_load_n(target, __ATOMIC_SEQ_CST);
   28a68:	f3bf 8f5b 	dmb	ish
   28a6c:	686b      	ldr	r3, [r5, #4]
   28a6e:	f3bf 8f5b 	dmb	ish
		if (!atomic_test_bit(smp->flags, SMP_FLAG_PKEY_SEND)) {
   28a72:	f013 0f40 	tst.w	r3, #64	; 0x40
   28a76:	d004      	beq.n	28a82 <bt_smp_pkey_ready+0x42>
		err = smp_public_key_periph(smp);
   28a78:	4628      	mov	r0, r5
   28a7a:	f7ff f8e7 	bl	27c4c <smp_public_key_periph>
		if (err) {
   28a7e:	4601      	mov	r1, r0
   28a80:	b908      	cbnz	r0, 28a86 <bt_smp_pkey_ready+0x46>
	for (i = 0; i < ARRAY_SIZE(bt_smp_pool); i++) {
   28a82:	3401      	adds	r4, #1
   28a84:	e7e9      	b.n	28a5a <bt_smp_pkey_ready+0x1a>
			smp_error(smp, err);
   28a86:	4628      	mov	r0, r5
   28a88:	f00f ff98 	bl	389bc <smp_error>
   28a8c:	e7f9      	b.n	28a82 <bt_smp_pkey_ready+0x42>
   28a8e:	bf00      	nop
   28a90:	200023a0 	.word	0x200023a0
   28a94:	0003e860 	.word	0x0003e860
   28a98:	20000878 	.word	0x20000878
   28a9c:	20001ad0 	.word	0x20001ad0

00028aa0 <smp_ident_addr_info>:
{
   28aa0:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   28aa4:	4604      	mov	r4, r0
	struct bt_conn *conn = smp->chan.chan.conn;
   28aa6:	f8d0 60f0 	ldr.w	r6, [r0, #240]	; 0xf0
	struct bt_smp_ident_addr_info *req = (void *)buf->data;
   28aaa:	688d      	ldr	r5, [r1, #8]
	if (addr->type == BT_ADDR_LE_PUBLIC) {
   28aac:	782b      	ldrb	r3, [r5, #0]
   28aae:	b123      	cbz	r3, 28aba <smp_ident_addr_info+0x1a>
	return BT_ADDR_IS_STATIC(&addr->a);
   28ab0:	79ab      	ldrb	r3, [r5, #6]
   28ab2:	f003 03c0 	and.w	r3, r3, #192	; 0xc0
	if (!bt_addr_le_is_identity(&req->addr)) {
   28ab6:	2bc0      	cmp	r3, #192	; 0xc0
   28ab8:	d13b      	bne.n	28b32 <smp_ident_addr_info+0x92>
	if (bt_addr_le_cmp(&conn->le.dst, &req->addr) != 0) {
   28aba:	f106 0790 	add.w	r7, r6, #144	; 0x90
	return memcmp(a, b, sizeof(*a));
   28abe:	2207      	movs	r2, #7
   28ac0:	4629      	mov	r1, r5
   28ac2:	4638      	mov	r0, r7
   28ac4:	f00d f803 	bl	35ace <memcmp>
   28ac8:	b178      	cbz	r0, 28aea <smp_ident_addr_info+0x4a>
		struct bt_keys *keys = bt_keys_find_addr(conn->id, &req->addr);
   28aca:	4629      	mov	r1, r5
   28acc:	7a30      	ldrb	r0, [r6, #8]
   28ace:	f000 fb15 	bl	290fc <bt_keys_find_addr>
		if (keys) {
   28ad2:	4680      	mov	r8, r0
   28ad4:	b148      	cbz	r0, 28aea <smp_ident_addr_info+0x4a>
			if (!update_keys_check(smp, keys)) {
   28ad6:	4601      	mov	r1, r0
   28ad8:	4620      	mov	r0, r4
   28ada:	f00f fb1e 	bl	3811a <update_keys_check>
   28ade:	2800      	cmp	r0, #0
   28ae0:	f000 8083 	beq.w	28bea <smp_ident_addr_info+0x14a>
			bt_keys_clear(keys);
   28ae4:	4640      	mov	r0, r8
   28ae6:	f000 fb2b 	bl	29140 <bt_keys_clear>
   28aea:	f3bf 8f5b 	dmb	ish
   28aee:	6863      	ldr	r3, [r4, #4]
   28af0:	f3bf 8f5b 	dmb	ish
	if (atomic_test_bit(smp->flags, SMP_FLAG_BOND)) {
   28af4:	f413 5f00 	tst.w	r3, #8192	; 0x2000
   28af8:	d12e      	bne.n	28b58 <smp_ident_addr_info+0xb8>
	smp->remote_dist &= ~BT_SMP_DIST_ID_KEY;
   28afa:	f894 30e9 	ldrb.w	r3, [r4, #233]	; 0xe9
   28afe:	f003 03fd 	and.w	r3, r3, #253	; 0xfd
   28b02:	f884 30e9 	strb.w	r3, [r4, #233]	; 0xe9
	if (smp->remote_dist & BT_SMP_DIST_SIGN) {
   28b06:	f013 0f04 	tst.w	r3, #4
   28b0a:	d00b      	beq.n	28b24 <smp_ident_addr_info+0x84>
	return __atomic_fetch_or(target, value, __ATOMIC_SEQ_CST);
   28b0c:	f3bf 8f5b 	dmb	ish
   28b10:	e854 3f00 	ldrex	r3, [r4]
   28b14:	f443 6380 	orr.w	r3, r3, #1024	; 0x400
   28b18:	e844 3200 	strex	r2, r3, [r4]
   28b1c:	2a00      	cmp	r2, #0
   28b1e:	d1f7      	bne.n	28b10 <smp_ident_addr_info+0x70>
   28b20:	f3bf 8f5b 	dmb	ish
	if (!smp->local_dist && !smp->remote_dist) {
   28b24:	f8b4 30e8 	ldrh.w	r3, [r4, #232]	; 0xe8
   28b28:	2b00      	cmp	r3, #0
   28b2a:	d058      	beq.n	28bde <smp_ident_addr_info+0x13e>
	return 0;
   28b2c:	2000      	movs	r0, #0
}
   28b2e:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
		BT_ERR("Invalid identity %s", bt_addr_le_str(&req->addr));
   28b32:	4628      	mov	r0, r5
   28b34:	f7f7 fa3e 	bl	1ffb4 <bt_addr_le_str_real>
   28b38:	4602      	mov	r2, r0
   28b3a:	2145      	movs	r1, #69	; 0x45
   28b3c:	482c      	ldr	r0, [pc, #176]	; (28bf0 <smp_ident_addr_info+0x150>)
   28b3e:	f00a ffd5 	bl	33aec <z_log_minimal_printk>
		BT_ERR(" for %s", bt_addr_le_str(&conn->le.dst));
   28b42:	f106 0090 	add.w	r0, r6, #144	; 0x90
   28b46:	f7f7 fa35 	bl	1ffb4 <bt_addr_le_str_real>
   28b4a:	4602      	mov	r2, r0
   28b4c:	2145      	movs	r1, #69	; 0x45
   28b4e:	4829      	ldr	r0, [pc, #164]	; (28bf4 <smp_ident_addr_info+0x154>)
   28b50:	f00a ffcc 	bl	33aec <z_log_minimal_printk>
		return BT_SMP_ERR_INVALID_PARAMS;
   28b54:	200a      	movs	r0, #10
   28b56:	e7ea      	b.n	28b2e <smp_ident_addr_info+0x8e>
		keys = bt_keys_get_type(BT_KEYS_IRK, conn->id, &conn->le.dst);
   28b58:	463a      	mov	r2, r7
   28b5a:	7a31      	ldrb	r1, [r6, #8]
   28b5c:	2002      	movs	r0, #2
   28b5e:	f010 f8ad 	bl	38cbc <bt_keys_get_type>
		if (!keys) {
   28b62:	4680      	mov	r8, r0
   28b64:	b178      	cbz	r0, 28b86 <smp_ident_addr_info+0xe6>
		if (conn->role == BT_HCI_ROLE_CENTRAL) {
   28b66:	78f3      	ldrb	r3, [r6, #3]
   28b68:	b9bb      	cbnz	r3, 28b9a <smp_ident_addr_info+0xfa>
			dst = &conn->le.resp_addr;
   28b6a:	f106 019e 	add.w	r1, r6, #158	; 0x9e
	if (addr->type != BT_ADDR_LE_RANDOM) {
   28b6e:	780b      	ldrb	r3, [r1, #0]
   28b70:	2b01      	cmp	r3, #1
   28b72:	d104      	bne.n	28b7e <smp_ident_addr_info+0xde>
	return BT_ADDR_IS_RPA(&addr->a);
   28b74:	798b      	ldrb	r3, [r1, #6]
   28b76:	f003 03c0 	and.w	r3, r3, #192	; 0xc0
		if (bt_addr_le_is_rpa(dst)) {
   28b7a:	2b40      	cmp	r3, #64	; 0x40
   28b7c:	d010      	beq.n	28ba0 <smp_ident_addr_info+0x100>
		bt_id_add(keys);
   28b7e:	4640      	mov	r0, r8
   28b80:	f7f9 fc5e 	bl	22440 <bt_id_add>
   28b84:	e7b9      	b.n	28afa <smp_ident_addr_info+0x5a>
			BT_ERR("Unable to get keys for %s",
   28b86:	4638      	mov	r0, r7
   28b88:	f7f7 fa14 	bl	1ffb4 <bt_addr_le_str_real>
   28b8c:	4602      	mov	r2, r0
   28b8e:	2145      	movs	r1, #69	; 0x45
   28b90:	4819      	ldr	r0, [pc, #100]	; (28bf8 <smp_ident_addr_info+0x158>)
   28b92:	f00a ffab 	bl	33aec <z_log_minimal_printk>
			return BT_SMP_ERR_UNSPECIFIED;
   28b96:	2008      	movs	r0, #8
   28b98:	e7c9      	b.n	28b2e <smp_ident_addr_info+0x8e>
			dst = &conn->le.init_addr;
   28b9a:	f106 0197 	add.w	r1, r6, #151	; 0x97
   28b9e:	e7e6      	b.n	28b6e <smp_ident_addr_info+0xce>
	memcpy(dst, src, sizeof(*dst));
   28ba0:	2206      	movs	r2, #6
   28ba2:	3101      	adds	r1, #1
   28ba4:	f108 003a 	add.w	r0, r8, #58	; 0x3a
   28ba8:	f00c ffa8 	bl	35afc <memcpy>
	if (addr->type == BT_ADDR_LE_PUBLIC) {
   28bac:	f896 3090 	ldrb.w	r3, [r6, #144]	; 0x90
   28bb0:	2b00      	cmp	r3, #0
   28bb2:	d0e4      	beq.n	28b7e <smp_ident_addr_info+0xde>
	return BT_ADDR_IS_STATIC(&addr->a);
   28bb4:	f896 3096 	ldrb.w	r3, [r6, #150]	; 0x96
   28bb8:	f003 03c0 	and.w	r3, r3, #192	; 0xc0
			if (!bt_addr_le_is_identity(&conn->le.dst)) {
   28bbc:	2bc0      	cmp	r3, #192	; 0xc0
   28bbe:	d0de      	beq.n	28b7e <smp_ident_addr_info+0xde>
	memcpy(dst, src, sizeof(*dst));
   28bc0:	2207      	movs	r2, #7
   28bc2:	4629      	mov	r1, r5
   28bc4:	f108 0001 	add.w	r0, r8, #1
   28bc8:	f00c ff98 	bl	35afc <memcpy>
   28bcc:	2207      	movs	r2, #7
   28bce:	4629      	mov	r1, r5
   28bd0:	4638      	mov	r0, r7
   28bd2:	f00c ff93 	bl	35afc <memcpy>
				bt_conn_identity_resolved(conn);
   28bd6:	4630      	mov	r0, r6
   28bd8:	f7fb f80a 	bl	23bf0 <bt_conn_identity_resolved>
   28bdc:	e7cf      	b.n	28b7e <smp_ident_addr_info+0xde>
		smp_pairing_complete(smp, 0);
   28bde:	2100      	movs	r1, #0
   28be0:	4620      	mov	r0, r4
   28be2:	f7ff fe3b 	bl	2885c <smp_pairing_complete>
	return 0;
   28be6:	2000      	movs	r0, #0
   28be8:	e7a1      	b.n	28b2e <smp_ident_addr_info+0x8e>
				return BT_SMP_ERR_UNSPECIFIED;
   28bea:	2008      	movs	r0, #8
   28bec:	e79f      	b.n	28b2e <smp_ident_addr_info+0x8e>
   28bee:	bf00      	nop
   28bf0:	0003e880 	.word	0x0003e880
   28bf4:	0003e89c 	.word	0x0003e89c
   28bf8:	0003e6a8 	.word	0x0003e6a8

00028bfc <smp_central_ident>:
{
   28bfc:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
   28bfe:	4604      	mov	r4, r0
	struct bt_conn *conn = smp->chan.chan.conn;
   28c00:	f8d0 00f0 	ldr.w	r0, [r0, #240]	; 0xf0
	return __atomic_load_n(target, __ATOMIC_SEQ_CST);
   28c04:	f3bf 8f5b 	dmb	ish
   28c08:	6863      	ldr	r3, [r4, #4]
   28c0a:	f3bf 8f5b 	dmb	ish
	if (atomic_test_bit(smp->flags, SMP_FLAG_BOND)) {
   28c0e:	f413 5f00 	tst.w	r3, #8192	; 0x2000
   28c12:	d118      	bne.n	28c46 <smp_central_ident+0x4a>
	smp->remote_dist &= ~BT_SMP_DIST_ENC_KEY;
   28c14:	f894 30e9 	ldrb.w	r3, [r4, #233]	; 0xe9
   28c18:	f003 03fe 	and.w	r3, r3, #254	; 0xfe
   28c1c:	f884 30e9 	strb.w	r3, [r4, #233]	; 0xe9
	if (smp->remote_dist & BT_SMP_DIST_ID_KEY) {
   28c20:	f013 0f02 	tst.w	r3, #2
   28c24:	d12f      	bne.n	28c86 <smp_central_ident+0x8a>
	} else if (smp->remote_dist & BT_SMP_DIST_SIGN) {
   28c26:	f013 0f04 	tst.w	r3, #4
   28c2a:	d038      	beq.n	28c9e <smp_central_ident+0xa2>
	return __atomic_fetch_or(target, value, __ATOMIC_SEQ_CST);
   28c2c:	f3bf 8f5b 	dmb	ish
   28c30:	e854 3f00 	ldrex	r3, [r4]
   28c34:	f443 6380 	orr.w	r3, r3, #1024	; 0x400
   28c38:	e844 3200 	strex	r2, r3, [r4]
   28c3c:	2a00      	cmp	r2, #0
   28c3e:	d1f7      	bne.n	28c30 <smp_central_ident+0x34>
   28c40:	f3bf 8f5b 	dmb	ish
}
   28c44:	e02b      	b.n	28c9e <smp_central_ident+0xa2>
		struct bt_smp_central_ident *req = (void *)buf->data;
   28c46:	688e      	ldr	r6, [r1, #8]
		keys = bt_keys_get_type(BT_KEYS_LTK, conn->id, &conn->le.dst);
   28c48:	f100 0790 	add.w	r7, r0, #144	; 0x90
   28c4c:	463a      	mov	r2, r7
   28c4e:	7a01      	ldrb	r1, [r0, #8]
   28c50:	2004      	movs	r0, #4
   28c52:	f010 f833 	bl	38cbc <bt_keys_get_type>
		if (!keys) {
   28c56:	4605      	mov	r5, r0
   28c58:	b158      	cbz	r0, 28c72 <smp_central_ident+0x76>
		memcpy(keys->ltk.ediv, req->ediv, sizeof(keys->ltk.ediv));
   28c5a:	2202      	movs	r2, #2
   28c5c:	4631      	mov	r1, r6
   28c5e:	3018      	adds	r0, #24
   28c60:	f00c ff4c 	bl	35afc <memcpy>
		memcpy(keys->ltk.rand, req->rand, sizeof(req->rand));
   28c64:	2208      	movs	r2, #8
   28c66:	1cb1      	adds	r1, r6, #2
   28c68:	f105 0010 	add.w	r0, r5, #16
   28c6c:	f00c ff46 	bl	35afc <memcpy>
   28c70:	e7d0      	b.n	28c14 <smp_central_ident+0x18>
			BT_ERR("Unable to get keys for %s",
   28c72:	4638      	mov	r0, r7
   28c74:	f7f7 f99e 	bl	1ffb4 <bt_addr_le_str_real>
   28c78:	4602      	mov	r2, r0
   28c7a:	2145      	movs	r1, #69	; 0x45
   28c7c:	480d      	ldr	r0, [pc, #52]	; (28cb4 <smp_central_ident+0xb8>)
   28c7e:	f00a ff35 	bl	33aec <z_log_minimal_printk>
			return BT_SMP_ERR_UNSPECIFIED;
   28c82:	2008      	movs	r0, #8
   28c84:	e00f      	b.n	28ca6 <smp_central_ident+0xaa>
   28c86:	f3bf 8f5b 	dmb	ish
   28c8a:	e854 3f00 	ldrex	r3, [r4]
   28c8e:	f443 7380 	orr.w	r3, r3, #256	; 0x100
   28c92:	e844 3200 	strex	r2, r3, [r4]
   28c96:	2a00      	cmp	r2, #0
   28c98:	d1f7      	bne.n	28c8a <smp_central_ident+0x8e>
   28c9a:	f3bf 8f5b 	dmb	ish
	if (!smp->local_dist && !smp->remote_dist) {
   28c9e:	f8b4 30e8 	ldrh.w	r3, [r4, #232]	; 0xe8
   28ca2:	b10b      	cbz	r3, 28ca8 <smp_central_ident+0xac>
	return 0;
   28ca4:	2000      	movs	r0, #0
}
   28ca6:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
		smp_pairing_complete(smp, 0);
   28ca8:	2100      	movs	r1, #0
   28caa:	4620      	mov	r0, r4
   28cac:	f7ff fdd6 	bl	2885c <smp_pairing_complete>
	return 0;
   28cb0:	2000      	movs	r0, #0
   28cb2:	e7f8      	b.n	28ca6 <smp_central_ident+0xaa>
   28cb4:	0003e6a8 	.word	0x0003e6a8

00028cb8 <smp_pairing_failed>:
{
   28cb8:	b570      	push	{r4, r5, r6, lr}
   28cba:	4604      	mov	r4, r0
	struct bt_conn *conn = smp->chan.chan.conn;
   28cbc:	f8d0 60f0 	ldr.w	r6, [r0, #240]	; 0xf0
	struct bt_smp_pairing_fail *req = (void *)buf->data;
   28cc0:	688d      	ldr	r5, [r1, #8]
	BT_ERR("reason 0x%x", req->reason);
   28cc2:	782a      	ldrb	r2, [r5, #0]
   28cc4:	2145      	movs	r1, #69	; 0x45
   28cc6:	4818      	ldr	r0, [pc, #96]	; (28d28 <smp_pairing_failed+0x70>)
   28cc8:	f00a ff10 	bl	33aec <z_log_minimal_printk>
	if (atomic_test_and_clear_bit(smp->flags, SMP_FLAG_USER) ||
   28ccc:	1d23      	adds	r3, r4, #4
	return __atomic_fetch_and(target, value, __ATOMIC_SEQ_CST);
   28cce:	f3bf 8f5b 	dmb	ish
   28cd2:	e853 2f00 	ldrex	r2, [r3]
   28cd6:	f422 6180 	bic.w	r1, r2, #1024	; 0x400
   28cda:	e843 1000 	strex	r0, r1, [r3]
   28cde:	2800      	cmp	r0, #0
   28ce0:	d1f7      	bne.n	28cd2 <smp_pairing_failed+0x1a>
   28ce2:	f3bf 8f5b 	dmb	ish
   28ce6:	f412 6f80 	tst.w	r2, #1024	; 0x400
   28cea:	d007      	beq.n	28cfc <smp_pairing_failed+0x44>
		if (bt_auth && bt_auth->cancel) {
   28cec:	4b0f      	ldr	r3, [pc, #60]	; (28d2c <smp_pairing_failed+0x74>)
   28cee:	681b      	ldr	r3, [r3, #0]
   28cf0:	b19b      	cbz	r3, 28d1a <smp_pairing_failed+0x62>
   28cf2:	691b      	ldr	r3, [r3, #16]
   28cf4:	b18b      	cbz	r3, 28d1a <smp_pairing_failed+0x62>
			bt_auth->cancel(conn);
   28cf6:	4630      	mov	r0, r6
   28cf8:	4798      	blx	r3
   28cfa:	e00e      	b.n	28d1a <smp_pairing_failed+0x62>
   28cfc:	f3bf 8f5b 	dmb	ish
   28d00:	e853 2f00 	ldrex	r2, [r3]
   28d04:	f422 6100 	bic.w	r1, r2, #2048	; 0x800
   28d08:	e843 1000 	strex	r0, r1, [r3]
   28d0c:	2800      	cmp	r0, #0
   28d0e:	d1f7      	bne.n	28d00 <smp_pairing_failed+0x48>
   28d10:	f3bf 8f5b 	dmb	ish
	if (atomic_test_and_clear_bit(smp->flags, SMP_FLAG_USER) ||
   28d14:	f412 6f00 	tst.w	r2, #2048	; 0x800
   28d18:	d1e8      	bne.n	28cec <smp_pairing_failed+0x34>
	smp_pairing_complete(smp, req->reason);
   28d1a:	7829      	ldrb	r1, [r5, #0]
   28d1c:	4620      	mov	r0, r4
   28d1e:	f7ff fd9d 	bl	2885c <smp_pairing_complete>
}
   28d22:	2000      	movs	r0, #0
   28d24:	bd70      	pop	{r4, r5, r6, pc}
   28d26:	bf00      	nop
   28d28:	0003e8ac 	.word	0x0003e8ac
   28d2c:	200022e4 	.word	0x200022e4

00028d30 <smp_check_complete>:
	if (conn->type == BT_CONN_TYPE_LE) {
   28d30:	7883      	ldrb	r3, [r0, #2]
   28d32:	2b01      	cmp	r3, #1
   28d34:	d000      	beq.n	28d38 <smp_check_complete+0x8>
   28d36:	4770      	bx	lr
{
   28d38:	b570      	push	{r4, r5, r6, lr}
   28d3a:	460c      	mov	r4, r1
		chan = bt_l2cap_le_lookup_tx_cid(conn, BT_L2CAP_CID_SMP);
   28d3c:	2106      	movs	r1, #6
   28d3e:	f00d ff53 	bl	36be8 <bt_l2cap_le_lookup_tx_cid>
		__ASSERT(chan, "No SMP channel found");
   28d42:	4605      	mov	r5, r0
   28d44:	b158      	cbz	r0, 28d5e <smp_check_complete+0x2e>
		smp = CONTAINER_OF(chan, struct bt_smp, chan);
   28d46:	f1a5 00f0 	sub.w	r0, r5, #240	; 0xf0
		smp->local_dist &= ~dist_complete;
   28d4a:	f815 1c08 	ldrb.w	r1, [r5, #-8]
   28d4e:	ea21 0104 	bic.w	r1, r1, r4
   28d52:	f805 1c08 	strb.w	r1, [r5, #-8]
		if (!smp->local_dist && !smp->remote_dist) {
   28d56:	f835 3c08 	ldrh.w	r3, [r5, #-8]
   28d5a:	b16b      	cbz	r3, 28d78 <smp_check_complete+0x48>
}
   28d5c:	bd70      	pop	{r4, r5, r6, pc}
		__ASSERT(chan, "No SMP channel found");
   28d5e:	4e08      	ldr	r6, [pc, #32]	; (28d80 <smp_check_complete+0x50>)
   28d60:	f240 322f 	movw	r2, #815	; 0x32f
   28d64:	4631      	mov	r1, r6
   28d66:	4807      	ldr	r0, [pc, #28]	; (28d84 <smp_check_complete+0x54>)
   28d68:	f00a fb1f 	bl	333aa <printk>
   28d6c:	f240 312f 	movw	r1, #815	; 0x32f
   28d70:	4630      	mov	r0, r6
   28d72:	f00a feb3 	bl	33adc <assert_post_action>
   28d76:	e7e6      	b.n	28d46 <smp_check_complete+0x16>
			smp_pairing_complete(smp, 0);
   28d78:	2100      	movs	r1, #0
   28d7a:	f7ff fd6f 	bl	2885c <smp_pairing_complete>
		return;
   28d7e:	e7ed      	b.n	28d5c <smp_check_complete+0x2c>
   28d80:	0003e8c0 	.word	0x0003e8c0
   28d84:	0003bdac 	.word	0x0003bdac

00028d88 <smp_timeout>:
{
   28d88:	b538      	push	{r3, r4, r5, lr}
   28d8a:	4604      	mov	r4, r0
	struct bt_smp *smp = CONTAINER_OF(work, struct bt_smp, work);
   28d8c:	f5a0 75f0 	sub.w	r5, r0, #480	; 0x1e0
	BT_ERR("SMP Timeout");
   28d90:	2145      	movs	r1, #69	; 0x45
   28d92:	480b      	ldr	r0, [pc, #44]	; (28dc0 <smp_timeout+0x38>)
   28d94:	f00a feaa 	bl	33aec <z_log_minimal_printk>
	smp_pairing_complete(smp, BT_SMP_ERR_UNSPECIFIED);
   28d98:	2108      	movs	r1, #8
   28d9a:	4628      	mov	r0, r5
   28d9c:	f7ff fd5e 	bl	2885c <smp_pairing_complete>
	atomic_set_bit(smp->flags, SMP_FLAG_TIMEOUT);
   28da0:	f5a4 74ee 	sub.w	r4, r4, #476	; 0x1dc
	return __atomic_fetch_or(target, value, __ATOMIC_SEQ_CST);
   28da4:	f3bf 8f5b 	dmb	ish
   28da8:	e854 3f00 	ldrex	r3, [r4]
   28dac:	f043 0310 	orr.w	r3, r3, #16
   28db0:	e844 3200 	strex	r2, r3, [r4]
   28db4:	2a00      	cmp	r2, #0
   28db6:	d1f7      	bne.n	28da8 <smp_timeout+0x20>
   28db8:	f3bf 8f5b 	dmb	ish
}
   28dbc:	bd38      	pop	{r3, r4, r5, pc}
   28dbe:	bf00      	nop
   28dc0:	0003e8f0 	.word	0x0003e8f0

00028dc4 <bt_smp_update_keys>:
{
   28dc4:	b570      	push	{r4, r5, r6, lr}
   28dc6:	4604      	mov	r4, r0
	smp = smp_chan_get(conn);
   28dc8:	f7fe f95c 	bl	27084 <smp_chan_get>
	if (!smp) {
   28dcc:	2800      	cmp	r0, #0
   28dce:	d05b      	beq.n	28e88 <bt_smp_update_keys+0xc4>
   28dd0:	4605      	mov	r5, r0
	return __atomic_load_n(target, __ATOMIC_SEQ_CST);
   28dd2:	f3bf 8f5b 	dmb	ish
   28dd6:	6843      	ldr	r3, [r0, #4]
   28dd8:	f3bf 8f5b 	dmb	ish
	if (!atomic_test_bit(smp->flags, SMP_FLAG_PAIRING)) {
   28ddc:	f013 0f08 	tst.w	r3, #8
   28de0:	d052      	beq.n	28e88 <bt_smp_update_keys+0xc4>
	if (conn->le.keys) {
   28de2:	f8d4 00bc 	ldr.w	r0, [r4, #188]	; 0xbc
   28de6:	b108      	cbz	r0, 28dec <bt_smp_update_keys+0x28>
		bt_keys_clear(conn->le.keys);
   28de8:	f000 f9aa 	bl	29140 <bt_keys_clear>
	conn->le.keys = bt_keys_get_addr(conn->id, &conn->le.dst);
   28dec:	f104 0690 	add.w	r6, r4, #144	; 0x90
   28df0:	4631      	mov	r1, r6
   28df2:	7a20      	ldrb	r0, [r4, #8]
   28df4:	f000 f884 	bl	28f00 <bt_keys_get_addr>
   28df8:	f8c4 00bc 	str.w	r0, [r4, #188]	; 0xbc
	if (!conn->le.keys) {
   28dfc:	b1c8      	cbz	r0, 28e32 <bt_smp_update_keys+0x6e>
   28dfe:	f3bf 8f5b 	dmb	ish
   28e02:	686b      	ldr	r3, [r5, #4]
   28e04:	f3bf 8f5b 	dmb	ish
	if (atomic_test_bit(smp->flags, SMP_FLAG_SC_DEBUG_KEY)) {
   28e08:	f413 4f80 	tst.w	r3, #16384	; 0x4000
   28e0c:	d005      	beq.n	28e1a <bt_smp_update_keys+0x56>
		conn->le.keys->flags |= BT_KEYS_DEBUG;
   28e0e:	f8d4 20bc 	ldr.w	r2, [r4, #188]	; 0xbc
   28e12:	7b53      	ldrb	r3, [r2, #13]
   28e14:	f043 0302 	orr.w	r3, r3, #2
   28e18:	7353      	strb	r3, [r2, #13]
	switch (smp->method) {
   28e1a:	7a2b      	ldrb	r3, [r5, #8]
   28e1c:	2b03      	cmp	r3, #3
   28e1e:	d815      	bhi.n	28e4c <bt_smp_update_keys+0x88>
   28e20:	b25b      	sxtb	r3, r3
   28e22:	b9bb      	cbnz	r3, 28e54 <bt_smp_update_keys+0x90>
		conn->le.keys->flags &= ~BT_KEYS_AUTHENTICATED;
   28e24:	f8d4 20bc 	ldr.w	r2, [r4, #188]	; 0xbc
   28e28:	7b53      	ldrb	r3, [r2, #13]
   28e2a:	f023 0301 	bic.w	r3, r3, #1
   28e2e:	7353      	strb	r3, [r2, #13]
		break;
   28e30:	e016      	b.n	28e60 <bt_smp_update_keys+0x9c>
		BT_ERR("Unable to get keys for %s",
   28e32:	4630      	mov	r0, r6
   28e34:	f7f7 f8be 	bl	1ffb4 <bt_addr_le_str_real>
   28e38:	4602      	mov	r2, r0
   28e3a:	2145      	movs	r1, #69	; 0x45
   28e3c:	4828      	ldr	r0, [pc, #160]	; (28ee0 <bt_smp_update_keys+0x11c>)
   28e3e:	f00a fe55 	bl	33aec <z_log_minimal_printk>
		smp_error(smp, BT_SMP_ERR_UNSPECIFIED);
   28e42:	2108      	movs	r1, #8
   28e44:	4628      	mov	r0, r5
   28e46:	f00f fdb9 	bl	389bc <smp_error>
		return;
   28e4a:	e01d      	b.n	28e88 <bt_smp_update_keys+0xc4>
	switch (smp->method) {
   28e4c:	3b05      	subs	r3, #5
   28e4e:	b2db      	uxtb	r3, r3
   28e50:	2b01      	cmp	r3, #1
   28e52:	d8e7      	bhi.n	28e24 <bt_smp_update_keys+0x60>
		conn->le.keys->flags |= BT_KEYS_AUTHENTICATED;
   28e54:	f8d4 20bc 	ldr.w	r2, [r4, #188]	; 0xbc
   28e58:	7b53      	ldrb	r3, [r2, #13]
   28e5a:	f043 0301 	orr.w	r3, r3, #1
   28e5e:	7353      	strb	r3, [r2, #13]
	conn->le.keys->enc_size = get_encryption_key_size(smp);
   28e60:	f8d4 60bc 	ldr.w	r6, [r4, #188]	; 0xbc
   28e64:	4628      	mov	r0, r5
   28e66:	f00f f8b2 	bl	37fce <get_encryption_key_size>
   28e6a:	7330      	strb	r0, [r6, #12]
   28e6c:	f3bf 8f5b 	dmb	ish
   28e70:	686b      	ldr	r3, [r5, #4]
   28e72:	f3bf 8f5b 	dmb	ish
	if (atomic_test_bit(smp->flags, SMP_FLAG_SC)) {
   28e76:	f013 0f20 	tst.w	r3, #32
   28e7a:	d106      	bne.n	28e8a <bt_smp_update_keys+0xc6>
		conn->le.keys->flags &= ~BT_KEYS_SC;
   28e7c:	f8d4 20bc 	ldr.w	r2, [r4, #188]	; 0xbc
   28e80:	7b53      	ldrb	r3, [r2, #13]
   28e82:	f023 0310 	bic.w	r3, r3, #16
   28e86:	7353      	strb	r3, [r2, #13]
}
   28e88:	bd70      	pop	{r4, r5, r6, pc}
		conn->le.keys->flags |= BT_KEYS_SC;
   28e8a:	f8d4 20bc 	ldr.w	r2, [r4, #188]	; 0xbc
   28e8e:	7b53      	ldrb	r3, [r2, #13]
   28e90:	f043 0310 	orr.w	r3, r3, #16
   28e94:	7353      	strb	r3, [r2, #13]
   28e96:	f3bf 8f5b 	dmb	ish
   28e9a:	686b      	ldr	r3, [r5, #4]
   28e9c:	f3bf 8f5b 	dmb	ish
		if (atomic_test_bit(smp->flags, SMP_FLAG_BOND)) {
   28ea0:	f413 5f00 	tst.w	r3, #8192	; 0x2000
   28ea4:	d0f0      	beq.n	28e88 <bt_smp_update_keys+0xc4>
			bt_keys_add_type(conn->le.keys, BT_KEYS_LTK_P256);
   28ea6:	2120      	movs	r1, #32
   28ea8:	f8d4 00bc 	ldr.w	r0, [r4, #188]	; 0xbc
   28eac:	f00f ff02 	bl	38cb4 <bt_keys_add_type>
			memcpy(conn->le.keys->ltk.val, smp->tk,
   28eb0:	f8d4 00bc 	ldr.w	r0, [r4, #188]	; 0xbc
   28eb4:	2210      	movs	r2, #16
   28eb6:	f105 0147 	add.w	r1, r5, #71	; 0x47
   28eba:	301a      	adds	r0, #26
   28ebc:	f00c fe1e 	bl	35afc <memcpy>
			(void)memset(conn->le.keys->ltk.rand, 0,
   28ec0:	f8d4 00bc 	ldr.w	r0, [r4, #188]	; 0xbc
   28ec4:	2208      	movs	r2, #8
   28ec6:	2100      	movs	r1, #0
   28ec8:	3010      	adds	r0, #16
   28eca:	f00c fe3b 	bl	35b44 <memset>
			(void)memset(conn->le.keys->ltk.ediv, 0,
   28ece:	f8d4 00bc 	ldr.w	r0, [r4, #188]	; 0xbc
   28ed2:	2202      	movs	r2, #2
   28ed4:	2100      	movs	r1, #0
   28ed6:	3018      	adds	r0, #24
   28ed8:	f00c fe34 	bl	35b44 <memset>
   28edc:	e7d4      	b.n	28e88 <bt_smp_update_keys+0xc4>
   28ede:	bf00      	nop
   28ee0:	0003e6a8 	.word	0x0003e6a8

00028ee4 <bt_smp_init>:
BT_L2CAP_CHANNEL_DEFINE(smp_br_fixed_chan, BT_L2CAP_CID_BR_SMP,
			bt_smp_br_accept, NULL);
#endif /* CONFIG_BT_BREDR */

int bt_smp_init(void)
{
   28ee4:	b508      	push	{r3, lr}
	static struct bt_pub_key_cb pub_key_cb = {
		.func           = bt_smp_pkey_ready,
	};

	sc_supported = le_sc_supported();
   28ee6:	f7fe f813 	bl	26f10 <le_sc_supported>
   28eea:	4b03      	ldr	r3, [pc, #12]	; (28ef8 <bt_smp_init+0x14>)
   28eec:	7018      	strb	r0, [r3, #0]
	}

	BT_DBG("LE SC %s", sc_supported ? "enabled" : "disabled");

	if (!IS_ENABLED(CONFIG_BT_SMP_OOB_LEGACY_PAIR_ONLY)) {
		bt_pub_key_gen(&pub_key_cb);
   28eee:	4803      	ldr	r0, [pc, #12]	; (28efc <bt_smp_init+0x18>)
   28ef0:	f7fa f8b2 	bl	23058 <bt_pub_key_gen>
	}

	return smp_self_test();
}
   28ef4:	2000      	movs	r0, #0
   28ef6:	bd08      	pop	{r3, pc}
   28ef8:	200034ed 	.word	0x200034ed
   28efc:	20000660 	.word	0x20000660

00028f00 <bt_keys_get_addr>:
	return kdata.in_use;
}
#endif /* CONFIG_BT_KEYS_OVERWRITE_OLDEST */

struct bt_keys *bt_keys_get_addr(uint8_t id, const bt_addr_le_t *addr)
{
   28f00:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   28f04:	b082      	sub	sp, #8
   28f06:	4605      	mov	r5, r0
   28f08:	460f      	mov	r7, r1
	struct bt_keys *keys;
	int i;
	size_t first_free_slot = ARRAY_SIZE(key_pool);
   28f0a:	f04f 0801 	mov.w	r8, #1

	BT_DBG("%s", bt_addr_le_str(addr));

	for (i = 0; i < ARRAY_SIZE(key_pool); i++) {
   28f0e:	2400      	movs	r4, #0
   28f10:	2c00      	cmp	r4, #0
   28f12:	dd07      	ble.n	28f24 <bt_keys_get_addr+0x24>
			first_free_slot = oldest - &key_pool[0];
		}
	}

#endif  /* CONFIG_BT_KEYS_OVERWRITE_OLDEST */
	if (first_free_slot < ARRAY_SIZE(key_pool)) {
   28f14:	f1b8 0f00 	cmp.w	r8, #0
   28f18:	d02b      	beq.n	28f72 <bt_keys_get_addr+0x72>
		return keys;
	}

	BT_DBG("unable to create keys for %s", bt_addr_le_str(addr));

	return NULL;
   28f1a:	2600      	movs	r6, #0
}
   28f1c:	4630      	mov	r0, r6
   28f1e:	b002      	add	sp, #8
   28f20:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
		keys = &key_pool[i];
   28f24:	4a1a      	ldr	r2, [pc, #104]	; (28f90 <bt_keys_get_addr+0x90>)
   28f26:	235c      	movs	r3, #92	; 0x5c
   28f28:	fb03 f304 	mul.w	r3, r3, r4
   28f2c:	18d6      	adds	r6, r2, r3
		if (keys->id == id && !bt_addr_le_cmp(&keys->addr, addr)) {
   28f2e:	5cd3      	ldrb	r3, [r2, r3]
   28f30:	42ab      	cmp	r3, r5
   28f32:	d004      	beq.n	28f3e <bt_keys_get_addr+0x3e>
		if (first_free_slot == ARRAY_SIZE(key_pool) &&
   28f34:	f1b8 0f01 	cmp.w	r8, #1
   28f38:	d00a      	beq.n	28f50 <bt_keys_get_addr+0x50>
	for (i = 0; i < ARRAY_SIZE(key_pool); i++) {
   28f3a:	3401      	adds	r4, #1
   28f3c:	e7e8      	b.n	28f10 <bt_keys_get_addr+0x10>
		if (keys->id == id && !bt_addr_le_cmp(&keys->addr, addr)) {
   28f3e:	4630      	mov	r0, r6
	return memcmp(a, b, sizeof(*a));
   28f40:	2207      	movs	r2, #7
   28f42:	4639      	mov	r1, r7
   28f44:	3001      	adds	r0, #1
   28f46:	f00c fdc2 	bl	35ace <memcmp>
   28f4a:	2800      	cmp	r0, #0
   28f4c:	d1f2      	bne.n	28f34 <bt_keys_get_addr+0x34>
   28f4e:	e7e5      	b.n	28f1c <bt_keys_get_addr+0x1c>
		    !bt_addr_le_cmp(&keys->addr, BT_ADDR_LE_ANY)) {
   28f50:	4b0f      	ldr	r3, [pc, #60]	; (28f90 <bt_keys_get_addr+0x90>)
   28f52:	205c      	movs	r0, #92	; 0x5c
   28f54:	fb00 3004 	mla	r0, r0, r4, r3
   28f58:	2300      	movs	r3, #0
   28f5a:	9300      	str	r3, [sp, #0]
   28f5c:	f8cd 3003 	str.w	r3, [sp, #3]
   28f60:	2207      	movs	r2, #7
   28f62:	4669      	mov	r1, sp
   28f64:	3001      	adds	r0, #1
   28f66:	f00c fdb2 	bl	35ace <memcmp>
		if (first_free_slot == ARRAY_SIZE(key_pool) &&
   28f6a:	2800      	cmp	r0, #0
   28f6c:	d1e5      	bne.n	28f3a <bt_keys_get_addr+0x3a>
			first_free_slot = i;
   28f6e:	46a0      	mov	r8, r4
   28f70:	e7e3      	b.n	28f3a <bt_keys_get_addr+0x3a>
		keys = &key_pool[first_free_slot];
   28f72:	4a07      	ldr	r2, [pc, #28]	; (28f90 <bt_keys_get_addr+0x90>)
   28f74:	235c      	movs	r3, #92	; 0x5c
   28f76:	fb03 f808 	mul.w	r8, r3, r8
   28f7a:	eb02 0608 	add.w	r6, r2, r8
		keys->id = id;
   28f7e:	f802 5008 	strb.w	r5, [r2, r8]
	memcpy(dst, src, sizeof(*dst));
   28f82:	2207      	movs	r2, #7
   28f84:	4639      	mov	r1, r7
   28f86:	1c70      	adds	r0, r6, #1
   28f88:	f00c fdb8 	bl	35afc <memcpy>
		return keys;
   28f8c:	e7c6      	b.n	28f1c <bt_keys_get_addr+0x1c>
   28f8e:	bf00      	nop
   28f90:	200023a4 	.word	0x200023a4

00028f94 <bt_keys_foreach>:
	}
}

void bt_keys_foreach(int type, void (*func)(struct bt_keys *keys, void *data),
		     void *data)
{
   28f94:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
   28f96:	4605      	mov	r5, r0
   28f98:	460f      	mov	r7, r1
   28f9a:	4616      	mov	r6, r2
	int i;

	for (i = 0; i < ARRAY_SIZE(key_pool); i++) {
   28f9c:	2400      	movs	r4, #0
   28f9e:	2c00      	cmp	r4, #0
   28fa0:	dd00      	ble.n	28fa4 <bt_keys_foreach+0x10>
		if ((key_pool[i].keys & type)) {
			func(&key_pool[i], data);
		}
	}
}
   28fa2:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
		if ((key_pool[i].keys & type)) {
   28fa4:	4a06      	ldr	r2, [pc, #24]	; (28fc0 <bt_keys_foreach+0x2c>)
   28fa6:	235c      	movs	r3, #92	; 0x5c
   28fa8:	fb03 2304 	mla	r3, r3, r4, r2
   28fac:	89db      	ldrh	r3, [r3, #14]
   28fae:	422b      	tst	r3, r5
   28fb0:	d004      	beq.n	28fbc <bt_keys_foreach+0x28>
			func(&key_pool[i], data);
   28fb2:	4631      	mov	r1, r6
   28fb4:	205c      	movs	r0, #92	; 0x5c
   28fb6:	fb00 2004 	mla	r0, r0, r4, r2
   28fba:	47b8      	blx	r7
	for (i = 0; i < ARRAY_SIZE(key_pool); i++) {
   28fbc:	3401      	adds	r4, #1
   28fbe:	e7ee      	b.n	28f9e <bt_keys_foreach+0xa>
   28fc0:	200023a4 	.word	0x200023a4

00028fc4 <keys_commit>:
{
	bt_id_add(keys);
}

static int keys_commit(void)
{
   28fc4:	b508      	push	{r3, lr}
	 * the keys were already removed.
	 */
	if (IS_ENABLED(CONFIG_BT_CENTRAL) && IS_ENABLED(CONFIG_BT_PRIVACY)) {
		bt_keys_foreach(BT_KEYS_ALL, id_add, NULL);
	} else {
		bt_keys_foreach(BT_KEYS_IRK, id_add, NULL);
   28fc6:	2200      	movs	r2, #0
   28fc8:	4902      	ldr	r1, [pc, #8]	; (28fd4 <keys_commit+0x10>)
   28fca:	2002      	movs	r0, #2
   28fcc:	f7ff ffe2 	bl	28f94 <bt_keys_foreach>
	}

	return 0;
}
   28fd0:	2000      	movs	r0, #0
   28fd2:	bd08      	pop	{r3, pc}
   28fd4:	00038cad 	.word	0x00038cad

00028fd8 <bt_keys_find>:
{
   28fd8:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
   28fda:	4607      	mov	r7, r0
   28fdc:	460e      	mov	r6, r1
   28fde:	4615      	mov	r5, r2
	for (i = 0; i < ARRAY_SIZE(key_pool); i++) {
   28fe0:	2400      	movs	r4, #0
   28fe2:	2c00      	cmp	r4, #0
   28fe4:	dd01      	ble.n	28fea <bt_keys_find+0x12>
	return NULL;
   28fe6:	2000      	movs	r0, #0
}
   28fe8:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
		if ((key_pool[i].keys & type) && key_pool[i].id == id &&
   28fea:	4a0f      	ldr	r2, [pc, #60]	; (29028 <bt_keys_find+0x50>)
   28fec:	235c      	movs	r3, #92	; 0x5c
   28fee:	fb03 2304 	mla	r3, r3, r4, r2
   28ff2:	89db      	ldrh	r3, [r3, #14]
   28ff4:	421f      	tst	r7, r3
   28ff6:	d005      	beq.n	29004 <bt_keys_find+0x2c>
   28ff8:	235c      	movs	r3, #92	; 0x5c
   28ffa:	fb03 f304 	mul.w	r3, r3, r4
   28ffe:	5cd3      	ldrb	r3, [r2, r3]
   29000:	429e      	cmp	r6, r3
   29002:	d001      	beq.n	29008 <bt_keys_find+0x30>
	for (i = 0; i < ARRAY_SIZE(key_pool); i++) {
   29004:	3401      	adds	r4, #1
   29006:	e7ec      	b.n	28fe2 <bt_keys_find+0xa>
		    !bt_addr_le_cmp(&key_pool[i].addr, addr)) {
   29008:	205c      	movs	r0, #92	; 0x5c
   2900a:	fb00 2004 	mla	r0, r0, r4, r2
	return memcmp(a, b, sizeof(*a));
   2900e:	2207      	movs	r2, #7
   29010:	4629      	mov	r1, r5
   29012:	3001      	adds	r0, #1
   29014:	f00c fd5b 	bl	35ace <memcmp>
		if ((key_pool[i].keys & type) && key_pool[i].id == id &&
   29018:	2800      	cmp	r0, #0
   2901a:	d1f3      	bne.n	29004 <bt_keys_find+0x2c>
			return &key_pool[i];
   2901c:	4802      	ldr	r0, [pc, #8]	; (29028 <bt_keys_find+0x50>)
   2901e:	235c      	movs	r3, #92	; 0x5c
   29020:	fb03 0004 	mla	r0, r3, r4, r0
   29024:	e7e0      	b.n	28fe8 <bt_keys_find+0x10>
   29026:	bf00      	nop
   29028:	200023a4 	.word	0x200023a4

0002902c <bt_keys_find_irk>:
	if (addr->type != BT_ADDR_LE_RANDOM) {
   2902c:	780b      	ldrb	r3, [r1, #0]
   2902e:	2b01      	cmp	r3, #1
   29030:	d15f      	bne.n	290f2 <bt_keys_find_irk+0xc6>
{
   29032:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   29036:	4606      	mov	r6, r0
   29038:	460d      	mov	r5, r1
	return BT_ADDR_IS_RPA(&addr->a);
   2903a:	798b      	ldrb	r3, [r1, #6]
   2903c:	f003 03c0 	and.w	r3, r3, #192	; 0xc0
	if (!bt_addr_le_is_rpa(addr)) {
   29040:	2b40      	cmp	r3, #64	; 0x40
   29042:	d101      	bne.n	29048 <bt_keys_find_irk+0x1c>
	for (i = 0; i < ARRAY_SIZE(key_pool); i++) {
   29044:	2400      	movs	r4, #0
   29046:	e002      	b.n	2904e <bt_keys_find_irk+0x22>
		return NULL;
   29048:	2000      	movs	r0, #0
   2904a:	e025      	b.n	29098 <bt_keys_find_irk+0x6c>
	for (i = 0; i < ARRAY_SIZE(key_pool); i++) {
   2904c:	3401      	adds	r4, #1
   2904e:	2c00      	cmp	r4, #0
   29050:	dc1e      	bgt.n	29090 <bt_keys_find_irk+0x64>
		if (!(key_pool[i].keys & BT_KEYS_IRK)) {
   29052:	4a29      	ldr	r2, [pc, #164]	; (290f8 <bt_keys_find_irk+0xcc>)
   29054:	235c      	movs	r3, #92	; 0x5c
   29056:	fb03 2304 	mla	r3, r3, r4, r2
   2905a:	89db      	ldrh	r3, [r3, #14]
   2905c:	f013 0f02 	tst.w	r3, #2
   29060:	d0f4      	beq.n	2904c <bt_keys_find_irk+0x20>
		if (key_pool[i].id == id &&
   29062:	235c      	movs	r3, #92	; 0x5c
   29064:	fb03 f304 	mul.w	r3, r3, r4
   29068:	5cd3      	ldrb	r3, [r2, r3]
   2906a:	42b3      	cmp	r3, r6
   2906c:	d1ee      	bne.n	2904c <bt_keys_find_irk+0x20>
		    !bt_addr_cmp(&addr->a, &key_pool[i].irk.rpa)) {
   2906e:	215c      	movs	r1, #92	; 0x5c
   29070:	fb01 f104 	mul.w	r1, r1, r4
   29074:	3138      	adds	r1, #56	; 0x38
   29076:	4411      	add	r1, r2
	return memcmp(a, b, sizeof(*a));
   29078:	2206      	movs	r2, #6
   2907a:	3102      	adds	r1, #2
   2907c:	1c68      	adds	r0, r5, #1
   2907e:	f00c fd26 	bl	35ace <memcmp>
		if (key_pool[i].id == id &&
   29082:	2800      	cmp	r0, #0
   29084:	d1e2      	bne.n	2904c <bt_keys_find_irk+0x20>
			return &key_pool[i];
   29086:	481c      	ldr	r0, [pc, #112]	; (290f8 <bt_keys_find_irk+0xcc>)
   29088:	235c      	movs	r3, #92	; 0x5c
   2908a:	fb03 0004 	mla	r0, r3, r4, r0
   2908e:	e003      	b.n	29098 <bt_keys_find_irk+0x6c>
	for (i = 0; i < ARRAY_SIZE(key_pool); i++) {
   29090:	2700      	movs	r7, #0
   29092:	2f00      	cmp	r7, #0
   29094:	dd02      	ble.n	2909c <bt_keys_find_irk+0x70>
	return NULL;
   29096:	2000      	movs	r0, #0
}
   29098:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
		if (!(key_pool[i].keys & BT_KEYS_IRK)) {
   2909c:	4a16      	ldr	r2, [pc, #88]	; (290f8 <bt_keys_find_irk+0xcc>)
   2909e:	235c      	movs	r3, #92	; 0x5c
   290a0:	fb03 2307 	mla	r3, r3, r7, r2
   290a4:	89db      	ldrh	r3, [r3, #14]
   290a6:	f013 0f02 	tst.w	r3, #2
   290aa:	d005      	beq.n	290b8 <bt_keys_find_irk+0x8c>
		if (key_pool[i].id != id) {
   290ac:	235c      	movs	r3, #92	; 0x5c
   290ae:	fb03 f307 	mul.w	r3, r3, r7
   290b2:	5cd3      	ldrb	r3, [r2, r3]
   290b4:	42b3      	cmp	r3, r6
   290b6:	d001      	beq.n	290bc <bt_keys_find_irk+0x90>
	for (i = 0; i < ARRAY_SIZE(key_pool); i++) {
   290b8:	3701      	adds	r7, #1
   290ba:	e7ea      	b.n	29092 <bt_keys_find_irk+0x66>
		if (bt_rpa_irk_matches(key_pool[i].irk.val, &addr->a)) {
   290bc:	205c      	movs	r0, #92	; 0x5c
   290be:	fb00 f007 	mul.w	r0, r0, r7
   290c2:	3028      	adds	r0, #40	; 0x28
   290c4:	4410      	add	r0, r2
   290c6:	f105 0801 	add.w	r8, r5, #1
   290ca:	4641      	mov	r1, r8
   290cc:	3002      	adds	r0, #2
   290ce:	f00c fd99 	bl	35c04 <bt_rpa_irk_matches>
   290d2:	2800      	cmp	r0, #0
   290d4:	d0f0      	beq.n	290b8 <bt_keys_find_irk+0x8c>
			bt_addr_copy(&key_pool[i].irk.rpa, &addr->a);
   290d6:	4c08      	ldr	r4, [pc, #32]	; (290f8 <bt_keys_find_irk+0xcc>)
   290d8:	205c      	movs	r0, #92	; 0x5c
   290da:	fb00 f707 	mul.w	r7, r0, r7
   290de:	f107 0038 	add.w	r0, r7, #56	; 0x38
   290e2:	4420      	add	r0, r4
	memcpy(dst, src, sizeof(*dst));
   290e4:	2206      	movs	r2, #6
   290e6:	4641      	mov	r1, r8
   290e8:	3002      	adds	r0, #2
   290ea:	f00c fd07 	bl	35afc <memcpy>
			return &key_pool[i];
   290ee:	19e0      	adds	r0, r4, r7
   290f0:	e7d2      	b.n	29098 <bt_keys_find_irk+0x6c>
		return NULL;
   290f2:	2000      	movs	r0, #0
}
   290f4:	4770      	bx	lr
   290f6:	bf00      	nop
   290f8:	200023a4 	.word	0x200023a4

000290fc <bt_keys_find_addr>:
{
   290fc:	b570      	push	{r4, r5, r6, lr}
   290fe:	4606      	mov	r6, r0
   29100:	460d      	mov	r5, r1
	for (i = 0; i < ARRAY_SIZE(key_pool); i++) {
   29102:	2400      	movs	r4, #0
   29104:	2c00      	cmp	r4, #0
   29106:	dd01      	ble.n	2910c <bt_keys_find_addr+0x10>
	return NULL;
   29108:	2000      	movs	r0, #0
}
   2910a:	bd70      	pop	{r4, r5, r6, pc}
		if (key_pool[i].id == id &&
   2910c:	235c      	movs	r3, #92	; 0x5c
   2910e:	fb03 f304 	mul.w	r3, r3, r4
   29112:	4a0a      	ldr	r2, [pc, #40]	; (2913c <bt_keys_find_addr+0x40>)
   29114:	5cd3      	ldrb	r3, [r2, r3]
   29116:	429e      	cmp	r6, r3
   29118:	d001      	beq.n	2911e <bt_keys_find_addr+0x22>
	for (i = 0; i < ARRAY_SIZE(key_pool); i++) {
   2911a:	3401      	adds	r4, #1
   2911c:	e7f2      	b.n	29104 <bt_keys_find_addr+0x8>
		    !bt_addr_le_cmp(&key_pool[i].addr, addr)) {
   2911e:	205c      	movs	r0, #92	; 0x5c
   29120:	fb00 2004 	mla	r0, r0, r4, r2
	return memcmp(a, b, sizeof(*a));
   29124:	2207      	movs	r2, #7
   29126:	4629      	mov	r1, r5
   29128:	3001      	adds	r0, #1
   2912a:	f00c fcd0 	bl	35ace <memcmp>
		if (key_pool[i].id == id &&
   2912e:	2800      	cmp	r0, #0
   29130:	d1f3      	bne.n	2911a <bt_keys_find_addr+0x1e>
			return &key_pool[i];
   29132:	4802      	ldr	r0, [pc, #8]	; (2913c <bt_keys_find_addr+0x40>)
   29134:	235c      	movs	r3, #92	; 0x5c
   29136:	fb03 0004 	mla	r0, r3, r4, r0
   2913a:	e7e6      	b.n	2910a <bt_keys_find_addr+0xe>
   2913c:	200023a4 	.word	0x200023a4

00029140 <bt_keys_clear>:
{
   29140:	b530      	push	{r4, r5, lr}
   29142:	b08d      	sub	sp, #52	; 0x34
   29144:	4604      	mov	r4, r0
	if (keys->state & BT_KEYS_ID_ADDED) {
   29146:	7a03      	ldrb	r3, [r0, #8]
   29148:	f013 0f04 	tst.w	r3, #4
   2914c:	d117      	bne.n	2917e <bt_keys_clear+0x3e>
		if (keys->id) {
   2914e:	7822      	ldrb	r2, [r4, #0]
   29150:	b1c2      	cbz	r2, 29184 <bt_keys_clear+0x44>
			u8_to_dec(id, sizeof(id), keys->id);
   29152:	ad02      	add	r5, sp, #8
   29154:	2104      	movs	r1, #4
   29156:	4628      	mov	r0, r5
   29158:	f7f3 f938 	bl	1c3cc <u8_to_dec>
			bt_settings_encode_key(key, sizeof(key), "keys",
   2915c:	9500      	str	r5, [sp, #0]
   2915e:	1c63      	adds	r3, r4, #1
   29160:	4a0d      	ldr	r2, [pc, #52]	; (29198 <bt_keys_clear+0x58>)
   29162:	2124      	movs	r1, #36	; 0x24
   29164:	a803      	add	r0, sp, #12
   29166:	f7f7 fa97 	bl	20698 <bt_settings_encode_key>
		settings_delete(key);
   2916a:	a803      	add	r0, sp, #12
   2916c:	f00b f9ab 	bl	344c6 <settings_delete>
	(void)memset(keys, 0, sizeof(*keys));
   29170:	225c      	movs	r2, #92	; 0x5c
   29172:	2100      	movs	r1, #0
   29174:	4620      	mov	r0, r4
   29176:	f00c fce5 	bl	35b44 <memset>
}
   2917a:	b00d      	add	sp, #52	; 0x34
   2917c:	bd30      	pop	{r4, r5, pc}
		bt_id_del(keys);
   2917e:	f7f9 f9f3 	bl	22568 <bt_id_del>
   29182:	e7e4      	b.n	2914e <bt_keys_clear+0xe>
			bt_settings_encode_key(key, sizeof(key), "keys",
   29184:	2300      	movs	r3, #0
   29186:	9300      	str	r3, [sp, #0]
   29188:	1c63      	adds	r3, r4, #1
   2918a:	4a03      	ldr	r2, [pc, #12]	; (29198 <bt_keys_clear+0x58>)
   2918c:	2124      	movs	r1, #36	; 0x24
   2918e:	a803      	add	r0, sp, #12
   29190:	f7f7 fa82 	bl	20698 <bt_settings_encode_key>
   29194:	e7e9      	b.n	2916a <bt_keys_clear+0x2a>
   29196:	bf00      	nop
   29198:	0003e9f0 	.word	0x0003e9f0

0002919c <keys_set>:
{
   2919c:	b570      	push	{r4, r5, r6, lr}
   2919e:	b098      	sub	sp, #96	; 0x60
	if (!name) {
   291a0:	b358      	cbz	r0, 291fa <keys_set+0x5e>
   291a2:	4614      	mov	r4, r2
   291a4:	4605      	mov	r5, r0
	len = read_cb(cb_arg, val, sizeof(val));
   291a6:	2250      	movs	r2, #80	; 0x50
   291a8:	a902      	add	r1, sp, #8
   291aa:	4618      	mov	r0, r3
   291ac:	47a0      	blx	r4
	if (len < 0) {
   291ae:	1e04      	subs	r4, r0, #0
   291b0:	db2a      	blt.n	29208 <keys_set+0x6c>
	err = bt_settings_decode_key(name, &addr);
   291b2:	a916      	add	r1, sp, #88	; 0x58
   291b4:	4628      	mov	r0, r5
   291b6:	f00c fd9c 	bl	35cf2 <bt_settings_decode_key>
	if (err) {
   291ba:	4606      	mov	r6, r0
   291bc:	bb60      	cbnz	r0, 29218 <keys_set+0x7c>
	settings_name_next(name, &next);
   291be:	a901      	add	r1, sp, #4
   291c0:	4628      	mov	r0, r5
   291c2:	f00b f9b0 	bl	34526 <settings_name_next>
	if (!next) {
   291c6:	9801      	ldr	r0, [sp, #4]
   291c8:	b3a8      	cbz	r0, 29236 <keys_set+0x9a>
		unsigned long next_id = strtoul(next, NULL, 10);
   291ca:	220a      	movs	r2, #10
   291cc:	2100      	movs	r1, #0
   291ce:	f00c fba3 	bl	35918 <strtoul>
		if (next_id >= CONFIG_BT_ID_MAX) {
   291d2:	4602      	mov	r2, r0
   291d4:	bb40      	cbnz	r0, 29228 <keys_set+0x8c>
		id = (uint8_t)next_id;
   291d6:	b2c0      	uxtb	r0, r0
	if (!len) {
   291d8:	b37c      	cbz	r4, 2923a <keys_set+0x9e>
	keys = bt_keys_get_addr(id, &addr);
   291da:	a916      	add	r1, sp, #88	; 0x58
   291dc:	f7ff fe90 	bl	28f00 <bt_keys_get_addr>
	if (!keys) {
   291e0:	4605      	mov	r5, r0
   291e2:	2800      	cmp	r0, #0
   291e4:	d03e      	beq.n	29264 <keys_set+0xc8>
	if (len != BT_KEYS_STORAGE_LEN) {
   291e6:	2c50      	cmp	r4, #80	; 0x50
   291e8:	d147      	bne.n	2927a <keys_set+0xde>
		memcpy(keys->storage_start, val, len);
   291ea:	4622      	mov	r2, r4
   291ec:	a902      	add	r1, sp, #8
   291ee:	300c      	adds	r0, #12
   291f0:	f00c fc84 	bl	35afc <memcpy>
}
   291f4:	4630      	mov	r0, r6
   291f6:	b018      	add	sp, #96	; 0x60
   291f8:	bd70      	pop	{r4, r5, r6, pc}
		BT_ERR("Insufficient number of arguments");
   291fa:	2145      	movs	r1, #69	; 0x45
   291fc:	4825      	ldr	r0, [pc, #148]	; (29294 <keys_set+0xf8>)
   291fe:	f00a fc75 	bl	33aec <z_log_minimal_printk>
		return -EINVAL;
   29202:	f06f 0615 	mvn.w	r6, #21
   29206:	e7f5      	b.n	291f4 <keys_set+0x58>
		BT_ERR("Failed to read value (err %zd)", len);
   29208:	4622      	mov	r2, r4
   2920a:	2145      	movs	r1, #69	; 0x45
   2920c:	4822      	ldr	r0, [pc, #136]	; (29298 <keys_set+0xfc>)
   2920e:	f00a fc6d 	bl	33aec <z_log_minimal_printk>
		return -EINVAL;
   29212:	f06f 0615 	mvn.w	r6, #21
   29216:	e7ed      	b.n	291f4 <keys_set+0x58>
		BT_ERR("Unable to decode address %s", name);
   29218:	462a      	mov	r2, r5
   2921a:	2145      	movs	r1, #69	; 0x45
   2921c:	481f      	ldr	r0, [pc, #124]	; (2929c <keys_set+0x100>)
   2921e:	f00a fc65 	bl	33aec <z_log_minimal_printk>
		return -EINVAL;
   29222:	f06f 0615 	mvn.w	r6, #21
   29226:	e7e5      	b.n	291f4 <keys_set+0x58>
			BT_ERR("Invalid local identity %lu", next_id);
   29228:	2145      	movs	r1, #69	; 0x45
   2922a:	481d      	ldr	r0, [pc, #116]	; (292a0 <keys_set+0x104>)
   2922c:	f00a fc5e 	bl	33aec <z_log_minimal_printk>
			return -EINVAL;
   29230:	f06f 0615 	mvn.w	r6, #21
   29234:	e7de      	b.n	291f4 <keys_set+0x58>
		id = BT_ID_DEFAULT;
   29236:	2000      	movs	r0, #0
   29238:	e7ce      	b.n	291d8 <keys_set+0x3c>
		keys = bt_keys_find(BT_KEYS_ALL, id, &addr);
   2923a:	aa16      	add	r2, sp, #88	; 0x58
   2923c:	4601      	mov	r1, r0
   2923e:	203f      	movs	r0, #63	; 0x3f
   29240:	f7ff feca 	bl	28fd8 <bt_keys_find>
		if (keys) {
   29244:	b128      	cbz	r0, 29252 <keys_set+0xb6>
			(void)memset(keys, 0, sizeof(*keys));
   29246:	225c      	movs	r2, #92	; 0x5c
   29248:	2100      	movs	r1, #0
   2924a:	f00c fc7b 	bl	35b44 <memset>
		return 0;
   2924e:	4626      	mov	r6, r4
   29250:	e7d0      	b.n	291f4 <keys_set+0x58>
			BT_WARN("Unable to find deleted keys for %s",
   29252:	a816      	add	r0, sp, #88	; 0x58
   29254:	f7f6 feae 	bl	1ffb4 <bt_addr_le_str_real>
   29258:	4602      	mov	r2, r0
   2925a:	2157      	movs	r1, #87	; 0x57
   2925c:	4811      	ldr	r0, [pc, #68]	; (292a4 <keys_set+0x108>)
   2925e:	f00a fc45 	bl	33aec <z_log_minimal_printk>
   29262:	e7f4      	b.n	2924e <keys_set+0xb2>
		BT_ERR("Failed to allocate keys for %s", bt_addr_le_str(&addr));
   29264:	a816      	add	r0, sp, #88	; 0x58
   29266:	f7f6 fea5 	bl	1ffb4 <bt_addr_le_str_real>
   2926a:	4602      	mov	r2, r0
   2926c:	2145      	movs	r1, #69	; 0x45
   2926e:	480e      	ldr	r0, [pc, #56]	; (292a8 <keys_set+0x10c>)
   29270:	f00a fc3c 	bl	33aec <z_log_minimal_printk>
		return -ENOMEM;
   29274:	f06f 060b 	mvn.w	r6, #11
   29278:	e7bc      	b.n	291f4 <keys_set+0x58>
			BT_ERR("Invalid key length %zd != %zu", len,
   2927a:	2350      	movs	r3, #80	; 0x50
   2927c:	4622      	mov	r2, r4
   2927e:	2145      	movs	r1, #69	; 0x45
   29280:	480a      	ldr	r0, [pc, #40]	; (292ac <keys_set+0x110>)
   29282:	f00a fc33 	bl	33aec <z_log_minimal_printk>
			bt_keys_clear(keys);
   29286:	4628      	mov	r0, r5
   29288:	f7ff ff5a 	bl	29140 <bt_keys_clear>
			return -EINVAL;
   2928c:	f06f 0615 	mvn.w	r6, #21
   29290:	e7b0      	b.n	291f4 <keys_set+0x58>
   29292:	bf00      	nop
   29294:	0003cc2c 	.word	0x0003cc2c
   29298:	0003e9f8 	.word	0x0003e9f8
   2929c:	0003e1c0 	.word	0x0003e1c0
   292a0:	0003e1e4 	.word	0x0003e1e4
   292a4:	0003ea1c 	.word	0x0003ea1c
   292a8:	0003ea44 	.word	0x0003ea44
   292ac:	0003ea68 	.word	0x0003ea68

000292b0 <bt_keys_store>:
{
   292b0:	b530      	push	{r4, r5, lr}
   292b2:	b08d      	sub	sp, #52	; 0x34
   292b4:	4604      	mov	r4, r0
	if (keys->id) {
   292b6:	7802      	ldrb	r2, [r0, #0]
   292b8:	b1b2      	cbz	r2, 292e8 <bt_keys_store+0x38>
		u8_to_dec(id, sizeof(id), keys->id);
   292ba:	ad02      	add	r5, sp, #8
   292bc:	2104      	movs	r1, #4
   292be:	4628      	mov	r0, r5
   292c0:	f7f3 f884 	bl	1c3cc <u8_to_dec>
		bt_settings_encode_key(key, sizeof(key), "keys", &keys->addr,
   292c4:	9500      	str	r5, [sp, #0]
   292c6:	1c63      	adds	r3, r4, #1
   292c8:	4a0f      	ldr	r2, [pc, #60]	; (29308 <bt_keys_store+0x58>)
   292ca:	2124      	movs	r1, #36	; 0x24
   292cc:	a803      	add	r0, sp, #12
   292ce:	f7f7 f9e3 	bl	20698 <bt_settings_encode_key>
	err = settings_save_one(key, keys->storage_start, BT_KEYS_STORAGE_LEN);
   292d2:	2250      	movs	r2, #80	; 0x50
   292d4:	f104 010c 	add.w	r1, r4, #12
   292d8:	a803      	add	r0, sp, #12
   292da:	f7f4 ff43 	bl	1e164 <settings_save_one>
	if (err) {
   292de:	4604      	mov	r4, r0
   292e0:	b958      	cbnz	r0, 292fa <bt_keys_store+0x4a>
}
   292e2:	4620      	mov	r0, r4
   292e4:	b00d      	add	sp, #52	; 0x34
   292e6:	bd30      	pop	{r4, r5, pc}
		bt_settings_encode_key(key, sizeof(key), "keys", &keys->addr,
   292e8:	2300      	movs	r3, #0
   292ea:	9300      	str	r3, [sp, #0]
   292ec:	1c43      	adds	r3, r0, #1
   292ee:	4a06      	ldr	r2, [pc, #24]	; (29308 <bt_keys_store+0x58>)
   292f0:	2124      	movs	r1, #36	; 0x24
   292f2:	a803      	add	r0, sp, #12
   292f4:	f7f7 f9d0 	bl	20698 <bt_settings_encode_key>
   292f8:	e7eb      	b.n	292d2 <bt_keys_store+0x22>
		BT_ERR("Failed to save keys (err %d)", err);
   292fa:	4602      	mov	r2, r0
   292fc:	2145      	movs	r1, #69	; 0x45
   292fe:	4803      	ldr	r0, [pc, #12]	; (2930c <bt_keys_store+0x5c>)
   29300:	f00a fbf4 	bl	33aec <z_log_minimal_printk>
		return err;
   29304:	e7ed      	b.n	292e2 <bt_keys_store+0x32>
   29306:	bf00      	nop
   29308:	0003e9f0 	.word	0x0003e9f0
   2930c:	0003ea8c 	.word	0x0003ea8c

00029310 <mcumgr_buf_alloc>:
NET_BUF_POOL_DEFINE(pkt_pool, CONFIG_MCUMGR_BUF_COUNT, CONFIG_MCUMGR_BUF_SIZE,
		    CONFIG_MCUMGR_BUF_USER_DATA_SIZE, NULL);

struct net_buf *
mcumgr_buf_alloc(void)
{
   29310:	b508      	push	{r3, lr}
	return net_buf_alloc_fixed(pool, timeout);
   29312:	2200      	movs	r2, #0
   29314:	2300      	movs	r3, #0
   29316:	4802      	ldr	r0, [pc, #8]	; (29320 <mcumgr_buf_alloc+0x10>)
   29318:	f00f fef8 	bl	3910c <net_buf_alloc_fixed>
	return net_buf_alloc(&pkt_pool, K_NO_WAIT);
}
   2931c:	bd08      	pop	{r3, pc}
   2931e:	bf00      	nop
   29320:	200009e4 	.word	0x200009e4

00029324 <cbor_nb_reader_init>:

void
cbor_nb_reader_init(struct cbor_nb_reader *cnr,
		    struct net_buf *nb)
{
	cnr->r.get8 = &cbor_nb_reader_get8;
   29324:	4b07      	ldr	r3, [pc, #28]	; (29344 <cbor_nb_reader_init+0x20>)
   29326:	6003      	str	r3, [r0, #0]
	cnr->r.get16 = &cbor_nb_reader_get16;
   29328:	4b07      	ldr	r3, [pc, #28]	; (29348 <cbor_nb_reader_init+0x24>)
   2932a:	6043      	str	r3, [r0, #4]
	cnr->r.get32 = &cbor_nb_reader_get32;
   2932c:	4b07      	ldr	r3, [pc, #28]	; (2934c <cbor_nb_reader_init+0x28>)
   2932e:	6083      	str	r3, [r0, #8]
	cnr->r.get64 = &cbor_nb_reader_get64;
   29330:	4b07      	ldr	r3, [pc, #28]	; (29350 <cbor_nb_reader_init+0x2c>)
   29332:	60c3      	str	r3, [r0, #12]
	cnr->r.cmp = &cbor_nb_reader_cmp;
   29334:	4b07      	ldr	r3, [pc, #28]	; (29354 <cbor_nb_reader_init+0x30>)
   29336:	6103      	str	r3, [r0, #16]
	cnr->r.cpy = &cbor_nb_reader_cpy;
   29338:	4b07      	ldr	r3, [pc, #28]	; (29358 <cbor_nb_reader_init+0x34>)
   2933a:	6143      	str	r3, [r0, #20]

	cnr->nb = nb;
   2933c:	61c1      	str	r1, [r0, #28]
	cnr->r.message_size = nb->len;
   2933e:	898b      	ldrh	r3, [r1, #12]
   29340:	6183      	str	r3, [r0, #24]
}
   29342:	4770      	bx	lr
   29344:	00038ce7 	.word	0x00038ce7
   29348:	00038dc7 	.word	0x00038dc7
   2934c:	00038d91 	.word	0x00038d91
   29350:	00038d55 	.word	0x00038d55
   29354:	00038d2d 	.word	0x00038d2d
   29358:	00038d01 	.word	0x00038d01

0002935c <cbor_nb_writer_init>:
}

void
cbor_nb_writer_init(struct cbor_nb_writer *cnw, struct net_buf *nb)
{
	cnw->nb = nb;
   2935c:	6081      	str	r1, [r0, #8]
	cnw->enc.bytes_written = 0;
   2935e:	2300      	movs	r3, #0
   29360:	6043      	str	r3, [r0, #4]
	cnw->enc.write = &cbor_nb_write;
   29362:	4b01      	ldr	r3, [pc, #4]	; (29368 <cbor_nb_writer_init+0xc>)
   29364:	6003      	str	r3, [r0, #0]
}
   29366:	4770      	bx	lr
   29368:	00038e01 	.word	0x00038e01

0002936c <zephyr_smp_process_packet>:
 * Processes a single SMP packet and sends the corresponding response(s).
 */
static int
zephyr_smp_process_packet(struct zephyr_smp_transport *zst,
			  struct net_buf *nb)
{
   2936c:	b500      	push	{lr}
   2936e:	b091      	sub	sp, #68	; 0x44
	struct cbor_nb_reader reader;
	struct cbor_nb_writer writer;
	struct smp_streamer streamer;
	int rc;

	streamer = (struct smp_streamer) {
   29370:	4b07      	ldr	r3, [pc, #28]	; (29390 <zephyr_smp_process_packet+0x24>)
   29372:	9300      	str	r3, [sp, #0]
   29374:	9001      	str	r0, [sp, #4]
   29376:	ab08      	add	r3, sp, #32
   29378:	9302      	str	r3, [sp, #8]
   2937a:	ab05      	add	r3, sp, #20
   2937c:	9303      	str	r3, [sp, #12]
   2937e:	4b05      	ldr	r3, [pc, #20]	; (29394 <zephyr_smp_process_packet+0x28>)
   29380:	9304      	str	r3, [sp, #16]
			.cb_arg = zst,
		},
		.tx_rsp_cb = zephyr_smp_tx_rsp,
	};

	rc = smp_process_request_packet(&streamer, nb);
   29382:	4668      	mov	r0, sp
   29384:	f011 fb83 	bl	3aa8e <smp_process_request_packet>
	return rc;
}
   29388:	b011      	add	sp, #68	; 0x44
   2938a:	f85d fb04 	ldr.w	pc, [sp], #4
   2938e:	bf00      	nop
   29390:	0003ead0 	.word	0x0003ead0
   29394:	00038eed 	.word	0x00038eed

00029398 <zephyr_smp_transport_init>:
zephyr_smp_transport_init(struct zephyr_smp_transport *zst,
			  zephyr_smp_transport_out_fn *output_func,
			  zephyr_smp_transport_get_mtu_fn *get_mtu_func,
			  zephyr_smp_transport_ud_copy_fn *ud_copy_func,
			  zephyr_smp_transport_ud_free_fn *ud_free_func)
{
   29398:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
   2939a:	4604      	mov	r4, r0
   2939c:	460f      	mov	r7, r1
   2939e:	4616      	mov	r6, r2
   293a0:	461d      	mov	r5, r3
	*zst = (struct zephyr_smp_transport) {
   293a2:	223c      	movs	r2, #60	; 0x3c
   293a4:	2100      	movs	r1, #0
   293a6:	f00c fbcd 	bl	35b44 <memset>
   293aa:	62e7      	str	r7, [r4, #44]	; 0x2c
   293ac:	6326      	str	r6, [r4, #48]	; 0x30
   293ae:	6365      	str	r5, [r4, #52]	; 0x34
   293b0:	9b06      	ldr	r3, [sp, #24]
   293b2:	63a3      	str	r3, [r4, #56]	; 0x38
		.zst_get_mtu = get_mtu_func,
		.zst_ud_copy = ud_copy_func,
		.zst_ud_free = ud_free_func,
	};

	k_work_init(&zst->zst_work, zephyr_smp_handle_reqs);
   293b4:	4904      	ldr	r1, [pc, #16]	; (293c8 <zephyr_smp_transport_init+0x30>)
   293b6:	4620      	mov	r0, r4
   293b8:	f007 f8da 	bl	30570 <k_work_init>
	k_fifo_init(&zst->zst_fifo);
   293bc:	f104 0010 	add.w	r0, r4, #16
	z_impl_k_queue_init(queue);
   293c0:	f011 ff08 	bl	3b1d4 <z_impl_k_queue_init>
}
   293c4:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
   293c6:	bf00      	nop
   293c8:	00038e39 	.word	0x00038e39

000293cc <smp_bt_chr_write>:
 */
static ssize_t smp_bt_chr_write(struct bt_conn *conn,
				const struct bt_gatt_attr *attr,
				const void *buf, uint16_t len, uint16_t offset,
				uint8_t flags)
{
   293cc:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
   293ce:	4605      	mov	r5, r0
   293d0:	4616      	mov	r6, r2
   293d2:	461c      	mov	r4, r3
	struct smp_bt_user_data *ud;
	struct net_buf *nb;

	nb = mcumgr_buf_alloc();
   293d4:	f7ff ff9c 	bl	29310 <mcumgr_buf_alloc>
	if (!nb) {
   293d8:	b178      	cbz	r0, 293fa <smp_bt_chr_write+0x2e>
   293da:	4607      	mov	r7, r0
	return net_buf_simple_add_mem(&buf->b, mem, len);
   293dc:	4622      	mov	r2, r4
   293de:	4631      	mov	r1, r6
   293e0:	3008      	adds	r0, #8
   293e2:	f00f feaf 	bl	39144 <net_buf_simple_add_mem>
		return BT_GATT_ERR(BT_ATT_ERR_INSUFFICIENT_RESOURCES);
	}
	net_buf_add_mem(nb, buf, len);

	ud = net_buf_user_data(nb);
	ud->conn = bt_conn_ref(conn);
   293e6:	4628      	mov	r0, r5
   293e8:	f00d f9f0 	bl	367cc <bt_conn_ref>
   293ec:	6178      	str	r0, [r7, #20]

	if (IS_ENABLED(CONFIG_MCUMGR_SMP_BT_LATENCY_CONTROL)) {
		enable_low_latency(conn);
	}

	zephyr_smp_rx_req(&smp_bt_transport, nb);
   293ee:	4639      	mov	r1, r7
   293f0:	4803      	ldr	r0, [pc, #12]	; (29400 <smp_bt_chr_write+0x34>)
   293f2:	f00f fdd9 	bl	38fa8 <zephyr_smp_rx_req>

	return len;
   293f6:	4620      	mov	r0, r4
}
   293f8:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
		return BT_GATT_ERR(BT_ATT_ERR_INSUFFICIENT_RESOURCES);
   293fa:	f06f 0010 	mvn.w	r0, #16
   293fe:	e7fb      	b.n	293f8 <smp_bt_chr_write+0x2c>
   29400:	20002400 	.word	0x20002400

00029404 <smp_bt_init>:
		k_work_init_delayable(&conn_data[i].dwork, restore_default_latency);
	}
}

static int smp_bt_init(const struct device *dev)
{
   29404:	b500      	push	{lr}
   29406:	b083      	sub	sp, #12

	if (IS_ENABLED(CONFIG_MCUMGR_SMP_BT_LATENCY_CONTROL)) {
		init_latency_control_support();
	}

	zephyr_smp_transport_init(&smp_bt_transport, smp_bt_tx_pkt,
   29408:	4b05      	ldr	r3, [pc, #20]	; (29420 <smp_bt_init+0x1c>)
   2940a:	9300      	str	r3, [sp, #0]
   2940c:	4b05      	ldr	r3, [pc, #20]	; (29424 <smp_bt_init+0x20>)
   2940e:	4a06      	ldr	r2, [pc, #24]	; (29428 <smp_bt_init+0x24>)
   29410:	4906      	ldr	r1, [pc, #24]	; (2942c <smp_bt_init+0x28>)
   29412:	4807      	ldr	r0, [pc, #28]	; (29430 <smp_bt_init+0x2c>)
   29414:	f7ff ffc0 	bl	29398 <zephyr_smp_transport_init>
				  smp_bt_get_mtu, smp_bt_ud_copy,
				  smp_bt_ud_free);
	return 0;
}
   29418:	2000      	movs	r0, #0
   2941a:	b003      	add	sp, #12
   2941c:	f85d fb04 	ldr.w	pc, [sp], #4
   29420:	00038fdd 	.word	0x00038fdd
   29424:	00038fbd 	.word	0x00038fbd
   29428:	00038fef 	.word	0x00038fef
   2942c:	0003900f 	.word	0x0003900f
   29430:	20002400 	.word	0x20002400

00029434 <smp_bt_tx_rsp>:
{
   29434:	b570      	push	{r4, r5, r6, lr}
   29436:	b086      	sub	sp, #24
   29438:	4604      	mov	r4, r0
   2943a:	460e      	mov	r6, r1
   2943c:	4615      	mov	r5, r2
	memset(&params, 0, sizeof(params));
   2943e:	2218      	movs	r2, #24
   29440:	2100      	movs	r1, #0
   29442:	4668      	mov	r0, sp
   29444:	f00c fb7e 	bl	35b44 <memset>
	params.attr = attr;
   29448:	4b05      	ldr	r3, [pc, #20]	; (29460 <smp_bt_tx_rsp+0x2c>)
   2944a:	9301      	str	r3, [sp, #4]
	params.data = data;
   2944c:	9602      	str	r6, [sp, #8]
	params.len = len;
   2944e:	f8ad 500c 	strh.w	r5, [sp, #12]
	return bt_gatt_notify_cb(conn, &params);
   29452:	4669      	mov	r1, sp
   29454:	4620      	mov	r0, r4
   29456:	f7fd fa8d 	bl	26974 <bt_gatt_notify_cb>
}
   2945a:	b006      	add	sp, #24
   2945c:	bd70      	pop	{r4, r5, r6, pc}
   2945e:	bf00      	nop
   29460:	200006bc 	.word	0x200006bc

00029464 <smp_bt_register>:
{
   29464:	b508      	push	{r3, lr}
	return bt_gatt_service_register(&smp_bt_svc);
   29466:	4802      	ldr	r0, [pc, #8]	; (29470 <smp_bt_register+0xc>)
   29468:	f7fc ff96 	bl	26398 <bt_gatt_service_register>
}
   2946c:	bd08      	pop	{r3, pc}
   2946e:	bf00      	nop
   29470:	200006f8 	.word	0x200006f8

00029474 <pool_id>:
	return &_net_buf_pool_list[id];
}

static int pool_id(struct net_buf_pool *pool)
{
	return pool - _net_buf_pool_list;
   29474:	4b03      	ldr	r3, [pc, #12]	; (29484 <pool_id+0x10>)
   29476:	1ac0      	subs	r0, r0, r3
   29478:	1080      	asrs	r0, r0, #2
}
   2947a:	4b03      	ldr	r3, [pc, #12]	; (29488 <pool_id+0x14>)
   2947c:	fb03 f000 	mul.w	r0, r3, r0
   29480:	4770      	bx	lr
   29482:	bf00      	nop
   29484:	200008dc 	.word	0x200008dc
   29488:	ba2e8ba3 	.word	0xba2e8ba3

0002948c <net_buf_pool_get>:
}
   2948c:	222c      	movs	r2, #44	; 0x2c
   2948e:	4b02      	ldr	r3, [pc, #8]	; (29498 <net_buf_pool_get+0xc>)
   29490:	fb02 3000 	mla	r0, r2, r0, r3
   29494:	4770      	bx	lr
   29496:	bf00      	nop
   29498:	200008dc 	.word	0x200008dc

0002949c <net_buf_id>:

int net_buf_id(struct net_buf *buf)
{
   2949c:	b510      	push	{r4, lr}
   2949e:	4604      	mov	r4, r0
	struct net_buf_pool *pool = net_buf_pool_get(buf->pool_id);
   294a0:	7980      	ldrb	r0, [r0, #6]
   294a2:	f7ff fff3 	bl	2948c <net_buf_pool_get>

	return buf - pool->__bufs;
   294a6:	6a80      	ldr	r0, [r0, #40]	; 0x28
   294a8:	1a24      	subs	r4, r4, r0
   294aa:	10e4      	asrs	r4, r4, #3
}
   294ac:	4801      	ldr	r0, [pc, #4]	; (294b4 <net_buf_id+0x18>)
   294ae:	fb00 f004 	mul.w	r0, r0, r4
   294b2:	bd10      	pop	{r4, pc}
   294b4:	aaaaaaab 	.word	0xaaaaaaab

000294b8 <net_buf_reset>:

	return buf;
}

void net_buf_reset(struct net_buf *buf)
{
   294b8:	b538      	push	{r3, r4, r5, lr}
   294ba:	4604      	mov	r4, r0
	__ASSERT_NO_MSG(buf->flags == 0U);
   294bc:	7943      	ldrb	r3, [r0, #5]
   294be:	b983      	cbnz	r3, 294e2 <net_buf_reset+0x2a>
	__ASSERT_NO_MSG(buf->frags == NULL);
   294c0:	6823      	ldr	r3, [r4, #0]
   294c2:	b14b      	cbz	r3, 294d8 <net_buf_reset+0x20>
   294c4:	4d0c      	ldr	r5, [pc, #48]	; (294f8 <net_buf_reset+0x40>)
   294c6:	2250      	movs	r2, #80	; 0x50
   294c8:	4629      	mov	r1, r5
   294ca:	480c      	ldr	r0, [pc, #48]	; (294fc <net_buf_reset+0x44>)
   294cc:	f009 ff6d 	bl	333aa <printk>
   294d0:	2150      	movs	r1, #80	; 0x50
   294d2:	4628      	mov	r0, r5
   294d4:	f00a fb02 	bl	33adc <assert_post_action>
	buf->len  = 0U;
   294d8:	2300      	movs	r3, #0
   294da:	81a3      	strh	r3, [r4, #12]
	buf->data = buf->__buf;
   294dc:	6923      	ldr	r3, [r4, #16]
   294de:	60a3      	str	r3, [r4, #8]

	net_buf_simple_reset(&buf->b);
}
   294e0:	bd38      	pop	{r3, r4, r5, pc}
	__ASSERT_NO_MSG(buf->flags == 0U);
   294e2:	4d05      	ldr	r5, [pc, #20]	; (294f8 <net_buf_reset+0x40>)
   294e4:	224f      	movs	r2, #79	; 0x4f
   294e6:	4629      	mov	r1, r5
   294e8:	4804      	ldr	r0, [pc, #16]	; (294fc <net_buf_reset+0x44>)
   294ea:	f009 ff5e 	bl	333aa <printk>
   294ee:	214f      	movs	r1, #79	; 0x4f
   294f0:	4628      	mov	r0, r5
   294f2:	f00a faf3 	bl	33adc <assert_post_action>
   294f6:	e7e3      	b.n	294c0 <net_buf_reset+0x8>
   294f8:	0003eaec 	.word	0x0003eaec
   294fc:	0003bdac 	.word	0x0003bdac

00029500 <net_buf_alloc_len>:
					int line)
#else
struct net_buf *net_buf_alloc_len(struct net_buf_pool *pool, size_t size,
				  k_timeout_t timeout)
#endif
{
   29500:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
   29504:	b083      	sub	sp, #12
   29506:	4605      	mov	r5, r0
   29508:	9101      	str	r1, [sp, #4]
   2950a:	4616      	mov	r6, r2
   2950c:	461f      	mov	r7, r3
	uint64_t end = sys_clock_timeout_end_calc(timeout);
   2950e:	4610      	mov	r0, r2
   29510:	4619      	mov	r1, r3
   29512:	f011 ff43 	bl	3b39c <sys_clock_timeout_end_calc>
   29516:	4682      	mov	sl, r0
   29518:	9100      	str	r1, [sp, #0]
	struct net_buf *buf;
	unsigned int key;

	__ASSERT_NO_MSG(pool);
   2951a:	2d00      	cmp	r5, #0
   2951c:	d045      	beq.n	295aa <net_buf_alloc_len+0xaa>
	__asm__ volatile(
   2951e:	f04f 0340 	mov.w	r3, #64	; 0x40
   29522:	f3ef 8b11 	mrs	fp, BASEPRI
   29526:	f383 8812 	msr	BASEPRI_MAX, r3
   2952a:	f3bf 8f6f 	isb	sy
	key = irq_lock();

	/* If there are uninitialized buffers we're guaranteed to succeed
	 * with the allocation one way or another.
	 */
	if (pool->uninit_count) {
   2952e:	8beb      	ldrh	r3, [r5, #30]
   29530:	2b00      	cmp	r3, #0
   29532:	d052      	beq.n	295da <net_buf_alloc_len+0xda>

		/* If this is not the first access to the pool, we can
		 * be opportunistic and try to fetch a previously used
		 * buffer from the LIFO with K_NO_WAIT.
		 */
		if (pool->uninit_count < pool->buf_count) {
   29534:	8baa      	ldrh	r2, [r5, #28]
   29536:	4293      	cmp	r3, r2
   29538:	d342      	bcc.n	295c0 <net_buf_alloc_len+0xc0>
				irq_unlock(key);
				goto success;
			}
		}

		uninit_count = pool->uninit_count--;
   2953a:	8bea      	ldrh	r2, [r5, #30]
   2953c:	1e53      	subs	r3, r2, #1
   2953e:	83eb      	strh	r3, [r5, #30]
	__asm__ volatile(
   29540:	f38b 8811 	msr	BASEPRI, fp
   29544:	f3bf 8f6f 	isb	sy
	buf = &pool->__bufs[pool->buf_count - uninit_count];
   29548:	6aac      	ldr	r4, [r5, #40]	; 0x28
   2954a:	8bab      	ldrh	r3, [r5, #28]
   2954c:	1a9b      	subs	r3, r3, r2
   2954e:	eb03 0343 	add.w	r3, r3, r3, lsl #1
   29552:	eb04 04c3 	add.w	r4, r4, r3, lsl #3
	buf->pool_id = pool_id(pool);
   29556:	4628      	mov	r0, r5
   29558:	f7ff ff8c 	bl	29474 <pool_id>
   2955c:	71a0      	strb	r0, [r4, #6]
	}

success:
	NET_BUF_DBG("allocated buf %p", buf);

	if (size) {
   2955e:	9d01      	ldr	r5, [sp, #4]
   29560:	2d00      	cmp	r5, #0
   29562:	d061      	beq.n	29628 <net_buf_alloc_len+0x128>
#if __ASSERT_ON
		size_t req_size = size;
#endif
		if (!K_TIMEOUT_EQ(timeout, K_NO_WAIT) &&
   29564:	ea56 0307 	orrs.w	r3, r6, r7
   29568:	d005      	beq.n	29576 <net_buf_alloc_len+0x76>
   2956a:	f1b7 3fff 	cmp.w	r7, #4294967295
   2956e:	bf08      	it	eq
   29570:	f1b6 3fff 	cmpeq.w	r6, #4294967295
   29574:	d13e      	bne.n	295f4 <net_buf_alloc_len+0xf4>
			} else {
				timeout = Z_TIMEOUT_TICKS(remaining);
			}
		}

		buf->__buf = data_alloc(buf, &size, timeout);
   29576:	4632      	mov	r2, r6
   29578:	463b      	mov	r3, r7
   2957a:	a901      	add	r1, sp, #4
   2957c:	4620      	mov	r0, r4
   2957e:	f00f fd8a 	bl	39096 <data_alloc>
   29582:	4606      	mov	r6, r0
   29584:	6120      	str	r0, [r4, #16]
		if (!buf->__buf) {
   29586:	2800      	cmp	r0, #0
   29588:	d046      	beq.n	29618 <net_buf_alloc_len+0x118>
			net_buf_destroy(buf);
			return NULL;
		}

#if __ASSERT_ON
		NET_BUF_ASSERT(req_size <= size);
   2958a:	9b01      	ldr	r3, [sp, #4]
   2958c:	429d      	cmp	r5, r3
   2958e:	d94d      	bls.n	2962c <net_buf_alloc_len+0x12c>
   29590:	4d2d      	ldr	r5, [pc, #180]	; (29648 <net_buf_alloc_len+0x148>)
   29592:	f44f 72a7 	mov.w	r2, #334	; 0x14e
   29596:	4629      	mov	r1, r5
   29598:	482c      	ldr	r0, [pc, #176]	; (2964c <net_buf_alloc_len+0x14c>)
   2959a:	f009 ff06 	bl	333aa <printk>
   2959e:	f44f 71a7 	mov.w	r1, #334	; 0x14e
   295a2:	4628      	mov	r0, r5
   295a4:	f00a fa9a 	bl	33adc <assert_post_action>
   295a8:	e040      	b.n	2962c <net_buf_alloc_len+0x12c>
	__ASSERT_NO_MSG(pool);
   295aa:	4c27      	ldr	r4, [pc, #156]	; (29648 <net_buf_alloc_len+0x148>)
   295ac:	22ed      	movs	r2, #237	; 0xed
   295ae:	4621      	mov	r1, r4
   295b0:	4826      	ldr	r0, [pc, #152]	; (2964c <net_buf_alloc_len+0x14c>)
   295b2:	f009 fefa 	bl	333aa <printk>
   295b6:	21ed      	movs	r1, #237	; 0xed
   295b8:	4620      	mov	r0, r4
   295ba:	f00a fa8f 	bl	33adc <assert_post_action>
   295be:	e7ae      	b.n	2951e <net_buf_alloc_len+0x1e>
	return z_impl_k_queue_get(queue, timeout);
   295c0:	2200      	movs	r2, #0
   295c2:	2300      	movs	r3, #0
   295c4:	4628      	mov	r0, r5
   295c6:	f006 fc37 	bl	2fe38 <z_impl_k_queue_get>
			if (buf) {
   295ca:	4604      	mov	r4, r0
   295cc:	2800      	cmp	r0, #0
   295ce:	d0b4      	beq.n	2953a <net_buf_alloc_len+0x3a>
   295d0:	f38b 8811 	msr	BASEPRI, fp
   295d4:	f3bf 8f6f 	isb	sy
				goto success;
   295d8:	e7c1      	b.n	2955e <net_buf_alloc_len+0x5e>
   295da:	f38b 8811 	msr	BASEPRI, fp
   295de:	f3bf 8f6f 	isb	sy
   295e2:	4632      	mov	r2, r6
   295e4:	463b      	mov	r3, r7
   295e6:	4628      	mov	r0, r5
   295e8:	f006 fc26 	bl	2fe38 <z_impl_k_queue_get>
	if (!buf) {
   295ec:	4604      	mov	r4, r0
   295ee:	2800      	cmp	r0, #0
   295f0:	d1b5      	bne.n	2955e <net_buf_alloc_len+0x5e>
   295f2:	e025      	b.n	29640 <net_buf_alloc_len+0x140>
			int64_t remaining = end - sys_clock_tick_get();
   295f4:	f008 ff1a 	bl	3242c <sys_clock_tick_get>
   295f8:	ebba 0800 	subs.w	r8, sl, r0
   295fc:	9b00      	ldr	r3, [sp, #0]
   295fe:	eb63 0901 	sbc.w	r9, r3, r1
			if (remaining <= 0) {
   29602:	f1b8 0f01 	cmp.w	r8, #1
   29606:	f179 0300 	sbcs.w	r3, r9, #0
   2960a:	db02      	blt.n	29612 <net_buf_alloc_len+0x112>
				timeout = Z_TIMEOUT_TICKS(remaining);
   2960c:	4646      	mov	r6, r8
   2960e:	464f      	mov	r7, r9
   29610:	e7b1      	b.n	29576 <net_buf_alloc_len+0x76>
				timeout = K_NO_WAIT;
   29612:	2600      	movs	r6, #0
   29614:	2700      	movs	r7, #0
   29616:	e7ae      	b.n	29576 <net_buf_alloc_len+0x76>
	struct net_buf_pool *pool = net_buf_pool_get(buf->pool_id);
   29618:	79a0      	ldrb	r0, [r4, #6]
   2961a:	f7ff ff37 	bl	2948c <net_buf_pool_get>
	k_lifo_put(&pool->free, buf);
   2961e:	4621      	mov	r1, r4
   29620:	f011 fdf1 	bl	3b206 <k_queue_prepend>
			return NULL;
   29624:	4634      	mov	r4, r6
}
   29626:	e00b      	b.n	29640 <net_buf_alloc_len+0x140>
#endif
	} else {
		buf->__buf = NULL;
   29628:	2300      	movs	r3, #0
   2962a:	6123      	str	r3, [r4, #16]
	}

	buf->ref   = 1U;
   2962c:	2301      	movs	r3, #1
   2962e:	7123      	strb	r3, [r4, #4]
	buf->flags = 0U;
   29630:	2300      	movs	r3, #0
   29632:	7163      	strb	r3, [r4, #5]
	buf->frags = NULL;
   29634:	6023      	str	r3, [r4, #0]
	buf->size  = size;
   29636:	9b01      	ldr	r3, [sp, #4]
   29638:	81e3      	strh	r3, [r4, #14]
	net_buf_reset(buf);
   2963a:	4620      	mov	r0, r4
   2963c:	f7ff ff3c 	bl	294b8 <net_buf_reset>
#if defined(CONFIG_NET_BUF_POOL_USAGE)
	atomic_dec(&pool->avail_count);
	__ASSERT_NO_MSG(atomic_get(&pool->avail_count) >= 0);
#endif
	return buf;
}
   29640:	4620      	mov	r0, r4
   29642:	b003      	add	sp, #12
   29644:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
   29648:	0003eaec 	.word	0x0003eaec
   2964c:	0003bdac 	.word	0x0003bdac

00029650 <net_buf_get>:
struct net_buf *net_buf_get_debug(struct k_fifo *fifo, k_timeout_t timeout,
				  const char *func, int line)
#else
struct net_buf *net_buf_get(struct k_fifo *fifo, k_timeout_t timeout)
#endif
{
   29650:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
	struct net_buf *buf, *frag;

	NET_BUF_DBG("%s():%d: fifo %p", func, line, fifo);

	buf = k_fifo_get(fifo, timeout);
   29652:	4605      	mov	r5, r0
   29654:	f006 fbf0 	bl	2fe38 <z_impl_k_queue_get>
	if (!buf) {
   29658:	4606      	mov	r6, r0
   2965a:	b308      	cbz	r0, 296a0 <net_buf_get+0x50>
	}

	NET_BUF_DBG("%s():%d: buf %p fifo %p", func, line, buf, fifo);

	/* Get any fragments belonging to this buffer */
	for (frag = buf; (frag->flags & NET_BUF_FRAGS); frag = frag->frags) {
   2965c:	4604      	mov	r4, r0
   2965e:	e004      	b.n	2966a <net_buf_get+0x1a>
		frag->frags = k_fifo_get(fifo, K_NO_WAIT);
		__ASSERT_NO_MSG(frag->frags);

		/* The fragments flag is only for FIFO-internal usage */
		frag->flags &= ~NET_BUF_FRAGS;
   29660:	7963      	ldrb	r3, [r4, #5]
   29662:	f023 0301 	bic.w	r3, r3, #1
   29666:	7163      	strb	r3, [r4, #5]
	for (frag = buf; (frag->flags & NET_BUF_FRAGS); frag = frag->frags) {
   29668:	6824      	ldr	r4, [r4, #0]
   2966a:	7963      	ldrb	r3, [r4, #5]
   2966c:	f013 0f01 	tst.w	r3, #1
   29670:	d014      	beq.n	2969c <net_buf_get+0x4c>
   29672:	2200      	movs	r2, #0
   29674:	2300      	movs	r3, #0
   29676:	4628      	mov	r0, r5
   29678:	f006 fbde 	bl	2fe38 <z_impl_k_queue_get>
		frag->frags = k_fifo_get(fifo, K_NO_WAIT);
   2967c:	6020      	str	r0, [r4, #0]
		__ASSERT_NO_MSG(frag->frags);
   2967e:	2800      	cmp	r0, #0
   29680:	d1ee      	bne.n	29660 <net_buf_get+0x10>
   29682:	4f08      	ldr	r7, [pc, #32]	; (296a4 <net_buf_get+0x54>)
   29684:	f44f 72d3 	mov.w	r2, #422	; 0x1a6
   29688:	4639      	mov	r1, r7
   2968a:	4807      	ldr	r0, [pc, #28]	; (296a8 <net_buf_get+0x58>)
   2968c:	f009 fe8d 	bl	333aa <printk>
   29690:	f44f 71d3 	mov.w	r1, #422	; 0x1a6
   29694:	4638      	mov	r0, r7
   29696:	f00a fa21 	bl	33adc <assert_post_action>
   2969a:	e7e1      	b.n	29660 <net_buf_get+0x10>
	}

	/* Mark the end of the fragment list */
	frag->frags = NULL;
   2969c:	2300      	movs	r3, #0
   2969e:	6023      	str	r3, [r4, #0]

	return buf;
}
   296a0:	4630      	mov	r0, r6
   296a2:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
   296a4:	0003eaec 	.word	0x0003eaec
   296a8:	0003bdac 	.word	0x0003bdac

000296ac <net_buf_simple_reserve>:
	buf->size  = size;
	buf->len   = size;
}

void net_buf_simple_reserve(struct net_buf_simple *buf, size_t reserve)
{
   296ac:	b570      	push	{r4, r5, r6, lr}
   296ae:	460d      	mov	r5, r1
	__ASSERT_NO_MSG(buf);
   296b0:	4604      	mov	r4, r0
   296b2:	b128      	cbz	r0, 296c0 <net_buf_simple_reserve+0x14>
	__ASSERT_NO_MSG(buf->len == 0U);
   296b4:	88a3      	ldrh	r3, [r4, #4]
   296b6:	b983      	cbnz	r3, 296da <net_buf_simple_reserve+0x2e>
	NET_BUF_DBG("buf %p reserve %zu", buf, reserve);

	buf->data = buf->__buf + reserve;
   296b8:	68a3      	ldr	r3, [r4, #8]
   296ba:	442b      	add	r3, r5
   296bc:	6023      	str	r3, [r4, #0]
}
   296be:	bd70      	pop	{r4, r5, r6, pc}
	__ASSERT_NO_MSG(buf);
   296c0:	4e0c      	ldr	r6, [pc, #48]	; (296f4 <net_buf_simple_reserve+0x48>)
   296c2:	f240 12bd 	movw	r2, #445	; 0x1bd
   296c6:	4631      	mov	r1, r6
   296c8:	480b      	ldr	r0, [pc, #44]	; (296f8 <net_buf_simple_reserve+0x4c>)
   296ca:	f009 fe6e 	bl	333aa <printk>
   296ce:	f240 11bd 	movw	r1, #445	; 0x1bd
   296d2:	4630      	mov	r0, r6
   296d4:	f00a fa02 	bl	33adc <assert_post_action>
   296d8:	e7ec      	b.n	296b4 <net_buf_simple_reserve+0x8>
	__ASSERT_NO_MSG(buf->len == 0U);
   296da:	4e06      	ldr	r6, [pc, #24]	; (296f4 <net_buf_simple_reserve+0x48>)
   296dc:	f44f 72df 	mov.w	r2, #446	; 0x1be
   296e0:	4631      	mov	r1, r6
   296e2:	4805      	ldr	r0, [pc, #20]	; (296f8 <net_buf_simple_reserve+0x4c>)
   296e4:	f009 fe61 	bl	333aa <printk>
   296e8:	f44f 71df 	mov.w	r1, #446	; 0x1be
   296ec:	4630      	mov	r0, r6
   296ee:	f00a f9f5 	bl	33adc <assert_post_action>
   296f2:	e7e1      	b.n	296b8 <net_buf_simple_reserve+0xc>
   296f4:	0003eaec 	.word	0x0003eaec
   296f8:	0003bdac 	.word	0x0003bdac

000296fc <net_buf_put>:

	return buf;
}

void net_buf_put(struct k_fifo *fifo, struct net_buf *buf)
{
   296fc:	b570      	push	{r4, r5, r6, lr}
   296fe:	460c      	mov	r4, r1
	struct net_buf *tail;

	__ASSERT_NO_MSG(fifo);
   29700:	4605      	mov	r5, r0
   29702:	b148      	cbz	r0, 29718 <net_buf_put+0x1c>
	__ASSERT_NO_MSG(buf);
   29704:	b1ac      	cbz	r4, 29732 <net_buf_put+0x36>
{
   29706:	4622      	mov	r2, r4

	for (tail = buf; tail->frags; tail = tail->frags) {
   29708:	6810      	ldr	r0, [r2, #0]
   2970a:	b1f8      	cbz	r0, 2974c <net_buf_put+0x50>
		tail->flags |= NET_BUF_FRAGS;
   2970c:	7953      	ldrb	r3, [r2, #5]
   2970e:	f043 0301 	orr.w	r3, r3, #1
   29712:	7153      	strb	r3, [r2, #5]
	for (tail = buf; tail->frags; tail = tail->frags) {
   29714:	4602      	mov	r2, r0
   29716:	e7f7      	b.n	29708 <net_buf_put+0xc>
	__ASSERT_NO_MSG(fifo);
   29718:	4e0f      	ldr	r6, [pc, #60]	; (29758 <net_buf_put+0x5c>)
   2971a:	f44f 72fd 	mov.w	r2, #506	; 0x1fa
   2971e:	4631      	mov	r1, r6
   29720:	480e      	ldr	r0, [pc, #56]	; (2975c <net_buf_put+0x60>)
   29722:	f009 fe42 	bl	333aa <printk>
   29726:	f44f 71fd 	mov.w	r1, #506	; 0x1fa
   2972a:	4630      	mov	r0, r6
   2972c:	f00a f9d6 	bl	33adc <assert_post_action>
   29730:	e7e8      	b.n	29704 <net_buf_put+0x8>
	__ASSERT_NO_MSG(buf);
   29732:	4e09      	ldr	r6, [pc, #36]	; (29758 <net_buf_put+0x5c>)
   29734:	f240 12fb 	movw	r2, #507	; 0x1fb
   29738:	4631      	mov	r1, r6
   2973a:	4808      	ldr	r0, [pc, #32]	; (2975c <net_buf_put+0x60>)
   2973c:	f009 fe35 	bl	333aa <printk>
   29740:	f240 11fb 	movw	r1, #507	; 0x1fb
   29744:	4630      	mov	r0, r6
   29746:	f00a f9c9 	bl	33adc <assert_post_action>
   2974a:	e7dc      	b.n	29706 <net_buf_put+0xa>
	}

	k_fifo_put_list(fifo, buf, tail);
   2974c:	4621      	mov	r1, r4
   2974e:	4628      	mov	r0, r5
   29750:	f006 fb1c 	bl	2fd8c <k_queue_append_list>
}
   29754:	bd70      	pop	{r4, r5, r6, pc}
   29756:	bf00      	nop
   29758:	0003eaec 	.word	0x0003eaec
   2975c:	0003bdac 	.word	0x0003bdac

00029760 <net_buf_unref>:
#if defined(CONFIG_NET_BUF_LOG)
void net_buf_unref_debug(struct net_buf *buf, const char *func, int line)
#else
void net_buf_unref(struct net_buf *buf)
#endif
{
   29760:	b538      	push	{r3, r4, r5, lr}
	__ASSERT_NO_MSG(buf);
   29762:	4604      	mov	r4, r0
   29764:	b9e0      	cbnz	r0, 297a0 <net_buf_unref+0x40>
   29766:	4d18      	ldr	r5, [pc, #96]	; (297c8 <net_buf_unref+0x68>)
   29768:	f240 220a 	movw	r2, #522	; 0x20a
   2976c:	4629      	mov	r1, r5
   2976e:	4817      	ldr	r0, [pc, #92]	; (297cc <net_buf_unref+0x6c>)
   29770:	f009 fe1b 	bl	333aa <printk>
   29774:	f240 210a 	movw	r1, #522	; 0x20a
   29778:	4628      	mov	r0, r5
   2977a:	f00a f9af 	bl	33adc <assert_post_action>
   2977e:	e00f      	b.n	297a0 <net_buf_unref+0x40>
		if (--buf->ref > 0) {
			return;
		}

		if (buf->__buf) {
			data_unref(buf, buf->__buf);
   29780:	4620      	mov	r0, r4
   29782:	f00f fc9c 	bl	390be <data_unref>
			buf->__buf = NULL;
   29786:	2300      	movs	r3, #0
   29788:	6123      	str	r3, [r4, #16]
		}

		buf->data = NULL;
   2978a:	2300      	movs	r3, #0
   2978c:	60a3      	str	r3, [r4, #8]
		buf->frags = NULL;
   2978e:	6023      	str	r3, [r4, #0]

		pool = net_buf_pool_get(buf->pool_id);
   29790:	79a0      	ldrb	r0, [r4, #6]
   29792:	f7ff fe7b 	bl	2948c <net_buf_pool_get>
#if defined(CONFIG_NET_BUF_POOL_USAGE)
		atomic_inc(&pool->avail_count);
		__ASSERT_NO_MSG(atomic_get(&pool->avail_count) <= pool->buf_count);
#endif

		if (pool->destroy) {
   29796:	6a03      	ldr	r3, [r0, #32]
   29798:	b16b      	cbz	r3, 297b6 <net_buf_unref+0x56>
			pool->destroy(buf);
   2979a:	4620      	mov	r0, r4
   2979c:	4798      	blx	r3
{
   2979e:	462c      	mov	r4, r5
	while (buf) {
   297a0:	b184      	cbz	r4, 297c4 <net_buf_unref+0x64>
		struct net_buf *frags = buf->frags;
   297a2:	6825      	ldr	r5, [r4, #0]
		if (--buf->ref > 0) {
   297a4:	7923      	ldrb	r3, [r4, #4]
   297a6:	3b01      	subs	r3, #1
   297a8:	b2db      	uxtb	r3, r3
   297aa:	7123      	strb	r3, [r4, #4]
   297ac:	b953      	cbnz	r3, 297c4 <net_buf_unref+0x64>
		if (buf->__buf) {
   297ae:	6921      	ldr	r1, [r4, #16]
   297b0:	2900      	cmp	r1, #0
   297b2:	d1e5      	bne.n	29780 <net_buf_unref+0x20>
   297b4:	e7e9      	b.n	2978a <net_buf_unref+0x2a>
	struct net_buf_pool *pool = net_buf_pool_get(buf->pool_id);
   297b6:	79a0      	ldrb	r0, [r4, #6]
   297b8:	f7ff fe68 	bl	2948c <net_buf_pool_get>
	k_lifo_put(&pool->free, buf);
   297bc:	4621      	mov	r1, r4
   297be:	f011 fd22 	bl	3b206 <k_queue_prepend>
}
   297c2:	e7ec      	b.n	2979e <net_buf_unref+0x3e>
			net_buf_destroy(buf);
		}

		buf = frags;
	}
}
   297c4:	bd38      	pop	{r3, r4, r5, pc}
   297c6:	bf00      	nop
   297c8:	0003eaec 	.word	0x0003eaec
   297cc:	0003bdac 	.word	0x0003bdac

000297d0 <net_buf_ref>:

struct net_buf *net_buf_ref(struct net_buf *buf)
{
   297d0:	b538      	push	{r3, r4, r5, lr}
	__ASSERT_NO_MSG(buf);
   297d2:	4604      	mov	r4, r0
   297d4:	b120      	cbz	r0, 297e0 <net_buf_ref+0x10>

	NET_BUF_DBG("buf %p (old) ref %u pool_id %u",
		    buf, buf->ref, buf->pool_id);
	buf->ref++;
   297d6:	7923      	ldrb	r3, [r4, #4]
   297d8:	3301      	adds	r3, #1
   297da:	7123      	strb	r3, [r4, #4]
	return buf;
}
   297dc:	4620      	mov	r0, r4
   297de:	bd38      	pop	{r3, r4, r5, pc}
	__ASSERT_NO_MSG(buf);
   297e0:	4d06      	ldr	r5, [pc, #24]	; (297fc <net_buf_ref+0x2c>)
   297e2:	f240 2239 	movw	r2, #569	; 0x239
   297e6:	4629      	mov	r1, r5
   297e8:	4805      	ldr	r0, [pc, #20]	; (29800 <net_buf_ref+0x30>)
   297ea:	f009 fdde 	bl	333aa <printk>
   297ee:	f240 2139 	movw	r1, #569	; 0x239
   297f2:	4628      	mov	r0, r5
   297f4:	f00a f972 	bl	33adc <assert_post_action>
   297f8:	e7ed      	b.n	297d6 <net_buf_ref+0x6>
   297fa:	bf00      	nop
   297fc:	0003eaec 	.word	0x0003eaec
   29800:	0003bdac 	.word	0x0003bdac

00029804 <net_buf_frag_last>:

	return clone;
}

struct net_buf *net_buf_frag_last(struct net_buf *buf)
{
   29804:	b538      	push	{r3, r4, r5, lr}
	__ASSERT_NO_MSG(buf);
   29806:	4604      	mov	r4, r0
   29808:	b120      	cbz	r0, 29814 <net_buf_frag_last+0x10>

	while (buf->frags) {
   2980a:	4620      	mov	r0, r4
   2980c:	6824      	ldr	r4, [r4, #0]
   2980e:	2c00      	cmp	r4, #0
   29810:	d1fb      	bne.n	2980a <net_buf_frag_last+0x6>
		buf = buf->frags;
	}

	return buf;
}
   29812:	bd38      	pop	{r3, r4, r5, pc}
	__ASSERT_NO_MSG(buf);
   29814:	4d06      	ldr	r5, [pc, #24]	; (29830 <net_buf_frag_last+0x2c>)
   29816:	f240 2276 	movw	r2, #630	; 0x276
   2981a:	4629      	mov	r1, r5
   2981c:	4805      	ldr	r0, [pc, #20]	; (29834 <net_buf_frag_last+0x30>)
   2981e:	f009 fdc4 	bl	333aa <printk>
   29822:	f240 2176 	movw	r1, #630	; 0x276
   29826:	4628      	mov	r0, r5
   29828:	f00a f958 	bl	33adc <assert_post_action>
   2982c:	e7ed      	b.n	2980a <net_buf_frag_last+0x6>
   2982e:	bf00      	nop
   29830:	0003eaec 	.word	0x0003eaec
   29834:	0003bdac 	.word	0x0003bdac

00029838 <net_buf_frag_insert>:

void net_buf_frag_insert(struct net_buf *parent, struct net_buf *frag)
{
   29838:	b570      	push	{r4, r5, r6, lr}
   2983a:	460c      	mov	r4, r1
	__ASSERT_NO_MSG(parent);
   2983c:	4605      	mov	r5, r0
   2983e:	b148      	cbz	r0, 29854 <net_buf_frag_insert+0x1c>
	__ASSERT_NO_MSG(frag);
   29840:	b1ac      	cbz	r4, 2986e <net_buf_frag_insert+0x36>

	if (parent->frags) {
   29842:	682b      	ldr	r3, [r5, #0]
   29844:	b123      	cbz	r3, 29850 <net_buf_frag_insert+0x18>
		net_buf_frag_last(frag)->frags = parent->frags;
   29846:	4620      	mov	r0, r4
   29848:	f7ff ffdc 	bl	29804 <net_buf_frag_last>
   2984c:	682b      	ldr	r3, [r5, #0]
   2984e:	6003      	str	r3, [r0, #0]
	}
	/* Take ownership of the fragment reference */
	parent->frags = frag;
   29850:	602c      	str	r4, [r5, #0]
}
   29852:	bd70      	pop	{r4, r5, r6, pc}
	__ASSERT_NO_MSG(parent);
   29854:	4e0c      	ldr	r6, [pc, #48]	; (29888 <net_buf_frag_insert+0x50>)
   29856:	f240 2281 	movw	r2, #641	; 0x281
   2985a:	4631      	mov	r1, r6
   2985c:	480b      	ldr	r0, [pc, #44]	; (2988c <net_buf_frag_insert+0x54>)
   2985e:	f009 fda4 	bl	333aa <printk>
   29862:	f240 2181 	movw	r1, #641	; 0x281
   29866:	4630      	mov	r0, r6
   29868:	f00a f938 	bl	33adc <assert_post_action>
   2986c:	e7e8      	b.n	29840 <net_buf_frag_insert+0x8>
	__ASSERT_NO_MSG(frag);
   2986e:	4e06      	ldr	r6, [pc, #24]	; (29888 <net_buf_frag_insert+0x50>)
   29870:	f240 2282 	movw	r2, #642	; 0x282
   29874:	4631      	mov	r1, r6
   29876:	4805      	ldr	r0, [pc, #20]	; (2988c <net_buf_frag_insert+0x54>)
   29878:	f009 fd97 	bl	333aa <printk>
   2987c:	f240 2182 	movw	r1, #642	; 0x282
   29880:	4630      	mov	r0, r6
   29882:	f00a f92b 	bl	33adc <assert_post_action>
   29886:	e7dc      	b.n	29842 <net_buf_frag_insert+0xa>
   29888:	0003eaec 	.word	0x0003eaec
   2988c:	0003bdac 	.word	0x0003bdac

00029890 <net_buf_frag_add>:

struct net_buf *net_buf_frag_add(struct net_buf *head, struct net_buf *frag)
{
   29890:	b570      	push	{r4, r5, r6, lr}
   29892:	4604      	mov	r4, r0
	__ASSERT_NO_MSG(frag);
   29894:	460d      	mov	r5, r1
   29896:	b141      	cbz	r1, 298aa <net_buf_frag_add+0x1a>

	if (!head) {
   29898:	b1a4      	cbz	r4, 298c4 <net_buf_frag_add+0x34>
		return net_buf_ref(frag);
	}

	net_buf_frag_insert(net_buf_frag_last(head), frag);
   2989a:	4620      	mov	r0, r4
   2989c:	f7ff ffb2 	bl	29804 <net_buf_frag_last>
   298a0:	4629      	mov	r1, r5
   298a2:	f7ff ffc9 	bl	29838 <net_buf_frag_insert>

	return head;
   298a6:	4620      	mov	r0, r4
}
   298a8:	bd70      	pop	{r4, r5, r6, pc}
	__ASSERT_NO_MSG(frag);
   298aa:	4e08      	ldr	r6, [pc, #32]	; (298cc <net_buf_frag_add+0x3c>)
   298ac:	f240 228d 	movw	r2, #653	; 0x28d
   298b0:	4631      	mov	r1, r6
   298b2:	4807      	ldr	r0, [pc, #28]	; (298d0 <net_buf_frag_add+0x40>)
   298b4:	f009 fd79 	bl	333aa <printk>
   298b8:	f240 218d 	movw	r1, #653	; 0x28d
   298bc:	4630      	mov	r0, r6
   298be:	f00a f90d 	bl	33adc <assert_post_action>
   298c2:	e7e9      	b.n	29898 <net_buf_frag_add+0x8>
		return net_buf_ref(frag);
   298c4:	4628      	mov	r0, r5
   298c6:	f7ff ff83 	bl	297d0 <net_buf_ref>
   298ca:	e7ed      	b.n	298a8 <net_buf_frag_add+0x18>
   298cc:	0003eaec 	.word	0x0003eaec
   298d0:	0003bdac 	.word	0x0003bdac

000298d4 <net_buf_simple_pull>:

	sys_put_be64(val, net_buf_simple_push(buf, sizeof(val)));
}

void *net_buf_simple_pull(struct net_buf_simple *buf, size_t len)
{
   298d4:	b570      	push	{r4, r5, r6, lr}
   298d6:	4604      	mov	r4, r0
   298d8:	460d      	mov	r5, r1
	NET_BUF_SIMPLE_DBG("buf %p len %zu", buf, len);

	__ASSERT_NO_MSG(buf->len >= len);
   298da:	8883      	ldrh	r3, [r0, #4]
   298dc:	428b      	cmp	r3, r1
   298de:	d306      	bcc.n	298ee <net_buf_simple_pull+0x1a>

	buf->len -= len;
   298e0:	88a3      	ldrh	r3, [r4, #4]
   298e2:	1b5b      	subs	r3, r3, r5
   298e4:	80a3      	strh	r3, [r4, #4]
	return buf->data += len;
   298e6:	6820      	ldr	r0, [r4, #0]
   298e8:	4428      	add	r0, r5
   298ea:	6020      	str	r0, [r4, #0]
}
   298ec:	bd70      	pop	{r4, r5, r6, pc}
	__ASSERT_NO_MSG(buf->len >= len);
   298ee:	4e06      	ldr	r6, [pc, #24]	; (29908 <net_buf_simple_pull+0x34>)
   298f0:	f240 4271 	movw	r2, #1137	; 0x471
   298f4:	4631      	mov	r1, r6
   298f6:	4805      	ldr	r0, [pc, #20]	; (2990c <net_buf_simple_pull+0x38>)
   298f8:	f009 fd57 	bl	333aa <printk>
   298fc:	f240 4171 	movw	r1, #1137	; 0x471
   29900:	4630      	mov	r0, r6
   29902:	f00a f8eb 	bl	33adc <assert_post_action>
   29906:	e7eb      	b.n	298e0 <net_buf_simple_pull+0xc>
   29908:	0003eaec 	.word	0x0003eaec
   2990c:	0003bdac 	.word	0x0003bdac

00029910 <net_buf_simple_pull_mem>:

void *net_buf_simple_pull_mem(struct net_buf_simple *buf, size_t len)
{
   29910:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
   29912:	4604      	mov	r4, r0
   29914:	460d      	mov	r5, r1
	void *data = buf->data;
   29916:	6806      	ldr	r6, [r0, #0]

	NET_BUF_SIMPLE_DBG("buf %p len %zu", buf, len);

	__ASSERT_NO_MSG(buf->len >= len);
   29918:	8883      	ldrh	r3, [r0, #4]
   2991a:	428b      	cmp	r3, r1
   2991c:	d307      	bcc.n	2992e <net_buf_simple_pull_mem+0x1e>

	buf->len -= len;
   2991e:	88a3      	ldrh	r3, [r4, #4]
   29920:	1b5b      	subs	r3, r3, r5
   29922:	80a3      	strh	r3, [r4, #4]
	buf->data += len;
   29924:	6821      	ldr	r1, [r4, #0]
   29926:	4429      	add	r1, r5
   29928:	6021      	str	r1, [r4, #0]

	return data;
}
   2992a:	4630      	mov	r0, r6
   2992c:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
	__ASSERT_NO_MSG(buf->len >= len);
   2992e:	4f06      	ldr	r7, [pc, #24]	; (29948 <net_buf_simple_pull_mem+0x38>)
   29930:	f240 427d 	movw	r2, #1149	; 0x47d
   29934:	4639      	mov	r1, r7
   29936:	4805      	ldr	r0, [pc, #20]	; (2994c <net_buf_simple_pull_mem+0x3c>)
   29938:	f009 fd37 	bl	333aa <printk>
   2993c:	f240 417d 	movw	r1, #1149	; 0x47d
   29940:	4638      	mov	r0, r7
   29942:	f00a f8cb 	bl	33adc <assert_post_action>
   29946:	e7ea      	b.n	2991e <net_buf_simple_pull_mem+0xe>
   29948:	0003eaec 	.word	0x0003eaec
   2994c:	0003bdac 	.word	0x0003bdac

00029950 <net_buf_simple_push>:
{
   29950:	b570      	push	{r4, r5, r6, lr}
   29952:	4605      	mov	r5, r0
   29954:	460c      	mov	r4, r1
	__ASSERT_NO_MSG(net_buf_simple_headroom(buf) >= len);
   29956:	f00f fbe8 	bl	3912a <net_buf_simple_headroom>
   2995a:	42a0      	cmp	r0, r4
   2995c:	d306      	bcc.n	2996c <net_buf_simple_push+0x1c>
	buf->data -= len;
   2995e:	6828      	ldr	r0, [r5, #0]
   29960:	1b00      	subs	r0, r0, r4
   29962:	6028      	str	r0, [r5, #0]
	buf->len += len;
   29964:	88a9      	ldrh	r1, [r5, #4]
   29966:	440c      	add	r4, r1
   29968:	80ac      	strh	r4, [r5, #4]
}
   2996a:	bd70      	pop	{r4, r5, r6, pc}
	__ASSERT_NO_MSG(net_buf_simple_headroom(buf) >= len);
   2996c:	4e06      	ldr	r6, [pc, #24]	; (29988 <net_buf_simple_push+0x38>)
   2996e:	f240 4211 	movw	r2, #1041	; 0x411
   29972:	4631      	mov	r1, r6
   29974:	4805      	ldr	r0, [pc, #20]	; (2998c <net_buf_simple_push+0x3c>)
   29976:	f009 fd18 	bl	333aa <printk>
   2997a:	f240 4111 	movw	r1, #1041	; 0x411
   2997e:	4630      	mov	r0, r6
   29980:	f00a f8ac 	bl	33adc <assert_post_action>
   29984:	e7eb      	b.n	2995e <net_buf_simple_push+0xe>
   29986:	bf00      	nop
   29988:	0003eaec 	.word	0x0003eaec
   2998c:	0003bdac 	.word	0x0003bdac

00029990 <net_buf_simple_add>:
{
   29990:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
   29992:	4604      	mov	r4, r0
   29994:	460d      	mov	r5, r1
	return buf->data + buf->len;
   29996:	6803      	ldr	r3, [r0, #0]
   29998:	8886      	ldrh	r6, [r0, #4]
   2999a:	441e      	add	r6, r3
	__ASSERT_NO_MSG(net_buf_simple_tailroom(buf) >= len);
   2999c:	f00f fbc9 	bl	39132 <net_buf_simple_tailroom>
   299a0:	42a8      	cmp	r0, r5
   299a2:	d304      	bcc.n	299ae <net_buf_simple_add+0x1e>
	buf->len += len;
   299a4:	88a1      	ldrh	r1, [r4, #4]
   299a6:	440d      	add	r5, r1
   299a8:	80a5      	strh	r5, [r4, #4]
}
   299aa:	4630      	mov	r0, r6
   299ac:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
	__ASSERT_NO_MSG(net_buf_simple_tailroom(buf) >= len);
   299ae:	4f06      	ldr	r7, [pc, #24]	; (299c8 <net_buf_simple_add+0x38>)
   299b0:	f240 3222 	movw	r2, #802	; 0x322
   299b4:	4639      	mov	r1, r7
   299b6:	4805      	ldr	r0, [pc, #20]	; (299cc <net_buf_simple_add+0x3c>)
   299b8:	f009 fcf7 	bl	333aa <printk>
   299bc:	f240 3122 	movw	r1, #802	; 0x322
   299c0:	4638      	mov	r0, r7
   299c2:	f00a f88b 	bl	33adc <assert_post_action>
   299c6:	e7ed      	b.n	299a4 <net_buf_simple_add+0x14>
   299c8:	0003eaec 	.word	0x0003eaec
   299cc:	0003bdac 	.word	0x0003bdac

000299d0 <get_hf_flags>:
static uint32_t *get_hf_flags(void)
{
	struct nrf_clock_control_data *data = CLOCK_DEVICE->data;

	return &data->subsys[CLOCK_CONTROL_NRF_TYPE_HFCLK].flags;
}
   299d0:	4800      	ldr	r0, [pc, #0]	; (299d4 <get_hf_flags+0x4>)
   299d2:	4770      	bx	lr
   299d4:	20002494 	.word	0x20002494

000299d8 <get_subsys>:
}

static clock_control_subsys_t get_subsys(struct onoff_manager *mgr)
{
	struct nrf_clock_control_data *data = CLOCK_DEVICE->data;
	size_t offset = (size_t)(mgr - data->mgr);
   299d8:	4b01      	ldr	r3, [pc, #4]	; (299e0 <get_subsys+0x8>)
   299da:	1ac0      	subs	r0, r0, r3

	return (clock_control_subsys_t)offset;
}
   299dc:	1140      	asrs	r0, r0, #5
   299de:	4770      	bx	lr
   299e0:	2000244c 	.word	0x2000244c

000299e4 <onoff_start>:
	notify(mgr, 0);
}

static void onoff_start(struct onoff_manager *mgr,
			onoff_notify_fn notify)
{
   299e4:	b530      	push	{r4, r5, lr}
   299e6:	b083      	sub	sp, #12
   299e8:	4605      	mov	r5, r0
   299ea:	460c      	mov	r4, r1
	int err;

	err = async_start(CLOCK_DEVICE, get_subsys(mgr),
   299ec:	f7ff fff4 	bl	299d8 <get_subsys>
   299f0:	4601      	mov	r1, r0
   299f2:	2340      	movs	r3, #64	; 0x40
   299f4:	9300      	str	r3, [sp, #0]
   299f6:	4623      	mov	r3, r4
   299f8:	4a05      	ldr	r2, [pc, #20]	; (29a10 <onoff_start+0x2c>)
   299fa:	4806      	ldr	r0, [pc, #24]	; (29a14 <onoff_start+0x30>)
   299fc:	f00f fc23 	bl	39246 <async_start>
			  onoff_started_callback, notify, CTX_ONOFF);
	if (err < 0) {
   29a00:	1e01      	subs	r1, r0, #0
   29a02:	db01      	blt.n	29a08 <onoff_start+0x24>
		notify(mgr, err);
	}
}
   29a04:	b003      	add	sp, #12
   29a06:	bd30      	pop	{r4, r5, pc}
		notify(mgr, err);
   29a08:	4628      	mov	r0, r5
   29a0a:	47a0      	blx	r4
}
   29a0c:	e7fa      	b.n	29a04 <onoff_start+0x20>
   29a0e:	bf00      	nop
   29a10:	0003928f 	.word	0x0003928f
   29a14:	0003b544 	.word	0x0003b544

00029a18 <generic_hfclk_stop>:
{
   29a18:	b508      	push	{r3, lr}
	return __atomic_fetch_and(target, value, __ATOMIC_SEQ_CST);
   29a1a:	4b0a      	ldr	r3, [pc, #40]	; (29a44 <generic_hfclk_stop+0x2c>)
   29a1c:	f3bf 8f5b 	dmb	ish
   29a20:	e853 2f00 	ldrex	r2, [r3]
   29a24:	f022 0102 	bic.w	r1, r2, #2
   29a28:	e843 1000 	strex	r0, r1, [r3]
   29a2c:	2800      	cmp	r0, #0
   29a2e:	d1f7      	bne.n	29a20 <generic_hfclk_stop+0x8>
   29a30:	f3bf 8f5b 	dmb	ish
	if (atomic_and(&hfclk_users, ~HF_USER_GENERIC) & HF_USER_BT) {
   29a34:	f012 0f01 	tst.w	r2, #1
   29a38:	d000      	beq.n	29a3c <generic_hfclk_stop+0x24>
}
   29a3a:	bd08      	pop	{r3, pc}
	hfclk_stop();
   29a3c:	f00f fc39 	bl	392b2 <hfclk_stop>
   29a40:	e7fb      	b.n	29a3a <generic_hfclk_stop+0x22>
   29a42:	bf00      	nop
   29a44:	200024a4 	.word	0x200024a4

00029a48 <generic_hfclk_start>:
{
   29a48:	b510      	push	{r4, lr}
	__asm__ volatile(
   29a4a:	f04f 0340 	mov.w	r3, #64	; 0x40
   29a4e:	f3ef 8411 	mrs	r4, BASEPRI
   29a52:	f383 8812 	msr	BASEPRI_MAX, r3
   29a56:	f3bf 8f6f 	isb	sy
	hfclk_users |= HF_USER_GENERIC;
   29a5a:	4a13      	ldr	r2, [pc, #76]	; (29aa8 <generic_hfclk_start+0x60>)
   29a5c:	6813      	ldr	r3, [r2, #0]
   29a5e:	f043 0302 	orr.w	r3, r3, #2
   29a62:	6013      	str	r3, [r2, #0]
	if (hfclk_users & HF_USER_BT) {
   29a64:	f013 0f01 	tst.w	r3, #1
   29a68:	d108      	bne.n	29a7c <generic_hfclk_start+0x34>
	bool already_started = false;
   29a6a:	2300      	movs	r3, #0
	__asm__ volatile(
   29a6c:	f384 8811 	msr	BASEPRI, r4
   29a70:	f3bf 8f6f 	isb	sy
	if (already_started) {
   29a74:	b99b      	cbnz	r3, 29a9e <generic_hfclk_start+0x56>
	hfclk_start();
   29a76:	f00f fc12 	bl	3929e <hfclk_start>
}
   29a7a:	bd10      	pop	{r4, pc}
            break;
        case NRF_CLOCK_DOMAIN_HFCLK:
            if (p_clk_src != NULL)
            {
                (*(nrf_clock_hfclk_t *)p_clk_src) =
                    (nrf_clock_hfclk_t)((p_reg->HFCLKSTAT & CLOCK_HFCLKSTAT_SRC_Msk)
   29a7c:	f04f 4380 	mov.w	r3, #1073741824	; 0x40000000
   29a80:	f8d3 240c 	ldr.w	r2, [r3, #1036]	; 0x40c
                                        >> CLOCK_HFCLKSTAT_SRC_Pos);
            }
            if ((p_reg->HFCLKSTAT & CLOCK_HFCLKSTAT_STATE_Msk)
   29a84:	f8d3 340c 	ldr.w	r3, [r3, #1036]	; 0x40c
		if (type == NRF_CLOCK_HFCLK_HIGH_ACCURACY) {
   29a88:	f012 0f01 	tst.w	r2, #1
   29a8c:	d101      	bne.n	29a92 <generic_hfclk_start+0x4a>
	bool already_started = false;
   29a8e:	2300      	movs	r3, #0
   29a90:	e7ec      	b.n	29a6c <generic_hfclk_start+0x24>
			set_on_state(get_hf_flags());
   29a92:	f7ff ff9d 	bl	299d0 <get_hf_flags>
   29a96:	f00f fbb1 	bl	391fc <set_on_state>
			already_started = true;
   29a9a:	2301      	movs	r3, #1
   29a9c:	e7e6      	b.n	29a6c <generic_hfclk_start+0x24>
		clkstarted_handle(CLOCK_DEVICE,
   29a9e:	2100      	movs	r1, #0
   29aa0:	4802      	ldr	r0, [pc, #8]	; (29aac <generic_hfclk_start+0x64>)
   29aa2:	f00f fbbe 	bl	39222 <clkstarted_handle>
		return;
   29aa6:	e7e8      	b.n	29a7a <generic_hfclk_start+0x32>
   29aa8:	200024a4 	.word	0x200024a4
   29aac:	0003b544 	.word	0x0003b544

00029ab0 <get_status>:
{
   29ab0:	b570      	push	{r4, r5, r6, lr}
   29ab2:	4605      	mov	r5, r0
	enum clock_control_nrf_type type = (enum clock_control_nrf_type)subsys;
   29ab4:	b2cc      	uxtb	r4, r1
	__ASSERT_NO_MSG(type < CLOCK_CONTROL_NRF_TYPE_COUNT);
   29ab6:	2c01      	cmp	r4, #1
   29ab8:	d807      	bhi.n	29aca <get_status+0x1a>
	return GET_STATUS(get_sub_data(dev, type)->flags);
   29aba:	4621      	mov	r1, r4
   29abc:	4628      	mov	r0, r5
   29abe:	f00f fb53 	bl	39168 <get_sub_data>
   29ac2:	6880      	ldr	r0, [r0, #8]
}
   29ac4:	f000 0007 	and.w	r0, r0, #7
   29ac8:	bd70      	pop	{r4, r5, r6, pc}
	__ASSERT_NO_MSG(type < CLOCK_CONTROL_NRF_TYPE_COUNT);
   29aca:	4e05      	ldr	r6, [pc, #20]	; (29ae0 <get_status+0x30>)
   29acc:	227e      	movs	r2, #126	; 0x7e
   29ace:	4631      	mov	r1, r6
   29ad0:	4804      	ldr	r0, [pc, #16]	; (29ae4 <get_status+0x34>)
   29ad2:	f009 fc6a 	bl	333aa <printk>
   29ad6:	217e      	movs	r1, #126	; 0x7e
   29ad8:	4630      	mov	r0, r6
   29ada:	f009 ffff 	bl	33adc <assert_post_action>
   29ade:	e7ec      	b.n	29aba <get_status+0xa>
   29ae0:	0003eb24 	.word	0x0003eb24
   29ae4:	0003bdac 	.word	0x0003bdac

00029ae8 <stop>:
{
   29ae8:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   29aec:	4607      	mov	r7, r0
   29aee:	4616      	mov	r6, r2
	enum clock_control_nrf_type type = (enum clock_control_nrf_type)subsys;
   29af0:	b2cc      	uxtb	r4, r1
	struct nrf_clock_control_sub_data *subdata = get_sub_data(dev, type);
   29af2:	4621      	mov	r1, r4
   29af4:	f00f fb38 	bl	39168 <get_sub_data>
   29af8:	4605      	mov	r5, r0
	__ASSERT_NO_MSG(type < CLOCK_CONTROL_NRF_TYPE_COUNT);
   29afa:	2c01      	cmp	r4, #1
   29afc:	d80f      	bhi.n	29b1e <stop+0x36>
	err = set_off_state(&subdata->flags, ctx);
   29afe:	4631      	mov	r1, r6
   29b00:	f105 0008 	add.w	r0, r5, #8
   29b04:	f00f fb41 	bl	3918a <set_off_state>
	if (err < 0) {
   29b08:	2800      	cmp	r0, #0
   29b0a:	db06      	blt.n	29b1a <stop+0x32>
	get_sub_config(dev, type)->stop();
   29b0c:	4621      	mov	r1, r4
   29b0e:	4638      	mov	r0, r7
   29b10:	f00f fb31 	bl	39176 <get_sub_config>
   29b14:	6843      	ldr	r3, [r0, #4]
   29b16:	4798      	blx	r3
	return 0;
   29b18:	2000      	movs	r0, #0
}
   29b1a:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
	__ASSERT_NO_MSG(type < CLOCK_CONTROL_NRF_TYPE_COUNT);
   29b1e:	f8df 8020 	ldr.w	r8, [pc, #32]	; 29b40 <stop+0x58>
   29b22:	f240 1253 	movw	r2, #339	; 0x153
   29b26:	4641      	mov	r1, r8
   29b28:	4804      	ldr	r0, [pc, #16]	; (29b3c <stop+0x54>)
   29b2a:	f009 fc3e 	bl	333aa <printk>
   29b2e:	f240 1153 	movw	r1, #339	; 0x153
   29b32:	4640      	mov	r0, r8
   29b34:	f009 ffd2 	bl	33adc <assert_post_action>
   29b38:	e7e1      	b.n	29afe <stop+0x16>
   29b3a:	bf00      	nop
   29b3c:	0003bdac 	.word	0x0003bdac
   29b40:	0003eb24 	.word	0x0003eb24

00029b44 <onoff_stop>:
{
   29b44:	b538      	push	{r3, r4, r5, lr}
   29b46:	4605      	mov	r5, r0
   29b48:	460c      	mov	r4, r1
	res = stop(CLOCK_DEVICE, get_subsys(mgr), CTX_ONOFF);
   29b4a:	f7ff ff45 	bl	299d8 <get_subsys>
   29b4e:	4601      	mov	r1, r0
   29b50:	2240      	movs	r2, #64	; 0x40
   29b52:	4803      	ldr	r0, [pc, #12]	; (29b60 <onoff_stop+0x1c>)
   29b54:	f7ff ffc8 	bl	29ae8 <stop>
   29b58:	4601      	mov	r1, r0
	notify(mgr, res);
   29b5a:	4628      	mov	r0, r5
   29b5c:	47a0      	blx	r4
}
   29b5e:	bd38      	pop	{r3, r4, r5, pc}
   29b60:	0003b544 	.word	0x0003b544

00029b64 <clock_event_handler>:
		__ASSERT_NO_MSG(false);
	}
}

static void clock_event_handler(nrfx_clock_evt_type_t event)
{
   29b64:	b510      	push	{r4, lr}
	const struct device *dev = CLOCK_DEVICE;

	switch (event) {
   29b66:	2801      	cmp	r0, #1
   29b68:	d01c      	beq.n	29ba4 <clock_event_handler+0x40>
   29b6a:	2803      	cmp	r0, #3
   29b6c:	d01f      	beq.n	29bae <clock_event_handler+0x4a>
   29b6e:	b160      	cbz	r0, 29b8a <clock_event_handler+0x26>
			/* Should not happen when calibration is disabled. */
			__ASSERT_NO_MSG(false);
		}
		break;
	default:
		__ASSERT_NO_MSG(0);
   29b70:	4c15      	ldr	r4, [pc, #84]	; (29bc8 <clock_event_handler+0x64>)
   29b72:	f240 226a 	movw	r2, #618	; 0x26a
   29b76:	4621      	mov	r1, r4
   29b78:	4814      	ldr	r0, [pc, #80]	; (29bcc <clock_event_handler+0x68>)
   29b7a:	f009 fc16 	bl	333aa <printk>
   29b7e:	f240 216a 	movw	r1, #618	; 0x26a
   29b82:	4620      	mov	r0, r4
   29b84:	f009 ffaa 	bl	33adc <assert_post_action>
		break;
	}
}
   29b88:	e010      	b.n	29bac <clock_event_handler+0x48>
				get_sub_data(dev, CLOCK_CONTROL_NRF_TYPE_HFCLK);
   29b8a:	2100      	movs	r1, #0
   29b8c:	4810      	ldr	r0, [pc, #64]	; (29bd0 <clock_event_handler+0x6c>)
   29b8e:	f00f faeb 	bl	39168 <get_sub_data>
		if (GET_STATUS(data->flags) == CLOCK_CONTROL_STATUS_STARTING) {
   29b92:	6883      	ldr	r3, [r0, #8]
   29b94:	f013 0f07 	tst.w	r3, #7
   29b98:	d108      	bne.n	29bac <clock_event_handler+0x48>
			clkstarted_handle(dev, CLOCK_CONTROL_NRF_TYPE_HFCLK);
   29b9a:	2100      	movs	r1, #0
   29b9c:	480c      	ldr	r0, [pc, #48]	; (29bd0 <clock_event_handler+0x6c>)
   29b9e:	f00f fb40 	bl	39222 <clkstarted_handle>
   29ba2:	e003      	b.n	29bac <clock_event_handler+0x48>
		clkstarted_handle(dev, CLOCK_CONTROL_NRF_TYPE_LFCLK);
   29ba4:	2101      	movs	r1, #1
   29ba6:	480a      	ldr	r0, [pc, #40]	; (29bd0 <clock_event_handler+0x6c>)
   29ba8:	f00f fb3b 	bl	39222 <clkstarted_handle>
}
   29bac:	bd10      	pop	{r4, pc}
			__ASSERT_NO_MSG(false);
   29bae:	4c06      	ldr	r4, [pc, #24]	; (29bc8 <clock_event_handler+0x64>)
   29bb0:	f240 2266 	movw	r2, #614	; 0x266
   29bb4:	4621      	mov	r1, r4
   29bb6:	4805      	ldr	r0, [pc, #20]	; (29bcc <clock_event_handler+0x68>)
   29bb8:	f009 fbf7 	bl	333aa <printk>
   29bbc:	f240 2166 	movw	r1, #614	; 0x266
   29bc0:	4620      	mov	r0, r4
   29bc2:	f009 ff8b 	bl	33adc <assert_post_action>
		break;
   29bc6:	e7f1      	b.n	29bac <clock_event_handler+0x48>
   29bc8:	0003eb24 	.word	0x0003eb24
   29bcc:	0003bdac 	.word	0x0003bdac
   29bd0:	0003b544 	.word	0x0003b544

00029bd4 <api_blocking_start>:
{
   29bd4:	b500      	push	{lr}
   29bd6:	b087      	sub	sp, #28
	struct k_sem sem = Z_SEM_INITIALIZER(sem, 0, 1);
   29bd8:	f8cd d000 	str.w	sp, [sp]
   29bdc:	f8cd d004 	str.w	sp, [sp, #4]
   29be0:	2300      	movs	r3, #0
   29be2:	9302      	str	r3, [sp, #8]
   29be4:	2301      	movs	r3, #1
   29be6:	9303      	str	r3, [sp, #12]
   29be8:	ab04      	add	r3, sp, #16
   29bea:	9304      	str	r3, [sp, #16]
   29bec:	9305      	str	r3, [sp, #20]
	err = api_start(dev, subsys, blocking_start_callback, &sem);
   29bee:	466b      	mov	r3, sp
   29bf0:	4a06      	ldr	r2, [pc, #24]	; (29c0c <api_blocking_start+0x38>)
   29bf2:	f00f fb44 	bl	3927e <api_start>
	if (err < 0) {
   29bf6:	2800      	cmp	r0, #0
   29bf8:	db05      	blt.n	29c06 <api_blocking_start+0x32>
	return z_impl_k_sem_take(sem, timeout);
   29bfa:	f44f 4280 	mov.w	r2, #16384	; 0x4000
   29bfe:	2300      	movs	r3, #0
   29c00:	4668      	mov	r0, sp
   29c02:	f006 f9cf 	bl	2ffa4 <z_impl_k_sem_take>
}
   29c06:	b007      	add	sp, #28
   29c08:	f85d fb04 	ldr.w	pc, [sp], #4
   29c0c:	000392d1 	.word	0x000392d1

00029c10 <clk_init>:
#endif /* NRF_CLOCK_HAS_HFCLKAUDIO */
#endif
}

static int clk_init(const struct device *dev)
{
   29c10:	b570      	push	{r4, r5, r6, lr}
   29c12:	4606      	mov	r6, r0
	static const struct onoff_transitions transitions = {
		.start = onoff_start,
		.stop = onoff_stop
	};

	IRQ_CONNECT(DT_INST_IRQN(0), DT_INST_IRQ(0, priority),
   29c14:	2200      	movs	r2, #0
   29c16:	2101      	movs	r1, #1
   29c18:	4610      	mov	r0, r2
   29c1a:	f7f5 fbe5 	bl	1f3e8 <z_arm_irq_priority_set>
		    nrfx_isr, nrfx_power_clock_irq_handler, 0);
	irq_enable(DT_INST_IRQN(0));
   29c1e:	2000      	movs	r0, #0
   29c20:	f7f5 fbb0 	bl	1f384 <arch_irq_enable>

	nrfx_err = nrfx_clock_init(clock_event_handler);
   29c24:	4811      	ldr	r0, [pc, #68]	; (29c6c <clk_init+0x5c>)
   29c26:	f002 fdc1 	bl	2c7ac <nrfx_clock_init>
	if (nrfx_err != NRFX_SUCCESS) {
   29c2a:	4b11      	ldr	r3, [pc, #68]	; (29c70 <clk_init+0x60>)
   29c2c:	4298      	cmp	r0, r3
   29c2e:	d11a      	bne.n	29c66 <clk_init+0x56>
		struct nrf_clock_control_data *data = dev->data;

		z_nrf_clock_calibration_init(data->mgr);
	}

	nrfx_clock_enable();
   29c30:	f010 f9fd 	bl	3a02e <nrfx_clock_enable>

	for (enum clock_control_nrf_type i = 0;
   29c34:	2400      	movs	r4, #0
   29c36:	e003      	b.n	29c40 <clk_init+0x30>
					 &transitions);
		if (err < 0) {
			return err;
		}

		subdata->flags = CLOCK_CONTROL_STATUS_OFF;
   29c38:	2301      	movs	r3, #1
   29c3a:	60ab      	str	r3, [r5, #8]
		i < CLOCK_CONTROL_NRF_TYPE_COUNT; i++) {
   29c3c:	441c      	add	r4, r3
   29c3e:	b2e4      	uxtb	r4, r4
	for (enum clock_control_nrf_type i = 0;
   29c40:	2c01      	cmp	r4, #1
   29c42:	d80e      	bhi.n	29c62 <clk_init+0x52>
						get_sub_data(dev, i);
   29c44:	4621      	mov	r1, r4
   29c46:	4630      	mov	r0, r6
   29c48:	f00f fa8e 	bl	39168 <get_sub_data>
   29c4c:	4605      	mov	r5, r0
		err = onoff_manager_init(get_onoff_manager(dev, i),
   29c4e:	4621      	mov	r1, r4
   29c50:	4630      	mov	r0, r6
   29c52:	f00f fa96 	bl	39182 <get_onoff_manager>
   29c56:	4907      	ldr	r1, [pc, #28]	; (29c74 <clk_init+0x64>)
   29c58:	f009 fc43 	bl	334e2 <onoff_manager_init>
		if (err < 0) {
   29c5c:	2800      	cmp	r0, #0
   29c5e:	daeb      	bge.n	29c38 <clk_init+0x28>
   29c60:	e000      	b.n	29c64 <clk_init+0x54>
	}

	return 0;
   29c62:	2000      	movs	r0, #0
}
   29c64:	bd70      	pop	{r4, r5, r6, pc}
		return -EIO;
   29c66:	f06f 0004 	mvn.w	r0, #4
   29c6a:	e7fb      	b.n	29c64 <clk_init+0x54>
   29c6c:	00029b65 	.word	0x00029b65
   29c70:	0bad0000 	.word	0x0bad0000
   29c74:	0003ebb8 	.word	0x0003ebb8

00029c78 <lfclk_spinwait>:
{
   29c78:	b570      	push	{r4, r5, r6, lr}
   29c7a:	4605      	mov	r5, r0
	if ((mode == CLOCK_CONTROL_NRF_LF_START_AVAILABLE) &&
   29c7c:	2801      	cmp	r0, #1
   29c7e:	d107      	bne.n	29c90 <lfclk_spinwait+0x18>
    return clk_src;
}

NRF_STATIC_INLINE nrf_clock_lfclk_t nrf_clock_lf_srccopy_get(NRF_CLOCK_Type const * p_reg)
{
    return (nrf_clock_lfclk_t)((p_reg->LFCLKSRCCOPY & CLOCK_LFCLKSRCCOPY_SRC_Msk)
   29c80:	f04f 4380 	mov.w	r3, #1073741824	; 0x40000000
   29c84:	f8d3 341c 	ldr.w	r3, [r3, #1052]	; 0x41c
   29c88:	f003 0303 	and.w	r3, r3, #3
	    (target_type == NRF_CLOCK_LFCLK_Xtal) &&
   29c8c:	2b01      	cmp	r3, #1
   29c8e:	d058      	beq.n	29d42 <lfclk_spinwait+0xca>
	bool isr_mode = k_is_in_isr() || k_is_pre_kernel();
   29c90:	f011 fa4f 	bl	3b132 <k_is_in_isr>
   29c94:	b928      	cbnz	r0, 29ca2 <lfclk_spinwait+0x2a>
	return !z_sys_post_kernel;
   29c96:	4b2e      	ldr	r3, [pc, #184]	; (29d50 <lfclk_spinwait+0xd8>)
   29c98:	781b      	ldrb	r3, [r3, #0]
   29c9a:	2b00      	cmp	r3, #0
   29c9c:	d041      	beq.n	29d22 <lfclk_spinwait+0xaa>
   29c9e:	2300      	movs	r3, #0
   29ca0:	e000      	b.n	29ca4 <lfclk_spinwait+0x2c>
   29ca2:	2301      	movs	r3, #1
	int key = isr_mode ? irq_lock() : 0;
   29ca4:	461c      	mov	r4, r3
   29ca6:	2b00      	cmp	r3, #0
   29ca8:	d03d      	beq.n	29d26 <lfclk_spinwait+0xae>
	__asm__ volatile(
   29caa:	f04f 0340 	mov.w	r3, #64	; 0x40
   29cae:	f3ef 8611 	mrs	r6, BASEPRI
   29cb2:	f383 8812 	msr	BASEPRI_MAX, r3
   29cb6:	f3bf 8f6f 	isb	sy
	if (!isr_mode) {
   29cba:	b924      	cbnz	r4, 29cc6 <lfclk_spinwait+0x4e>
    p_reg->INTENCLR = mask;
   29cbc:	f04f 4380 	mov.w	r3, #1073741824	; 0x40000000
   29cc0:	2202      	movs	r2, #2
   29cc2:	f8c3 2308 	str.w	r2, [r3, #776]	; 0x308
                    (nrf_clock_lfclk_t)((p_reg->LFCLKSTAT & CLOCK_LFCLKSTAT_SRC_Msk)
   29cc6:	f04f 4280 	mov.w	r2, #1073741824	; 0x40000000
   29cca:	f8d2 3418 	ldr.w	r3, [r2, #1048]	; 0x418
                                        >> CLOCK_LFCLKSTAT_SRC_Pos);
   29cce:	f003 0303 	and.w	r3, r3, #3
            if ((p_reg->LFCLKSTAT & CLOCK_LFCLKSTAT_STATE_Msk)
   29cd2:	f8d2 2418 	ldr.w	r2, [r2, #1048]	; 0x418
   29cd6:	f412 3f80 	tst.w	r2, #65536	; 0x10000
   29cda:	d12b      	bne.n	29d34 <lfclk_spinwait+0xbc>
    return false;
   29cdc:	2200      	movs	r2, #0
	while (!(nrfx_clock_is_running(d, (void *)&type)
   29cde:	b11a      	cbz	r2, 29ce8 <lfclk_spinwait+0x70>
   29ce0:	2b01      	cmp	r3, #1
   29ce2:	d029      	beq.n	29d38 <lfclk_spinwait+0xc0>
		     || (mode == CLOCK_CONTROL_NRF_LF_START_AVAILABLE)))) {
   29ce4:	2d01      	cmp	r5, #1
   29ce6:	d027      	beq.n	29d38 <lfclk_spinwait+0xc0>
			if (isr_mode || !IS_ENABLED(CONFIG_MULTITHREADING)) {
   29ce8:	b1fc      	cbz	r4, 29d2a <lfclk_spinwait+0xb2>
 *
 * @return N/A
 */
static inline void k_cpu_atomic_idle(unsigned int key)
{
	arch_cpu_atomic_idle(key);
   29cea:	4630      	mov	r0, r6
   29cec:	f7f5 fb18 	bl	1f320 <arch_cpu_atomic_idle>
    return (nrf_clock_lfclk_t)(p_reg->LFCLKSRC);
   29cf0:	f04f 4380 	mov.w	r3, #1073741824	; 0x40000000
   29cf4:	f8d3 3518 	ldr.w	r3, [r3, #1304]	; 0x518
		if ((target_type ==  NRF_CLOCK_LFCLK_Xtal)
   29cf8:	2b00      	cmp	r3, #0
   29cfa:	d1e4      	bne.n	29cc6 <lfclk_spinwait+0x4e>
    return (bool)*((volatile uint32_t *)((uint8_t *)p_reg + event));
   29cfc:	4b15      	ldr	r3, [pc, #84]	; (29d54 <lfclk_spinwait+0xdc>)
   29cfe:	681b      	ldr	r3, [r3, #0]
		    && nrf_clock_event_check(NRF_CLOCK,
   29d00:	2b00      	cmp	r3, #0
   29d02:	d0e0      	beq.n	29cc6 <lfclk_spinwait+0x4e>
    *((volatile uint32_t *)((uint8_t *)p_reg + (uint32_t)event)) = 0x0UL;
   29d04:	4b13      	ldr	r3, [pc, #76]	; (29d54 <lfclk_spinwait+0xdc>)
   29d06:	2200      	movs	r2, #0
   29d08:	601a      	str	r2, [r3, #0]
#ifndef NRF_DECLARE_ONLY

NRF_STATIC_INLINE void nrf_event_readback(void * p_event_reg)
{
#if NRFX_CHECK(NRFX_EVENT_READBACK_ENABLED) && !defined(NRF51)
    (void)*((volatile uint32_t *)(p_event_reg));
   29d0a:	681b      	ldr	r3, [r3, #0]
    p_reg->LFCLKSRC = (uint32_t)(source);
   29d0c:	2301      	movs	r3, #1
   29d0e:	f04f 4280 	mov.w	r2, #1073741824	; 0x40000000
   29d12:	f8c2 3518 	str.w	r3, [r2, #1304]	; 0x518
    NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL));
   29d16:	4a10      	ldr	r2, [pc, #64]	; (29d58 <lfclk_spinwait+0xe0>)
   29d18:	f8c2 3180 	str.w	r3, [r2, #384]	; 0x180
    *((volatile uint32_t *)((uint8_t *)p_reg + (uint32_t)task)) = 0x1UL;
   29d1c:	4a0f      	ldr	r2, [pc, #60]	; (29d5c <lfclk_spinwait+0xe4>)
   29d1e:	6013      	str	r3, [r2, #0]
}
   29d20:	e7d1      	b.n	29cc6 <lfclk_spinwait+0x4e>
	bool isr_mode = k_is_in_isr() || k_is_pre_kernel();
   29d22:	2301      	movs	r3, #1
   29d24:	e7be      	b.n	29ca4 <lfclk_spinwait+0x2c>
	int key = isr_mode ? irq_lock() : 0;
   29d26:	2600      	movs	r6, #0
   29d28:	e7c7      	b.n	29cba <lfclk_spinwait+0x42>
	return z_impl_k_sleep(timeout);
   29d2a:	2021      	movs	r0, #33	; 0x21
   29d2c:	2100      	movs	r1, #0
   29d2e:	f007 ff63 	bl	31bf8 <z_impl_k_sleep>
	return k_sleep(Z_TIMEOUT_MS(ms));
   29d32:	e7dd      	b.n	29cf0 <lfclk_spinwait+0x78>
                return true;
   29d34:	2201      	movs	r2, #1
   29d36:	e7d2      	b.n	29cde <lfclk_spinwait+0x66>
	if (isr_mode) {
   29d38:	b124      	cbz	r4, 29d44 <lfclk_spinwait+0xcc>
	__asm__ volatile(
   29d3a:	f386 8811 	msr	BASEPRI, r6
   29d3e:	f3bf 8f6f 	isb	sy
}
   29d42:	bd70      	pop	{r4, r5, r6, pc}
    p_reg->INTENSET = mask;
   29d44:	f04f 4380 	mov.w	r3, #1073741824	; 0x40000000
   29d48:	2202      	movs	r2, #2
   29d4a:	f8c3 2304 	str.w	r2, [r3, #772]	; 0x304
}
   29d4e:	e7f8      	b.n	29d42 <lfclk_spinwait+0xca>
   29d50:	200034f0 	.word	0x200034f0
   29d54:	40000104 	.word	0x40000104
   29d58:	e000e100 	.word	0xe000e100
   29d5c:	40000008 	.word	0x40000008

00029d60 <z_nrf_clock_control_lf_on>:
{
   29d60:	b538      	push	{r3, r4, r5, lr}
   29d62:	4604      	mov	r4, r0
	return __atomic_exchange_n(target, value, __ATOMIC_SEQ_CST);
   29d64:	4b1e      	ldr	r3, [pc, #120]	; (29de0 <z_nrf_clock_control_lf_on+0x80>)
   29d66:	2101      	movs	r1, #1
   29d68:	f3bf 8f5b 	dmb	ish
   29d6c:	e853 2f00 	ldrex	r2, [r3]
   29d70:	e843 1000 	strex	r0, r1, [r3]
   29d74:	2800      	cmp	r0, #0
   29d76:	d1f9      	bne.n	29d6c <z_nrf_clock_control_lf_on+0xc>
   29d78:	f3bf 8f5b 	dmb	ish
	if (atomic_set(&on, 1) == 0) {
   29d7c:	b142      	cbz	r2, 29d90 <z_nrf_clock_control_lf_on+0x30>
	switch (start_mode) {
   29d7e:	b134      	cbz	r4, 29d8e <z_nrf_clock_control_lf_on+0x2e>
   29d80:	1e63      	subs	r3, r4, #1
   29d82:	b2db      	uxtb	r3, r3
   29d84:	2b01      	cmp	r3, #1
   29d86:	d81d      	bhi.n	29dc4 <z_nrf_clock_control_lf_on+0x64>
		lfclk_spinwait(start_mode);
   29d88:	4620      	mov	r0, r4
   29d8a:	f7ff ff75 	bl	29c78 <lfclk_spinwait>
}
   29d8e:	bd38      	pop	{r3, r4, r5, pc}
				get_onoff_manager(CLOCK_DEVICE,
   29d90:	4814      	ldr	r0, [pc, #80]	; (29de4 <z_nrf_clock_control_lf_on+0x84>)
   29d92:	f00f f9f6 	bl	39182 <get_onoff_manager>
 */
static inline void sys_notify_init_spinwait(struct sys_notify *notify)
{
	__ASSERT_NO_MSG(notify != NULL);

	*notify = (struct sys_notify){
   29d96:	4914      	ldr	r1, [pc, #80]	; (29de8 <z_nrf_clock_control_lf_on+0x88>)
   29d98:	2300      	movs	r3, #0
   29d9a:	604b      	str	r3, [r1, #4]
   29d9c:	60cb      	str	r3, [r1, #12]
   29d9e:	2301      	movs	r3, #1
   29da0:	608b      	str	r3, [r1, #8]
		err = onoff_request(mgr, &cli);
   29da2:	f7f2 fdef 	bl	1c984 <onoff_request>
		__ASSERT_NO_MSG(err >= 0);
   29da6:	2800      	cmp	r0, #0
   29da8:	dae9      	bge.n	29d7e <z_nrf_clock_control_lf_on+0x1e>
   29daa:	4d10      	ldr	r5, [pc, #64]	; (29dec <z_nrf_clock_control_lf_on+0x8c>)
   29dac:	f240 2226 	movw	r2, #550	; 0x226
   29db0:	4629      	mov	r1, r5
   29db2:	480f      	ldr	r0, [pc, #60]	; (29df0 <z_nrf_clock_control_lf_on+0x90>)
   29db4:	f009 faf9 	bl	333aa <printk>
   29db8:	f240 2126 	movw	r1, #550	; 0x226
   29dbc:	4628      	mov	r0, r5
   29dbe:	f009 fe8d 	bl	33adc <assert_post_action>
   29dc2:	e7dc      	b.n	29d7e <z_nrf_clock_control_lf_on+0x1e>
		__ASSERT_NO_MSG(false);
   29dc4:	4c09      	ldr	r4, [pc, #36]	; (29dec <z_nrf_clock_control_lf_on+0x8c>)
   29dc6:	f44f 720e 	mov.w	r2, #568	; 0x238
   29dca:	4621      	mov	r1, r4
   29dcc:	4808      	ldr	r0, [pc, #32]	; (29df0 <z_nrf_clock_control_lf_on+0x90>)
   29dce:	f009 faec 	bl	333aa <printk>
   29dd2:	f44f 710e 	mov.w	r1, #568	; 0x238
   29dd6:	4620      	mov	r0, r4
   29dd8:	f009 fe80 	bl	33adc <assert_post_action>
   29ddc:	e7d7      	b.n	29d8e <z_nrf_clock_control_lf_on+0x2e>
   29dde:	bf00      	nop
   29de0:	200024a8 	.word	0x200024a8
   29de4:	0003b544 	.word	0x0003b544
   29de8:	2000243c 	.word	0x2000243c
   29dec:	0003eb24 	.word	0x0003eb24
   29df0:	0003bdac 	.word	0x0003bdac

00029df4 <console_out>:
 *
 * @return The character passed as input.
 */

static int console_out(int c)
{
   29df4:	b510      	push	{r4, lr}
   29df6:	4604      	mov	r4, r0
		return c;
	}

#endif  /* CONFIG_UART_CONSOLE_DEBUG_SERVER_HOOKS */

	if ('\n' == c) {
   29df8:	280a      	cmp	r0, #10
   29dfa:	d007      	beq.n	29e0c <console_out+0x18>
		uart_poll_out(uart_console_dev, '\r');
	}
	uart_poll_out(uart_console_dev, c);
   29dfc:	4b07      	ldr	r3, [pc, #28]	; (29e1c <console_out+0x28>)
   29dfe:	6818      	ldr	r0, [r3, #0]
   29e00:	b2e1      	uxtb	r1, r4
				      unsigned char out_char);

static inline void z_impl_uart_poll_out(const struct device *dev,
						unsigned char out_char)
{
	const struct uart_driver_api *api =
   29e02:	6883      	ldr	r3, [r0, #8]
		(const struct uart_driver_api *)dev->api;

	api->poll_out(dev, out_char);
   29e04:	685b      	ldr	r3, [r3, #4]
   29e06:	4798      	blx	r3

	return c;
}
   29e08:	4620      	mov	r0, r4
   29e0a:	bd10      	pop	{r4, pc}
		uart_poll_out(uart_console_dev, '\r');
   29e0c:	4b03      	ldr	r3, [pc, #12]	; (29e1c <console_out+0x28>)
   29e0e:	6818      	ldr	r0, [r3, #0]
	const struct uart_driver_api *api =
   29e10:	6883      	ldr	r3, [r0, #8]
	api->poll_out(dev, out_char);
   29e12:	685b      	ldr	r3, [r3, #4]
   29e14:	210d      	movs	r1, #13
   29e16:	4798      	blx	r3
		return;
	}
#endif
	compiler_barrier();
	z_impl_uart_poll_out(dev, out_char);
}
   29e18:	e7f0      	b.n	29dfc <console_out+0x8>
   29e1a:	bf00      	nop
   29e1c:	200024ac 	.word	0x200024ac

00029e20 <uart_console_hook_install>:
 *
 * @return N/A
 */

static void uart_console_hook_install(void)
{
   29e20:	b510      	push	{r4, lr}
	__stdout_hook_install(console_out);
   29e22:	4c04      	ldr	r4, [pc, #16]	; (29e34 <uart_console_hook_install+0x14>)
   29e24:	4620      	mov	r0, r4
   29e26:	f7f6 f85d 	bl	1fee4 <__stdout_hook_install>
	__printk_hook_install(console_out);
   29e2a:	4620      	mov	r0, r4
   29e2c:	f7f2 fb2e 	bl	1c48c <__printk_hook_install>
}
   29e30:	bd10      	pop	{r4, pc}
   29e32:	bf00      	nop
   29e34:	00029df5 	.word	0x00029df5

00029e38 <uart_console_init>:
 * @brief Initialize one UART as the console/debug port
 *
 * @return 0 if successful, otherwise failed.
 */
static int uart_console_init(const struct device *arg)
{
   29e38:	b508      	push	{r3, lr}

	ARG_UNUSED(arg);

	/* Claim console device */
	uart_console_dev = DEVICE_DT_GET(DT_CHOSEN(zephyr_console));
   29e3a:	4806      	ldr	r0, [pc, #24]	; (29e54 <uart_console_init+0x1c>)
   29e3c:	4b06      	ldr	r3, [pc, #24]	; (29e58 <uart_console_init+0x20>)
   29e3e:	6018      	str	r0, [r3, #0]
 *
 * @return a non-positive integer as documented in device_usable_check().
 */
static inline int z_device_usable_check(const struct device *dev)
{
	return z_device_ready(dev) ? 0 : -ENODEV;
   29e40:	f011 f939 	bl	3b0b6 <z_device_ready>
   29e44:	b118      	cbz	r0, 29e4e <uart_console_init+0x16>
	if (!device_is_ready(uart_console_dev)) {
		return -ENODEV;
	}

	uart_console_hook_install();
   29e46:	f7ff ffeb 	bl	29e20 <uart_console_hook_install>

	return 0;
   29e4a:	2000      	movs	r0, #0
}
   29e4c:	bd08      	pop	{r3, pc}
		return -ENODEV;
   29e4e:	f06f 0012 	mvn.w	r0, #18
   29e52:	e7fb      	b.n	29e4c <uart_console_init+0x14>
   29e54:	0003b574 	.word	0x0003b574
   29e58:	200024ac 	.word	0x200024ac

00029e5c <gpio_nrfx_manage_callback>:
}

static int gpio_nrfx_manage_callback(const struct device *port,
				     struct gpio_callback *callback,
				     bool set)
{
   29e5c:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   29e60:	4615      	mov	r5, r2
	return port->data;
   29e62:	6906      	ldr	r6, [r0, #16]
	return gpio_manage_callback(&get_port_data(port)->callbacks,
   29e64:	1d37      	adds	r7, r6, #4
 */
static inline int gpio_manage_callback(sys_slist_t *callbacks,
					struct gpio_callback *callback,
					bool set)
{
	__ASSERT(callback, "No callback!");
   29e66:	460c      	mov	r4, r1
   29e68:	b139      	cbz	r1, 29e7a <gpio_nrfx_manage_callback+0x1e>
	__ASSERT(callback->handler, "No callback handler!");
   29e6a:	6863      	ldr	r3, [r4, #4]
   29e6c:	b18b      	cbz	r3, 29e92 <gpio_nrfx_manage_callback+0x36>
	return list->head;
   29e6e:	6873      	ldr	r3, [r6, #4]

	if (!sys_slist_is_empty(callbacks)) {
   29e70:	2b00      	cmp	r3, #0
   29e72:	d033      	beq.n	29edc <gpio_nrfx_manage_callback+0x80>
		if (!sys_slist_find_and_remove(callbacks, &callback->node)) {
   29e74:	4621      	mov	r1, r4
Z_GENLIST_FIND_AND_REMOVE(slist, snode)
   29e76:	2200      	movs	r2, #0
   29e78:	e022      	b.n	29ec0 <gpio_nrfx_manage_callback+0x64>
	__ASSERT(callback, "No callback!");
   29e7a:	f8df 8088 	ldr.w	r8, [pc, #136]	; 29f04 <gpio_nrfx_manage_callback+0xa8>
   29e7e:	2224      	movs	r2, #36	; 0x24
   29e80:	4641      	mov	r1, r8
   29e82:	481f      	ldr	r0, [pc, #124]	; (29f00 <gpio_nrfx_manage_callback+0xa4>)
   29e84:	f009 fa91 	bl	333aa <printk>
   29e88:	2124      	movs	r1, #36	; 0x24
   29e8a:	4640      	mov	r0, r8
   29e8c:	f009 fe26 	bl	33adc <assert_post_action>
   29e90:	e7eb      	b.n	29e6a <gpio_nrfx_manage_callback+0xe>
	__ASSERT(callback->handler, "No callback handler!");
   29e92:	f8df 8070 	ldr.w	r8, [pc, #112]	; 29f04 <gpio_nrfx_manage_callback+0xa8>
   29e96:	2225      	movs	r2, #37	; 0x25
   29e98:	4641      	mov	r1, r8
   29e9a:	4819      	ldr	r0, [pc, #100]	; (29f00 <gpio_nrfx_manage_callback+0xa4>)
   29e9c:	f009 fa85 	bl	333aa <printk>
   29ea0:	2125      	movs	r1, #37	; 0x25
   29ea2:	4640      	mov	r0, r8
   29ea4:	f009 fe1a 	bl	33adc <assert_post_action>
   29ea8:	e7e1      	b.n	29e6e <gpio_nrfx_manage_callback+0x12>
	return node->next;
   29eaa:	6823      	ldr	r3, [r4, #0]
	list->head = node;
   29eac:	6073      	str	r3, [r6, #4]
	return list->tail;
   29eae:	687a      	ldr	r2, [r7, #4]
Z_GENLIST_REMOVE(slist, snode)
   29eb0:	4294      	cmp	r4, r2
   29eb2:	d10f      	bne.n	29ed4 <gpio_nrfx_manage_callback+0x78>
	list->tail = node;
   29eb4:	607b      	str	r3, [r7, #4]
}
   29eb6:	e00d      	b.n	29ed4 <gpio_nrfx_manage_callback+0x78>
	list->tail = node;
   29eb8:	607a      	str	r2, [r7, #4]
}
   29eba:	e00b      	b.n	29ed4 <gpio_nrfx_manage_callback+0x78>
Z_GENLIST_FIND_AND_REMOVE(slist, snode)
   29ebc:	461a      	mov	r2, r3
   29ebe:	681b      	ldr	r3, [r3, #0]
   29ec0:	b15b      	cbz	r3, 29eda <gpio_nrfx_manage_callback+0x7e>
   29ec2:	4299      	cmp	r1, r3
   29ec4:	d1fa      	bne.n	29ebc <gpio_nrfx_manage_callback+0x60>
Z_GENLIST_REMOVE(slist, snode)
   29ec6:	2a00      	cmp	r2, #0
   29ec8:	d0ef      	beq.n	29eaa <gpio_nrfx_manage_callback+0x4e>
	return node->next;
   29eca:	6823      	ldr	r3, [r4, #0]
	parent->next = child;
   29ecc:	6013      	str	r3, [r2, #0]
	return list->tail;
   29ece:	687b      	ldr	r3, [r7, #4]
Z_GENLIST_REMOVE(slist, snode)
   29ed0:	429c      	cmp	r4, r3
   29ed2:	d0f1      	beq.n	29eb8 <gpio_nrfx_manage_callback+0x5c>
	parent->next = child;
   29ed4:	2300      	movs	r3, #0
   29ed6:	6023      	str	r3, [r4, #0]
Z_GENLIST_FIND_AND_REMOVE(slist, snode)
   29ed8:	e000      	b.n	29edc <gpio_nrfx_manage_callback+0x80>
			if (!set) {
   29eda:	b155      	cbz	r5, 29ef2 <gpio_nrfx_manage_callback+0x96>
				return -EINVAL;
			}
		}
	}

	if (set) {
   29edc:	b165      	cbz	r5, 29ef8 <gpio_nrfx_manage_callback+0x9c>
	return list->head;
   29ede:	6873      	ldr	r3, [r6, #4]
	parent->next = child;
   29ee0:	6023      	str	r3, [r4, #0]
	list->head = node;
   29ee2:	6074      	str	r4, [r6, #4]
	return list->tail;
   29ee4:	687b      	ldr	r3, [r7, #4]
Z_GENLIST_PREPEND(slist, snode)
   29ee6:	b10b      	cbz	r3, 29eec <gpio_nrfx_manage_callback+0x90>
		sys_slist_prepend(callbacks, &callback->node);
	}

	return 0;
   29ee8:	2000      	movs	r0, #0
   29eea:	e006      	b.n	29efa <gpio_nrfx_manage_callback+0x9e>
	list->tail = node;
   29eec:	607c      	str	r4, [r7, #4]
   29eee:	2000      	movs	r0, #0
}
   29ef0:	e003      	b.n	29efa <gpio_nrfx_manage_callback+0x9e>
				return -EINVAL;
   29ef2:	f06f 0015 	mvn.w	r0, #21
   29ef6:	e000      	b.n	29efa <gpio_nrfx_manage_callback+0x9e>
	return 0;
   29ef8:	2000      	movs	r0, #0
				     callback, set);
}
   29efa:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
   29efe:	bf00      	nop
   29f00:	0003bdac 	.word	0x0003bdac
   29f04:	0003ebc4 	.word	0x0003ebc4

00029f08 <gpiote_pin_cleanup>:
{
   29f08:	b510      	push	{r4, lr}
    p_reg->INTENCLR = mask;
}

NRF_STATIC_INLINE uint32_t nrf_gpiote_int_enable_check(NRF_GPIOTE_Type const * p_reg, uint32_t mask)
{
    return p_reg->INTENSET & mask;
   29f0a:	4b14      	ldr	r3, [pc, #80]	; (29f5c <gpiote_pin_cleanup+0x54>)
   29f0c:	f8d3 4304 	ldr.w	r4, [r3, #772]	; 0x304
   29f10:	b2e4      	uxtb	r4, r4
	for (size_t i = 0; i < GPIOTE_CH_NUM; i++) {
   29f12:	2300      	movs	r3, #0
   29f14:	e000      	b.n	29f18 <gpiote_pin_cleanup+0x10>
   29f16:	3301      	adds	r3, #1
   29f18:	2b07      	cmp	r3, #7
   29f1a:	d81d      	bhi.n	29f58 <gpiote_pin_cleanup+0x50>
                        ((polarity << GPIOTE_CONFIG_POLARITY_Pos) & GPIOTE_CONFIG_POLARITY_Msk);
}

NRF_STATIC_INLINE uint32_t nrf_gpiote_event_pin_get(NRF_GPIOTE_Type const * p_reg, uint32_t idx)
{
    return ((p_reg->CONFIG[idx] & GPIOTE_CONFIG_PORT_PIN_Msk) >> GPIOTE_CONFIG_PSEL_Pos);
   29f1c:	f503 72a2 	add.w	r2, r3, #324	; 0x144
   29f20:	490e      	ldr	r1, [pc, #56]	; (29f5c <gpiote_pin_cleanup+0x54>)
   29f22:	f851 2022 	ldr.w	r2, [r1, r2, lsl #2]
   29f26:	f3c2 2205 	ubfx	r2, r2, #8, #6
		if ((nrf_gpiote_event_pin_get(NRF_GPIOTE, i) == abs_pin)
   29f2a:	4290      	cmp	r0, r2
   29f2c:	d1f3      	bne.n	29f16 <gpiote_pin_cleanup+0xe>
		    && (intenset & BIT(i))) {
   29f2e:	fa24 f203 	lsr.w	r2, r4, r3
   29f32:	f012 0f01 	tst.w	r2, #1
   29f36:	d0ee      	beq.n	29f16 <gpiote_pin_cleanup+0xe>
   p_reg->CONFIG[idx] &= ~GPIOTE_CONFIG_MODE_Event;
   29f38:	460a      	mov	r2, r1
   29f3a:	f503 70a2 	add.w	r0, r3, #324	; 0x144
   29f3e:	f851 1020 	ldr.w	r1, [r1, r0, lsl #2]
   29f42:	f021 0101 	bic.w	r1, r1, #1
   29f46:	f842 1020 	str.w	r1, [r2, r0, lsl #2]
			nrf_gpiote_int_disable(NRF_GPIOTE, BIT(i));
   29f4a:	2101      	movs	r1, #1
   29f4c:	4099      	lsls	r1, r3
    p_reg->INTENCLR = mask;
   29f4e:	f8c2 1308 	str.w	r1, [r2, #776]	; 0x308
			nrfx_gpiote_channel_free(i);
   29f52:	b2d8      	uxtb	r0, r3
   29f54:	f002 ffda 	bl	2cf0c <nrfx_gpiote_channel_free>
}
   29f58:	bd10      	pop	{r4, pc}
   29f5a:	bf00      	nop
   29f5c:	40006000 	.word	0x40006000

00029f60 <gpiote_channel_alloc>:
{
   29f60:	b570      	push	{r4, r5, r6, lr}
   29f62:	b082      	sub	sp, #8
   29f64:	4604      	mov	r4, r0
   29f66:	460d      	mov	r5, r1
	if (nrfx_gpiote_channel_alloc(&channel) != NRFX_SUCCESS) {
   29f68:	f10d 0007 	add.w	r0, sp, #7
   29f6c:	f002 ffea 	bl	2cf44 <nrfx_gpiote_channel_alloc>
   29f70:	4b1c      	ldr	r3, [pc, #112]	; (29fe4 <gpiote_channel_alloc+0x84>)
   29f72:	4298      	cmp	r0, r3
   29f74:	d132      	bne.n	29fdc <gpiote_channel_alloc+0x7c>
	nrf_gpiote_event_t evt = offsetof(NRF_GPIOTE_Type, EVENTS_IN[channel]);
   29f76:	f89d 3007 	ldrb.w	r3, [sp, #7]
   29f7a:	f103 0240 	add.w	r2, r3, #64	; 0x40
   29f7e:	0092      	lsls	r2, r2, #2
  p_reg->CONFIG[idx] &= ~(GPIOTE_CONFIG_PORT_PIN_Msk | GPIOTE_CONFIG_POLARITY_Msk);
   29f80:	4e19      	ldr	r6, [pc, #100]	; (29fe8 <gpiote_channel_alloc+0x88>)
   29f82:	f503 73a2 	add.w	r3, r3, #324	; 0x144
   29f86:	f856 1023 	ldr.w	r1, [r6, r3, lsl #2]
   29f8a:	f421 314f 	bic.w	r1, r1, #211968	; 0x33c00
   29f8e:	f421 7140 	bic.w	r1, r1, #768	; 0x300
   29f92:	f846 1023 	str.w	r1, [r6, r3, lsl #2]
  p_reg->CONFIG[idx] |= ((pin << GPIOTE_CONFIG_PSEL_Pos) & GPIOTE_CONFIG_PORT_PIN_Msk) |
   29f96:	f856 1023 	ldr.w	r1, [r6, r3, lsl #2]
   29f9a:	0224      	lsls	r4, r4, #8
   29f9c:	f404 547c 	and.w	r4, r4, #16128	; 0x3f00
                        ((polarity << GPIOTE_CONFIG_POLARITY_Pos) & GPIOTE_CONFIG_POLARITY_Msk);
   29fa0:	042d      	lsls	r5, r5, #16
   29fa2:	f405 3540 	and.w	r5, r5, #196608	; 0x30000
  p_reg->CONFIG[idx] |= ((pin << GPIOTE_CONFIG_PSEL_Pos) & GPIOTE_CONFIG_PORT_PIN_Msk) |
   29fa6:	432c      	orrs	r4, r5
   29fa8:	430c      	orrs	r4, r1
   29faa:	f846 4023 	str.w	r4, [r6, r3, lsl #2]
    return ((uint32_t)p_reg + event);
   29fae:	f102 4380 	add.w	r3, r2, #1073741824	; 0x40000000
   29fb2:	f503 43c0 	add.w	r3, r3, #24576	; 0x6000
    *((volatile uint32_t *)nrf_gpiote_event_address_get(p_reg, event)) = 0;
   29fb6:	2000      	movs	r0, #0
   29fb8:	6018      	str	r0, [r3, #0]
   29fba:	681b      	ldr	r3, [r3, #0]
	nrf_gpiote_event_enable(NRF_GPIOTE, channel);
   29fbc:	f89d 1007 	ldrb.w	r1, [sp, #7]
   p_reg->CONFIG[idx] |= GPIOTE_CONFIG_MODE_Event;
   29fc0:	f501 73a2 	add.w	r3, r1, #324	; 0x144
   29fc4:	f856 2023 	ldr.w	r2, [r6, r3, lsl #2]
   29fc8:	f042 0201 	orr.w	r2, r2, #1
   29fcc:	f846 2023 	str.w	r2, [r6, r3, lsl #2]
	nrf_gpiote_int_enable(NRF_GPIOTE, BIT(channel));
   29fd0:	2301      	movs	r3, #1
   29fd2:	408b      	lsls	r3, r1
    p_reg->INTENSET = mask;
   29fd4:	f8c6 3304 	str.w	r3, [r6, #772]	; 0x304
}
   29fd8:	b002      	add	sp, #8
   29fda:	bd70      	pop	{r4, r5, r6, pc}
		return -ENODEV;
   29fdc:	f06f 0012 	mvn.w	r0, #18
   29fe0:	e7fa      	b.n	29fd8 <gpiote_channel_alloc+0x78>
   29fe2:	bf00      	nop
   29fe4:	0bad0000 	.word	0x0bad0000
   29fe8:	40006000 	.word	0x40006000

00029fec <gpio_nrfx_init>:
}

#define GPIOTE_NODE DT_INST(0, nordic_nrf_gpiote)

static int gpio_nrfx_init(const struct device *port)
{
   29fec:	b508      	push	{r3, lr}
	static bool gpio_initialized;

	if (!gpio_initialized) {
   29fee:	4b0b      	ldr	r3, [pc, #44]	; (2a01c <gpio_nrfx_init+0x30>)
   29ff0:	781b      	ldrb	r3, [r3, #0]
   29ff2:	b10b      	cbz	r3, 29ff8 <gpio_nrfx_init+0xc>
		irq_enable(DT_IRQN(GPIOTE_NODE));
		nrf_gpiote_int_enable(NRF_GPIOTE, NRF_GPIOTE_INT_PORT_MASK);
	}

	return 0;
}
   29ff4:	2000      	movs	r0, #0
   29ff6:	bd08      	pop	{r3, pc}
		gpio_initialized = true;
   29ff8:	4b08      	ldr	r3, [pc, #32]	; (2a01c <gpio_nrfx_init+0x30>)
   29ffa:	2201      	movs	r2, #1
   29ffc:	701a      	strb	r2, [r3, #0]
		IRQ_CONNECT(DT_IRQN(GPIOTE_NODE), DT_IRQ(GPIOTE_NODE, priority),
   29ffe:	2200      	movs	r2, #0
   2a000:	2105      	movs	r1, #5
   2a002:	2006      	movs	r0, #6
   2a004:	f7f5 f9f0 	bl	1f3e8 <z_arm_irq_priority_set>
		irq_enable(DT_IRQN(GPIOTE_NODE));
   2a008:	2006      	movs	r0, #6
   2a00a:	f7f5 f9bb 	bl	1f384 <arch_irq_enable>
   2a00e:	4b04      	ldr	r3, [pc, #16]	; (2a020 <gpio_nrfx_init+0x34>)
   2a010:	f04f 4200 	mov.w	r2, #2147483648	; 0x80000000
   2a014:	f8c3 2304 	str.w	r2, [r3, #772]	; 0x304
}
   2a018:	e7ec      	b.n	29ff4 <gpio_nrfx_init+0x8>
   2a01a:	bf00      	nop
   2a01c:	200034ee 	.word	0x200034ee
   2a020:	40006000 	.word	0x40006000

0002a024 <cfg_level_pins>:
{
   2a024:	e92d 4ff8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
	return port->data;
   2a028:	f8d0 a010 	ldr.w	sl, [r0, #16]
	return port->config;
   2a02c:	f8d0 b004 	ldr.w	fp, [r0, #4]
	uint32_t out = data->pin_int_en;
   2a030:	f8da 600c 	ldr.w	r6, [sl, #12]
	out &= ~data->trig_edge & ~data->double_edge;
   2a034:	f8da 2014 	ldr.w	r2, [sl, #20]
   2a038:	f8da 3018 	ldr.w	r3, [sl, #24]
   2a03c:	4313      	orrs	r3, r2
   2a03e:	ea26 0603 	bic.w	r6, r6, r3
	uint32_t bit = 1U << pin;
   2a042:	2501      	movs	r5, #1
	uint32_t pin = 0U;
   2a044:	2700      	movs	r7, #0
	while (level_pins) {
   2a046:	e027      	b.n	2a098 <cfg_level_pins+0x74>
		return NRF_GPIO_PIN_SENSE_HIGH;
   2a048:	f04f 0902 	mov.w	r9, #2
   2a04c:	e035      	b.n	2a0ba <cfg_level_pins+0x96>

    switch (port)
    {
#ifdef P0_FEATURE_PINS_PRESENT
        case 0:
            mask = P0_FEATURE_PINS_PRESENT;
   2a04e:	f04f 33ff 	mov.w	r3, #4294967295
   2a052:	e038      	b.n	2a0c6 <cfg_level_pins+0xa2>
    switch (port)
   2a054:	2300      	movs	r3, #0
   2a056:	e036      	b.n	2a0c6 <cfg_level_pins+0xa2>
    NRFX_ASSERT(nrf_gpio_pin_present_check(*p_pin));
   2a058:	f8df 80ac 	ldr.w	r8, [pc, #172]	; 2a108 <cfg_level_pins+0xe4>
   2a05c:	f44f 7205 	mov.w	r2, #532	; 0x214
   2a060:	4641      	mov	r1, r8
   2a062:	4827      	ldr	r0, [pc, #156]	; (2a100 <cfg_level_pins+0xdc>)
   2a064:	f009 f9a1 	bl	333aa <printk>
   2a068:	f44f 7105 	mov.w	r1, #532	; 0x214
   2a06c:	4640      	mov	r0, r8
   2a06e:	f009 fd35 	bl	33adc <assert_post_action>
   2a072:	e02e      	b.n	2a0d2 <cfg_level_pins+0xae>
        case 0: return NRF_P0;
   2a074:	f04f 42a0 	mov.w	r2, #1342177280	; 0x50000000
   2a078:	e000      	b.n	2a07c <cfg_level_pins+0x58>
    switch (nrf_gpio_pin_port_number_extract(p_pin))
   2a07a:	4a22      	ldr	r2, [pc, #136]	; (2a104 <cfg_level_pins+0xe0>)
    uint32_t cnf = reg->PIN_CNF[pin_number] & ~GPIO_PIN_CNF_SENSE_Msk;
   2a07c:	f508 78e0 	add.w	r8, r8, #448	; 0x1c0
   2a080:	f852 3028 	ldr.w	r3, [r2, r8, lsl #2]
   2a084:	f423 3340 	bic.w	r3, r3, #196608	; 0x30000
    reg->PIN_CNF[pin_number] = cnf | (sense_config << GPIO_PIN_CNF_SENSE_Pos);
   2a088:	ea43 4309 	orr.w	r3, r3, r9, lsl #16
   2a08c:	f842 3028 	str.w	r3, [r2, r8, lsl #2]
			level_pins &= ~bit;
   2a090:	ea26 0605 	bic.w	r6, r6, r5
		++pin;
   2a094:	3701      	adds	r7, #1
		bit <<= 1;
   2a096:	006d      	lsls	r5, r5, #1
	while (level_pins) {
   2a098:	b386      	cbz	r6, 2a0fc <cfg_level_pins+0xd8>
		if (level_pins & bit) {
   2a09a:	4235      	tst	r5, r6
   2a09c:	d0fa      	beq.n	2a094 <cfg_level_pins+0x70>
			uint32_t abs_pin = NRF_GPIO_PIN_MAP(cfg->port_num, pin);
   2a09e:	f89b 3008 	ldrb.w	r3, [fp, #8]
   2a0a2:	f007 041f 	and.w	r4, r7, #31
   2a0a6:	ea44 1443 	orr.w	r4, r4, r3, lsl #5
	if ((BIT(pin) & data->int_active_level) != 0U) {
   2a0aa:	f8da 3010 	ldr.w	r3, [sl, #16]
   2a0ae:	40fb      	lsrs	r3, r7
   2a0b0:	f013 0f01 	tst.w	r3, #1
   2a0b4:	d1c8      	bne.n	2a048 <cfg_level_pins+0x24>
	return NRF_GPIO_PIN_SENSE_LOW;
   2a0b6:	f04f 0903 	mov.w	r9, #3
    switch (port)
   2a0ba:	0963      	lsrs	r3, r4, #5
   2a0bc:	d0c7      	beq.n	2a04e <cfg_level_pins+0x2a>
   2a0be:	2b01      	cmp	r3, #1
   2a0c0:	d1c8      	bne.n	2a054 <cfg_level_pins+0x30>
#endif // defined(NRF52820_XXAA) && defined(DEVELOP_IN_NRF52833)
            break;
#endif
#ifdef P1_FEATURE_PINS_PRESENT
        case 1:
            mask = P1_FEATURE_PINS_PRESENT;
   2a0c2:	f240 33ff 	movw	r3, #1023	; 0x3ff
            break;
#endif
    }

    pin_number &= 0x1F;
   2a0c6:	f004 021f 	and.w	r2, r4, #31

    return (mask & (1UL << pin_number)) ? true : false;
   2a0ca:	40d3      	lsrs	r3, r2
    NRFX_ASSERT(nrf_gpio_pin_present_check(*p_pin));
   2a0cc:	f013 0f01 	tst.w	r3, #1
   2a0d0:	d0c2      	beq.n	2a058 <cfg_level_pins+0x34>
}

NRF_STATIC_INLINE uint32_t nrf_gpio_pin_port_number_extract(uint32_t * p_pin)
{
    uint32_t pin_number = *p_pin;
    *p_pin = pin_number & 0x1F;
   2a0d2:	f004 081f 	and.w	r8, r4, #31
    switch (nrf_gpio_pin_port_number_extract(p_pin))
   2a0d6:	0964      	lsrs	r4, r4, #5
   2a0d8:	d0cc      	beq.n	2a074 <cfg_level_pins+0x50>
   2a0da:	2c01      	cmp	r4, #1
   2a0dc:	d0cd      	beq.n	2a07a <cfg_level_pins+0x56>
            NRFX_ASSERT(0);
   2a0de:	4c0a      	ldr	r4, [pc, #40]	; (2a108 <cfg_level_pins+0xe4>)
   2a0e0:	f240 2219 	movw	r2, #537	; 0x219
   2a0e4:	4621      	mov	r1, r4
   2a0e6:	4806      	ldr	r0, [pc, #24]	; (2a100 <cfg_level_pins+0xdc>)
   2a0e8:	f009 f95f 	bl	333aa <printk>
   2a0ec:	f240 2119 	movw	r1, #537	; 0x219
   2a0f0:	4620      	mov	r0, r4
   2a0f2:	f009 fcf3 	bl	33adc <assert_post_action>
        case 0: return NRF_P0;
   2a0f6:	f04f 42a0 	mov.w	r2, #1342177280	; 0x50000000
   2a0fa:	e7bf      	b.n	2a07c <cfg_level_pins+0x58>
}
   2a0fc:	e8bd 8ff8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
   2a100:	0003bdac 	.word	0x0003bdac
   2a104:	50000300 	.word	0x50000300
   2a108:	0003ebf4 	.word	0x0003ebf4

0002a10c <check_level_trigger_pins>:
{
   2a10c:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
   2a110:	b083      	sub	sp, #12
   2a112:	9101      	str	r1, [sp, #4]
	return port->data;
   2a114:	6903      	ldr	r3, [r0, #16]
	return port->config;
   2a116:	f8d0 9004 	ldr.w	r9, [r0, #4]
	uint32_t out = data->pin_int_en;
   2a11a:	68d9      	ldr	r1, [r3, #12]
	out &= ~data->trig_edge & ~data->double_edge;
   2a11c:	695a      	ldr	r2, [r3, #20]
   2a11e:	6998      	ldr	r0, [r3, #24]
   2a120:	4302      	orrs	r2, r0
   2a122:	ea21 0802 	bic.w	r8, r1, r2
	uint32_t port_in = nrf_gpio_port_in_read(cfg->port);
   2a126:	f8d9 2004 	ldr.w	r2, [r9, #4]
    return p_reg->IN;
   2a12a:	f8d2 2510 	ldr.w	r2, [r2, #1296]	; 0x510
	uint32_t pin_states = ~(port_in ^ data->int_active_level);
   2a12e:	691b      	ldr	r3, [r3, #16]
   2a130:	4053      	eors	r3, r2
	uint32_t out = pin_states & level_pins;
   2a132:	ea28 0b03 	bic.w	fp, r8, r3
	uint32_t check_pins = level_pins;
   2a136:	4646      	mov	r6, r8
	uint32_t bit = 1U << pin;
   2a138:	2501      	movs	r5, #1
	uint32_t pin = 0U;
   2a13a:	2700      	movs	r7, #0
	while (check_pins) {
   2a13c:	e064      	b.n	2a208 <check_level_trigger_pins+0xfc>
    switch (port)
   2a13e:	0962      	lsrs	r2, r4, #5
   2a140:	d01d      	beq.n	2a17e <check_level_trigger_pins+0x72>
   2a142:	2a01      	cmp	r2, #1
   2a144:	d101      	bne.n	2a14a <check_level_trigger_pins+0x3e>
            mask = P1_FEATURE_PINS_PRESENT;
   2a146:	f240 33ff 	movw	r3, #1023	; 0x3ff
    pin_number &= 0x1F;
   2a14a:	f004 021f 	and.w	r2, r4, #31
    return (mask & (1UL << pin_number)) ? true : false;
   2a14e:	40d3      	lsrs	r3, r2
    NRFX_ASSERT(nrf_gpio_pin_present_check(*p_pin));
   2a150:	f013 0f01 	tst.w	r3, #1
   2a154:	d016      	beq.n	2a184 <check_level_trigger_pins+0x78>
    *p_pin = pin_number & 0x1F;
   2a156:	f004 0a1f 	and.w	sl, r4, #31
    switch (nrf_gpio_pin_port_number_extract(p_pin))
   2a15a:	0963      	lsrs	r3, r4, #5
   2a15c:	d020      	beq.n	2a1a0 <check_level_trigger_pins+0x94>
   2a15e:	2b01      	cmp	r3, #1
   2a160:	d021      	beq.n	2a1a6 <check_level_trigger_pins+0x9a>
            NRFX_ASSERT(0);
   2a162:	f240 2219 	movw	r2, #537	; 0x219
   2a166:	4941      	ldr	r1, [pc, #260]	; (2a26c <check_level_trigger_pins+0x160>)
   2a168:	4841      	ldr	r0, [pc, #260]	; (2a270 <check_level_trigger_pins+0x164>)
   2a16a:	f009 f91e 	bl	333aa <printk>
   2a16e:	f240 2119 	movw	r1, #537	; 0x219
   2a172:	483e      	ldr	r0, [pc, #248]	; (2a26c <check_level_trigger_pins+0x160>)
   2a174:	f009 fcb2 	bl	33adc <assert_post_action>
        case 0: return NRF_P0;
   2a178:	f04f 43a0 	mov.w	r3, #1342177280	; 0x50000000
   2a17c:	e014      	b.n	2a1a8 <check_level_trigger_pins+0x9c>
            mask = P0_FEATURE_PINS_PRESENT;
   2a17e:	f04f 33ff 	mov.w	r3, #4294967295
   2a182:	e7e2      	b.n	2a14a <check_level_trigger_pins+0x3e>
    NRFX_ASSERT(nrf_gpio_pin_present_check(*p_pin));
   2a184:	f8df a0e4 	ldr.w	sl, [pc, #228]	; 2a26c <check_level_trigger_pins+0x160>
   2a188:	f44f 7205 	mov.w	r2, #532	; 0x214
   2a18c:	4651      	mov	r1, sl
   2a18e:	4838      	ldr	r0, [pc, #224]	; (2a270 <check_level_trigger_pins+0x164>)
   2a190:	f009 f90b 	bl	333aa <printk>
   2a194:	f44f 7105 	mov.w	r1, #532	; 0x214
   2a198:	4650      	mov	r0, sl
   2a19a:	f009 fc9f 	bl	33adc <assert_post_action>
   2a19e:	e7da      	b.n	2a156 <check_level_trigger_pins+0x4a>
        case 0: return NRF_P0;
   2a1a0:	f04f 43a0 	mov.w	r3, #1342177280	; 0x50000000
   2a1a4:	e000      	b.n	2a1a8 <check_level_trigger_pins+0x9c>
    switch (nrf_gpio_pin_port_number_extract(p_pin))
   2a1a6:	4b33      	ldr	r3, [pc, #204]	; (2a274 <check_level_trigger_pins+0x168>)
    return (nrf_gpio_pin_sense_t)((reg->PIN_CNF[pin_number] &
   2a1a8:	f50a 7ae0 	add.w	sl, sl, #448	; 0x1c0
   2a1ac:	f853 302a 	ldr.w	r3, [r3, sl, lsl #2]
                                   GPIO_PIN_CNF_SENSE_Msk) >> GPIO_PIN_CNF_SENSE_Pos);
   2a1b0:	f3c3 4301 	ubfx	r3, r3, #16, #2
				if (high) {
   2a1b4:	2b02      	cmp	r3, #2
   2a1b6:	d133      	bne.n	2a220 <check_level_trigger_pins+0x114>
					*sense_levels |= bit;
   2a1b8:	9a01      	ldr	r2, [sp, #4]
   2a1ba:	6813      	ldr	r3, [r2, #0]
   2a1bc:	432b      	orrs	r3, r5
   2a1be:	6013      	str	r3, [r2, #0]
   2a1c0:	e02e      	b.n	2a220 <check_level_trigger_pins+0x114>
            mask = P0_FEATURE_PINS_PRESENT;
   2a1c2:	f04f 33ff 	mov.w	r3, #4294967295
   2a1c6:	e031      	b.n	2a22c <check_level_trigger_pins+0x120>
    switch (port)
   2a1c8:	2300      	movs	r3, #0
   2a1ca:	e02f      	b.n	2a22c <check_level_trigger_pins+0x120>
    NRFX_ASSERT(nrf_gpio_pin_present_check(*p_pin));
   2a1cc:	f8df a09c 	ldr.w	sl, [pc, #156]	; 2a26c <check_level_trigger_pins+0x160>
   2a1d0:	f44f 7205 	mov.w	r2, #532	; 0x214
   2a1d4:	4651      	mov	r1, sl
   2a1d6:	4826      	ldr	r0, [pc, #152]	; (2a270 <check_level_trigger_pins+0x164>)
   2a1d8:	f009 f8e7 	bl	333aa <printk>
   2a1dc:	f44f 7105 	mov.w	r1, #532	; 0x214
   2a1e0:	4650      	mov	r0, sl
   2a1e2:	f009 fc7b 	bl	33adc <assert_post_action>
   2a1e6:	e027      	b.n	2a238 <check_level_trigger_pins+0x12c>
        case 0: return NRF_P0;
   2a1e8:	f04f 42a0 	mov.w	r2, #1342177280	; 0x50000000
   2a1ec:	e000      	b.n	2a1f0 <check_level_trigger_pins+0xe4>
    switch (nrf_gpio_pin_port_number_extract(p_pin))
   2a1ee:	4a21      	ldr	r2, [pc, #132]	; (2a274 <check_level_trigger_pins+0x168>)
    uint32_t cnf = reg->PIN_CNF[pin_number] & ~GPIO_PIN_CNF_SENSE_Msk;
   2a1f0:	f50a 7ae0 	add.w	sl, sl, #448	; 0x1c0
   2a1f4:	f852 302a 	ldr.w	r3, [r2, sl, lsl #2]
   2a1f8:	f423 3340 	bic.w	r3, r3, #196608	; 0x30000
    reg->PIN_CNF[pin_number] = cnf | (sense_config << GPIO_PIN_CNF_SENSE_Pos);
   2a1fc:	f842 302a 	str.w	r3, [r2, sl, lsl #2]
			check_pins &= ~bit;
   2a200:	ea26 0605 	bic.w	r6, r6, r5
		++pin;
   2a204:	3701      	adds	r7, #1
		bit <<= 1;
   2a206:	006d      	lsls	r5, r5, #1
	while (check_pins) {
   2a208:	b35e      	cbz	r6, 2a262 <check_level_trigger_pins+0x156>
		if (check_pins & bit) {
   2a20a:	4235      	tst	r5, r6
   2a20c:	d0fa      	beq.n	2a204 <check_level_trigger_pins+0xf8>
			uint32_t abs_pin = NRF_GPIO_PIN_MAP(cfg->port_num, pin);
   2a20e:	f899 3008 	ldrb.w	r3, [r9, #8]
   2a212:	f007 041f 	and.w	r4, r7, #31
   2a216:	ea44 1443 	orr.w	r4, r4, r3, lsl #5
			if (!(level_pins & bit)) {
   2a21a:	ea15 0308 	ands.w	r3, r5, r8
   2a21e:	d08e      	beq.n	2a13e <check_level_trigger_pins+0x32>
    switch (port)
   2a220:	0963      	lsrs	r3, r4, #5
   2a222:	d0ce      	beq.n	2a1c2 <check_level_trigger_pins+0xb6>
   2a224:	2b01      	cmp	r3, #1
   2a226:	d1cf      	bne.n	2a1c8 <check_level_trigger_pins+0xbc>
            mask = P1_FEATURE_PINS_PRESENT;
   2a228:	f240 33ff 	movw	r3, #1023	; 0x3ff
    pin_number &= 0x1F;
   2a22c:	f004 021f 	and.w	r2, r4, #31
    return (mask & (1UL << pin_number)) ? true : false;
   2a230:	40d3      	lsrs	r3, r2
    NRFX_ASSERT(nrf_gpio_pin_present_check(*p_pin));
   2a232:	f013 0f01 	tst.w	r3, #1
   2a236:	d0c9      	beq.n	2a1cc <check_level_trigger_pins+0xc0>
    *p_pin = pin_number & 0x1F;
   2a238:	f004 0a1f 	and.w	sl, r4, #31
    switch (nrf_gpio_pin_port_number_extract(p_pin))
   2a23c:	0964      	lsrs	r4, r4, #5
   2a23e:	d0d3      	beq.n	2a1e8 <check_level_trigger_pins+0xdc>
   2a240:	2c01      	cmp	r4, #1
   2a242:	d0d4      	beq.n	2a1ee <check_level_trigger_pins+0xe2>
            NRFX_ASSERT(0);
   2a244:	4c09      	ldr	r4, [pc, #36]	; (2a26c <check_level_trigger_pins+0x160>)
   2a246:	f240 2219 	movw	r2, #537	; 0x219
   2a24a:	4621      	mov	r1, r4
   2a24c:	4808      	ldr	r0, [pc, #32]	; (2a270 <check_level_trigger_pins+0x164>)
   2a24e:	f009 f8ac 	bl	333aa <printk>
   2a252:	f240 2119 	movw	r1, #537	; 0x219
   2a256:	4620      	mov	r0, r4
   2a258:	f009 fc40 	bl	33adc <assert_post_action>
        case 0: return NRF_P0;
   2a25c:	f04f 42a0 	mov.w	r2, #1342177280	; 0x50000000
   2a260:	e7c6      	b.n	2a1f0 <check_level_trigger_pins+0xe4>
}
   2a262:	4658      	mov	r0, fp
   2a264:	b003      	add	sp, #12
   2a266:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
   2a26a:	bf00      	nop
   2a26c:	0003ebf4 	.word	0x0003ebf4
   2a270:	0003bdac 	.word	0x0003bdac
   2a274:	50000300 	.word	0x50000300

0002a278 <gpiote_event_handler>:
{
   2a278:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   2a27c:	b084      	sub	sp, #16
	uint32_t fired_triggers[GPIO_COUNT] = {0};
   2a27e:	2300      	movs	r3, #0
   2a280:	9302      	str	r3, [sp, #8]
   2a282:	9303      	str	r3, [sp, #12]
	uint32_t sense_levels[GPIO_COUNT] = {0};
   2a284:	9300      	str	r3, [sp, #0]
   2a286:	9301      	str	r3, [sp, #4]
    return (bool)*(volatile uint32_t *)((uint8_t *)p_reg + (uint32_t)event);
   2a288:	4b57      	ldr	r3, [pc, #348]	; (2a3e8 <gpiote_event_handler+0x170>)
   2a28a:	681c      	ldr	r4, [r3, #0]
	if (port_event) {
   2a28c:	b90c      	cbnz	r4, 2a292 <gpiote_event_handler+0x1a>
{
   2a28e:	2100      	movs	r1, #0
   2a290:	e011      	b.n	2a2b6 <gpiote_event_handler+0x3e>
			check_level_trigger_pins(DEVICE_DT_GET(GPIO(0)),
   2a292:	4d56      	ldr	r5, [pc, #344]	; (2a3ec <gpiote_event_handler+0x174>)
   2a294:	4669      	mov	r1, sp
   2a296:	4628      	mov	r0, r5
   2a298:	f7ff ff38 	bl	2a10c <check_level_trigger_pins>
		fired_triggers[0] =
   2a29c:	9002      	str	r0, [sp, #8]
			check_level_trigger_pins(DEVICE_DT_GET(GPIO(1)),
   2a29e:	a901      	add	r1, sp, #4
   2a2a0:	f105 0018 	add.w	r0, r5, #24
   2a2a4:	f7ff ff32 	bl	2a10c <check_level_trigger_pins>
		fired_triggers[1] =
   2a2a8:	9003      	str	r0, [sp, #12]
    *((volatile uint32_t *)nrf_gpiote_event_address_get(p_reg, event)) = 0;
   2a2aa:	4b4f      	ldr	r3, [pc, #316]	; (2a3e8 <gpiote_event_handler+0x170>)
   2a2ac:	2200      	movs	r2, #0
   2a2ae:	601a      	str	r2, [r3, #0]
   2a2b0:	681b      	ldr	r3, [r3, #0]
}
   2a2b2:	e7ec      	b.n	2a28e <gpiote_event_handler+0x16>
	for (size_t i = 0; i < GPIOTE_CH_NUM; i++) {
   2a2b4:	3101      	adds	r1, #1
   2a2b6:	2907      	cmp	r1, #7
   2a2b8:	d82d      	bhi.n	2a316 <gpiote_event_handler+0x9e>
		nrf_gpiote_event_t evt =
   2a2ba:	f101 0340 	add.w	r3, r1, #64	; 0x40
   2a2be:	009b      	lsls	r3, r3, #2
   2a2c0:	b29a      	uxth	r2, r3
		if (nrf_gpiote_int_enable_check(NRF_GPIOTE, BIT(i)) &&
   2a2c2:	2301      	movs	r3, #1
   2a2c4:	408b      	lsls	r3, r1
    return p_reg->INTENSET & mask;
   2a2c6:	484a      	ldr	r0, [pc, #296]	; (2a3f0 <gpiote_event_handler+0x178>)
   2a2c8:	f8d0 0304 	ldr.w	r0, [r0, #772]	; 0x304
   2a2cc:	4203      	tst	r3, r0
   2a2ce:	d0f1      	beq.n	2a2b4 <gpiote_event_handler+0x3c>
    return (bool)*(volatile uint32_t *)((uint8_t *)p_reg + (uint32_t)event);
   2a2d0:	f102 4380 	add.w	r3, r2, #1073741824	; 0x40000000
   2a2d4:	f503 43c0 	add.w	r3, r3, #24576	; 0x6000
   2a2d8:	681b      	ldr	r3, [r3, #0]
   2a2da:	2b00      	cmp	r3, #0
   2a2dc:	d0ea      	beq.n	2a2b4 <gpiote_event_handler+0x3c>
    return ((p_reg->CONFIG[idx] & GPIOTE_CONFIG_PORT_PIN_Msk) >> GPIOTE_CONFIG_PSEL_Pos);
   2a2de:	f501 73a2 	add.w	r3, r1, #324	; 0x144
   2a2e2:	4843      	ldr	r0, [pc, #268]	; (2a3f0 <gpiote_event_handler+0x178>)
   2a2e4:	f850 0023 	ldr.w	r0, [r0, r3, lsl #2]
			fired_triggers[abs_pin / 32U] |= BIT(abs_pin % 32);
   2a2e8:	f3c0 3340 	ubfx	r3, r0, #13, #1
   2a2ec:	f3c0 2004 	ubfx	r0, r0, #8, #5
   2a2f0:	2501      	movs	r5, #1
   2a2f2:	fa05 f000 	lsl.w	r0, r5, r0
   2a2f6:	ad04      	add	r5, sp, #16
   2a2f8:	eb05 0383 	add.w	r3, r5, r3, lsl #2
   2a2fc:	f853 5c08 	ldr.w	r5, [r3, #-8]
   2a300:	4305      	orrs	r5, r0
   2a302:	f843 5c08 	str.w	r5, [r3, #-8]
    return ((uint32_t)p_reg + event);
   2a306:	f102 4380 	add.w	r3, r2, #1073741824	; 0x40000000
   2a30a:	f503 43c0 	add.w	r3, r3, #24576	; 0x6000
    *((volatile uint32_t *)nrf_gpiote_event_address_get(p_reg, event)) = 0;
   2a30e:	2200      	movs	r2, #0
   2a310:	601a      	str	r2, [r3, #0]
   2a312:	681b      	ldr	r3, [r3, #0]
}
   2a314:	e7ce      	b.n	2a2b4 <gpiote_event_handler+0x3c>
	if (fired_triggers[0]) {
   2a316:	9f02      	ldr	r7, [sp, #8]
   2a318:	b93f      	cbnz	r7, 2a32a <gpiote_event_handler+0xb2>
	if (fired_triggers[1]) {
   2a31a:	9f03      	ldr	r7, [sp, #12]
   2a31c:	2f00      	cmp	r7, #0
   2a31e:	d12f      	bne.n	2a380 <gpiote_event_handler+0x108>
	if (port_event) {
   2a320:	2c00      	cmp	r4, #0
   2a322:	d158      	bne.n	2a3d6 <gpiote_event_handler+0x15e>
}
   2a324:	b004      	add	sp, #16
   2a326:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
	return list->head;
   2a32a:	4b32      	ldr	r3, [pc, #200]	; (2a3f4 <gpiote_event_handler+0x17c>)
   2a32c:	685d      	ldr	r5, [r3, #4]
					const struct device *port,
					uint32_t pins)
{
	struct gpio_callback *cb, *tmp;

	SYS_SLIST_FOR_EACH_CONTAINER_SAFE(list, cb, tmp, node) {
   2a32e:	b11d      	cbz	r5, 2a338 <gpiote_event_handler+0xc0>
   2a330:	462e      	mov	r6, r5
Z_GENLIST_PEEK_NEXT(slist, snode)
   2a332:	b17d      	cbz	r5, 2a354 <gpiote_event_handler+0xdc>
	return node->next;
   2a334:	682e      	ldr	r6, [r5, #0]
   2a336:	e00d      	b.n	2a354 <gpiote_event_handler+0xdc>
   2a338:	462e      	mov	r6, r5
   2a33a:	e00b      	b.n	2a354 <gpiote_event_handler+0xdc>
		if (cb->pin_mask & pins) {
			__ASSERT(cb->handler, "No callback handler!");
			cb->handler(port, cb, cb->pin_mask & pins);
   2a33c:	686b      	ldr	r3, [r5, #4]
   2a33e:	68aa      	ldr	r2, [r5, #8]
   2a340:	403a      	ands	r2, r7
   2a342:	4629      	mov	r1, r5
   2a344:	4829      	ldr	r0, [pc, #164]	; (2a3ec <gpiote_event_handler+0x174>)
   2a346:	4798      	blx	r3
	SYS_SLIST_FOR_EACH_CONTAINER_SAFE(list, cb, tmp, node) {
   2a348:	b1c6      	cbz	r6, 2a37c <gpiote_event_handler+0x104>
   2a34a:	4633      	mov	r3, r6
Z_GENLIST_PEEK_NEXT(slist, snode)
   2a34c:	b106      	cbz	r6, 2a350 <gpiote_event_handler+0xd8>
	return node->next;
   2a34e:	6833      	ldr	r3, [r6, #0]
   2a350:	4635      	mov	r5, r6
   2a352:	461e      	mov	r6, r3
   2a354:	2d00      	cmp	r5, #0
   2a356:	d0e0      	beq.n	2a31a <gpiote_event_handler+0xa2>
		if (cb->pin_mask & pins) {
   2a358:	68ab      	ldr	r3, [r5, #8]
   2a35a:	421f      	tst	r7, r3
   2a35c:	d0f4      	beq.n	2a348 <gpiote_event_handler+0xd0>
			__ASSERT(cb->handler, "No callback handler!");
   2a35e:	686b      	ldr	r3, [r5, #4]
   2a360:	2b00      	cmp	r3, #0
   2a362:	d1eb      	bne.n	2a33c <gpiote_event_handler+0xc4>
   2a364:	f8df 809c 	ldr.w	r8, [pc, #156]	; 2a404 <gpiote_event_handler+0x18c>
   2a368:	2245      	movs	r2, #69	; 0x45
   2a36a:	4641      	mov	r1, r8
   2a36c:	4822      	ldr	r0, [pc, #136]	; (2a3f8 <gpiote_event_handler+0x180>)
   2a36e:	f009 f81c 	bl	333aa <printk>
   2a372:	2145      	movs	r1, #69	; 0x45
   2a374:	4640      	mov	r0, r8
   2a376:	f009 fbb1 	bl	33adc <assert_post_action>
   2a37a:	e7df      	b.n	2a33c <gpiote_event_handler+0xc4>
	SYS_SLIST_FOR_EACH_CONTAINER_SAFE(list, cb, tmp, node) {
   2a37c:	4633      	mov	r3, r6
   2a37e:	e7e7      	b.n	2a350 <gpiote_event_handler+0xd8>
	return list->head;
   2a380:	4b1e      	ldr	r3, [pc, #120]	; (2a3fc <gpiote_event_handler+0x184>)
   2a382:	685d      	ldr	r5, [r3, #4]
   2a384:	b11d      	cbz	r5, 2a38e <gpiote_event_handler+0x116>
   2a386:	462e      	mov	r6, r5
Z_GENLIST_PEEK_NEXT(slist, snode)
   2a388:	b17d      	cbz	r5, 2a3aa <gpiote_event_handler+0x132>
	return node->next;
   2a38a:	682e      	ldr	r6, [r5, #0]
   2a38c:	e00d      	b.n	2a3aa <gpiote_event_handler+0x132>
   2a38e:	462e      	mov	r6, r5
   2a390:	e00b      	b.n	2a3aa <gpiote_event_handler+0x132>
			cb->handler(port, cb, cb->pin_mask & pins);
   2a392:	686b      	ldr	r3, [r5, #4]
   2a394:	68aa      	ldr	r2, [r5, #8]
   2a396:	403a      	ands	r2, r7
   2a398:	4629      	mov	r1, r5
   2a39a:	4819      	ldr	r0, [pc, #100]	; (2a400 <gpiote_event_handler+0x188>)
   2a39c:	4798      	blx	r3
	SYS_SLIST_FOR_EACH_CONTAINER_SAFE(list, cb, tmp, node) {
   2a39e:	b1c6      	cbz	r6, 2a3d2 <gpiote_event_handler+0x15a>
   2a3a0:	4633      	mov	r3, r6
Z_GENLIST_PEEK_NEXT(slist, snode)
   2a3a2:	b106      	cbz	r6, 2a3a6 <gpiote_event_handler+0x12e>
	return node->next;
   2a3a4:	6833      	ldr	r3, [r6, #0]
   2a3a6:	4635      	mov	r5, r6
   2a3a8:	461e      	mov	r6, r3
   2a3aa:	2d00      	cmp	r5, #0
   2a3ac:	d0b8      	beq.n	2a320 <gpiote_event_handler+0xa8>
		if (cb->pin_mask & pins) {
   2a3ae:	68ab      	ldr	r3, [r5, #8]
   2a3b0:	421f      	tst	r7, r3
   2a3b2:	d0f4      	beq.n	2a39e <gpiote_event_handler+0x126>
			__ASSERT(cb->handler, "No callback handler!");
   2a3b4:	686b      	ldr	r3, [r5, #4]
   2a3b6:	2b00      	cmp	r3, #0
   2a3b8:	d1eb      	bne.n	2a392 <gpiote_event_handler+0x11a>
   2a3ba:	f8df 8048 	ldr.w	r8, [pc, #72]	; 2a404 <gpiote_event_handler+0x18c>
   2a3be:	2245      	movs	r2, #69	; 0x45
   2a3c0:	4641      	mov	r1, r8
   2a3c2:	480d      	ldr	r0, [pc, #52]	; (2a3f8 <gpiote_event_handler+0x180>)
   2a3c4:	f008 fff1 	bl	333aa <printk>
   2a3c8:	2145      	movs	r1, #69	; 0x45
   2a3ca:	4640      	mov	r0, r8
   2a3cc:	f009 fb86 	bl	33adc <assert_post_action>
   2a3d0:	e7df      	b.n	2a392 <gpiote_event_handler+0x11a>
	SYS_SLIST_FOR_EACH_CONTAINER_SAFE(list, cb, tmp, node) {
   2a3d2:	4633      	mov	r3, r6
   2a3d4:	e7e7      	b.n	2a3a6 <gpiote_event_handler+0x12e>
		cfg_level_pins(DEVICE_DT_GET(GPIO(0)));
   2a3d6:	4c05      	ldr	r4, [pc, #20]	; (2a3ec <gpiote_event_handler+0x174>)
   2a3d8:	4620      	mov	r0, r4
   2a3da:	f7ff fe23 	bl	2a024 <cfg_level_pins>
		cfg_level_pins(DEVICE_DT_GET(GPIO(1)));
   2a3de:	f104 0018 	add.w	r0, r4, #24
   2a3e2:	f7ff fe1f 	bl	2a024 <cfg_level_pins>
}
   2a3e6:	e79d      	b.n	2a324 <gpiote_event_handler+0xac>
   2a3e8:	4000617c 	.word	0x4000617c
   2a3ec:	0003b5bc 	.word	0x0003b5bc
   2a3f0:	40006000 	.word	0x40006000
   2a3f4:	200024b0 	.word	0x200024b0
   2a3f8:	0003bdac 	.word	0x0003bdac
   2a3fc:	200024cc 	.word	0x200024cc
   2a400:	0003b5d4 	.word	0x0003b5d4
   2a404:	0003ebc4 	.word	0x0003ebc4

0002a408 <gpio_nrfx_config>:
{
   2a408:	e92d 43f8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
	return port->config;
   2a40c:	6843      	ldr	r3, [r0, #4]
	NRF_GPIO_Type *reg = get_port_cfg(port)->port;
   2a40e:	685f      	ldr	r7, [r3, #4]
	switch (flags & (GPIO_DS_LOW_MASK | GPIO_DS_HIGH_MASK |
   2a410:	4b51      	ldr	r3, [pc, #324]	; (2a558 <gpio_nrfx_config+0x150>)
   2a412:	4013      	ands	r3, r2
   2a414:	4c51      	ldr	r4, [pc, #324]	; (2a55c <gpio_nrfx_config+0x154>)
   2a416:	42a3      	cmp	r3, r4
   2a418:	d028      	beq.n	2a46c <gpio_nrfx_config+0x64>
   2a41a:	d812      	bhi.n	2a442 <gpio_nrfx_config+0x3a>
   2a41c:	2b06      	cmp	r3, #6
   2a41e:	d027      	beq.n	2a470 <gpio_nrfx_config+0x68>
   2a420:	d904      	bls.n	2a42c <gpio_nrfx_config+0x24>
   2a422:	f5b3 1f80 	cmp.w	r3, #1048576	; 0x100000
   2a426:	d109      	bne.n	2a43c <gpio_nrfx_config+0x34>
		drive = NRF_GPIO_PIN_H0S1;
   2a428:	2601      	movs	r6, #1
   2a42a:	e016      	b.n	2a45a <gpio_nrfx_config+0x52>
	switch (flags & (GPIO_DS_LOW_MASK | GPIO_DS_HIGH_MASK |
   2a42c:	b313      	cbz	r3, 2a474 <gpio_nrfx_config+0x6c>
   2a42e:	2b02      	cmp	r3, #2
   2a430:	d101      	bne.n	2a436 <gpio_nrfx_config+0x2e>
		drive = NRF_GPIO_PIN_D0S1;
   2a432:	2604      	movs	r6, #4
   2a434:	e011      	b.n	2a45a <gpio_nrfx_config+0x52>
	switch (flags & (GPIO_DS_LOW_MASK | GPIO_DS_HIGH_MASK |
   2a436:	f06f 0015 	mvn.w	r0, #21
   2a43a:	e087      	b.n	2a54c <gpio_nrfx_config+0x144>
   2a43c:	f06f 0015 	mvn.w	r0, #21
   2a440:	e084      	b.n	2a54c <gpio_nrfx_config+0x144>
   2a442:	4c47      	ldr	r4, [pc, #284]	; (2a560 <gpio_nrfx_config+0x158>)
   2a444:	42a3      	cmp	r3, r4
   2a446:	d017      	beq.n	2a478 <gpio_nrfx_config+0x70>
   2a448:	f5b3 0fa0 	cmp.w	r3, #5242880	; 0x500000
   2a44c:	d101      	bne.n	2a452 <gpio_nrfx_config+0x4a>
		drive = NRF_GPIO_PIN_H0H1;
   2a44e:	2603      	movs	r6, #3
   2a450:	e003      	b.n	2a45a <gpio_nrfx_config+0x52>
	switch (flags & (GPIO_DS_LOW_MASK | GPIO_DS_HIGH_MASK |
   2a452:	f5b3 0f80 	cmp.w	r3, #4194304	; 0x400000
   2a456:	d17b      	bne.n	2a550 <gpio_nrfx_config+0x148>
		drive = NRF_GPIO_PIN_S0H1;
   2a458:	2602      	movs	r6, #2
	if ((flags & GPIO_PULL_UP) != 0) {
   2a45a:	f012 0f10 	tst.w	r2, #16
   2a45e:	d10d      	bne.n	2a47c <gpio_nrfx_config+0x74>
	} else if ((flags & GPIO_PULL_DOWN) != 0) {
   2a460:	f012 0f20 	tst.w	r2, #32
   2a464:	d046      	beq.n	2a4f4 <gpio_nrfx_config+0xec>
		pull = NRF_GPIO_PIN_PULLDOWN;
   2a466:	f04f 0801 	mov.w	r8, #1
   2a46a:	e009      	b.n	2a480 <gpio_nrfx_config+0x78>
		drive = NRF_GPIO_PIN_H0D1;
   2a46c:	2607      	movs	r6, #7
   2a46e:	e7f4      	b.n	2a45a <gpio_nrfx_config+0x52>
		drive = NRF_GPIO_PIN_S0D1;
   2a470:	2606      	movs	r6, #6
   2a472:	e7f2      	b.n	2a45a <gpio_nrfx_config+0x52>
	switch (flags & (GPIO_DS_LOW_MASK | GPIO_DS_HIGH_MASK |
   2a474:	2600      	movs	r6, #0
   2a476:	e7f0      	b.n	2a45a <gpio_nrfx_config+0x52>
		drive = NRF_GPIO_PIN_D0H1;
   2a478:	2605      	movs	r6, #5
   2a47a:	e7ee      	b.n	2a45a <gpio_nrfx_config+0x52>
		pull = NRF_GPIO_PIN_PULLUP;
   2a47c:	f04f 0803 	mov.w	r8, #3
	dir = ((flags & GPIO_OUTPUT) != 0)
   2a480:	f3c2 2540 	ubfx	r5, r2, #9, #1
		: NRF_GPIO_PIN_INPUT_DISCONNECT;
   2a484:	f412 7f80 	tst.w	r2, #256	; 0x100
   2a488:	bf0c      	ite	eq
   2a48a:	f04f 0901 	moveq.w	r9, #1
   2a48e:	f04f 0900 	movne.w	r9, #0
	if ((flags & GPIO_OUTPUT) != 0) {
   2a492:	f412 7f00 	tst.w	r2, #512	; 0x200
   2a496:	d006      	beq.n	2a4a6 <gpio_nrfx_config+0x9e>
		if ((flags & GPIO_OUTPUT_INIT_HIGH) != 0) {
   2a498:	f412 6f00 	tst.w	r2, #2048	; 0x800
   2a49c:	d02d      	beq.n	2a4fa <gpio_nrfx_config+0xf2>
			nrf_gpio_port_out_set(reg, BIT(pin));
   2a49e:	2301      	movs	r3, #1
   2a4a0:	408b      	lsls	r3, r1
    p_reg->OUTSET = set_mask;
   2a4a2:	f8c7 3508 	str.w	r3, [r7, #1288]	; 0x508
	return port->config;
   2a4a6:	6843      	ldr	r3, [r0, #4]
	nrf_gpio_cfg(NRF_GPIO_PIN_MAP(get_port_cfg(port)->port_num, pin),
   2a4a8:	7a1c      	ldrb	r4, [r3, #8]
   2a4aa:	f001 011f 	and.w	r1, r1, #31
   2a4ae:	ea41 1444 	orr.w	r4, r1, r4, lsl #5
    switch (port)
   2a4b2:	0963      	lsrs	r3, r4, #5
   2a4b4:	d029      	beq.n	2a50a <gpio_nrfx_config+0x102>
   2a4b6:	2b01      	cmp	r3, #1
   2a4b8:	d12a      	bne.n	2a510 <gpio_nrfx_config+0x108>
            mask = P1_FEATURE_PINS_PRESENT;
   2a4ba:	f240 33ff 	movw	r3, #1023	; 0x3ff
    pin_number &= 0x1F;
   2a4be:	f004 021f 	and.w	r2, r4, #31
    return (mask & (1UL << pin_number)) ? true : false;
   2a4c2:	40d3      	lsrs	r3, r2
    NRFX_ASSERT(nrf_gpio_pin_present_check(*p_pin));
   2a4c4:	f013 0f01 	tst.w	r3, #1
   2a4c8:	d024      	beq.n	2a514 <gpio_nrfx_config+0x10c>
    *p_pin = pin_number & 0x1F;
   2a4ca:	f004 071f 	and.w	r7, r4, #31
    switch (nrf_gpio_pin_port_number_extract(p_pin))
   2a4ce:	0964      	lsrs	r4, r4, #5
   2a4d0:	d02d      	beq.n	2a52e <gpio_nrfx_config+0x126>
   2a4d2:	2c01      	cmp	r4, #1
   2a4d4:	d02e      	beq.n	2a534 <gpio_nrfx_config+0x12c>
            NRFX_ASSERT(0);
   2a4d6:	4c23      	ldr	r4, [pc, #140]	; (2a564 <gpio_nrfx_config+0x15c>)
   2a4d8:	f240 2219 	movw	r2, #537	; 0x219
   2a4dc:	4621      	mov	r1, r4
   2a4de:	4822      	ldr	r0, [pc, #136]	; (2a568 <gpio_nrfx_config+0x160>)
   2a4e0:	f008 ff63 	bl	333aa <printk>
   2a4e4:	f240 2119 	movw	r1, #537	; 0x219
   2a4e8:	4620      	mov	r0, r4
   2a4ea:	f009 faf7 	bl	33adc <assert_post_action>
        case 0: return NRF_P0;
   2a4ee:	f04f 43a0 	mov.w	r3, #1342177280	; 0x50000000
   2a4f2:	e020      	b.n	2a536 <gpio_nrfx_config+0x12e>
		pull = NRF_GPIO_PIN_NOPULL;
   2a4f4:	f04f 0800 	mov.w	r8, #0
   2a4f8:	e7c2      	b.n	2a480 <gpio_nrfx_config+0x78>
		} else if ((flags & GPIO_OUTPUT_INIT_LOW) != 0) {
   2a4fa:	f412 6f80 	tst.w	r2, #1024	; 0x400
   2a4fe:	d0d2      	beq.n	2a4a6 <gpio_nrfx_config+0x9e>
			nrf_gpio_port_out_clear(reg, BIT(pin));
   2a500:	2301      	movs	r3, #1
   2a502:	408b      	lsls	r3, r1
    p_reg->OUTCLR = clr_mask;
   2a504:	f8c7 350c 	str.w	r3, [r7, #1292]	; 0x50c
}
   2a508:	e7cd      	b.n	2a4a6 <gpio_nrfx_config+0x9e>
            mask = P0_FEATURE_PINS_PRESENT;
   2a50a:	f04f 33ff 	mov.w	r3, #4294967295
   2a50e:	e7d6      	b.n	2a4be <gpio_nrfx_config+0xb6>
    switch (port)
   2a510:	2300      	movs	r3, #0
   2a512:	e7d4      	b.n	2a4be <gpio_nrfx_config+0xb6>
    NRFX_ASSERT(nrf_gpio_pin_present_check(*p_pin));
   2a514:	4f13      	ldr	r7, [pc, #76]	; (2a564 <gpio_nrfx_config+0x15c>)
   2a516:	f44f 7205 	mov.w	r2, #532	; 0x214
   2a51a:	4639      	mov	r1, r7
   2a51c:	4812      	ldr	r0, [pc, #72]	; (2a568 <gpio_nrfx_config+0x160>)
   2a51e:	f008 ff44 	bl	333aa <printk>
   2a522:	f44f 7105 	mov.w	r1, #532	; 0x214
   2a526:	4638      	mov	r0, r7
   2a528:	f009 fad8 	bl	33adc <assert_post_action>
   2a52c:	e7cd      	b.n	2a4ca <gpio_nrfx_config+0xc2>
        case 0: return NRF_P0;
   2a52e:	f04f 43a0 	mov.w	r3, #1342177280	; 0x50000000
   2a532:	e000      	b.n	2a536 <gpio_nrfx_config+0x12e>
    switch (nrf_gpio_pin_port_number_extract(p_pin))
   2a534:	4b0d      	ldr	r3, [pc, #52]	; (2a56c <gpio_nrfx_config+0x164>)
    cnf |= ((uint32_t)dir << GPIO_PIN_CNF_DIR_Pos)     |
   2a536:	ea45 0549 	orr.w	r5, r5, r9, lsl #1
           ((uint32_t)input << GPIO_PIN_CNF_INPUT_Pos) |
   2a53a:	ea45 0588 	orr.w	r5, r5, r8, lsl #2
           ((uint32_t)pull << GPIO_PIN_CNF_PULL_Pos)   |
   2a53e:	ea45 2506 	orr.w	r5, r5, r6, lsl #8
    reg->PIN_CNF[pin_number] = cnf;
   2a542:	f507 77e0 	add.w	r7, r7, #448	; 0x1c0
   2a546:	f843 5027 	str.w	r5, [r3, r7, lsl #2]
	return 0;
   2a54a:	2000      	movs	r0, #0
}
   2a54c:	e8bd 83f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
	switch (flags & (GPIO_DS_LOW_MASK | GPIO_DS_HIGH_MASK |
   2a550:	f06f 0015 	mvn.w	r0, #21
   2a554:	e7fa      	b.n	2a54c <gpio_nrfx_config+0x144>
   2a556:	bf00      	nop
   2a558:	00f00006 	.word	0x00f00006
   2a55c:	00100006 	.word	0x00100006
   2a560:	00400002 	.word	0x00400002
   2a564:	0003ebf4 	.word	0x0003ebf4
   2a568:	0003bdac 	.word	0x0003bdac
   2a56c:	50000300 	.word	0x50000300

0002a570 <gpiote_pin_int_cfg>:
{
   2a570:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   2a574:	460d      	mov	r5, r1
	return port->data;
   2a576:	6907      	ldr	r7, [r0, #16]
	return port->config;
   2a578:	6843      	ldr	r3, [r0, #4]
	uint32_t abs_pin = NRF_GPIO_PIN_MAP(cfg->port_num, pin);
   2a57a:	7a1b      	ldrb	r3, [r3, #8]
   2a57c:	f001 041f 	and.w	r4, r1, #31
   2a580:	ea44 1443 	orr.w	r4, r4, r3, lsl #5
	gpiote_pin_cleanup(abs_pin);
   2a584:	4620      	mov	r0, r4
   2a586:	f7ff fcbf 	bl	29f08 <gpiote_pin_cleanup>
    switch (port)
   2a58a:	0963      	lsrs	r3, r4, #5
   2a58c:	d01f      	beq.n	2a5ce <gpiote_pin_int_cfg+0x5e>
   2a58e:	2b01      	cmp	r3, #1
   2a590:	d120      	bne.n	2a5d4 <gpiote_pin_int_cfg+0x64>
            mask = P1_FEATURE_PINS_PRESENT;
   2a592:	f240 33ff 	movw	r3, #1023	; 0x3ff
    pin_number &= 0x1F;
   2a596:	f004 021f 	and.w	r2, r4, #31
    return (mask & (1UL << pin_number)) ? true : false;
   2a59a:	40d3      	lsrs	r3, r2
    NRFX_ASSERT(nrf_gpio_pin_present_check(*p_pin));
   2a59c:	f013 0f01 	tst.w	r3, #1
   2a5a0:	d01a      	beq.n	2a5d8 <gpiote_pin_int_cfg+0x68>
    *p_pin = pin_number & 0x1F;
   2a5a2:	f004 061f 	and.w	r6, r4, #31
    switch (nrf_gpio_pin_port_number_extract(p_pin))
   2a5a6:	0963      	lsrs	r3, r4, #5
   2a5a8:	d023      	beq.n	2a5f2 <gpiote_pin_int_cfg+0x82>
   2a5aa:	2b01      	cmp	r3, #1
   2a5ac:	d024      	beq.n	2a5f8 <gpiote_pin_int_cfg+0x88>
            NRFX_ASSERT(0);
   2a5ae:	f8df 8134 	ldr.w	r8, [pc, #308]	; 2a6e4 <gpiote_pin_int_cfg+0x174>
   2a5b2:	f240 2219 	movw	r2, #537	; 0x219
   2a5b6:	4641      	mov	r1, r8
   2a5b8:	4849      	ldr	r0, [pc, #292]	; (2a6e0 <gpiote_pin_int_cfg+0x170>)
   2a5ba:	f008 fef6 	bl	333aa <printk>
   2a5be:	f240 2119 	movw	r1, #537	; 0x219
   2a5c2:	4640      	mov	r0, r8
   2a5c4:	f009 fa8a 	bl	33adc <assert_post_action>
        case 0: return NRF_P0;
   2a5c8:	f04f 41a0 	mov.w	r1, #1342177280	; 0x50000000
   2a5cc:	e015      	b.n	2a5fa <gpiote_pin_int_cfg+0x8a>
            mask = P0_FEATURE_PINS_PRESENT;
   2a5ce:	f04f 33ff 	mov.w	r3, #4294967295
   2a5d2:	e7e0      	b.n	2a596 <gpiote_pin_int_cfg+0x26>
    switch (port)
   2a5d4:	2300      	movs	r3, #0
   2a5d6:	e7de      	b.n	2a596 <gpiote_pin_int_cfg+0x26>
    NRFX_ASSERT(nrf_gpio_pin_present_check(*p_pin));
   2a5d8:	4e42      	ldr	r6, [pc, #264]	; (2a6e4 <gpiote_pin_int_cfg+0x174>)
   2a5da:	f44f 7205 	mov.w	r2, #532	; 0x214
   2a5de:	4631      	mov	r1, r6
   2a5e0:	483f      	ldr	r0, [pc, #252]	; (2a6e0 <gpiote_pin_int_cfg+0x170>)
   2a5e2:	f008 fee2 	bl	333aa <printk>
   2a5e6:	f44f 7105 	mov.w	r1, #532	; 0x214
   2a5ea:	4630      	mov	r0, r6
   2a5ec:	f009 fa76 	bl	33adc <assert_post_action>
   2a5f0:	e7d7      	b.n	2a5a2 <gpiote_pin_int_cfg+0x32>
        case 0: return NRF_P0;
   2a5f2:	f04f 41a0 	mov.w	r1, #1342177280	; 0x50000000
   2a5f6:	e000      	b.n	2a5fa <gpiote_pin_int_cfg+0x8a>
    switch (nrf_gpio_pin_port_number_extract(p_pin))
   2a5f8:	493b      	ldr	r1, [pc, #236]	; (2a6e8 <gpiote_pin_int_cfg+0x178>)
    uint32_t cnf = reg->PIN_CNF[pin_number] & ~GPIO_PIN_CNF_SENSE_Msk;
   2a5fa:	f506 73e0 	add.w	r3, r6, #448	; 0x1c0
   2a5fe:	f851 2023 	ldr.w	r2, [r1, r3, lsl #2]
   2a602:	f422 3240 	bic.w	r2, r2, #196608	; 0x30000
    reg->PIN_CNF[pin_number] = cnf | (sense_config << GPIO_PIN_CNF_SENSE_Pos);
   2a606:	f841 2023 	str.w	r2, [r1, r3, lsl #2]
	if (data->pin_int_en & BIT(pin)) {
   2a60a:	68fb      	ldr	r3, [r7, #12]
   2a60c:	40eb      	lsrs	r3, r5
   2a60e:	f013 0f01 	tst.w	r3, #1
   2a612:	d062      	beq.n	2a6da <gpiote_pin_int_cfg+0x16a>
		if (data->trig_edge & BIT(pin)) {
   2a614:	697b      	ldr	r3, [r7, #20]
   2a616:	40eb      	lsrs	r3, r5
   2a618:	f013 0301 	ands.w	r3, r3, #1
   2a61c:	d013      	beq.n	2a646 <gpiote_pin_int_cfg+0xd6>
				if (data->double_edge & BIT(pin)) {
   2a61e:	69bb      	ldr	r3, [r7, #24]
   2a620:	40eb      	lsrs	r3, r5
   2a622:	f013 0f01 	tst.w	r3, #1
   2a626:	d107      	bne.n	2a638 <gpiote_pin_int_cfg+0xc8>
				} else if ((data->int_active_level & BIT(pin)) != 0U) {
   2a628:	6939      	ldr	r1, [r7, #16]
   2a62a:	fa21 f505 	lsr.w	r5, r1, r5
   2a62e:	f015 0f01 	tst.w	r5, #1
   2a632:	d006      	beq.n	2a642 <gpiote_pin_int_cfg+0xd2>
					pol = NRF_GPIOTE_POLARITY_LOTOHI;
   2a634:	2101      	movs	r1, #1
   2a636:	e000      	b.n	2a63a <gpiote_pin_int_cfg+0xca>
					pol = NRF_GPIOTE_POLARITY_TOGGLE;
   2a638:	2103      	movs	r1, #3
				res = gpiote_channel_alloc(abs_pin, pol);
   2a63a:	4620      	mov	r0, r4
   2a63c:	f7ff fc90 	bl	29f60 <gpiote_channel_alloc>
   2a640:	e04c      	b.n	2a6dc <gpiote_pin_int_cfg+0x16c>
					pol = NRF_GPIOTE_POLARITY_HITOLO;
   2a642:	2102      	movs	r1, #2
   2a644:	e7f9      	b.n	2a63a <gpiote_pin_int_cfg+0xca>
	if ((BIT(pin) & data->int_active_level) != 0U) {
   2a646:	6939      	ldr	r1, [r7, #16]
   2a648:	fa21 f505 	lsr.w	r5, r1, r5
   2a64c:	f015 0f01 	tst.w	r5, #1
   2a650:	d121      	bne.n	2a696 <gpiote_pin_int_cfg+0x126>
	return NRF_GPIO_PIN_SENSE_LOW;
   2a652:	2503      	movs	r5, #3
    switch (port)
   2a654:	0962      	lsrs	r2, r4, #5
   2a656:	d020      	beq.n	2a69a <gpiote_pin_int_cfg+0x12a>
   2a658:	2a01      	cmp	r2, #1
   2a65a:	d101      	bne.n	2a660 <gpiote_pin_int_cfg+0xf0>
            mask = P1_FEATURE_PINS_PRESENT;
   2a65c:	f240 33ff 	movw	r3, #1023	; 0x3ff
    pin_number &= 0x1F;
   2a660:	f004 021f 	and.w	r2, r4, #31
    return (mask & (1UL << pin_number)) ? true : false;
   2a664:	40d3      	lsrs	r3, r2
    NRFX_ASSERT(nrf_gpio_pin_present_check(*p_pin));
   2a666:	f013 0f01 	tst.w	r3, #1
   2a66a:	d019      	beq.n	2a6a0 <gpiote_pin_int_cfg+0x130>
    *p_pin = pin_number & 0x1F;
   2a66c:	f004 061f 	and.w	r6, r4, #31
    switch (nrf_gpio_pin_port_number_extract(p_pin))
   2a670:	0964      	lsrs	r4, r4, #5
   2a672:	d022      	beq.n	2a6ba <gpiote_pin_int_cfg+0x14a>
   2a674:	2c01      	cmp	r4, #1
   2a676:	d023      	beq.n	2a6c0 <gpiote_pin_int_cfg+0x150>
            NRFX_ASSERT(0);
   2a678:	4c1a      	ldr	r4, [pc, #104]	; (2a6e4 <gpiote_pin_int_cfg+0x174>)
   2a67a:	f240 2219 	movw	r2, #537	; 0x219
   2a67e:	4621      	mov	r1, r4
   2a680:	4817      	ldr	r0, [pc, #92]	; (2a6e0 <gpiote_pin_int_cfg+0x170>)
   2a682:	f008 fe92 	bl	333aa <printk>
   2a686:	f240 2119 	movw	r1, #537	; 0x219
   2a68a:	4620      	mov	r0, r4
   2a68c:	f009 fa26 	bl	33adc <assert_post_action>
        case 0: return NRF_P0;
   2a690:	f04f 41a0 	mov.w	r1, #1342177280	; 0x50000000
   2a694:	e015      	b.n	2a6c2 <gpiote_pin_int_cfg+0x152>
		return NRF_GPIO_PIN_SENSE_HIGH;
   2a696:	2502      	movs	r5, #2
   2a698:	e7dc      	b.n	2a654 <gpiote_pin_int_cfg+0xe4>
            mask = P0_FEATURE_PINS_PRESENT;
   2a69a:	f04f 33ff 	mov.w	r3, #4294967295
   2a69e:	e7df      	b.n	2a660 <gpiote_pin_int_cfg+0xf0>
    NRFX_ASSERT(nrf_gpio_pin_present_check(*p_pin));
   2a6a0:	4e10      	ldr	r6, [pc, #64]	; (2a6e4 <gpiote_pin_int_cfg+0x174>)
   2a6a2:	f44f 7205 	mov.w	r2, #532	; 0x214
   2a6a6:	4631      	mov	r1, r6
   2a6a8:	480d      	ldr	r0, [pc, #52]	; (2a6e0 <gpiote_pin_int_cfg+0x170>)
   2a6aa:	f008 fe7e 	bl	333aa <printk>
   2a6ae:	f44f 7105 	mov.w	r1, #532	; 0x214
   2a6b2:	4630      	mov	r0, r6
   2a6b4:	f009 fa12 	bl	33adc <assert_post_action>
   2a6b8:	e7d8      	b.n	2a66c <gpiote_pin_int_cfg+0xfc>
        case 0: return NRF_P0;
   2a6ba:	f04f 41a0 	mov.w	r1, #1342177280	; 0x50000000
   2a6be:	e000      	b.n	2a6c2 <gpiote_pin_int_cfg+0x152>
    switch (nrf_gpio_pin_port_number_extract(p_pin))
   2a6c0:	4909      	ldr	r1, [pc, #36]	; (2a6e8 <gpiote_pin_int_cfg+0x178>)
    uint32_t cnf = reg->PIN_CNF[pin_number] & ~GPIO_PIN_CNF_SENSE_Msk;
   2a6c2:	f506 72e0 	add.w	r2, r6, #448	; 0x1c0
   2a6c6:	f851 3022 	ldr.w	r3, [r1, r2, lsl #2]
   2a6ca:	f423 3340 	bic.w	r3, r3, #196608	; 0x30000
    reg->PIN_CNF[pin_number] = cnf | (sense_config << GPIO_PIN_CNF_SENSE_Pos);
   2a6ce:	ea43 4305 	orr.w	r3, r3, r5, lsl #16
   2a6d2:	f841 3022 	str.w	r3, [r1, r2, lsl #2]
	int res = 0;
   2a6d6:	2000      	movs	r0, #0
   2a6d8:	e000      	b.n	2a6dc <gpiote_pin_int_cfg+0x16c>
   2a6da:	2000      	movs	r0, #0
}
   2a6dc:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
   2a6e0:	0003bdac 	.word	0x0003bdac
   2a6e4:	0003ebf4 	.word	0x0003ebf4
   2a6e8:	50000300 	.word	0x50000300

0002a6ec <gpio_nrfx_pin_interrupt_configure>:
{
   2a6ec:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
   2a6f0:	4606      	mov	r6, r0
   2a6f2:	460c      	mov	r4, r1
   2a6f4:	4617      	mov	r7, r2
   2a6f6:	4698      	mov	r8, r3
	return port->data;
   2a6f8:	6905      	ldr	r5, [r0, #16]
	return port->config;
   2a6fa:	6843      	ldr	r3, [r0, #4]
	uint32_t abs_pin = NRF_GPIO_PIN_MAP(get_port_cfg(port)->port_num, pin);
   2a6fc:	7a1b      	ldrb	r3, [r3, #8]
   2a6fe:	f001 091f 	and.w	r9, r1, #31
   2a702:	ea49 1943 	orr.w	r9, r9, r3, lsl #5
	if (!IS_ENABLED(CONFIG_GPIO_NRF_INT_EDGE_USING_SENSE) &&
   2a706:	f5b2 3fa0 	cmp.w	r2, #81920	; 0x14000
   2a70a:	d028      	beq.n	2a75e <gpio_nrfx_pin_interrupt_configure+0x72>
	WRITE_BIT(data->pin_int_en, pin, mode != GPIO_INT_MODE_DISABLED);
   2a70c:	f5b7 5f00 	cmp.w	r7, #8192	; 0x2000
   2a710:	d06b      	beq.n	2a7ea <gpio_nrfx_pin_interrupt_configure+0xfe>
   2a712:	68eb      	ldr	r3, [r5, #12]
   2a714:	2201      	movs	r2, #1
   2a716:	40a2      	lsls	r2, r4
   2a718:	4313      	orrs	r3, r2
   2a71a:	60eb      	str	r3, [r5, #12]
	WRITE_BIT(data->trig_edge, pin, mode == GPIO_INT_MODE_EDGE);
   2a71c:	f5b7 3fa0 	cmp.w	r7, #81920	; 0x14000
   2a720:	d069      	beq.n	2a7f6 <gpio_nrfx_pin_interrupt_configure+0x10a>
   2a722:	696b      	ldr	r3, [r5, #20]
   2a724:	2201      	movs	r2, #1
   2a726:	40a2      	lsls	r2, r4
   2a728:	ea23 0302 	bic.w	r3, r3, r2
   2a72c:	616b      	str	r3, [r5, #20]
	WRITE_BIT(data->double_edge, pin, trig == GPIO_INT_TRIG_BOTH);
   2a72e:	f5b8 2fc0 	cmp.w	r8, #393216	; 0x60000
   2a732:	d065      	beq.n	2a800 <gpio_nrfx_pin_interrupt_configure+0x114>
   2a734:	69ab      	ldr	r3, [r5, #24]
   2a736:	2201      	movs	r2, #1
   2a738:	40a2      	lsls	r2, r4
   2a73a:	ea23 0302 	bic.w	r3, r3, r2
   2a73e:	61ab      	str	r3, [r5, #24]
	WRITE_BIT(data->int_active_level, pin, trig == GPIO_INT_TRIG_HIGH);
   2a740:	f5b8 2f80 	cmp.w	r8, #262144	; 0x40000
   2a744:	d061      	beq.n	2a80a <gpio_nrfx_pin_interrupt_configure+0x11e>
   2a746:	692b      	ldr	r3, [r5, #16]
   2a748:	2201      	movs	r2, #1
   2a74a:	40a2      	lsls	r2, r4
   2a74c:	ea23 0302 	bic.w	r3, r3, r2
   2a750:	612b      	str	r3, [r5, #16]
	return gpiote_pin_int_cfg(port, pin);
   2a752:	4621      	mov	r1, r4
   2a754:	4630      	mov	r0, r6
   2a756:	f7ff ff0b 	bl	2a570 <gpiote_pin_int_cfg>
}
   2a75a:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
    switch (port)
   2a75e:	ea5f 1359 	movs.w	r3, r9, lsr #5
   2a762:	d021      	beq.n	2a7a8 <gpio_nrfx_pin_interrupt_configure+0xbc>
   2a764:	2b01      	cmp	r3, #1
   2a766:	d122      	bne.n	2a7ae <gpio_nrfx_pin_interrupt_configure+0xc2>
            mask = P1_FEATURE_PINS_PRESENT;
   2a768:	f240 33ff 	movw	r3, #1023	; 0x3ff
    pin_number &= 0x1F;
   2a76c:	f009 021f 	and.w	r2, r9, #31
    return (mask & (1UL << pin_number)) ? true : false;
   2a770:	40d3      	lsrs	r3, r2
    NRFX_ASSERT(nrf_gpio_pin_present_check(*p_pin));
   2a772:	f013 0f01 	tst.w	r3, #1
   2a776:	d01c      	beq.n	2a7b2 <gpio_nrfx_pin_interrupt_configure+0xc6>
    *p_pin = pin_number & 0x1F;
   2a778:	f009 0a1f 	and.w	sl, r9, #31
    switch (nrf_gpio_pin_port_number_extract(p_pin))
   2a77c:	ea5f 1959 	movs.w	r9, r9, lsr #5
   2a780:	d025      	beq.n	2a7ce <gpio_nrfx_pin_interrupt_configure+0xe2>
   2a782:	f1b9 0f01 	cmp.w	r9, #1
   2a786:	d025      	beq.n	2a7d4 <gpio_nrfx_pin_interrupt_configure+0xe8>
            NRFX_ASSERT(0);
   2a788:	f8df 9090 	ldr.w	r9, [pc, #144]	; 2a81c <gpio_nrfx_pin_interrupt_configure+0x130>
   2a78c:	f240 2219 	movw	r2, #537	; 0x219
   2a790:	4649      	mov	r1, r9
   2a792:	4820      	ldr	r0, [pc, #128]	; (2a814 <gpio_nrfx_pin_interrupt_configure+0x128>)
   2a794:	f008 fe09 	bl	333aa <printk>
   2a798:	f240 2119 	movw	r1, #537	; 0x219
   2a79c:	4648      	mov	r0, r9
   2a79e:	f009 f99d 	bl	33adc <assert_post_action>
        case 0: return NRF_P0;
   2a7a2:	f04f 43a0 	mov.w	r3, #1342177280	; 0x50000000
   2a7a6:	e016      	b.n	2a7d6 <gpio_nrfx_pin_interrupt_configure+0xea>
            mask = P0_FEATURE_PINS_PRESENT;
   2a7a8:	f04f 33ff 	mov.w	r3, #4294967295
   2a7ac:	e7de      	b.n	2a76c <gpio_nrfx_pin_interrupt_configure+0x80>
    switch (port)
   2a7ae:	2300      	movs	r3, #0
   2a7b0:	e7dc      	b.n	2a76c <gpio_nrfx_pin_interrupt_configure+0x80>
    NRFX_ASSERT(nrf_gpio_pin_present_check(*p_pin));
   2a7b2:	f8df a068 	ldr.w	sl, [pc, #104]	; 2a81c <gpio_nrfx_pin_interrupt_configure+0x130>
   2a7b6:	f44f 7205 	mov.w	r2, #532	; 0x214
   2a7ba:	4651      	mov	r1, sl
   2a7bc:	4815      	ldr	r0, [pc, #84]	; (2a814 <gpio_nrfx_pin_interrupt_configure+0x128>)
   2a7be:	f008 fdf4 	bl	333aa <printk>
   2a7c2:	f44f 7105 	mov.w	r1, #532	; 0x214
   2a7c6:	4650      	mov	r0, sl
   2a7c8:	f009 f988 	bl	33adc <assert_post_action>
   2a7cc:	e7d4      	b.n	2a778 <gpio_nrfx_pin_interrupt_configure+0x8c>
        case 0: return NRF_P0;
   2a7ce:	f04f 43a0 	mov.w	r3, #1342177280	; 0x50000000
   2a7d2:	e000      	b.n	2a7d6 <gpio_nrfx_pin_interrupt_configure+0xea>
    switch (nrf_gpio_pin_port_number_extract(p_pin))
   2a7d4:	4b10      	ldr	r3, [pc, #64]	; (2a818 <gpio_nrfx_pin_interrupt_configure+0x12c>)
    return (nrf_gpio_pin_dir_t)((reg->PIN_CNF[pin_number] &
   2a7d6:	f50a 7ae0 	add.w	sl, sl, #448	; 0x1c0
   2a7da:	f853 302a 	ldr.w	r3, [r3, sl, lsl #2]
	    (mode == GPIO_INT_MODE_EDGE) &&
   2a7de:	f013 0f01 	tst.w	r3, #1
   2a7e2:	d093      	beq.n	2a70c <gpio_nrfx_pin_interrupt_configure+0x20>
		return -ENOTSUP;
   2a7e4:	f06f 0085 	mvn.w	r0, #133	; 0x85
   2a7e8:	e7b7      	b.n	2a75a <gpio_nrfx_pin_interrupt_configure+0x6e>
	WRITE_BIT(data->pin_int_en, pin, mode != GPIO_INT_MODE_DISABLED);
   2a7ea:	68eb      	ldr	r3, [r5, #12]
   2a7ec:	2201      	movs	r2, #1
   2a7ee:	40a2      	lsls	r2, r4
   2a7f0:	ea23 0302 	bic.w	r3, r3, r2
   2a7f4:	e791      	b.n	2a71a <gpio_nrfx_pin_interrupt_configure+0x2e>
	WRITE_BIT(data->trig_edge, pin, mode == GPIO_INT_MODE_EDGE);
   2a7f6:	696b      	ldr	r3, [r5, #20]
   2a7f8:	2201      	movs	r2, #1
   2a7fa:	40a2      	lsls	r2, r4
   2a7fc:	4313      	orrs	r3, r2
   2a7fe:	e795      	b.n	2a72c <gpio_nrfx_pin_interrupt_configure+0x40>
	WRITE_BIT(data->double_edge, pin, trig == GPIO_INT_TRIG_BOTH);
   2a800:	69ab      	ldr	r3, [r5, #24]
   2a802:	2201      	movs	r2, #1
   2a804:	40a2      	lsls	r2, r4
   2a806:	4313      	orrs	r3, r2
   2a808:	e799      	b.n	2a73e <gpio_nrfx_pin_interrupt_configure+0x52>
	WRITE_BIT(data->int_active_level, pin, trig == GPIO_INT_TRIG_HIGH);
   2a80a:	692b      	ldr	r3, [r5, #16]
   2a80c:	2201      	movs	r2, #1
   2a80e:	40a2      	lsls	r2, r4
   2a810:	4313      	orrs	r3, r2
   2a812:	e79d      	b.n	2a750 <gpio_nrfx_pin_interrupt_configure+0x64>
   2a814:	0003bdac 	.word	0x0003bdac
   2a818:	50000300 	.word	0x50000300
   2a81c:	0003ebf4 	.word	0x0003ebf4

0002a820 <nvmc_wait_ready>:

#ifndef NRF_DECLARE_ONLY

NRF_STATIC_INLINE bool nrf_nvmc_ready_check(NRF_NVMC_Type const * p_reg)
{
    return (bool)(p_reg->READY & NVMC_READY_READY_Msk);
   2a820:	4b03      	ldr	r3, [pc, #12]	; (2a830 <nvmc_wait_ready+0x10>)
   2a822:	f8d3 3400 	ldr.w	r3, [r3, #1024]	; 0x400
#endif /* CONFIG_SOC_FLASH_NRF_UICR */
}

static void nvmc_wait_ready(void)
{
	while (!nrfx_nvmc_write_done_check()) {
   2a826:	f013 0f01 	tst.w	r3, #1
   2a82a:	d0f9      	beq.n	2a820 <nvmc_wait_ready>
	}
}
   2a82c:	4770      	bx	lr
   2a82e:	bf00      	nop
   2a830:	4001e000 	.word	0x4001e000

0002a834 <flash_nrf_pages_layout>:

static void flash_nrf_pages_layout(const struct device *dev,
				     const struct flash_pages_layout **layout,
				     size_t *layout_size)
{
	*layout = &dev_layout;
   2a834:	4b02      	ldr	r3, [pc, #8]	; (2a840 <flash_nrf_pages_layout+0xc>)
   2a836:	600b      	str	r3, [r1, #0]
	*layout_size = 1;
   2a838:	2301      	movs	r3, #1
   2a83a:	6013      	str	r3, [r2, #0]
}
   2a83c:	4770      	bx	lr
   2a83e:	bf00      	nop
   2a840:	200024e8 	.word	0x200024e8

0002a844 <flash_nrf_get_parameters>:
flash_nrf_get_parameters(const struct device *dev)
{
	ARG_UNUSED(dev);

	return &flash_nrf_parameters;
}
   2a844:	4800      	ldr	r0, [pc, #0]	; (2a848 <flash_nrf_get_parameters+0x4>)
   2a846:	4770      	bx	lr
   2a848:	0003ed04 	.word	0x0003ed04

0002a84c <erase_synchronously>:
		 &flash_nrf_api);

#ifndef CONFIG_SOC_FLASH_NRF_RADIO_SYNC_NONE

static int erase_synchronously(uint32_t addr, uint32_t size)
{
   2a84c:	b500      	push	{lr}
   2a84e:	b087      	sub	sp, #28
	struct flash_context context = {
   2a850:	ab02      	add	r3, sp, #8
   2a852:	2200      	movs	r2, #0
   2a854:	9202      	str	r2, [sp, #8]
   2a856:	9205      	str	r2, [sp, #20]
   2a858:	9003      	str	r0, [sp, #12]
   2a85a:	9104      	str	r1, [sp, #16]
   2a85c:	2201      	movs	r2, #1
   2a85e:	f88d 2014 	strb.w	r2, [sp, #20]
#if defined(CONFIG_SOC_FLASH_NRF_PARTIAL_ERASE)
		.flash_addr_next = addr
#endif
	};

	struct flash_op_desc flash_op_desc = {
   2a862:	4a06      	ldr	r2, [pc, #24]	; (2a87c <erase_synchronously+0x30>)
   2a864:	9200      	str	r2, [sp, #0]
   2a866:	9301      	str	r3, [sp, #4]
		.handler = erase_op,
		.context = &context
	};

	nrf_flash_sync_set_context(FLASH_SLOT_ERASE);
   2a868:	4805      	ldr	r0, [pc, #20]	; (2a880 <erase_synchronously+0x34>)
   2a86a:	f002 f835 	bl	2c8d8 <nrf_flash_sync_set_context>
	return nrf_flash_sync_exe(&flash_op_desc);
   2a86e:	4668      	mov	r0, sp
   2a870:	f002 f838 	bl	2c8e4 <nrf_flash_sync_exe>
}
   2a874:	b007      	add	sp, #28
   2a876:	f85d fb04 	ldr.w	pc, [sp], #4
   2a87a:	bf00      	nop
   2a87c:	0003933d 	.word	0x0003933d
   2a880:	00015e64 	.word	0x00015e64

0002a884 <write_synchronously>:

static int write_synchronously(off_t addr, const void *data, size_t len)
{
   2a884:	b500      	push	{lr}
   2a886:	b087      	sub	sp, #28
	struct flash_context context = {
   2a888:	9102      	str	r1, [sp, #8]
   2a88a:	9003      	str	r0, [sp, #12]
   2a88c:	9204      	str	r2, [sp, #16]
   2a88e:	2301      	movs	r3, #1
   2a890:	f88d 3014 	strb.w	r3, [sp, #20]
		.flash_addr = addr,
		.len = len,
		.enable_time_limit = 1 /* enable time limit */
	};

	struct flash_op_desc flash_op_desc = {
   2a894:	4b06      	ldr	r3, [pc, #24]	; (2a8b0 <write_synchronously+0x2c>)
   2a896:	9300      	str	r3, [sp, #0]
   2a898:	ab02      	add	r3, sp, #8
   2a89a:	9301      	str	r3, [sp, #4]
		.handler = write_op,
		.context = &context
	};

	nrf_flash_sync_set_context(FLASH_SLOT_WRITE);
   2a89c:	f641 504c 	movw	r0, #7500	; 0x1d4c
   2a8a0:	f002 f81a 	bl	2c8d8 <nrf_flash_sync_set_context>
	return nrf_flash_sync_exe(&flash_op_desc);
   2a8a4:	4668      	mov	r0, sp
   2a8a6:	f002 f81d 	bl	2c8e4 <nrf_flash_sync_exe>
}
   2a8aa:	b007      	add	sp, #28
   2a8ac:	f85d fb04 	ldr.w	pc, [sp], #4
   2a8b0:	000393a1 	.word	0x000393a1

0002a8b4 <flash_nrf_erase>:
{
   2a8b4:	b570      	push	{r4, r5, r6, lr}
   2a8b6:	460c      	mov	r4, r1
   2a8b8:	4615      	mov	r5, r2
	uint32_t pg_size = nrfx_nvmc_flash_page_size_get();
   2a8ba:	f00f fd12 	bl	3a2e2 <nrfx_nvmc_flash_page_size_get>
   2a8be:	4606      	mov	r6, r0
	size_t flash_size = nrfx_nvmc_flash_size_get();
   2a8c0:	f00f fd0b 	bl	3a2da <nrfx_nvmc_flash_size_get>
	if (addr >= flash_size ||
   2a8c4:	4284      	cmp	r4, r0
   2a8c6:	d214      	bcs.n	2a8f2 <flash_nrf_erase+0x3e>
   2a8c8:	2c00      	cmp	r4, #0
   2a8ca:	db12      	blt.n	2a8f2 <flash_nrf_erase+0x3e>
	    addr < 0 ||
   2a8cc:	42a8      	cmp	r0, r5
   2a8ce:	d310      	bcc.n	2a8f2 <flash_nrf_erase+0x3e>
	    (addr) + len > flash_size) {
   2a8d0:	1963      	adds	r3, r4, r5
	    len > flash_size ||
   2a8d2:	4283      	cmp	r3, r0
   2a8d4:	d80d      	bhi.n	2a8f2 <flash_nrf_erase+0x3e>
		if (((addr % pg_size) != 0) || ((size % pg_size) != 0)) {
   2a8d6:	fbb4 f3f6 	udiv	r3, r4, r6
   2a8da:	fb06 4313 	mls	r3, r6, r3, r4
   2a8de:	b993      	cbnz	r3, 2a906 <flash_nrf_erase+0x52>
   2a8e0:	fbb5 f3f6 	udiv	r3, r5, r6
   2a8e4:	fb06 5313 	mls	r3, r6, r3, r5
   2a8e8:	b96b      	cbnz	r3, 2a906 <flash_nrf_erase+0x52>
		if (!n_pages) {
   2a8ea:	42b5      	cmp	r5, r6
   2a8ec:	d214      	bcs.n	2a918 <flash_nrf_erase+0x64>
			return 0;
   2a8ee:	2400      	movs	r4, #0
   2a8f0:	e007      	b.n	2a902 <flash_nrf_erase+0x4e>
		LOG_ERR("invalid address: 0x%08lx:%zu",
   2a8f2:	462b      	mov	r3, r5
   2a8f4:	4622      	mov	r2, r4
   2a8f6:	2145      	movs	r1, #69	; 0x45
   2a8f8:	4814      	ldr	r0, [pc, #80]	; (2a94c <flash_nrf_erase+0x98>)
   2a8fa:	f009 f8f7 	bl	33aec <z_log_minimal_printk>
		return -EINVAL;
   2a8fe:	f06f 0415 	mvn.w	r4, #21
}
   2a902:	4620      	mov	r0, r4
   2a904:	bd70      	pop	{r4, r5, r6, pc}
			LOG_ERR("unaligned address: 0x%08lx:%zu",
   2a906:	462b      	mov	r3, r5
   2a908:	4622      	mov	r2, r4
   2a90a:	2145      	movs	r1, #69	; 0x45
   2a90c:	4810      	ldr	r0, [pc, #64]	; (2a950 <flash_nrf_erase+0x9c>)
   2a90e:	f009 f8ed 	bl	33aec <z_log_minimal_printk>
			return -EINVAL;
   2a912:	f06f 0415 	mvn.w	r4, #21
   2a916:	e7f4      	b.n	2a902 <flash_nrf_erase+0x4e>
	return z_impl_k_sem_take(sem, timeout);
   2a918:	f04f 32ff 	mov.w	r2, #4294967295
   2a91c:	f04f 33ff 	mov.w	r3, #4294967295
   2a920:	480c      	ldr	r0, [pc, #48]	; (2a954 <flash_nrf_erase+0xa0>)
   2a922:	f005 fb3f 	bl	2ffa4 <z_impl_k_sem_take>
	if (nrf_flash_sync_is_required()) {
   2a926:	f00f fb87 	bl	3a038 <nrf_flash_sync_is_required>
   2a92a:	b140      	cbz	r0, 2a93e <flash_nrf_erase+0x8a>
		ret = erase_synchronously(addr, size);
   2a92c:	4629      	mov	r1, r5
   2a92e:	4620      	mov	r0, r4
   2a930:	f7ff ff8c 	bl	2a84c <erase_synchronously>
   2a934:	4604      	mov	r4, r0
	z_impl_k_sem_give(sem);
   2a936:	4807      	ldr	r0, [pc, #28]	; (2a954 <flash_nrf_erase+0xa0>)
   2a938:	f005 faf4 	bl	2ff24 <z_impl_k_sem_give>
	return ret;
   2a93c:	e7e1      	b.n	2a902 <flash_nrf_erase+0x4e>
		ret = erase(addr, size);
   2a93e:	4629      	mov	r1, r5
   2a940:	4620      	mov	r0, r4
   2a942:	f00e fd20 	bl	39386 <erase>
   2a946:	4604      	mov	r4, r0
   2a948:	e7f5      	b.n	2a936 <flash_nrf_erase+0x82>
   2a94a:	bf00      	nop
   2a94c:	0003ec74 	.word	0x0003ec74
   2a950:	0003ec98 	.word	0x0003ec98
   2a954:	200024f0 	.word	0x200024f0

0002a958 <flash_nrf_write>:
{
   2a958:	b570      	push	{r4, r5, r6, lr}
   2a95a:	460c      	mov	r4, r1
   2a95c:	4616      	mov	r6, r2
   2a95e:	461d      	mov	r5, r3
	size_t flash_size = nrfx_nvmc_flash_size_get();
   2a960:	f00f fcbb 	bl	3a2da <nrfx_nvmc_flash_size_get>
	if (addr >= flash_size ||
   2a964:	42a0      	cmp	r0, r4
   2a966:	d90f      	bls.n	2a988 <flash_nrf_write+0x30>
   2a968:	2c00      	cmp	r4, #0
   2a96a:	db0d      	blt.n	2a988 <flash_nrf_write+0x30>
	    addr < 0 ||
   2a96c:	42a8      	cmp	r0, r5
   2a96e:	d30b      	bcc.n	2a988 <flash_nrf_write+0x30>
	    (addr) + len > flash_size) {
   2a970:	1963      	adds	r3, r4, r5
	    len > flash_size ||
   2a972:	4298      	cmp	r0, r3
   2a974:	d308      	bcc.n	2a988 <flash_nrf_write+0x30>
	if (!is_aligned_32(addr) || (len % sizeof(uint32_t))) {
   2a976:	f014 0f03 	tst.w	r4, #3
   2a97a:	d10f      	bne.n	2a99c <flash_nrf_write+0x44>
   2a97c:	f015 0f03 	tst.w	r5, #3
   2a980:	d10c      	bne.n	2a99c <flash_nrf_write+0x44>
	if (!len) {
   2a982:	b9a5      	cbnz	r5, 2a9ae <flash_nrf_write+0x56>
		return 0;
   2a984:	2400      	movs	r4, #0
   2a986:	e007      	b.n	2a998 <flash_nrf_write+0x40>
		LOG_ERR("invalid address: 0x%08lx:%zu",
   2a988:	462b      	mov	r3, r5
   2a98a:	4622      	mov	r2, r4
   2a98c:	2145      	movs	r1, #69	; 0x45
   2a98e:	4815      	ldr	r0, [pc, #84]	; (2a9e4 <flash_nrf_write+0x8c>)
   2a990:	f009 f8ac 	bl	33aec <z_log_minimal_printk>
		return -EINVAL;
   2a994:	f06f 0415 	mvn.w	r4, #21
}
   2a998:	4620      	mov	r0, r4
   2a99a:	bd70      	pop	{r4, r5, r6, pc}
		LOG_ERR("not word-aligned: 0x%08lx:%zu",
   2a99c:	462b      	mov	r3, r5
   2a99e:	4622      	mov	r2, r4
   2a9a0:	2145      	movs	r1, #69	; 0x45
   2a9a2:	4811      	ldr	r0, [pc, #68]	; (2a9e8 <flash_nrf_write+0x90>)
   2a9a4:	f009 f8a2 	bl	33aec <z_log_minimal_printk>
		return -EINVAL;
   2a9a8:	f06f 0415 	mvn.w	r4, #21
   2a9ac:	e7f4      	b.n	2a998 <flash_nrf_write+0x40>
	return z_impl_k_sem_take(sem, timeout);
   2a9ae:	f04f 32ff 	mov.w	r2, #4294967295
   2a9b2:	f04f 33ff 	mov.w	r3, #4294967295
   2a9b6:	480d      	ldr	r0, [pc, #52]	; (2a9ec <flash_nrf_write+0x94>)
   2a9b8:	f005 faf4 	bl	2ffa4 <z_impl_k_sem_take>
	if (nrf_flash_sync_is_required()) {
   2a9bc:	f00f fb3c 	bl	3a038 <nrf_flash_sync_is_required>
   2a9c0:	b148      	cbz	r0, 2a9d6 <flash_nrf_write+0x7e>
		ret = write_synchronously(addr, data, len);
   2a9c2:	462a      	mov	r2, r5
   2a9c4:	4631      	mov	r1, r6
   2a9c6:	4620      	mov	r0, r4
   2a9c8:	f7ff ff5c 	bl	2a884 <write_synchronously>
   2a9cc:	4604      	mov	r4, r0
	z_impl_k_sem_give(sem);
   2a9ce:	4807      	ldr	r0, [pc, #28]	; (2a9ec <flash_nrf_write+0x94>)
   2a9d0:	f005 faa8 	bl	2ff24 <z_impl_k_sem_give>
	return ret;
   2a9d4:	e7e0      	b.n	2a998 <flash_nrf_write+0x40>
		ret = write(addr, data, len);
   2a9d6:	462a      	mov	r2, r5
   2a9d8:	4631      	mov	r1, r6
   2a9da:	4620      	mov	r0, r4
   2a9dc:	f00e fd05 	bl	393ea <write>
   2a9e0:	4604      	mov	r4, r0
   2a9e2:	e7f4      	b.n	2a9ce <flash_nrf_write+0x76>
   2a9e4:	0003ec74 	.word	0x0003ec74
   2a9e8:	0003ecbc 	.word	0x0003ecbc
   2a9ec:	200024f0 	.word	0x200024f0

0002a9f0 <flash_nrf_read>:
{
   2a9f0:	b570      	push	{r4, r5, r6, lr}
   2a9f2:	460c      	mov	r4, r1
   2a9f4:	4616      	mov	r6, r2
   2a9f6:	461d      	mov	r5, r3
	size_t flash_size = nrfx_nvmc_flash_size_get();
   2a9f8:	f00f fc6f 	bl	3a2da <nrfx_nvmc_flash_size_get>
	if (addr >= flash_size ||
   2a9fc:	42a0      	cmp	r0, r4
   2a9fe:	d909      	bls.n	2aa14 <flash_nrf_read+0x24>
   2aa00:	2c00      	cmp	r4, #0
   2aa02:	db07      	blt.n	2aa14 <flash_nrf_read+0x24>
	    addr < 0 ||
   2aa04:	42a8      	cmp	r0, r5
   2aa06:	d305      	bcc.n	2aa14 <flash_nrf_read+0x24>
	    (addr) + len > flash_size) {
   2aa08:	1963      	adds	r3, r4, r5
	    len > flash_size ||
   2aa0a:	4298      	cmp	r0, r3
   2aa0c:	d302      	bcc.n	2aa14 <flash_nrf_read+0x24>
	if (!len) {
   2aa0e:	b955      	cbnz	r5, 2aa26 <flash_nrf_read+0x36>
		return 0;
   2aa10:	2000      	movs	r0, #0
   2aa12:	e007      	b.n	2aa24 <flash_nrf_read+0x34>
		LOG_ERR("invalid address: 0x%08lx:%zu",
   2aa14:	462b      	mov	r3, r5
   2aa16:	4622      	mov	r2, r4
   2aa18:	2145      	movs	r1, #69	; 0x45
   2aa1a:	4806      	ldr	r0, [pc, #24]	; (2aa34 <flash_nrf_read+0x44>)
   2aa1c:	f009 f866 	bl	33aec <z_log_minimal_printk>
		return -EINVAL;
   2aa20:	f06f 0015 	mvn.w	r0, #21
}
   2aa24:	bd70      	pop	{r4, r5, r6, pc}
	memcpy(data, (void *)addr, len);
   2aa26:	462a      	mov	r2, r5
   2aa28:	4621      	mov	r1, r4
   2aa2a:	4630      	mov	r0, r6
   2aa2c:	f00b f866 	bl	35afc <memcpy>
	return 0;
   2aa30:	2000      	movs	r0, #0
   2aa32:	e7f7      	b.n	2aa24 <flash_nrf_read+0x34>
   2aa34:	0003ec74 	.word	0x0003ec74

0002aa38 <nrf_flash_init>:
{
   2aa38:	b510      	push	{r4, lr}
	return z_impl_k_sem_init(sem, initial_count, limit);
   2aa3a:	2201      	movs	r2, #1
   2aa3c:	4611      	mov	r1, r2
   2aa3e:	4807      	ldr	r0, [pc, #28]	; (2aa5c <nrf_flash_init+0x24>)
   2aa40:	f010 fbec 	bl	3b21c <z_impl_k_sem_init>
	nrf_flash_sync_init();
   2aa44:	f001 ff3e 	bl	2c8c4 <nrf_flash_sync_init>
	dev_layout.pages_count = nrfx_nvmc_flash_page_count_get();
   2aa48:	f00f fc4f 	bl	3a2ea <nrfx_nvmc_flash_page_count_get>
   2aa4c:	4c04      	ldr	r4, [pc, #16]	; (2aa60 <nrf_flash_init+0x28>)
   2aa4e:	6020      	str	r0, [r4, #0]
	dev_layout.pages_size = nrfx_nvmc_flash_page_size_get();
   2aa50:	f00f fc47 	bl	3a2e2 <nrfx_nvmc_flash_page_size_get>
   2aa54:	6060      	str	r0, [r4, #4]
}
   2aa56:	2000      	movs	r0, #0
   2aa58:	bd10      	pop	{r4, pc}
   2aa5a:	bf00      	nop
   2aa5c:	200024f0 	.word	0x200024f0
   2aa60:	200024e8 	.word	0x200024e8

0002aa64 <baudrate_set>:
	return dev->data;
}

static inline const struct uarte_nrfx_config *get_dev_config(const struct device *dev)
{
	return dev->config;
   2aa64:	6843      	ldr	r3, [r0, #4]

static inline NRF_UARTE_Type *get_uarte_instance(const struct device *dev)
{
	const struct uarte_nrfx_config *config = get_dev_config(dev);

	return config->uarte_regs;
   2aa66:	681a      	ldr	r2, [r3, #0]
static int baudrate_set(const struct device *dev, uint32_t baudrate)
{
	nrf_uarte_baudrate_t nrf_baudrate; /* calculated baudrate divisor */
	NRF_UARTE_Type *uarte = get_uarte_instance(dev);

	switch (baudrate) {
   2aa68:	f5b1 4f16 	cmp.w	r1, #38400	; 0x9600
   2aa6c:	d06f      	beq.n	2ab4e <baudrate_set+0xea>
   2aa6e:	d83a      	bhi.n	2aae6 <baudrate_set+0x82>
   2aa70:	f5b1 5f16 	cmp.w	r1, #9600	; 0x2580
   2aa74:	d06e      	beq.n	2ab54 <baudrate_set+0xf0>
   2aa76:	d90a      	bls.n	2aa8e <baudrate_set+0x2a>
   2aa78:	f5b1 4fe1 	cmp.w	r1, #28800	; 0x7080
   2aa7c:	d075      	beq.n	2ab6a <baudrate_set+0x106>
   2aa7e:	d924      	bls.n	2aaca <baudrate_set+0x66>
   2aa80:	f647 2312 	movw	r3, #31250	; 0x7a12
   2aa84:	4299      	cmp	r1, r3
   2aa86:	d12b      	bne.n	2aae0 <baudrate_set+0x7c>
		break;
	case 28800:
		nrf_baudrate = NRF_UARTE_BAUDRATE_28800;
		break;
	case 31250:
		nrf_baudrate = NRF_UARTE_BAUDRATE_31250;
   2aa88:	f44f 0300 	mov.w	r3, #8388608	; 0x800000
   2aa8c:	e013      	b.n	2aab6 <baudrate_set+0x52>
	switch (baudrate) {
   2aa8e:	f5b1 6f96 	cmp.w	r1, #1200	; 0x4b0
   2aa92:	d061      	beq.n	2ab58 <baudrate_set+0xf4>
   2aa94:	d907      	bls.n	2aaa6 <baudrate_set+0x42>
   2aa96:	f5b1 6f16 	cmp.w	r1, #2400	; 0x960
   2aa9a:	d063      	beq.n	2ab64 <baudrate_set+0x100>
   2aa9c:	f5b1 5f96 	cmp.w	r1, #4800	; 0x12c0
   2aaa0:	d110      	bne.n	2aac4 <baudrate_set+0x60>
		nrf_baudrate = NRF_UARTE_BAUDRATE_4800;
   2aaa2:	4b3c      	ldr	r3, [pc, #240]	; (2ab94 <baudrate_set+0x130>)
   2aaa4:	e007      	b.n	2aab6 <baudrate_set+0x52>
	switch (baudrate) {
   2aaa6:	f5b1 7f96 	cmp.w	r1, #300	; 0x12c
   2aaaa:	d058      	beq.n	2ab5e <baudrate_set+0xfa>
   2aaac:	f5b1 7f16 	cmp.w	r1, #600	; 0x258
   2aab0:	d105      	bne.n	2aabe <baudrate_set+0x5a>
		nrf_baudrate = 0x00027000;
   2aab2:	f44f 331c 	mov.w	r3, #159744	; 0x27000
                    | (uint32_t)p_cfg->hwfc;
}

NRF_STATIC_INLINE void nrf_uarte_baudrate_set(NRF_UARTE_Type * p_reg, nrf_uarte_baudrate_t baudrate)
{
    p_reg->BAUDRATE = baudrate;
   2aab6:	f8c2 3524 	str.w	r3, [r2, #1316]	; 0x524
		return -EINVAL;
	}

	nrf_uarte_baudrate_set(uarte, nrf_baudrate);

	return 0;
   2aaba:	2000      	movs	r0, #0
   2aabc:	4770      	bx	lr
	switch (baudrate) {
   2aabe:	f06f 0015 	mvn.w	r0, #21
   2aac2:	4770      	bx	lr
   2aac4:	f06f 0015 	mvn.w	r0, #21
   2aac8:	4770      	bx	lr
   2aaca:	f5b1 5f61 	cmp.w	r1, #14400	; 0x3840
   2aace:	d04e      	beq.n	2ab6e <baudrate_set+0x10a>
   2aad0:	f5b1 4f96 	cmp.w	r1, #19200	; 0x4b00
   2aad4:	d101      	bne.n	2aada <baudrate_set+0x76>
		nrf_baudrate = NRF_UARTE_BAUDRATE_19200;
   2aad6:	4b30      	ldr	r3, [pc, #192]	; (2ab98 <baudrate_set+0x134>)
   2aad8:	e7ed      	b.n	2aab6 <baudrate_set+0x52>
	switch (baudrate) {
   2aada:	f06f 0015 	mvn.w	r0, #21
   2aade:	4770      	bx	lr
   2aae0:	f06f 0015 	mvn.w	r0, #21
   2aae4:	4770      	bx	lr
   2aae6:	f5b1 3f61 	cmp.w	r1, #230400	; 0x38400
   2aaea:	d042      	beq.n	2ab72 <baudrate_set+0x10e>
   2aaec:	d909      	bls.n	2ab02 <baudrate_set+0x9e>
   2aaee:	f5b1 2f61 	cmp.w	r1, #921600	; 0xe1000
   2aaf2:	d046      	beq.n	2ab82 <baudrate_set+0x11e>
   2aaf4:	d91f      	bls.n	2ab36 <baudrate_set+0xd2>
   2aaf6:	4b29      	ldr	r3, [pc, #164]	; (2ab9c <baudrate_set+0x138>)
   2aaf8:	4299      	cmp	r1, r3
   2aafa:	d148      	bne.n	2ab8e <baudrate_set+0x12a>
		nrf_baudrate = NRF_UARTE_BAUDRATE_1000000;
   2aafc:	f04f 5380 	mov.w	r3, #268435456	; 0x10000000
   2ab00:	e7d9      	b.n	2aab6 <baudrate_set+0x52>
	switch (baudrate) {
   2ab02:	f5b1 3f96 	cmp.w	r1, #76800	; 0x12c00
   2ab06:	d037      	beq.n	2ab78 <baudrate_set+0x114>
   2ab08:	d905      	bls.n	2ab16 <baudrate_set+0xb2>
   2ab0a:	f5b1 3fe1 	cmp.w	r1, #115200	; 0x1c200
   2ab0e:	d10f      	bne.n	2ab30 <baudrate_set+0xcc>
		nrf_baudrate = NRF_UARTE_BAUDRATE_115200;
   2ab10:	f04f 73eb 	mov.w	r3, #30801920	; 0x1d60000
   2ab14:	e7cf      	b.n	2aab6 <baudrate_set+0x52>
	switch (baudrate) {
   2ab16:	f64d 23c0 	movw	r3, #56000	; 0xdac0
   2ab1a:	4299      	cmp	r1, r3
   2ab1c:	d02e      	beq.n	2ab7c <baudrate_set+0x118>
   2ab1e:	f5b1 4f61 	cmp.w	r1, #57600	; 0xe100
   2ab22:	d102      	bne.n	2ab2a <baudrate_set+0xc6>
		nrf_baudrate = NRF_UARTE_BAUDRATE_57600;
   2ab24:	f44f 036b 	mov.w	r3, #15400960	; 0xeb0000
   2ab28:	e7c5      	b.n	2aab6 <baudrate_set+0x52>
	switch (baudrate) {
   2ab2a:	f06f 0015 	mvn.w	r0, #21
   2ab2e:	4770      	bx	lr
   2ab30:	f06f 0015 	mvn.w	r0, #21
   2ab34:	4770      	bx	lr
   2ab36:	4b1a      	ldr	r3, [pc, #104]	; (2aba0 <baudrate_set+0x13c>)
   2ab38:	4299      	cmp	r1, r3
   2ab3a:	d025      	beq.n	2ab88 <baudrate_set+0x124>
   2ab3c:	f5b1 2fe1 	cmp.w	r1, #460800	; 0x70800
   2ab40:	d102      	bne.n	2ab48 <baudrate_set+0xe4>
		nrf_baudrate = NRF_UARTE_BAUDRATE_460800;
   2ab42:	f04f 63e8 	mov.w	r3, #121634816	; 0x7400000
   2ab46:	e7b6      	b.n	2aab6 <baudrate_set+0x52>
	switch (baudrate) {
   2ab48:	f06f 0015 	mvn.w	r0, #21
   2ab4c:	4770      	bx	lr
		nrf_baudrate = NRF_UARTE_BAUDRATE_38400;
   2ab4e:	f44f 031d 	mov.w	r3, #10289152	; 0x9d0000
   2ab52:	e7b0      	b.n	2aab6 <baudrate_set+0x52>
		nrf_baudrate = NRF_UARTE_BAUDRATE_9600;
   2ab54:	4b13      	ldr	r3, [pc, #76]	; (2aba4 <baudrate_set+0x140>)
   2ab56:	e7ae      	b.n	2aab6 <baudrate_set+0x52>
		nrf_baudrate = NRF_UARTE_BAUDRATE_1200;
   2ab58:	f44f 239e 	mov.w	r3, #323584	; 0x4f000
   2ab5c:	e7ab      	b.n	2aab6 <baudrate_set+0x52>
	switch (baudrate) {
   2ab5e:	f44f 33a0 	mov.w	r3, #81920	; 0x14000
   2ab62:	e7a8      	b.n	2aab6 <baudrate_set+0x52>
		nrf_baudrate = NRF_UARTE_BAUDRATE_2400;
   2ab64:	f44f 231d 	mov.w	r3, #643072	; 0x9d000
   2ab68:	e7a5      	b.n	2aab6 <baudrate_set+0x52>
		nrf_baudrate = NRF_UARTE_BAUDRATE_28800;
   2ab6a:	4b0f      	ldr	r3, [pc, #60]	; (2aba8 <baudrate_set+0x144>)
   2ab6c:	e7a3      	b.n	2aab6 <baudrate_set+0x52>
		nrf_baudrate = NRF_UARTE_BAUDRATE_14400;
   2ab6e:	4b0f      	ldr	r3, [pc, #60]	; (2abac <baudrate_set+0x148>)
   2ab70:	e7a1      	b.n	2aab6 <baudrate_set+0x52>
		nrf_baudrate = NRF_UARTE_BAUDRATE_230400;
   2ab72:	f04f 736c 	mov.w	r3, #61865984	; 0x3b00000
   2ab76:	e79e      	b.n	2aab6 <baudrate_set+0x52>
		nrf_baudrate = NRF_UARTE_BAUDRATE_76800;
   2ab78:	4b0d      	ldr	r3, [pc, #52]	; (2abb0 <baudrate_set+0x14c>)
   2ab7a:	e79c      	b.n	2aab6 <baudrate_set+0x52>
		nrf_baudrate = NRF_UARTE_BAUDRATE_56000;
   2ab7c:	f44f 0365 	mov.w	r3, #15007744	; 0xe50000
   2ab80:	e799      	b.n	2aab6 <baudrate_set+0x52>
		nrf_baudrate = NRF_UARTE_BAUDRATE_921600;
   2ab82:	f04f 6370 	mov.w	r3, #251658240	; 0xf000000
   2ab86:	e796      	b.n	2aab6 <baudrate_set+0x52>
		nrf_baudrate = NRF_UARTE_BAUDRATE_250000;
   2ab88:	f04f 6380 	mov.w	r3, #67108864	; 0x4000000
   2ab8c:	e793      	b.n	2aab6 <baudrate_set+0x52>
	switch (baudrate) {
   2ab8e:	f06f 0015 	mvn.w	r0, #21
}
   2ab92:	4770      	bx	lr
   2ab94:	0013b000 	.word	0x0013b000
   2ab98:	004ea000 	.word	0x004ea000
   2ab9c:	000f4240 	.word	0x000f4240
   2aba0:	0003d090 	.word	0x0003d090
   2aba4:	00275000 	.word	0x00275000
   2aba8:	0075c000 	.word	0x0075c000
   2abac:	003af000 	.word	0x003af000
   2abb0:	013a9000 	.word	0x013a9000

0002abb4 <uarte_nrfx_poll_out>:
 *
 * @param dev UARTE device struct
 * @param c Character to send
 */
static void uarte_nrfx_poll_out(const struct device *dev, unsigned char c)
{
   2abb4:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   2abb8:	4605      	mov	r5, r0
   2abba:	460f      	mov	r7, r1
	return dev->data;
   2abbc:	f8d0 8010 	ldr.w	r8, [r0, #16]
	struct uarte_nrfx_data *data = get_dev_data(dev);
	bool isr_mode = k_is_in_isr() || k_is_pre_kernel();
   2abc0:	f010 fab7 	bl	3b132 <k_is_in_isr>
   2abc4:	b920      	cbnz	r0, 2abd0 <uarte_nrfx_poll_out+0x1c>
	return !z_sys_post_kernel;
   2abc6:	4b16      	ldr	r3, [pc, #88]	; (2ac20 <uarte_nrfx_poll_out+0x6c>)
   2abc8:	781b      	ldrb	r3, [r3, #0]
   2abca:	b1ab      	cbz	r3, 2abf8 <uarte_nrfx_poll_out+0x44>
   2abcc:	2300      	movs	r3, #0
   2abce:	e000      	b.n	2abd2 <uarte_nrfx_poll_out+0x1e>
   2abd0:	2301      	movs	r3, #1
	int key;

	if (isr_mode) {
   2abd2:	b19b      	cbz	r3, 2abfc <uarte_nrfx_poll_out+0x48>
	__asm__ volatile(
   2abd4:	f04f 0340 	mov.w	r3, #64	; 0x40
   2abd8:	f3ef 8411 	mrs	r4, BASEPRI
   2abdc:	f383 8812 	msr	BASEPRI_MAX, r3
   2abe0:	f3bf 8f6f 	isb	sy
		while (1) {
			key = irq_lock();
   2abe4:	4626      	mov	r6, r4
			if (is_tx_ready(dev)) {
   2abe6:	4628      	mov	r0, r5
   2abe8:	f00e fd32 	bl	39650 <is_tx_ready>
   2abec:	b950      	cbnz	r0, 2ac04 <uarte_nrfx_poll_out+0x50>
	__asm__ volatile(
   2abee:	f384 8811 	msr	BASEPRI, r4
   2abf2:	f3bf 8f6f 	isb	sy
}
   2abf6:	e7ed      	b.n	2abd4 <uarte_nrfx_poll_out+0x20>
	bool isr_mode = k_is_in_isr() || k_is_pre_kernel();
   2abf8:	2301      	movs	r3, #1
   2abfa:	e7ea      	b.n	2abd2 <uarte_nrfx_poll_out+0x1e>
			}

			irq_unlock(key);
		}
	} else {
		key = wait_tx_ready(dev);
   2abfc:	4628      	mov	r0, r5
   2abfe:	f00e fd76 	bl	396ee <wait_tx_ready>
   2ac02:	4606      	mov	r6, r0
	}

	data->char_out = c;
   2ac04:	4641      	mov	r1, r8
   2ac06:	f801 7f10 	strb.w	r7, [r1, #16]!
	tx_start(dev, &data->char_out, 1);
   2ac0a:	2201      	movs	r2, #1
   2ac0c:	4628      	mov	r0, r5
   2ac0e:	f00e fd39 	bl	39684 <tx_start>
	__asm__ volatile(
   2ac12:	f386 8811 	msr	BASEPRI, r6
   2ac16:	f3bf 8f6f 	isb	sy

	irq_unlock(key);
}
   2ac1a:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
   2ac1e:	bf00      	nop
   2ac20:	200034f0 	.word	0x200034f0

0002ac24 <endtx_stoptx_ppi_init>:
#endif /* UARTE_INTERRUPT_DRIVEN */
};

static int endtx_stoptx_ppi_init(NRF_UARTE_Type *uarte,
				 struct uarte_nrfx_data *data)
{
   2ac24:	b538      	push	{r3, r4, r5, lr}
   2ac26:	4604      	mov	r4, r0
   2ac28:	460d      	mov	r5, r1
	nrfx_err_t ret;

	ret = gppi_channel_alloc(&data->ppi_ch_endtx);
   2ac2a:	f101 0012 	add.w	r0, r1, #18
   2ac2e:	f002 fa63 	bl	2d0f8 <nrfx_ppi_channel_alloc>
	if (ret != NRFX_SUCCESS) {
   2ac32:	4b0e      	ldr	r3, [pc, #56]	; (2ac6c <endtx_stoptx_ppi_init+0x48>)
   2ac34:	4298      	cmp	r0, r3
   2ac36:	d111      	bne.n	2ac5c <endtx_stoptx_ppi_init+0x38>
		LOG_ERR("Failed to allocate PPI Channel");
		return -EIO;
	}

	nrfx_gppi_channel_endpoints_setup(data->ppi_ch_endtx,
   2ac38:	7cab      	ldrb	r3, [r5, #18]
    return (uint32_t)((uint8_t *)p_reg + (uint32_t)event);
   2ac3a:	f504 7190 	add.w	r1, r4, #288	; 0x120
    return (uint32_t)p_reg + (uint32_t)task;
   2ac3e:	340c      	adds	r4, #12
NRF_STATIC_INLINE void nrf_ppi_channel_endpoint_setup(NRF_PPI_Type *    p_reg,
                                                      nrf_ppi_channel_t channel,
                                                      uint32_t          eep,
                                                      uint32_t          tep)
{
    p_reg->CH[(uint32_t) channel].EEP = eep;
   2ac40:	4a0b      	ldr	r2, [pc, #44]	; (2ac70 <endtx_stoptx_ppi_init+0x4c>)
   2ac42:	33a2      	adds	r3, #162	; 0xa2
   2ac44:	f842 1033 	str.w	r1, [r2, r3, lsl #3]
    p_reg->CH[(uint32_t) channel].TEP = tep;
   2ac48:	eb02 03c3 	add.w	r3, r2, r3, lsl #3
   2ac4c:	605c      	str	r4, [r3, #4]
		nrf_uarte_event_address_get(uarte, NRF_UARTE_EVENT_ENDTX),
		nrf_uarte_task_address_get(uarte, NRF_UARTE_TASK_STOPTX));
	nrfx_gppi_channels_enable(BIT(data->ppi_ch_endtx));
   2ac4e:	7ca9      	ldrb	r1, [r5, #18]
   2ac50:	2301      	movs	r3, #1
   2ac52:	408b      	lsls	r3, r1
    p_reg->CHENSET = mask;
   2ac54:	f8c2 3504 	str.w	r3, [r2, #1284]	; 0x504

	return 0;
   2ac58:	2000      	movs	r0, #0
}
   2ac5a:	bd38      	pop	{r3, r4, r5, pc}
		LOG_ERR("Failed to allocate PPI Channel");
   2ac5c:	2145      	movs	r1, #69	; 0x45
   2ac5e:	4805      	ldr	r0, [pc, #20]	; (2ac74 <endtx_stoptx_ppi_init+0x50>)
   2ac60:	f008 ff44 	bl	33aec <z_log_minimal_printk>
		return -EIO;
   2ac64:	f06f 0004 	mvn.w	r0, #4
   2ac68:	e7f7      	b.n	2ac5a <endtx_stoptx_ppi_init+0x36>
   2ac6a:	bf00      	nop
   2ac6c:	0bad0000 	.word	0x0bad0000
   2ac70:	4001f000 	.word	0x4001f000
   2ac74:	0003ed0c 	.word	0x0003ed0c

0002ac78 <uarte_instance_init>:

static int uarte_instance_init(const struct device *dev,
			       uint8_t interrupts_active)
{
   2ac78:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
   2ac7c:	4607      	mov	r7, r0
	return dev->config;
   2ac7e:	6844      	ldr	r4, [r0, #4]
	return config->uarte_regs;
   2ac80:	6825      	ldr	r5, [r4, #0]
	return dev->data;
   2ac82:	f8d0 8010 	ldr.w	r8, [r0, #16]
    p_reg->ENABLE = UARTE_ENABLE_ENABLE_Disabled;
   2ac86:	2300      	movs	r3, #0
   2ac88:	f8c5 3500 	str.w	r3, [r5, #1280]	; 0x500
	struct uarte_nrfx_data *data = get_dev_data(dev);
	const struct uarte_nrfx_config *cfg = get_dev_config(dev);

	nrf_uarte_disable(uarte);

	data->dev = dev;
   2ac8c:	f8c8 0000 	str.w	r0, [r8]

	nrf_gpio_pin_write(cfg->pseltxd, 1);
   2ac90:	68a6      	ldr	r6, [r4, #8]
    switch (port)
   2ac92:	0973      	lsrs	r3, r6, #5
   2ac94:	d01e      	beq.n	2acd4 <uarte_instance_init+0x5c>
   2ac96:	2b01      	cmp	r3, #1
   2ac98:	d11f      	bne.n	2acda <uarte_instance_init+0x62>
            mask = P1_FEATURE_PINS_PRESENT;
   2ac9a:	f240 33ff 	movw	r3, #1023	; 0x3ff
    pin_number &= 0x1F;
   2ac9e:	f006 021f 	and.w	r2, r6, #31
    return (mask & (1UL << pin_number)) ? true : false;
   2aca2:	40d3      	lsrs	r3, r2
    NRFX_ASSERT(nrf_gpio_pin_present_check(*p_pin));
   2aca4:	f013 0f01 	tst.w	r3, #1
   2aca8:	d019      	beq.n	2acde <uarte_instance_init+0x66>
    *p_pin = pin_number & 0x1F;
   2acaa:	f006 091f 	and.w	r9, r6, #31
    switch (nrf_gpio_pin_port_number_extract(p_pin))
   2acae:	0976      	lsrs	r6, r6, #5
   2acb0:	d023      	beq.n	2acfa <uarte_instance_init+0x82>
   2acb2:	2e01      	cmp	r6, #1
   2acb4:	d024      	beq.n	2ad00 <uarte_instance_init+0x88>
            NRFX_ASSERT(0);
   2acb6:	4ebc      	ldr	r6, [pc, #752]	; (2afa8 <uarte_instance_init+0x330>)
   2acb8:	f240 2219 	movw	r2, #537	; 0x219
   2acbc:	4631      	mov	r1, r6
   2acbe:	48bb      	ldr	r0, [pc, #748]	; (2afac <uarte_instance_init+0x334>)
   2acc0:	f008 fb73 	bl	333aa <printk>
   2acc4:	f240 2119 	movw	r1, #537	; 0x219
   2acc8:	4630      	mov	r0, r6
   2acca:	f008 ff07 	bl	33adc <assert_post_action>
        case 0: return NRF_P0;
   2acce:	f04f 42a0 	mov.w	r2, #1342177280	; 0x50000000
   2acd2:	e016      	b.n	2ad02 <uarte_instance_init+0x8a>
            mask = P0_FEATURE_PINS_PRESENT;
   2acd4:	f04f 33ff 	mov.w	r3, #4294967295
   2acd8:	e7e1      	b.n	2ac9e <uarte_instance_init+0x26>
    switch (port)
   2acda:	2300      	movs	r3, #0
   2acdc:	e7df      	b.n	2ac9e <uarte_instance_init+0x26>
    NRFX_ASSERT(nrf_gpio_pin_present_check(*p_pin));
   2acde:	f8df 92c8 	ldr.w	r9, [pc, #712]	; 2afa8 <uarte_instance_init+0x330>
   2ace2:	f44f 7205 	mov.w	r2, #532	; 0x214
   2ace6:	4649      	mov	r1, r9
   2ace8:	48b0      	ldr	r0, [pc, #704]	; (2afac <uarte_instance_init+0x334>)
   2acea:	f008 fb5e 	bl	333aa <printk>
   2acee:	f44f 7105 	mov.w	r1, #532	; 0x214
   2acf2:	4648      	mov	r0, r9
   2acf4:	f008 fef2 	bl	33adc <assert_post_action>
   2acf8:	e7d7      	b.n	2acaa <uarte_instance_init+0x32>
        case 0: return NRF_P0;
   2acfa:	f04f 42a0 	mov.w	r2, #1342177280	; 0x50000000
   2acfe:	e000      	b.n	2ad02 <uarte_instance_init+0x8a>
    switch (nrf_gpio_pin_port_number_extract(p_pin))
   2ad00:	4aab      	ldr	r2, [pc, #684]	; (2afb0 <uarte_instance_init+0x338>)
    nrf_gpio_port_out_set(reg, 1UL << pin_number);
   2ad02:	2301      	movs	r3, #1
   2ad04:	fa03 f309 	lsl.w	r3, r3, r9
    p_reg->OUTSET = set_mask;
   2ad08:	f8c2 3508 	str.w	r3, [r2, #1288]	; 0x508
	nrf_gpio_cfg_output(cfg->pseltxd);
   2ad0c:	68a6      	ldr	r6, [r4, #8]
    switch (port)
   2ad0e:	0973      	lsrs	r3, r6, #5
   2ad10:	d01e      	beq.n	2ad50 <uarte_instance_init+0xd8>
   2ad12:	2b01      	cmp	r3, #1
   2ad14:	d11f      	bne.n	2ad56 <uarte_instance_init+0xde>
            mask = P1_FEATURE_PINS_PRESENT;
   2ad16:	f240 33ff 	movw	r3, #1023	; 0x3ff
    pin_number &= 0x1F;
   2ad1a:	f006 021f 	and.w	r2, r6, #31
    return (mask & (1UL << pin_number)) ? true : false;
   2ad1e:	40d3      	lsrs	r3, r2
    NRFX_ASSERT(nrf_gpio_pin_present_check(*p_pin));
   2ad20:	f013 0f01 	tst.w	r3, #1
   2ad24:	d019      	beq.n	2ad5a <uarte_instance_init+0xe2>
    *p_pin = pin_number & 0x1F;
   2ad26:	f006 091f 	and.w	r9, r6, #31
    switch (nrf_gpio_pin_port_number_extract(p_pin))
   2ad2a:	0976      	lsrs	r6, r6, #5
   2ad2c:	d023      	beq.n	2ad76 <uarte_instance_init+0xfe>
   2ad2e:	2e01      	cmp	r6, #1
   2ad30:	d024      	beq.n	2ad7c <uarte_instance_init+0x104>
            NRFX_ASSERT(0);
   2ad32:	4e9d      	ldr	r6, [pc, #628]	; (2afa8 <uarte_instance_init+0x330>)
   2ad34:	f240 2219 	movw	r2, #537	; 0x219
   2ad38:	4631      	mov	r1, r6
   2ad3a:	489c      	ldr	r0, [pc, #624]	; (2afac <uarte_instance_init+0x334>)
   2ad3c:	f008 fb35 	bl	333aa <printk>
   2ad40:	f240 2119 	movw	r1, #537	; 0x219
   2ad44:	4630      	mov	r0, r6
   2ad46:	f008 fec9 	bl	33adc <assert_post_action>
        case 0: return NRF_P0;
   2ad4a:	f04f 43a0 	mov.w	r3, #1342177280	; 0x50000000
   2ad4e:	e016      	b.n	2ad7e <uarte_instance_init+0x106>
            mask = P0_FEATURE_PINS_PRESENT;
   2ad50:	f04f 33ff 	mov.w	r3, #4294967295
   2ad54:	e7e1      	b.n	2ad1a <uarte_instance_init+0xa2>
    switch (port)
   2ad56:	2300      	movs	r3, #0
   2ad58:	e7df      	b.n	2ad1a <uarte_instance_init+0xa2>
    NRFX_ASSERT(nrf_gpio_pin_present_check(*p_pin));
   2ad5a:	f8df 924c 	ldr.w	r9, [pc, #588]	; 2afa8 <uarte_instance_init+0x330>
   2ad5e:	f44f 7205 	mov.w	r2, #532	; 0x214
   2ad62:	4649      	mov	r1, r9
   2ad64:	4891      	ldr	r0, [pc, #580]	; (2afac <uarte_instance_init+0x334>)
   2ad66:	f008 fb20 	bl	333aa <printk>
   2ad6a:	f44f 7105 	mov.w	r1, #532	; 0x214
   2ad6e:	4648      	mov	r0, r9
   2ad70:	f008 feb4 	bl	33adc <assert_post_action>
   2ad74:	e7d7      	b.n	2ad26 <uarte_instance_init+0xae>
        case 0: return NRF_P0;
   2ad76:	f04f 43a0 	mov.w	r3, #1342177280	; 0x50000000
   2ad7a:	e000      	b.n	2ad7e <uarte_instance_init+0x106>
    switch (nrf_gpio_pin_port_number_extract(p_pin))
   2ad7c:	4b8c      	ldr	r3, [pc, #560]	; (2afb0 <uarte_instance_init+0x338>)
    reg->PIN_CNF[pin_number] = cnf;
   2ad7e:	f509 79e0 	add.w	r9, r9, #448	; 0x1c0
   2ad82:	2203      	movs	r2, #3
   2ad84:	f843 2029 	str.w	r2, [r3, r9, lsl #2]

	if (cfg->pselrxd !=  NRF_UARTE_PSEL_DISCONNECTED) {
   2ad88:	68e6      	ldr	r6, [r4, #12]
   2ad8a:	f1b6 3fff 	cmp.w	r6, #4294967295
   2ad8e:	d152      	bne.n	2ae36 <uarte_instance_init+0x1be>
		nrf_gpio_cfg_input(cfg->pselrxd, cfg->rxd_pull);
	}

	nrf_uarte_txrx_pins_set(uarte, cfg->pseltxd, cfg->pselrxd);
   2ad90:	68a2      	ldr	r2, [r4, #8]
   2ad92:	68e3      	ldr	r3, [r4, #12]
    p_reg->PSEL.TXD = pseltxd;
   2ad94:	f8c5 250c 	str.w	r2, [r5, #1292]	; 0x50c
    p_reg->PSEL.RXD = pselrxd;
   2ad98:	f8c5 3514 	str.w	r3, [r5, #1300]	; 0x514

	if (cfg->pselcts != NRF_UARTE_PSEL_DISCONNECTED) {
   2ad9c:	6926      	ldr	r6, [r4, #16]
   2ad9e:	f1b6 3fff 	cmp.w	r6, #4294967295
   2ada2:	f040 8089 	bne.w	2aeb8 <uarte_instance_init+0x240>
		nrf_gpio_cfg_input(cfg->pselcts, cfg->cts_pull);
	}

	if (cfg->pselrts != NRF_UARTE_PSEL_DISCONNECTED) {
   2ada6:	6966      	ldr	r6, [r4, #20]
   2ada8:	f1b6 3fff 	cmp.w	r6, #4294967295
   2adac:	f040 80c5 	bne.w	2af3a <uarte_instance_init+0x2c2>
		nrf_gpio_pin_write(cfg->pselrts, 1);
		nrf_gpio_cfg_output(cfg->pselrts);
	}

	nrf_uarte_hwfc_pins_set(uarte, cfg->pselrts, cfg->pselcts);
   2adb0:	6962      	ldr	r2, [r4, #20]
   2adb2:	6923      	ldr	r3, [r4, #16]
    p_reg->PSEL.RTS = pselrts;
   2adb4:	f8c5 2508 	str.w	r2, [r5, #1288]	; 0x508
    p_reg->PSEL.CTS = pselcts;
   2adb8:	f8c5 3510 	str.w	r3, [r5, #1296]	; 0x510
	return dev->data;
   2adbc:	6939      	ldr	r1, [r7, #16]

	err = uarte_nrfx_configure(dev, &get_dev_data(dev)->uart_config);
   2adbe:	3104      	adds	r1, #4
   2adc0:	4638      	mov	r0, r7
   2adc2:	f00e fbc9 	bl	39558 <uarte_nrfx_configure>
	if (err) {
   2adc6:	4606      	mov	r6, r0
   2adc8:	bb90      	cbnz	r0, 2ae30 <uarte_instance_init+0x1b8>
		return err;
	}

	if (IS_ENABLED(CONFIG_UART_ENHANCED_POLL_OUT) &&
	    cfg->flags & UARTE_CFG_FLAG_PPI_ENDTX) {
   2adca:	6863      	ldr	r3, [r4, #4]
	if (IS_ENABLED(CONFIG_UART_ENHANCED_POLL_OUT) &&
   2adcc:	f013 0f08 	tst.w	r3, #8
   2add0:	f040 8135 	bne.w	2b03e <uarte_instance_init+0x3c6>
    p_reg->ENABLE = UARTE_ENABLE_ENABLE_Enabled;
   2add4:	2308      	movs	r3, #8
   2add6:	f8c5 3500 	str.w	r3, [r5, #1280]	; 0x500
#endif
	{
		/* Enable receiver and transmitter */
		nrf_uarte_enable(uarte);

		if (cfg->pselrxd != NRF_UARTE_PSEL_DISCONNECTED) {
   2adda:	68e3      	ldr	r3, [r4, #12]
   2addc:	f1b3 3fff 	cmp.w	r3, #4294967295
   2ade0:	d00c      	beq.n	2adfc <uarte_instance_init+0x184>
    *((volatile uint32_t *)((uint8_t *)p_reg + (uint32_t)event)) = 0x0UL;
   2ade2:	2300      	movs	r3, #0
   2ade4:	f8c5 3110 	str.w	r3, [r5, #272]	; 0x110
   2ade8:	f8d5 3110 	ldr.w	r3, [r5, #272]	; 0x110
			nrf_uarte_event_clear(uarte, NRF_UARTE_EVENT_ENDRX);

			nrf_uarte_rx_buffer_set(uarte, &data->rx_data, 1);
   2adec:	f108 0311 	add.w	r3, r8, #17

NRF_STATIC_INLINE void nrf_uarte_rx_buffer_set(NRF_UARTE_Type * p_reg,
                                               uint8_t *        p_buffer,
                                               size_t           length)
{
    p_reg->RXD.PTR    = (uint32_t)p_buffer;
   2adf0:	f8c5 3534 	str.w	r3, [r5, #1332]	; 0x534
    p_reg->RXD.MAXCNT = length;
   2adf4:	2301      	movs	r3, #1
   2adf6:	f8c5 3538 	str.w	r3, [r5, #1336]	; 0x538
    *((volatile uint32_t *)((uint8_t *)p_reg + (uint32_t)task)) = 0x1UL;
   2adfa:	602b      	str	r3, [r5, #0]
			nrf_uarte_task_trigger(uarte, NRF_UARTE_TASK_STARTRX);
		}
	}

	if (!(cfg->flags & UARTE_CFG_FLAG_PPI_ENDTX)) {
   2adfc:	6863      	ldr	r3, [r4, #4]
   2adfe:	f013 0f08 	tst.w	r3, #8
   2ae02:	d103      	bne.n	2ae0c <uarte_instance_init+0x194>
    p_reg->INTENSET = mask;
   2ae04:	f44f 7380 	mov.w	r3, #256	; 0x100
   2ae08:	f8c5 3304 	str.w	r3, [r5, #772]	; 0x304
		nrf_uarte_int_enable(uarte, NRF_UARTE_INT_ENDTX_MASK);
	}

	if (cfg->flags & UARTE_CFG_FLAG_LOW_POWER) {
   2ae0c:	6863      	ldr	r3, [r4, #4]
   2ae0e:	f013 0f10 	tst.w	r3, #16
   2ae12:	d003      	beq.n	2ae1c <uarte_instance_init+0x1a4>
   2ae14:	f44f 0380 	mov.w	r3, #4194304	; 0x400000
   2ae18:	f8c5 3304 	str.w	r3, [r5, #772]	; 0x304

	/* Set TXSTOPPED event by requesting fake (zero-length) transfer.
	 * Pointer to RAM variable (data->tx_buffer) is set because otherwise
	 * such operation may result in HardFault or RAM corruption.
	 */
	nrf_uarte_tx_buffer_set(uarte, &data->char_out, 0);
   2ae1c:	f108 0310 	add.w	r3, r8, #16
    p_reg->TXD.PTR    = (uint32_t)p_buffer;
   2ae20:	f8c5 3544 	str.w	r3, [r5, #1348]	; 0x544
    p_reg->TXD.MAXCNT = length;
   2ae24:	2300      	movs	r3, #0
   2ae26:	f8c5 3548 	str.w	r3, [r5, #1352]	; 0x548
    *((volatile uint32_t *)((uint8_t *)p_reg + (uint32_t)task)) = 0x1UL;
   2ae2a:	2301      	movs	r3, #1
   2ae2c:	60ab      	str	r3, [r5, #8]
   2ae2e:	60eb      	str	r3, [r5, #12]

	/* switch off transmitter to save an energy */
	nrf_uarte_task_trigger(uarte, NRF_UARTE_TASK_STOPTX);

	return 0;
}
   2ae30:	4630      	mov	r0, r6
   2ae32:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
		nrf_gpio_cfg_input(cfg->pselrxd, cfg->rxd_pull);
   2ae36:	f894 9018 	ldrb.w	r9, [r4, #24]
    switch (port)
   2ae3a:	0973      	lsrs	r3, r6, #5
   2ae3c:	d01e      	beq.n	2ae7c <uarte_instance_init+0x204>
   2ae3e:	2b01      	cmp	r3, #1
   2ae40:	d11f      	bne.n	2ae82 <uarte_instance_init+0x20a>
            mask = P1_FEATURE_PINS_PRESENT;
   2ae42:	f240 33ff 	movw	r3, #1023	; 0x3ff
    pin_number &= 0x1F;
   2ae46:	f006 021f 	and.w	r2, r6, #31
    return (mask & (1UL << pin_number)) ? true : false;
   2ae4a:	40d3      	lsrs	r3, r2
    NRFX_ASSERT(nrf_gpio_pin_present_check(*p_pin));
   2ae4c:	f013 0f01 	tst.w	r3, #1
   2ae50:	d019      	beq.n	2ae86 <uarte_instance_init+0x20e>
    *p_pin = pin_number & 0x1F;
   2ae52:	f006 0a1f 	and.w	sl, r6, #31
    switch (nrf_gpio_pin_port_number_extract(p_pin))
   2ae56:	0976      	lsrs	r6, r6, #5
   2ae58:	d023      	beq.n	2aea2 <uarte_instance_init+0x22a>
   2ae5a:	2e01      	cmp	r6, #1
   2ae5c:	d024      	beq.n	2aea8 <uarte_instance_init+0x230>
            NRFX_ASSERT(0);
   2ae5e:	4e52      	ldr	r6, [pc, #328]	; (2afa8 <uarte_instance_init+0x330>)
   2ae60:	f240 2219 	movw	r2, #537	; 0x219
   2ae64:	4631      	mov	r1, r6
   2ae66:	4851      	ldr	r0, [pc, #324]	; (2afac <uarte_instance_init+0x334>)
   2ae68:	f008 fa9f 	bl	333aa <printk>
   2ae6c:	f240 2119 	movw	r1, #537	; 0x219
   2ae70:	4630      	mov	r0, r6
   2ae72:	f008 fe33 	bl	33adc <assert_post_action>
        case 0: return NRF_P0;
   2ae76:	f04f 42a0 	mov.w	r2, #1342177280	; 0x50000000
   2ae7a:	e016      	b.n	2aeaa <uarte_instance_init+0x232>
            mask = P0_FEATURE_PINS_PRESENT;
   2ae7c:	f04f 33ff 	mov.w	r3, #4294967295
   2ae80:	e7e1      	b.n	2ae46 <uarte_instance_init+0x1ce>
    switch (port)
   2ae82:	2300      	movs	r3, #0
   2ae84:	e7df      	b.n	2ae46 <uarte_instance_init+0x1ce>
    NRFX_ASSERT(nrf_gpio_pin_present_check(*p_pin));
   2ae86:	f8df a120 	ldr.w	sl, [pc, #288]	; 2afa8 <uarte_instance_init+0x330>
   2ae8a:	f44f 7205 	mov.w	r2, #532	; 0x214
   2ae8e:	4651      	mov	r1, sl
   2ae90:	4846      	ldr	r0, [pc, #280]	; (2afac <uarte_instance_init+0x334>)
   2ae92:	f008 fa8a 	bl	333aa <printk>
   2ae96:	f44f 7105 	mov.w	r1, #532	; 0x214
   2ae9a:	4650      	mov	r0, sl
   2ae9c:	f008 fe1e 	bl	33adc <assert_post_action>
   2aea0:	e7d7      	b.n	2ae52 <uarte_instance_init+0x1da>
        case 0: return NRF_P0;
   2aea2:	f04f 42a0 	mov.w	r2, #1342177280	; 0x50000000
   2aea6:	e000      	b.n	2aeaa <uarte_instance_init+0x232>
    switch (nrf_gpio_pin_port_number_extract(p_pin))
   2aea8:	4a41      	ldr	r2, [pc, #260]	; (2afb0 <uarte_instance_init+0x338>)
           ((uint32_t)pull << GPIO_PIN_CNF_PULL_Pos)   |
   2aeaa:	ea4f 0389 	mov.w	r3, r9, lsl #2
    reg->PIN_CNF[pin_number] = cnf;
   2aeae:	f50a 7ae0 	add.w	sl, sl, #448	; 0x1c0
   2aeb2:	f842 302a 	str.w	r3, [r2, sl, lsl #2]
}
   2aeb6:	e76b      	b.n	2ad90 <uarte_instance_init+0x118>
		nrf_gpio_cfg_input(cfg->pselcts, cfg->cts_pull);
   2aeb8:	f894 9019 	ldrb.w	r9, [r4, #25]
    switch (port)
   2aebc:	0973      	lsrs	r3, r6, #5
   2aebe:	d01e      	beq.n	2aefe <uarte_instance_init+0x286>
   2aec0:	2b01      	cmp	r3, #1
   2aec2:	d11f      	bne.n	2af04 <uarte_instance_init+0x28c>
            mask = P1_FEATURE_PINS_PRESENT;
   2aec4:	f240 33ff 	movw	r3, #1023	; 0x3ff
    pin_number &= 0x1F;
   2aec8:	f006 021f 	and.w	r2, r6, #31
    return (mask & (1UL << pin_number)) ? true : false;
   2aecc:	40d3      	lsrs	r3, r2
    NRFX_ASSERT(nrf_gpio_pin_present_check(*p_pin));
   2aece:	f013 0f01 	tst.w	r3, #1
   2aed2:	d019      	beq.n	2af08 <uarte_instance_init+0x290>
    *p_pin = pin_number & 0x1F;
   2aed4:	f006 0a1f 	and.w	sl, r6, #31
    switch (nrf_gpio_pin_port_number_extract(p_pin))
   2aed8:	0976      	lsrs	r6, r6, #5
   2aeda:	d023      	beq.n	2af24 <uarte_instance_init+0x2ac>
   2aedc:	2e01      	cmp	r6, #1
   2aede:	d024      	beq.n	2af2a <uarte_instance_init+0x2b2>
            NRFX_ASSERT(0);
   2aee0:	4e31      	ldr	r6, [pc, #196]	; (2afa8 <uarte_instance_init+0x330>)
   2aee2:	f240 2219 	movw	r2, #537	; 0x219
   2aee6:	4631      	mov	r1, r6
   2aee8:	4830      	ldr	r0, [pc, #192]	; (2afac <uarte_instance_init+0x334>)
   2aeea:	f008 fa5e 	bl	333aa <printk>
   2aeee:	f240 2119 	movw	r1, #537	; 0x219
   2aef2:	4630      	mov	r0, r6
   2aef4:	f008 fdf2 	bl	33adc <assert_post_action>
        case 0: return NRF_P0;
   2aef8:	f04f 42a0 	mov.w	r2, #1342177280	; 0x50000000
   2aefc:	e016      	b.n	2af2c <uarte_instance_init+0x2b4>
            mask = P0_FEATURE_PINS_PRESENT;
   2aefe:	f04f 33ff 	mov.w	r3, #4294967295
   2af02:	e7e1      	b.n	2aec8 <uarte_instance_init+0x250>
    switch (port)
   2af04:	2300      	movs	r3, #0
   2af06:	e7df      	b.n	2aec8 <uarte_instance_init+0x250>
    NRFX_ASSERT(nrf_gpio_pin_present_check(*p_pin));
   2af08:	f8df a09c 	ldr.w	sl, [pc, #156]	; 2afa8 <uarte_instance_init+0x330>
   2af0c:	f44f 7205 	mov.w	r2, #532	; 0x214
   2af10:	4651      	mov	r1, sl
   2af12:	4826      	ldr	r0, [pc, #152]	; (2afac <uarte_instance_init+0x334>)
   2af14:	f008 fa49 	bl	333aa <printk>
   2af18:	f44f 7105 	mov.w	r1, #532	; 0x214
   2af1c:	4650      	mov	r0, sl
   2af1e:	f008 fddd 	bl	33adc <assert_post_action>
   2af22:	e7d7      	b.n	2aed4 <uarte_instance_init+0x25c>
        case 0: return NRF_P0;
   2af24:	f04f 42a0 	mov.w	r2, #1342177280	; 0x50000000
   2af28:	e000      	b.n	2af2c <uarte_instance_init+0x2b4>
    switch (nrf_gpio_pin_port_number_extract(p_pin))
   2af2a:	4a21      	ldr	r2, [pc, #132]	; (2afb0 <uarte_instance_init+0x338>)
           ((uint32_t)pull << GPIO_PIN_CNF_PULL_Pos)   |
   2af2c:	ea4f 0389 	mov.w	r3, r9, lsl #2
    reg->PIN_CNF[pin_number] = cnf;
   2af30:	f50a 7ae0 	add.w	sl, sl, #448	; 0x1c0
   2af34:	f842 302a 	str.w	r3, [r2, sl, lsl #2]
}
   2af38:	e735      	b.n	2ada6 <uarte_instance_init+0x12e>
    switch (port)
   2af3a:	0973      	lsrs	r3, r6, #5
   2af3c:	d01e      	beq.n	2af7c <uarte_instance_init+0x304>
   2af3e:	2b01      	cmp	r3, #1
   2af40:	d11f      	bne.n	2af82 <uarte_instance_init+0x30a>
            mask = P1_FEATURE_PINS_PRESENT;
   2af42:	f240 33ff 	movw	r3, #1023	; 0x3ff
    pin_number &= 0x1F;
   2af46:	f006 021f 	and.w	r2, r6, #31
    return (mask & (1UL << pin_number)) ? true : false;
   2af4a:	40d3      	lsrs	r3, r2
    NRFX_ASSERT(nrf_gpio_pin_present_check(*p_pin));
   2af4c:	f013 0f01 	tst.w	r3, #1
   2af50:	d019      	beq.n	2af86 <uarte_instance_init+0x30e>
    *p_pin = pin_number & 0x1F;
   2af52:	f006 091f 	and.w	r9, r6, #31
    switch (nrf_gpio_pin_port_number_extract(p_pin))
   2af56:	0976      	lsrs	r6, r6, #5
   2af58:	d023      	beq.n	2afa2 <uarte_instance_init+0x32a>
   2af5a:	2e01      	cmp	r6, #1
   2af5c:	d02a      	beq.n	2afb4 <uarte_instance_init+0x33c>
            NRFX_ASSERT(0);
   2af5e:	4e12      	ldr	r6, [pc, #72]	; (2afa8 <uarte_instance_init+0x330>)
   2af60:	f240 2219 	movw	r2, #537	; 0x219
   2af64:	4631      	mov	r1, r6
   2af66:	4811      	ldr	r0, [pc, #68]	; (2afac <uarte_instance_init+0x334>)
   2af68:	f008 fa1f 	bl	333aa <printk>
   2af6c:	f240 2119 	movw	r1, #537	; 0x219
   2af70:	4630      	mov	r0, r6
   2af72:	f008 fdb3 	bl	33adc <assert_post_action>
        case 0: return NRF_P0;
   2af76:	f04f 42a0 	mov.w	r2, #1342177280	; 0x50000000
   2af7a:	e01c      	b.n	2afb6 <uarte_instance_init+0x33e>
            mask = P0_FEATURE_PINS_PRESENT;
   2af7c:	f04f 33ff 	mov.w	r3, #4294967295
   2af80:	e7e1      	b.n	2af46 <uarte_instance_init+0x2ce>
    switch (port)
   2af82:	2300      	movs	r3, #0
   2af84:	e7df      	b.n	2af46 <uarte_instance_init+0x2ce>
    NRFX_ASSERT(nrf_gpio_pin_present_check(*p_pin));
   2af86:	f8df 9020 	ldr.w	r9, [pc, #32]	; 2afa8 <uarte_instance_init+0x330>
   2af8a:	f44f 7205 	mov.w	r2, #532	; 0x214
   2af8e:	4649      	mov	r1, r9
   2af90:	4806      	ldr	r0, [pc, #24]	; (2afac <uarte_instance_init+0x334>)
   2af92:	f008 fa0a 	bl	333aa <printk>
   2af96:	f44f 7105 	mov.w	r1, #532	; 0x214
   2af9a:	4648      	mov	r0, r9
   2af9c:	f008 fd9e 	bl	33adc <assert_post_action>
   2afa0:	e7d7      	b.n	2af52 <uarte_instance_init+0x2da>
        case 0: return NRF_P0;
   2afa2:	f04f 42a0 	mov.w	r2, #1342177280	; 0x50000000
   2afa6:	e006      	b.n	2afb6 <uarte_instance_init+0x33e>
   2afa8:	0003ebf4 	.word	0x0003ebf4
   2afac:	0003bdac 	.word	0x0003bdac
   2afb0:	50000300 	.word	0x50000300
    switch (nrf_gpio_pin_port_number_extract(p_pin))
   2afb4:	4a26      	ldr	r2, [pc, #152]	; (2b050 <uarte_instance_init+0x3d8>)
    nrf_gpio_port_out_set(reg, 1UL << pin_number);
   2afb6:	2301      	movs	r3, #1
   2afb8:	fa03 f309 	lsl.w	r3, r3, r9
    p_reg->OUTSET = set_mask;
   2afbc:	f8c2 3508 	str.w	r3, [r2, #1288]	; 0x508
		nrf_gpio_cfg_output(cfg->pselrts);
   2afc0:	6966      	ldr	r6, [r4, #20]
    switch (port)
   2afc2:	0973      	lsrs	r3, r6, #5
   2afc4:	d01e      	beq.n	2b004 <uarte_instance_init+0x38c>
   2afc6:	2b01      	cmp	r3, #1
   2afc8:	d11f      	bne.n	2b00a <uarte_instance_init+0x392>
            mask = P1_FEATURE_PINS_PRESENT;
   2afca:	f240 33ff 	movw	r3, #1023	; 0x3ff
    pin_number &= 0x1F;
   2afce:	f006 021f 	and.w	r2, r6, #31
    return (mask & (1UL << pin_number)) ? true : false;
   2afd2:	40d3      	lsrs	r3, r2
    NRFX_ASSERT(nrf_gpio_pin_present_check(*p_pin));
   2afd4:	f013 0f01 	tst.w	r3, #1
   2afd8:	d019      	beq.n	2b00e <uarte_instance_init+0x396>
    *p_pin = pin_number & 0x1F;
   2afda:	f006 091f 	and.w	r9, r6, #31
    switch (nrf_gpio_pin_port_number_extract(p_pin))
   2afde:	0976      	lsrs	r6, r6, #5
   2afe0:	d023      	beq.n	2b02a <uarte_instance_init+0x3b2>
   2afe2:	2e01      	cmp	r6, #1
   2afe4:	d024      	beq.n	2b030 <uarte_instance_init+0x3b8>
            NRFX_ASSERT(0);
   2afe6:	4e1b      	ldr	r6, [pc, #108]	; (2b054 <uarte_instance_init+0x3dc>)
   2afe8:	f240 2219 	movw	r2, #537	; 0x219
   2afec:	4631      	mov	r1, r6
   2afee:	481a      	ldr	r0, [pc, #104]	; (2b058 <uarte_instance_init+0x3e0>)
   2aff0:	f008 f9db 	bl	333aa <printk>
   2aff4:	f240 2119 	movw	r1, #537	; 0x219
   2aff8:	4630      	mov	r0, r6
   2affa:	f008 fd6f 	bl	33adc <assert_post_action>
        case 0: return NRF_P0;
   2affe:	f04f 43a0 	mov.w	r3, #1342177280	; 0x50000000
   2b002:	e016      	b.n	2b032 <uarte_instance_init+0x3ba>
            mask = P0_FEATURE_PINS_PRESENT;
   2b004:	f04f 33ff 	mov.w	r3, #4294967295
   2b008:	e7e1      	b.n	2afce <uarte_instance_init+0x356>
    switch (port)
   2b00a:	2300      	movs	r3, #0
   2b00c:	e7df      	b.n	2afce <uarte_instance_init+0x356>
    NRFX_ASSERT(nrf_gpio_pin_present_check(*p_pin));
   2b00e:	f8df 9044 	ldr.w	r9, [pc, #68]	; 2b054 <uarte_instance_init+0x3dc>
   2b012:	f44f 7205 	mov.w	r2, #532	; 0x214
   2b016:	4649      	mov	r1, r9
   2b018:	480f      	ldr	r0, [pc, #60]	; (2b058 <uarte_instance_init+0x3e0>)
   2b01a:	f008 f9c6 	bl	333aa <printk>
   2b01e:	f44f 7105 	mov.w	r1, #532	; 0x214
   2b022:	4648      	mov	r0, r9
   2b024:	f008 fd5a 	bl	33adc <assert_post_action>
   2b028:	e7d7      	b.n	2afda <uarte_instance_init+0x362>
        case 0: return NRF_P0;
   2b02a:	f04f 43a0 	mov.w	r3, #1342177280	; 0x50000000
   2b02e:	e000      	b.n	2b032 <uarte_instance_init+0x3ba>
    switch (nrf_gpio_pin_port_number_extract(p_pin))
   2b030:	4b07      	ldr	r3, [pc, #28]	; (2b050 <uarte_instance_init+0x3d8>)
    reg->PIN_CNF[pin_number] = cnf;
   2b032:	f509 79e0 	add.w	r9, r9, #448	; 0x1c0
   2b036:	2203      	movs	r2, #3
   2b038:	f843 2029 	str.w	r2, [r3, r9, lsl #2]
}
   2b03c:	e6b8      	b.n	2adb0 <uarte_instance_init+0x138>
		err = endtx_stoptx_ppi_init(uarte, data);
   2b03e:	4641      	mov	r1, r8
   2b040:	4628      	mov	r0, r5
   2b042:	f7ff fdef 	bl	2ac24 <endtx_stoptx_ppi_init>
		if (err < 0) {
   2b046:	2800      	cmp	r0, #0
   2b048:	f6bf aec4 	bge.w	2add4 <uarte_instance_init+0x15c>
			return err;
   2b04c:	4606      	mov	r6, r0
   2b04e:	e6ef      	b.n	2ae30 <uarte_instance_init+0x1b8>
   2b050:	50000300 	.word	0x50000300
   2b054:	0003ebf4 	.word	0x0003ebf4
   2b058:	0003bdac 	.word	0x0003bdac

0002b05c <random_byte_get>:
	__asm__ volatile(
   2b05c:	f04f 0340 	mov.w	r3, #64	; 0x40
   2b060:	f3ef 8211 	mrs	r2, BASEPRI
   2b064:	f383 8812 	msr	BASEPRI_MAX, r3
   2b068:	f3bf 8f6f 	isb	sy
    nrf_event_readback((uint8_t *)p_reg + (uint32_t)rng_event);
}

NRF_STATIC_INLINE bool nrf_rng_event_check(NRF_RNG_Type const * p_reg, nrf_rng_event_t rng_event)
{
    return (bool) * ((volatile uint32_t *)((uint8_t *)p_reg + (uint32_t)rng_event));
   2b06c:	4b09      	ldr	r3, [pc, #36]	; (2b094 <random_byte_get+0x38>)
   2b06e:	681b      	ldr	r3, [r3, #0]
	int retval = -EAGAIN;
	unsigned int key;

	key = irq_lock();

	if (nrf_rng_event_check(NRF_RNG, NRF_RNG_EVENT_VALRDY)) {
   2b070:	b16b      	cbz	r3, 2b08e <random_byte_get+0x32>
     p_reg->SHORTS &= ~mask;
}

NRF_STATIC_INLINE uint8_t nrf_rng_random_value_get(NRF_RNG_Type const * p_reg)
{
    return (uint8_t)(p_reg->VALUE & RNG_VALUE_VALUE_Msk);
   2b072:	4b09      	ldr	r3, [pc, #36]	; (2b098 <random_byte_get+0x3c>)
   2b074:	f8d3 0508 	ldr.w	r0, [r3, #1288]	; 0x508
		retval = nrf_rng_random_value_get(NRF_RNG);
   2b078:	b2c0      	uxtb	r0, r0
    *((volatile uint32_t *)((uint8_t *)p_reg + (uint32_t)rng_event)) = 0x0UL;
   2b07a:	f503 7380 	add.w	r3, r3, #256	; 0x100
   2b07e:	2100      	movs	r1, #0
   2b080:	6019      	str	r1, [r3, #0]
   2b082:	681b      	ldr	r3, [r3, #0]
	__asm__ volatile(
   2b084:	f382 8811 	msr	BASEPRI, r2
   2b088:	f3bf 8f6f 	isb	sy
	}

	irq_unlock(key);

	return retval;
}
   2b08c:	4770      	bx	lr
	int retval = -EAGAIN;
   2b08e:	f06f 000a 	mvn.w	r0, #10
   2b092:	e7f7      	b.n	2b084 <random_byte_get+0x28>
   2b094:	4000d100 	.word	0x4000d100
   2b098:	4000d000 	.word	0x4000d000

0002b09c <rng_pool_get>:
#pragma GCC push_options
#if defined(CONFIG_BT_CTLR_FAST_ENC)
#pragma GCC optimize ("Ofast")
#endif
static uint16_t rng_pool_get(struct rng_pool *rngp, uint8_t *buf, uint16_t len)
{
   2b09c:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   2b0a0:	4606      	mov	r6, r0
	uint32_t last  = rngp->last;
   2b0a2:	f890 c002 	ldrb.w	ip, [r0, #2]
	uint32_t mask  = rngp->mask;
   2b0a6:	78c5      	ldrb	r5, [r0, #3]
   2b0a8:	462f      	mov	r7, r5
	__asm__ volatile(
   2b0aa:	f04f 0340 	mov.w	r3, #64	; 0x40
   2b0ae:	f3ef 8811 	mrs	r8, BASEPRI
   2b0b2:	f383 8812 	msr	BASEPRI_MAX, r3
   2b0b6:	f3bf 8f6f 	isb	sy
	uint32_t first, available;
	uint32_t other_read_in_progress;
	unsigned int key;

	key = irq_lock();
	first = rngp->first_alloc;
   2b0ba:	7800      	ldrb	r0, [r0, #0]
   2b0bc:	4604      	mov	r4, r0
	/*
	 * The other_read_in_progress is non-zero if rngp->first_read != first,
	 * which means that lower-priority code (which was interrupted by this
	 * call) already allocated area for read.
	 */
	other_read_in_progress = (rngp->first_read ^ first);
   2b0be:	f896 e001 	ldrb.w	lr, [r6, #1]

	available = (last - first) & mask;
   2b0c2:	ebac 0c00 	sub.w	ip, ip, r0
   2b0c6:	ea0c 0c05 	and.w	ip, ip, r5
	if (available < len) {
   2b0ca:	4562      	cmp	r2, ip
   2b0cc:	d901      	bls.n	2b0d2 <rng_pool_get+0x36>
		len = available;
   2b0ce:	fa1f f28c 	uxth.w	r2, ip

	/*
	 * Move alloc index forward to signal, that part of the buffer is
	 * now reserved for this call.
	 */
	rngp->first_alloc = (first + len) & mask;
   2b0d2:	1883      	adds	r3, r0, r2
   2b0d4:	402b      	ands	r3, r5
   2b0d6:	7033      	strb	r3, [r6, #0]
	__asm__ volatile(
   2b0d8:	f388 8811 	msr	BASEPRI, r8
   2b0dc:	f3bf 8f6f 	isb	sy
	uint8_t *dst   = buf;
   2b0e0:	460b      	mov	r3, r1
}
   2b0e2:	e006      	b.n	2b0f2 <rng_pool_get+0x56>
	irq_unlock(key);

	while (likely(len--)) {
		*dst++ = rngp->buffer[first];
   2b0e4:	1932      	adds	r2, r6, r4
   2b0e6:	7952      	ldrb	r2, [r2, #5]
   2b0e8:	f803 2b01 	strb.w	r2, [r3], #1
		first = (first + 1) & mask;
   2b0ec:	3401      	adds	r4, #1
   2b0ee:	403c      	ands	r4, r7
	while (likely(len--)) {
   2b0f0:	462a      	mov	r2, r5
   2b0f2:	1e55      	subs	r5, r2, #1
   2b0f4:	b2ad      	uxth	r5, r5
   2b0f6:	2a00      	cmp	r2, #0
   2b0f8:	d1f4      	bne.n	2b0e4 <rng_pool_get+0x48>
	/*
	 * If this call is the last one accessing the pool, move read index
	 * to signal that all allocated regions are now read and could be
	 * overwritten.
	 */
	if (likely(!other_read_in_progress)) {
   2b0fa:	4570      	cmp	r0, lr
   2b0fc:	d10d      	bne.n	2b11a <rng_pool_get+0x7e>
	__asm__ volatile(
   2b0fe:	f04f 0040 	mov.w	r0, #64	; 0x40
   2b102:	f3ef 8211 	mrs	r2, BASEPRI
   2b106:	f380 8812 	msr	BASEPRI_MAX, r0
   2b10a:	f3bf 8f6f 	isb	sy
		key = irq_lock();
		rngp->first_read = rngp->first_alloc;
   2b10e:	7830      	ldrb	r0, [r6, #0]
   2b110:	7070      	strb	r0, [r6, #1]
	__asm__ volatile(
   2b112:	f382 8811 	msr	BASEPRI, r2
   2b116:	f3bf 8f6f 	isb	sy
		irq_unlock(key);
	}

	len = dst - buf;
   2b11a:	1a5b      	subs	r3, r3, r1
   2b11c:	b298      	uxth	r0, r3
	available = available - len;
   2b11e:	ebac 0c00 	sub.w	ip, ip, r0
	if (available <= rngp->threshold) {
   2b122:	7933      	ldrb	r3, [r6, #4]
   2b124:	4563      	cmp	r3, ip
   2b126:	d302      	bcc.n	2b12e <rng_pool_get+0x92>
    *((volatile uint32_t *)((uint8_t *)p_reg + (uint32_t)rng_task)) = 0x1UL;
   2b128:	4b02      	ldr	r3, [pc, #8]	; (2b134 <rng_pool_get+0x98>)
   2b12a:	2201      	movs	r2, #1
   2b12c:	601a      	str	r2, [r3, #0]
		nrf_rng_task_trigger(NRF_RNG, NRF_RNG_TASK_START);
	}

	return len;
}
   2b12e:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
   2b132:	bf00      	nop
   2b134:	4000d000 	.word	0x4000d000

0002b138 <entropy_nrf5_get_entropy_isr>:
}

static int entropy_nrf5_get_entropy_isr(const struct device *dev,
					uint8_t *buf, uint16_t len,
					uint32_t flags)
{
   2b138:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
   2b13a:	460e      	mov	r6, r1
   2b13c:	4614      	mov	r4, r2
   2b13e:	461d      	mov	r5, r3
	uint16_t cnt = len;

	/* Check if this API is called on correct driver instance. */
	__ASSERT_NO_MSG(&entropy_nrf5_data == DEV_DATA(dev));
   2b140:	6902      	ldr	r2, [r0, #16]
   2b142:	4b2c      	ldr	r3, [pc, #176]	; (2b1f4 <entropy_nrf5_get_entropy_isr+0xbc>)
   2b144:	429a      	cmp	r2, r3
   2b146:	d00b      	beq.n	2b160 <entropy_nrf5_get_entropy_isr+0x28>
   2b148:	4f2b      	ldr	r7, [pc, #172]	; (2b1f8 <entropy_nrf5_get_entropy_isr+0xc0>)
   2b14a:	f44f 7284 	mov.w	r2, #264	; 0x108
   2b14e:	4639      	mov	r1, r7
   2b150:	482a      	ldr	r0, [pc, #168]	; (2b1fc <entropy_nrf5_get_entropy_isr+0xc4>)
   2b152:	f008 f92a 	bl	333aa <printk>
   2b156:	f44f 7184 	mov.w	r1, #264	; 0x108
   2b15a:	4638      	mov	r0, r7
   2b15c:	f008 fcbe 	bl	33adc <assert_post_action>

	if (likely((flags & ENTROPY_BUSYWAIT) == 0U)) {
   2b160:	f015 0f01 	tst.w	r5, #1
   2b164:	d105      	bne.n	2b172 <entropy_nrf5_get_entropy_isr+0x3a>
		return rng_pool_get((struct rng_pool *)(entropy_nrf5_data.isr),
   2b166:	4622      	mov	r2, r4
   2b168:	4631      	mov	r1, r6
   2b16a:	4825      	ldr	r0, [pc, #148]	; (2b200 <entropy_nrf5_get_entropy_isr+0xc8>)
   2b16c:	f7ff ff96 	bl	2b09c <rng_pool_get>
			irq_enable(IRQN);
		}
	}

	return cnt;
}
   2b170:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
	if (len) {
   2b172:	b90c      	cbnz	r4, 2b178 <entropy_nrf5_get_entropy_isr+0x40>
	return cnt;
   2b174:	4620      	mov	r0, r4
   2b176:	e7fb      	b.n	2b170 <entropy_nrf5_get_entropy_isr+0x38>
	__asm__ volatile(
   2b178:	f04f 0340 	mov.w	r3, #64	; 0x40
   2b17c:	f3ef 8511 	mrs	r5, BASEPRI
   2b180:	f383 8812 	msr	BASEPRI_MAX, r3
   2b184:	f3bf 8f6f 	isb	sy
		irq_enabled = irq_is_enabled(IRQN);
   2b188:	200d      	movs	r0, #13
   2b18a:	f7f4 f91f 	bl	1f3cc <arch_irq_is_enabled>
   2b18e:	4607      	mov	r7, r0
		irq_disable(IRQN);
   2b190:	200d      	movs	r0, #13
   2b192:	f7f4 f907 	bl	1f3a4 <arch_irq_disable>
	__asm__ volatile(
   2b196:	f385 8811 	msr	BASEPRI, r5
   2b19a:	f3bf 8f6f 	isb	sy
    *((volatile uint32_t *)((uint8_t *)p_reg + (uint32_t)rng_event)) = 0x0UL;
   2b19e:	4b19      	ldr	r3, [pc, #100]	; (2b204 <entropy_nrf5_get_entropy_isr+0xcc>)
   2b1a0:	2200      	movs	r2, #0
   2b1a2:	601a      	str	r2, [r3, #0]
   2b1a4:	681b      	ldr	r3, [r3, #0]
    *((volatile uint32_t *)((uint8_t *)p_reg + (uint32_t)rng_task)) = 0x1UL;
   2b1a6:	4b18      	ldr	r3, [pc, #96]	; (2b208 <entropy_nrf5_get_entropy_isr+0xd0>)
   2b1a8:	2201      	movs	r2, #1
   2b1aa:	601a      	str	r2, [r3, #0]
   2b1ac:	4b17      	ldr	r3, [pc, #92]	; (2b20c <entropy_nrf5_get_entropy_isr+0xd4>)
   2b1ae:	f44f 5200 	mov.w	r2, #8192	; 0x2000
   2b1b2:	f8c3 2180 	str.w	r2, [r3, #384]	; 0x180
   2b1b6:	4625      	mov	r5, r4
   2b1b8:	e004      	b.n	2b1c4 <entropy_nrf5_get_entropy_isr+0x8c>
   2b1ba:	f3bf 8f4f 	dsb	sy
				__WFE();
   2b1be:	bf20      	wfe
				__SEV();
   2b1c0:	bf40      	sev
				__WFE();
   2b1c2:	bf20      	wfe
    return (bool) * ((volatile uint32_t *)((uint8_t *)p_reg + (uint32_t)rng_event));
   2b1c4:	4b0f      	ldr	r3, [pc, #60]	; (2b204 <entropy_nrf5_get_entropy_isr+0xcc>)
   2b1c6:	681b      	ldr	r3, [r3, #0]
			while (!nrf_rng_event_check(NRF_RNG,
   2b1c8:	2b00      	cmp	r3, #0
   2b1ca:	d0f6      	beq.n	2b1ba <entropy_nrf5_get_entropy_isr+0x82>
			byte = random_byte_get();
   2b1cc:	f7ff ff46 	bl	2b05c <random_byte_get>
   2b1d0:	4b0e      	ldr	r3, [pc, #56]	; (2b20c <entropy_nrf5_get_entropy_isr+0xd4>)
   2b1d2:	f44f 5200 	mov.w	r2, #8192	; 0x2000
   2b1d6:	f8c3 2180 	str.w	r2, [r3, #384]	; 0x180
			if (byte < 0) {
   2b1da:	2800      	cmp	r0, #0
   2b1dc:	db02      	blt.n	2b1e4 <entropy_nrf5_get_entropy_isr+0xac>
			buf[--len] = byte;
   2b1de:	3d01      	subs	r5, #1
   2b1e0:	b2ad      	uxth	r5, r5
   2b1e2:	5570      	strb	r0, [r6, r5]
		} while (len);
   2b1e4:	2d00      	cmp	r5, #0
   2b1e6:	d1ed      	bne.n	2b1c4 <entropy_nrf5_get_entropy_isr+0x8c>
		if (irq_enabled) {
   2b1e8:	2f00      	cmp	r7, #0
   2b1ea:	d0c3      	beq.n	2b174 <entropy_nrf5_get_entropy_isr+0x3c>
			irq_enable(IRQN);
   2b1ec:	200d      	movs	r0, #13
   2b1ee:	f7f4 f8c9 	bl	1f384 <arch_irq_enable>
   2b1f2:	e7bf      	b.n	2b174 <entropy_nrf5_get_entropy_isr+0x3c>
   2b1f4:	20002508 	.word	0x20002508
   2b1f8:	0003ed9c 	.word	0x0003ed9c
   2b1fc:	0003bdac 	.word	0x0003bdac
   2b200:	20002538 	.word	0x20002538
   2b204:	4000d100 	.word	0x4000d100
   2b208:	4000d000 	.word	0x4000d000
   2b20c:	e000e100 	.word	0xe000e100

0002b210 <isr>:
{
   2b210:	b510      	push	{r4, lr}
	byte = random_byte_get();
   2b212:	f7ff ff23 	bl	2b05c <random_byte_get>
	if (byte < 0) {
   2b216:	2800      	cmp	r0, #0
   2b218:	db06      	blt.n	2b228 <isr+0x18>
	ret = rng_pool_put((struct rng_pool *)(entropy_nrf5_data.isr), byte);
   2b21a:	b2c4      	uxtb	r4, r0
   2b21c:	4621      	mov	r1, r4
   2b21e:	480a      	ldr	r0, [pc, #40]	; (2b248 <isr+0x38>)
   2b220:	f00e faaa 	bl	39778 <rng_pool_put>
	if (ret < 0) {
   2b224:	2800      	cmp	r0, #0
   2b226:	db00      	blt.n	2b22a <isr+0x1a>
}
   2b228:	bd10      	pop	{r4, pc}
		ret = rng_pool_put((struct rng_pool *)(entropy_nrf5_data.thr),
   2b22a:	4621      	mov	r1, r4
   2b22c:	4807      	ldr	r0, [pc, #28]	; (2b24c <isr+0x3c>)
   2b22e:	f00e faa3 	bl	39778 <rng_pool_put>
		if (ret < 0) {
   2b232:	2800      	cmp	r0, #0
   2b234:	db03      	blt.n	2b23e <isr+0x2e>
	z_impl_k_sem_give(sem);
   2b236:	4806      	ldr	r0, [pc, #24]	; (2b250 <isr+0x40>)
   2b238:	f004 fe74 	bl	2ff24 <z_impl_k_sem_give>
}
   2b23c:	e7f4      	b.n	2b228 <isr+0x18>
    *((volatile uint32_t *)((uint8_t *)p_reg + (uint32_t)rng_task)) = 0x1UL;
   2b23e:	4b05      	ldr	r3, [pc, #20]	; (2b254 <isr+0x44>)
   2b240:	2201      	movs	r2, #1
   2b242:	601a      	str	r2, [r3, #0]
}
   2b244:	e7f7      	b.n	2b236 <isr+0x26>
   2b246:	bf00      	nop
   2b248:	20002538 	.word	0x20002538
   2b24c:	2000254d 	.word	0x2000254d
   2b250:	20002520 	.word	0x20002520
   2b254:	4000d004 	.word	0x4000d004

0002b258 <entropy_nrf5_get_entropy>:
{
   2b258:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
   2b25a:	460f      	mov	r7, r1
   2b25c:	4614      	mov	r4, r2
	__ASSERT_NO_MSG(&entropy_nrf5_data == DEV_DATA(dev));
   2b25e:	6902      	ldr	r2, [r0, #16]
   2b260:	4b18      	ldr	r3, [pc, #96]	; (2b2c4 <entropy_nrf5_get_entropy+0x6c>)
   2b262:	429a      	cmp	r2, r3
   2b264:	d00d      	beq.n	2b282 <entropy_nrf5_get_entropy+0x2a>
   2b266:	4d18      	ldr	r5, [pc, #96]	; (2b2c8 <entropy_nrf5_get_entropy+0x70>)
   2b268:	22ea      	movs	r2, #234	; 0xea
   2b26a:	4629      	mov	r1, r5
   2b26c:	4817      	ldr	r0, [pc, #92]	; (2b2cc <entropy_nrf5_get_entropy+0x74>)
   2b26e:	f008 f89c 	bl	333aa <printk>
   2b272:	21ea      	movs	r1, #234	; 0xea
   2b274:	4628      	mov	r0, r5
   2b276:	f008 fc31 	bl	33adc <assert_post_action>
   2b27a:	e002      	b.n	2b282 <entropy_nrf5_get_entropy+0x2a>
		len -= bytes;
   2b27c:	1b64      	subs	r4, r4, r5
   2b27e:	b2a4      	uxth	r4, r4
		buf += bytes;
   2b280:	442f      	add	r7, r5
	while (len) {
   2b282:	b1e4      	cbz	r4, 2b2be <entropy_nrf5_get_entropy+0x66>
	return z_impl_k_sem_take(sem, timeout);
   2b284:	4e0f      	ldr	r6, [pc, #60]	; (2b2c4 <entropy_nrf5_get_entropy+0x6c>)
   2b286:	f04f 32ff 	mov.w	r2, #4294967295
   2b28a:	f04f 33ff 	mov.w	r3, #4294967295
   2b28e:	4630      	mov	r0, r6
   2b290:	f004 fe88 	bl	2ffa4 <z_impl_k_sem_take>
		bytes = rng_pool_get((struct rng_pool *)(entropy_nrf5_data.thr),
   2b294:	4622      	mov	r2, r4
   2b296:	4639      	mov	r1, r7
   2b298:	f106 0045 	add.w	r0, r6, #69	; 0x45
   2b29c:	f7ff fefe 	bl	2b09c <rng_pool_get>
   2b2a0:	4605      	mov	r5, r0
	z_impl_k_sem_give(sem);
   2b2a2:	4630      	mov	r0, r6
   2b2a4:	f004 fe3e 	bl	2ff24 <z_impl_k_sem_give>
		if (bytes == 0U) {
   2b2a8:	2d00      	cmp	r5, #0
   2b2aa:	d1e7      	bne.n	2b27c <entropy_nrf5_get_entropy+0x24>
	return z_impl_k_sem_take(sem, timeout);
   2b2ac:	f04f 32ff 	mov.w	r2, #4294967295
   2b2b0:	f04f 33ff 	mov.w	r3, #4294967295
   2b2b4:	f106 0018 	add.w	r0, r6, #24
   2b2b8:	f004 fe74 	bl	2ffa4 <z_impl_k_sem_take>
			continue;
   2b2bc:	e7e1      	b.n	2b282 <entropy_nrf5_get_entropy+0x2a>
}
   2b2be:	2000      	movs	r0, #0
   2b2c0:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
   2b2c2:	bf00      	nop
   2b2c4:	20002508 	.word	0x20002508
   2b2c8:	0003ed9c 	.word	0x0003ed9c
   2b2cc:	0003bdac 	.word	0x0003bdac

0002b2d0 <entropy_nrf5_init>:
		    &entropy_nrf5_data, NULL,
		    PRE_KERNEL_1, CONFIG_KERNEL_INIT_PRIORITY_DEVICE,
		    &entropy_nrf5_api_funcs);

static int entropy_nrf5_init(const struct device *dev)
{
   2b2d0:	b510      	push	{r4, lr}
	/* Check if this API is called on correct driver instance. */
	__ASSERT_NO_MSG(&entropy_nrf5_data == DEV_DATA(dev));
   2b2d2:	6902      	ldr	r2, [r0, #16]
   2b2d4:	4b1f      	ldr	r3, [pc, #124]	; (2b354 <entropy_nrf5_init+0x84>)
   2b2d6:	429a      	cmp	r2, r3
   2b2d8:	d00b      	beq.n	2b2f2 <entropy_nrf5_init+0x22>
   2b2da:	4c1f      	ldr	r4, [pc, #124]	; (2b358 <entropy_nrf5_init+0x88>)
   2b2dc:	f240 1257 	movw	r2, #343	; 0x157
   2b2e0:	4621      	mov	r1, r4
   2b2e2:	481e      	ldr	r0, [pc, #120]	; (2b35c <entropy_nrf5_init+0x8c>)
   2b2e4:	f008 f861 	bl	333aa <printk>
   2b2e8:	f240 1157 	movw	r1, #343	; 0x157
   2b2ec:	4620      	mov	r0, r4
   2b2ee:	f008 fbf5 	bl	33adc <assert_post_action>
	return z_impl_k_sem_init(sem, initial_count, limit);
   2b2f2:	4c18      	ldr	r4, [pc, #96]	; (2b354 <entropy_nrf5_init+0x84>)
   2b2f4:	2201      	movs	r2, #1
   2b2f6:	4611      	mov	r1, r2
   2b2f8:	4620      	mov	r0, r4
   2b2fa:	f00f ff8f 	bl	3b21c <z_impl_k_sem_init>
   2b2fe:	2201      	movs	r2, #1
   2b300:	2100      	movs	r1, #0
   2b302:	f104 0018 	add.w	r0, r4, #24
   2b306:	f00f ff89 	bl	3b21c <z_impl_k_sem_init>
	k_sem_init(&entropy_nrf5_data.sem_lock, 1, 1);

	/* Synching semaphore */
	k_sem_init(&entropy_nrf5_data.sem_sync, 0, 1);

	rng_pool_init((struct rng_pool *)(entropy_nrf5_data.thr),
   2b30a:	2204      	movs	r2, #4
   2b30c:	2108      	movs	r1, #8
   2b30e:	f104 0045 	add.w	r0, r4, #69	; 0x45
   2b312:	f00e fa45 	bl	397a0 <rng_pool_init>
		      CONFIG_ENTROPY_NRF5_THR_POOL_SIZE,
		      CONFIG_ENTROPY_NRF5_THR_THRESHOLD);
	rng_pool_init((struct rng_pool *)(entropy_nrf5_data.isr),
   2b316:	220c      	movs	r2, #12
   2b318:	2110      	movs	r1, #16
   2b31a:	f104 0030 	add.w	r0, r4, #48	; 0x30
   2b31e:	f00e fa3f 	bl	397a0 <rng_pool_init>
    p_reg->CONFIG |= RNG_CONFIG_DERCEN_Msk;
}

NRF_STATIC_INLINE void nrf_rng_error_correction_disable(NRF_RNG_Type * p_reg)
{
    p_reg->CONFIG &= ~RNG_CONFIG_DERCEN_Msk;
   2b322:	4b0f      	ldr	r3, [pc, #60]	; (2b360 <entropy_nrf5_init+0x90>)
   2b324:	f8d3 2504 	ldr.w	r2, [r3, #1284]	; 0x504
   2b328:	f022 0201 	bic.w	r2, r2, #1
   2b32c:	f8c3 2504 	str.w	r2, [r3, #1284]	; 0x504
    *((volatile uint32_t *)((uint8_t *)p_reg + (uint32_t)rng_event)) = 0x0UL;
   2b330:	4a0c      	ldr	r2, [pc, #48]	; (2b364 <entropy_nrf5_init+0x94>)
   2b332:	2400      	movs	r4, #0
   2b334:	6014      	str	r4, [r2, #0]
   2b336:	6812      	ldr	r2, [r2, #0]
    p_reg->INTENSET = mask;
   2b338:	2101      	movs	r1, #1
   2b33a:	f8c3 1304 	str.w	r1, [r3, #772]	; 0x304
    *((volatile uint32_t *)((uint8_t *)p_reg + (uint32_t)rng_task)) = 0x1UL;
   2b33e:	6019      	str	r1, [r3, #0]

	nrf_rng_event_clear(NRF_RNG, NRF_RNG_EVENT_VALRDY);
	nrf_rng_int_enable(NRF_RNG, NRF_RNG_INT_VALRDY_MASK);
	nrf_rng_task_trigger(NRF_RNG, NRF_RNG_TASK_START);

	IRQ_CONNECT(IRQN, IRQ_PRIO, isr, &entropy_nrf5_data, 0);
   2b340:	4622      	mov	r2, r4
   2b342:	200d      	movs	r0, #13
   2b344:	f7f4 f850 	bl	1f3e8 <z_arm_irq_priority_set>
	irq_enable(IRQN);
   2b348:	200d      	movs	r0, #13
   2b34a:	f7f4 f81b 	bl	1f384 <arch_irq_enable>

	return 0;
}
   2b34e:	4620      	mov	r0, r4
   2b350:	bd10      	pop	{r4, pc}
   2b352:	bf00      	nop
   2b354:	20002508 	.word	0x20002508
   2b358:	0003ed9c 	.word	0x0003ed9c
   2b35c:	0003bdac 	.word	0x0003bdac
   2b360:	4000d000 	.word	0x4000d000
   2b364:	4000d100 	.word	0x4000d100

0002b368 <sys_clock_isr>:
#include <drivers/timer/system_timer.h>

/* Weak-linked noop defaults for optional driver interfaces*/

void __weak sys_clock_isr(void *arg)
{
   2b368:	b510      	push	{r4, lr}
	__ASSERT_NO_MSG(false);
   2b36a:	4c05      	ldr	r4, [pc, #20]	; (2b380 <sys_clock_isr+0x18>)
   2b36c:	2217      	movs	r2, #23
   2b36e:	4621      	mov	r1, r4
   2b370:	4804      	ldr	r0, [pc, #16]	; (2b384 <sys_clock_isr+0x1c>)
   2b372:	f008 f81a 	bl	333aa <printk>
   2b376:	2117      	movs	r1, #23
   2b378:	4620      	mov	r0, r4
   2b37a:	f008 fbaf 	bl	33adc <assert_post_action>
}
   2b37e:	bd10      	pop	{r4, pc}
   2b380:	0003eddc 	.word	0x0003eddc
   2b384:	0003bdac 	.word	0x0003bdac

0002b388 <set_comparator>:
	return (a - b) & COUNTER_MAX;
}

static void set_comparator(int32_t chan, uint32_t cyc)
{
	nrf_rtc_cc_set(RTC, chan, cyc & COUNTER_MAX);
   2b388:	f021 417f 	bic.w	r1, r1, #4278190080	; 0xff000000

#ifndef NRF_DECLARE_ONLY

NRF_STATIC_INLINE  void nrf_rtc_cc_set(NRF_RTC_Type * p_reg, uint32_t ch, uint32_t cc_val)
{
    p_reg->CC[ch] = cc_val;
   2b38c:	f500 70a8 	add.w	r0, r0, #336	; 0x150
   2b390:	4b01      	ldr	r3, [pc, #4]	; (2b398 <set_comparator+0x10>)
   2b392:	f843 1020 	str.w	r1, [r3, r0, lsl #2]
}
   2b396:	4770      	bx	lr
   2b398:	40011000 	.word	0x40011000

0002b39c <get_comparator>:
}

NRF_STATIC_INLINE  uint32_t nrf_rtc_cc_get(NRF_RTC_Type const * p_reg, uint32_t ch)
{
    return p_reg->CC[ch];
   2b39c:	f500 70a8 	add.w	r0, r0, #336	; 0x150
   2b3a0:	4b01      	ldr	r3, [pc, #4]	; (2b3a8 <get_comparator+0xc>)
   2b3a2:	f853 0020 	ldr.w	r0, [r3, r0, lsl #2]

static uint32_t get_comparator(int32_t chan)
{
	return nrf_rtc_cc_get(RTC, chan);
}
   2b3a6:	4770      	bx	lr
   2b3a8:	40011000 	.word	0x40011000

0002b3ac <event_enable>:
	nrf_rtc_event_clear(RTC, RTC_CHANNEL_EVENT_ADDR(chan));
}

static void event_enable(int32_t chan)
{
	nrf_rtc_event_enable(RTC, RTC_CHANNEL_INT_MASK(chan));
   2b3ac:	f44f 3380 	mov.w	r3, #65536	; 0x10000
   2b3b0:	4083      	lsls	r3, r0
    *(__IO uint32_t *)((uint32_t)p_reg + task) = 1;
}

NRF_STATIC_INLINE void nrf_rtc_event_enable(NRF_RTC_Type * p_reg, uint32_t mask)
{
    p_reg->EVTENSET = mask;
   2b3b2:	4a02      	ldr	r2, [pc, #8]	; (2b3bc <event_enable+0x10>)
   2b3b4:	f8c2 3344 	str.w	r3, [r2, #836]	; 0x344
}
   2b3b8:	4770      	bx	lr
   2b3ba:	bf00      	nop
   2b3bc:	40011000 	.word	0x40011000

0002b3c0 <event_disable>:

static void event_disable(int32_t chan)
{
	nrf_rtc_event_disable(RTC, RTC_CHANNEL_INT_MASK(chan));
   2b3c0:	f44f 3380 	mov.w	r3, #65536	; 0x10000
   2b3c4:	4083      	lsls	r3, r0
}

NRF_STATIC_INLINE void nrf_rtc_event_disable(NRF_RTC_Type * p_reg, uint32_t mask)
{
    p_reg->EVTENCLR = mask;
   2b3c6:	4a02      	ldr	r2, [pc, #8]	; (2b3d0 <event_disable+0x10>)
   2b3c8:	f8c2 3348 	str.w	r3, [r2, #840]	; 0x348
}
   2b3cc:	4770      	bx	lr
   2b3ce:	bf00      	nop
   2b3d0:	40011000 	.word	0x40011000

0002b3d4 <counter>:
     return p_reg->COUNTER;
   2b3d4:	4b01      	ldr	r3, [pc, #4]	; (2b3dc <counter+0x8>)
   2b3d6:	f8d3 0504 	ldr.w	r0, [r3, #1284]	; 0x504

static uint32_t counter(void)
{
	return nrf_rtc_counter_get(RTC);
}
   2b3da:	4770      	bx	lr
   2b3dc:	40011000 	.word	0x40011000

0002b3e0 <compare_int_lock>:
	__ASSERT_NO_MSG(chan < CHAN_COUNT);
	return nrf_rtc_event_address_get(RTC, nrf_rtc_compare_event_get(chan));
}

static bool compare_int_lock(int32_t chan)
{
   2b3e0:	b510      	push	{r4, lr}
	atomic_val_t prev = atomic_and(&int_mask, ~BIT(chan));
   2b3e2:	2301      	movs	r3, #1
   2b3e4:	4083      	lsls	r3, r0
   2b3e6:	43dc      	mvns	r4, r3
	return __atomic_fetch_and(target, value, __ATOMIC_SEQ_CST);
   2b3e8:	4a10      	ldr	r2, [pc, #64]	; (2b42c <compare_int_lock+0x4c>)
   2b3ea:	f3bf 8f5b 	dmb	ish
   2b3ee:	e852 1f00 	ldrex	r1, [r2]
   2b3f2:	ea01 0c04 	and.w	ip, r1, r4
   2b3f6:	e842 ce00 	strex	lr, ip, [r2]
   2b3fa:	f1be 0f00 	cmp.w	lr, #0
   2b3fe:	d1f6      	bne.n	2b3ee <compare_int_lock+0xe>
   2b400:	f3bf 8f5b 	dmb	ish

	nrf_rtc_int_disable(RTC, RTC_CHANNEL_INT_MASK(chan));
   2b404:	f44f 3280 	mov.w	r2, #65536	; 0x10000
   2b408:	fa02 f000 	lsl.w	r0, r2, r0
    p_reg->INTENCLR = mask;
   2b40c:	f102 4280 	add.w	r2, r2, #1073741824	; 0x40000000
   2b410:	f502 5280 	add.w	r2, r2, #4096	; 0x1000
   2b414:	f8c2 0308 	str.w	r0, [r2, #776]	; 0x308
  __ASM volatile ("dmb 0xF":::"memory");
   2b418:	f3bf 8f5f 	dmb	sy
  __ASM volatile ("isb 0xF":::"memory");
   2b41c:	f3bf 8f6f 	isb	sy

	__DMB();
	__ISB();

	return prev & BIT(chan);
   2b420:	420b      	tst	r3, r1
}
   2b422:	bf14      	ite	ne
   2b424:	2001      	movne	r0, #1
   2b426:	2000      	moveq	r0, #0
   2b428:	bd10      	pop	{r4, pc}
   2b42a:	bf00      	nop
   2b42c:	20002560 	.word	0x20002560

0002b430 <channel_processing_check_and_clear>:
		event_enable(chan);
	}
}

static bool channel_processing_check_and_clear(int32_t chan)
{
   2b430:	b570      	push	{r4, r5, r6, lr}
   2b432:	4604      	mov	r4, r0
	bool result = false;

	uint32_t mcu_critical_state = full_int_lock();
   2b434:	f00e f9d1 	bl	397da <full_int_lock>
   2b438:	4605      	mov	r5, r0

	if (nrf_rtc_int_enable_check(RTC, RTC_CHANNEL_INT_MASK(chan))) {
   2b43a:	f44f 3380 	mov.w	r3, #65536	; 0x10000
   2b43e:	40a3      	lsls	r3, r4
    return p_reg->INTENSET & mask;
   2b440:	4a17      	ldr	r2, [pc, #92]	; (2b4a0 <channel_processing_check_and_clear+0x70>)
   2b442:	f8d2 2304 	ldr.w	r2, [r2, #772]	; 0x304
   2b446:	4213      	tst	r3, r2
   2b448:	d105      	bne.n	2b456 <channel_processing_check_and_clear+0x26>
	bool result = false;
   2b44a:	2600      	movs	r6, #0
		if (result) {
			event_clear(chan);
		}
	}

	full_int_unlock(mcu_critical_state);
   2b44c:	4628      	mov	r0, r5
   2b44e:	f00e f9c8 	bl	397e2 <full_int_unlock>

	return result;
}
   2b452:	4630      	mov	r0, r6
   2b454:	bd70      	pop	{r4, r5, r6, pc}
		result = atomic_and(&force_isr_mask, ~BIT(chan)) ||
   2b456:	2301      	movs	r3, #1
   2b458:	40a3      	lsls	r3, r4
   2b45a:	43db      	mvns	r3, r3
   2b45c:	4a11      	ldr	r2, [pc, #68]	; (2b4a4 <channel_processing_check_and_clear+0x74>)
   2b45e:	f3bf 8f5b 	dmb	ish
   2b462:	e852 1f00 	ldrex	r1, [r2]
   2b466:	ea01 0003 	and.w	r0, r1, r3
   2b46a:	e842 0600 	strex	r6, r0, [r2]
   2b46e:	2e00      	cmp	r6, #0
   2b470:	d1f7      	bne.n	2b462 <channel_processing_check_and_clear+0x32>
   2b472:	f3bf 8f5b 	dmb	ish
   2b476:	b959      	cbnz	r1, 2b490 <channel_processing_check_and_clear+0x60>
			 nrf_rtc_event_check(RTC, RTC_CHANNEL_EVENT_ADDR(chan));
   2b478:	f104 0350 	add.w	r3, r4, #80	; 0x50
   2b47c:	009b      	lsls	r3, r3, #2
   2b47e:	b29b      	uxth	r3, r3
    return (bool)*(volatile uint32_t *)((uint8_t *)p_reg + (uint32_t)event);
   2b480:	f103 4380 	add.w	r3, r3, #1073741824	; 0x40000000
   2b484:	f503 3388 	add.w	r3, r3, #69632	; 0x11000
   2b488:	681b      	ldr	r3, [r3, #0]
		result = atomic_and(&force_isr_mask, ~BIT(chan)) ||
   2b48a:	b113      	cbz	r3, 2b492 <channel_processing_check_and_clear+0x62>
   2b48c:	2301      	movs	r3, #1
   2b48e:	e000      	b.n	2b492 <channel_processing_check_and_clear+0x62>
   2b490:	2301      	movs	r3, #1
		if (result) {
   2b492:	461e      	mov	r6, r3
   2b494:	2b00      	cmp	r3, #0
   2b496:	d0d9      	beq.n	2b44c <channel_processing_check_and_clear+0x1c>
			event_clear(chan);
   2b498:	4620      	mov	r0, r4
   2b49a:	f00e f98f 	bl	397bc <event_clear>
   2b49e:	e7d5      	b.n	2b44c <channel_processing_check_and_clear+0x1c>
   2b4a0:	40011000 	.word	0x40011000
   2b4a4:	2000255c 	.word	0x2000255c

0002b4a8 <compare_int_unlock>:
	if (key) {
   2b4a8:	b901      	cbnz	r1, 2b4ac <compare_int_unlock+0x4>
}
   2b4aa:	4770      	bx	lr
		atomic_or(&int_mask, BIT(chan));
   2b4ac:	2301      	movs	r3, #1
   2b4ae:	4083      	lsls	r3, r0
	return __atomic_fetch_or(target, value, __ATOMIC_SEQ_CST);
   2b4b0:	4a11      	ldr	r2, [pc, #68]	; (2b4f8 <compare_int_unlock+0x50>)
   2b4b2:	f3bf 8f5b 	dmb	ish
   2b4b6:	e852 1f00 	ldrex	r1, [r2]
   2b4ba:	4319      	orrs	r1, r3
   2b4bc:	e842 1c00 	strex	ip, r1, [r2]
   2b4c0:	f1bc 0f00 	cmp.w	ip, #0
   2b4c4:	d1f7      	bne.n	2b4b6 <compare_int_unlock+0xe>
   2b4c6:	f3bf 8f5b 	dmb	ish
		nrf_rtc_int_enable(RTC, RTC_CHANNEL_INT_MASK(chan));
   2b4ca:	f44f 3380 	mov.w	r3, #65536	; 0x10000
   2b4ce:	4083      	lsls	r3, r0
    p_reg->INTENSET = mask;
   2b4d0:	4a0a      	ldr	r2, [pc, #40]	; (2b4fc <compare_int_unlock+0x54>)
   2b4d2:	f8c2 3304 	str.w	r3, [r2, #772]	; 0x304
	return __atomic_load_n(target, __ATOMIC_SEQ_CST);
   2b4d6:	f3bf 8f5b 	dmb	ish
   2b4da:	4b09      	ldr	r3, [pc, #36]	; (2b500 <compare_int_unlock+0x58>)
   2b4dc:	681b      	ldr	r3, [r3, #0]
   2b4de:	f3bf 8f5b 	dmb	ish
		if (atomic_get(&force_isr_mask) & BIT(chan)) {
   2b4e2:	fa23 f000 	lsr.w	r0, r3, r0
   2b4e6:	f010 0f01 	tst.w	r0, #1
   2b4ea:	d0de      	beq.n	2b4aa <compare_int_unlock+0x2>
    NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL));
   2b4ec:	4b05      	ldr	r3, [pc, #20]	; (2b504 <compare_int_unlock+0x5c>)
   2b4ee:	f44f 3200 	mov.w	r2, #131072	; 0x20000
   2b4f2:	f8c3 2100 	str.w	r2, [r3, #256]	; 0x100
}
   2b4f6:	e7d8      	b.n	2b4aa <compare_int_unlock+0x2>
   2b4f8:	20002560 	.word	0x20002560
   2b4fc:	40011000 	.word	0x40011000
   2b500:	2000255c 	.word	0x2000255c
   2b504:	e000e100 	.word	0xe000e100

0002b508 <sys_clock_timeout_handler>:
{
   2b508:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
   2b50a:	4607      	mov	r7, r0
   2b50c:	4614      	mov	r4, r2
   2b50e:	461e      	mov	r6, r3
	uint32_t cc_value = absolute_time_to_cc(expire_time);
   2b510:	4610      	mov	r0, r2
   2b512:	4619      	mov	r1, r3
   2b514:	f00e f95e 	bl	397d4 <absolute_time_to_cc>
   2b518:	4605      	mov	r5, r0
	uint64_t dticks = (expire_time - last_count) / CYC_PER_TICK;
   2b51a:	4b15      	ldr	r3, [pc, #84]	; (2b570 <sys_clock_timeout_handler+0x68>)
   2b51c:	681a      	ldr	r2, [r3, #0]
   2b51e:	1aa0      	subs	r0, r4, r2
	last_count += dticks * CYC_PER_TICK;
   2b520:	601c      	str	r4, [r3, #0]
   2b522:	605e      	str	r6, [r3, #4]
	return (cc_value >= ANCHOR_RANGE_START) && (cc_value < ANCHOR_RANGE_END);
   2b524:	f5a5 1300 	sub.w	r3, r5, #2097152	; 0x200000
	if (in_anchor_range(cc_value)) {
   2b528:	f5b3 0f40 	cmp.w	r3, #12582912	; 0xc00000
   2b52c:	d308      	bcc.n	2b540 <sys_clock_timeout_handler+0x38>
	return false;
   2b52e:	2400      	movs	r4, #0
	sys_clock_announce(IS_ENABLED(CONFIG_TICKLESS_KERNEL) ?
   2b530:	f006 fed0 	bl	322d4 <sys_clock_announce>
	if (cc_value == get_comparator(chan)) {
   2b534:	4638      	mov	r0, r7
   2b536:	f7ff ff31 	bl	2b39c <get_comparator>
   2b53a:	42a8      	cmp	r0, r5
   2b53c:	d00c      	beq.n	2b558 <sys_clock_timeout_handler+0x50>
}
   2b53e:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
		anchor = (((uint64_t)overflow_cnt) << COUNTER_BIT_WIDTH) + cc_value;
   2b540:	4b0c      	ldr	r3, [pc, #48]	; (2b574 <sys_clock_timeout_handler+0x6c>)
   2b542:	6819      	ldr	r1, [r3, #0]
   2b544:	0a0b      	lsrs	r3, r1, #8
   2b546:	060a      	lsls	r2, r1, #24
   2b548:	1952      	adds	r2, r2, r5
   2b54a:	f143 0300 	adc.w	r3, r3, #0
   2b54e:	490a      	ldr	r1, [pc, #40]	; (2b578 <sys_clock_timeout_handler+0x70>)
   2b550:	e9c1 2300 	strd	r2, r3, [r1]
		return true;
   2b554:	2401      	movs	r4, #1
   2b556:	e7eb      	b.n	2b530 <sys_clock_timeout_handler+0x28>
		if (!anchor_updated) {
   2b558:	b11c      	cbz	r4, 2b562 <sys_clock_timeout_handler+0x5a>
		event_enable(chan);
   2b55a:	4638      	mov	r0, r7
   2b55c:	f7ff ff26 	bl	2b3ac <event_enable>
}
   2b560:	e7ed      	b.n	2b53e <sys_clock_timeout_handler+0x36>
			set_comparator(chan, COUNTER_HALF_SPAN);
   2b562:	f44f 0100 	mov.w	r1, #8388608	; 0x800000
   2b566:	4638      	mov	r0, r7
   2b568:	f7ff ff0e 	bl	2b388 <set_comparator>
   2b56c:	e7f5      	b.n	2b55a <sys_clock_timeout_handler+0x52>
   2b56e:	bf00      	nop
   2b570:	20001cf8 	.word	0x20001cf8
   2b574:	20002564 	.word	0x20002564
   2b578:	20001ce0 	.word	0x20001ce0

0002b57c <z_nrf_rtc_timer_read>:
{
   2b57c:	b538      	push	{r3, r4, r5, lr}
	uint64_t val = ((uint64_t)overflow_cnt) << COUNTER_BIT_WIDTH;
   2b57e:	4b0d      	ldr	r3, [pc, #52]	; (2b5b4 <z_nrf_rtc_timer_read+0x38>)
   2b580:	681b      	ldr	r3, [r3, #0]
   2b582:	0a1d      	lsrs	r5, r3, #8
   2b584:	061c      	lsls	r4, r3, #24
  __ASM volatile ("dmb 0xF":::"memory");
   2b586:	f3bf 8f5f 	dmb	sy
	uint32_t cntr = counter();
   2b58a:	f7ff ff23 	bl	2b3d4 <counter>
   2b58e:	4603      	mov	r3, r0
	val += cntr;
   2b590:	1820      	adds	r0, r4, r0
   2b592:	f145 0100 	adc.w	r1, r5, #0
	if (cntr < OVERFLOW_RISK_RANGE_END) {
   2b596:	f5b3 1f80 	cmp.w	r3, #1048576	; 0x100000
   2b59a:	d20a      	bcs.n	2b5b2 <z_nrf_rtc_timer_read+0x36>
		if (val < anchor) {
   2b59c:	4b06      	ldr	r3, [pc, #24]	; (2b5b8 <z_nrf_rtc_timer_read+0x3c>)
   2b59e:	e9d3 2300 	ldrd	r2, r3, [r3]
   2b5a2:	4299      	cmp	r1, r3
   2b5a4:	bf08      	it	eq
   2b5a6:	4290      	cmpeq	r0, r2
   2b5a8:	d203      	bcs.n	2b5b2 <z_nrf_rtc_timer_read+0x36>
			val += COUNTER_SPAN;
   2b5aa:	f110 7080 	adds.w	r0, r0, #16777216	; 0x1000000
   2b5ae:	f141 0100 	adc.w	r1, r1, #0
}
   2b5b2:	bd38      	pop	{r3, r4, r5, pc}
   2b5b4:	20002564 	.word	0x20002564
   2b5b8:	20001ce0 	.word	0x20001ce0

0002b5bc <compare_set_nolocks>:
{
   2b5bc:	e92d 43f8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
   2b5c0:	4606      	mov	r6, r0
   2b5c2:	4614      	mov	r4, r2
   2b5c4:	461d      	mov	r5, r3
	uint32_t cc_value = absolute_time_to_cc(target_time);
   2b5c6:	4610      	mov	r0, r2
   2b5c8:	4619      	mov	r1, r3
   2b5ca:	f00e f903 	bl	397d4 <absolute_time_to_cc>
   2b5ce:	4607      	mov	r7, r0
	uint64_t curr_time = z_nrf_rtc_timer_read();
   2b5d0:	f7ff ffd4 	bl	2b57c <z_nrf_rtc_timer_read>
	if (curr_time < target_time) {
   2b5d4:	42a9      	cmp	r1, r5
   2b5d6:	bf08      	it	eq
   2b5d8:	42a0      	cmpeq	r0, r4
   2b5da:	d21e      	bcs.n	2b61a <compare_set_nolocks+0x5e>
		if (target_time - curr_time > COUNTER_SPAN) {
   2b5dc:	ebb4 0800 	subs.w	r8, r4, r0
   2b5e0:	eb65 0901 	sbc.w	r9, r5, r1
   2b5e4:	f04f 7280 	mov.w	r2, #16777216	; 0x1000000
   2b5e8:	2300      	movs	r3, #0
   2b5ea:	454b      	cmp	r3, r9
   2b5ec:	bf08      	it	eq
   2b5ee:	4542      	cmpeq	r2, r8
   2b5f0:	d32e      	bcc.n	2b650 <compare_set_nolocks+0x94>
		if (target_time != cc_data[chan].target_time) {
   2b5f2:	4b19      	ldr	r3, [pc, #100]	; (2b658 <compare_set_nolocks+0x9c>)
   2b5f4:	eb03 1306 	add.w	r3, r3, r6, lsl #4
   2b5f8:	e9d3 2302 	ldrd	r2, r3, [r3, #8]
   2b5fc:	42ab      	cmp	r3, r5
   2b5fe:	bf08      	it	eq
   2b600:	42a2      	cmpeq	r2, r4
   2b602:	d018      	beq.n	2b636 <compare_set_nolocks+0x7a>
			uint32_t cc_set = set_absolute_alarm(chan, cc_value);
   2b604:	4639      	mov	r1, r7
   2b606:	4630      	mov	r0, r6
   2b608:	f00e f8ee 	bl	397e8 <set_absolute_alarm>
			target_time += counter_sub(cc_set, cc_value);
   2b60c:	4639      	mov	r1, r7
   2b60e:	f00e f8d1 	bl	397b4 <counter_sub>
   2b612:	1824      	adds	r4, r4, r0
   2b614:	f145 0500 	adc.w	r5, r5, #0
   2b618:	e00d      	b.n	2b636 <compare_set_nolocks+0x7a>
		atomic_or(&force_isr_mask, BIT(chan));
   2b61a:	2301      	movs	r3, #1
   2b61c:	40b3      	lsls	r3, r6
	return __atomic_fetch_or(target, value, __ATOMIC_SEQ_CST);
   2b61e:	4a0f      	ldr	r2, [pc, #60]	; (2b65c <compare_set_nolocks+0xa0>)
   2b620:	f3bf 8f5b 	dmb	ish
   2b624:	e852 1f00 	ldrex	r1, [r2]
   2b628:	4319      	orrs	r1, r3
   2b62a:	e842 1000 	strex	r0, r1, [r2]
   2b62e:	2800      	cmp	r0, #0
   2b630:	d1f8      	bne.n	2b624 <compare_set_nolocks+0x68>
   2b632:	f3bf 8f5b 	dmb	ish
	cc_data[chan].target_time = target_time;
   2b636:	4b08      	ldr	r3, [pc, #32]	; (2b658 <compare_set_nolocks+0x9c>)
   2b638:	0132      	lsls	r2, r6, #4
   2b63a:	eb03 1606 	add.w	r6, r3, r6, lsl #4
   2b63e:	e9c6 4502 	strd	r4, r5, [r6, #8]
	cc_data[chan].callback = handler;
   2b642:	9908      	ldr	r1, [sp, #32]
   2b644:	5099      	str	r1, [r3, r2]
	cc_data[chan].user_context = user_data;
   2b646:	9b09      	ldr	r3, [sp, #36]	; 0x24
   2b648:	6073      	str	r3, [r6, #4]
	return ret;
   2b64a:	2000      	movs	r0, #0
}
   2b64c:	e8bd 83f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
			return -EINVAL;
   2b650:	f06f 0015 	mvn.w	r0, #21
   2b654:	e7fa      	b.n	2b64c <compare_set_nolocks+0x90>
   2b656:	bf00      	nop
   2b658:	20001ce8 	.word	0x20001ce8
   2b65c:	2000255c 	.word	0x2000255c

0002b660 <process_channel>:

static void process_channel(int32_t chan)
{
   2b660:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
   2b664:	b082      	sub	sp, #8
   2b666:	4604      	mov	r4, r0
	if (channel_processing_check_and_clear(chan)) {
   2b668:	f7ff fee2 	bl	2b430 <channel_processing_check_and_clear>
   2b66c:	b910      	cbnz	r0, 2b674 <process_channel+0x14>

		if (handler) {
			handler(chan, expire_time, user_context);
		}
	}
}
   2b66e:	b002      	add	sp, #8
   2b670:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
		curr_time = z_nrf_rtc_timer_read();
   2b674:	f7ff ff82 	bl	2b57c <z_nrf_rtc_timer_read>
   2b678:	4606      	mov	r6, r0
   2b67a:	460f      	mov	r7, r1
		mcu_critical_state = full_int_lock();
   2b67c:	f00e f8ad 	bl	397da <full_int_lock>
   2b680:	4682      	mov	sl, r0
		expire_time = cc_data[chan].target_time;
   2b682:	4b13      	ldr	r3, [pc, #76]	; (2b6d0 <process_channel+0x70>)
   2b684:	eb03 1304 	add.w	r3, r3, r4, lsl #4
   2b688:	e9d3 8902 	ldrd	r8, r9, [r3, #8]
		if (curr_time >= expire_time) {
   2b68c:	454f      	cmp	r7, r9
   2b68e:	bf08      	it	eq
   2b690:	4546      	cmpeq	r6, r8
   2b692:	d20b      	bcs.n	2b6ac <process_channel+0x4c>
		z_nrf_rtc_timer_compare_handler_t handler = NULL;
   2b694:	2600      	movs	r6, #0
		full_int_unlock(mcu_critical_state);
   2b696:	4650      	mov	r0, sl
   2b698:	f00e f8a3 	bl	397e2 <full_int_unlock>
		if (handler) {
   2b69c:	2e00      	cmp	r6, #0
   2b69e:	d0e6      	beq.n	2b66e <process_channel+0xe>
			handler(chan, expire_time, user_context);
   2b6a0:	9500      	str	r5, [sp, #0]
   2b6a2:	4642      	mov	r2, r8
   2b6a4:	464b      	mov	r3, r9
   2b6a6:	4620      	mov	r0, r4
   2b6a8:	47b0      	blx	r6
}
   2b6aa:	e7e0      	b.n	2b66e <process_channel+0xe>
			handler = cc_data[chan].callback;
   2b6ac:	4a08      	ldr	r2, [pc, #32]	; (2b6d0 <process_channel+0x70>)
   2b6ae:	0123      	lsls	r3, r4, #4
   2b6b0:	eb02 1104 	add.w	r1, r2, r4, lsl #4
   2b6b4:	58d6      	ldr	r6, [r2, r3]
			user_context = cc_data[chan].user_context;
   2b6b6:	684d      	ldr	r5, [r1, #4]
			cc_data[chan].callback = NULL;
   2b6b8:	2000      	movs	r0, #0
   2b6ba:	50d0      	str	r0, [r2, r3]
			cc_data[chan].target_time = TARGET_TIME_INVALID;
   2b6bc:	f04f 32ff 	mov.w	r2, #4294967295
   2b6c0:	f04f 33ff 	mov.w	r3, #4294967295
   2b6c4:	e9c1 2302 	strd	r2, r3, [r1, #8]
			event_disable(chan);
   2b6c8:	4620      	mov	r0, r4
   2b6ca:	f7ff fe79 	bl	2b3c0 <event_disable>
   2b6ce:	e7e2      	b.n	2b696 <process_channel+0x36>
   2b6d0:	20001ce8 	.word	0x20001ce8

0002b6d4 <rtc_nrf_isr>:
 * probably better abstract that at some point (e.g. query and reset
 * it by pointer at runtime, maybe?) so we don't have this leaky
 * symbol.
 */
void rtc_nrf_isr(const void *arg)
{
   2b6d4:	b510      	push	{r4, lr}
    return p_reg->INTENSET & mask;
   2b6d6:	4b0d      	ldr	r3, [pc, #52]	; (2b70c <rtc_nrf_isr+0x38>)
   2b6d8:	f8d3 3304 	ldr.w	r3, [r3, #772]	; 0x304
	ARG_UNUSED(arg);

	if (nrf_rtc_int_enable_check(RTC, NRF_RTC_INT_OVERFLOW_MASK) &&
   2b6dc:	f013 0f02 	tst.w	r3, #2
   2b6e0:	d00a      	beq.n	2b6f8 <rtc_nrf_isr+0x24>
    return (bool)*(volatile uint32_t *)((uint8_t *)p_reg + (uint32_t)event);
   2b6e2:	4b0b      	ldr	r3, [pc, #44]	; (2b710 <rtc_nrf_isr+0x3c>)
   2b6e4:	681b      	ldr	r3, [r3, #0]
   2b6e6:	b13b      	cbz	r3, 2b6f8 <rtc_nrf_isr+0x24>
    *((volatile uint32_t *)((uint8_t *)p_reg + (uint32_t)event)) = 0;
   2b6e8:	4b09      	ldr	r3, [pc, #36]	; (2b710 <rtc_nrf_isr+0x3c>)
   2b6ea:	2200      	movs	r2, #0
   2b6ec:	601a      	str	r2, [r3, #0]
   2b6ee:	681b      	ldr	r3, [r3, #0]
	    nrf_rtc_event_check(RTC, NRF_RTC_EVENT_OVERFLOW)) {
		nrf_rtc_event_clear(RTC, NRF_RTC_EVENT_OVERFLOW);
		overflow_cnt++;
   2b6f0:	4a08      	ldr	r2, [pc, #32]	; (2b714 <rtc_nrf_isr+0x40>)
   2b6f2:	6813      	ldr	r3, [r2, #0]
   2b6f4:	3301      	adds	r3, #1
   2b6f6:	6013      	str	r3, [r2, #0]
{
   2b6f8:	2400      	movs	r4, #0
	}

	for (int32_t chan = 0; chan < CHAN_COUNT; chan++) {
   2b6fa:	2c00      	cmp	r4, #0
   2b6fc:	dd00      	ble.n	2b700 <rtc_nrf_isr+0x2c>
		process_channel(chan);
	}
}
   2b6fe:	bd10      	pop	{r4, pc}
		process_channel(chan);
   2b700:	4620      	mov	r0, r4
   2b702:	f7ff ffad 	bl	2b660 <process_channel>
	for (int32_t chan = 0; chan < CHAN_COUNT; chan++) {
   2b706:	3401      	adds	r4, #1
   2b708:	e7f7      	b.n	2b6fa <rtc_nrf_isr+0x26>
   2b70a:	bf00      	nop
   2b70c:	40011000 	.word	0x40011000
   2b710:	40011104 	.word	0x40011104
   2b714:	20002564 	.word	0x20002564

0002b718 <sys_clock_driver_init>:

	atomic_or(&alloc_mask, BIT(chan));
}

int sys_clock_driver_init(const struct device *dev)
{
   2b718:	b530      	push	{r4, r5, lr}
   2b71a:	b083      	sub	sp, #12
    p_reg->PRESCALER = val;
   2b71c:	2300      	movs	r3, #0
   2b71e:	4a1f      	ldr	r2, [pc, #124]	; (2b79c <sys_clock_driver_init+0x84>)
   2b720:	f8c2 3508 	str.w	r3, [r2, #1288]	; 0x508
			CLOCK_CONTROL_NRF_LF_START_AVAILABLE :
			CLOCK_CONTROL_NRF_LF_START_STABLE);

	/* TODO: replace with counter driver to access RTC */
	nrf_rtc_prescaler_set(RTC, 0);
	for (int32_t chan = 0; chan < CHAN_COUNT; chan++) {
   2b724:	2b00      	cmp	r3, #0
   2b726:	dd27      	ble.n	2b778 <sys_clock_driver_init+0x60>
    p_reg->INTENSET = mask;
   2b728:	4c1c      	ldr	r4, [pc, #112]	; (2b79c <sys_clock_driver_init+0x84>)
   2b72a:	2502      	movs	r5, #2
   2b72c:	f8c4 5304 	str.w	r5, [r4, #772]	; 0x304
    NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL));
   2b730:	4b1b      	ldr	r3, [pc, #108]	; (2b7a0 <sys_clock_driver_init+0x88>)
   2b732:	f44f 3200 	mov.w	r2, #131072	; 0x20000
   2b736:	f8c3 2180 	str.w	r2, [r3, #384]	; 0x180

	nrf_rtc_int_enable(RTC, NRF_RTC_INT_OVERFLOW_MASK);

	NVIC_ClearPendingIRQ(RTC_IRQn);

	IRQ_CONNECT(RTC_IRQn, DT_IRQ(DT_NODELABEL(RTC_LABEL), priority),
   2b73a:	2200      	movs	r2, #0
   2b73c:	2101      	movs	r1, #1
   2b73e:	2011      	movs	r0, #17
   2b740:	f7f3 fe52 	bl	1f3e8 <z_arm_irq_priority_set>
		    rtc_nrf_isr, 0, 0);
	irq_enable(RTC_IRQn);
   2b744:	2011      	movs	r0, #17
   2b746:	f7f3 fe1d 	bl	1f384 <arch_irq_enable>
   2b74a:	f8c4 5304 	str.w	r5, [r4, #772]	; 0x304
    *(__IO uint32_t *)((uint32_t)p_reg + task) = 1;
   2b74e:	2301      	movs	r3, #1
   2b750:	4a14      	ldr	r2, [pc, #80]	; (2b7a4 <sys_clock_driver_init+0x8c>)
   2b752:	6013      	str	r3, [r2, #0]
   2b754:	6023      	str	r3, [r4, #0]

	nrf_rtc_int_enable(RTC, NRF_RTC_INT_OVERFLOW_MASK);
	nrf_rtc_task_trigger(RTC, NRF_RTC_TASK_CLEAR);
	nrf_rtc_task_trigger(RTC, NRF_RTC_TASK_START);

	int_mask = BIT_MASK(CHAN_COUNT);
   2b756:	4a14      	ldr	r2, [pc, #80]	; (2b7a8 <sys_clock_driver_init+0x90>)
   2b758:	6013      	str	r3, [r2, #0]

	uint32_t initial_timeout = IS_ENABLED(CONFIG_TICKLESS_KERNEL) ?
				(COUNTER_HALF_SPAN - 1) :
				(counter() + CYC_PER_TICK);

	compare_set(0, initial_timeout, sys_clock_timeout_handler, NULL);
   2b75a:	2400      	movs	r4, #0
   2b75c:	9401      	str	r4, [sp, #4]
   2b75e:	4b13      	ldr	r3, [pc, #76]	; (2b7ac <sys_clock_driver_init+0x94>)
   2b760:	9300      	str	r3, [sp, #0]
   2b762:	4a13      	ldr	r2, [pc, #76]	; (2b7b0 <sys_clock_driver_init+0x98>)
   2b764:	2300      	movs	r3, #0
   2b766:	4620      	mov	r0, r4
   2b768:	f00e f879 	bl	3985e <compare_set>

	z_nrf_clock_control_lf_on(mode);
   2b76c:	4628      	mov	r0, r5
   2b76e:	f7fe faf7 	bl	29d60 <z_nrf_clock_control_lf_on>

	return 0;
}
   2b772:	4620      	mov	r0, r4
   2b774:	b003      	add	sp, #12
   2b776:	bd30      	pop	{r4, r5, pc}
		cc_data[chan].target_time = TARGET_TIME_INVALID;
   2b778:	4a0e      	ldr	r2, [pc, #56]	; (2b7b4 <sys_clock_driver_init+0x9c>)
   2b77a:	eb02 1203 	add.w	r2, r2, r3, lsl #4
   2b77e:	f04f 30ff 	mov.w	r0, #4294967295
   2b782:	f04f 31ff 	mov.w	r1, #4294967295
   2b786:	e9c2 0102 	strd	r0, r1, [r2, #8]
		nrf_rtc_int_enable(RTC, RTC_CHANNEL_INT_MASK(chan));
   2b78a:	f44f 3280 	mov.w	r2, #65536	; 0x10000
   2b78e:	409a      	lsls	r2, r3
    p_reg->INTENSET = mask;
   2b790:	4902      	ldr	r1, [pc, #8]	; (2b79c <sys_clock_driver_init+0x84>)
   2b792:	f8c1 2304 	str.w	r2, [r1, #772]	; 0x304
	for (int32_t chan = 0; chan < CHAN_COUNT; chan++) {
   2b796:	3301      	adds	r3, #1
   2b798:	e7c4      	b.n	2b724 <sys_clock_driver_init+0xc>
   2b79a:	bf00      	nop
   2b79c:	40011000 	.word	0x40011000
   2b7a0:	e000e100 	.word	0xe000e100
   2b7a4:	40011008 	.word	0x40011008
   2b7a8:	20002560 	.word	0x20002560
   2b7ac:	0002b509 	.word	0x0002b509
   2b7b0:	007fffff 	.word	0x007fffff
   2b7b4:	20001ce8 	.word	0x20001ce8

0002b7b8 <sys_clock_set_timeout>:

void sys_clock_set_timeout(int32_t ticks, bool idle)
{
   2b7b8:	b510      	push	{r4, lr}
   2b7ba:	b082      	sub	sp, #8

	if (!IS_ENABLED(CONFIG_TICKLESS_KERNEL)) {
		return;
	}

	ticks = (ticks == K_TICKS_FOREVER) ? MAX_TICKS : ticks;
   2b7bc:	f1b0 3fff 	cmp.w	r0, #4294967295
   2b7c0:	d007      	beq.n	2b7d2 <sys_clock_set_timeout+0x1a>
	ticks = CLAMP(ticks - 1, 0, (int32_t)MAX_TICKS);
   2b7c2:	1e44      	subs	r4, r0, #1
   2b7c4:	2c00      	cmp	r4, #0
   2b7c6:	dd07      	ble.n	2b7d8 <sys_clock_set_timeout+0x20>
   2b7c8:	4b11      	ldr	r3, [pc, #68]	; (2b810 <sys_clock_set_timeout+0x58>)
   2b7ca:	429c      	cmp	r4, r3
   2b7cc:	dd05      	ble.n	2b7da <sys_clock_set_timeout+0x22>
   2b7ce:	4c11      	ldr	r4, [pc, #68]	; (2b814 <sys_clock_set_timeout+0x5c>)
   2b7d0:	e003      	b.n	2b7da <sys_clock_set_timeout+0x22>
	ticks = (ticks == K_TICKS_FOREVER) ? MAX_TICKS : ticks;
   2b7d2:	f500 0000 	add.w	r0, r0, #8388608	; 0x800000
   2b7d6:	e7f4      	b.n	2b7c2 <sys_clock_set_timeout+0xa>
	ticks = CLAMP(ticks - 1, 0, (int32_t)MAX_TICKS);
   2b7d8:	2400      	movs	r4, #0

	uint32_t unannounced = z_nrf_rtc_timer_read() - last_count;
   2b7da:	f7ff fecf 	bl	2b57c <z_nrf_rtc_timer_read>
   2b7de:	4b0e      	ldr	r3, [pc, #56]	; (2b818 <sys_clock_set_timeout+0x60>)
   2b7e0:	e9d3 2300 	ldrd	r2, r3, [r3]
   2b7e4:	1a80      	subs	r0, r0, r2
	/* If we haven't announced for more than half the 24-bit wrap
	 * duration, then force an announce to avoid loss of a wrap
	 * event.  This can happen if new timeouts keep being set
	 * before the existing one triggers the interrupt.
	 */
	if (unannounced >= COUNTER_HALF_SPAN) {
   2b7e6:	f5b0 0f00 	cmp.w	r0, #8388608	; 0x800000
   2b7ea:	d300      	bcc.n	2b7ee <sys_clock_set_timeout+0x36>
		ticks = 0;
   2b7ec:	2400      	movs	r4, #0
	}

	/* Get the cycles from last_count to the tick boundary after
	 * the requested ticks have passed starting now.
	 */
	cyc = ticks * CYC_PER_TICK + 1 + unannounced;
   2b7ee:	4404      	add	r4, r0
   2b7f0:	3401      	adds	r4, #1
	cyc = (cyc / CYC_PER_TICK) * CYC_PER_TICK;

	/* Due to elapsed time the calculation above might produce a
	 * duration that laps the counter.  Don't let it.
	 */
	if (cyc > MAX_CYCLES) {
   2b7f2:	f5b4 0f00 	cmp.w	r4, #8388608	; 0x800000
   2b7f6:	d300      	bcc.n	2b7fa <sys_clock_set_timeout+0x42>
		cyc = MAX_CYCLES;
   2b7f8:	4c06      	ldr	r4, [pc, #24]	; (2b814 <sys_clock_set_timeout+0x5c>)
	}

	uint64_t target_time = cyc + last_count;

	compare_set(0, target_time, sys_clock_timeout_handler, NULL);
   2b7fa:	2000      	movs	r0, #0
   2b7fc:	9001      	str	r0, [sp, #4]
   2b7fe:	4907      	ldr	r1, [pc, #28]	; (2b81c <sys_clock_set_timeout+0x64>)
   2b800:	9100      	str	r1, [sp, #0]
   2b802:	1912      	adds	r2, r2, r4
   2b804:	f143 0300 	adc.w	r3, r3, #0
   2b808:	f00e f829 	bl	3985e <compare_set>
}
   2b80c:	b002      	add	sp, #8
   2b80e:	bd10      	pop	{r4, pc}
   2b810:	007ffffe 	.word	0x007ffffe
   2b814:	007fffff 	.word	0x007fffff
   2b818:	20001cf8 	.word	0x20001cf8
   2b81c:	0002b509 	.word	0x0002b509

0002b820 <sys_clock_elapsed>:

uint32_t sys_clock_elapsed(void)
{
   2b820:	b508      	push	{r3, lr}
	if (!IS_ENABLED(CONFIG_TICKLESS_KERNEL)) {
		return 0;
	}

	return (z_nrf_rtc_timer_read() - last_count) / CYC_PER_TICK;
   2b822:	f7ff feab 	bl	2b57c <z_nrf_rtc_timer_read>
   2b826:	4b02      	ldr	r3, [pc, #8]	; (2b830 <sys_clock_elapsed+0x10>)
   2b828:	681b      	ldr	r3, [r3, #0]
}
   2b82a:	1ac0      	subs	r0, r0, r3
   2b82c:	bd08      	pop	{r3, pc}
   2b82e:	bf00      	nop
   2b830:	20001cf8 	.word	0x20001cf8

0002b834 <get_buttons>:

	return err;
}

static uint32_t get_buttons(void)
{
   2b834:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   2b838:	b082      	sub	sp, #8
	uint32_t ret = 0;
	for (size_t i = 0; i < ARRAY_SIZE(button_pins); i++) {
   2b83a:	2400      	movs	r4, #0
	uint32_t ret = 0;
   2b83c:	4627      	mov	r7, r4
	for (size_t i = 0; i < ARRAY_SIZE(button_pins); i++) {
   2b83e:	e017      	b.n	2b870 <get_buttons+0x3c>
		(const struct gpio_driver_config *)port->config;
	gpio_port_value_t value;
	int ret;

	(void)cfg;
	__ASSERT((cfg->port_pin_mask & (gpio_port_pins_t)BIT(pin)) != 0U,
   2b840:	f8df 8084 	ldr.w	r8, [pc, #132]	; 2b8c8 <get_buttons+0x94>
   2b844:	f240 422d 	movw	r2, #1069	; 0x42d
   2b848:	4641      	mov	r1, r8
   2b84a:	481b      	ldr	r0, [pc, #108]	; (2b8b8 <get_buttons+0x84>)
   2b84c:	f007 fdad 	bl	333aa <printk>
   2b850:	f240 412d 	movw	r1, #1069	; 0x42d
   2b854:	4640      	mov	r0, r8
   2b856:	f008 f941 	bl	33adc <assert_post_action>
   2b85a:	e018      	b.n	2b88e <get_buttons+0x5a>
		int val;

		val = gpio_pin_get_raw(button_devs[i], button_pins[i].number);
		if (val < 0) {
			LOG_ERR("Cannot read gpio pin");
   2b85c:	2145      	movs	r1, #69	; 0x45
   2b85e:	4817      	ldr	r0, [pc, #92]	; (2b8bc <get_buttons+0x88>)
   2b860:	f008 f944 	bl	33aec <z_log_minimal_printk>
			return 0;
   2b864:	2700      	movs	r7, #0
			ret |= 1U << i;
		}
	}

	return ret;
}
   2b866:	4638      	mov	r0, r7
   2b868:	b002      	add	sp, #8
   2b86a:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
	for (size_t i = 0; i < ARRAY_SIZE(button_pins); i++) {
   2b86e:	3401      	adds	r4, #1
   2b870:	2c03      	cmp	r4, #3
   2b872:	d8f8      	bhi.n	2b866 <get_buttons+0x32>
		val = gpio_pin_get_raw(button_devs[i], button_pins[i].number);
   2b874:	4b12      	ldr	r3, [pc, #72]	; (2b8c0 <get_buttons+0x8c>)
   2b876:	f853 6024 	ldr.w	r6, [r3, r4, lsl #2]
   2b87a:	4b12      	ldr	r3, [pc, #72]	; (2b8c4 <get_buttons+0x90>)
   2b87c:	eb03 03c4 	add.w	r3, r3, r4, lsl #3
   2b880:	791a      	ldrb	r2, [r3, #4]
	const struct gpio_driver_config *const cfg =
   2b882:	6873      	ldr	r3, [r6, #4]
	__ASSERT((cfg->port_pin_mask & (gpio_port_pins_t)BIT(pin)) != 0U,
   2b884:	681b      	ldr	r3, [r3, #0]
   2b886:	2501      	movs	r5, #1
   2b888:	4095      	lsls	r5, r2
   2b88a:	422b      	tst	r3, r5
   2b88c:	d0d8      	beq.n	2b840 <get_buttons+0xc>
	const struct gpio_driver_api *api =
   2b88e:	68b3      	ldr	r3, [r6, #8]
	return api->port_get_raw(port, value);
   2b890:	685b      	ldr	r3, [r3, #4]
   2b892:	a901      	add	r1, sp, #4
   2b894:	4630      	mov	r0, r6
   2b896:	4798      	blx	r3
		 "Unsupported pin");

	ret = gpio_port_get_raw(port, &value);
	if (ret == 0) {
   2b898:	4603      	mov	r3, r0
   2b89a:	b920      	cbnz	r0, 2b8a6 <get_buttons+0x72>
		ret = (value & (gpio_port_pins_t)BIT(pin)) != 0 ? 1 : 0;
   2b89c:	9b01      	ldr	r3, [sp, #4]
   2b89e:	421d      	tst	r5, r3
   2b8a0:	bf14      	ite	ne
   2b8a2:	2301      	movne	r3, #1
   2b8a4:	2300      	moveq	r3, #0
		if (val < 0) {
   2b8a6:	2b00      	cmp	r3, #0
   2b8a8:	dbd8      	blt.n	2b85c <get_buttons+0x28>
		if ((val && !IS_ENABLED(CONFIG_DK_LIBRARY_INVERT_BUTTONS)) ||
   2b8aa:	2b00      	cmp	r3, #0
   2b8ac:	d1df      	bne.n	2b86e <get_buttons+0x3a>
			ret |= 1U << i;
   2b8ae:	2301      	movs	r3, #1
   2b8b0:	40a3      	lsls	r3, r4
   2b8b2:	431f      	orrs	r7, r3
   2b8b4:	e7db      	b.n	2b86e <get_buttons+0x3a>
   2b8b6:	bf00      	nop
   2b8b8:	0003bdac 	.word	0x0003bdac
   2b8bc:	0003ee48 	.word	0x0003ee48
   2b8c0:	20002568 	.word	0x20002568
   2b8c4:	0003efd4 	.word	0x0003efd4
   2b8c8:	0003ee1c 	.word	0x0003ee1c

0002b8cc <button_handlers_call>:

static void button_handlers_call(uint32_t button_state, uint32_t has_changed)
{
   2b8cc:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
   2b8ce:	4606      	mov	r6, r0
   2b8d0:	460f      	mov	r7, r1
	struct button_handler *handler;

	if (button_handler_cb != NULL) {
   2b8d2:	4b11      	ldr	r3, [pc, #68]	; (2b918 <button_handlers_call+0x4c>)
   2b8d4:	681b      	ldr	r3, [r3, #0]
   2b8d6:	b103      	cbz	r3, 2b8da <button_handlers_call+0xe>
		button_handler_cb(button_state, has_changed);
   2b8d8:	4798      	blx	r3
	return z_impl_k_mutex_lock(mutex, timeout);
   2b8da:	f04f 32ff 	mov.w	r2, #4294967295
   2b8de:	f04f 33ff 	mov.w	r3, #4294967295
   2b8e2:	480e      	ldr	r0, [pc, #56]	; (2b91c <button_handlers_call+0x50>)
   2b8e4:	f004 f81c 	bl	2f920 <z_impl_k_mutex_lock>
	return list->head;
   2b8e8:	4b0d      	ldr	r3, [pc, #52]	; (2b920 <button_handlers_call+0x54>)
   2b8ea:	681c      	ldr	r4, [r3, #0]
	}

	if (IS_ENABLED(CONFIG_DK_LIBRARY_DYNAMIC_BUTTON_HANDLERS)) {
		k_mutex_lock(&button_handler_mut, K_FOREVER);
		SYS_SLIST_FOR_EACH_CONTAINER(&button_handlers, handler, node) {
   2b8ec:	b114      	cbz	r4, 2b8f4 <button_handlers_call+0x28>
   2b8ee:	3c04      	subs	r4, #4
   2b8f0:	e000      	b.n	2b8f4 <button_handlers_call+0x28>
   2b8f2:	462c      	mov	r4, r5
   2b8f4:	b15c      	cbz	r4, 2b90e <button_handlers_call+0x42>
			handler->cb(button_state, has_changed);
   2b8f6:	4625      	mov	r5, r4
   2b8f8:	f855 3b04 	ldr.w	r3, [r5], #4
   2b8fc:	4639      	mov	r1, r7
   2b8fe:	4630      	mov	r0, r6
   2b900:	4798      	blx	r3
Z_GENLIST_PEEK_NEXT(slist, snode)
   2b902:	2d00      	cmp	r5, #0
   2b904:	d0f5      	beq.n	2b8f2 <button_handlers_call+0x26>
	return node->next;
   2b906:	6864      	ldr	r4, [r4, #4]
		SYS_SLIST_FOR_EACH_CONTAINER(&button_handlers, handler, node) {
   2b908:	b10c      	cbz	r4, 2b90e <button_handlers_call+0x42>
   2b90a:	3c04      	subs	r4, #4
   2b90c:	e7f2      	b.n	2b8f4 <button_handlers_call+0x28>
	return z_impl_k_mutex_unlock(mutex);
   2b90e:	4803      	ldr	r0, [pc, #12]	; (2b91c <button_handlers_call+0x50>)
   2b910:	f004 f8fc 	bl	2fb0c <z_impl_k_mutex_unlock>
		}
		k_mutex_unlock(&button_handler_mut);
	}
}
   2b914:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
   2b916:	bf00      	nop
   2b918:	20002578 	.word	0x20002578
   2b91c:	2000257c 	.word	0x2000257c
   2b920:	20002590 	.word	0x20002590

0002b924 <callback_ctrl>:
{
   2b924:	e92d 43f8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
   2b928:	4606      	mov	r6, r0
	for (size_t i = 0; (i < ARRAY_SIZE(button_pins)) && !err; i++) {
   2b92a:	2400      	movs	r4, #0
	int err = 0;
   2b92c:	4620      	mov	r0, r4
	for (size_t i = 0; (i < ARRAY_SIZE(button_pins)) && !err; i++) {
   2b92e:	e009      	b.n	2b944 <callback_ctrl+0x20>
	return api->pin_interrupt_configure(port, pin, mode, trig);
   2b930:	f8d8 8018 	ldr.w	r8, [r8, #24]
   2b934:	f44f 3300 	mov.w	r3, #131072	; 0x20000
   2b938:	f44f 4280 	mov.w	r2, #16384	; 0x4000
   2b93c:	4639      	mov	r1, r7
   2b93e:	4628      	mov	r0, r5
   2b940:	47c0      	blx	r8
   2b942:	3401      	adds	r4, #1
   2b944:	2c03      	cmp	r4, #3
   2b946:	d845      	bhi.n	2b9d4 <callback_ctrl+0xb0>
   2b948:	2800      	cmp	r0, #0
   2b94a:	d143      	bne.n	2b9d4 <callback_ctrl+0xb0>
		if (enable) {
   2b94c:	b1e6      	cbz	r6, 2b988 <callback_ctrl+0x64>
			err = gpio_pin_interrupt_configure(button_devs[i],
   2b94e:	4b22      	ldr	r3, [pc, #136]	; (2b9d8 <callback_ctrl+0xb4>)
   2b950:	f853 5024 	ldr.w	r5, [r3, r4, lsl #2]
   2b954:	4b21      	ldr	r3, [pc, #132]	; (2b9dc <callback_ctrl+0xb8>)
   2b956:	eb03 03c4 	add.w	r3, r3, r4, lsl #3
   2b95a:	791f      	ldrb	r7, [r3, #4]
	const struct gpio_driver_api *api =
   2b95c:	f8d5 8008 	ldr.w	r8, [r5, #8]
	const struct gpio_driver_config *const cfg =
   2b960:	686b      	ldr	r3, [r5, #4]
	__ASSERT((cfg->port_pin_mask & (gpio_port_pins_t)BIT(pin)) != 0U,
   2b962:	681a      	ldr	r2, [r3, #0]
   2b964:	2301      	movs	r3, #1
   2b966:	40bb      	lsls	r3, r7
   2b968:	421a      	tst	r2, r3
   2b96a:	d1e1      	bne.n	2b930 <callback_ctrl+0xc>
   2b96c:	f8df 9074 	ldr.w	r9, [pc, #116]	; 2b9e4 <callback_ctrl+0xc0>
   2b970:	f44f 7224 	mov.w	r2, #656	; 0x290
   2b974:	4649      	mov	r1, r9
   2b976:	481a      	ldr	r0, [pc, #104]	; (2b9e0 <callback_ctrl+0xbc>)
   2b978:	f007 fd17 	bl	333aa <printk>
   2b97c:	f44f 7124 	mov.w	r1, #656	; 0x290
   2b980:	4648      	mov	r0, r9
   2b982:	f008 f8ab 	bl	33adc <assert_post_action>
   2b986:	e7d3      	b.n	2b930 <callback_ctrl+0xc>
			err = gpio_pin_interrupt_configure(button_devs[i],
   2b988:	4b13      	ldr	r3, [pc, #76]	; (2b9d8 <callback_ctrl+0xb4>)
   2b98a:	f853 5024 	ldr.w	r5, [r3, r4, lsl #2]
   2b98e:	4b13      	ldr	r3, [pc, #76]	; (2b9dc <callback_ctrl+0xb8>)
   2b990:	eb03 03c4 	add.w	r3, r3, r4, lsl #3
   2b994:	791f      	ldrb	r7, [r3, #4]
	const struct gpio_driver_api *api =
   2b996:	f8d5 8008 	ldr.w	r8, [r5, #8]
	const struct gpio_driver_config *const cfg =
   2b99a:	686b      	ldr	r3, [r5, #4]
	__ASSERT((cfg->port_pin_mask & (gpio_port_pins_t)BIT(pin)) != 0U,
   2b99c:	681a      	ldr	r2, [r3, #0]
   2b99e:	2301      	movs	r3, #1
   2b9a0:	40bb      	lsls	r3, r7
   2b9a2:	421a      	tst	r2, r3
   2b9a4:	d008      	beq.n	2b9b8 <callback_ctrl+0x94>
	return api->pin_interrupt_configure(port, pin, mode, trig);
   2b9a6:	f8d8 8018 	ldr.w	r8, [r8, #24]
   2b9aa:	2300      	movs	r3, #0
   2b9ac:	f44f 5200 	mov.w	r2, #8192	; 0x2000
   2b9b0:	4639      	mov	r1, r7
   2b9b2:	4628      	mov	r0, r5
   2b9b4:	47c0      	blx	r8
   2b9b6:	e7c4      	b.n	2b942 <callback_ctrl+0x1e>
	__ASSERT((cfg->port_pin_mask & (gpio_port_pins_t)BIT(pin)) != 0U,
   2b9b8:	f8df 9028 	ldr.w	r9, [pc, #40]	; 2b9e4 <callback_ctrl+0xc0>
   2b9bc:	f44f 7224 	mov.w	r2, #656	; 0x290
   2b9c0:	4649      	mov	r1, r9
   2b9c2:	4807      	ldr	r0, [pc, #28]	; (2b9e0 <callback_ctrl+0xbc>)
   2b9c4:	f007 fcf1 	bl	333aa <printk>
   2b9c8:	f44f 7124 	mov.w	r1, #656	; 0x290
   2b9cc:	4648      	mov	r0, r9
   2b9ce:	f008 f885 	bl	33adc <assert_post_action>
   2b9d2:	e7e8      	b.n	2b9a6 <callback_ctrl+0x82>
}
   2b9d4:	e8bd 83f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
   2b9d8:	20002568 	.word	0x20002568
   2b9dc:	0003efd4 	.word	0x0003efd4
   2b9e0:	0003bdac 	.word	0x0003bdac
   2b9e4:	0003ee1c 	.word	0x0003ee1c

0002b9e8 <button_pressed>:
	return dk_set_leds_state(DK_LED1, DK_ALL_LEDS_MSK);
}

static void button_pressed(const struct device *gpio_dev, struct gpio_callback *cb,
		    uint32_t pins)
{
   2b9e8:	b538      	push	{r3, r4, r5, lr}
	__asm__ volatile(
   2b9ea:	f04f 0340 	mov.w	r3, #64	; 0x40
   2b9ee:	f3ef 8411 	mrs	r4, BASEPRI
   2b9f2:	f383 8812 	msr	BASEPRI_MAX, r3
   2b9f6:	f3bf 8f6f 	isb	sy
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   2b9fa:	4822      	ldr	r0, [pc, #136]	; (2ba84 <button_pressed+0x9c>)
   2b9fc:	f003 fd92 	bl	2f524 <z_spin_lock_valid>
   2ba00:	b1d0      	cbz	r0, 2ba38 <button_pressed+0x50>
	z_spin_lock_set_owner(l);
   2ba02:	4820      	ldr	r0, [pc, #128]	; (2ba84 <button_pressed+0x9c>)
   2ba04:	f003 fdae 	bl	2f564 <z_spin_lock_set_owner>
	k_spinlock_key_t key = k_spin_lock(&lock);

	/* Disable GPIO interrupt */
	int err = callback_ctrl(false);
   2ba08:	2000      	movs	r0, #0
   2ba0a:	f7ff ff8b 	bl	2b924 <callback_ctrl>

	if (err) {
   2ba0e:	b9f0      	cbnz	r0, 2ba4e <button_pressed+0x66>
		LOG_ERR("Cannot disable callbacks");
	}

	switch (state) {
   2ba10:	4b1d      	ldr	r3, [pc, #116]	; (2ba88 <button_pressed+0xa0>)
   2ba12:	781b      	ldrb	r3, [r3, #0]
   2ba14:	bb03      	cbnz	r3, 2ba58 <button_pressed+0x70>
	case STATE_WAITING:
		state = STATE_SCANNING;
   2ba16:	4b1c      	ldr	r3, [pc, #112]	; (2ba88 <button_pressed+0xa0>)
   2ba18:	2201      	movs	r2, #1
   2ba1a:	701a      	strb	r2, [r3, #0]
		k_work_reschedule(&buttons_scan, K_MSEC(1));
   2ba1c:	2221      	movs	r2, #33	; 0x21
   2ba1e:	2300      	movs	r3, #0
   2ba20:	481a      	ldr	r0, [pc, #104]	; (2ba8c <button_pressed+0xa4>)
   2ba22:	f004 ff9f 	bl	30964 <k_work_reschedule>
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   2ba26:	4817      	ldr	r0, [pc, #92]	; (2ba84 <button_pressed+0x9c>)
   2ba28:	f003 fd8c 	bl	2f544 <z_spin_unlock_valid>
   2ba2c:	b1f8      	cbz	r0, 2ba6e <button_pressed+0x86>
	__asm__ volatile(
   2ba2e:	f384 8811 	msr	BASEPRI, r4
   2ba32:	f3bf 8f6f 	isb	sy
		__ASSERT_NO_MSG(false);
		break;
	}

	k_spin_unlock(&lock, key);
}
   2ba36:	bd38      	pop	{r3, r4, r5, pc}
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   2ba38:	4d15      	ldr	r5, [pc, #84]	; (2ba90 <button_pressed+0xa8>)
   2ba3a:	2281      	movs	r2, #129	; 0x81
   2ba3c:	4629      	mov	r1, r5
   2ba3e:	4815      	ldr	r0, [pc, #84]	; (2ba94 <button_pressed+0xac>)
   2ba40:	f007 fcb3 	bl	333aa <printk>
   2ba44:	2181      	movs	r1, #129	; 0x81
   2ba46:	4628      	mov	r0, r5
   2ba48:	f008 f848 	bl	33adc <assert_post_action>
   2ba4c:	e7d9      	b.n	2ba02 <button_pressed+0x1a>
		LOG_ERR("Cannot disable callbacks");
   2ba4e:	2145      	movs	r1, #69	; 0x45
   2ba50:	4811      	ldr	r0, [pc, #68]	; (2ba98 <button_pressed+0xb0>)
   2ba52:	f008 f84b 	bl	33aec <z_log_minimal_printk>
   2ba56:	e7db      	b.n	2ba10 <button_pressed+0x28>
		__ASSERT_NO_MSG(false);
   2ba58:	4d10      	ldr	r5, [pc, #64]	; (2ba9c <button_pressed+0xb4>)
   2ba5a:	22e8      	movs	r2, #232	; 0xe8
   2ba5c:	4629      	mov	r1, r5
   2ba5e:	480d      	ldr	r0, [pc, #52]	; (2ba94 <button_pressed+0xac>)
   2ba60:	f007 fca3 	bl	333aa <printk>
   2ba64:	21e8      	movs	r1, #232	; 0xe8
   2ba66:	4628      	mov	r0, r5
   2ba68:	f008 f838 	bl	33adc <assert_post_action>
		break;
   2ba6c:	e7db      	b.n	2ba26 <button_pressed+0x3e>
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   2ba6e:	4d08      	ldr	r5, [pc, #32]	; (2ba90 <button_pressed+0xa8>)
   2ba70:	22ac      	movs	r2, #172	; 0xac
   2ba72:	4629      	mov	r1, r5
   2ba74:	4807      	ldr	r0, [pc, #28]	; (2ba94 <button_pressed+0xac>)
   2ba76:	f007 fc98 	bl	333aa <printk>
   2ba7a:	21ac      	movs	r1, #172	; 0xac
   2ba7c:	4628      	mov	r0, r5
   2ba7e:	f008 f82d 	bl	33adc <assert_post_action>
   2ba82:	e7d4      	b.n	2ba2e <button_pressed+0x46>
   2ba84:	200025bc 	.word	0x200025bc
   2ba88:	200034ef 	.word	0x200034ef
   2ba8c:	20001d00 	.word	0x20001d00
   2ba90:	0003bde8 	.word	0x0003bde8
   2ba94:	0003bdac 	.word	0x0003bdac
   2ba98:	0003ee64 	.word	0x0003ee64
   2ba9c:	0003ee84 	.word	0x0003ee84

0002baa0 <buttons_scan_fn>:
{
   2baa0:	b570      	push	{r4, r5, r6, lr}
	button_scan = get_buttons();
   2baa2:	f7ff fec7 	bl	2b834 <get_buttons>
   2baa6:	4604      	mov	r4, r0
	return __atomic_exchange_n(target, value, __ATOMIC_SEQ_CST);
   2baa8:	4b37      	ldr	r3, [pc, #220]	; (2bb88 <buttons_scan_fn+0xe8>)
   2baaa:	f3bf 8f5b 	dmb	ish
   2baae:	e853 2f00 	ldrex	r2, [r3]
   2bab2:	e843 4100 	strex	r1, r4, [r3]
   2bab6:	2900      	cmp	r1, #0
   2bab8:	d1f9      	bne.n	2baae <buttons_scan_fn+0xe>
   2baba:	f3bf 8f5b 	dmb	ish
	if (!initial_run) {
   2babe:	4b33      	ldr	r3, [pc, #204]	; (2bb8c <buttons_scan_fn+0xec>)
   2bac0:	781b      	ldrb	r3, [r3, #0]
   2bac2:	b943      	cbnz	r3, 2bad6 <buttons_scan_fn+0x36>
		if (button_scan != last_button_scan) {
   2bac4:	4b32      	ldr	r3, [pc, #200]	; (2bb90 <buttons_scan_fn+0xf0>)
   2bac6:	6819      	ldr	r1, [r3, #0]
   2bac8:	42a1      	cmp	r1, r4
   2baca:	d007      	beq.n	2badc <buttons_scan_fn+0x3c>
			button_handlers_call(button_scan, has_changed);
   2bacc:	4061      	eors	r1, r4
   2bace:	4620      	mov	r0, r4
   2bad0:	f7ff fefc 	bl	2b8cc <button_handlers_call>
   2bad4:	e002      	b.n	2badc <buttons_scan_fn+0x3c>
		initial_run = false;
   2bad6:	4b2d      	ldr	r3, [pc, #180]	; (2bb8c <buttons_scan_fn+0xec>)
   2bad8:	2200      	movs	r2, #0
   2bada:	701a      	strb	r2, [r3, #0]
	last_button_scan = button_scan;
   2badc:	4b2c      	ldr	r3, [pc, #176]	; (2bb90 <buttons_scan_fn+0xf0>)
   2bade:	601c      	str	r4, [r3, #0]
	if (button_scan != 0) {
   2bae0:	b134      	cbz	r4, 2baf0 <buttons_scan_fn+0x50>
		k_work_reschedule(&buttons_scan,
   2bae2:	f44f 72a4 	mov.w	r2, #328	; 0x148
   2bae6:	2300      	movs	r3, #0
   2bae8:	482a      	ldr	r0, [pc, #168]	; (2bb94 <buttons_scan_fn+0xf4>)
   2baea:	f004 ff3b 	bl	30964 <k_work_reschedule>
}
   2baee:	bd70      	pop	{r4, r5, r6, pc}
	__asm__ volatile(
   2baf0:	f04f 0340 	mov.w	r3, #64	; 0x40
   2baf4:	f3ef 8511 	mrs	r5, BASEPRI
   2baf8:	f383 8812 	msr	BASEPRI_MAX, r3
   2bafc:	f3bf 8f6f 	isb	sy
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   2bb00:	4825      	ldr	r0, [pc, #148]	; (2bb98 <buttons_scan_fn+0xf8>)
   2bb02:	f003 fd0f 	bl	2f524 <z_spin_lock_valid>
   2bb06:	b300      	cbz	r0, 2bb4a <buttons_scan_fn+0xaa>
	z_spin_lock_set_owner(l);
   2bb08:	4823      	ldr	r0, [pc, #140]	; (2bb98 <buttons_scan_fn+0xf8>)
   2bb0a:	f003 fd2b 	bl	2f564 <z_spin_lock_set_owner>
		switch (state) {
   2bb0e:	4b23      	ldr	r3, [pc, #140]	; (2bb9c <buttons_scan_fn+0xfc>)
   2bb10:	781b      	ldrb	r3, [r3, #0]
   2bb12:	2b01      	cmp	r3, #1
   2bb14:	d024      	beq.n	2bb60 <buttons_scan_fn+0xc0>
			__ASSERT_NO_MSG(false);
   2bb16:	4c22      	ldr	r4, [pc, #136]	; (2bba0 <buttons_scan_fn+0x100>)
   2bb18:	22b1      	movs	r2, #177	; 0xb1
   2bb1a:	4621      	mov	r1, r4
   2bb1c:	4821      	ldr	r0, [pc, #132]	; (2bba4 <buttons_scan_fn+0x104>)
   2bb1e:	f007 fc44 	bl	333aa <printk>
   2bb22:	21b1      	movs	r1, #177	; 0xb1
   2bb24:	4620      	mov	r0, r4
   2bb26:	f007 ffd9 	bl	33adc <assert_post_action>
		int err = 0;
   2bb2a:	2400      	movs	r4, #0
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   2bb2c:	481a      	ldr	r0, [pc, #104]	; (2bb98 <buttons_scan_fn+0xf8>)
   2bb2e:	f003 fd09 	bl	2f544 <z_spin_unlock_valid>
   2bb32:	b1e8      	cbz	r0, 2bb70 <buttons_scan_fn+0xd0>
	__asm__ volatile(
   2bb34:	f385 8811 	msr	BASEPRI, r5
   2bb38:	f3bf 8f6f 	isb	sy
		if (err) {
   2bb3c:	2c00      	cmp	r4, #0
   2bb3e:	d0d6      	beq.n	2baee <buttons_scan_fn+0x4e>
			LOG_ERR("Cannot enable callbacks");
   2bb40:	2145      	movs	r1, #69	; 0x45
   2bb42:	4819      	ldr	r0, [pc, #100]	; (2bba8 <buttons_scan_fn+0x108>)
   2bb44:	f007 ffd2 	bl	33aec <z_log_minimal_printk>
}
   2bb48:	e7d1      	b.n	2baee <buttons_scan_fn+0x4e>
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   2bb4a:	4c18      	ldr	r4, [pc, #96]	; (2bbac <buttons_scan_fn+0x10c>)
   2bb4c:	2281      	movs	r2, #129	; 0x81
   2bb4e:	4621      	mov	r1, r4
   2bb50:	4814      	ldr	r0, [pc, #80]	; (2bba4 <buttons_scan_fn+0x104>)
   2bb52:	f007 fc2a 	bl	333aa <printk>
   2bb56:	2181      	movs	r1, #129	; 0x81
   2bb58:	4620      	mov	r0, r4
   2bb5a:	f007 ffbf 	bl	33adc <assert_post_action>
   2bb5e:	e7d3      	b.n	2bb08 <buttons_scan_fn+0x68>
			state = STATE_WAITING;
   2bb60:	4b0e      	ldr	r3, [pc, #56]	; (2bb9c <buttons_scan_fn+0xfc>)
   2bb62:	2200      	movs	r2, #0
   2bb64:	701a      	strb	r2, [r3, #0]
			err = callback_ctrl(true);
   2bb66:	2001      	movs	r0, #1
   2bb68:	f7ff fedc 	bl	2b924 <callback_ctrl>
   2bb6c:	4604      	mov	r4, r0
			break;
   2bb6e:	e7dd      	b.n	2bb2c <buttons_scan_fn+0x8c>
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   2bb70:	4e0e      	ldr	r6, [pc, #56]	; (2bbac <buttons_scan_fn+0x10c>)
   2bb72:	22ac      	movs	r2, #172	; 0xac
   2bb74:	4631      	mov	r1, r6
   2bb76:	480b      	ldr	r0, [pc, #44]	; (2bba4 <buttons_scan_fn+0x104>)
   2bb78:	f007 fc17 	bl	333aa <printk>
   2bb7c:	21ac      	movs	r1, #172	; 0xac
   2bb7e:	4630      	mov	r0, r6
   2bb80:	f007 ffac 	bl	33adc <assert_post_action>
   2bb84:	e7d6      	b.n	2bb34 <buttons_scan_fn+0x94>
   2bb86:	bf00      	nop
   2bb88:	200025c0 	.word	0x200025c0
   2bb8c:	2000077d 	.word	0x2000077d
   2bb90:	200025a4 	.word	0x200025a4
   2bb94:	20001d00 	.word	0x20001d00
   2bb98:	200025bc 	.word	0x200025bc
   2bb9c:	200034ef 	.word	0x200034ef
   2bba0:	0003ee84 	.word	0x0003ee84
   2bba4:	0003bdac 	.word	0x0003bdac
   2bba8:	0003eec4 	.word	0x0003eec4
   2bbac:	0003bde8 	.word	0x0003bde8

0002bbb0 <dk_read_buttons>:
	return __atomic_load_n(target, __ATOMIC_SEQ_CST);
   2bbb0:	f3bf 8f5b 	dmb	ish
   2bbb4:	4b06      	ldr	r3, [pc, #24]	; (2bbd0 <dk_read_buttons+0x20>)
   2bbb6:	681b      	ldr	r3, [r3, #0]
   2bbb8:	f3bf 8f5b 	dmb	ish
void dk_read_buttons(uint32_t *button_state, uint32_t *has_changed)
{
	static uint32_t last_state;
	uint32_t current_state = atomic_get(&my_buttons);

	if (button_state != NULL) {
   2bbbc:	b100      	cbz	r0, 2bbc0 <dk_read_buttons+0x10>
		*button_state = current_state;
   2bbbe:	6003      	str	r3, [r0, #0]
	}

	if (has_changed != NULL) {
   2bbc0:	b119      	cbz	r1, 2bbca <dk_read_buttons+0x1a>
		*has_changed = (current_state ^ last_state);
   2bbc2:	4a04      	ldr	r2, [pc, #16]	; (2bbd4 <dk_read_buttons+0x24>)
   2bbc4:	6812      	ldr	r2, [r2, #0]
   2bbc6:	405a      	eors	r2, r3
   2bbc8:	600a      	str	r2, [r1, #0]
	}

	last_state = current_state;
   2bbca:	4a02      	ldr	r2, [pc, #8]	; (2bbd4 <dk_read_buttons+0x24>)
   2bbcc:	6013      	str	r3, [r2, #0]
}
   2bbce:	4770      	bx	lr
   2bbd0:	200025c0 	.word	0x200025c0
   2bbd4:	200025a8 	.word	0x200025a8

0002bbd8 <dk_buttons_init>:
{
   2bbd8:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
	button_handler_cb = button_handler;
   2bbdc:	4b60      	ldr	r3, [pc, #384]	; (2bd60 <dk_buttons_init+0x188>)
   2bbde:	6018      	str	r0, [r3, #0]
	return z_impl_k_mutex_init(mutex);
   2bbe0:	4860      	ldr	r0, [pc, #384]	; (2bd64 <dk_buttons_init+0x18c>)
   2bbe2:	f00f fad9 	bl	3b198 <z_impl_k_mutex_init>
	for (size_t i = 0; i < ARRAY_SIZE(button_pins); i++) {
   2bbe6:	2500      	movs	r5, #0
   2bbe8:	e023      	b.n	2bc32 <dk_buttons_init+0x5a>
			LOG_ERR("Cannot bind gpio device");
   2bbea:	2145      	movs	r1, #69	; 0x45
   2bbec:	485e      	ldr	r0, [pc, #376]	; (2bd68 <dk_buttons_init+0x190>)
   2bbee:	f007 ff7d 	bl	33aec <z_log_minimal_printk>
			return -ENODEV;
   2bbf2:	f06f 0612 	mvn.w	r6, #18
   2bbf6:	e0b0      	b.n	2bd5a <dk_buttons_init+0x182>
	__ASSERT((cfg->port_pin_mask & (gpio_port_pins_t)BIT(pin)) != 0U,
   2bbf8:	f8df a1a0 	ldr.w	sl, [pc, #416]	; 2bd9c <dk_buttons_init+0x1c4>
   2bbfc:	f44f 723c 	mov.w	r2, #752	; 0x2f0
   2bc00:	4651      	mov	r1, sl
   2bc02:	485a      	ldr	r0, [pc, #360]	; (2bd6c <dk_buttons_init+0x194>)
   2bc04:	f007 fbd1 	bl	333aa <printk>
   2bc08:	f44f 713c 	mov.w	r1, #752	; 0x2f0
   2bc0c:	4650      	mov	r0, sl
   2bc0e:	f007 ff65 	bl	33adc <assert_post_action>
		data->invert &= ~(gpio_port_pins_t)BIT(pin);
   2bc12:	f8d8 3000 	ldr.w	r3, [r8]
   2bc16:	ea23 0606 	bic.w	r6, r3, r6
   2bc1a:	f8c8 6000 	str.w	r6, [r8]
	return api->pin_configure(port, pin, flags);
   2bc1e:	f8d9 3000 	ldr.w	r3, [r9]
   2bc22:	f44f 7288 	mov.w	r2, #272	; 0x110
   2bc26:	4639      	mov	r1, r7
   2bc28:	4620      	mov	r0, r4
   2bc2a:	4798      	blx	r3
		if (err) {
   2bc2c:	4606      	mov	r6, r0
   2bc2e:	b9e0      	cbnz	r0, 2bc6a <dk_buttons_init+0x92>
	for (size_t i = 0; i < ARRAY_SIZE(button_pins); i++) {
   2bc30:	3501      	adds	r5, #1
   2bc32:	2d03      	cmp	r5, #3
   2bc34:	d81e      	bhi.n	2bc74 <dk_buttons_init+0x9c>
		button_devs[i] = device_get_binding(button_pins[i].port);
   2bc36:	4b4e      	ldr	r3, [pc, #312]	; (2bd70 <dk_buttons_init+0x198>)
   2bc38:	f853 0035 	ldr.w	r0, [r3, r5, lsl #3]
   2bc3c:	f003 f8be 	bl	2edbc <z_impl_device_get_binding>
   2bc40:	4604      	mov	r4, r0
   2bc42:	4b4c      	ldr	r3, [pc, #304]	; (2bd74 <dk_buttons_init+0x19c>)
   2bc44:	f843 0025 	str.w	r0, [r3, r5, lsl #2]
		if (!button_devs[i]) {
   2bc48:	2800      	cmp	r0, #0
   2bc4a:	d0ce      	beq.n	2bbea <dk_buttons_init+0x12>
		err = gpio_pin_configure(button_devs[i], button_pins[i].number,
   2bc4c:	4b48      	ldr	r3, [pc, #288]	; (2bd70 <dk_buttons_init+0x198>)
   2bc4e:	eb03 03c5 	add.w	r3, r3, r5, lsl #3
   2bc52:	791f      	ldrb	r7, [r3, #4]
	const struct gpio_driver_api *api =
   2bc54:	f8d0 9008 	ldr.w	r9, [r0, #8]
	const struct gpio_driver_config *const cfg =
   2bc58:	6843      	ldr	r3, [r0, #4]
	struct gpio_driver_data *data =
   2bc5a:	f8d0 8010 	ldr.w	r8, [r0, #16]
	__ASSERT((cfg->port_pin_mask & (gpio_port_pins_t)BIT(pin)) != 0U,
   2bc5e:	681b      	ldr	r3, [r3, #0]
   2bc60:	2601      	movs	r6, #1
   2bc62:	40be      	lsls	r6, r7
   2bc64:	4233      	tst	r3, r6
   2bc66:	d1d4      	bne.n	2bc12 <dk_buttons_init+0x3a>
   2bc68:	e7c6      	b.n	2bbf8 <dk_buttons_init+0x20>
			LOG_ERR("Cannot configure button gpio");
   2bc6a:	2145      	movs	r1, #69	; 0x45
   2bc6c:	4842      	ldr	r0, [pc, #264]	; (2bd78 <dk_buttons_init+0x1a0>)
   2bc6e:	f007 ff3d 	bl	33aec <z_log_minimal_printk>
			return err;
   2bc72:	e072      	b.n	2bd5a <dk_buttons_init+0x182>
	for (size_t i = 0; i < ARRAY_SIZE(button_pins); i++) {
   2bc74:	2400      	movs	r4, #0
	uint32_t pin_mask = 0;
   2bc76:	4625      	mov	r5, r4
   2bc78:	e01e      	b.n	2bcb8 <dk_buttons_init+0xe0>
	__ASSERT((cfg->port_pin_mask & (gpio_port_pins_t)BIT(pin)) != 0U,
   2bc7a:	f8df 9120 	ldr.w	r9, [pc, #288]	; 2bd9c <dk_buttons_init+0x1c4>
   2bc7e:	f44f 7224 	mov.w	r2, #656	; 0x290
   2bc82:	4649      	mov	r1, r9
   2bc84:	4839      	ldr	r0, [pc, #228]	; (2bd6c <dk_buttons_init+0x194>)
   2bc86:	f007 fb90 	bl	333aa <printk>
   2bc8a:	f44f 7124 	mov.w	r1, #656	; 0x290
   2bc8e:	4648      	mov	r0, r9
   2bc90:	f007 ff24 	bl	33adc <assert_post_action>
	return api->pin_interrupt_configure(port, pin, mode, trig);
   2bc94:	f8d8 8018 	ldr.w	r8, [r8, #24]
   2bc98:	2300      	movs	r3, #0
   2bc9a:	f44f 5200 	mov.w	r2, #8192	; 0x2000
   2bc9e:	4639      	mov	r1, r7
   2bca0:	4630      	mov	r0, r6
   2bca2:	47c0      	blx	r8
		if (err) {
   2bca4:	4606      	mov	r6, r0
   2bca6:	b9c8      	cbnz	r0, 2bcdc <dk_buttons_init+0x104>
		pin_mask |= BIT(button_pins[i].number);
   2bca8:	4b31      	ldr	r3, [pc, #196]	; (2bd70 <dk_buttons_init+0x198>)
   2bcaa:	eb03 03c4 	add.w	r3, r3, r4, lsl #3
   2bcae:	791a      	ldrb	r2, [r3, #4]
   2bcb0:	2301      	movs	r3, #1
   2bcb2:	4093      	lsls	r3, r2
   2bcb4:	431d      	orrs	r5, r3
	for (size_t i = 0; i < ARRAY_SIZE(button_pins); i++) {
   2bcb6:	3401      	adds	r4, #1
   2bcb8:	2c03      	cmp	r4, #3
   2bcba:	d814      	bhi.n	2bce6 <dk_buttons_init+0x10e>
		err = gpio_pin_interrupt_configure(button_devs[i],
   2bcbc:	4b2d      	ldr	r3, [pc, #180]	; (2bd74 <dk_buttons_init+0x19c>)
   2bcbe:	f853 6024 	ldr.w	r6, [r3, r4, lsl #2]
   2bcc2:	4b2b      	ldr	r3, [pc, #172]	; (2bd70 <dk_buttons_init+0x198>)
   2bcc4:	eb03 03c4 	add.w	r3, r3, r4, lsl #3
   2bcc8:	791f      	ldrb	r7, [r3, #4]
	const struct gpio_driver_api *api =
   2bcca:	f8d6 8008 	ldr.w	r8, [r6, #8]
	const struct gpio_driver_config *const cfg =
   2bcce:	6873      	ldr	r3, [r6, #4]
	__ASSERT((cfg->port_pin_mask & (gpio_port_pins_t)BIT(pin)) != 0U,
   2bcd0:	681a      	ldr	r2, [r3, #0]
   2bcd2:	2301      	movs	r3, #1
   2bcd4:	40bb      	lsls	r3, r7
   2bcd6:	421a      	tst	r2, r3
   2bcd8:	d1dc      	bne.n	2bc94 <dk_buttons_init+0xbc>
   2bcda:	e7ce      	b.n	2bc7a <dk_buttons_init+0xa2>
			LOG_ERR("Cannot disable callbacks()");
   2bcdc:	2145      	movs	r1, #69	; 0x45
   2bcde:	4827      	ldr	r0, [pc, #156]	; (2bd7c <dk_buttons_init+0x1a4>)
   2bce0:	f007 ff04 	bl	33aec <z_log_minimal_printk>
			return err;
   2bce4:	e039      	b.n	2bd5a <dk_buttons_init+0x182>
				      gpio_port_pins_t pin_mask)
{
	__ASSERT(callback, "Callback pointer should not be NULL");
	__ASSERT(handler, "Callback handler pointer should not be NULL");

	callback->handler = handler;
   2bce6:	4b26      	ldr	r3, [pc, #152]	; (2bd80 <dk_buttons_init+0x1a8>)
   2bce8:	4a26      	ldr	r2, [pc, #152]	; (2bd84 <dk_buttons_init+0x1ac>)
   2bcea:	605a      	str	r2, [r3, #4]
	callback->pin_mask = pin_mask;
   2bcec:	609d      	str	r5, [r3, #8]
	for (size_t i = 0; i < ARRAY_SIZE(button_pins); i++) {
   2bcee:	2400      	movs	r4, #0
   2bcf0:	2c03      	cmp	r4, #3
   2bcf2:	d813      	bhi.n	2bd1c <dk_buttons_init+0x144>
		err = gpio_add_callback(button_devs[i], &gpio_cb);
   2bcf4:	4b1f      	ldr	r3, [pc, #124]	; (2bd74 <dk_buttons_init+0x19c>)
   2bcf6:	f853 0024 	ldr.w	r0, [r3, r4, lsl #2]
 * Note: enables to add as many callback as needed on the same port.
 */
static inline int gpio_add_callback(const struct device *port,
				    struct gpio_callback *callback)
{
	const struct gpio_driver_api *api =
   2bcfa:	6883      	ldr	r3, [r0, #8]
		(const struct gpio_driver_api *)port->api;

	if (api->manage_callback == NULL) {
   2bcfc:	69db      	ldr	r3, [r3, #28]
   2bcfe:	b133      	cbz	r3, 2bd0e <dk_buttons_init+0x136>
		return -ENOTSUP;
	}

	return api->manage_callback(port, callback, true);
   2bd00:	2201      	movs	r2, #1
   2bd02:	491f      	ldr	r1, [pc, #124]	; (2bd80 <dk_buttons_init+0x1a8>)
   2bd04:	4798      	blx	r3
		if (err) {
   2bd06:	4606      	mov	r6, r0
   2bd08:	b918      	cbnz	r0, 2bd12 <dk_buttons_init+0x13a>
	for (size_t i = 0; i < ARRAY_SIZE(button_pins); i++) {
   2bd0a:	3401      	adds	r4, #1
   2bd0c:	e7f0      	b.n	2bcf0 <dk_buttons_init+0x118>
		return -ENOTSUP;
   2bd0e:	f06f 0685 	mvn.w	r6, #133	; 0x85
			LOG_ERR("Cannot add callback");
   2bd12:	2145      	movs	r1, #69	; 0x45
   2bd14:	481c      	ldr	r0, [pc, #112]	; (2bd88 <dk_buttons_init+0x1b0>)
   2bd16:	f007 fee9 	bl	33aec <z_log_minimal_printk>
			return err;
   2bd1a:	e01e      	b.n	2bd5a <dk_buttons_init+0x182>
	k_work_init_delayable(&buttons_scan, buttons_scan_fn);
   2bd1c:	4c1b      	ldr	r4, [pc, #108]	; (2bd8c <dk_buttons_init+0x1b4>)
   2bd1e:	491c      	ldr	r1, [pc, #112]	; (2bd90 <dk_buttons_init+0x1b8>)
   2bd20:	4620      	mov	r0, r4
   2bd22:	f004 fd2b 	bl	3077c <k_work_init_delayable>
	state = STATE_SCANNING;
   2bd26:	4b1b      	ldr	r3, [pc, #108]	; (2bd94 <dk_buttons_init+0x1bc>)
   2bd28:	2201      	movs	r2, #1
   2bd2a:	701a      	strb	r2, [r3, #0]
	k_work_schedule(&buttons_scan, K_NO_WAIT);
   2bd2c:	2200      	movs	r2, #0
   2bd2e:	2300      	movs	r3, #0
   2bd30:	4620      	mov	r0, r4
   2bd32:	f004 fdad 	bl	30890 <k_work_schedule>
	dk_read_buttons(NULL, NULL);
   2bd36:	2100      	movs	r1, #0
   2bd38:	4608      	mov	r0, r1
   2bd3a:	f7ff ff39 	bl	2bbb0 <dk_read_buttons>
	atomic_set(&my_buttons, (atomic_val_t)get_buttons());
   2bd3e:	f7ff fd79 	bl	2b834 <get_buttons>
	return __atomic_exchange_n(target, value, __ATOMIC_SEQ_CST);
   2bd42:	4b15      	ldr	r3, [pc, #84]	; (2bd98 <dk_buttons_init+0x1c0>)
   2bd44:	f3bf 8f5b 	dmb	ish
   2bd48:	e853 2f00 	ldrex	r2, [r3]
   2bd4c:	e843 0100 	strex	r1, r0, [r3]
   2bd50:	2900      	cmp	r1, #0
   2bd52:	d1f9      	bne.n	2bd48 <dk_buttons_init+0x170>
   2bd54:	f3bf 8f5b 	dmb	ish
	return 0;
   2bd58:	2600      	movs	r6, #0
}
   2bd5a:	4630      	mov	r0, r6
   2bd5c:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
   2bd60:	20002578 	.word	0x20002578
   2bd64:	2000257c 	.word	0x2000257c
   2bd68:	0003eee4 	.word	0x0003eee4
   2bd6c:	0003bdac 	.word	0x0003bdac
   2bd70:	0003efd4 	.word	0x0003efd4
   2bd74:	20002568 	.word	0x20002568
   2bd78:	0003ef04 	.word	0x0003ef04
   2bd7c:	0003ef28 	.word	0x0003ef28
   2bd80:	20002598 	.word	0x20002598
   2bd84:	0002b9e9 	.word	0x0002b9e9
   2bd88:	0003ef48 	.word	0x0003ef48
   2bd8c:	20001d00 	.word	0x20001d00
   2bd90:	0002baa1 	.word	0x0002baa1
   2bd94:	200034ef 	.word	0x200034ef
   2bd98:	200025c0 	.word	0x200025c0
   2bd9c:	0003ee1c 	.word	0x0003ee1c

0002bda0 <dk_set_leds_state>:
{
	return dk_set_leds_state(leds, DK_ALL_LEDS_MSK);
}

int dk_set_leds_state(uint32_t leds_on_mask, uint32_t leds_off_mask)
{
   2bda0:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
	if ((leds_on_mask & ~DK_ALL_LEDS_MSK) != 0 ||
   2bda4:	f030 030f 	bics.w	r3, r0, #15
   2bda8:	d14e      	bne.n	2be48 <dk_set_leds_state+0xa8>
   2bdaa:	4607      	mov	r7, r0
   2bdac:	4688      	mov	r8, r1
   2bdae:	f031 040f 	bics.w	r4, r1, #15
   2bdb2:	d019      	beq.n	2bde8 <dk_set_leds_state+0x48>
	   (leds_off_mask & ~DK_ALL_LEDS_MSK) != 0) {
		return -EINVAL;
   2bdb4:	f06f 0515 	mvn.w	r5, #21
   2bdb8:	e043      	b.n	2be42 <dk_set_leds_state+0xa2>
	__ASSERT((cfg->port_pin_mask & (gpio_port_pins_t)BIT(pin)) != 0U,
   2bdba:	f8df a0a4 	ldr.w	sl, [pc, #164]	; 2be60 <dk_set_leds_state+0xc0>
   2bdbe:	f240 4284 	movw	r2, #1156	; 0x484
   2bdc2:	4651      	mov	r1, sl
   2bdc4:	4822      	ldr	r0, [pc, #136]	; (2be50 <dk_set_leds_state+0xb0>)
   2bdc6:	f007 faf0 	bl	333aa <printk>
   2bdca:	f240 4184 	movw	r1, #1156	; 0x484
   2bdce:	4650      	mov	r0, sl
   2bdd0:	f007 fe84 	bl	33adc <assert_post_action>
   2bdd4:	e025      	b.n	2be22 <dk_set_leds_state+0x82>
	const struct gpio_driver_api *api =
   2bdd6:	f8d9 3008 	ldr.w	r3, [r9, #8]
	return api->port_clear_bits_raw(port, pins);
   2bdda:	691b      	ldr	r3, [r3, #16]
   2bddc:	4631      	mov	r1, r6
   2bdde:	4648      	mov	r0, r9
   2bde0:	4798      	blx	r3
   2bde2:	4605      	mov	r5, r0
				val = 1 - val;
			}

			int err = gpio_pin_set_raw(led_devs[i],
						   led_pins[i].number, val);
			if (err) {
   2bde4:	bb3d      	cbnz	r5, 2be36 <dk_set_leds_state+0x96>
	for (size_t i = 0; i < ARRAY_SIZE(led_pins); i++) {
   2bde6:	3401      	adds	r4, #1
   2bde8:	2c03      	cmp	r4, #3
   2bdea:	d829      	bhi.n	2be40 <dk_set_leds_state+0xa0>
		if ((BIT(i) & leds_on_mask) || (BIT(i) & leds_off_mask)) {
   2bdec:	fa27 f304 	lsr.w	r3, r7, r4
   2bdf0:	f013 0f01 	tst.w	r3, #1
   2bdf4:	d104      	bne.n	2be00 <dk_set_leds_state+0x60>
   2bdf6:	fa28 f204 	lsr.w	r2, r8, r4
   2bdfa:	f012 0f01 	tst.w	r2, #1
   2bdfe:	d0f2      	beq.n	2bde6 <dk_set_leds_state+0x46>
			int err = gpio_pin_set_raw(led_devs[i],
   2be00:	4a14      	ldr	r2, [pc, #80]	; (2be54 <dk_set_leds_state+0xb4>)
   2be02:	f852 9024 	ldr.w	r9, [r2, r4, lsl #2]
   2be06:	4a14      	ldr	r2, [pc, #80]	; (2be58 <dk_set_leds_state+0xb8>)
   2be08:	eb02 02c4 	add.w	r2, r2, r4, lsl #3
   2be0c:	7912      	ldrb	r2, [r2, #4]
   2be0e:	43db      	mvns	r3, r3
   2be10:	f003 0501 	and.w	r5, r3, #1
	const struct gpio_driver_config *const cfg =
   2be14:	f8d9 3004 	ldr.w	r3, [r9, #4]
	__ASSERT((cfg->port_pin_mask & (gpio_port_pins_t)BIT(pin)) != 0U,
   2be18:	681b      	ldr	r3, [r3, #0]
   2be1a:	2601      	movs	r6, #1
   2be1c:	4096      	lsls	r6, r2
   2be1e:	4233      	tst	r3, r6
   2be20:	d0cb      	beq.n	2bdba <dk_set_leds_state+0x1a>
	if (value != 0)	{
   2be22:	2d00      	cmp	r5, #0
   2be24:	d0d7      	beq.n	2bdd6 <dk_set_leds_state+0x36>
	const struct gpio_driver_api *api =
   2be26:	f8d9 3008 	ldr.w	r3, [r9, #8]
	return api->port_set_bits_raw(port, pins);
   2be2a:	68db      	ldr	r3, [r3, #12]
   2be2c:	4631      	mov	r1, r6
   2be2e:	4648      	mov	r0, r9
   2be30:	4798      	blx	r3
   2be32:	4605      	mov	r5, r0
   2be34:	e7d6      	b.n	2bde4 <dk_set_leds_state+0x44>
				LOG_ERR("Cannot write LED gpio");
   2be36:	2145      	movs	r1, #69	; 0x45
   2be38:	4808      	ldr	r0, [pc, #32]	; (2be5c <dk_set_leds_state+0xbc>)
   2be3a:	f007 fe57 	bl	33aec <z_log_minimal_printk>
				return err;
   2be3e:	e000      	b.n	2be42 <dk_set_leds_state+0xa2>
			}
		}
	}

	return 0;
   2be40:	2500      	movs	r5, #0
}
   2be42:	4628      	mov	r0, r5
   2be44:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
		return -EINVAL;
   2be48:	f06f 0515 	mvn.w	r5, #21
   2be4c:	e7f9      	b.n	2be42 <dk_set_leds_state+0xa2>
   2be4e:	bf00      	nop
   2be50:	0003bdac 	.word	0x0003bdac
   2be54:	200025ac 	.word	0x200025ac
   2be58:	0003eff4 	.word	0x0003eff4
   2be5c:	0003ef64 	.word	0x0003ef64
   2be60:	0003ee1c 	.word	0x0003ee1c

0002be64 <dk_leds_init>:
{
   2be64:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
	for (size_t i = 0; i < ARRAY_SIZE(led_pins); i++) {
   2be68:	2500      	movs	r5, #0
   2be6a:	e023      	b.n	2beb4 <dk_leds_init+0x50>
			LOG_ERR("Cannot bind gpio device");
   2be6c:	2145      	movs	r1, #69	; 0x45
   2be6e:	4826      	ldr	r0, [pc, #152]	; (2bf08 <dk_leds_init+0xa4>)
   2be70:	f007 fe3c 	bl	33aec <z_log_minimal_printk>
			return -ENODEV;
   2be74:	f06f 0412 	mvn.w	r4, #18
   2be78:	e042      	b.n	2bf00 <dk_leds_init+0x9c>
	__ASSERT((cfg->port_pin_mask & (gpio_port_pins_t)BIT(pin)) != 0U,
   2be7a:	f8df a0a0 	ldr.w	sl, [pc, #160]	; 2bf1c <dk_leds_init+0xb8>
   2be7e:	f44f 723c 	mov.w	r2, #752	; 0x2f0
   2be82:	4651      	mov	r1, sl
   2be84:	4821      	ldr	r0, [pc, #132]	; (2bf0c <dk_leds_init+0xa8>)
   2be86:	f007 fa90 	bl	333aa <printk>
   2be8a:	f44f 713c 	mov.w	r1, #752	; 0x2f0
   2be8e:	4650      	mov	r0, sl
   2be90:	f007 fe24 	bl	33adc <assert_post_action>
		data->invert &= ~(gpio_port_pins_t)BIT(pin);
   2be94:	f8d8 3000 	ldr.w	r3, [r8]
   2be98:	ea23 0606 	bic.w	r6, r3, r6
   2be9c:	f8c8 6000 	str.w	r6, [r8]
	return api->pin_configure(port, pin, flags);
   2bea0:	f8d9 3000 	ldr.w	r3, [r9]
   2bea4:	f44f 7200 	mov.w	r2, #512	; 0x200
   2bea8:	4639      	mov	r1, r7
   2beaa:	4620      	mov	r0, r4
   2beac:	4798      	blx	r3
		if (err) {
   2beae:	4604      	mov	r4, r0
   2beb0:	b9e0      	cbnz	r0, 2beec <dk_leds_init+0x88>
	for (size_t i = 0; i < ARRAY_SIZE(led_pins); i++) {
   2beb2:	3501      	adds	r5, #1
   2beb4:	2d03      	cmp	r5, #3
   2beb6:	d81e      	bhi.n	2bef6 <dk_leds_init+0x92>
		led_devs[i] = device_get_binding(led_pins[i].port);
   2beb8:	4b15      	ldr	r3, [pc, #84]	; (2bf10 <dk_leds_init+0xac>)
   2beba:	f853 0035 	ldr.w	r0, [r3, r5, lsl #3]
   2bebe:	f002 ff7d 	bl	2edbc <z_impl_device_get_binding>
   2bec2:	4604      	mov	r4, r0
   2bec4:	4b13      	ldr	r3, [pc, #76]	; (2bf14 <dk_leds_init+0xb0>)
   2bec6:	f843 0025 	str.w	r0, [r3, r5, lsl #2]
		if (!led_devs[i]) {
   2beca:	2800      	cmp	r0, #0
   2becc:	d0ce      	beq.n	2be6c <dk_leds_init+0x8>
		err = gpio_pin_configure(led_devs[i], led_pins[i].number,
   2bece:	4b10      	ldr	r3, [pc, #64]	; (2bf10 <dk_leds_init+0xac>)
   2bed0:	eb03 03c5 	add.w	r3, r3, r5, lsl #3
   2bed4:	791f      	ldrb	r7, [r3, #4]
	const struct gpio_driver_api *api =
   2bed6:	f8d0 9008 	ldr.w	r9, [r0, #8]
	const struct gpio_driver_config *const cfg =
   2beda:	6843      	ldr	r3, [r0, #4]
	struct gpio_driver_data *data =
   2bedc:	f8d0 8010 	ldr.w	r8, [r0, #16]
	__ASSERT((cfg->port_pin_mask & (gpio_port_pins_t)BIT(pin)) != 0U,
   2bee0:	681b      	ldr	r3, [r3, #0]
   2bee2:	2601      	movs	r6, #1
   2bee4:	40be      	lsls	r6, r7
   2bee6:	4233      	tst	r3, r6
   2bee8:	d1d4      	bne.n	2be94 <dk_leds_init+0x30>
   2beea:	e7c6      	b.n	2be7a <dk_leds_init+0x16>
			LOG_ERR("Cannot configure LED gpio");
   2beec:	2145      	movs	r1, #69	; 0x45
   2beee:	480a      	ldr	r0, [pc, #40]	; (2bf18 <dk_leds_init+0xb4>)
   2bef0:	f007 fdfc 	bl	33aec <z_log_minimal_printk>
			return err;
   2bef4:	e004      	b.n	2bf00 <dk_leds_init+0x9c>
	return dk_set_leds_state(DK_LED1, DK_ALL_LEDS_MSK);
   2bef6:	210f      	movs	r1, #15
   2bef8:	2000      	movs	r0, #0
   2befa:	f7ff ff51 	bl	2bda0 <dk_set_leds_state>
   2befe:	4604      	mov	r4, r0
}
   2bf00:	4620      	mov	r0, r4
   2bf02:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
   2bf06:	bf00      	nop
   2bf08:	0003eee4 	.word	0x0003eee4
   2bf0c:	0003bdac 	.word	0x0003bdac
   2bf10:	0003eff4 	.word	0x0003eff4
   2bf14:	200025ac 	.word	0x200025ac
   2bf18:	0003ef80 	.word	0x0003ef80
   2bf1c:	0003ee1c 	.word	0x0003ee1c

0002bf20 <dk_set_led>:

int dk_set_led(uint8_t led_idx, uint32_t val)
{
   2bf20:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
	int err;

	if (led_idx >= ARRAY_SIZE(led_pins)) {
   2bf22:	2803      	cmp	r0, #3
   2bf24:	d819      	bhi.n	2bf5a <dk_set_led+0x3a>
		LOG_ERR("LED index out of the range");
		return -EINVAL;
	}
	err = gpio_pin_set_raw(led_devs[led_idx], led_pins[led_idx].number,
   2bf26:	4b1d      	ldr	r3, [pc, #116]	; (2bf9c <dk_set_led+0x7c>)
   2bf28:	f853 6020 	ldr.w	r6, [r3, r0, lsl #2]
   2bf2c:	4b1c      	ldr	r3, [pc, #112]	; (2bfa0 <dk_set_led+0x80>)
   2bf2e:	eb03 00c0 	add.w	r0, r3, r0, lsl #3
   2bf32:	7902      	ldrb	r2, [r0, #4]
   2bf34:	fab1 f481 	clz	r4, r1
   2bf38:	0964      	lsrs	r4, r4, #5
	const struct gpio_driver_config *const cfg =
   2bf3a:	6873      	ldr	r3, [r6, #4]
	__ASSERT((cfg->port_pin_mask & (gpio_port_pins_t)BIT(pin)) != 0U,
   2bf3c:	681b      	ldr	r3, [r3, #0]
   2bf3e:	2501      	movs	r5, #1
   2bf40:	4095      	lsls	r5, r2
   2bf42:	422b      	tst	r3, r5
   2bf44:	d010      	beq.n	2bf68 <dk_set_led+0x48>
	if (value != 0)	{
   2bf46:	b1e4      	cbz	r4, 2bf82 <dk_set_led+0x62>
	const struct gpio_driver_api *api =
   2bf48:	68b3      	ldr	r3, [r6, #8]
	return api->port_set_bits_raw(port, pins);
   2bf4a:	68db      	ldr	r3, [r3, #12]
   2bf4c:	4629      	mov	r1, r5
   2bf4e:	4630      	mov	r0, r6
   2bf50:	4798      	blx	r3
   2bf52:	4604      	mov	r4, r0
		IS_ENABLED(CONFIG_DK_LIBRARY_INVERT_LEDS) ? !val : val);
	if (err) {
   2bf54:	b9e4      	cbnz	r4, 2bf90 <dk_set_led+0x70>
		LOG_ERR("Cannot write LED gpio");
	}
	return err;
}
   2bf56:	4620      	mov	r0, r4
   2bf58:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
		LOG_ERR("LED index out of the range");
   2bf5a:	2145      	movs	r1, #69	; 0x45
   2bf5c:	4811      	ldr	r0, [pc, #68]	; (2bfa4 <dk_set_led+0x84>)
   2bf5e:	f007 fdc5 	bl	33aec <z_log_minimal_printk>
		return -EINVAL;
   2bf62:	f06f 0415 	mvn.w	r4, #21
   2bf66:	e7f6      	b.n	2bf56 <dk_set_led+0x36>
	__ASSERT((cfg->port_pin_mask & (gpio_port_pins_t)BIT(pin)) != 0U,
   2bf68:	4f0f      	ldr	r7, [pc, #60]	; (2bfa8 <dk_set_led+0x88>)
   2bf6a:	f240 4284 	movw	r2, #1156	; 0x484
   2bf6e:	4639      	mov	r1, r7
   2bf70:	480e      	ldr	r0, [pc, #56]	; (2bfac <dk_set_led+0x8c>)
   2bf72:	f007 fa1a 	bl	333aa <printk>
   2bf76:	f240 4184 	movw	r1, #1156	; 0x484
   2bf7a:	4638      	mov	r0, r7
   2bf7c:	f007 fdae 	bl	33adc <assert_post_action>
   2bf80:	e7e1      	b.n	2bf46 <dk_set_led+0x26>
	const struct gpio_driver_api *api =
   2bf82:	68b3      	ldr	r3, [r6, #8]
	return api->port_clear_bits_raw(port, pins);
   2bf84:	691b      	ldr	r3, [r3, #16]
   2bf86:	4629      	mov	r1, r5
   2bf88:	4630      	mov	r0, r6
   2bf8a:	4798      	blx	r3
   2bf8c:	4604      	mov	r4, r0
   2bf8e:	e7e1      	b.n	2bf54 <dk_set_led+0x34>
		LOG_ERR("Cannot write LED gpio");
   2bf90:	2145      	movs	r1, #69	; 0x45
   2bf92:	4807      	ldr	r0, [pc, #28]	; (2bfb0 <dk_set_led+0x90>)
   2bf94:	f007 fdaa 	bl	33aec <z_log_minimal_printk>
   2bf98:	e7dd      	b.n	2bf56 <dk_set_led+0x36>
   2bf9a:	bf00      	nop
   2bf9c:	200025ac 	.word	0x200025ac
   2bfa0:	0003eff4 	.word	0x0003eff4
   2bfa4:	0003efa0 	.word	0x0003efa0
   2bfa8:	0003ee1c 	.word	0x0003ee1c
   2bfac:	0003bdac 	.word	0x0003bdac
   2bfb0:	0003ef64 	.word	0x0003ef64

0002bfb4 <multithreading_lock_acquire>:
#include "multithreading_lock.h"

static K_MUTEX_DEFINE(mpsl_lock);

int multithreading_lock_acquire(k_timeout_t timeout)
{
   2bfb4:	b508      	push	{r3, lr}
   2bfb6:	4602      	mov	r2, r0
   2bfb8:	460b      	mov	r3, r1
	return z_impl_k_mutex_lock(mutex, timeout);
   2bfba:	4802      	ldr	r0, [pc, #8]	; (2bfc4 <multithreading_lock_acquire+0x10>)
   2bfbc:	f003 fcb0 	bl	2f920 <z_impl_k_mutex_lock>
	return k_mutex_lock(&mpsl_lock, timeout);
}
   2bfc0:	bd08      	pop	{r3, pc}
   2bfc2:	bf00      	nop
   2bfc4:	20000838 	.word	0x20000838

0002bfc8 <multithreading_lock_release>:

void multithreading_lock_release(void)
{
   2bfc8:	b508      	push	{r3, lr}
	return z_impl_k_mutex_unlock(mutex);
   2bfca:	4802      	ldr	r0, [pc, #8]	; (2bfd4 <multithreading_lock_release+0xc>)
   2bfcc:	f003 fd9e 	bl	2fb0c <z_impl_k_mutex_unlock>
	k_mutex_unlock(&mpsl_lock);
}
   2bfd0:	bd08      	pop	{r3, pc}
   2bfd2:	bf00      	nop
   2bfd4:	20000838 	.word	0x20000838

0002bfd8 <k_sys_fatal_error_handler>:

extern void sys_arch_reboot(int type);

void k_sys_fatal_error_handler(unsigned int reason,
			       const z_arch_esf_t *esf)
{
   2bfd8:	b508      	push	{r3, lr}
	defined(CONFIG_SPM_SERVICE_NS_HANDLER_FROM_SPM_FAULT)
	z_spm_ns_fatal_error_handler();
#endif

	if (IS_ENABLED(CONFIG_RESET_ON_FATAL_ERROR)) {
		LOG_ERR("Resetting system");
   2bfda:	2145      	movs	r1, #69	; 0x45
   2bfdc:	4802      	ldr	r0, [pc, #8]	; (2bfe8 <k_sys_fatal_error_handler+0x10>)
   2bfde:	f007 fd85 	bl	33aec <z_log_minimal_printk>
		sys_arch_reboot(0);
   2bfe2:	2000      	movs	r0, #0
   2bfe4:	f7f3 ff9c 	bl	1ff20 <sys_arch_reboot>
		for (;;) {
			/* Spin endlessly */
		}
	}

	CODE_UNREACHABLE;
   2bfe8:	0003f014 	.word	0x0003f014

0002bfec <sdc_assertion_handler>:
	bt_ctlr_assert_handle((char *) file, line);
}

#else /* !IS_ENABLED(CONFIG_BT_CTLR_ASSERT_HANDLER) */
void sdc_assertion_handler(const char *const file, const uint32_t line)
{
   2bfec:	b508      	push	{r3, lr}
   2bfee:	4602      	mov	r2, r0
   2bff0:	460b      	mov	r3, r1
	BT_ERR("SoftDevice Controller ASSERT: %s, %d", log_strdup(file), line);
   2bff2:	2145      	movs	r1, #69	; 0x45
   2bff4:	4804      	ldr	r0, [pc, #16]	; (2c008 <sdc_assertion_handler+0x1c>)
   2bff6:	f007 fd79 	bl	33aec <z_log_minimal_printk>
	k_oops();
   2bffa:	4040      	eors	r0, r0
   2bffc:	f380 8811 	msr	BASEPRI, r0
   2c000:	f04f 0003 	mov.w	r0, #3
   2c004:	df02      	svc	2
}
   2c006:	bd08      	pop	{r3, pc}
   2c008:	0003f038 	.word	0x0003f038

0002c00c <host_signal>:
		k_yield();
	}
}

void host_signal(void)
{
   2c00c:	b508      	push	{r3, lr}
	z_impl_k_sem_give(sem);
   2c00e:	4802      	ldr	r0, [pc, #8]	; (2c018 <host_signal+0xc>)
   2c010:	f003 ff88 	bl	2ff24 <z_impl_k_sem_give>
	/* Wake up the RX event/data thread */
	k_sem_give(&sem_recv);
}
   2c014:	bd08      	pop	{r3, pc}
   2c016:	bf00      	nop
   2c018:	20000890 	.word	0x20000890

0002c01c <hci_driver_init>:

	(void)sdc_hci_cmd_vs_zephyr_write_bd_addr(bd_addr);
}

static int hci_driver_init(const struct device *unused)
{
   2c01c:	b508      	push	{r3, lr}
	ARG_UNUSED(unused);
	int err = 0;

	bt_hci_driver_register(&drv);
   2c01e:	4803      	ldr	r0, [pc, #12]	; (2c02c <hci_driver_init+0x10>)
   2c020:	f7f6 f82e 	bl	22080 <bt_hci_driver_register>

	err = sdc_init(sdc_assertion_handler);
   2c024:	4802      	ldr	r0, [pc, #8]	; (2c030 <hci_driver_init+0x14>)
   2c026:	f7e3 ff91 	bl	ff4c <sdc_init>
	return err;
}
   2c02a:	bd08      	pop	{r3, pc}
   2c02c:	0003f1e8 	.word	0x0003f1e8
   2c030:	0002bfed 	.word	0x0002bfed

0002c034 <acl_handle>:
{
   2c034:	b538      	push	{r3, r4, r5, lr}
   2c036:	4604      	mov	r4, r0
	int errcode = MULTITHREADING_LOCK_ACQUIRE();
   2c038:	f04f 30ff 	mov.w	r0, #4294967295
   2c03c:	f04f 31ff 	mov.w	r1, #4294967295
   2c040:	f7ff ffb8 	bl	2bfb4 <multithreading_lock_acquire>
	if (!errcode) {
   2c044:	4605      	mov	r5, r0
   2c046:	b108      	cbz	r0, 2c04c <acl_handle+0x18>
}
   2c048:	4628      	mov	r0, r5
   2c04a:	bd38      	pop	{r3, r4, r5, pc}
		errcode = sdc_hci_data_put(acl->data);
   2c04c:	68a0      	ldr	r0, [r4, #8]
   2c04e:	f7ec fc15 	bl	1887c <sdc_hci_data_put>
   2c052:	4605      	mov	r5, r0
		MULTITHREADING_LOCK_RELEASE();
   2c054:	f7ff ffb8 	bl	2bfc8 <multithreading_lock_release>
		if (errcode) {
   2c058:	2d00      	cmp	r5, #0
   2c05a:	d0f5      	beq.n	2c048 <acl_handle+0x14>
   2c05c:	4801      	ldr	r0, [pc, #4]	; (2c064 <acl_handle+0x30>)
   2c05e:	f003 ff61 	bl	2ff24 <z_impl_k_sem_give>
}
   2c062:	e7f1      	b.n	2c048 <acl_handle+0x14>
   2c064:	20000890 	.word	0x20000890

0002c068 <cmd_handle>:
{
   2c068:	b538      	push	{r3, r4, r5, lr}
   2c06a:	4605      	mov	r5, r0
	int errcode = MULTITHREADING_LOCK_ACQUIRE();
   2c06c:	f04f 30ff 	mov.w	r0, #4294967295
   2c070:	f04f 31ff 	mov.w	r1, #4294967295
   2c074:	f7ff ff9e 	bl	2bfb4 <multithreading_lock_acquire>
	if (!errcode) {
   2c078:	4604      	mov	r4, r0
   2c07a:	b110      	cbz	r0, 2c082 <cmd_handle+0x1a>
	if (errcode) {
   2c07c:	b144      	cbz	r4, 2c090 <cmd_handle+0x28>
}
   2c07e:	4620      	mov	r0, r4
   2c080:	bd38      	pop	{r3, r4, r5, pc}
		errcode = hci_internal_cmd_put(cmd->data);
   2c082:	68a8      	ldr	r0, [r5, #8]
   2c084:	f000 f9ca 	bl	2c41c <hci_internal_cmd_put>
   2c088:	4604      	mov	r4, r0
		MULTITHREADING_LOCK_RELEASE();
   2c08a:	f7ff ff9d 	bl	2bfc8 <multithreading_lock_release>
   2c08e:	e7f5      	b.n	2c07c <cmd_handle+0x14>
	z_impl_k_sem_give(sem);
   2c090:	4801      	ldr	r0, [pc, #4]	; (2c098 <cmd_handle+0x30>)
   2c092:	f003 ff47 	bl	2ff24 <z_impl_k_sem_give>
	return 0;
   2c096:	e7f2      	b.n	2c07e <cmd_handle+0x16>
   2c098:	20000890 	.word	0x20000890

0002c09c <rand_prio_low_vector_get_blocking>:
{
   2c09c:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   2c0a0:	4604      	mov	r4, r0
	int err = entropy_get_entropy(entropy_source, p_buff, length);
   2c0a2:	4b13      	ldr	r3, [pc, #76]	; (2c0f0 <rand_prio_low_vector_get_blocking+0x54>)
   2c0a4:	681e      	ldr	r6, [r3, #0]
   2c0a6:	460d      	mov	r5, r1

static inline int z_impl_entropy_get_entropy(const struct device *dev,
					     uint8_t *buffer,
					     uint16_t length)
{
	const struct entropy_driver_api *api =
   2c0a8:	68b7      	ldr	r7, [r6, #8]
		(const struct entropy_driver_api *)dev->api;

	__ASSERT(api->get_entropy != NULL,
   2c0aa:	683b      	ldr	r3, [r7, #0]
   2c0ac:	b13b      	cbz	r3, 2c0be <rand_prio_low_vector_get_blocking+0x22>
		"Callback pointer should not be NULL");
	return api->get_entropy(dev, buffer, length);
   2c0ae:	683b      	ldr	r3, [r7, #0]
   2c0b0:	462a      	mov	r2, r5
   2c0b2:	4621      	mov	r1, r4
   2c0b4:	4630      	mov	r0, r6
   2c0b6:	4798      	blx	r3
	__ASSERT(err == 0, "The entropy source returned an error in a blocking call");
   2c0b8:	b968      	cbnz	r0, 2c0d6 <rand_prio_low_vector_get_blocking+0x3a>
}
   2c0ba:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
	__ASSERT(api->get_entropy != NULL,
   2c0be:	f8df 803c 	ldr.w	r8, [pc, #60]	; 2c0fc <rand_prio_low_vector_get_blocking+0x60>
   2c0c2:	224b      	movs	r2, #75	; 0x4b
   2c0c4:	4641      	mov	r1, r8
   2c0c6:	480b      	ldr	r0, [pc, #44]	; (2c0f4 <rand_prio_low_vector_get_blocking+0x58>)
   2c0c8:	f007 f96f 	bl	333aa <printk>
   2c0cc:	214b      	movs	r1, #75	; 0x4b
   2c0ce:	4640      	mov	r0, r8
   2c0d0:	f007 fd04 	bl	33adc <assert_post_action>
   2c0d4:	e7eb      	b.n	2c0ae <rand_prio_low_vector_get_blocking+0x12>
	__ASSERT(err == 0, "The entropy source returned an error in a blocking call");
   2c0d6:	4c08      	ldr	r4, [pc, #32]	; (2c0f8 <rand_prio_low_vector_get_blocking+0x5c>)
   2c0d8:	f44f 72e1 	mov.w	r2, #450	; 0x1c2
   2c0dc:	4621      	mov	r1, r4
   2c0de:	4805      	ldr	r0, [pc, #20]	; (2c0f4 <rand_prio_low_vector_get_blocking+0x58>)
   2c0e0:	f007 f963 	bl	333aa <printk>
   2c0e4:	f44f 71e1 	mov.w	r1, #450	; 0x1c2
   2c0e8:	4620      	mov	r0, r4
   2c0ea:	f007 fcf7 	bl	33adc <assert_post_action>
}
   2c0ee:	e7e4      	b.n	2c0ba <rand_prio_low_vector_get_blocking+0x1e>
   2c0f0:	200025c4 	.word	0x200025c4
   2c0f4:	0003bdac 	.word	0x0003bdac
   2c0f8:	0003f094 	.word	0x0003f094
   2c0fc:	0003f064 	.word	0x0003f064

0002c100 <rand_prio_high_vector_get>:
{
   2c100:	b538      	push	{r3, r4, r5, lr}
   2c102:	4604      	mov	r4, r0
	int ret = entropy_get_entropy_isr(entropy_source, p_buff, length, 0);
   2c104:	4b0e      	ldr	r3, [pc, #56]	; (2c140 <rand_prio_high_vector_get+0x40>)
   2c106:	6818      	ldr	r0, [r3, #0]
static inline int entropy_get_entropy_isr(const struct device *dev,
					  uint8_t *buffer,
					  uint16_t length,
					  uint32_t flags)
{
	const struct entropy_driver_api *api =
   2c108:	6883      	ldr	r3, [r0, #8]
		(const struct entropy_driver_api *)dev->api;

	if (unlikely(!api->get_entropy_isr)) {
   2c10a:	685d      	ldr	r5, [r3, #4]
   2c10c:	b14d      	cbz	r5, 2c122 <rand_prio_high_vector_get+0x22>
   2c10e:	460a      	mov	r2, r1
		return -ENOTSUP;
	}

	return api->get_entropy_isr(dev, buffer, length, flags);
   2c110:	2300      	movs	r3, #0
   2c112:	4621      	mov	r1, r4
   2c114:	47a8      	blx	r5
	__ASSERT(ret >= 0, "The entropy source returned an error in the high priority context");
   2c116:	1e04      	subs	r4, r0, #0
   2c118:	db05      	blt.n	2c126 <rand_prio_high_vector_get+0x26>
	return ret >= 0 ? ret : 0;
   2c11a:	ea24 70e4 	bic.w	r0, r4, r4, asr #31
}
   2c11e:	b2c0      	uxtb	r0, r0
   2c120:	bd38      	pop	{r3, r4, r5, pc}
		return -ENOTSUP;
   2c122:	f06f 0485 	mvn.w	r4, #133	; 0x85
	__ASSERT(ret >= 0, "The entropy source returned an error in the high priority context");
   2c126:	4d07      	ldr	r5, [pc, #28]	; (2c144 <rand_prio_high_vector_get+0x44>)
   2c128:	f44f 72dd 	mov.w	r2, #442	; 0x1ba
   2c12c:	4629      	mov	r1, r5
   2c12e:	4806      	ldr	r0, [pc, #24]	; (2c148 <rand_prio_high_vector_get+0x48>)
   2c130:	f007 f93b 	bl	333aa <printk>
   2c134:	f44f 71dd 	mov.w	r1, #442	; 0x1ba
   2c138:	4628      	mov	r0, r5
   2c13a:	f007 fccf 	bl	33adc <assert_post_action>
   2c13e:	e7ec      	b.n	2c11a <rand_prio_high_vector_get+0x1a>
   2c140:	200025c4 	.word	0x200025c4
   2c144:	0003f094 	.word	0x0003f094
   2c148:	0003bdac 	.word	0x0003bdac

0002c14c <rand_prio_low_vector_get>:
{
   2c14c:	b538      	push	{r3, r4, r5, lr}
   2c14e:	4604      	mov	r4, r0
	int ret = entropy_get_entropy_isr(entropy_source, p_buff, length, 0);
   2c150:	4b0e      	ldr	r3, [pc, #56]	; (2c18c <rand_prio_low_vector_get+0x40>)
   2c152:	6818      	ldr	r0, [r3, #0]
	const struct entropy_driver_api *api =
   2c154:	6883      	ldr	r3, [r0, #8]
	if (unlikely(!api->get_entropy_isr)) {
   2c156:	685d      	ldr	r5, [r3, #4]
   2c158:	b14d      	cbz	r5, 2c16e <rand_prio_low_vector_get+0x22>
   2c15a:	460a      	mov	r2, r1
	return api->get_entropy_isr(dev, buffer, length, flags);
   2c15c:	2300      	movs	r3, #0
   2c15e:	4621      	mov	r1, r4
   2c160:	47a8      	blx	r5
	__ASSERT(ret >= 0, "The entropy source returned an error in the low priority context");
   2c162:	1e04      	subs	r4, r0, #0
   2c164:	db05      	blt.n	2c172 <rand_prio_low_vector_get+0x26>
	return ret >= 0 ? ret : 0;
   2c166:	ea24 70e4 	bic.w	r0, r4, r4, asr #31
}
   2c16a:	b2c0      	uxtb	r0, r0
   2c16c:	bd38      	pop	{r3, r4, r5, pc}
		return -ENOTSUP;
   2c16e:	f06f 0485 	mvn.w	r4, #133	; 0x85
	__ASSERT(ret >= 0, "The entropy source returned an error in the low priority context");
   2c172:	4d07      	ldr	r5, [pc, #28]	; (2c190 <rand_prio_low_vector_get+0x44>)
   2c174:	f44f 72d9 	mov.w	r2, #434	; 0x1b2
   2c178:	4629      	mov	r1, r5
   2c17a:	4806      	ldr	r0, [pc, #24]	; (2c194 <rand_prio_low_vector_get+0x48>)
   2c17c:	f007 f915 	bl	333aa <printk>
   2c180:	f44f 71d9 	mov.w	r1, #434	; 0x1b2
   2c184:	4628      	mov	r0, r5
   2c186:	f007 fca9 	bl	33adc <assert_post_action>
   2c18a:	e7ec      	b.n	2c166 <rand_prio_low_vector_get+0x1a>
   2c18c:	200025c4 	.word	0x200025c4
   2c190:	0003f094 	.word	0x0003f094
   2c194:	0003bdac 	.word	0x0003bdac

0002c198 <event_packet_process>:
{
   2c198:	b570      	push	{r4, r5, r6, lr}
   2c19a:	4604      	mov	r4, r0
	bool discardable = event_packet_is_discardable(hci_buf);
   2c19c:	f00d fb82 	bl	398a4 <event_packet_is_discardable>
   2c1a0:	4603      	mov	r3, r0
	if (hdr->evt == BT_HCI_EVT_LE_META_EVENT) {
   2c1a2:	7820      	ldrb	r0, [r4, #0]
	evt_buf = bt_buf_get_evt(hdr->evt, discardable,
   2c1a4:	461d      	mov	r5, r3
   2c1a6:	b183      	cbz	r3, 2c1ca <event_packet_process+0x32>
   2c1a8:	2200      	movs	r2, #0
   2c1aa:	2300      	movs	r3, #0
   2c1ac:	4629      	mov	r1, r5
   2c1ae:	f7f4 fb7f 	bl	208b0 <bt_buf_get_evt>
	if (!evt_buf) {
   2c1b2:	4606      	mov	r6, r0
   2c1b4:	b170      	cbz	r0, 2c1d4 <event_packet_process+0x3c>
	net_buf_add_mem(evt_buf, &hci_buf[0], hdr->len + sizeof(*hdr));
   2c1b6:	7862      	ldrb	r2, [r4, #1]
	return net_buf_simple_add_mem(&buf->b, mem, len);
   2c1b8:	3202      	adds	r2, #2
   2c1ba:	4621      	mov	r1, r4
   2c1bc:	3008      	adds	r0, #8
   2c1be:	f00c ffc1 	bl	39144 <net_buf_simple_add_mem>
	bt_recv(evt_buf);
   2c1c2:	4630      	mov	r0, r6
   2c1c4:	f7f5 ff18 	bl	21ff8 <bt_recv>
}
   2c1c8:	bd70      	pop	{r4, r5, r6, pc}
	evt_buf = bt_buf_get_evt(hdr->evt, discardable,
   2c1ca:	f04f 32ff 	mov.w	r2, #4294967295
   2c1ce:	f04f 33ff 	mov.w	r3, #4294967295
   2c1d2:	e7eb      	b.n	2c1ac <event_packet_process+0x14>
		if (discardable) {
   2c1d4:	2d00      	cmp	r5, #0
   2c1d6:	d1f7      	bne.n	2c1c8 <event_packet_process+0x30>
		BT_ERR("No event buffer available");
   2c1d8:	2145      	movs	r1, #69	; 0x45
   2c1da:	4802      	ldr	r0, [pc, #8]	; (2c1e4 <event_packet_process+0x4c>)
   2c1dc:	f007 fc86 	bl	33aec <z_log_minimal_printk>
		return;
   2c1e0:	e7f2      	b.n	2c1c8 <event_packet_process+0x30>
   2c1e2:	bf00      	nop
   2c1e4:	0003f0d0 	.word	0x0003f0d0

0002c1e8 <data_packet_process>:
{
   2c1e8:	b538      	push	{r3, r4, r5, lr}
   2c1ea:	4604      	mov	r4, r0
	struct net_buf *data_buf = bt_buf_get_rx(BT_BUF_ACL_IN, K_FOREVER);
   2c1ec:	f04f 32ff 	mov.w	r2, #4294967295
   2c1f0:	f04f 33ff 	mov.w	r3, #4294967295
   2c1f4:	2003      	movs	r0, #3
   2c1f6:	f7f4 fb17 	bl	20828 <bt_buf_get_rx>
	if (!data_buf) {
   2c1fa:	b150      	cbz	r0, 2c212 <data_packet_process+0x2a>
   2c1fc:	4605      	mov	r5, r0
	len = sys_le16_to_cpu(hdr->len);
   2c1fe:	8862      	ldrh	r2, [r4, #2]
   2c200:	3204      	adds	r2, #4
   2c202:	4621      	mov	r1, r4
   2c204:	3008      	adds	r0, #8
   2c206:	f00c ff9d 	bl	39144 <net_buf_simple_add_mem>
	bt_recv(data_buf);
   2c20a:	4628      	mov	r0, r5
   2c20c:	f7f5 fef4 	bl	21ff8 <bt_recv>
}
   2c210:	bd38      	pop	{r3, r4, r5, pc}
		BT_ERR("No data buffer available");
   2c212:	2145      	movs	r1, #69	; 0x45
   2c214:	4801      	ldr	r0, [pc, #4]	; (2c21c <data_packet_process+0x34>)
   2c216:	f007 fc69 	bl	33aec <z_log_minimal_printk>
		return;
   2c21a:	e7f9      	b.n	2c210 <data_packet_process+0x28>
   2c21c:	0003f0f0 	.word	0x0003f0f0

0002c220 <recv_thread>:
{
   2c220:	b538      	push	{r3, r4, r5, lr}
	bool received_data = false;
   2c222:	2500      	movs	r5, #0
	bool received_evt = false;
   2c224:	462c      	mov	r4, r5
   2c226:	e00a      	b.n	2c23e <recv_thread+0x1e>
		received_evt = fetch_and_process_hci_evt(&hci_buffer[0]);
   2c228:	4d0b      	ldr	r5, [pc, #44]	; (2c258 <recv_thread+0x38>)
   2c22a:	4628      	mov	r0, r5
   2c22c:	f00d fb6e 	bl	3990c <fetch_and_process_hci_evt>
   2c230:	4604      	mov	r4, r0
			received_data = fetch_and_process_acl_data(&hci_buffer[0]);
   2c232:	4628      	mov	r0, r5
   2c234:	f00d fb83 	bl	3993e <fetch_and_process_acl_data>
   2c238:	4605      	mov	r5, r0
	z_impl_k_yield();
   2c23a:	f005 fbad 	bl	31998 <z_impl_k_yield>
		if (!received_evt && !received_data) {
   2c23e:	2c00      	cmp	r4, #0
   2c240:	d1f2      	bne.n	2c228 <recv_thread+0x8>
   2c242:	2d00      	cmp	r5, #0
   2c244:	d1f0      	bne.n	2c228 <recv_thread+0x8>
	return z_impl_k_sem_take(sem, timeout);
   2c246:	f04f 32ff 	mov.w	r2, #4294967295
   2c24a:	f04f 33ff 	mov.w	r3, #4294967295
   2c24e:	4803      	ldr	r0, [pc, #12]	; (2c25c <recv_thread+0x3c>)
   2c250:	f003 fea8 	bl	2ffa4 <z_impl_k_sem_take>
   2c254:	e7e8      	b.n	2c228 <recv_thread+0x8>
   2c256:	bf00      	nop
   2c258:	200025c8 	.word	0x200025c8
   2c25c:	20000890 	.word	0x20000890

0002c260 <configure_memory_usage>:
{
   2c260:	b500      	push	{lr}
   2c262:	b083      	sub	sp, #12
	cfg.master_count.count = SDC_MASTER_COUNT;
   2c264:	2000      	movs	r0, #0
   2c266:	f88d 0004 	strb.w	r0, [sp, #4]
		sdc_cfg_set(SDC_DEFAULT_RESOURCE_CFG_TAG,
   2c26a:	aa01      	add	r2, sp, #4
   2c26c:	2101      	movs	r1, #1
   2c26e:	f7e3 fded 	bl	fe4c <sdc_cfg_set>
	if (required_memory < 0) {
   2c272:	2800      	cmp	r0, #0
   2c274:	db3c      	blt.n	2c2f0 <configure_memory_usage+0x90>
	cfg.slave_count.count = CONFIG_SDC_SLAVE_COUNT;
   2c276:	2301      	movs	r3, #1
   2c278:	f88d 3004 	strb.w	r3, [sp, #4]
		sdc_cfg_set(SDC_DEFAULT_RESOURCE_CFG_TAG,
   2c27c:	aa01      	add	r2, sp, #4
   2c27e:	2102      	movs	r1, #2
   2c280:	2000      	movs	r0, #0
   2c282:	f7e3 fde3 	bl	fe4c <sdc_cfg_set>
	if (required_memory < 0) {
   2c286:	2800      	cmp	r0, #0
   2c288:	db32      	blt.n	2c2f0 <configure_memory_usage+0x90>
	cfg.buffer_cfg.rx_packet_size = MAX_RX_PACKET_SIZE;
   2c28a:	231b      	movs	r3, #27
   2c28c:	f88d 3005 	strb.w	r3, [sp, #5]
	cfg.buffer_cfg.tx_packet_size = MAX_TX_PACKET_SIZE;
   2c290:	f88d 3004 	strb.w	r3, [sp, #4]
	cfg.buffer_cfg.rx_packet_count = SDC_DEFAULT_RX_PACKET_COUNT;
   2c294:	2302      	movs	r3, #2
   2c296:	f88d 3007 	strb.w	r3, [sp, #7]
	cfg.buffer_cfg.tx_packet_count = SDC_DEFAULT_TX_PACKET_COUNT;
   2c29a:	2103      	movs	r1, #3
   2c29c:	f88d 1006 	strb.w	r1, [sp, #6]
		sdc_cfg_set(SDC_DEFAULT_RESOURCE_CFG_TAG,
   2c2a0:	aa01      	add	r2, sp, #4
   2c2a2:	2000      	movs	r0, #0
   2c2a4:	f7e3 fdd2 	bl	fe4c <sdc_cfg_set>
	if (required_memory < 0) {
   2c2a8:	2800      	cmp	r0, #0
   2c2aa:	db21      	blt.n	2c2f0 <configure_memory_usage+0x90>
	cfg.event_length.event_length_us =
   2c2ac:	f641 534c 	movw	r3, #7500	; 0x1d4c
   2c2b0:	9301      	str	r3, [sp, #4]
		sdc_cfg_set(SDC_DEFAULT_RESOURCE_CFG_TAG,
   2c2b2:	aa01      	add	r2, sp, #4
   2c2b4:	2104      	movs	r1, #4
   2c2b6:	2000      	movs	r0, #0
   2c2b8:	f7e3 fdc8 	bl	fe4c <sdc_cfg_set>
	if (required_memory < 0) {
   2c2bc:	2800      	cmp	r0, #0
   2c2be:	db17      	blt.n	2c2f0 <configure_memory_usage+0x90>
	cfg.adv_count.count = SDC_ADV_SET_COUNT;
   2c2c0:	2301      	movs	r3, #1
   2c2c2:	f88d 3004 	strb.w	r3, [sp, #4]
	sdc_cfg_set(SDC_DEFAULT_RESOURCE_CFG_TAG,
   2c2c6:	aa01      	add	r2, sp, #4
   2c2c8:	2105      	movs	r1, #5
   2c2ca:	2000      	movs	r0, #0
   2c2cc:	f7e3 fdbe 	bl	fe4c <sdc_cfg_set>
	if (required_memory < 0) {
   2c2d0:	2800      	cmp	r0, #0
   2c2d2:	db0d      	blt.n	2c2f0 <configure_memory_usage+0x90>
		cfg.adv_buffer_cfg.max_adv_data = SDC_DEFAULT_ADV_BUF_SIZE;
   2c2d4:	231f      	movs	r3, #31
   2c2d6:	f8ad 3004 	strh.w	r3, [sp, #4]
		sdc_cfg_set(SDC_DEFAULT_RESOURCE_CFG_TAG,
   2c2da:	aa01      	add	r2, sp, #4
   2c2dc:	2107      	movs	r1, #7
   2c2de:	2000      	movs	r0, #0
   2c2e0:	f7e3 fdb4 	bl	fe4c <sdc_cfg_set>
		if (required_memory < 0) {
   2c2e4:	2800      	cmp	r0, #0
   2c2e6:	db03      	blt.n	2c2f0 <configure_memory_usage+0x90>
	if (required_memory > sizeof(sdc_mempool)) {
   2c2e8:	f5b0 6faf 	cmp.w	r0, #1400	; 0x578
   2c2ec:	d803      	bhi.n	2c2f6 <configure_memory_usage+0x96>
	return 0;
   2c2ee:	2000      	movs	r0, #0
}
   2c2f0:	b003      	add	sp, #12
   2c2f2:	f85d fb04 	ldr.w	pc, [sp], #4
		BT_ERR("Allocated memory too low: %u < %u",
   2c2f6:	4603      	mov	r3, r0
   2c2f8:	f44f 62af 	mov.w	r2, #1400	; 0x578
   2c2fc:	2145      	movs	r1, #69	; 0x45
   2c2fe:	4806      	ldr	r0, [pc, #24]	; (2c318 <configure_memory_usage+0xb8>)
   2c300:	f007 fbf4 	bl	33aec <z_log_minimal_printk>
		k_panic();
   2c304:	4040      	eors	r0, r0
   2c306:	f380 8811 	msr	BASEPRI, r0
   2c30a:	f04f 0004 	mov.w	r0, #4
   2c30e:	df02      	svc	2
		return -ENOMEM;
   2c310:	f06f 000b 	mvn.w	r0, #11
   2c314:	e7ec      	b.n	2c2f0 <configure_memory_usage+0x90>
   2c316:	bf00      	nop
   2c318:	0003f110 	.word	0x0003f110

0002c31c <hci_driver_open>:
{
   2c31c:	b530      	push	{r4, r5, lr}
   2c31e:	b091      	sub	sp, #68	; 0x44
	return z_impl_k_thread_create(new_thread, stack, stack_size, entry, p1, p2, p3, prio, options, delay);
   2c320:	4c31      	ldr	r4, [pc, #196]	; (2c3e8 <hci_driver_open+0xcc>)
   2c322:	2200      	movs	r2, #0
   2c324:	2300      	movs	r3, #0
   2c326:	e9cd 2306 	strd	r2, r3, [sp, #24]
   2c32a:	2300      	movs	r3, #0
   2c32c:	9304      	str	r3, [sp, #16]
   2c32e:	f06f 0209 	mvn.w	r2, #9
   2c332:	9203      	str	r2, [sp, #12]
   2c334:	9302      	str	r3, [sp, #8]
   2c336:	9301      	str	r3, [sp, #4]
   2c338:	9300      	str	r3, [sp, #0]
   2c33a:	4b2c      	ldr	r3, [pc, #176]	; (2c3ec <hci_driver_open+0xd0>)
   2c33c:	f44f 6280 	mov.w	r2, #1024	; 0x400
   2c340:	492b      	ldr	r1, [pc, #172]	; (2c3f0 <hci_driver_open+0xd4>)
   2c342:	4620      	mov	r0, r4
   2c344:	f003 fa08 	bl	2f758 <z_impl_k_thread_create>
	return z_impl_k_thread_name_set(thread, str);
   2c348:	492a      	ldr	r1, [pc, #168]	; (2c3f4 <hci_driver_open+0xd8>)
   2c34a:	4620      	mov	r0, r4
   2c34c:	f003 f8c6 	bl	2f4dc <z_impl_k_thread_name_set>
	sdc_build_revision_get(build_revision);
   2c350:	a80b      	add	r0, sp, #44	; 0x2c
   2c352:	f7e3 fd6d 	bl	fe30 <sdc_build_revision_get>
	LOG_HEXDUMP_INF(build_revision, sizeof(build_revision),
   2c356:	4a28      	ldr	r2, [pc, #160]	; (2c3f8 <hci_driver_open+0xdc>)
   2c358:	2149      	movs	r1, #73	; 0x49
   2c35a:	4828      	ldr	r0, [pc, #160]	; (2c3fc <hci_driver_open+0xe0>)
   2c35c:	f007 fbc6 	bl	33aec <z_log_minimal_printk>
   2c360:	2214      	movs	r2, #20
   2c362:	a90b      	add	r1, sp, #44	; 0x2c
   2c364:	2003      	movs	r0, #3
   2c366:	f7f1 fab1 	bl	1d8cc <z_log_minimal_hexdump_print>
	err = configure_supported_features();
   2c36a:	f00d fb01 	bl	39970 <configure_supported_features>
	if (err) {
   2c36e:	b118      	cbz	r0, 2c378 <hci_driver_open+0x5c>
		return -err;
   2c370:	4244      	negs	r4, r0
}
   2c372:	4620      	mov	r0, r4
   2c374:	b011      	add	sp, #68	; 0x44
   2c376:	bd30      	pop	{r4, r5, pc}
	err = configure_memory_usage();
   2c378:	f7ff ff72 	bl	2c260 <configure_memory_usage>
	if (err) {
   2c37c:	4604      	mov	r4, r0
   2c37e:	2800      	cmp	r0, #0
   2c380:	d1f7      	bne.n	2c372 <hci_driver_open+0x56>
   2c382:	481f      	ldr	r0, [pc, #124]	; (2c400 <hci_driver_open+0xe4>)
   2c384:	f002 fd1a 	bl	2edbc <z_impl_device_get_binding>
	entropy_source = device_get_binding(DT_LABEL(DT_NODELABEL(rng)));
   2c388:	4b1e      	ldr	r3, [pc, #120]	; (2c404 <hci_driver_open+0xe8>)
   2c38a:	6018      	str	r0, [r3, #0]
	if (!entropy_source) {
   2c38c:	b1a8      	cbz	r0, 2c3ba <hci_driver_open+0x9e>
	sdc_rand_source_t rand_functions = {
   2c38e:	4a1e      	ldr	r2, [pc, #120]	; (2c408 <hci_driver_open+0xec>)
   2c390:	ab08      	add	r3, sp, #32
   2c392:	ca07      	ldmia	r2, {r0, r1, r2}
   2c394:	e883 0007 	stmia.w	r3, {r0, r1, r2}
	err = sdc_rand_source_register(&rand_functions);
   2c398:	4618      	mov	r0, r3
   2c39a:	f7e3 fee7 	bl	1016c <sdc_rand_source_register>
	if (err) {
   2c39e:	4604      	mov	r4, r0
   2c3a0:	b990      	cbnz	r0, 2c3c8 <hci_driver_open+0xac>
	err = MULTITHREADING_LOCK_ACQUIRE();
   2c3a2:	f04f 30ff 	mov.w	r0, #4294967295
   2c3a6:	f04f 31ff 	mov.w	r1, #4294967295
   2c3aa:	f7ff fe03 	bl	2bfb4 <multithreading_lock_acquire>
	if (!err) {
   2c3ae:	4605      	mov	r5, r0
   2c3b0:	b190      	cbz	r0, 2c3d8 <hci_driver_open+0xbc>
	if (err < 0) {
   2c3b2:	2d00      	cmp	r5, #0
   2c3b4:	dadd      	bge.n	2c372 <hci_driver_open+0x56>
		return err;
   2c3b6:	462c      	mov	r4, r5
   2c3b8:	e7db      	b.n	2c372 <hci_driver_open+0x56>
		BT_ERR("An entropy source is required");
   2c3ba:	2145      	movs	r1, #69	; 0x45
   2c3bc:	4813      	ldr	r0, [pc, #76]	; (2c40c <hci_driver_open+0xf0>)
   2c3be:	f007 fb95 	bl	33aec <z_log_minimal_printk>
		return -ENODEV;
   2c3c2:	f06f 0412 	mvn.w	r4, #18
   2c3c6:	e7d4      	b.n	2c372 <hci_driver_open+0x56>
		BT_ERR("Failed to register rand source (%d)", err);
   2c3c8:	4602      	mov	r2, r0
   2c3ca:	2145      	movs	r1, #69	; 0x45
   2c3cc:	4810      	ldr	r0, [pc, #64]	; (2c410 <hci_driver_open+0xf4>)
   2c3ce:	f007 fb8d 	bl	33aec <z_log_minimal_printk>
		return -EINVAL;
   2c3d2:	f06f 0415 	mvn.w	r4, #21
   2c3d6:	e7cc      	b.n	2c372 <hci_driver_open+0x56>
		err = sdc_enable(host_signal, sdc_mempool);
   2c3d8:	490e      	ldr	r1, [pc, #56]	; (2c414 <hci_driver_open+0xf8>)
   2c3da:	480f      	ldr	r0, [pc, #60]	; (2c418 <hci_driver_open+0xfc>)
   2c3dc:	f7e3 fd8e 	bl	fefc <sdc_enable>
   2c3e0:	4605      	mov	r5, r0
		MULTITHREADING_LOCK_RELEASE();
   2c3e2:	f7ff fdf1 	bl	2bfc8 <multithreading_lock_release>
   2c3e6:	e7e4      	b.n	2c3b2 <hci_driver_open+0x96>
   2c3e8:	20001d30 	.word	0x20001d30
   2c3ec:	0002c221 	.word	0x0002c221
   2c3f0:	20004880 	.word	0x20004880
   2c3f4:	0003f138 	.word	0x0003f138
   2c3f8:	0003f140 	.word	0x0003f140
   2c3fc:	0003f168 	.word	0x0003f168
   2c400:	0003edd0 	.word	0x0003edd0
   2c404:	200025c4 	.word	0x200025c4
   2c408:	0003ba6c 	.word	0x0003ba6c
   2c40c:	0003f170 	.word	0x0003f170
   2c410:	0003f194 	.word	0x0003f194
   2c414:	200026cc 	.word	0x200026cc
   2c418:	0002c00d 	.word	0x0002c00d

0002c41c <hci_internal_cmd_put>:

int hci_internal_cmd_put(uint8_t *cmd_in)
{
	uint16_t opcode = sys_get_le16(cmd_in);

	if (cmd_complete_or_status.occurred) {
   2c41c:	4b0b      	ldr	r3, [pc, #44]	; (2c44c <hci_internal_cmd_put+0x30>)
   2c41e:	781b      	ldrb	r3, [r3, #0]
   2c420:	b96b      	cbnz	r3, 2c43e <hci_internal_cmd_put+0x22>
		return -NRF_EPERM;
	}

	if ((((struct bt_hci_cmd_hdr *)cmd_in)->param_len + BT_HCI_CMD_HDR_SIZE)
   2c422:	7883      	ldrb	r3, [r0, #2]
   2c424:	3303      	adds	r3, #3
   2c426:	f5b3 7f81 	cmp.w	r3, #258	; 0x102
   2c42a:	dc0b      	bgt.n	2c444 <hci_internal_cmd_put+0x28>
{
   2c42c:	b510      	push	{r4, lr}
		> HCI_CMD_PACKET_MAX_SIZE) {
		return -EINVAL;
	}

	if (!IS_ENABLED(CONFIG_BT_CTLR_ADV_EXT)) {
		cmd_put(cmd_in, &cmd_complete_or_status.raw_event[0]);
   2c42e:	4c07      	ldr	r4, [pc, #28]	; (2c44c <hci_internal_cmd_put+0x30>)
   2c430:	1c61      	adds	r1, r4, #1
   2c432:	f00d fd78 	bl	39f26 <cmd_put>
	{
		/* SDC_HCI_OPCODE_CMD_CB_HOST_NUMBER_OF_COMPLETED_PACKETS will only generate
		 *  command complete if it fails.
		 */

		cmd_complete_or_status.occurred = true;
   2c436:	2301      	movs	r3, #1
   2c438:	7023      	strb	r3, [r4, #0]
	}

	return 0;
   2c43a:	2000      	movs	r0, #0
}
   2c43c:	bd10      	pop	{r4, pc}
		return -NRF_EPERM;
   2c43e:	f04f 30ff 	mov.w	r0, #4294967295
   2c442:	4770      	bx	lr
		return -EINVAL;
   2c444:	f06f 0015 	mvn.w	r0, #21
}
   2c448:	4770      	bx	lr
   2c44a:	bf00      	nop
   2c44c:	20002c44 	.word	0x20002c44

0002c450 <hci_internal_evt_get>:

int hci_internal_evt_get(uint8_t *evt_out)
{
   2c450:	b510      	push	{r4, lr}
	if (cmd_complete_or_status.occurred) {
   2c452:	4b07      	ldr	r3, [pc, #28]	; (2c470 <hci_internal_evt_get+0x20>)
   2c454:	781b      	ldrb	r3, [r3, #0]
   2c456:	b913      	cbnz	r3, 2c45e <hci_internal_evt_get+0xe>
		cmd_complete_or_status.occurred = false;

		return 0;
	}

	return sdc_hci_evt_get(evt_out);
   2c458:	f7ec fa1b 	bl	18892 <sdc_hci_evt_get>
}
   2c45c:	bd10      	pop	{r4, pc}
		       evt_hdr->len + BT_HCI_EVT_HDR_SIZE);
   2c45e:	4c04      	ldr	r4, [pc, #16]	; (2c470 <hci_internal_evt_get+0x20>)
   2c460:	78a2      	ldrb	r2, [r4, #2]
		memcpy(evt_out,
   2c462:	3202      	adds	r2, #2
   2c464:	1c61      	adds	r1, r4, #1
   2c466:	f009 fb49 	bl	35afc <memcpy>
		cmd_complete_or_status.occurred = false;
   2c46a:	2000      	movs	r0, #0
   2c46c:	7020      	strb	r0, [r4, #0]
		return 0;
   2c46e:	e7f5      	b.n	2c45c <hci_internal_evt_get+0xc>
   2c470:	20002c44 	.word	0x20002c44

0002c474 <bt_rand>:
#include <common/log.h>

#define BT_ECB_BLOCK_SIZE 16

int bt_rand(void *buf, size_t len)
{
   2c474:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   2c478:	4607      	mov	r7, r0
   2c47a:	460c      	mov	r4, r1
	static const struct device *dev;

	if (unlikely(!dev)) {
   2c47c:	4b12      	ldr	r3, [pc, #72]	; (2c4c8 <bt_rand+0x54>)
   2c47e:	681b      	ldr	r3, [r3, #0]
   2c480:	b163      	cbz	r3, 2c49c <bt_rand+0x28>
		if (!dev) {
			return -ENODEV;
		}
	}

	return entropy_get_entropy(dev, (uint8_t *)buf, len);
   2c482:	4b11      	ldr	r3, [pc, #68]	; (2c4c8 <bt_rand+0x54>)
   2c484:	681d      	ldr	r5, [r3, #0]
   2c486:	b2a4      	uxth	r4, r4
	const struct entropy_driver_api *api =
   2c488:	68ae      	ldr	r6, [r5, #8]
	__ASSERT(api->get_entropy != NULL,
   2c48a:	6833      	ldr	r3, [r6, #0]
   2c48c:	b183      	cbz	r3, 2c4b0 <bt_rand+0x3c>
	return api->get_entropy(dev, buffer, length);
   2c48e:	6833      	ldr	r3, [r6, #0]
   2c490:	4622      	mov	r2, r4
   2c492:	4639      	mov	r1, r7
   2c494:	4628      	mov	r0, r5
   2c496:	4798      	blx	r3
}
   2c498:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
   2c49c:	480b      	ldr	r0, [pc, #44]	; (2c4cc <bt_rand+0x58>)
   2c49e:	f002 fc8d 	bl	2edbc <z_impl_device_get_binding>
		dev = device_get_binding(DT_LABEL(DT_NODELABEL(rng)));
   2c4a2:	4b09      	ldr	r3, [pc, #36]	; (2c4c8 <bt_rand+0x54>)
   2c4a4:	6018      	str	r0, [r3, #0]
		if (!dev) {
   2c4a6:	2800      	cmp	r0, #0
   2c4a8:	d1eb      	bne.n	2c482 <bt_rand+0xe>
			return -ENODEV;
   2c4aa:	f06f 0012 	mvn.w	r0, #18
   2c4ae:	e7f3      	b.n	2c498 <bt_rand+0x24>
	__ASSERT(api->get_entropy != NULL,
   2c4b0:	f8df 8020 	ldr.w	r8, [pc, #32]	; 2c4d4 <bt_rand+0x60>
   2c4b4:	224b      	movs	r2, #75	; 0x4b
   2c4b6:	4641      	mov	r1, r8
   2c4b8:	4805      	ldr	r0, [pc, #20]	; (2c4d0 <bt_rand+0x5c>)
   2c4ba:	f006 ff76 	bl	333aa <printk>
   2c4be:	214b      	movs	r1, #75	; 0x4b
   2c4c0:	4640      	mov	r0, r8
   2c4c2:	f007 fb0b 	bl	33adc <assert_post_action>
   2c4c6:	e7e2      	b.n	2c48e <bt_rand+0x1a>
   2c4c8:	20002c8c 	.word	0x20002c8c
   2c4cc:	0003edd0 	.word	0x0003edd0
   2c4d0:	0003bdac 	.word	0x0003bdac
   2c4d4:	0003f064 	.word	0x0003f064

0002c4d8 <bt_encrypt_le>:

int bt_encrypt_le(const uint8_t key[BT_ECB_BLOCK_SIZE],
		  const uint8_t plaintext[BT_ECB_BLOCK_SIZE],
		  uint8_t enc_data[BT_ECB_BLOCK_SIZE])
{
   2c4d8:	b5f0      	push	{r4, r5, r6, r7, lr}
   2c4da:	b08d      	sub	sp, #52	; 0x34
   2c4dc:	4605      	mov	r5, r0
   2c4de:	460c      	mov	r4, r1
   2c4e0:	4616      	mov	r6, r2
	__ASSERT(((psrc < pdst && (psrc + length) <= pdst) ||
   2c4e2:	ab08      	add	r3, sp, #32
   2c4e4:	4298      	cmp	r0, r3
   2c4e6:	d204      	bcs.n	2c4f2 <bt_encrypt_le+0x1a>
   2c4e8:	f100 0310 	add.w	r3, r0, #16
   2c4ec:	aa08      	add	r2, sp, #32
   2c4ee:	4293      	cmp	r3, r2
   2c4f0:	d911      	bls.n	2c516 <bt_encrypt_le+0x3e>
   2c4f2:	ab08      	add	r3, sp, #32
   2c4f4:	429d      	cmp	r5, r3
   2c4f6:	d902      	bls.n	2c4fe <bt_encrypt_le+0x26>
   2c4f8:	ab0c      	add	r3, sp, #48	; 0x30
   2c4fa:	429d      	cmp	r5, r3
   2c4fc:	d20b      	bcs.n	2c516 <bt_encrypt_le+0x3e>
   2c4fe:	4f3a      	ldr	r7, [pc, #232]	; (2c5e8 <bt_encrypt_le+0x110>)
   2c500:	f240 2217 	movw	r2, #535	; 0x217
   2c504:	4639      	mov	r1, r7
   2c506:	4839      	ldr	r0, [pc, #228]	; (2c5ec <bt_encrypt_le+0x114>)
   2c508:	f006 ff4f 	bl	333aa <printk>
   2c50c:	f240 2117 	movw	r1, #535	; 0x217
   2c510:	4638      	mov	r0, r7
   2c512:	f007 fae3 	bl	33adc <assert_post_action>
	psrc += length - 1;
   2c516:	350f      	adds	r5, #15
	uint8_t *pdst = (uint8_t *)dst;
   2c518:	ab08      	add	r3, sp, #32
	for (; length > 0; length--) {
   2c51a:	2210      	movs	r2, #16
   2c51c:	b12a      	cbz	r2, 2c52a <bt_encrypt_le+0x52>
		*pdst++ = *psrc--;
   2c51e:	f815 1901 	ldrb.w	r1, [r5], #-1
   2c522:	f803 1b01 	strb.w	r1, [r3], #1
	for (; length > 0; length--) {
   2c526:	3a01      	subs	r2, #1
   2c528:	e7f8      	b.n	2c51c <bt_encrypt_le+0x44>
	__ASSERT(((psrc < pdst && (psrc + length) <= pdst) ||
   2c52a:	ab04      	add	r3, sp, #16
   2c52c:	429c      	cmp	r4, r3
   2c52e:	d204      	bcs.n	2c53a <bt_encrypt_le+0x62>
   2c530:	f104 0310 	add.w	r3, r4, #16
   2c534:	aa04      	add	r2, sp, #16
   2c536:	4293      	cmp	r3, r2
   2c538:	d911      	bls.n	2c55e <bt_encrypt_le+0x86>
   2c53a:	ab04      	add	r3, sp, #16
   2c53c:	429c      	cmp	r4, r3
   2c53e:	d902      	bls.n	2c546 <bt_encrypt_le+0x6e>
   2c540:	ab08      	add	r3, sp, #32
   2c542:	429c      	cmp	r4, r3
   2c544:	d20b      	bcs.n	2c55e <bt_encrypt_le+0x86>
   2c546:	4d28      	ldr	r5, [pc, #160]	; (2c5e8 <bt_encrypt_le+0x110>)
   2c548:	f240 2217 	movw	r2, #535	; 0x217
   2c54c:	4629      	mov	r1, r5
   2c54e:	4827      	ldr	r0, [pc, #156]	; (2c5ec <bt_encrypt_le+0x114>)
   2c550:	f006 ff2b 	bl	333aa <printk>
   2c554:	f240 2117 	movw	r1, #535	; 0x217
   2c558:	4628      	mov	r0, r5
   2c55a:	f007 fabf 	bl	33adc <assert_post_action>
	psrc += length - 1;
   2c55e:	340f      	adds	r4, #15
	uint8_t *pdst = (uint8_t *)dst;
   2c560:	ab04      	add	r3, sp, #16
	for (; length > 0; length--) {
   2c562:	2210      	movs	r2, #16
   2c564:	e004      	b.n	2c570 <bt_encrypt_le+0x98>
		*pdst++ = *psrc--;
   2c566:	f814 1901 	ldrb.w	r1, [r4], #-1
   2c56a:	f803 1b01 	strb.w	r1, [r3], #1
	for (; length > 0; length--) {
   2c56e:	3a01      	subs	r2, #1
   2c570:	2a00      	cmp	r2, #0
   2c572:	d1f8      	bne.n	2c566 <bt_encrypt_le+0x8e>
	BT_HEXDUMP_DBG(plaintext, BT_ECB_BLOCK_SIZE, "plaintext");

	sys_memcpy_swap(key_le, key, BT_ECB_BLOCK_SIZE);
	sys_memcpy_swap(plaintext_le, plaintext, BT_ECB_BLOCK_SIZE);

	int errcode = MULTITHREADING_LOCK_ACQUIRE();
   2c574:	f04f 30ff 	mov.w	r0, #4294967295
   2c578:	f04f 31ff 	mov.w	r1, #4294967295
   2c57c:	f7ff fd1a 	bl	2bfb4 <multithreading_lock_acquire>

	if (!errcode) {
   2c580:	4604      	mov	r4, r0
   2c582:	b118      	cbz	r0, 2c58c <bt_encrypt_le+0xb4>
		errcode = sdc_soc_ecb_block_encrypt(key_le, plaintext_le, enc_data_le);
		MULTITHREADING_LOCK_RELEASE();
	}

	if (!errcode) {
   2c584:	b15c      	cbz	r4, 2c59e <bt_encrypt_le+0xc6>

		BT_HEXDUMP_DBG(enc_data, BT_ECB_BLOCK_SIZE, "enc_data");
	}

	return errcode;
}
   2c586:	4620      	mov	r0, r4
   2c588:	b00d      	add	sp, #52	; 0x34
   2c58a:	bdf0      	pop	{r4, r5, r6, r7, pc}
		errcode = sdc_soc_ecb_block_encrypt(key_le, plaintext_le, enc_data_le);
   2c58c:	466a      	mov	r2, sp
   2c58e:	a904      	add	r1, sp, #16
   2c590:	a808      	add	r0, sp, #32
   2c592:	f7eb feef 	bl	18374 <sdc_soc_ecb_block_encrypt>
   2c596:	4604      	mov	r4, r0
		MULTITHREADING_LOCK_RELEASE();
   2c598:	f7ff fd16 	bl	2bfc8 <multithreading_lock_release>
   2c59c:	e7f2      	b.n	2c584 <bt_encrypt_le+0xac>
	__ASSERT(((psrc < pdst && (psrc + length) <= pdst) ||
   2c59e:	466b      	mov	r3, sp
   2c5a0:	429e      	cmp	r6, r3
   2c5a2:	d902      	bls.n	2c5aa <bt_encrypt_le+0xd2>
   2c5a4:	ab04      	add	r3, sp, #16
   2c5a6:	429e      	cmp	r6, r3
   2c5a8:	d213      	bcs.n	2c5d2 <bt_encrypt_le+0xfa>
   2c5aa:	466b      	mov	r3, sp
   2c5ac:	429e      	cmp	r6, r3
   2c5ae:	d204      	bcs.n	2c5ba <bt_encrypt_le+0xe2>
   2c5b0:	f106 0310 	add.w	r3, r6, #16
   2c5b4:	466a      	mov	r2, sp
   2c5b6:	4293      	cmp	r3, r2
   2c5b8:	d90b      	bls.n	2c5d2 <bt_encrypt_le+0xfa>
   2c5ba:	4d0b      	ldr	r5, [pc, #44]	; (2c5e8 <bt_encrypt_le+0x110>)
   2c5bc:	f240 2217 	movw	r2, #535	; 0x217
   2c5c0:	4629      	mov	r1, r5
   2c5c2:	480a      	ldr	r0, [pc, #40]	; (2c5ec <bt_encrypt_le+0x114>)
   2c5c4:	f006 fef1 	bl	333aa <printk>
   2c5c8:	f240 2117 	movw	r1, #535	; 0x217
   2c5cc:	4628      	mov	r0, r5
   2c5ce:	f007 fa85 	bl	33adc <assert_post_action>
	psrc += length - 1;
   2c5d2:	f10d 030f 	add.w	r3, sp, #15
	for (; length > 0; length--) {
   2c5d6:	2210      	movs	r2, #16
   2c5d8:	2a00      	cmp	r2, #0
   2c5da:	d0d4      	beq.n	2c586 <bt_encrypt_le+0xae>
		*pdst++ = *psrc--;
   2c5dc:	f813 1901 	ldrb.w	r1, [r3], #-1
   2c5e0:	f806 1b01 	strb.w	r1, [r6], #1
	for (; length > 0; length--) {
   2c5e4:	3a01      	subs	r2, #1
   2c5e6:	e7f7      	b.n	2c5d8 <bt_encrypt_le+0x100>
   2c5e8:	0003ca88 	.word	0x0003ca88
   2c5ec:	0003bdac 	.word	0x0003bdac

0002c5f0 <mpsl_lib_init>:
	return 0;
#endif
}

static int mpsl_lib_init(const struct device *dev)
{
   2c5f0:	b510      	push	{r4, lr}
   2c5f2:	b082      	sub	sp, #8
	ARG_UNUSED(dev);
	int err = 0;
	mpsl_clock_lfclk_cfg_t clock_cfg;

	clock_cfg.source = m_config_clock_source_get();
   2c5f4:	f00d fcee 	bl	39fd4 <m_config_clock_source_get>
   2c5f8:	f88d 0000 	strb.w	r0, [sp]
	clock_cfg.accuracy_ppm = CONFIG_CLOCK_CONTROL_NRF_ACCURACY;
   2c5fc:	2332      	movs	r3, #50	; 0x32
   2c5fe:	f8ad 3004 	strh.w	r3, [sp, #4]
	clock_cfg.skip_wait_lfclk_started =
   2c602:	2300      	movs	r3, #0
   2c604:	f88d 3006 	strb.w	r3, [sp, #6]
	clock_cfg.rc_ctiv = (CONFIG_CLOCK_CONTROL_NRF_CALIBRATION_PERIOD * 4 / 1000);
	clock_cfg.rc_temp_ctiv = CONFIG_CLOCK_CONTROL_NRF_CALIBRATION_MAX_SKIP + 1;
	BUILD_ASSERT(CONFIG_CLOCK_CONTROL_NRF_CALIBRATION_TEMP_DIFF == 2,
		     "MPSL always uses a temperature diff threshold of 0.5 degrees");
#else
	clock_cfg.rc_ctiv = 0;
   2c608:	f88d 3001 	strb.w	r3, [sp, #1]
	clock_cfg.rc_temp_ctiv = 0;
   2c60c:	f88d 3002 	strb.w	r3, [sp, #2]
#endif

	err = mpsl_init(&clock_cfg, MPSL_LOW_PRIO_IRQn, m_assert_handler);
   2c610:	4a10      	ldr	r2, [pc, #64]	; (2c654 <mpsl_lib_init+0x64>)
   2c612:	2119      	movs	r1, #25
   2c614:	4668      	mov	r0, sp
   2c616:	f7e3 fa61 	bl	fadc <mpsl_init>
	if (err) {
   2c61a:	4604      	mov	r4, r0
   2c61c:	b110      	cbz	r0, 2c624 <mpsl_lib_init+0x34>
			   mpsl_rtc0_isr_wrapper, IRQ_ZERO_LATENCY);
	IRQ_DIRECT_CONNECT(RADIO_IRQn, MPSL_HIGH_IRQ_PRIORITY,
			   mpsl_radio_isr_wrapper, IRQ_ZERO_LATENCY);

	return 0;
}
   2c61e:	4620      	mov	r0, r4
   2c620:	b002      	add	sp, #8
   2c622:	bd10      	pop	{r4, pc}
	err = mpsl_timeslot_session_count_set((void *) timeslot_context,
   2c624:	2101      	movs	r1, #1
   2c626:	480c      	ldr	r0, [pc, #48]	; (2c658 <mpsl_lib_init+0x68>)
   2c628:	f7eb fbab 	bl	17d82 <mpsl_timeslot_session_count_set>
	if (err) {
   2c62c:	4604      	mov	r4, r0
   2c62e:	2800      	cmp	r0, #0
   2c630:	d1f5      	bne.n	2c61e <mpsl_lib_init+0x2e>
	IRQ_DIRECT_CONNECT(TIMER0_IRQn, MPSL_HIGH_IRQ_PRIORITY,
   2c632:	2201      	movs	r2, #1
   2c634:	2100      	movs	r1, #0
   2c636:	2008      	movs	r0, #8
   2c638:	f7f2 fed6 	bl	1f3e8 <z_arm_irq_priority_set>
	IRQ_DIRECT_CONNECT(RTC0_IRQn, MPSL_HIGH_IRQ_PRIORITY,
   2c63c:	2201      	movs	r2, #1
   2c63e:	2100      	movs	r1, #0
   2c640:	200b      	movs	r0, #11
   2c642:	f7f2 fed1 	bl	1f3e8 <z_arm_irq_priority_set>
	IRQ_DIRECT_CONNECT(RADIO_IRQn, MPSL_HIGH_IRQ_PRIORITY,
   2c646:	2201      	movs	r2, #1
   2c648:	2100      	movs	r1, #0
   2c64a:	4610      	mov	r0, r2
   2c64c:	f7f2 fecc 	bl	1f3e8 <z_arm_irq_priority_set>
	return 0;
   2c650:	e7e5      	b.n	2c61e <mpsl_lib_init+0x2e>
   2c652:	bf00      	nop
   2c654:	0002c65d 	.word	0x0002c65d
   2c658:	20002c90 	.word	0x20002c90

0002c65c <m_assert_handler>:
{
   2c65c:	b508      	push	{r3, lr}
   2c65e:	4602      	mov	r2, r0
   2c660:	460b      	mov	r3, r1
	LOG_ERR("MPSL ASSERT: %s, %d", log_strdup(file), line);
   2c662:	2145      	movs	r1, #69	; 0x45
   2c664:	4804      	ldr	r0, [pc, #16]	; (2c678 <m_assert_handler+0x1c>)
   2c666:	f007 fa41 	bl	33aec <z_log_minimal_printk>
	k_oops();
   2c66a:	4040      	eors	r0, r0
   2c66c:	f380 8811 	msr	BASEPRI, r0
   2c670:	f04f 0003 	mov.w	r0, #3
   2c674:	df02      	svc	2
}
   2c676:	bd08      	pop	{r3, pc}
   2c678:	0003f220 	.word	0x0003f220

0002c67c <signal_thread>:
{
   2c67c:	b538      	push	{r3, r4, r5, lr}
   2c67e:	e003      	b.n	2c688 <signal_thread+0xc>
		mpsl_low_priority_process();
   2c680:	f7eb fc96 	bl	17fb0 <mpsl_low_priority_process>
		MULTITHREADING_LOCK_RELEASE();
   2c684:	f7ff fca0 	bl	2bfc8 <multithreading_lock_release>
		k_sem_take(&sem_signal, K_FOREVER);
   2c688:	f04f 34ff 	mov.w	r4, #4294967295
   2c68c:	f04f 35ff 	mov.w	r5, #4294967295
	return z_impl_k_sem_take(sem, timeout);
   2c690:	4622      	mov	r2, r4
   2c692:	462b      	mov	r3, r5
   2c694:	4809      	ldr	r0, [pc, #36]	; (2c6bc <signal_thread+0x40>)
   2c696:	f003 fc85 	bl	2ffa4 <z_impl_k_sem_take>
		errcode = MULTITHREADING_LOCK_ACQUIRE();
   2c69a:	4620      	mov	r0, r4
   2c69c:	4629      	mov	r1, r5
   2c69e:	f7ff fc89 	bl	2bfb4 <multithreading_lock_acquire>
		__ASSERT_NO_MSG(errcode == 0);
   2c6a2:	2800      	cmp	r0, #0
   2c6a4:	d0ec      	beq.n	2c680 <signal_thread+0x4>
   2c6a6:	4c06      	ldr	r4, [pc, #24]	; (2c6c0 <signal_thread+0x44>)
   2c6a8:	2246      	movs	r2, #70	; 0x46
   2c6aa:	4621      	mov	r1, r4
   2c6ac:	4805      	ldr	r0, [pc, #20]	; (2c6c4 <signal_thread+0x48>)
   2c6ae:	f006 fe7c 	bl	333aa <printk>
   2c6b2:	2146      	movs	r1, #70	; 0x46
   2c6b4:	4620      	mov	r0, r4
   2c6b6:	f007 fa11 	bl	33adc <assert_post_action>
   2c6ba:	e7e1      	b.n	2c680 <signal_thread+0x4>
   2c6bc:	200008a8 	.word	0x200008a8
   2c6c0:	0003f23c 	.word	0x0003f23c
   2c6c4:	0003bdac 	.word	0x0003bdac

0002c6c8 <mpsl_signal_thread_init>:

static int mpsl_signal_thread_init(const struct device *dev)
{
   2c6c8:	b530      	push	{r4, r5, lr}
   2c6ca:	b089      	sub	sp, #36	; 0x24
	return z_impl_k_thread_create(new_thread, stack, stack_size, entry, p1, p2, p3, prio, options, delay);
   2c6cc:	4d0f      	ldr	r5, [pc, #60]	; (2c70c <mpsl_signal_thread_init+0x44>)
   2c6ce:	2200      	movs	r2, #0
   2c6d0:	2300      	movs	r3, #0
   2c6d2:	e9cd 2306 	strd	r2, r3, [sp, #24]
   2c6d6:	2400      	movs	r4, #0
   2c6d8:	9404      	str	r4, [sp, #16]
   2c6da:	f06f 0309 	mvn.w	r3, #9
   2c6de:	9303      	str	r3, [sp, #12]
   2c6e0:	9402      	str	r4, [sp, #8]
   2c6e2:	9401      	str	r4, [sp, #4]
   2c6e4:	9400      	str	r4, [sp, #0]
   2c6e6:	4b0a      	ldr	r3, [pc, #40]	; (2c710 <mpsl_signal_thread_init+0x48>)
   2c6e8:	f44f 6280 	mov.w	r2, #1024	; 0x400
   2c6ec:	4909      	ldr	r1, [pc, #36]	; (2c714 <mpsl_signal_thread_init+0x4c>)
   2c6ee:	4628      	mov	r0, r5
   2c6f0:	f003 f832 	bl	2f758 <z_impl_k_thread_create>
	return z_impl_k_thread_name_set(thread, str);
   2c6f4:	4908      	ldr	r1, [pc, #32]	; (2c718 <mpsl_signal_thread_init+0x50>)
   2c6f6:	4628      	mov	r0, r5
   2c6f8:	f002 fef0 	bl	2f4dc <z_impl_k_thread_name_set>
			signal_thread, NULL, NULL, NULL,
			K_PRIO_COOP(CONFIG_MPSL_THREAD_COOP_PRIO),
			0, K_NO_WAIT);
	k_thread_name_set(&signal_thread_data, "MPSL signal");

	IRQ_CONNECT(MPSL_LOW_PRIO_IRQn, MPSL_LOW_PRIO,
   2c6fc:	4622      	mov	r2, r4
   2c6fe:	2104      	movs	r1, #4
   2c700:	2019      	movs	r0, #25
   2c702:	f7f2 fe71 	bl	1f3e8 <z_arm_irq_priority_set>
		    mpsl_low_prio_irq_handler, NULL, 0);

	return 0;
}
   2c706:	4620      	mov	r0, r4
   2c708:	b009      	add	sp, #36	; 0x24
   2c70a:	bd30      	pop	{r4, r5, pc}
   2c70c:	20001de8 	.word	0x20001de8
   2c710:	0002c67d 	.word	0x0002c67d
   2c714:	20004ca0 	.word	0x20004ca0
   2c718:	0003f26c 	.word	0x0003f26c

0002c71c <mpsl_low_prio_irq_handler>:
{
   2c71c:	b508      	push	{r3, lr}
	z_impl_k_sem_give(sem);
   2c71e:	4802      	ldr	r0, [pc, #8]	; (2c728 <mpsl_low_prio_irq_handler+0xc>)
   2c720:	f003 fc00 	bl	2ff24 <z_impl_k_sem_give>
}
   2c724:	bd08      	pop	{r3, pc}
   2c726:	bf00      	nop
   2c728:	200008a8 	.word	0x200008a8

0002c72c <mpsl_hfclk_callback>:
#include <mpsl_clock.h>

static nrfx_clock_event_handler_t event_handler;

static void mpsl_hfclk_callback(void)
{
   2c72c:	b508      	push	{r3, lr}
	event_handler(NRFX_CLOCK_EVT_HFCLK_STARTED);
   2c72e:	4b02      	ldr	r3, [pc, #8]	; (2c738 <mpsl_hfclk_callback+0xc>)
   2c730:	681b      	ldr	r3, [r3, #0]
   2c732:	2000      	movs	r0, #0
   2c734:	4798      	blx	r3
}
   2c736:	bd08      	pop	{r3, pc}
   2c738:	20002cb4 	.word	0x20002cb4

0002c73c <nrfx_clock_start>:

void nrfx_clock_start(nrf_clock_domain_t domain)
{
   2c73c:	b510      	push	{r4, lr}
	switch (domain) {
   2c73e:	b128      	cbz	r0, 2c74c <nrfx_clock_start+0x10>
   2c740:	2801      	cmp	r0, #1
   2c742:	d108      	bne.n	2c756 <nrfx_clock_start+0x1a>
	case NRF_CLOCK_DOMAIN_HFCLK:
		mpsl_clock_hfclk_request(mpsl_hfclk_callback);
   2c744:	4809      	ldr	r0, [pc, #36]	; (2c76c <nrfx_clock_start+0x30>)
   2c746:	f7e3 f829 	bl	f79c <mpsl_clock_hfclk_request>
		event_handler(NRFX_CLOCK_EVT_LFCLK_STARTED);
		break;
	default:
		__ASSERT(0, "Not supported");
	}
}
   2c74a:	bd10      	pop	{r4, pc}
		event_handler(NRFX_CLOCK_EVT_LFCLK_STARTED);
   2c74c:	4b08      	ldr	r3, [pc, #32]	; (2c770 <nrfx_clock_start+0x34>)
   2c74e:	681b      	ldr	r3, [r3, #0]
   2c750:	2001      	movs	r0, #1
   2c752:	4798      	blx	r3
		break;
   2c754:	e7f9      	b.n	2c74a <nrfx_clock_start+0xe>
		__ASSERT(0, "Not supported");
   2c756:	4c07      	ldr	r4, [pc, #28]	; (2c774 <nrfx_clock_start+0x38>)
   2c758:	221c      	movs	r2, #28
   2c75a:	4621      	mov	r1, r4
   2c75c:	4806      	ldr	r0, [pc, #24]	; (2c778 <nrfx_clock_start+0x3c>)
   2c75e:	f006 fe24 	bl	333aa <printk>
   2c762:	211c      	movs	r1, #28
   2c764:	4620      	mov	r0, r4
   2c766:	f007 f9b9 	bl	33adc <assert_post_action>
}
   2c76a:	e7ee      	b.n	2c74a <nrfx_clock_start+0xe>
   2c76c:	0002c72d 	.word	0x0002c72d
   2c770:	20002cb4 	.word	0x20002cb4
   2c774:	0003f284 	.word	0x0003f284
   2c778:	0003bdac 	.word	0x0003bdac

0002c77c <nrfx_clock_stop>:

void nrfx_clock_stop(nrf_clock_domain_t domain)
{
	switch (domain) {
   2c77c:	b180      	cbz	r0, 2c7a0 <nrfx_clock_stop+0x24>
{
   2c77e:	b510      	push	{r4, lr}
	switch (domain) {
   2c780:	2801      	cmp	r0, #1
   2c782:	d102      	bne.n	2c78a <nrfx_clock_stop+0xe>
	case NRF_CLOCK_DOMAIN_HFCLK:
		mpsl_clock_hfclk_release();
   2c784:	f7e2 fffc 	bl	f780 <mpsl_clock_hfclk_release>
		/* empty */
		break;
	default:
		__ASSERT(0, "Not supported");
	}
}
   2c788:	bd10      	pop	{r4, pc}
		__ASSERT(0, "Not supported");
   2c78a:	4c06      	ldr	r4, [pc, #24]	; (2c7a4 <nrfx_clock_stop+0x28>)
   2c78c:	222a      	movs	r2, #42	; 0x2a
   2c78e:	4621      	mov	r1, r4
   2c790:	4805      	ldr	r0, [pc, #20]	; (2c7a8 <nrfx_clock_stop+0x2c>)
   2c792:	f006 fe0a 	bl	333aa <printk>
   2c796:	212a      	movs	r1, #42	; 0x2a
   2c798:	4620      	mov	r0, r4
   2c79a:	f007 f99f 	bl	33adc <assert_post_action>
}
   2c79e:	e7f3      	b.n	2c788 <nrfx_clock_stop+0xc>
   2c7a0:	4770      	bx	lr
   2c7a2:	bf00      	nop
   2c7a4:	0003f284 	.word	0x0003f284
   2c7a8:	0003bdac 	.word	0x0003bdac

0002c7ac <nrfx_clock_init>:

}

nrfx_err_t nrfx_clock_init(nrfx_clock_event_handler_t handler)
{
	event_handler = handler;
   2c7ac:	4b01      	ldr	r3, [pc, #4]	; (2c7b4 <nrfx_clock_init+0x8>)
   2c7ae:	6018      	str	r0, [r3, #0]

	return NRFX_SUCCESS;
}
   2c7b0:	4801      	ldr	r0, [pc, #4]	; (2c7b8 <nrfx_clock_init+0xc>)
   2c7b2:	4770      	bx	lr
   2c7b4:	20002cb4 	.word	0x20002cb4
   2c7b8:	0bad0000 	.word	0x0bad0000

0002c7bc <get_timeslot_time_us>:
#ifndef NRF_DECLARE_ONLY

NRF_STATIC_INLINE void nrf_timer_task_trigger(NRF_TIMER_Type * p_reg,
                                              nrf_timer_task_t task)
{
    *((volatile uint32_t *)((uint8_t *)p_reg + (uint32_t)task)) = 0x1UL;
   2c7bc:	4b03      	ldr	r3, [pc, #12]	; (2c7cc <get_timeslot_time_us+0x10>)
   2c7be:	2201      	movs	r2, #1
   2c7c0:	601a      	str	r2, [r3, #0]
}

NRF_STATIC_INLINE uint32_t nrf_timer_cc_get(NRF_TIMER_Type const * p_reg,
                                            nrf_timer_cc_channel_t cc_channel)
{
    return (uint32_t)p_reg->CC[cc_channel];
   2c7c2:	3b40      	subs	r3, #64	; 0x40
   2c7c4:	f8d3 0540 	ldr.w	r0, [r3, #1344]	; 0x540
 */
static uint32_t get_timeslot_time_us(void)
{
	nrf_timer_task_trigger(NRF_TIMER0, NRF_TIMER_TASK_CAPTURE0);
	return nrf_timer_cc_get(NRF_TIMER0, NRF_TIMER_CC_CHANNEL0);
}
   2c7c8:	4770      	bx	lr
   2c7ca:	bf00      	nop
   2c7cc:	40008040 	.word	0x40008040

0002c7d0 <reschedule_next_timeslot>:

static void reschedule_next_timeslot(void)
{
   2c7d0:	b510      	push	{r4, lr}
	_context.timeslot_request.params.earliest.priority =
   2c7d2:	4b0b      	ldr	r3, [pc, #44]	; (2c800 <reschedule_next_timeslot+0x30>)
   2c7d4:	2200      	movs	r2, #0
   2c7d6:	f883 2029 	strb.w	r2, [r3, #41]	; 0x29
		MPSL_TIMESLOT_PRIORITY_HIGH;

	int32_t ret = mpsl_timeslot_request(_context.session_id,
   2c7da:	f103 0124 	add.w	r1, r3, #36	; 0x24
   2c7de:	7e18      	ldrb	r0, [r3, #24]
   2c7e0:	f7eb fa78 	bl	17cd4 <mpsl_timeslot_request>
					    &_context.timeslot_request);

	__ASSERT_EVAL((void)ret, (void)ret, ret == 0,
   2c7e4:	b900      	cbnz	r0, 2c7e8 <reschedule_next_timeslot+0x18>
		      "mpsl_timeslot_request failed: %d", ret);
}
   2c7e6:	bd10      	pop	{r4, pc}
	__ASSERT_EVAL((void)ret, (void)ret, ret == 0,
   2c7e8:	4c06      	ldr	r4, [pc, #24]	; (2c804 <reschedule_next_timeslot+0x34>)
   2c7ea:	2244      	movs	r2, #68	; 0x44
   2c7ec:	4621      	mov	r1, r4
   2c7ee:	4806      	ldr	r0, [pc, #24]	; (2c808 <reschedule_next_timeslot+0x38>)
   2c7f0:	f006 fddb 	bl	333aa <printk>
   2c7f4:	2144      	movs	r1, #68	; 0x44
   2c7f6:	4620      	mov	r0, r4
   2c7f8:	f007 f970 	bl	33adc <assert_post_action>
}
   2c7fc:	e7f3      	b.n	2c7e6 <reschedule_next_timeslot+0x16>
   2c7fe:	bf00      	nop
   2c800:	20002cb8 	.word	0x20002cb8
   2c804:	0003f2c4 	.word	0x0003f2c4
   2c808:	0003bdac 	.word	0x0003bdac

0002c80c <timeslot_callback>:

static mpsl_timeslot_signal_return_param_t *
timeslot_callback(mpsl_timeslot_session_id_t session_id, uint32_t signal)
{
   2c80c:	b538      	push	{r3, r4, r5, lr}
   2c80e:	460c      	mov	r4, r1
	int rc;
	__ASSERT_NO_MSG(session_id == _context.session_id);
   2c810:	4b29      	ldr	r3, [pc, #164]	; (2c8b8 <timeslot_callback+0xac>)
   2c812:	7e1b      	ldrb	r3, [r3, #24]
   2c814:	4283      	cmp	r3, r0
   2c816:	d110      	bne.n	2c83a <timeslot_callback+0x2e>
	return __atomic_load_n(target, __ATOMIC_SEQ_CST);
   2c818:	f3bf 8f5b 	dmb	ish
   2c81c:	4b26      	ldr	r3, [pc, #152]	; (2c8b8 <timeslot_callback+0xac>)
   2c81e:	6c1b      	ldr	r3, [r3, #64]	; 0x40
   2c820:	f3bf 8f5b 	dmb	ish

	if (atomic_get(&_context.timeout_occured)) {
   2c824:	2b00      	cmp	r3, #0
   2c826:	d142      	bne.n	2c8ae <timeslot_callback+0xa2>
		return NULL;
	}

	switch (signal) {
   2c828:	2c09      	cmp	r4, #9
   2c82a:	d834      	bhi.n	2c896 <timeslot_callback+0x8a>
   2c82c:	e8df f004 	tbb	[pc, r4]
   2c830:	33333310 	.word	0x33333310
   2c834:	2a2f2f33 	.word	0x2a2f2f33
   2c838:	4133      	.short	0x4133
	__ASSERT_NO_MSG(session_id == _context.session_id);
   2c83a:	4d20      	ldr	r5, [pc, #128]	; (2c8bc <timeslot_callback+0xb0>)
   2c83c:	224c      	movs	r2, #76	; 0x4c
   2c83e:	4629      	mov	r1, r5
   2c840:	481f      	ldr	r0, [pc, #124]	; (2c8c0 <timeslot_callback+0xb4>)
   2c842:	f006 fdb2 	bl	333aa <printk>
   2c846:	214c      	movs	r1, #76	; 0x4c
   2c848:	4628      	mov	r0, r5
   2c84a:	f007 f947 	bl	33adc <assert_post_action>
   2c84e:	e7e3      	b.n	2c818 <timeslot_callback+0xc>
	case MPSL_TIMESLOT_SIGNAL_START:
		rc = _context.op_desc->handler(_context.op_desc->context);
   2c850:	4b19      	ldr	r3, [pc, #100]	; (2c8b8 <timeslot_callback+0xac>)
   2c852:	6a1b      	ldr	r3, [r3, #32]
   2c854:	681a      	ldr	r2, [r3, #0]
   2c856:	6858      	ldr	r0, [r3, #4]
   2c858:	4790      	blx	r2
   2c85a:	4603      	mov	r3, r0
		if (rc != FLASH_OP_ONGOING) {
   2c85c:	2801      	cmp	r0, #1
   2c85e:	d005      	beq.n	2c86c <timeslot_callback+0x60>
			_context.status = (rc == FLASH_OP_DONE) ? 0 : rc;
   2c860:	4815      	ldr	r0, [pc, #84]	; (2c8b8 <timeslot_callback+0xac>)
   2c862:	63c3      	str	r3, [r0, #60]	; 0x3c
			_context.return_param.callback_action =
   2c864:	2302      	movs	r3, #2
   2c866:	f800 3f34 	strb.w	r3, [r0, #52]!
   2c86a:	e021      	b.n	2c8b0 <timeslot_callback+0xa4>
				MPSL_TIMESLOT_SIGNAL_ACTION_END;
		} else {
			/* Reset the priority back to normal after a successful
			 * timeslot. */
			_context.timeslot_request.params.earliest.priority =
   2c86c:	4812      	ldr	r0, [pc, #72]	; (2c8b8 <timeslot_callback+0xac>)
   2c86e:	2301      	movs	r3, #1
   2c870:	f880 3029 	strb.w	r3, [r0, #41]	; 0x29
				MPSL_TIMESLOT_PRIORITY_NORMAL;

			_context.return_param.callback_action =
   2c874:	2303      	movs	r3, #3
   2c876:	f880 3034 	strb.w	r3, [r0, #52]	; 0x34
				MPSL_TIMESLOT_SIGNAL_ACTION_REQUEST;
			_context.return_param.params.request.p_next =
   2c87a:	f100 0324 	add.w	r3, r0, #36	; 0x24
   2c87e:	6383      	str	r3, [r0, #56]	; 0x38
	default:
		__ASSERT(false, "unexpected signal: %u", signal);
		return NULL;
	}

	return &_context.return_param;
   2c880:	3034      	adds	r0, #52	; 0x34
   2c882:	e015      	b.n	2c8b0 <timeslot_callback+0xa4>
   2c884:	480c      	ldr	r0, [pc, #48]	; (2c8b8 <timeslot_callback+0xac>)
   2c886:	f003 fb4d 	bl	2ff24 <z_impl_k_sem_give>
		return NULL;
   2c88a:	2000      	movs	r0, #0
   2c88c:	e010      	b.n	2c8b0 <timeslot_callback+0xa4>
		reschedule_next_timeslot();
   2c88e:	f7ff ff9f 	bl	2c7d0 <reschedule_next_timeslot>
		return NULL;
   2c892:	2000      	movs	r0, #0
   2c894:	e00c      	b.n	2c8b0 <timeslot_callback+0xa4>
		__ASSERT(false, "unexpected signal: %u", signal);
   2c896:	4c09      	ldr	r4, [pc, #36]	; (2c8bc <timeslot_callback+0xb0>)
   2c898:	2276      	movs	r2, #118	; 0x76
   2c89a:	4621      	mov	r1, r4
   2c89c:	4808      	ldr	r0, [pc, #32]	; (2c8c0 <timeslot_callback+0xb4>)
   2c89e:	f006 fd84 	bl	333aa <printk>
   2c8a2:	2176      	movs	r1, #118	; 0x76
   2c8a4:	4620      	mov	r0, r4
   2c8a6:	f007 f919 	bl	33adc <assert_post_action>
		return NULL;
   2c8aa:	2000      	movs	r0, #0
   2c8ac:	e000      	b.n	2c8b0 <timeslot_callback+0xa4>
		return NULL;
   2c8ae:	2000      	movs	r0, #0
}
   2c8b0:	bd38      	pop	{r3, r4, r5, pc}
	if (atomic_get(&_context.timeout_occured)) {
   2c8b2:	2000      	movs	r0, #0
   2c8b4:	e7fc      	b.n	2c8b0 <timeslot_callback+0xa4>
   2c8b6:	bf00      	nop
   2c8b8:	20002cb8 	.word	0x20002cb8
   2c8bc:	0003f2c4 	.word	0x0003f2c4
   2c8c0:	0003bdac 	.word	0x0003bdac

0002c8c4 <nrf_flash_sync_init>:

int nrf_flash_sync_init(void)
{
   2c8c4:	b508      	push	{r3, lr}
	return z_impl_k_sem_init(sem, initial_count, limit);
   2c8c6:	2201      	movs	r2, #1
   2c8c8:	2100      	movs	r1, #0
   2c8ca:	4802      	ldr	r0, [pc, #8]	; (2c8d4 <nrf_flash_sync_init+0x10>)
   2c8cc:	f00e fca6 	bl	3b21c <z_impl_k_sem_init>
	LOG_DBG("");
	return k_sem_init(&_context.timeout_sem, 0, 1);
}
   2c8d0:	bd08      	pop	{r3, pc}
   2c8d2:	bf00      	nop
   2c8d4:	20002cb8 	.word	0x20002cb8

0002c8d8 <nrf_flash_sync_set_context>:

void nrf_flash_sync_set_context(uint32_t duration)
{
	LOG_DBG("duration: %u", duration);
	_context.request_length_us = duration;
   2c8d8:	4b01      	ldr	r3, [pc, #4]	; (2c8e0 <nrf_flash_sync_set_context+0x8>)
   2c8da:	61d8      	str	r0, [r3, #28]
}
   2c8dc:	4770      	bx	lr
   2c8de:	bf00      	nop
   2c8e0:	20002cb8 	.word	0x20002cb8

0002c8e4 <nrf_flash_sync_exe>:
{
	return mpsl_is_initialized();
}

int nrf_flash_sync_exe(struct flash_op_desc *op_desc)
{
   2c8e4:	b538      	push	{r3, r4, r5, lr}
   2c8e6:	4605      	mov	r5, r0
	LOG_DBG("");

	int errcode = MULTITHREADING_LOCK_ACQUIRE();
   2c8e8:	f04f 30ff 	mov.w	r0, #4294967295
   2c8ec:	f04f 31ff 	mov.w	r1, #4294967295
   2c8f0:	f7ff fb60 	bl	2bfb4 <multithreading_lock_acquire>
	__ASSERT_NO_MSG(errcode == 0);
   2c8f4:	2800      	cmp	r0, #0
   2c8f6:	d16a      	bne.n	2c9ce <nrf_flash_sync_exe+0xea>
	int32_t ret = mpsl_timeslot_session_open(timeslot_callback,
   2c8f8:	4956      	ldr	r1, [pc, #344]	; (2ca54 <nrf_flash_sync_exe+0x170>)
   2c8fa:	4857      	ldr	r0, [pc, #348]	; (2ca58 <nrf_flash_sync_exe+0x174>)
   2c8fc:	f7df fed0 	bl	c6a0 <mpsl_timeslot_session_open>
   2c900:	4604      	mov	r4, r0
						 &_context.session_id);
	MULTITHREADING_LOCK_RELEASE();
   2c902:	f7ff fb61 	bl	2bfc8 <multithreading_lock_release>

	if (ret < 0) {
   2c906:	2c00      	cmp	r4, #0
   2c908:	db6c      	blt.n	2c9e4 <nrf_flash_sync_exe+0x100>
		LOG_ERR("mpsl_timeslot_session_open failed: %d", ret);
		return -ENOMEM;
	}

	mpsl_timeslot_request_t *req = &_context.timeslot_request;
	req->request_type = MPSL_TIMESLOT_REQ_TYPE_EARLIEST;
   2c90a:	4b54      	ldr	r3, [pc, #336]	; (2ca5c <nrf_flash_sync_exe+0x178>)
   2c90c:	2100      	movs	r1, #0
   2c90e:	f883 1024 	strb.w	r1, [r3, #36]	; 0x24
	req->params.earliest.hfclk = MPSL_TIMESLOT_HFCLK_CFG_NO_GUARANTEE;
   2c912:	2201      	movs	r2, #1
   2c914:	f883 2028 	strb.w	r2, [r3, #40]	; 0x28
	req->params.earliest.priority = MPSL_TIMESLOT_PRIORITY_NORMAL;
   2c918:	f883 2029 	strb.w	r2, [r3, #41]	; 0x29
	req->params.earliest.length_us =
		_context.request_length_us + TIMESLOT_LENGTH_SLACK_US;
   2c91c:	69da      	ldr	r2, [r3, #28]
   2c91e:	3264      	adds	r2, #100	; 0x64
	req->params.earliest.length_us =
   2c920:	62da      	str	r2, [r3, #44]	; 0x2c
	req->params.earliest.timeout_us = MPSL_TIMESLOT_EARLIEST_TIMEOUT_MAX_US;
   2c922:	4a4f      	ldr	r2, [pc, #316]	; (2ca60 <nrf_flash_sync_exe+0x17c>)
   2c924:	631a      	str	r2, [r3, #48]	; 0x30

	_context.op_desc = op_desc;
   2c926:	621d      	str	r5, [r3, #32]
	_context.status = -ETIMEDOUT;
   2c928:	f06f 0273 	mvn.w	r2, #115	; 0x73
   2c92c:	63da      	str	r2, [r3, #60]	; 0x3c
	return __atomic_exchange_n(target, value, __ATOMIC_SEQ_CST);
   2c92e:	f103 0240 	add.w	r2, r3, #64	; 0x40
   2c932:	f3bf 8f5b 	dmb	ish
   2c936:	e852 0f00 	ldrex	r0, [r2]
   2c93a:	e842 1400 	strex	r4, r1, [r2]
   2c93e:	2c00      	cmp	r4, #0
   2c940:	d1f9      	bne.n	2c936 <nrf_flash_sync_exe+0x52>
   2c942:	f3bf 8f5b 	dmb	ish
	return sem->count;
   2c946:	689b      	ldr	r3, [r3, #8]
	atomic_clear(&_context.timeout_occured);

	__ASSERT_NO_MSG(k_sem_count_get(&_context.timeout_sem) == 0);
   2c948:	2b00      	cmp	r3, #0
   2c94a:	d153      	bne.n	2c9f4 <nrf_flash_sync_exe+0x110>

	errcode = MULTITHREADING_LOCK_ACQUIRE();
   2c94c:	f04f 30ff 	mov.w	r0, #4294967295
   2c950:	f04f 31ff 	mov.w	r1, #4294967295
   2c954:	f7ff fb2e 	bl	2bfb4 <multithreading_lock_acquire>
	__ASSERT_NO_MSG(errcode == 0);
   2c958:	2800      	cmp	r0, #0
   2c95a:	d156      	bne.n	2ca0a <nrf_flash_sync_exe+0x126>
	ret = mpsl_timeslot_request(_context.session_id, req);
   2c95c:	4b3f      	ldr	r3, [pc, #252]	; (2ca5c <nrf_flash_sync_exe+0x178>)
   2c95e:	f103 0124 	add.w	r1, r3, #36	; 0x24
   2c962:	7e18      	ldrb	r0, [r3, #24]
   2c964:	f7eb f9b6 	bl	17cd4 <mpsl_timeslot_request>
	__ASSERT_EVAL((void)ret, (void)ret, ret == 0,
   2c968:	2800      	cmp	r0, #0
   2c96a:	d159      	bne.n	2ca20 <nrf_flash_sync_exe+0x13c>
		      "mpsl_timeslot_request failed: %d", ret);
	MULTITHREADING_LOCK_RELEASE();
   2c96c:	f7ff fb2c 	bl	2bfc8 <multithreading_lock_release>
	return z_impl_k_sem_take(sem, timeout);
   2c970:	4a3c      	ldr	r2, [pc, #240]	; (2ca64 <nrf_flash_sync_exe+0x180>)
   2c972:	2300      	movs	r3, #0
   2c974:	4839      	ldr	r0, [pc, #228]	; (2ca5c <nrf_flash_sync_exe+0x178>)
   2c976:	f003 fb15 	bl	2ffa4 <z_impl_k_sem_take>

	if (k_sem_take(&_context.timeout_sem, K_MSEC(FLASH_TIMEOUT_MS)) < 0) {
   2c97a:	2800      	cmp	r0, #0
   2c97c:	da0f      	bge.n	2c99e <nrf_flash_sync_exe+0xba>
		LOG_ERR("timeout");
   2c97e:	2145      	movs	r1, #69	; 0x45
   2c980:	4839      	ldr	r0, [pc, #228]	; (2ca68 <nrf_flash_sync_exe+0x184>)
   2c982:	f007 f8b3 	bl	33aec <z_log_minimal_printk>
   2c986:	4b39      	ldr	r3, [pc, #228]	; (2ca6c <nrf_flash_sync_exe+0x188>)
   2c988:	2201      	movs	r2, #1
   2c98a:	f3bf 8f5b 	dmb	ish
   2c98e:	e853 1f00 	ldrex	r1, [r3]
   2c992:	e843 2000 	strex	r0, r2, [r3]
   2c996:	2800      	cmp	r0, #0
   2c998:	d1f9      	bne.n	2c98e <nrf_flash_sync_exe+0xaa>
   2c99a:	f3bf 8f5b 	dmb	ish
		atomic_set(&_context.timeout_occured, 1);
	}

	/* This will cancel the timeslot if it is still in progress. */
	errcode = MULTITHREADING_LOCK_ACQUIRE();
   2c99e:	f04f 30ff 	mov.w	r0, #4294967295
   2c9a2:	f04f 31ff 	mov.w	r1, #4294967295
   2c9a6:	f7ff fb05 	bl	2bfb4 <multithreading_lock_acquire>
	__ASSERT_NO_MSG(errcode == 0);
   2c9aa:	2800      	cmp	r0, #0
   2c9ac:	d143      	bne.n	2ca36 <nrf_flash_sync_exe+0x152>
	mpsl_timeslot_session_close(_context.session_id);
   2c9ae:	4c2b      	ldr	r4, [pc, #172]	; (2ca5c <nrf_flash_sync_exe+0x178>)
   2c9b0:	7e20      	ldrb	r0, [r4, #24]
   2c9b2:	f7eb f9c8 	bl	17d46 <mpsl_timeslot_session_close>
	MULTITHREADING_LOCK_RELEASE();
   2c9b6:	f7ff fb07 	bl	2bfc8 <multithreading_lock_release>
	return __atomic_load_n(target, __ATOMIC_SEQ_CST);
   2c9ba:	f3bf 8f5b 	dmb	ish
   2c9be:	6c23      	ldr	r3, [r4, #64]	; 0x40
   2c9c0:	f3bf 8f5b 	dmb	ish

	/* Reset the semaphore after timeout, in case if the operation _did_
	 * complete before closing the session. */
	if (atomic_get(&_context.timeout_occured)) {
   2c9c4:	2b00      	cmp	r3, #0
   2c9c6:	d141      	bne.n	2ca4c <nrf_flash_sync_exe+0x168>
		k_sem_reset(&_context.timeout_sem);
	}

	return _context.status;
   2c9c8:	4b24      	ldr	r3, [pc, #144]	; (2ca5c <nrf_flash_sync_exe+0x178>)
   2c9ca:	6bd8      	ldr	r0, [r3, #60]	; 0x3c
}
   2c9cc:	bd38      	pop	{r3, r4, r5, pc}
	__ASSERT_NO_MSG(errcode == 0);
   2c9ce:	4c28      	ldr	r4, [pc, #160]	; (2ca70 <nrf_flash_sync_exe+0x18c>)
   2c9d0:	2293      	movs	r2, #147	; 0x93
   2c9d2:	4621      	mov	r1, r4
   2c9d4:	4827      	ldr	r0, [pc, #156]	; (2ca74 <nrf_flash_sync_exe+0x190>)
   2c9d6:	f006 fce8 	bl	333aa <printk>
   2c9da:	2193      	movs	r1, #147	; 0x93
   2c9dc:	4620      	mov	r0, r4
   2c9de:	f007 f87d 	bl	33adc <assert_post_action>
   2c9e2:	e789      	b.n	2c8f8 <nrf_flash_sync_exe+0x14>
		LOG_ERR("mpsl_timeslot_session_open failed: %d", ret);
   2c9e4:	4622      	mov	r2, r4
   2c9e6:	2145      	movs	r1, #69	; 0x45
   2c9e8:	4823      	ldr	r0, [pc, #140]	; (2ca78 <nrf_flash_sync_exe+0x194>)
   2c9ea:	f007 f87f 	bl	33aec <z_log_minimal_printk>
		return -ENOMEM;
   2c9ee:	f06f 000b 	mvn.w	r0, #11
   2c9f2:	e7eb      	b.n	2c9cc <nrf_flash_sync_exe+0xe8>
	__ASSERT_NO_MSG(k_sem_count_get(&_context.timeout_sem) == 0);
   2c9f4:	4c1e      	ldr	r4, [pc, #120]	; (2ca70 <nrf_flash_sync_exe+0x18c>)
   2c9f6:	22a9      	movs	r2, #169	; 0xa9
   2c9f8:	4621      	mov	r1, r4
   2c9fa:	481e      	ldr	r0, [pc, #120]	; (2ca74 <nrf_flash_sync_exe+0x190>)
   2c9fc:	f006 fcd5 	bl	333aa <printk>
   2ca00:	21a9      	movs	r1, #169	; 0xa9
   2ca02:	4620      	mov	r0, r4
   2ca04:	f007 f86a 	bl	33adc <assert_post_action>
   2ca08:	e7a0      	b.n	2c94c <nrf_flash_sync_exe+0x68>
	__ASSERT_NO_MSG(errcode == 0);
   2ca0a:	4c19      	ldr	r4, [pc, #100]	; (2ca70 <nrf_flash_sync_exe+0x18c>)
   2ca0c:	22ac      	movs	r2, #172	; 0xac
   2ca0e:	4621      	mov	r1, r4
   2ca10:	4818      	ldr	r0, [pc, #96]	; (2ca74 <nrf_flash_sync_exe+0x190>)
   2ca12:	f006 fcca 	bl	333aa <printk>
   2ca16:	21ac      	movs	r1, #172	; 0xac
   2ca18:	4620      	mov	r0, r4
   2ca1a:	f007 f85f 	bl	33adc <assert_post_action>
   2ca1e:	e79d      	b.n	2c95c <nrf_flash_sync_exe+0x78>
	__ASSERT_EVAL((void)ret, (void)ret, ret == 0,
   2ca20:	4c13      	ldr	r4, [pc, #76]	; (2ca70 <nrf_flash_sync_exe+0x18c>)
   2ca22:	22ae      	movs	r2, #174	; 0xae
   2ca24:	4621      	mov	r1, r4
   2ca26:	4813      	ldr	r0, [pc, #76]	; (2ca74 <nrf_flash_sync_exe+0x190>)
   2ca28:	f006 fcbf 	bl	333aa <printk>
   2ca2c:	21ae      	movs	r1, #174	; 0xae
   2ca2e:	4620      	mov	r0, r4
   2ca30:	f007 f854 	bl	33adc <assert_post_action>
   2ca34:	e79a      	b.n	2c96c <nrf_flash_sync_exe+0x88>
	__ASSERT_NO_MSG(errcode == 0);
   2ca36:	4c0e      	ldr	r4, [pc, #56]	; (2ca70 <nrf_flash_sync_exe+0x18c>)
   2ca38:	22b9      	movs	r2, #185	; 0xb9
   2ca3a:	4621      	mov	r1, r4
   2ca3c:	480d      	ldr	r0, [pc, #52]	; (2ca74 <nrf_flash_sync_exe+0x190>)
   2ca3e:	f006 fcb4 	bl	333aa <printk>
   2ca42:	21b9      	movs	r1, #185	; 0xb9
   2ca44:	4620      	mov	r0, r4
   2ca46:	f007 f849 	bl	33adc <assert_post_action>
   2ca4a:	e7b0      	b.n	2c9ae <nrf_flash_sync_exe+0xca>
	z_impl_k_sem_reset(sem);
   2ca4c:	4620      	mov	r0, r4
   2ca4e:	f003 fb1f 	bl	30090 <z_impl_k_sem_reset>
}
   2ca52:	e7b9      	b.n	2c9c8 <nrf_flash_sync_exe+0xe4>
   2ca54:	20002cd0 	.word	0x20002cd0
   2ca58:	0002c80d 	.word	0x0002c80d
   2ca5c:	20002cb8 	.word	0x20002cb8
   2ca60:	07a11fff 	.word	0x07a11fff
   2ca64:	000b7b44 	.word	0x000b7b44
   2ca68:	0003f32c 	.word	0x0003f32c
   2ca6c:	20002cf8 	.word	0x20002cf8
   2ca70:	0003f2c4 	.word	0x0003f2c4
   2ca74:	0003bdac 	.word	0x0003bdac
   2ca78:	0003f300 	.word	0x0003f300

0002ca7c <nrf_flash_sync_check_time_limit>:
{
	/* Not needed for this driver. */
}

bool nrf_flash_sync_check_time_limit(uint32_t iteration)
{
   2ca7c:	b510      	push	{r4, lr}
   2ca7e:	4604      	mov	r4, r0
	uint32_t now_us = get_timeslot_time_us();
   2ca80:	f7ff fe9c 	bl	2c7bc <get_timeslot_time_us>
	uint32_t time_per_iteration_us = now_us / iteration;
   2ca84:	fbb0 f4f4 	udiv	r4, r0, r4
	return now_us + time_per_iteration_us >= _context.request_length_us;
   2ca88:	4420      	add	r0, r4
   2ca8a:	4b03      	ldr	r3, [pc, #12]	; (2ca98 <nrf_flash_sync_check_time_limit+0x1c>)
   2ca8c:	69db      	ldr	r3, [r3, #28]
}
   2ca8e:	4298      	cmp	r0, r3
   2ca90:	bf34      	ite	cc
   2ca92:	2000      	movcc	r0, #0
   2ca94:	2001      	movcs	r0, #1
   2ca96:	bd10      	pop	{r4, pc}
   2ca98:	20002cb8 	.word	0x20002cb8

0002ca9c <boot_magic_decode>:
#define BOOT_SWAP_TABLES_COUNT \
    (sizeof boot_swap_tables / sizeof boot_swap_tables[0])

static int
boot_magic_decode(const uint32_t *magic)
{
   2ca9c:	b508      	push	{r3, lr}
    if (memcmp(magic, boot_img_magic, BOOT_MAGIC_SZ) == 0) {
   2ca9e:	2210      	movs	r2, #16
   2caa0:	4903      	ldr	r1, [pc, #12]	; (2cab0 <boot_magic_decode+0x14>)
   2caa2:	f009 f814 	bl	35ace <memcmp>
   2caa6:	b108      	cbz	r0, 2caac <boot_magic_decode+0x10>
        return BOOT_MAGIC_GOOD;
    }
    return BOOT_MAGIC_BAD;
   2caa8:	2002      	movs	r0, #2
}
   2caaa:	bd08      	pop	{r3, pc}
        return BOOT_MAGIC_GOOD;
   2caac:	2001      	movs	r0, #1
   2caae:	e7fc      	b.n	2caaa <boot_magic_decode+0xe>
   2cab0:	0003f444 	.word	0x0003f444

0002cab4 <boot_write_magic>:
    return rc;
}

int
boot_write_magic(const struct flash_area *fap)
{
   2cab4:	b508      	push	{r3, lr}
    return fap->fa_size - BOOT_MAGIC_SZ;
   2cab6:	6881      	ldr	r1, [r0, #8]
    off = boot_magic_off(fap);

    BOOT_LOG_DBG("writing magic; fa_id=%d off=0x%lx (0x%lx)",
                 fap->fa_id, (unsigned long)off,
                 (unsigned long)(fap->fa_off + off));
    rc = flash_area_write(fap, off, boot_img_magic, BOOT_MAGIC_SZ);
   2cab8:	2310      	movs	r3, #16
   2caba:	4a04      	ldr	r2, [pc, #16]	; (2cacc <boot_write_magic+0x18>)
   2cabc:	3910      	subs	r1, #16
   2cabe:	f007 fc3e 	bl	3433e <flash_area_write>
    if (rc != 0) {
   2cac2:	b900      	cbnz	r0, 2cac6 <boot_write_magic+0x12>
        return BOOT_EFLASH;
    }

    return 0;
}
   2cac4:	bd08      	pop	{r3, pc}
        return BOOT_EFLASH;
   2cac6:	2001      	movs	r0, #1
   2cac8:	e7fc      	b.n	2cac4 <boot_write_magic+0x10>
   2caca:	bf00      	nop
   2cacc:	0003f444 	.word	0x0003f444

0002cad0 <boot_write_swap_info>:
 * resume in case of an unexpected reset.
 */
int
boot_write_swap_info(const struct flash_area *fap, uint8_t swap_type,
                     uint8_t image_num)
{
   2cad0:	b5f0      	push	{r4, r5, r6, r7, lr}
   2cad2:	b083      	sub	sp, #12
   2cad4:	4605      	mov	r5, r0
   2cad6:	460c      	mov	r4, r1
   2cad8:	4616      	mov	r6, r2
    uint32_t off;
    uint8_t swap_info;

    BOOT_SET_SWAP_INFO(swap_info, image_num, swap_type);
   2cada:	2a0e      	cmp	r2, #14
   2cadc:	d811      	bhi.n	2cb02 <boot_write_swap_info+0x32>
   2cade:	2c0e      	cmp	r4, #14
   2cae0:	d81c      	bhi.n	2cb1c <boot_write_swap_info+0x4c>
   2cae2:	ea44 1406 	orr.w	r4, r4, r6, lsl #4
   2cae6:	f88d 4007 	strb.w	r4, [sp, #7]
    off = boot_swap_info_off(fap);
   2caea:	4628      	mov	r0, r5
   2caec:	f00d faae 	bl	3a04c <boot_swap_info_off>
   2caf0:	4601      	mov	r1, r0
    BOOT_LOG_DBG("writing swap_info; fa_id=%d off=0x%lx (0x%lx), swap_type=0x%x"
                 " image_num=0x%x",
                 fap->fa_id, (unsigned long)off,
                 (unsigned long)(fap->fa_off + off), swap_type, image_num);
    return boot_write_trailer(fap, off, (const uint8_t *) &swap_info, 1);
   2caf2:	2301      	movs	r3, #1
   2caf4:	f10d 0207 	add.w	r2, sp, #7
   2caf8:	4628      	mov	r0, r5
   2cafa:	f00d faec 	bl	3a0d6 <boot_write_trailer>
}
   2cafe:	b003      	add	sp, #12
   2cb00:	bdf0      	pop	{r4, r5, r6, r7, pc}
    BOOT_SET_SWAP_INFO(swap_info, image_num, swap_type);
   2cb02:	4f0d      	ldr	r7, [pc, #52]	; (2cb38 <boot_write_swap_info+0x68>)
   2cb04:	f44f 72ca 	mov.w	r2, #404	; 0x194
   2cb08:	4639      	mov	r1, r7
   2cb0a:	480c      	ldr	r0, [pc, #48]	; (2cb3c <boot_write_swap_info+0x6c>)
   2cb0c:	f006 fc4d 	bl	333aa <printk>
   2cb10:	f44f 71ca 	mov.w	r1, #404	; 0x194
   2cb14:	4638      	mov	r0, r7
   2cb16:	f006 ffe1 	bl	33adc <assert_post_action>
   2cb1a:	e7e0      	b.n	2cade <boot_write_swap_info+0xe>
   2cb1c:	4f06      	ldr	r7, [pc, #24]	; (2cb38 <boot_write_swap_info+0x68>)
   2cb1e:	f44f 72ca 	mov.w	r2, #404	; 0x194
   2cb22:	4639      	mov	r1, r7
   2cb24:	4805      	ldr	r0, [pc, #20]	; (2cb3c <boot_write_swap_info+0x6c>)
   2cb26:	f006 fc40 	bl	333aa <printk>
   2cb2a:	f44f 71ca 	mov.w	r1, #404	; 0x194
   2cb2e:	4638      	mov	r0, r7
   2cb30:	f006 ffd4 	bl	33adc <assert_post_action>
   2cb34:	e7d5      	b.n	2cae2 <boot_write_swap_info+0x12>
   2cb36:	bf00      	nop
   2cb38:	0003f34c 	.word	0x0003f34c
   2cb3c:	0003bdac 	.word	0x0003bdac

0002cb40 <boot_swap_type_multi>:

int
boot_swap_type_multi(int image_index)
{
   2cb40:	b530      	push	{r4, r5, lr}
   2cb42:	b085      	sub	sp, #20
   2cb44:	4604      	mov	r4, r0

    rc = BOOT_HOOK_CALL(boot_read_swap_state_primary_slot_hook,
                        BOOT_HOOK_REGULAR, image_index, &primary_slot);
    if (rc == BOOT_HOOK_REGULAR)
    {
        rc = boot_read_swap_state_by_id(FLASH_AREA_IMAGE_PRIMARY(image_index),
   2cb46:	a902      	add	r1, sp, #8
   2cb48:	2002      	movs	r0, #2
   2cb4a:	f00d fb59 	bl	3a200 <boot_read_swap_state_by_id>
                                        &primary_slot);
    }
    if (rc) {
   2cb4e:	2800      	cmp	r0, #0
   2cb50:	d169      	bne.n	2cc26 <boot_swap_type_multi+0xe6>
        return BOOT_SWAP_TYPE_PANIC;
    }

    rc = boot_read_swap_state_by_id(FLASH_AREA_IMAGE_SECONDARY(image_index),
   2cb52:	4669      	mov	r1, sp
   2cb54:	2005      	movs	r0, #5
   2cb56:	f00d fb53 	bl	3a200 <boot_read_swap_state_by_id>
                                    &secondary_slot);
    if (rc == BOOT_EFLASH) {
   2cb5a:	2801      	cmp	r0, #1
   2cb5c:	d003      	beq.n	2cb66 <boot_swap_type_multi+0x26>
        secondary_slot.magic = BOOT_MAGIC_UNSET;
        secondary_slot.swap_type = BOOT_SWAP_TYPE_NONE;
        secondary_slot.copy_done = BOOT_FLAG_UNSET;
        secondary_slot.image_ok = BOOT_FLAG_UNSET;
        secondary_slot.image_num = 0;
    } else if (rc) {
   2cb5e:	2800      	cmp	r0, #0
   2cb60:	d163      	bne.n	2cc2a <boot_swap_type_multi+0xea>
                table->image_ok_primary_slot == primary_slot.image_ok) &&
            (table->image_ok_secondary_slot == BOOT_FLAG_ANY ||
                table->image_ok_secondary_slot == secondary_slot.image_ok) &&
            (table->copy_done_primary_slot == BOOT_FLAG_ANY  ||
                table->copy_done_primary_slot == primary_slot.copy_done)) {
            BOOT_LOG_INF("Swap type: %s",
   2cb62:	2400      	movs	r4, #0
   2cb64:	e01a      	b.n	2cb9c <boot_swap_type_multi+0x5c>
        BOOT_LOG_INF("Secondary image of image pair (%d.) "
   2cb66:	4622      	mov	r2, r4
   2cb68:	2149      	movs	r1, #73	; 0x49
   2cb6a:	4831      	ldr	r0, [pc, #196]	; (2cc30 <boot_swap_type_multi+0xf0>)
   2cb6c:	f006 ffbe 	bl	33aec <z_log_minimal_printk>
        secondary_slot.magic = BOOT_MAGIC_UNSET;
   2cb70:	2303      	movs	r3, #3
   2cb72:	f88d 3000 	strb.w	r3, [sp]
        secondary_slot.swap_type = BOOT_SWAP_TYPE_NONE;
   2cb76:	2201      	movs	r2, #1
   2cb78:	f88d 2001 	strb.w	r2, [sp, #1]
        secondary_slot.copy_done = BOOT_FLAG_UNSET;
   2cb7c:	f88d 3002 	strb.w	r3, [sp, #2]
        secondary_slot.image_ok = BOOT_FLAG_UNSET;
   2cb80:	f88d 3003 	strb.w	r3, [sp, #3]
        secondary_slot.image_num = 0;
   2cb84:	2300      	movs	r3, #0
   2cb86:	f88d 3004 	strb.w	r3, [sp, #4]
   2cb8a:	e7ea      	b.n	2cb62 <boot_swap_type_multi+0x22>
            (table->copy_done_primary_slot == BOOT_FLAG_ANY  ||
   2cb8c:	792b      	ldrb	r3, [r5, #4]
                table->image_ok_secondary_slot == secondary_slot.image_ok) &&
   2cb8e:	2b04      	cmp	r3, #4
   2cb90:	d029      	beq.n	2cbe6 <boot_swap_type_multi+0xa6>
                table->copy_done_primary_slot == primary_slot.copy_done)) {
   2cb92:	f89d 200a 	ldrb.w	r2, [sp, #10]
            (table->copy_done_primary_slot == BOOT_FLAG_ANY  ||
   2cb96:	4293      	cmp	r3, r2
   2cb98:	d025      	beq.n	2cbe6 <boot_swap_type_multi+0xa6>
    for (i = 0; i < BOOT_SWAP_TABLES_COUNT; i++) {
   2cb9a:	3401      	adds	r4, #1
   2cb9c:	2c02      	cmp	r4, #2
   2cb9e:	d83b      	bhi.n	2cc18 <boot_swap_type_multi+0xd8>
        table = boot_swap_tables + i;
   2cba0:	eb04 0344 	add.w	r3, r4, r4, lsl #1
   2cba4:	4a23      	ldr	r2, [pc, #140]	; (2cc34 <boot_swap_type_multi+0xf4>)
   2cba6:	eb02 0543 	add.w	r5, r2, r3, lsl #1
        if (boot_magic_compatible_check(table->magic_primary_slot,
   2cbaa:	f89d 1008 	ldrb.w	r1, [sp, #8]
   2cbae:	f812 0013 	ldrb.w	r0, [r2, r3, lsl #1]
   2cbb2:	f00d fa4e 	bl	3a052 <boot_magic_compatible_check>
   2cbb6:	2800      	cmp	r0, #0
   2cbb8:	d0ef      	beq.n	2cb9a <boot_swap_type_multi+0x5a>
            boot_magic_compatible_check(table->magic_secondary_slot,
   2cbba:	f89d 1000 	ldrb.w	r1, [sp]
   2cbbe:	7868      	ldrb	r0, [r5, #1]
   2cbc0:	f00d fa47 	bl	3a052 <boot_magic_compatible_check>
                                        primary_slot.magic) &&
   2cbc4:	2800      	cmp	r0, #0
   2cbc6:	d0e8      	beq.n	2cb9a <boot_swap_type_multi+0x5a>
            (table->image_ok_primary_slot == BOOT_FLAG_ANY   ||
   2cbc8:	78ab      	ldrb	r3, [r5, #2]
                                        secondary_slot.magic) &&
   2cbca:	2b04      	cmp	r3, #4
   2cbcc:	d003      	beq.n	2cbd6 <boot_swap_type_multi+0x96>
                table->image_ok_primary_slot == primary_slot.image_ok) &&
   2cbce:	f89d 200b 	ldrb.w	r2, [sp, #11]
            (table->image_ok_primary_slot == BOOT_FLAG_ANY   ||
   2cbd2:	4293      	cmp	r3, r2
   2cbd4:	d1e1      	bne.n	2cb9a <boot_swap_type_multi+0x5a>
            (table->image_ok_secondary_slot == BOOT_FLAG_ANY ||
   2cbd6:	78eb      	ldrb	r3, [r5, #3]
                table->image_ok_primary_slot == primary_slot.image_ok) &&
   2cbd8:	2b04      	cmp	r3, #4
   2cbda:	d0d7      	beq.n	2cb8c <boot_swap_type_multi+0x4c>
                table->image_ok_secondary_slot == secondary_slot.image_ok) &&
   2cbdc:	f89d 2003 	ldrb.w	r2, [sp, #3]
            (table->image_ok_secondary_slot == BOOT_FLAG_ANY ||
   2cbe0:	4293      	cmp	r3, r2
   2cbe2:	d1da      	bne.n	2cb9a <boot_swap_type_multi+0x5a>
   2cbe4:	e7d2      	b.n	2cb8c <boot_swap_type_multi+0x4c>
            BOOT_LOG_INF("Swap type: %s",
   2cbe6:	796b      	ldrb	r3, [r5, #5]
   2cbe8:	2b02      	cmp	r3, #2
   2cbea:	d007      	beq.n	2cbfc <boot_swap_type_multi+0xbc>
   2cbec:	2b03      	cmp	r3, #3
   2cbee:	d011      	beq.n	2cc14 <boot_swap_type_multi+0xd4>
   2cbf0:	2b04      	cmp	r3, #4
   2cbf2:	d001      	beq.n	2cbf8 <boot_swap_type_multi+0xb8>
   2cbf4:	4a10      	ldr	r2, [pc, #64]	; (2cc38 <boot_swap_type_multi+0xf8>)
   2cbf6:	e002      	b.n	2cbfe <boot_swap_type_multi+0xbe>
   2cbf8:	4a10      	ldr	r2, [pc, #64]	; (2cc3c <boot_swap_type_multi+0xfc>)
   2cbfa:	e000      	b.n	2cbfe <boot_swap_type_multi+0xbe>
   2cbfc:	4a10      	ldr	r2, [pc, #64]	; (2cc40 <boot_swap_type_multi+0x100>)
   2cbfe:	2149      	movs	r1, #73	; 0x49
   2cc00:	4810      	ldr	r0, [pc, #64]	; (2cc44 <boot_swap_type_multi+0x104>)
   2cc02:	f006 ff73 	bl	33aec <z_log_minimal_printk>
                         table->swap_type == BOOT_SWAP_TYPE_TEST   ? "test"   :
                         table->swap_type == BOOT_SWAP_TYPE_PERM   ? "perm"   :
                         table->swap_type == BOOT_SWAP_TYPE_REVERT ? "revert" :
                         "BUG; can't happen");
            if (table->swap_type != BOOT_SWAP_TYPE_TEST &&
   2cc06:	7968      	ldrb	r0, [r5, #5]
                    table->swap_type != BOOT_SWAP_TYPE_PERM &&
   2cc08:	1e83      	subs	r3, r0, #2
   2cc0a:	b2db      	uxtb	r3, r3
            if (table->swap_type != BOOT_SWAP_TYPE_TEST &&
   2cc0c:	2b02      	cmp	r3, #2
   2cc0e:	d908      	bls.n	2cc22 <boot_swap_type_multi+0xe2>
                    table->swap_type != BOOT_SWAP_TYPE_REVERT) {
                return BOOT_SWAP_TYPE_PANIC;
   2cc10:	20ff      	movs	r0, #255	; 0xff
   2cc12:	e006      	b.n	2cc22 <boot_swap_type_multi+0xe2>
            BOOT_LOG_INF("Swap type: %s",
   2cc14:	4a0c      	ldr	r2, [pc, #48]	; (2cc48 <boot_swap_type_multi+0x108>)
   2cc16:	e7f2      	b.n	2cbfe <boot_swap_type_multi+0xbe>
            }
            return table->swap_type;
        }
    }

    BOOT_LOG_INF("Swap type: none");
   2cc18:	2149      	movs	r1, #73	; 0x49
   2cc1a:	480c      	ldr	r0, [pc, #48]	; (2cc4c <boot_swap_type_multi+0x10c>)
   2cc1c:	f006 ff66 	bl	33aec <z_log_minimal_printk>
    return BOOT_SWAP_TYPE_NONE;
   2cc20:	2001      	movs	r0, #1
}
   2cc22:	b005      	add	sp, #20
   2cc24:	bd30      	pop	{r4, r5, pc}
        return BOOT_SWAP_TYPE_PANIC;
   2cc26:	20ff      	movs	r0, #255	; 0xff
   2cc28:	e7fb      	b.n	2cc22 <boot_swap_type_multi+0xe2>
        return BOOT_SWAP_TYPE_PANIC;
   2cc2a:	20ff      	movs	r0, #255	; 0xff
   2cc2c:	e7f9      	b.n	2cc22 <boot_swap_type_multi+0xe2>
   2cc2e:	bf00      	nop
   2cc30:	0003f3bc 	.word	0x0003f3bc
   2cc34:	0003f454 	.word	0x0003f454
   2cc38:	0003f3a0 	.word	0x0003f3a0
   2cc3c:	0003f3b4 	.word	0x0003f3b4
   2cc40:	0003f390 	.word	0x0003f390
   2cc44:	0003f408 	.word	0x0003f408
   2cc48:	0003f398 	.word	0x0003f398
   2cc4c:	0003f41c 	.word	0x0003f41c

0002cc50 <boot_set_pending_multi>:
 *
 * @return                  0 on success; nonzero on failure.
 */
int
boot_set_pending_multi(int image_index, int permanent)
{
   2cc50:	b570      	push	{r4, r5, r6, lr}
   2cc52:	b084      	sub	sp, #16
   2cc54:	460c      	mov	r4, r1
    const struct flash_area *fap;
    struct boot_swap_state state_secondary_slot;
    uint8_t swap_type;
    int rc;

    rc = flash_area_open(FLASH_AREA_IMAGE_SECONDARY(image_index), &fap);
   2cc56:	a903      	add	r1, sp, #12
   2cc58:	2005      	movs	r0, #5
   2cc5a:	f7f1 f967 	bl	1df2c <flash_area_open>
    if (rc != 0) {
   2cc5e:	b118      	cbz	r0, 2cc68 <boot_set_pending_multi+0x18>
        return BOOT_EFLASH;
   2cc60:	2501      	movs	r5, #1
    }

done:
    flash_area_close(fap);
    return rc;
}
   2cc62:	4628      	mov	r0, r5
   2cc64:	b004      	add	sp, #16
   2cc66:	bd70      	pop	{r4, r5, r6, pc}
    rc = boot_read_swap_state(fap, &state_secondary_slot);
   2cc68:	a901      	add	r1, sp, #4
   2cc6a:	9803      	ldr	r0, [sp, #12]
   2cc6c:	f00d fa7b 	bl	3a166 <boot_read_swap_state>
    if (rc != 0) {
   2cc70:	4605      	mov	r5, r0
   2cc72:	bb80      	cbnz	r0, 2ccd6 <boot_set_pending_multi+0x86>
    switch (state_secondary_slot.magic) {
   2cc74:	f89d 6004 	ldrb.w	r6, [sp, #4]
   2cc78:	2e02      	cmp	r6, #2
   2cc7a:	d026      	beq.n	2ccca <boot_set_pending_multi+0x7a>
   2cc7c:	2e03      	cmp	r6, #3
   2cc7e:	d00f      	beq.n	2cca0 <boot_set_pending_multi+0x50>
   2cc80:	2e01      	cmp	r6, #1
   2cc82:	d028      	beq.n	2ccd6 <boot_set_pending_multi+0x86>
        assert(0);
   2cc84:	4c16      	ldr	r4, [pc, #88]	; (2cce0 <boot_set_pending_multi+0x90>)
   2cc86:	f44f 720a 	mov.w	r2, #552	; 0x228
   2cc8a:	4621      	mov	r1, r4
   2cc8c:	4815      	ldr	r0, [pc, #84]	; (2cce4 <boot_set_pending_multi+0x94>)
   2cc8e:	f006 fb8c 	bl	333aa <printk>
   2cc92:	f44f 710a 	mov.w	r1, #552	; 0x228
   2cc96:	4620      	mov	r0, r4
   2cc98:	f006 ff20 	bl	33adc <assert_post_action>
        rc = BOOT_EBADIMAGE;
   2cc9c:	2503      	movs	r5, #3
   2cc9e:	e01a      	b.n	2ccd6 <boot_set_pending_multi+0x86>
        rc = boot_write_magic(fap);
   2cca0:	9803      	ldr	r0, [sp, #12]
   2cca2:	f7ff ff07 	bl	2cab4 <boot_write_magic>
        if (rc == 0 && permanent) {
   2cca6:	4605      	mov	r5, r0
   2cca8:	b900      	cbnz	r0, 2ccac <boot_set_pending_multi+0x5c>
   2ccaa:	b94c      	cbnz	r4, 2ccc0 <boot_set_pending_multi+0x70>
        if (rc == 0) {
   2ccac:	b99d      	cbnz	r5, 2ccd6 <boot_set_pending_multi+0x86>
            if (permanent) {
   2ccae:	b904      	cbnz	r4, 2ccb2 <boot_set_pending_multi+0x62>
                swap_type = BOOT_SWAP_TYPE_TEST;
   2ccb0:	2602      	movs	r6, #2
            rc = boot_write_swap_info(fap, swap_type, 0);
   2ccb2:	2200      	movs	r2, #0
   2ccb4:	4631      	mov	r1, r6
   2ccb6:	9803      	ldr	r0, [sp, #12]
   2ccb8:	f7ff ff0a 	bl	2cad0 <boot_write_swap_info>
   2ccbc:	4605      	mov	r5, r0
   2ccbe:	e00a      	b.n	2ccd6 <boot_set_pending_multi+0x86>
            rc = boot_write_image_ok(fap);
   2ccc0:	9803      	ldr	r0, [sp, #12]
   2ccc2:	f00d fa43 	bl	3a14c <boot_write_image_ok>
   2ccc6:	4605      	mov	r5, r0
   2ccc8:	e7f0      	b.n	2ccac <boot_set_pending_multi+0x5c>
        flash_area_erase(fap, 0, fap->fa_size);
   2ccca:	9803      	ldr	r0, [sp, #12]
   2cccc:	6882      	ldr	r2, [r0, #8]
   2ccce:	2100      	movs	r1, #0
   2ccd0:	f007 fb66 	bl	343a0 <flash_area_erase>
        rc = BOOT_EBADIMAGE;
   2ccd4:	2503      	movs	r5, #3
    flash_area_close(fap);
   2ccd6:	9803      	ldr	r0, [sp, #12]
   2ccd8:	f007 fb0e 	bl	342f8 <flash_area_close>
    return rc;
   2ccdc:	e7c1      	b.n	2cc62 <boot_set_pending_multi+0x12>
   2ccde:	bf00      	nop
   2cce0:	0003f34c 	.word	0x0003f34c
   2cce4:	0003bdac 	.word	0x0003bdac

0002cce8 <nrf52_errata_36>:
         || defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810)\
         || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811)\
         || defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820)\
         || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833)\
         || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840)
            uint32_t var1 = *(uint32_t *)0x10000130ul;
   2cce8:	4b03      	ldr	r3, [pc, #12]	; (2ccf8 <nrf52_errata_36+0x10>)
   2ccea:	681b      	ldr	r3, [r3, #0]
                        return true;
                }
            }
        #endif
        #if defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833)
            if (var1 == 0x0D)
   2ccec:	2b0d      	cmp	r3, #13
   2ccee:	d001      	beq.n	2ccf4 <nrf52_errata_36+0xc>
                    default:
                        return true;
                }
            }
        #endif
        return false;
   2ccf0:	2000      	movs	r0, #0
   2ccf2:	4770      	bx	lr
                        return true;
   2ccf4:	2001      	movs	r0, #1
    #endif
}
   2ccf6:	4770      	bx	lr
   2ccf8:	10000130 	.word	0x10000130

0002ccfc <nrf52_errata_66>:
         || defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810)\
         || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811)\
         || defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820)\
         || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833)\
         || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840)
            uint32_t var1 = *(uint32_t *)0x10000130ul;
   2ccfc:	4b03      	ldr	r3, [pc, #12]	; (2cd0c <nrf52_errata_66+0x10>)
   2ccfe:	681b      	ldr	r3, [r3, #0]
                        return true;
                }
            }
        #endif
        #if defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833)
            if (var1 == 0x0D)
   2cd00:	2b0d      	cmp	r3, #13
   2cd02:	d001      	beq.n	2cd08 <nrf52_errata_66+0xc>
                    default:
                        return true;
                }
            }
        #endif
        return false;
   2cd04:	2000      	movs	r0, #0
   2cd06:	4770      	bx	lr
                        return true;
   2cd08:	2001      	movs	r0, #1
    #endif
}
   2cd0a:	4770      	bx	lr
   2cd0c:	10000130 	.word	0x10000130

0002cd10 <nrf52_errata_136>:
         || defined (NRF52810_XXAA) || defined (DEVELOP_IN_NRF52810)\
         || defined (NRF52811_XXAA) || defined (DEVELOP_IN_NRF52811)\
         || defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820)\
         || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833)\
         || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840)
            uint32_t var1 = *(uint32_t *)0x10000130ul;
   2cd10:	4b03      	ldr	r3, [pc, #12]	; (2cd20 <nrf52_errata_136+0x10>)
   2cd12:	681b      	ldr	r3, [r3, #0]
                        return true;
                }
            }
        #endif
        #if defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833)
            if (var1 == 0x0D)
   2cd14:	2b0d      	cmp	r3, #13
   2cd16:	d001      	beq.n	2cd1c <nrf52_errata_136+0xc>
                    default:
                        return true;
                }
            }
        #endif
        return false;
   2cd18:	2000      	movs	r0, #0
   2cd1a:	4770      	bx	lr
                        return true;
   2cd1c:	2001      	movs	r0, #1
    #endif
}
   2cd1e:	4770      	bx	lr
   2cd20:	10000130 	.word	0x10000130

0002cd24 <nrf52_errata_249>:
        #if defined (NRF52820_XXAA) || defined (DEVELOP_IN_NRF52820)\
         || defined (NRF52832_XXAA) || defined (DEVELOP_IN_NRF52832)\
         || defined (NRF52832_XXAB) || defined (DEVELOP_IN_NRF52832)\
         || defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833)\
         || defined (NRF52840_XXAA) || defined (DEVELOP_IN_NRF52840)
            uint32_t var1 = *(uint32_t *)0x10000130ul;
   2cd24:	4b06      	ldr	r3, [pc, #24]	; (2cd40 <nrf52_errata_249+0x1c>)
   2cd26:	681b      	ldr	r3, [r3, #0]
            uint32_t var2 = *(uint32_t *)0x10000134ul;
   2cd28:	4a06      	ldr	r2, [pc, #24]	; (2cd44 <nrf52_errata_249+0x20>)
   2cd2a:	6812      	ldr	r2, [r2, #0]
                        return true;
                }
            }
        #endif
        #if defined (NRF52833_XXAA) || defined (DEVELOP_IN_NRF52833)
            if (var1 == 0x0D)
   2cd2c:	2b0d      	cmp	r3, #13
   2cd2e:	d001      	beq.n	2cd34 <nrf52_errata_249+0x10>
                    default:
                        return true;
                }
            }
        #endif
        return false;
   2cd30:	2000      	movs	r0, #0
   2cd32:	4770      	bx	lr
                switch(var2)
   2cd34:	2a01      	cmp	r2, #1
   2cd36:	d801      	bhi.n	2cd3c <nrf52_errata_249+0x18>
   2cd38:	2000      	movs	r0, #0
   2cd3a:	4770      	bx	lr
                        return true;
   2cd3c:	2001      	movs	r0, #1
    #endif
}
   2cd3e:	4770      	bx	lr
   2cd40:	10000130 	.word	0x10000130
   2cd44:	10000134 	.word	0x10000134

0002cd48 <nvmc_wait>:

/* -- NVMC utility functions -- */
/* Waits until NVMC is done with the current pending action */
void nvmc_wait(void)
{
    while (NRF_NVMC->READY == NVMC_READY_READY_Busy){}
   2cd48:	4b02      	ldr	r3, [pc, #8]	; (2cd54 <nvmc_wait+0xc>)
   2cd4a:	f8d3 3400 	ldr.w	r3, [r3, #1024]	; 0x400
   2cd4e:	2b00      	cmp	r3, #0
   2cd50:	d0fa      	beq.n	2cd48 <nvmc_wait>
}
   2cd52:	4770      	bx	lr
   2cd54:	4001e000 	.word	0x4001e000

0002cd58 <nvmc_config>:

/*  Configure the NVMC to "mode".
    Mode must be an enumerator of field NVMC_CONFIG_WEN */
void nvmc_config(uint32_t mode)
{
   2cd58:	b508      	push	{r3, lr}
    NRF_NVMC->CONFIG = mode << NVMC_CONFIG_WEN_Pos;
   2cd5a:	4b03      	ldr	r3, [pc, #12]	; (2cd68 <nvmc_config+0x10>)
   2cd5c:	f8c3 0504 	str.w	r0, [r3, #1284]	; 0x504
    nvmc_wait();
   2cd60:	f7ff fff2 	bl	2cd48 <nvmc_wait>
}
   2cd64:	bd08      	pop	{r3, pc}
   2cd66:	bf00      	nop
   2cd68:	4001e000 	.word	0x4001e000

0002cd6c <SystemCoreClockUpdate>:

void SystemCoreClockUpdate(void)
{
    SystemCoreClock = __SYSTEM_CLOCK_64M;
   2cd6c:	4b01      	ldr	r3, [pc, #4]	; (2cd74 <SystemCoreClockUpdate+0x8>)
   2cd6e:	4a02      	ldr	r2, [pc, #8]	; (2cd78 <SystemCoreClockUpdate+0xc>)
   2cd70:	601a      	str	r2, [r3, #0]
}
   2cd72:	4770      	bx	lr
   2cd74:	20000740 	.word	0x20000740
   2cd78:	03d09000 	.word	0x03d09000

0002cd7c <SystemInit>:

void SystemInit(void)
{
   2cd7c:	b538      	push	{r3, r4, r5, lr}
    #endif

    #if NRF52_ERRATA_36_ENABLE_WORKAROUND
        /* Workaround for Errata 36 "CLOCK: Some registers are not reset when expected" found at the Errata document
           for your device located at https://infocenter.nordicsemi.com/index.jsp  */
        if (nrf52_errata_36()){
   2cd7e:	f7ff ffb3 	bl	2cce8 <nrf52_errata_36>
   2cd82:	b140      	cbz	r0, 2cd96 <SystemInit+0x1a>
            NRF_CLOCK->EVENTS_DONE = 0;
   2cd84:	f04f 4380 	mov.w	r3, #1073741824	; 0x40000000
   2cd88:	2200      	movs	r2, #0
   2cd8a:	f8c3 210c 	str.w	r2, [r3, #268]	; 0x10c
            NRF_CLOCK->EVENTS_CTTO = 0;
   2cd8e:	f8c3 2110 	str.w	r2, [r3, #272]	; 0x110
            NRF_CLOCK->CTIV = 0;
   2cd92:	f8c3 2538 	str.w	r2, [r3, #1336]	; 0x538
    #endif

    #if NRF52_ERRATA_66_ENABLE_WORKAROUND
        /* Workaround for Errata 66 "TEMP: Linearity specification not met with default settings" found at the Errata document
           for your device located at https://infocenter.nordicsemi.com/index.jsp  */
        if (nrf52_errata_66()){
   2cd96:	f7ff ffb1 	bl	2ccfc <nrf52_errata_66>
   2cd9a:	2800      	cmp	r0, #0
   2cd9c:	d046      	beq.n	2ce2c <SystemInit+0xb0>
            NRF_TEMP->A0 = NRF_FICR->TEMP.A0;
   2cd9e:	f04f 5280 	mov.w	r2, #268435456	; 0x10000000
   2cda2:	f8d2 1404 	ldr.w	r1, [r2, #1028]	; 0x404
   2cda6:	4b45      	ldr	r3, [pc, #276]	; (2cebc <SystemInit+0x140>)
   2cda8:	f8c3 1520 	str.w	r1, [r3, #1312]	; 0x520
            NRF_TEMP->A1 = NRF_FICR->TEMP.A1;
   2cdac:	f8d2 1408 	ldr.w	r1, [r2, #1032]	; 0x408
   2cdb0:	f8c3 1524 	str.w	r1, [r3, #1316]	; 0x524
            NRF_TEMP->A2 = NRF_FICR->TEMP.A2;
   2cdb4:	f8d2 140c 	ldr.w	r1, [r2, #1036]	; 0x40c
   2cdb8:	f8c3 1528 	str.w	r1, [r3, #1320]	; 0x528
            NRF_TEMP->A3 = NRF_FICR->TEMP.A3;
   2cdbc:	f8d2 1410 	ldr.w	r1, [r2, #1040]	; 0x410
   2cdc0:	f8c3 152c 	str.w	r1, [r3, #1324]	; 0x52c
            NRF_TEMP->A4 = NRF_FICR->TEMP.A4;
   2cdc4:	f8d2 1414 	ldr.w	r1, [r2, #1044]	; 0x414
   2cdc8:	f8c3 1530 	str.w	r1, [r3, #1328]	; 0x530
            NRF_TEMP->A5 = NRF_FICR->TEMP.A5;
   2cdcc:	f8d2 1418 	ldr.w	r1, [r2, #1048]	; 0x418
   2cdd0:	f8c3 1534 	str.w	r1, [r3, #1332]	; 0x534
            NRF_TEMP->B0 = NRF_FICR->TEMP.B0;
   2cdd4:	f8d2 141c 	ldr.w	r1, [r2, #1052]	; 0x41c
   2cdd8:	f8c3 1540 	str.w	r1, [r3, #1344]	; 0x540
            NRF_TEMP->B1 = NRF_FICR->TEMP.B1;
   2cddc:	f8d2 1420 	ldr.w	r1, [r2, #1056]	; 0x420
   2cde0:	f8c3 1544 	str.w	r1, [r3, #1348]	; 0x544
            NRF_TEMP->B2 = NRF_FICR->TEMP.B2;
   2cde4:	f8d2 1424 	ldr.w	r1, [r2, #1060]	; 0x424
   2cde8:	f8c3 1548 	str.w	r1, [r3, #1352]	; 0x548
            NRF_TEMP->B3 = NRF_FICR->TEMP.B3;
   2cdec:	f8d2 1428 	ldr.w	r1, [r2, #1064]	; 0x428
   2cdf0:	f8c3 154c 	str.w	r1, [r3, #1356]	; 0x54c
            NRF_TEMP->B4 = NRF_FICR->TEMP.B4;
   2cdf4:	f8d2 142c 	ldr.w	r1, [r2, #1068]	; 0x42c
   2cdf8:	f8c3 1550 	str.w	r1, [r3, #1360]	; 0x550
            NRF_TEMP->B5 = NRF_FICR->TEMP.B5;
   2cdfc:	f8d2 1430 	ldr.w	r1, [r2, #1072]	; 0x430
   2ce00:	f8c3 1554 	str.w	r1, [r3, #1364]	; 0x554
            NRF_TEMP->T0 = NRF_FICR->TEMP.T0;
   2ce04:	f8d2 1434 	ldr.w	r1, [r2, #1076]	; 0x434
   2ce08:	f8c3 1560 	str.w	r1, [r3, #1376]	; 0x560
            NRF_TEMP->T1 = NRF_FICR->TEMP.T1;
   2ce0c:	f8d2 1438 	ldr.w	r1, [r2, #1080]	; 0x438
   2ce10:	f8c3 1564 	str.w	r1, [r3, #1380]	; 0x564
            NRF_TEMP->T2 = NRF_FICR->TEMP.T2;
   2ce14:	f8d2 143c 	ldr.w	r1, [r2, #1084]	; 0x43c
   2ce18:	f8c3 1568 	str.w	r1, [r3, #1384]	; 0x568
            NRF_TEMP->T3 = NRF_FICR->TEMP.T3;
   2ce1c:	f8d2 1440 	ldr.w	r1, [r2, #1088]	; 0x440
   2ce20:	f8c3 156c 	str.w	r1, [r3, #1388]	; 0x56c
            NRF_TEMP->T4 = NRF_FICR->TEMP.T4;
   2ce24:	f8d2 2444 	ldr.w	r2, [r2, #1092]	; 0x444
   2ce28:	f8c3 2570 	str.w	r2, [r3, #1392]	; 0x570
    #endif

    #if NRF52_ERRATA_136_ENABLE_WORKAROUND
        /* Workaround for Errata 136 "System: Bits in RESETREAS are set when they should not be" found at the Errata document
           for your device located at https://infocenter.nordicsemi.com/index.jsp  */
        if (nrf52_errata_136()){
   2ce2c:	f7ff ff70 	bl	2cd10 <nrf52_errata_136>
   2ce30:	b160      	cbz	r0, 2ce4c <SystemInit+0xd0>
            if (NRF_POWER->RESETREAS & POWER_RESETREAS_RESETPIN_Msk){
   2ce32:	f04f 4380 	mov.w	r3, #1073741824	; 0x40000000
   2ce36:	f8d3 3400 	ldr.w	r3, [r3, #1024]	; 0x400
   2ce3a:	f013 0f01 	tst.w	r3, #1
   2ce3e:	d005      	beq.n	2ce4c <SystemInit+0xd0>
                NRF_POWER->RESETREAS =  ~POWER_RESETREAS_RESETPIN_Msk;
   2ce40:	f04f 4380 	mov.w	r3, #1073741824	; 0x40000000
   2ce44:	f06f 0201 	mvn.w	r2, #1
   2ce48:	f8c3 2400 	str.w	r2, [r3, #1024]	; 0x400
            {
                /* Prevent processor from unlocking APPROTECT soft branch after this point. */
                NRF_APPROTECT->FORCEPROTECT = APPROTECT_FORCEPROTECT_FORCEPROTECT_Force;
            }
        #else
            if (nrf52_errata_249())
   2ce4c:	f7ff ff6a 	bl	2cd24 <nrf52_errata_249>
   2ce50:	b138      	cbz	r0, 2ce62 <SystemInit+0xe6>
            {
                /* Load APPROTECT soft branch from UICR.
                   If UICR->APPROTECT is disabled, POWER->APPROTECT will be disabled. */
                NRF_APPROTECT->DISABLE = NRF_UICR->APPROTECT;
   2ce52:	f04f 2310 	mov.w	r3, #268439552	; 0x10001000
   2ce56:	f8d3 2208 	ldr.w	r2, [r3, #520]	; 0x208
   2ce5a:	f04f 4380 	mov.w	r3, #1073741824	; 0x40000000
   2ce5e:	f8c3 2558 	str.w	r2, [r3, #1368]	; 0x558

    /* Configure GPIO pads as pPin Reset pin if Pin Reset capabilities desired. If CONFIG_GPIO_AS_PINRESET is not
      defined, pin reset will not be available. One GPIO (see Product Specification to see which one) will then be
      reserved for PinReset and not available as normal GPIO. */
    #if defined (CONFIG_GPIO_AS_PINRESET)
        if (((NRF_UICR->PSELRESET[0] & UICR_PSELRESET_CONNECT_Msk) != (UICR_PSELRESET_CONNECT_Connected << UICR_PSELRESET_CONNECT_Pos)) ||
   2ce62:	f04f 2310 	mov.w	r3, #268439552	; 0x10001000
   2ce66:	f8d3 3200 	ldr.w	r3, [r3, #512]	; 0x200
   2ce6a:	2b00      	cmp	r3, #0
   2ce6c:	db08      	blt.n	2ce80 <SystemInit+0x104>
            ((NRF_UICR->PSELRESET[1] & UICR_PSELRESET_CONNECT_Msk) != (UICR_PSELRESET_CONNECT_Connected << UICR_PSELRESET_CONNECT_Pos))){
   2ce6e:	f04f 2310 	mov.w	r3, #268439552	; 0x10001000
   2ce72:	f8d3 3204 	ldr.w	r3, [r3, #516]	; 0x204
        if (((NRF_UICR->PSELRESET[0] & UICR_PSELRESET_CONNECT_Msk) != (UICR_PSELRESET_CONNECT_Connected << UICR_PSELRESET_CONNECT_Pos)) ||
   2ce76:	2b00      	cmp	r3, #0
   2ce78:	db02      	blt.n	2ce80 <SystemInit+0x104>
            nvmc_config(NVMC_CONFIG_WEN_Ren);
            NVIC_SystemReset();
        }
    #endif

    SystemCoreClockUpdate();
   2ce7a:	f7ff ff77 	bl	2cd6c <SystemCoreClockUpdate>
}
   2ce7e:	bd38      	pop	{r3, r4, r5, pc}
            nvmc_config(NVMC_CONFIG_WEN_Wen);
   2ce80:	2001      	movs	r0, #1
   2ce82:	f7ff ff69 	bl	2cd58 <nvmc_config>
            NRF_UICR->PSELRESET[0] = RESET_PIN;
   2ce86:	f04f 2410 	mov.w	r4, #268439552	; 0x10001000
   2ce8a:	2512      	movs	r5, #18
   2ce8c:	f8c4 5200 	str.w	r5, [r4, #512]	; 0x200
            nvmc_wait();
   2ce90:	f7ff ff5a 	bl	2cd48 <nvmc_wait>
            NRF_UICR->PSELRESET[1] = RESET_PIN;
   2ce94:	f8c4 5204 	str.w	r5, [r4, #516]	; 0x204
            nvmc_wait();
   2ce98:	f7ff ff56 	bl	2cd48 <nvmc_wait>
            nvmc_config(NVMC_CONFIG_WEN_Ren);
   2ce9c:	2000      	movs	r0, #0
   2ce9e:	f7ff ff5b 	bl	2cd58 <nvmc_config>
  __ASM volatile ("dsb 0xF":::"memory");
   2cea2:	f3bf 8f4f 	dsb	sy
                           (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) |
   2cea6:	4906      	ldr	r1, [pc, #24]	; (2cec0 <SystemInit+0x144>)
   2cea8:	68ca      	ldr	r2, [r1, #12]
   2ceaa:	f402 62e0 	and.w	r2, r2, #1792	; 0x700
   2ceae:	4b05      	ldr	r3, [pc, #20]	; (2cec4 <SystemInit+0x148>)
   2ceb0:	4313      	orrs	r3, r2
  SCB->AIRCR  = (uint32_t)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos)    |
   2ceb2:	60cb      	str	r3, [r1, #12]
   2ceb4:	f3bf 8f4f 	dsb	sy
    __NOP();
   2ceb8:	bf00      	nop
  for(;;)                                                           /* wait until reset */
   2ceba:	e7fd      	b.n	2ceb8 <SystemInit+0x13c>
   2cebc:	4000c000 	.word	0x4000c000
   2cec0:	e000ed00 	.word	0xe000ed00
   2cec4:	05fa0004 	.word	0x05fa0004

0002cec8 <is_allocated_channel>:
    NRFX_LOG_INFO("Uninitialized.");
}

static bool is_allocated_channel(uint8_t index)
{
    return m_cb.allocated_channels_mask & (1UL << index);
   2cec8:	4b04      	ldr	r3, [pc, #16]	; (2cedc <is_allocated_channel+0x14>)
   2ceca:	6d9a      	ldr	r2, [r3, #88]	; 0x58
   2cecc:	2301      	movs	r3, #1
   2cece:	4083      	lsls	r3, r0
   2ced0:	421a      	tst	r2, r3
}
   2ced2:	bf14      	ite	ne
   2ced4:	2001      	movne	r0, #1
   2ced6:	2000      	moveq	r0, #0
   2ced8:	4770      	bx	lr
   2ceda:	bf00      	nop
   2cedc:	20002cfc 	.word	0x20002cfc

0002cee0 <channel_allocated_set>:
    return NRFX_GPIOTE_APP_CHANNELS_MASK & (1UL << index);
}

static void channel_allocated_set(uint8_t index)
{
    m_cb.allocated_channels_mask |= (1UL << index);
   2cee0:	2301      	movs	r3, #1
   2cee2:	fa03 f000 	lsl.w	r0, r3, r0
   2cee6:	4a02      	ldr	r2, [pc, #8]	; (2cef0 <channel_allocated_set+0x10>)
   2cee8:	6d93      	ldr	r3, [r2, #88]	; 0x58
   2ceea:	4303      	orrs	r3, r0
   2ceec:	6593      	str	r3, [r2, #88]	; 0x58
}
   2ceee:	4770      	bx	lr
   2cef0:	20002cfc 	.word	0x20002cfc

0002cef4 <channel_allocated_clr>:

static void channel_allocated_clr(uint8_t index)
{
    m_cb.allocated_channels_mask &= ~(1UL << index);
   2cef4:	2301      	movs	r3, #1
   2cef6:	fa03 f000 	lsl.w	r0, r3, r0
   2cefa:	4a03      	ldr	r2, [pc, #12]	; (2cf08 <channel_allocated_clr+0x14>)
   2cefc:	6d93      	ldr	r3, [r2, #88]	; 0x58
   2cefe:	ea23 0300 	bic.w	r3, r3, r0
   2cf02:	6593      	str	r3, [r2, #88]	; 0x58
}
   2cf04:	4770      	bx	lr
   2cf06:	bf00      	nop
   2cf08:	20002cfc 	.word	0x20002cfc

0002cf0c <nrfx_gpiote_channel_free>:

nrfx_err_t nrfx_gpiote_channel_free(uint8_t channel)
{
   2cf0c:	b538      	push	{r3, r4, r5, lr}
   2cf0e:	4604      	mov	r4, r0
    nrfx_err_t err_code = NRFX_SUCCESS;

    if (!is_app_channel(channel))
   2cf10:	f00d f9be 	bl	3a290 <is_app_channel>
   2cf14:	b908      	cbnz	r0, 2cf1a <nrfx_gpiote_channel_free+0xe>
    {
        err_code = NRFX_ERROR_INVALID_PARAM;
   2cf16:	4809      	ldr	r0, [pc, #36]	; (2cf3c <nrfx_gpiote_channel_free+0x30>)
        NRFX_CRITICAL_SECTION_EXIT();
    }

    NRFX_LOG_INFO("Function: %s, error code: %s.", __func__, NRFX_LOG_ERROR_STRING_GET(err_code));
    return err_code;
}
   2cf18:	bd38      	pop	{r3, r4, r5, pc}
	__asm__ volatile(
   2cf1a:	f04f 0340 	mov.w	r3, #64	; 0x40
   2cf1e:	f3ef 8511 	mrs	r5, BASEPRI
   2cf22:	f383 8812 	msr	BASEPRI_MAX, r3
   2cf26:	f3bf 8f6f 	isb	sy
        channel_allocated_clr(channel);
   2cf2a:	4620      	mov	r0, r4
   2cf2c:	f7ff ffe2 	bl	2cef4 <channel_allocated_clr>
	__asm__ volatile(
   2cf30:	f385 8811 	msr	BASEPRI, r5
   2cf34:	f3bf 8f6f 	isb	sy
    nrfx_err_t err_code = NRFX_SUCCESS;
   2cf38:	4801      	ldr	r0, [pc, #4]	; (2cf40 <nrfx_gpiote_channel_free+0x34>)
}
   2cf3a:	e7ed      	b.n	2cf18 <nrfx_gpiote_channel_free+0xc>
   2cf3c:	0bad0004 	.word	0x0bad0004
   2cf40:	0bad0000 	.word	0x0bad0000

0002cf44 <nrfx_gpiote_channel_alloc>:

nrfx_err_t nrfx_gpiote_channel_alloc(uint8_t * p_channel)
{
   2cf44:	e92d 43f8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
   2cf48:	4680      	mov	r8, r0
    nrfx_err_t err_code = NRFX_ERROR_NO_MEM;
    uint32_t mask = NRFX_GPIOTE_APP_CHANNELS_MASK;

    for (uint8_t ch_idx = 0; mask != 0; ch_idx++)
   2cf4a:	2400      	movs	r4, #0
    uint32_t mask = NRFX_GPIOTE_APP_CHANNELS_MASK;
   2cf4c:	25ff      	movs	r5, #255	; 0xff
    nrfx_err_t err_code = NRFX_ERROR_NO_MEM;
   2cf4e:	4f17      	ldr	r7, [pc, #92]	; (2cfac <nrfx_gpiote_channel_alloc+0x68>)
    for (uint8_t ch_idx = 0; mask != 0; ch_idx++)
   2cf50:	e013      	b.n	2cf7a <nrfx_gpiote_channel_alloc+0x36>
    {
        NRFX_CRITICAL_SECTION_ENTER();
        if ((mask & (1UL << ch_idx)) && (!is_allocated_channel(ch_idx)))
        {
            channel_allocated_set(ch_idx);
   2cf52:	4620      	mov	r0, r4
   2cf54:	f7ff ffc4 	bl	2cee0 <channel_allocated_set>
            *p_channel = ch_idx;
   2cf58:	f888 4000 	strb.w	r4, [r8]
            err_code = NRFX_SUCCESS;
   2cf5c:	4f14      	ldr	r7, [pc, #80]	; (2cfb0 <nrfx_gpiote_channel_alloc+0x6c>)
	__asm__ volatile(
   2cf5e:	f386 8811 	msr	BASEPRI, r6
   2cf62:	f3bf 8f6f 	isb	sy
        }
        NRFX_CRITICAL_SECTION_EXIT();

        if (err_code == NRFX_SUCCESS)
   2cf66:	4b12      	ldr	r3, [pc, #72]	; (2cfb0 <nrfx_gpiote_channel_alloc+0x6c>)
   2cf68:	429f      	cmp	r7, r3
   2cf6a:	d01b      	beq.n	2cfa4 <nrfx_gpiote_channel_alloc+0x60>
        {
            NRFX_LOG_INFO("Allocated channel: %d.", ch_idx);
            break;
        }

        mask &= ~(1UL << ch_idx);
   2cf6c:	2301      	movs	r3, #1
   2cf6e:	fa03 f309 	lsl.w	r3, r3, r9
   2cf72:	ea25 0503 	bic.w	r5, r5, r3
    for (uint8_t ch_idx = 0; mask != 0; ch_idx++)
   2cf76:	3401      	adds	r4, #1
   2cf78:	b2e4      	uxtb	r4, r4
   2cf7a:	b19d      	cbz	r5, 2cfa4 <nrfx_gpiote_channel_alloc+0x60>
	__asm__ volatile(
   2cf7c:	f04f 0340 	mov.w	r3, #64	; 0x40
   2cf80:	f3ef 8611 	mrs	r6, BASEPRI
   2cf84:	f383 8812 	msr	BASEPRI_MAX, r3
   2cf88:	f3bf 8f6f 	isb	sy
        if ((mask & (1UL << ch_idx)) && (!is_allocated_channel(ch_idx)))
   2cf8c:	46a1      	mov	r9, r4
   2cf8e:	fa25 f304 	lsr.w	r3, r5, r4
   2cf92:	f013 0f01 	tst.w	r3, #1
   2cf96:	d0e2      	beq.n	2cf5e <nrfx_gpiote_channel_alloc+0x1a>
   2cf98:	4620      	mov	r0, r4
   2cf9a:	f7ff ff95 	bl	2cec8 <is_allocated_channel>
   2cf9e:	2800      	cmp	r0, #0
   2cfa0:	d1dd      	bne.n	2cf5e <nrfx_gpiote_channel_alloc+0x1a>
   2cfa2:	e7d6      	b.n	2cf52 <nrfx_gpiote_channel_alloc+0xe>
    }

    NRFX_LOG_INFO("Function: %s, error code: %s.", __func__, NRFX_LOG_ERROR_STRING_GET(err_code));
    return err_code;
}
   2cfa4:	4638      	mov	r0, r7
   2cfa6:	e8bd 83f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
   2cfaa:	bf00      	nop
   2cfac:	0bad0002 	.word	0x0bad0002
   2cfb0:	0bad0000 	.word	0x0bad0000

0002cfb4 <nvmc_readonly_mode_set>:
#endif

NRF_STATIC_INLINE void nrf_nvmc_mode_set(NRF_NVMC_Type * p_reg,
                                         nrf_nvmc_mode_t mode)
{
    p_reg->CONFIG = (uint32_t)mode;
   2cfb4:	4b02      	ldr	r3, [pc, #8]	; (2cfc0 <nvmc_readonly_mode_set+0xc>)
   2cfb6:	2200      	movs	r2, #0
   2cfb8:	f8c3 2504 	str.w	r2, [r3, #1284]	; 0x504
    nrf_nvmc_nonsecure_mode_set(NRF_NVMC, NRF_NVMC_NS_MODE_READONLY);
#endif
#if !defined(NRF_TRUSTZONE_NONSECURE)
    nrf_nvmc_mode_set(NRF_NVMC, NRF_NVMC_MODE_READONLY);
#endif
}
   2cfbc:	4770      	bx	lr
   2cfbe:	bf00      	nop
   2cfc0:	4001e000 	.word	0x4001e000

0002cfc4 <nvmc_write_mode_set>:
   2cfc4:	4b02      	ldr	r3, [pc, #8]	; (2cfd0 <nvmc_write_mode_set+0xc>)
   2cfc6:	2201      	movs	r2, #1
   2cfc8:	f8c3 2504 	str.w	r2, [r3, #1284]	; 0x504
    nrf_nvmc_nonsecure_mode_set(NRF_NVMC, NRF_NVMC_NS_MODE_WRITE);
#endif
#if !defined(NRF_TRUSTZONE_NONSECURE)
    nrf_nvmc_mode_set(NRF_NVMC, NRF_NVMC_MODE_WRITE);
#endif
}
   2cfcc:	4770      	bx	lr
   2cfce:	bf00      	nop
   2cfd0:	4001e000 	.word	0x4001e000

0002cfd4 <nvmc_erase_mode_set>:
   2cfd4:	4b02      	ldr	r3, [pc, #8]	; (2cfe0 <nvmc_erase_mode_set+0xc>)
   2cfd6:	2202      	movs	r2, #2
   2cfd8:	f8c3 2504 	str.w	r2, [r3, #1284]	; 0x504
    nrf_nvmc_nonsecure_mode_set(NRF_NVMC, NRF_NVMC_NS_MODE_ERASE);
#endif
#if !defined(NRF_TRUSTZONE_NONSECURE)
    nrf_nvmc_mode_set(NRF_NVMC, NRF_NVMC_MODE_ERASE);
#endif
}
   2cfdc:	4770      	bx	lr
   2cfde:	bf00      	nop
   2cfe0:	4001e000 	.word	0x4001e000

0002cfe4 <nvmc_word_write>:
    return (bool)(p_reg->READY & NVMC_READY_READY_Msk);
   2cfe4:	4b04      	ldr	r3, [pc, #16]	; (2cff8 <nvmc_word_write+0x14>)
   2cfe6:	f8d3 3400 	ldr.w	r3, [r3, #1024]	; 0x400
{
#if defined(NRF9160_XXAA)
    while (!nrf_nvmc_write_ready_check(NRF_NVMC))
    {}
#else
    while (!nrf_nvmc_ready_check(NRF_NVMC))
   2cfea:	f013 0f01 	tst.w	r3, #1
   2cfee:	d0f9      	beq.n	2cfe4 <nvmc_word_write>
    {}
#endif

    *(volatile uint32_t *)addr = value;
   2cff0:	6001      	str	r1, [r0, #0]
  __ASM volatile ("dmb 0xF":::"memory");
   2cff2:	f3bf 8f5f 	dmb	sy
    __DMB();
}
   2cff6:	4770      	bx	lr
   2cff8:	4001e000 	.word	0x4001e000

0002cffc <nrfx_nvmc_page_erase>:
        nvmc_word_write(addr + (NVMC_BYTES_IN_WORD * i), ((uint32_t const *)src)[i]);
    }
}

nrfx_err_t nrfx_nvmc_page_erase(uint32_t addr)
{
   2cffc:	b538      	push	{r3, r4, r5, lr}
   2cffe:	4604      	mov	r4, r0
    if ((addr - NVMC_FLASH_BASE_ADDRESS) < flash_total_size_get())
   2d000:	f00d f956 	bl	3a2b0 <flash_total_size_get>
   2d004:	4284      	cmp	r4, r0
   2d006:	d30b      	bcc.n	2d020 <nrfx_nvmc_page_erase+0x24>
    NRFX_ASSERT(is_valid_address(addr, false));
   2d008:	4d10      	ldr	r5, [pc, #64]	; (2d04c <nrfx_nvmc_page_erase+0x50>)
   2d00a:	f44f 7283 	mov.w	r2, #262	; 0x106
   2d00e:	4629      	mov	r1, r5
   2d010:	480f      	ldr	r0, [pc, #60]	; (2d050 <nrfx_nvmc_page_erase+0x54>)
   2d012:	f006 f9ca 	bl	333aa <printk>
   2d016:	f44f 7183 	mov.w	r1, #262	; 0x106
   2d01a:	4628      	mov	r0, r5
   2d01c:	f006 fd5e 	bl	33adc <assert_post_action>

    if (!is_page_aligned_check(addr))
   2d020:	4620      	mov	r0, r4
   2d022:	f00d f94e 	bl	3a2c2 <is_page_aligned_check>
   2d026:	b908      	cbnz	r0, 2d02c <nrfx_nvmc_page_erase+0x30>
    {
        return NRFX_ERROR_INVALID_ADDR;
   2d028:	480a      	ldr	r0, [pc, #40]	; (2d054 <nrfx_nvmc_page_erase+0x58>)
    while (!nrf_nvmc_ready_check(NRF_NVMC))
    {}
    nvmc_readonly_mode_set();

    return NRFX_SUCCESS;
}
   2d02a:	bd38      	pop	{r3, r4, r5, pc}
    nvmc_erase_mode_set();
   2d02c:	f7ff ffd2 	bl	2cfd4 <nvmc_erase_mode_set>
    else
    {
        p_reg->ERASEPCR1 = page_addr;
    }
#elif defined(NRF52_SERIES)
    p_reg->ERASEPAGE = page_addr;
   2d030:	4b09      	ldr	r3, [pc, #36]	; (2d058 <nrfx_nvmc_page_erase+0x5c>)
   2d032:	f8c3 4508 	str.w	r4, [r3, #1288]	; 0x508
    return (bool)(p_reg->READY & NVMC_READY_READY_Msk);
   2d036:	4b08      	ldr	r3, [pc, #32]	; (2d058 <nrfx_nvmc_page_erase+0x5c>)
   2d038:	f8d3 3400 	ldr.w	r3, [r3, #1024]	; 0x400
    while (!nrf_nvmc_ready_check(NRF_NVMC))
   2d03c:	f013 0f01 	tst.w	r3, #1
   2d040:	d0f9      	beq.n	2d036 <nrfx_nvmc_page_erase+0x3a>
    nvmc_readonly_mode_set();
   2d042:	f7ff ffb7 	bl	2cfb4 <nvmc_readonly_mode_set>
    return NRFX_SUCCESS;
   2d046:	4805      	ldr	r0, [pc, #20]	; (2d05c <nrfx_nvmc_page_erase+0x60>)
   2d048:	e7ef      	b.n	2d02a <nrfx_nvmc_page_erase+0x2e>
   2d04a:	bf00      	nop
   2d04c:	0003f468 	.word	0x0003f468
   2d050:	0003bdac 	.word	0x0003bdac
   2d054:	0bad000a 	.word	0x0bad000a
   2d058:	4001e000 	.word	0x4001e000
   2d05c:	0bad0000 	.word	0x0bad0000

0002d060 <nrfx_nvmc_word_write>:

    nrfx_nvmc_word_write(aligned_addr, partial_word_create(addr, (const uint8_t *)&value, 2));
}

void nrfx_nvmc_word_write(uint32_t addr, uint32_t value)
{
   2d060:	b570      	push	{r4, r5, r6, lr}
   2d062:	4604      	mov	r4, r0
   2d064:	460d      	mov	r5, r1
    if ((addr - NVMC_FLASH_BASE_ADDRESS) < flash_total_size_get())
   2d066:	f00d f923 	bl	3a2b0 <flash_total_size_get>
   2d06a:	4284      	cmp	r4, r0
   2d06c:	d310      	bcc.n	2d090 <nrfx_nvmc_word_write+0x30>
        (addr - (uint32_t)NRF_UICR) < sizeof(NRF_UICR_Type))
   2d06e:	f1a4 2310 	sub.w	r3, r4, #268439552	; 0x10001000
    if (uicr_allowed &&
   2d072:	f5b3 7f42 	cmp.w	r3, #776	; 0x308
   2d076:	d30b      	bcc.n	2d090 <nrfx_nvmc_word_write+0x30>
    NRFX_ASSERT(is_valid_address(addr, true));
   2d078:	4e12      	ldr	r6, [pc, #72]	; (2d0c4 <nrfx_nvmc_word_write+0x64>)
   2d07a:	f44f 72ca 	mov.w	r2, #404	; 0x194
   2d07e:	4631      	mov	r1, r6
   2d080:	4811      	ldr	r0, [pc, #68]	; (2d0c8 <nrfx_nvmc_word_write+0x68>)
   2d082:	f006 f992 	bl	333aa <printk>
   2d086:	f44f 71ca 	mov.w	r1, #404	; 0x194
   2d08a:	4630      	mov	r0, r6
   2d08c:	f006 fd26 	bl	33adc <assert_post_action>
    NRFX_ASSERT(nrfx_is_word_aligned((void const *)addr));
   2d090:	f014 0f03 	tst.w	r4, #3
   2d094:	d108      	bne.n	2d0a8 <nrfx_nvmc_word_write+0x48>

    nvmc_write_mode_set();
   2d096:	f7ff ff95 	bl	2cfc4 <nvmc_write_mode_set>

    nvmc_word_write(addr, value);
   2d09a:	4629      	mov	r1, r5
   2d09c:	4620      	mov	r0, r4
   2d09e:	f7ff ffa1 	bl	2cfe4 <nvmc_word_write>

    nvmc_readonly_mode_set();
   2d0a2:	f7ff ff87 	bl	2cfb4 <nvmc_readonly_mode_set>
}
   2d0a6:	bd70      	pop	{r4, r5, r6, pc}
    NRFX_ASSERT(nrfx_is_word_aligned((void const *)addr));
   2d0a8:	4e06      	ldr	r6, [pc, #24]	; (2d0c4 <nrfx_nvmc_word_write+0x64>)
   2d0aa:	f240 1295 	movw	r2, #405	; 0x195
   2d0ae:	4631      	mov	r1, r6
   2d0b0:	4805      	ldr	r0, [pc, #20]	; (2d0c8 <nrfx_nvmc_word_write+0x68>)
   2d0b2:	f006 f97a 	bl	333aa <printk>
   2d0b6:	f240 1195 	movw	r1, #405	; 0x195
   2d0ba:	4630      	mov	r0, r6
   2d0bc:	f006 fd0e 	bl	33adc <assert_post_action>
   2d0c0:	e7e9      	b.n	2d096 <nrfx_nvmc_word_write+0x36>
   2d0c2:	bf00      	nop
   2d0c4:	0003f468 	.word	0x0003f468
   2d0c8:	0003bdac 	.word	0x0003bdac

0002d0cc <is_allocated_channel>:
NRFX_STATIC_INLINE uint32_t nrfx_ppi_task_addr_group_disable_get(nrf_ppi_channel_group_t group);

#ifndef NRFX_DECLARE_ONLY
NRFX_STATIC_INLINE uint32_t nrfx_ppi_channel_to_mask(nrf_ppi_channel_t channel)
{
    return (1uL << (uint32_t) channel);
   2d0cc:	2301      	movs	r3, #1
   2d0ce:	4083      	lsls	r3, r0
 * @retval true  The channel is allocated.
 * @retval false The channel is not allocated.
 */
static bool is_allocated_channel(nrf_ppi_channel_t channel)
{
    return ((m_channels_allocated & nrfx_ppi_channel_to_mask(channel)) != 0);
   2d0d0:	4a03      	ldr	r2, [pc, #12]	; (2d0e0 <is_allocated_channel+0x14>)
   2d0d2:	6812      	ldr	r2, [r2, #0]
   2d0d4:	4213      	tst	r3, r2
}
   2d0d6:	bf14      	ite	ne
   2d0d8:	2001      	movne	r0, #1
   2d0da:	2000      	moveq	r0, #0
   2d0dc:	4770      	bx	lr
   2d0de:	bf00      	nop
   2d0e0:	20002d58 	.word	0x20002d58

0002d0e4 <channel_allocated_set>:
   2d0e4:	2301      	movs	r3, #1
   2d0e6:	fa03 f000 	lsl.w	r0, r3, r0
 *
 * @param[in] channel_num Specifies the channel to set the "allocated" indication.
 */
static void channel_allocated_set(nrf_ppi_channel_t channel)
{
    m_channels_allocated |= nrfx_ppi_channel_to_mask(channel);
   2d0ea:	4a02      	ldr	r2, [pc, #8]	; (2d0f4 <channel_allocated_set+0x10>)
   2d0ec:	6813      	ldr	r3, [r2, #0]
   2d0ee:	4303      	orrs	r3, r0
   2d0f0:	6013      	str	r3, [r2, #0]
}
   2d0f2:	4770      	bx	lr
   2d0f4:	20002d58 	.word	0x20002d58

0002d0f8 <nrfx_ppi_channel_alloc>:
    group_allocated_clr_all();
}


nrfx_err_t nrfx_ppi_channel_alloc(nrf_ppi_channel_t * p_channel)
{
   2d0f8:	e92d 43f8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
   2d0fc:	4681      	mov	r9, r0
    nrfx_err_t err_code = NRFX_ERROR_NO_MEM;
    uint32_t mask = NRFX_PPI_PROG_APP_CHANNELS_MASK;
   2d0fe:	4b18      	ldr	r3, [pc, #96]	; (2d160 <nrfx_ppi_channel_alloc+0x68>)
   2d100:	681e      	ldr	r6, [r3, #0]
   2d102:	43f6      	mvns	r6, r6
   2d104:	f3c6 0613 	ubfx	r6, r6, #0, #20

    for (uint8_t ch_idx = NRF_PPI_CHANNEL0; mask != 0; ch_idx++)
   2d108:	2400      	movs	r4, #0
    nrfx_err_t err_code = NRFX_ERROR_NO_MEM;
   2d10a:	f8df 805c 	ldr.w	r8, [pc, #92]	; 2d168 <nrfx_ppi_channel_alloc+0x70>
    for (uint8_t ch_idx = NRF_PPI_CHANNEL0; mask != 0; ch_idx++)
   2d10e:	e011      	b.n	2d134 <nrfx_ppi_channel_alloc+0x3c>
    {
        nrf_ppi_channel_t channel = (nrf_ppi_channel_t)ch_idx;
        NRFX_CRITICAL_SECTION_ENTER();
        if ((mask & nrfx_ppi_channel_to_mask(channel)) && (!is_allocated_channel(channel)))
        {
            channel_allocated_set(channel);
   2d110:	4620      	mov	r0, r4
   2d112:	f7ff ffe7 	bl	2d0e4 <channel_allocated_set>
            *p_channel = channel;
   2d116:	f889 4000 	strb.w	r4, [r9]
            err_code   = NRFX_SUCCESS;
   2d11a:	f8df 8048 	ldr.w	r8, [pc, #72]	; 2d164 <nrfx_ppi_channel_alloc+0x6c>
	__asm__ volatile(
   2d11e:	f387 8811 	msr	BASEPRI, r7
   2d122:	f3bf 8f6f 	isb	sy
        }
        NRFX_CRITICAL_SECTION_EXIT();
        if (err_code == NRFX_SUCCESS)
   2d126:	4b0f      	ldr	r3, [pc, #60]	; (2d164 <nrfx_ppi_channel_alloc+0x6c>)
   2d128:	4598      	cmp	r8, r3
   2d12a:	d016      	beq.n	2d15a <nrfx_ppi_channel_alloc+0x62>
        {
            NRFX_LOG_INFO("Allocated channel: %d.", channel);
            break;
        }
        mask &= ~nrfx_ppi_channel_to_mask(channel);
   2d12c:	ea26 0605 	bic.w	r6, r6, r5
    for (uint8_t ch_idx = NRF_PPI_CHANNEL0; mask != 0; ch_idx++)
   2d130:	3401      	adds	r4, #1
   2d132:	b2e4      	uxtb	r4, r4
   2d134:	b18e      	cbz	r6, 2d15a <nrfx_ppi_channel_alloc+0x62>
	__asm__ volatile(
   2d136:	f04f 0340 	mov.w	r3, #64	; 0x40
   2d13a:	f3ef 8711 	mrs	r7, BASEPRI
   2d13e:	f383 8812 	msr	BASEPRI_MAX, r3
   2d142:	f3bf 8f6f 	isb	sy
   2d146:	2501      	movs	r5, #1
   2d148:	40a5      	lsls	r5, r4
        if ((mask & nrfx_ppi_channel_to_mask(channel)) && (!is_allocated_channel(channel)))
   2d14a:	4235      	tst	r5, r6
   2d14c:	d0e7      	beq.n	2d11e <nrfx_ppi_channel_alloc+0x26>
   2d14e:	4620      	mov	r0, r4
   2d150:	f7ff ffbc 	bl	2d0cc <is_allocated_channel>
   2d154:	2800      	cmp	r0, #0
   2d156:	d1e2      	bne.n	2d11e <nrfx_ppi_channel_alloc+0x26>
   2d158:	e7da      	b.n	2d110 <nrfx_ppi_channel_alloc+0x18>
    }

    NRFX_LOG_INFO("Function: %s, error code: %s.", __func__, NRFX_LOG_ERROR_STRING_GET(err_code));
    return err_code;
}
   2d15a:	4640      	mov	r0, r8
   2d15c:	e8bd 83f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
   2d160:	0003f1fc 	.word	0x0003f1fc
   2d164:	0bad0000 	.word	0x0bad0000
   2d168:	0bad0002 	.word	0x0bad0002

0002d16c <cbor_read_array>:
    return err;
}

int
cbor_read_array(struct CborValue *value, const struct cbor_array_t *arr)
{
   2d16c:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
   2d170:	b08b      	sub	sp, #44	; 0x2c
   2d172:	9003      	str	r0, [sp, #12]
   2d174:	460c      	mov	r4, r1
    int off, arrcount;
    size_t len;
    void *lptr;
    char *tp;

    err = cbor_value_enter_container(value, &elem);
   2d176:	a906      	add	r1, sp, #24
   2d178:	f001 fcc0 	bl	2eafc <cbor_value_enter_container>
    if (err) {
   2d17c:	4605      	mov	r5, r0
   2d17e:	2800      	cmp	r0, #0
   2d180:	f040 8104 	bne.w	2d38c <cbor_read_array+0x220>
        return err;
    }
    arrcount = 0;
    tp = arr->arr.strings.store;
   2d184:	f8d4 8008 	ldr.w	r8, [r4, #8]
    arrcount = 0;
   2d188:	2700      	movs	r7, #0
    for (off = 0; off < arr->maxlen; off++) {
   2d18a:	463e      	mov	r6, r7
   2d18c:	e01c      	b.n	2d1c8 <cbor_read_array+0x5c>
        switch (arr->element_type) {
        case CborAttrBooleanType:
            lptr = &arr->arr.booleans.store[off];
   2d18e:	6863      	ldr	r3, [r4, #4]
   2d190:	eb03 0906 	add.w	r9, r3, r6
CBOR_INLINE_API bool cbor_value_is_undefined(const CborValue *value)
{ return value->type == CborUndefinedType; }

/* Booleans */
CBOR_INLINE_API bool cbor_value_is_boolean(const CborValue *value)
{ return value->type == CborBooleanType; }
   2d194:	f89d 3026 	ldrb.w	r3, [sp, #38]	; 0x26
CBOR_INLINE_API CborError cbor_value_get_boolean(const CborValue *value, bool *result)
{
    assert(cbor_value_is_boolean(value));
   2d198:	2bf5      	cmp	r3, #245	; 0xf5
   2d19a:	d137      	bne.n	2d20c <cbor_read_array+0xa0>
    *result = !!value->extra;
   2d19c:	f8bd 3024 	ldrh.w	r3, [sp, #36]	; 0x24
   2d1a0:	3b00      	subs	r3, #0
   2d1a2:	bf18      	it	ne
   2d1a4:	2301      	movne	r3, #1
   2d1a6:	f889 3000 	strb.w	r3, [r9]
            break;
        default:
            err |= CborErrorIllegalType;
            break;
        }
        arrcount++;
   2d1aa:	3701      	adds	r7, #1
        if (arr->element_type != CborAttrStructObjectType) {
   2d1ac:	7823      	ldrb	r3, [r4, #0]
   2d1ae:	2b0b      	cmp	r3, #11
   2d1b0:	f040 80d4 	bne.w	2d35c <cbor_read_array+0x1f0>
{ return value && value->type != CborInvalidType; }
   2d1b4:	f89d 3026 	ldrb.w	r3, [sp, #38]	; 0x26
   2d1b8:	2bff      	cmp	r3, #255	; 0xff
   2d1ba:	f000 80d4 	beq.w	2d366 <cbor_read_array+0x1fa>
   2d1be:	2301      	movs	r3, #1
            err |= cbor_value_advance(&elem);
        }
        if (!cbor_value_is_valid(&elem)) {
   2d1c0:	2b00      	cmp	r3, #0
   2d1c2:	f000 80d2 	beq.w	2d36a <cbor_read_array+0x1fe>
    for (off = 0; off < arr->maxlen; off++) {
   2d1c6:	3601      	adds	r6, #1
   2d1c8:	6963      	ldr	r3, [r4, #20]
   2d1ca:	42b3      	cmp	r3, r6
   2d1cc:	f340 80cd 	ble.w	2d36a <cbor_read_array+0x1fe>
        switch (arr->element_type) {
   2d1d0:	7823      	ldrb	r3, [r4, #0]
   2d1d2:	3b01      	subs	r3, #1
   2d1d4:	2b0a      	cmp	r3, #10
   2d1d6:	f200 80be 	bhi.w	2d356 <cbor_read_array+0x1ea>
   2d1da:	a201      	add	r2, pc, #4	; (adr r2, 2d1e0 <cbor_read_array+0x74>)
   2d1dc:	f852 f023 	ldr.w	pc, [r2, r3, lsl #2]
   2d1e0:	0002d229 	.word	0x0002d229
   2d1e4:	0002d29b 	.word	0x0002d29b
   2d1e8:	0002d357 	.word	0x0002d357
   2d1ec:	0002d2fb 	.word	0x0002d2fb
   2d1f0:	0002d18f 	.word	0x0002d18f
   2d1f4:	0002d357 	.word	0x0002d357
   2d1f8:	0002d357 	.word	0x0002d357
   2d1fc:	0002d357 	.word	0x0002d357
   2d200:	0002d357 	.word	0x0002d357
   2d204:	0002d357 	.word	0x0002d357
   2d208:	0002d347 	.word	0x0002d347
    assert(cbor_value_is_boolean(value));
   2d20c:	f8df a188 	ldr.w	sl, [pc, #392]	; 2d398 <cbor_read_array+0x22c>
   2d210:	f240 1233 	movw	r2, #307	; 0x133
   2d214:	4651      	mov	r1, sl
   2d216:	485f      	ldr	r0, [pc, #380]	; (2d394 <cbor_read_array+0x228>)
   2d218:	f006 f8c7 	bl	333aa <printk>
   2d21c:	f240 1133 	movw	r1, #307	; 0x133
   2d220:	4650      	mov	r0, sl
   2d222:	f006 fc5b 	bl	33adc <assert_post_action>
   2d226:	e7b9      	b.n	2d19c <cbor_read_array+0x30>
            lptr = &arr->arr.integers.store[off];
   2d228:	f8d4 9004 	ldr.w	r9, [r4, #4]
   2d22c:	ea4f 0bc6 	mov.w	fp, r6, lsl #3
   2d230:	eb09 0ac6 	add.w	sl, r9, r6, lsl #3
    return CborNoError;
}

/* Integers */
CBOR_INLINE_API bool cbor_value_is_integer(const CborValue *value)
{ return value->type == CborIntegerType; }
   2d234:	f89d 3026 	ldrb.w	r3, [sp, #38]	; 0x26
    return CborNoError;
}

CBOR_INLINE_API CborError cbor_value_get_int64(const CborValue *value, int64_t *result)
{
    assert(cbor_value_is_integer(value));
   2d238:	b9eb      	cbnz	r3, 2d276 <cbor_read_array+0x10a>
    return value->flags & CborIteratorFlag_IntegerValueTooLarge ?
   2d23a:	f89d 3027 	ldrb.w	r3, [sp, #39]	; 0x27
                _cbor_value_decode_int64_internal(value) : value->extra;
   2d23e:	f013 0f01 	tst.w	r3, #1
   2d242:	d124      	bne.n	2d28e <cbor_read_array+0x122>
   2d244:	f8bd 2024 	ldrh.w	r2, [sp, #36]	; 0x24
   2d248:	2300      	movs	r3, #0
   2d24a:	e9cd 2300 	strd	r2, r3, [sp]
    *result = (int64_t) _cbor_value_extract_int64_helper(value);
   2d24e:	e9dd 0100 	ldrd	r0, r1, [sp]
   2d252:	f849 000b 	str.w	r0, [r9, fp]
   2d256:	f8ca 1004 	str.w	r1, [sl, #4]
    if (value->flags & CborIteratorFlag_NegativeInteger)
   2d25a:	f89d 1027 	ldrb.w	r1, [sp, #39]	; 0x27
   2d25e:	f011 0f02 	tst.w	r1, #2
   2d262:	d0a2      	beq.n	2d1aa <cbor_read_array+0x3e>
        *result = -*result - 1;
   2d264:	e9dd 0100 	ldrd	r0, r1, [sp]
   2d268:	43c2      	mvns	r2, r0
   2d26a:	43cb      	mvns	r3, r1
   2d26c:	f849 200b 	str.w	r2, [r9, fp]
   2d270:	f8ca 3004 	str.w	r3, [sl, #4]
            break;
   2d274:	e799      	b.n	2d1aa <cbor_read_array+0x3e>
    assert(cbor_value_is_integer(value));
   2d276:	f44f 72ad 	mov.w	r2, #346	; 0x15a
   2d27a:	4947      	ldr	r1, [pc, #284]	; (2d398 <cbor_read_array+0x22c>)
   2d27c:	4845      	ldr	r0, [pc, #276]	; (2d394 <cbor_read_array+0x228>)
   2d27e:	f006 f894 	bl	333aa <printk>
   2d282:	f44f 71ad 	mov.w	r1, #346	; 0x15a
   2d286:	4844      	ldr	r0, [pc, #272]	; (2d398 <cbor_read_array+0x22c>)
   2d288:	f006 fc28 	bl	33adc <assert_post_action>
   2d28c:	e7d5      	b.n	2d23a <cbor_read_array+0xce>
                _cbor_value_decode_int64_internal(value) : value->extra;
   2d28e:	a806      	add	r0, sp, #24
   2d290:	f001 fbde 	bl	2ea50 <_cbor_value_decode_int64_internal>
   2d294:	9000      	str	r0, [sp, #0]
   2d296:	9101      	str	r1, [sp, #4]
   2d298:	e7d9      	b.n	2d24e <cbor_read_array+0xe2>
            lptr = &arr->arr.uintegers.store[off];
   2d29a:	6863      	ldr	r3, [r4, #4]
   2d29c:	eb03 09c6 	add.w	r9, r3, r6, lsl #3
{ return value->type == CborIntegerType; }
   2d2a0:	f89d 3026 	ldrb.w	r3, [sp, #38]	; 0x26
{ return cbor_value_is_integer(value) && (value->flags & CborIteratorFlag_NegativeInteger) == 0; }
   2d2a4:	b933      	cbnz	r3, 2d2b4 <cbor_read_array+0x148>
   2d2a6:	f89d 3027 	ldrb.w	r3, [sp, #39]	; 0x27
   2d2aa:	f013 0f02 	tst.w	r3, #2
   2d2ae:	d00e      	beq.n	2d2ce <cbor_read_array+0x162>
   2d2b0:	2300      	movs	r3, #0
   2d2b2:	e000      	b.n	2d2b6 <cbor_read_array+0x14a>
   2d2b4:	2300      	movs	r3, #0
    assert(cbor_value_is_unsigned_integer(value));
   2d2b6:	b163      	cbz	r3, 2d2d2 <cbor_read_array+0x166>
    return value->flags & CborIteratorFlag_IntegerValueTooLarge ?
   2d2b8:	f89d 3027 	ldrb.w	r3, [sp, #39]	; 0x27
                _cbor_value_decode_int64_internal(value) : value->extra;
   2d2bc:	f013 0f01 	tst.w	r3, #1
   2d2c0:	d115      	bne.n	2d2ee <cbor_read_array+0x182>
   2d2c2:	f8bd 2024 	ldrh.w	r2, [sp, #36]	; 0x24
   2d2c6:	2300      	movs	r3, #0
    *result = _cbor_value_extract_int64_helper(value);
   2d2c8:	e9c9 2300 	strd	r2, r3, [r9]
            break;
   2d2cc:	e76d      	b.n	2d1aa <cbor_read_array+0x3e>
{ return cbor_value_is_integer(value) && (value->flags & CborIteratorFlag_NegativeInteger) == 0; }
   2d2ce:	2301      	movs	r3, #1
   2d2d0:	e7f1      	b.n	2d2b6 <cbor_read_array+0x14a>
    assert(cbor_value_is_unsigned_integer(value));
   2d2d2:	f8df a0c4 	ldr.w	sl, [pc, #196]	; 2d398 <cbor_read_array+0x22c>
   2d2d6:	f240 1253 	movw	r2, #339	; 0x153
   2d2da:	4651      	mov	r1, sl
   2d2dc:	482d      	ldr	r0, [pc, #180]	; (2d394 <cbor_read_array+0x228>)
   2d2de:	f006 f864 	bl	333aa <printk>
   2d2e2:	f240 1153 	movw	r1, #339	; 0x153
   2d2e6:	4650      	mov	r0, sl
   2d2e8:	f006 fbf8 	bl	33adc <assert_post_action>
   2d2ec:	e7e4      	b.n	2d2b8 <cbor_read_array+0x14c>
                _cbor_value_decode_int64_internal(value) : value->extra;
   2d2ee:	a806      	add	r0, sp, #24
   2d2f0:	f001 fbae 	bl	2ea50 <_cbor_value_decode_int64_internal>
   2d2f4:	4602      	mov	r2, r0
   2d2f6:	460b      	mov	r3, r1
   2d2f8:	e7e6      	b.n	2d2c8 <cbor_read_array+0x15c>
            len = arr->arr.strings.storelen - (tp - arr->arr.strings.store);
   2d2fa:	68e3      	ldr	r3, [r4, #12]
   2d2fc:	68a2      	ldr	r2, [r4, #8]
   2d2fe:	eba8 0202 	sub.w	r2, r8, r2
   2d302:	1a9b      	subs	r3, r3, r2
   2d304:	9305      	str	r3, [sp, #20]

/* Strings */
CBOR_INLINE_API bool cbor_value_is_byte_string(const CborValue *value)
{ return value->type == CborByteStringType; }
CBOR_INLINE_API bool cbor_value_is_text_string(const CborValue *value)
{ return value->type == CborTextStringType; }
   2d306:	f89d 3026 	ldrb.w	r3, [sp, #38]	; 0x26
CBOR_API CborError cbor_value_calculate_string_length(const CborValue *value, size_t *length);

CBOR_INLINE_API CborError cbor_value_copy_text_string(const CborValue *value, char *buffer,
                                                      size_t *buflen, CborValue *next)
{
    assert(cbor_value_is_text_string(value));
   2d30a:	2b60      	cmp	r3, #96	; 0x60
   2d30c:	d10d      	bne.n	2d32a <cbor_read_array+0x1be>
    return _cbor_value_copy_string(value, buffer, buflen, next);
   2d30e:	2300      	movs	r3, #0
   2d310:	aa05      	add	r2, sp, #20
   2d312:	4641      	mov	r1, r8
   2d314:	a806      	add	r0, sp, #24
   2d316:	f001 fce1 	bl	2ecdc <_cbor_value_copy_string>
            err |= cbor_value_copy_text_string(&elem, tp, &len, NULL);
   2d31a:	4305      	orrs	r5, r0
            arr->arr.strings.ptrs[off] = tp;
   2d31c:	6863      	ldr	r3, [r4, #4]
   2d31e:	f843 8026 	str.w	r8, [r3, r6, lsl #2]
            tp += len + 1;
   2d322:	9b05      	ldr	r3, [sp, #20]
   2d324:	3301      	adds	r3, #1
   2d326:	4498      	add	r8, r3
            break;
   2d328:	e73f      	b.n	2d1aa <cbor_read_array+0x3e>
    assert(cbor_value_is_text_string(value));
   2d32a:	f8df 906c 	ldr.w	r9, [pc, #108]	; 2d398 <cbor_read_array+0x22c>
   2d32e:	f240 1297 	movw	r2, #407	; 0x197
   2d332:	4649      	mov	r1, r9
   2d334:	4817      	ldr	r0, [pc, #92]	; (2d394 <cbor_read_array+0x228>)
   2d336:	f006 f838 	bl	333aa <printk>
   2d33a:	f240 1197 	movw	r1, #407	; 0x197
   2d33e:	4648      	mov	r0, r9
   2d340:	f006 fbcc 	bl	33adc <assert_post_action>
   2d344:	e7e3      	b.n	2d30e <cbor_read_array+0x1a2>
            err |= cbor_internal_read_object(&elem, arr->arr.objects.subtype,
   2d346:	4633      	mov	r3, r6
   2d348:	4622      	mov	r2, r4
   2d34a:	6861      	ldr	r1, [r4, #4]
   2d34c:	a806      	add	r0, sp, #24
   2d34e:	f000 f825 	bl	2d39c <cbor_internal_read_object>
   2d352:	4305      	orrs	r5, r0
            break;
   2d354:	e729      	b.n	2d1aa <cbor_read_array+0x3e>
            err |= CborErrorIllegalType;
   2d356:	f445 7582 	orr.w	r5, r5, #260	; 0x104
            break;
   2d35a:	e726      	b.n	2d1aa <cbor_read_array+0x3e>
            err |= cbor_value_advance(&elem);
   2d35c:	a806      	add	r0, sp, #24
   2d35e:	f001 fcd9 	bl	2ed14 <cbor_value_advance>
   2d362:	4305      	orrs	r5, r0
   2d364:	e726      	b.n	2d1b4 <cbor_read_array+0x48>
{ return value && value->type != CborInvalidType; }
   2d366:	2300      	movs	r3, #0
   2d368:	e72a      	b.n	2d1c0 <cbor_read_array+0x54>
            break;
        }
    }
    if (arr->count) {
   2d36a:	6923      	ldr	r3, [r4, #16]
   2d36c:	b133      	cbz	r3, 2d37c <cbor_read_array+0x210>
        *arr->count = arrcount;
   2d36e:	601f      	str	r7, [r3, #0]
   2d370:	e004      	b.n	2d37c <cbor_read_array+0x210>
    }
    while (!cbor_value_at_end(&elem)) {
        err |= CborErrorDataTooLarge;
   2d372:	f445 6580 	orr.w	r5, r5, #1024	; 0x400
        cbor_value_advance(&elem);
   2d376:	a806      	add	r0, sp, #24
   2d378:	f001 fccc 	bl	2ed14 <cbor_value_advance>
{ return it->remaining == 0; }
   2d37c:	9b08      	ldr	r3, [sp, #32]
    while (!cbor_value_at_end(&elem)) {
   2d37e:	2b00      	cmp	r3, #0
   2d380:	d1f7      	bne.n	2d372 <cbor_read_array+0x206>
    }
    err |= cbor_value_leave_container(value, &elem);
   2d382:	a906      	add	r1, sp, #24
   2d384:	9803      	ldr	r0, [sp, #12]
   2d386:	f001 fc73 	bl	2ec70 <cbor_value_leave_container>
   2d38a:	4328      	orrs	r0, r5
    return err;
}
   2d38c:	b00b      	add	sp, #44	; 0x2c
   2d38e:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
   2d392:	bf00      	nop
   2d394:	0003bdac 	.word	0x0003bdac
   2d398:	0003f4a4 	.word	0x0003f4a4

0002d39c <cbor_internal_read_object>:
{
   2d39c:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
   2d3a0:	f5ad 7d0b 	sub.w	sp, sp, #556	; 0x22c
   2d3a4:	9001      	str	r0, [sp, #4]
   2d3a6:	9100      	str	r1, [sp, #0]
   2d3a8:	4692      	mov	sl, r2
   2d3aa:	469b      	mov	fp, r3
    size_t len = 0;
   2d3ac:	2300      	movs	r3, #0
   2d3ae:	9304      	str	r3, [sp, #16]
    for (cursor = attrs; cursor->attribute != NULL; cursor++) {
   2d3b0:	460c      	mov	r4, r1
   2d3b2:	e005      	b.n	2d3c0 <cbor_internal_read_object+0x24>
                    memcpy(lptr, &cursor->dflt.integer,
   2d3b4:	2208      	movs	r2, #8
   2d3b6:	f104 0120 	add.w	r1, r4, #32
   2d3ba:	f008 fb9f 	bl	35afc <memcpy>
    for (cursor = attrs; cursor->attribute != NULL; cursor++) {
   2d3be:	3430      	adds	r4, #48	; 0x30
   2d3c0:	6827      	ldr	r7, [r4, #0]
   2d3c2:	b1ef      	cbz	r7, 2d400 <cbor_internal_read_object+0x64>
        if (!cursor->nodefault) {
   2d3c4:	f894 302c 	ldrb.w	r3, [r4, #44]	; 0x2c
   2d3c8:	2b00      	cmp	r3, #0
   2d3ca:	d1f8      	bne.n	2d3be <cbor_internal_read_object+0x22>
            lptr = cbor_target_address(cursor, parent, offset);
   2d3cc:	465a      	mov	r2, fp
   2d3ce:	4651      	mov	r1, sl
   2d3d0:	4620      	mov	r0, r4
   2d3d2:	f00c ffc4 	bl	3a35e <cbor_target_address>
            if (lptr != NULL) {
   2d3d6:	2800      	cmp	r0, #0
   2d3d8:	d0f1      	beq.n	2d3be <cbor_internal_read_object+0x22>
                switch (cursor->type) {
   2d3da:	7923      	ldrb	r3, [r4, #4]
   2d3dc:	2b02      	cmp	r3, #2
   2d3de:	d0e9      	beq.n	2d3b4 <cbor_internal_read_object+0x18>
   2d3e0:	2b05      	cmp	r3, #5
   2d3e2:	d007      	beq.n	2d3f4 <cbor_internal_read_object+0x58>
   2d3e4:	2b01      	cmp	r3, #1
   2d3e6:	d1ea      	bne.n	2d3be <cbor_internal_read_object+0x22>
                    memcpy(lptr, &cursor->dflt.integer, sizeof(long long int));
   2d3e8:	2208      	movs	r2, #8
   2d3ea:	f104 0120 	add.w	r1, r4, #32
   2d3ee:	f008 fb85 	bl	35afc <memcpy>
                    break;
   2d3f2:	e7e4      	b.n	2d3be <cbor_internal_read_object+0x22>
                    memcpy(lptr, &cursor->dflt.boolean, sizeof(bool));
   2d3f4:	2201      	movs	r2, #1
   2d3f6:	f104 0120 	add.w	r1, r4, #32
   2d3fa:	f008 fb7f 	bl	35afc <memcpy>
                    break;
   2d3fe:	e7de      	b.n	2d3be <cbor_internal_read_object+0x22>

/* Maps and arrays */
CBOR_INLINE_API bool cbor_value_is_array(const CborValue *value)
{ return value->type == CborArrayType; }
CBOR_INLINE_API bool cbor_value_is_map(const CborValue *value)
{ return value->type == CborMapType; }
   2d400:	9801      	ldr	r0, [sp, #4]
   2d402:	7b83      	ldrb	r3, [r0, #14]
    if (cbor_value_is_map(root_value)) {
   2d404:	2ba0      	cmp	r3, #160	; 0xa0
   2d406:	d005      	beq.n	2d414 <cbor_internal_read_object+0x78>
        return err;
   2d408:	f44f 7082 	mov.w	r0, #260	; 0x104
}
   2d40c:	f50d 7d0b 	add.w	sp, sp, #556	; 0x22c
   2d410:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
        err |= cbor_value_enter_container(root_value, &cur_value);
   2d414:	a905      	add	r1, sp, #20
   2d416:	f001 fb71 	bl	2eafc <cbor_value_enter_container>
   2d41a:	4680      	mov	r8, r0
    while (cbor_value_is_valid(&cur_value) && !err) {
   2d41c:	e087      	b.n	2d52e <cbor_internal_read_object+0x192>
            if (cbor_value_calculate_string_length(&cur_value, &len) == 0) {
   2d41e:	a904      	add	r1, sp, #16
   2d420:	a805      	add	r0, sp, #20
   2d422:	f00d fe3e 	bl	3b0a2 <cbor_value_calculate_string_length>
   2d426:	b978      	cbnz	r0, 2d448 <cbor_internal_read_object+0xac>
                if (len > CBORATTR_MAX_SIZE) {
   2d428:	9b04      	ldr	r3, [sp, #16]
   2d42a:	f5b3 7f00 	cmp.w	r3, #512	; 0x200
   2d42e:	d81f      	bhi.n	2d470 <cbor_internal_read_object+0xd4>
{ return value->type == CborTextStringType; }
   2d430:	f89d 3022 	ldrb.w	r3, [sp, #34]	; 0x22
    assert(cbor_value_is_text_string(value));
   2d434:	2b60      	cmp	r3, #96	; 0x60
   2d436:	d11e      	bne.n	2d476 <cbor_internal_read_object+0xda>
    return _cbor_value_copy_string(value, buffer, buflen, next);
   2d438:	2300      	movs	r3, #0
   2d43a:	aa04      	add	r2, sp, #16
   2d43c:	a909      	add	r1, sp, #36	; 0x24
   2d43e:	a805      	add	r0, sp, #20
   2d440:	f001 fc4c 	bl	2ecdc <_cbor_value_copy_string>
                err |= cbor_value_copy_text_string(&cur_value, attrbuf, &len,
   2d444:	ea48 0800 	orr.w	r8, r8, r0
            err |= cbor_value_advance(&cur_value);
   2d448:	a805      	add	r0, sp, #20
   2d44a:	f001 fc63 	bl	2ed14 <cbor_value_advance>
   2d44e:	ea48 0800 	orr.w	r8, r8, r0
{ return value && value->type != CborInvalidType; }
   2d452:	f89d 6022 	ldrb.w	r6, [sp, #34]	; 0x22
   2d456:	2eff      	cmp	r6, #255	; 0xff
   2d458:	d01a      	beq.n	2d490 <cbor_internal_read_object+0xf4>
   2d45a:	2301      	movs	r3, #1
            if (cbor_value_is_valid(&cur_value)) {
   2d45c:	2b00      	cmp	r3, #0
   2d45e:	d177      	bne.n	2d550 <cbor_internal_read_object+0x1b4>
                err |= CborErrorIllegalType;
   2d460:	f448 7882 	orr.w	r8, r8, #260	; 0x104
    if (!err) {
   2d464:	f1b8 0f00 	cmp.w	r8, #0
   2d468:	f000 8129 	beq.w	2d6be <cbor_internal_read_object+0x322>
    return err;
   2d46c:	4640      	mov	r0, r8
   2d46e:	e7cd      	b.n	2d40c <cbor_internal_read_object+0x70>
                    err |= CborErrorDataTooLarge;
   2d470:	f448 6880 	orr.w	r8, r8, #1024	; 0x400
                    break;
   2d474:	e7f6      	b.n	2d464 <cbor_internal_read_object+0xc8>
    assert(cbor_value_is_text_string(value));
   2d476:	4c95      	ldr	r4, [pc, #596]	; (2d6cc <cbor_internal_read_object+0x330>)
   2d478:	f240 1297 	movw	r2, #407	; 0x197
   2d47c:	4621      	mov	r1, r4
   2d47e:	4894      	ldr	r0, [pc, #592]	; (2d6d0 <cbor_internal_read_object+0x334>)
   2d480:	f005 ff93 	bl	333aa <printk>
   2d484:	f240 1197 	movw	r1, #407	; 0x197
   2d488:	4620      	mov	r0, r4
   2d48a:	f006 fb27 	bl	33adc <assert_post_action>
   2d48e:	e7d3      	b.n	2d438 <cbor_internal_read_object+0x9c>
{ return value && value->type != CborInvalidType; }
   2d490:	2300      	movs	r3, #0
   2d492:	e7e3      	b.n	2d45c <cbor_internal_read_object+0xc0>
                } else if (strlen(cursor->attribute) == len &&
   2d494:	4628      	mov	r0, r5
   2d496:	f008 fae3 	bl	35a60 <strlen>
   2d49a:	9a04      	ldr	r2, [sp, #16]
   2d49c:	4290      	cmp	r0, r2
   2d49e:	d011      	beq.n	2d4c4 <cbor_internal_read_object+0x128>
        for (cursor = attrs; cursor->attribute != NULL; cursor++) {
   2d4a0:	3430      	adds	r4, #48	; 0x30
   2d4a2:	6825      	ldr	r5, [r4, #0]
   2d4a4:	b1a5      	cbz	r5, 2d4d0 <cbor_internal_read_object+0x134>
            if (valid_attr_type(type, cursor->type)) {
   2d4a6:	7921      	ldrb	r1, [r4, #4]
   2d4a8:	4630      	mov	r0, r6
   2d4aa:	f00c ff22 	bl	3a2f2 <valid_attr_type>
   2d4ae:	2800      	cmp	r0, #0
   2d4b0:	d0f6      	beq.n	2d4a0 <cbor_internal_read_object+0x104>
                if (cursor->attribute == CBORATTR_ATTR_UNNAMED &&
   2d4b2:	f1b5 3fff 	cmp.w	r5, #4294967295
   2d4b6:	d1ed      	bne.n	2d494 <cbor_internal_read_object+0xf8>
                    attrbuf[0] == '\0') {
   2d4b8:	f89d 3024 	ldrb.w	r3, [sp, #36]	; 0x24
                if (cursor->attribute == CBORATTR_ATTR_UNNAMED &&
   2d4bc:	2b00      	cmp	r3, #0
   2d4be:	d1e9      	bne.n	2d494 <cbor_internal_read_object+0xf8>
                    best_match = cursor;
   2d4c0:	46a1      	mov	r9, r4
   2d4c2:	e7ed      	b.n	2d4a0 <cbor_internal_read_object+0x104>
                    !memcmp(cursor->attribute, attrbuf, len)) {
   2d4c4:	a909      	add	r1, sp, #36	; 0x24
   2d4c6:	6820      	ldr	r0, [r4, #0]
   2d4c8:	f008 fb01 	bl	35ace <memcmp>
                } else if (strlen(cursor->attribute) == len &&
   2d4cc:	2800      	cmp	r0, #0
   2d4ce:	d1e7      	bne.n	2d4a0 <cbor_internal_read_object+0x104>
        if (!cursor->attribute && best_match) {
   2d4d0:	6823      	ldr	r3, [r4, #0]
   2d4d2:	b1d3      	cbz	r3, 2d50a <cbor_internal_read_object+0x16e>
        if (cursor->attribute != NULL) {
   2d4d4:	6823      	ldr	r3, [r4, #0]
   2d4d6:	b33b      	cbz	r3, 2d528 <cbor_internal_read_object+0x18c>
            lptr = cbor_target_address(cursor, parent, offset);
   2d4d8:	465a      	mov	r2, fp
   2d4da:	4651      	mov	r1, sl
   2d4dc:	4620      	mov	r0, r4
   2d4de:	f00c ff3e 	bl	3a35e <cbor_target_address>
   2d4e2:	4605      	mov	r5, r0
            switch (cursor->type) {
   2d4e4:	7923      	ldrb	r3, [r4, #4]
   2d4e6:	3b01      	subs	r3, #1
   2d4e8:	2b0b      	cmp	r3, #11
   2d4ea:	f200 80e3 	bhi.w	2d6b4 <cbor_internal_read_object+0x318>
   2d4ee:	e8df f013 	tbh	[pc, r3, lsl #1]
   2d4f2:	003f      	.short	0x003f
   2d4f4:	00950069 	.word	0x00950069
   2d4f8:	001100b4 	.word	0x001100b4
   2d4fc:	00e100e1 	.word	0x00e100e1
   2d500:	00d000e1 	.word	0x00d000e1
   2d504:	00e100d8 	.word	0x00e100d8
   2d508:	001b      	.short	0x001b
        if (!cursor->attribute && best_match) {
   2d50a:	f1b9 0f00 	cmp.w	r9, #0
   2d50e:	d0e1      	beq.n	2d4d4 <cbor_internal_read_object+0x138>
            cursor = best_match;
   2d510:	464c      	mov	r4, r9
   2d512:	e7df      	b.n	2d4d4 <cbor_internal_read_object+0x138>
{ return value->type == CborBooleanType; }
   2d514:	f89d 3022 	ldrb.w	r3, [sp, #34]	; 0x22
    assert(cbor_value_is_boolean(value));
   2d518:	2bf5      	cmp	r3, #245	; 0xf5
   2d51a:	d11c      	bne.n	2d556 <cbor_internal_read_object+0x1ba>
    *result = !!value->extra;
   2d51c:	f8bd 3020 	ldrh.w	r3, [sp, #32]
   2d520:	3b00      	subs	r3, #0
   2d522:	bf18      	it	ne
   2d524:	2301      	movne	r3, #1
   2d526:	702b      	strb	r3, [r5, #0]
        cbor_value_advance(&cur_value);
   2d528:	a805      	add	r0, sp, #20
   2d52a:	f001 fbf3 	bl	2ed14 <cbor_value_advance>
{ return value && value->type != CborInvalidType; }
   2d52e:	f89d 6022 	ldrb.w	r6, [sp, #34]	; 0x22
   2d532:	2eff      	cmp	r6, #255	; 0xff
   2d534:	f000 80c1 	beq.w	2d6ba <cbor_internal_read_object+0x31e>
   2d538:	2301      	movs	r3, #1
    while (cbor_value_is_valid(&cur_value) && !err) {
   2d53a:	2b00      	cmp	r3, #0
   2d53c:	d092      	beq.n	2d464 <cbor_internal_read_object+0xc8>
   2d53e:	f1b8 0f00 	cmp.w	r8, #0
   2d542:	d18f      	bne.n	2d464 <cbor_internal_read_object+0xc8>
        if (cbor_value_is_text_string(&cur_value)) {
   2d544:	2e60      	cmp	r6, #96	; 0x60
   2d546:	f43f af6a 	beq.w	2d41e <cbor_internal_read_object+0x82>
            attrbuf[0] = '\0';
   2d54a:	2300      	movs	r3, #0
   2d54c:	f88d 3024 	strb.w	r3, [sp, #36]	; 0x24
        best_match = NULL;
   2d550:	46b9      	mov	r9, r7
        for (cursor = attrs; cursor->attribute != NULL; cursor++) {
   2d552:	9c00      	ldr	r4, [sp, #0]
   2d554:	e7a5      	b.n	2d4a2 <cbor_internal_read_object+0x106>
    assert(cbor_value_is_boolean(value));
   2d556:	4c5d      	ldr	r4, [pc, #372]	; (2d6cc <cbor_internal_read_object+0x330>)
   2d558:	f240 1233 	movw	r2, #307	; 0x133
   2d55c:	4621      	mov	r1, r4
   2d55e:	485c      	ldr	r0, [pc, #368]	; (2d6d0 <cbor_internal_read_object+0x334>)
   2d560:	f005 ff23 	bl	333aa <printk>
   2d564:	f240 1133 	movw	r1, #307	; 0x133
   2d568:	4620      	mov	r0, r4
   2d56a:	f006 fab7 	bl	33adc <assert_post_action>
   2d56e:	e7d5      	b.n	2d51c <cbor_internal_read_object+0x180>
{ return value->type == CborIntegerType; }
   2d570:	f89d 3022 	ldrb.w	r3, [sp, #34]	; 0x22
    assert(cbor_value_is_integer(value));
   2d574:	b99b      	cbnz	r3, 2d59e <cbor_internal_read_object+0x202>
    return value->flags & CborIteratorFlag_IntegerValueTooLarge ?
   2d576:	f89d 3023 	ldrb.w	r3, [sp, #35]	; 0x23
                _cbor_value_decode_int64_internal(value) : value->extra;
   2d57a:	f013 0f01 	tst.w	r3, #1
   2d57e:	d11b      	bne.n	2d5b8 <cbor_internal_read_object+0x21c>
   2d580:	f8bd 3020 	ldrh.w	r3, [sp, #32]
   2d584:	2400      	movs	r4, #0
    *result = (int64_t) _cbor_value_extract_int64_helper(value);
   2d586:	602b      	str	r3, [r5, #0]
   2d588:	606c      	str	r4, [r5, #4]
    if (value->flags & CborIteratorFlag_NegativeInteger)
   2d58a:	f89d 1023 	ldrb.w	r1, [sp, #35]	; 0x23
   2d58e:	f011 0f02 	tst.w	r1, #2
   2d592:	d0c9      	beq.n	2d528 <cbor_internal_read_object+0x18c>
        *result = -*result - 1;
   2d594:	43da      	mvns	r2, r3
   2d596:	43e3      	mvns	r3, r4
   2d598:	602a      	str	r2, [r5, #0]
   2d59a:	606b      	str	r3, [r5, #4]
                break;
   2d59c:	e7c4      	b.n	2d528 <cbor_internal_read_object+0x18c>
    assert(cbor_value_is_integer(value));
   2d59e:	4c4b      	ldr	r4, [pc, #300]	; (2d6cc <cbor_internal_read_object+0x330>)
   2d5a0:	f44f 72ad 	mov.w	r2, #346	; 0x15a
   2d5a4:	4621      	mov	r1, r4
   2d5a6:	484a      	ldr	r0, [pc, #296]	; (2d6d0 <cbor_internal_read_object+0x334>)
   2d5a8:	f005 feff 	bl	333aa <printk>
   2d5ac:	f44f 71ad 	mov.w	r1, #346	; 0x15a
   2d5b0:	4620      	mov	r0, r4
   2d5b2:	f006 fa93 	bl	33adc <assert_post_action>
   2d5b6:	e7de      	b.n	2d576 <cbor_internal_read_object+0x1da>
                _cbor_value_decode_int64_internal(value) : value->extra;
   2d5b8:	a805      	add	r0, sp, #20
   2d5ba:	f001 fa49 	bl	2ea50 <_cbor_value_decode_int64_internal>
   2d5be:	4603      	mov	r3, r0
   2d5c0:	460c      	mov	r4, r1
   2d5c2:	e7e0      	b.n	2d586 <cbor_internal_read_object+0x1ea>
{ return value->type == CborIntegerType; }
   2d5c4:	f89d 3022 	ldrb.w	r3, [sp, #34]	; 0x22
{ return cbor_value_is_integer(value) && (value->flags & CborIteratorFlag_NegativeInteger) == 0; }
   2d5c8:	b933      	cbnz	r3, 2d5d8 <cbor_internal_read_object+0x23c>
   2d5ca:	f89d 3023 	ldrb.w	r3, [sp, #35]	; 0x23
   2d5ce:	f013 0f02 	tst.w	r3, #2
   2d5d2:	d00e      	beq.n	2d5f2 <cbor_internal_read_object+0x256>
   2d5d4:	2300      	movs	r3, #0
   2d5d6:	e000      	b.n	2d5da <cbor_internal_read_object+0x23e>
   2d5d8:	2300      	movs	r3, #0
    assert(cbor_value_is_unsigned_integer(value));
   2d5da:	b163      	cbz	r3, 2d5f6 <cbor_internal_read_object+0x25a>
    return value->flags & CborIteratorFlag_IntegerValueTooLarge ?
   2d5dc:	f89d 3023 	ldrb.w	r3, [sp, #35]	; 0x23
                _cbor_value_decode_int64_internal(value) : value->extra;
   2d5e0:	f013 0f01 	tst.w	r3, #1
   2d5e4:	d114      	bne.n	2d610 <cbor_internal_read_object+0x274>
   2d5e6:	f8bd 2020 	ldrh.w	r2, [sp, #32]
   2d5ea:	2300      	movs	r3, #0
    *result = _cbor_value_extract_int64_helper(value);
   2d5ec:	e9c5 2300 	strd	r2, r3, [r5]
                break;
   2d5f0:	e79a      	b.n	2d528 <cbor_internal_read_object+0x18c>
{ return cbor_value_is_integer(value) && (value->flags & CborIteratorFlag_NegativeInteger) == 0; }
   2d5f2:	2301      	movs	r3, #1
   2d5f4:	e7f1      	b.n	2d5da <cbor_internal_read_object+0x23e>
    assert(cbor_value_is_unsigned_integer(value));
   2d5f6:	4c35      	ldr	r4, [pc, #212]	; (2d6cc <cbor_internal_read_object+0x330>)
   2d5f8:	f240 1253 	movw	r2, #339	; 0x153
   2d5fc:	4621      	mov	r1, r4
   2d5fe:	4834      	ldr	r0, [pc, #208]	; (2d6d0 <cbor_internal_read_object+0x334>)
   2d600:	f005 fed3 	bl	333aa <printk>
   2d604:	f240 1153 	movw	r1, #339	; 0x153
   2d608:	4620      	mov	r0, r4
   2d60a:	f006 fa67 	bl	33adc <assert_post_action>
   2d60e:	e7e5      	b.n	2d5dc <cbor_internal_read_object+0x240>
                _cbor_value_decode_int64_internal(value) : value->extra;
   2d610:	a805      	add	r0, sp, #20
   2d612:	f001 fa1d 	bl	2ea50 <_cbor_value_decode_int64_internal>
   2d616:	4602      	mov	r2, r0
   2d618:	460b      	mov	r3, r1
   2d61a:	e7e7      	b.n	2d5ec <cbor_internal_read_object+0x250>
                size_t len = cursor->len;
   2d61c:	6aa3      	ldr	r3, [r4, #40]	; 0x28
   2d61e:	9303      	str	r3, [sp, #12]
{ return value->type == CborByteStringType; }
   2d620:	f89d 3022 	ldrb.w	r3, [sp, #34]	; 0x22
    assert(cbor_value_is_byte_string(value));
   2d624:	2b40      	cmp	r3, #64	; 0x40
   2d626:	d10b      	bne.n	2d640 <cbor_internal_read_object+0x2a4>
    return _cbor_value_copy_string(value, buffer, buflen, next);
   2d628:	2300      	movs	r3, #0
   2d62a:	aa03      	add	r2, sp, #12
   2d62c:	4629      	mov	r1, r5
   2d62e:	a805      	add	r0, sp, #20
   2d630:	f001 fb54 	bl	2ecdc <_cbor_value_copy_string>
                err |= cbor_value_copy_byte_string(&cur_value, lptr,
   2d634:	ea48 0800 	orr.w	r8, r8, r0
                *cursor->addr.bytestring.len = len;
   2d638:	68e3      	ldr	r3, [r4, #12]
   2d63a:	9a03      	ldr	r2, [sp, #12]
   2d63c:	601a      	str	r2, [r3, #0]
                break;
   2d63e:	e773      	b.n	2d528 <cbor_internal_read_object+0x18c>
    assert(cbor_value_is_byte_string(value));
   2d640:	4e22      	ldr	r6, [pc, #136]	; (2d6cc <cbor_internal_read_object+0x330>)
   2d642:	f240 129d 	movw	r2, #413	; 0x19d
   2d646:	4631      	mov	r1, r6
   2d648:	4821      	ldr	r0, [pc, #132]	; (2d6d0 <cbor_internal_read_object+0x334>)
   2d64a:	f005 feae 	bl	333aa <printk>
   2d64e:	f240 119d 	movw	r1, #413	; 0x19d
   2d652:	4630      	mov	r0, r6
   2d654:	f006 fa42 	bl	33adc <assert_post_action>
   2d658:	e7e6      	b.n	2d628 <cbor_internal_read_object+0x28c>
                size_t len = cursor->len;
   2d65a:	6aa3      	ldr	r3, [r4, #40]	; 0x28
   2d65c:	9303      	str	r3, [sp, #12]
{ return value->type == CborTextStringType; }
   2d65e:	f89d 3022 	ldrb.w	r3, [sp, #34]	; 0x22
    assert(cbor_value_is_text_string(value));
   2d662:	2b60      	cmp	r3, #96	; 0x60
   2d664:	d108      	bne.n	2d678 <cbor_internal_read_object+0x2dc>
    return _cbor_value_copy_string(value, buffer, buflen, next);
   2d666:	2300      	movs	r3, #0
   2d668:	aa03      	add	r2, sp, #12
   2d66a:	4629      	mov	r1, r5
   2d66c:	a805      	add	r0, sp, #20
   2d66e:	f001 fb35 	bl	2ecdc <_cbor_value_copy_string>
                err |= cbor_value_copy_text_string(&cur_value, lptr,
   2d672:	ea48 0800 	orr.w	r8, r8, r0
                break;
   2d676:	e757      	b.n	2d528 <cbor_internal_read_object+0x18c>
    assert(cbor_value_is_text_string(value));
   2d678:	4c14      	ldr	r4, [pc, #80]	; (2d6cc <cbor_internal_read_object+0x330>)
   2d67a:	f240 1297 	movw	r2, #407	; 0x197
   2d67e:	4621      	mov	r1, r4
   2d680:	4813      	ldr	r0, [pc, #76]	; (2d6d0 <cbor_internal_read_object+0x334>)
   2d682:	f005 fe92 	bl	333aa <printk>
   2d686:	f240 1197 	movw	r1, #407	; 0x197
   2d68a:	4620      	mov	r0, r4
   2d68c:	f006 fa26 	bl	33adc <assert_post_action>
   2d690:	e7e9      	b.n	2d666 <cbor_internal_read_object+0x2ca>
                err |= cbor_read_array(&cur_value, &cursor->addr.array);
   2d692:	f104 0108 	add.w	r1, r4, #8
   2d696:	a805      	add	r0, sp, #20
   2d698:	f7ff fd68 	bl	2d16c <cbor_read_array>
   2d69c:	ea48 0800 	orr.w	r8, r8, r0
                continue;
   2d6a0:	e745      	b.n	2d52e <cbor_internal_read_object+0x192>
                err |= cbor_internal_read_object(&cur_value, cursor->addr.obj,
   2d6a2:	2300      	movs	r3, #0
   2d6a4:	461a      	mov	r2, r3
   2d6a6:	68a1      	ldr	r1, [r4, #8]
   2d6a8:	a805      	add	r0, sp, #20
   2d6aa:	f7ff fe77 	bl	2d39c <cbor_internal_read_object>
   2d6ae:	ea48 0800 	orr.w	r8, r8, r0
                continue;
   2d6b2:	e73c      	b.n	2d52e <cbor_internal_read_object+0x192>
                err |= CborErrorIllegalType;
   2d6b4:	f448 7882 	orr.w	r8, r8, #260	; 0x104
   2d6b8:	e736      	b.n	2d528 <cbor_internal_read_object+0x18c>
{ return value && value->type != CborInvalidType; }
   2d6ba:	2300      	movs	r3, #0
   2d6bc:	e73d      	b.n	2d53a <cbor_internal_read_object+0x19e>
        err |= cbor_value_leave_container(root_value, &cur_value);
   2d6be:	a905      	add	r1, sp, #20
   2d6c0:	9801      	ldr	r0, [sp, #4]
   2d6c2:	f001 fad5 	bl	2ec70 <cbor_value_leave_container>
   2d6c6:	ea48 0800 	orr.w	r8, r8, r0
   2d6ca:	e6cf      	b.n	2d46c <cbor_internal_read_object+0xd0>
   2d6cc:	0003f4a4 	.word	0x0003f4a4
   2d6d0:	0003bdac 	.word	0x0003bdac

0002d6d4 <zephyr_img_mgmt_slot_to_image>:
              "Missing partitions?");

static int
zephyr_img_mgmt_slot_to_image(int slot)
{
    switch (slot) {
   2d6d4:	2801      	cmp	r0, #1
   2d6d6:	d801      	bhi.n	2d6dc <zephyr_img_mgmt_slot_to_image+0x8>
#endif
    default:
        assert(0);
    }
    return 0;
}
   2d6d8:	2000      	movs	r0, #0
   2d6da:	4770      	bx	lr
{
   2d6dc:	b510      	push	{r4, lr}
        assert(0);
   2d6de:	4c06      	ldr	r4, [pc, #24]	; (2d6f8 <zephyr_img_mgmt_slot_to_image+0x24>)
   2d6e0:	223a      	movs	r2, #58	; 0x3a
   2d6e2:	4621      	mov	r1, r4
   2d6e4:	4805      	ldr	r0, [pc, #20]	; (2d6fc <zephyr_img_mgmt_slot_to_image+0x28>)
   2d6e6:	f005 fe60 	bl	333aa <printk>
   2d6ea:	213a      	movs	r1, #58	; 0x3a
   2d6ec:	4620      	mov	r0, r4
   2d6ee:	f006 f9f5 	bl	33adc <assert_post_action>
}
   2d6f2:	2000      	movs	r0, #0
   2d6f4:	bd10      	pop	{r4, pc}
   2d6f6:	bf00      	nop
   2d6f8:	0003f4e0 	.word	0x0003f4e0
   2d6fc:	0003bdac 	.word	0x0003bdac

0002d700 <zephyr_img_mgmt_flash_check_empty>:
/**
 * Determines if the specified area of flash is completely unwritten.
 */
static int
zephyr_img_mgmt_flash_check_empty(uint8_t fa_id, bool *out_empty)
{
   2d700:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
   2d704:	b092      	sub	sp, #72	; 0x48
   2d706:	4688      	mov	r8, r1
    int rc;
    int i;
    uint8_t erased_val;
    uint32_t erased_val_32;

    rc = flash_area_open(fa_id, &fa);
   2d708:	a911      	add	r1, sp, #68	; 0x44
   2d70a:	f7f0 fc0f 	bl	1df2c <flash_area_open>
    if (rc != 0) {
   2d70e:	2800      	cmp	r0, #0
   2d710:	d157      	bne.n	2d7c2 <zephyr_img_mgmt_flash_check_empty+0xc2>
   2d712:	4682      	mov	sl, r0
        return MGMT_ERR_EUNKNOWN;
    }

    assert(fa->fa_size % 4 == 0);
   2d714:	9b11      	ldr	r3, [sp, #68]	; 0x44
   2d716:	689b      	ldr	r3, [r3, #8]
   2d718:	f013 0f03 	tst.w	r3, #3
   2d71c:	d11d      	bne.n	2d75a <zephyr_img_mgmt_flash_check_empty+0x5a>

    erased_val = flash_area_erased_val(fa);
   2d71e:	9811      	ldr	r0, [sp, #68]	; 0x44
   2d720:	f006 fe7a 	bl	34418 <flash_area_erased_val>
    erased_val_32 = ERASED_VAL_32(erased_val);
   2d724:	0405      	lsls	r5, r0, #16
   2d726:	ea45 6500 	orr.w	r5, r5, r0, lsl #24
   2d72a:	ea45 2500 	orr.w	r5, r5, r0, lsl #8
   2d72e:	4305      	orrs	r5, r0

    end = fa->fa_size;
   2d730:	9b11      	ldr	r3, [sp, #68]	; 0x44
   2d732:	f8d3 9008 	ldr.w	r9, [r3, #8]
    for (addr = 0; addr < end; addr += sizeof data) {
   2d736:	4656      	mov	r6, sl
   2d738:	454e      	cmp	r6, r9
   2d73a:	da3a      	bge.n	2d7b2 <zephyr_img_mgmt_flash_check_empty+0xb2>
        if (end - addr < sizeof data) {
   2d73c:	eba9 0406 	sub.w	r4, r9, r6
   2d740:	2c3f      	cmp	r4, #63	; 0x3f
   2d742:	d900      	bls.n	2d746 <zephyr_img_mgmt_flash_check_empty+0x46>
            bytes_to_read = end - addr;
        } else {
            bytes_to_read = sizeof data;
   2d744:	2440      	movs	r4, #64	; 0x40
        }

        rc = flash_area_read(fa, addr, data, bytes_to_read);
   2d746:	4623      	mov	r3, r4
   2d748:	aa01      	add	r2, sp, #4
   2d74a:	4631      	mov	r1, r6
   2d74c:	9811      	ldr	r0, [sp, #68]	; 0x44
   2d74e:	f006 fdd4 	bl	342fa <flash_area_read>
        if (rc != 0) {
   2d752:	4607      	mov	r7, r0
   2d754:	b960      	cbnz	r0, 2d770 <zephyr_img_mgmt_flash_check_empty+0x70>
            flash_area_close(fa);
            return MGMT_ERR_EUNKNOWN;
        }

        for (i = 0; i < bytes_to_read / 4; i++) {
   2d756:	4603      	mov	r3, r0
   2d758:	e024      	b.n	2d7a4 <zephyr_img_mgmt_flash_check_empty+0xa4>
    assert(fa->fa_size % 4 == 0);
   2d75a:	4c1b      	ldr	r4, [pc, #108]	; (2d7c8 <zephyr_img_mgmt_flash_check_empty+0xc8>)
   2d75c:	2253      	movs	r2, #83	; 0x53
   2d75e:	4621      	mov	r1, r4
   2d760:	481a      	ldr	r0, [pc, #104]	; (2d7cc <zephyr_img_mgmt_flash_check_empty+0xcc>)
   2d762:	f005 fe22 	bl	333aa <printk>
   2d766:	2153      	movs	r1, #83	; 0x53
   2d768:	4620      	mov	r0, r4
   2d76a:	f006 f9b7 	bl	33adc <assert_post_action>
   2d76e:	e7d6      	b.n	2d71e <zephyr_img_mgmt_flash_check_empty+0x1e>
            flash_area_close(fa);
   2d770:	9811      	ldr	r0, [sp, #68]	; 0x44
   2d772:	f006 fdc1 	bl	342f8 <flash_area_close>
            return MGMT_ERR_EUNKNOWN;
   2d776:	2701      	movs	r7, #1
   2d778:	e005      	b.n	2d786 <zephyr_img_mgmt_flash_check_empty+0x86>
            if (data[i] != erased_val_32) {
                *out_empty = false;
   2d77a:	2300      	movs	r3, #0
   2d77c:	f888 3000 	strb.w	r3, [r8]
                flash_area_close(fa);
   2d780:	9811      	ldr	r0, [sp, #68]	; 0x44
   2d782:	f006 fdb9 	bl	342f8 <flash_area_close>
    }

    *out_empty = true;
    flash_area_close(fa);
    return 0;
}
   2d786:	4638      	mov	r0, r7
   2d788:	b012      	add	sp, #72	; 0x48
   2d78a:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
        for (i = 0; i < bytes_to_read / 4; i++) {
   2d78e:	ebb3 0fa2 	cmp.w	r3, r2, asr #2
   2d792:	da0c      	bge.n	2d7ae <zephyr_img_mgmt_flash_check_empty+0xae>
            if (data[i] != erased_val_32) {
   2d794:	aa12      	add	r2, sp, #72	; 0x48
   2d796:	eb02 0283 	add.w	r2, r2, r3, lsl #2
   2d79a:	f852 2c44 	ldr.w	r2, [r2, #-68]
   2d79e:	42aa      	cmp	r2, r5
   2d7a0:	d1eb      	bne.n	2d77a <zephyr_img_mgmt_flash_check_empty+0x7a>
        for (i = 0; i < bytes_to_read / 4; i++) {
   2d7a2:	3301      	adds	r3, #1
   2d7a4:	4622      	mov	r2, r4
   2d7a6:	2c00      	cmp	r4, #0
   2d7a8:	daf1      	bge.n	2d78e <zephyr_img_mgmt_flash_check_empty+0x8e>
   2d7aa:	1ce2      	adds	r2, r4, #3
   2d7ac:	e7ef      	b.n	2d78e <zephyr_img_mgmt_flash_check_empty+0x8e>
    for (addr = 0; addr < end; addr += sizeof data) {
   2d7ae:	3640      	adds	r6, #64	; 0x40
   2d7b0:	e7c2      	b.n	2d738 <zephyr_img_mgmt_flash_check_empty+0x38>
    *out_empty = true;
   2d7b2:	2301      	movs	r3, #1
   2d7b4:	f888 3000 	strb.w	r3, [r8]
    flash_area_close(fa);
   2d7b8:	9811      	ldr	r0, [sp, #68]	; 0x44
   2d7ba:	f006 fd9d 	bl	342f8 <flash_area_close>
    return 0;
   2d7be:	4657      	mov	r7, sl
   2d7c0:	e7e1      	b.n	2d786 <zephyr_img_mgmt_flash_check_empty+0x86>
        return MGMT_ERR_EUNKNOWN;
   2d7c2:	2701      	movs	r7, #1
   2d7c4:	e7df      	b.n	2d786 <zephyr_img_mgmt_flash_check_empty+0x86>
   2d7c6:	bf00      	nop
   2d7c8:	0003f4e0 	.word	0x0003f4e0
   2d7cc:	0003bdac 	.word	0x0003bdac

0002d7d0 <img_mgmt_impl_write_image_data>:
}

int
img_mgmt_impl_write_image_data(unsigned int offset, const void *data,
                               unsigned int num_bytes, bool last)
{
   2d7d0:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
   2d7d2:	460c      	mov	r4, r1
   2d7d4:	4616      	mov	r6, r2
   2d7d6:	461d      	mov	r5, r3
	if (offset != 0 && ctx == NULL) {
		return MGMT_ERR_EUNKNOWN;
	}
#endif

	if (offset == 0) {
   2d7d8:	4607      	mov	r7, r0
   2d7da:	b148      	cbz	r0, 2d7f0 <img_mgmt_impl_write_image_data+0x20>
		if (rc != 0) {
			return MGMT_ERR_EUNKNOWN;
		}
	}

	if (offset != ctx->stream.bytes_written + ctx->stream.buf_bytes) {
   2d7dc:	490e      	ldr	r1, [pc, #56]	; (2d818 <img_mgmt_impl_write_image_data+0x48>)
   2d7de:	f8d1 0214 	ldr.w	r0, [r1, #532]	; 0x214
   2d7e2:	f8d1 320c 	ldr.w	r3, [r1, #524]	; 0x20c
   2d7e6:	4418      	add	r0, r3
   2d7e8:	42b8      	cmp	r0, r7
   2d7ea:	d00a      	beq.n	2d802 <img_mgmt_impl_write_image_data+0x32>
		return MGMT_ERR_EUNKNOWN;
   2d7ec:	2001      	movs	r0, #1
		ctx = NULL;
	}
#endif

	return 0;
}
   2d7ee:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
		rc = flash_img_init_id(ctx, g_img_mgmt_state.area_id);
   2d7f0:	4b0a      	ldr	r3, [pc, #40]	; (2d81c <img_mgmt_impl_write_image_data+0x4c>)
   2d7f2:	7819      	ldrb	r1, [r3, #0]
   2d7f4:	4808      	ldr	r0, [pc, #32]	; (2d818 <img_mgmt_impl_write_image_data+0x48>)
   2d7f6:	f006 fcfc 	bl	341f2 <flash_img_init_id>
		if (rc != 0) {
   2d7fa:	2800      	cmp	r0, #0
   2d7fc:	d0ee      	beq.n	2d7dc <img_mgmt_impl_write_image_data+0xc>
			return MGMT_ERR_EUNKNOWN;
   2d7fe:	2001      	movs	r0, #1
   2d800:	e7f5      	b.n	2d7ee <img_mgmt_impl_write_image_data+0x1e>
	rc = flash_img_buffered_write(ctx, (void *)data, num_bytes, last);
   2d802:	462b      	mov	r3, r5
   2d804:	4632      	mov	r2, r6
   2d806:	4621      	mov	r1, r4
   2d808:	4803      	ldr	r0, [pc, #12]	; (2d818 <img_mgmt_impl_write_image_data+0x48>)
   2d80a:	f006 fcdf 	bl	341cc <flash_img_buffered_write>
	if (rc != 0) {
   2d80e:	2800      	cmp	r0, #0
   2d810:	d0ed      	beq.n	2d7ee <img_mgmt_impl_write_image_data+0x1e>
		return MGMT_ERR_EUNKNOWN;
   2d812:	2001      	movs	r0, #1
   2d814:	e7eb      	b.n	2d7ee <img_mgmt_impl_write_image_data+0x1e>
   2d816:	bf00      	nop
   2d818:	20002d5c 	.word	0x20002d5c
   2d81c:	20002f80 	.word	0x20002f80

0002d820 <img_mgmt_impl_erase_image_data>:

int
img_mgmt_impl_erase_image_data(unsigned int off, unsigned int num_bytes)
{
   2d820:	b570      	push	{r4, r5, r6, lr}
   2d822:	b084      	sub	sp, #16
    const struct flash_area *fa;
    int rc;

    if (off != 0) {
   2d824:	2800      	cmp	r0, #0
   2d826:	d165      	bne.n	2d8f4 <img_mgmt_impl_erase_image_data+0xd4>
   2d828:	460d      	mov	r5, r1
        rc = MGMT_ERR_EINVAL;
        goto end;
    }

    rc = flash_area_open(g_img_mgmt_state.area_id, &fa);
   2d82a:	a903      	add	r1, sp, #12
   2d82c:	4b32      	ldr	r3, [pc, #200]	; (2d8f8 <img_mgmt_impl_erase_image_data+0xd8>)
   2d82e:	7818      	ldrb	r0, [r3, #0]
   2d830:	f7f0 fb7c 	bl	1df2c <flash_area_open>
    if (rc != 0) {
   2d834:	4602      	mov	r2, r0
   2d836:	2800      	cmp	r0, #0
   2d838:	d13a      	bne.n	2d8b0 <img_mgmt_impl_erase_image_data+0x90>
        rc = MGMT_ERR_EUNKNOWN;
        goto end;
    }

    /* align requested erase size to the erase-block-size */
    const struct device *dev = flash_area_get_device(fa);
   2d83a:	9803      	ldr	r0, [sp, #12]
   2d83c:	f006 fde7 	bl	3440e <flash_area_get_device>
   2d840:	4606      	mov	r6, r0
    struct flash_pages_info page;
    off_t page_offset = fa->fa_off + num_bytes - 1;
   2d842:	9b03      	ldr	r3, [sp, #12]
   2d844:	6859      	ldr	r1, [r3, #4]
   2d846:	4429      	add	r1, r5
   2d848:	1e4c      	subs	r4, r1, #1
   2d84a:	466a      	mov	r2, sp
   2d84c:	4621      	mov	r1, r4
   2d84e:	f00b fe0f 	bl	39470 <z_impl_flash_get_page_info_by_offs>

    rc = flash_get_page_info_by_offs(dev, page_offset, &page);
    if (rc != 0) {
   2d852:	2800      	cmp	r0, #0
   2d854:	d132      	bne.n	2d8bc <img_mgmt_impl_erase_image_data+0x9c>
        LOG_ERR("bad offset (0x%lx)", (long)page_offset);
        rc = MGMT_ERR_EUNKNOWN;
        goto end_fa;
    }

    size_t erase_size = page.start_offset + page.size - fa->fa_off;
   2d856:	9d00      	ldr	r5, [sp, #0]
   2d858:	9b01      	ldr	r3, [sp, #4]
   2d85a:	441d      	add	r5, r3
   2d85c:	9803      	ldr	r0, [sp, #12]
   2d85e:	6843      	ldr	r3, [r0, #4]
   2d860:	1aed      	subs	r5, r5, r3

    rc = flash_area_erase(fa, 0, erase_size);
   2d862:	462a      	mov	r2, r5
   2d864:	2100      	movs	r1, #0
   2d866:	f006 fd9b 	bl	343a0 <flash_area_erase>

    if (rc != 0) {
   2d86a:	4604      	mov	r4, r0
   2d86c:	bb90      	cbnz	r0, 2d8d4 <img_mgmt_impl_erase_image_data+0xb4>
                rc);
        rc = MGMT_ERR_EUNKNOWN;
        goto end_fa;
    }

    LOG_INF("Erased 0x%zx bytes of image slot", erase_size);
   2d86e:	462a      	mov	r2, r5
   2d870:	2149      	movs	r1, #73	; 0x49
   2d872:	4822      	ldr	r0, [pc, #136]	; (2d8fc <img_mgmt_impl_erase_image_data+0xdc>)
   2d874:	f006 f93a 	bl	33aec <z_log_minimal_printk>

    /* erase the image trailer area if it was not erased */
    off = BOOT_TRAILER_IMG_STATUS_OFFS(fa);
   2d878:	9b03      	ldr	r3, [sp, #12]
   2d87a:	6899      	ldr	r1, [r3, #8]
   2d87c:	3920      	subs	r1, #32
    if (off >= erase_size) {
   2d87e:	42a9      	cmp	r1, r5
   2d880:	d322      	bcc.n	2d8c8 <img_mgmt_impl_erase_image_data+0xa8>
        rc = flash_get_page_info_by_offs(dev, fa->fa_off + off, &page);
   2d882:	685b      	ldr	r3, [r3, #4]
   2d884:	4419      	add	r1, r3
   2d886:	466a      	mov	r2, sp
   2d888:	4630      	mov	r0, r6
   2d88a:	f00b fdf1 	bl	39470 <z_impl_flash_get_page_info_by_offs>

        off = page.start_offset - fa->fa_off;
   2d88e:	9803      	ldr	r0, [sp, #12]
   2d890:	6843      	ldr	r3, [r0, #4]
   2d892:	9900      	ldr	r1, [sp, #0]
   2d894:	1ac9      	subs	r1, r1, r3
        erase_size = fa->fa_size - off;
   2d896:	6885      	ldr	r5, [r0, #8]
   2d898:	1a6d      	subs	r5, r5, r1

        rc = flash_area_erase(fa, off, erase_size);
   2d89a:	462a      	mov	r2, r5
   2d89c:	f006 fd80 	bl	343a0 <flash_area_erase>
        if (rc != 0) {
   2d8a0:	4604      	mov	r4, r0
   2d8a2:	b9f8      	cbnz	r0, 2d8e4 <img_mgmt_impl_erase_image_data+0xc4>
                    erase_size, rc);
            rc = MGMT_ERR_EUNKNOWN;
            goto end_fa;
        }

        LOG_INF("Erased 0x%zx bytes of image slot trailer", erase_size);
   2d8a4:	462a      	mov	r2, r5
   2d8a6:	2149      	movs	r1, #73	; 0x49
   2d8a8:	4815      	ldr	r0, [pc, #84]	; (2d900 <img_mgmt_impl_erase_image_data+0xe0>)
   2d8aa:	f006 f91f 	bl	33aec <z_log_minimal_printk>
   2d8ae:	e00b      	b.n	2d8c8 <img_mgmt_impl_erase_image_data+0xa8>
        LOG_ERR("Can't bind to the flash area (err %d)", rc);
   2d8b0:	2145      	movs	r1, #69	; 0x45
   2d8b2:	4814      	ldr	r0, [pc, #80]	; (2d904 <img_mgmt_impl_erase_image_data+0xe4>)
   2d8b4:	f006 f91a 	bl	33aec <z_log_minimal_printk>
        rc = MGMT_ERR_EUNKNOWN;
   2d8b8:	2401      	movs	r4, #1
        goto end;
   2d8ba:	e008      	b.n	2d8ce <img_mgmt_impl_erase_image_data+0xae>
        LOG_ERR("bad offset (0x%lx)", (long)page_offset);
   2d8bc:	4622      	mov	r2, r4
   2d8be:	2145      	movs	r1, #69	; 0x45
   2d8c0:	4811      	ldr	r0, [pc, #68]	; (2d908 <img_mgmt_impl_erase_image_data+0xe8>)
   2d8c2:	f006 f913 	bl	33aec <z_log_minimal_printk>
        rc = MGMT_ERR_EUNKNOWN;
   2d8c6:	2401      	movs	r4, #1
    }

    rc = 0;

end_fa:
    flash_area_close(fa);
   2d8c8:	9803      	ldr	r0, [sp, #12]
   2d8ca:	f006 fd15 	bl	342f8 <flash_area_close>
end:
    return rc;
}
   2d8ce:	4620      	mov	r0, r4
   2d8d0:	b004      	add	sp, #16
   2d8d2:	bd70      	pop	{r4, r5, r6, pc}
        LOG_ERR("image slot erase of 0x%zx bytes failed (err %d)", erase_size,
   2d8d4:	4603      	mov	r3, r0
   2d8d6:	462a      	mov	r2, r5
   2d8d8:	2145      	movs	r1, #69	; 0x45
   2d8da:	480c      	ldr	r0, [pc, #48]	; (2d90c <img_mgmt_impl_erase_image_data+0xec>)
   2d8dc:	f006 f906 	bl	33aec <z_log_minimal_printk>
        rc = MGMT_ERR_EUNKNOWN;
   2d8e0:	2401      	movs	r4, #1
        goto end_fa;
   2d8e2:	e7f1      	b.n	2d8c8 <img_mgmt_impl_erase_image_data+0xa8>
            LOG_ERR("image slot trailer erase of 0x%zx bytes failed (err %d)",
   2d8e4:	4603      	mov	r3, r0
   2d8e6:	462a      	mov	r2, r5
   2d8e8:	2145      	movs	r1, #69	; 0x45
   2d8ea:	4809      	ldr	r0, [pc, #36]	; (2d910 <img_mgmt_impl_erase_image_data+0xf0>)
   2d8ec:	f006 f8fe 	bl	33aec <z_log_minimal_printk>
            rc = MGMT_ERR_EUNKNOWN;
   2d8f0:	2401      	movs	r4, #1
            goto end_fa;
   2d8f2:	e7e9      	b.n	2d8c8 <img_mgmt_impl_erase_image_data+0xa8>
        rc = MGMT_ERR_EINVAL;
   2d8f4:	2403      	movs	r4, #3
    return rc;
   2d8f6:	e7ea      	b.n	2d8ce <img_mgmt_impl_erase_image_data+0xae>
   2d8f8:	20002f80 	.word	0x20002f80
   2d8fc:	0003f5ac 	.word	0x0003f5ac
   2d900:	0003f614 	.word	0x0003f614
   2d904:	0003f530 	.word	0x0003f530
   2d908:	0003f55c 	.word	0x0003f55c
   2d90c:	0003f574 	.word	0x0003f574
   2d910:	0003f5d4 	.word	0x0003f5d4

0002d914 <img_mgmt_impl_swap_type>:
}
#endif

int
img_mgmt_impl_swap_type(int slot)
{
   2d914:	b510      	push	{r4, lr}
    int image = zephyr_img_mgmt_slot_to_image(slot);
   2d916:	f7ff fedd 	bl	2d6d4 <zephyr_img_mgmt_slot_to_image>

    switch (mcuboot_swap_type_multi(image)) {
   2d91a:	f00b fb93 	bl	39044 <mcuboot_swap_type_multi>
   2d91e:	3801      	subs	r0, #1
   2d920:	2803      	cmp	r0, #3
   2d922:	d809      	bhi.n	2d938 <img_mgmt_impl_swap_type+0x24>
   2d924:	e8df f000 	tbb	[pc, r0]
   2d928:	06041602 	.word	0x06041602
   2d92c:	2000      	movs	r0, #0
        return IMG_MGMT_SWAP_TYPE_REVERT;
    default:
        assert(0);
        return IMG_MGMT_SWAP_TYPE_NONE;
    }
}
   2d92e:	bd10      	pop	{r4, pc}
        return IMG_MGMT_SWAP_TYPE_PERM;
   2d930:	2002      	movs	r0, #2
   2d932:	e7fc      	b.n	2d92e <img_mgmt_impl_swap_type+0x1a>
        return IMG_MGMT_SWAP_TYPE_REVERT;
   2d934:	2003      	movs	r0, #3
   2d936:	e7fa      	b.n	2d92e <img_mgmt_impl_swap_type+0x1a>
        assert(0);
   2d938:	4c07      	ldr	r4, [pc, #28]	; (2d958 <img_mgmt_impl_swap_type+0x44>)
   2d93a:	f44f 72f4 	mov.w	r2, #488	; 0x1e8
   2d93e:	4621      	mov	r1, r4
   2d940:	4806      	ldr	r0, [pc, #24]	; (2d95c <img_mgmt_impl_swap_type+0x48>)
   2d942:	f005 fd32 	bl	333aa <printk>
   2d946:	f44f 71f4 	mov.w	r1, #488	; 0x1e8
   2d94a:	4620      	mov	r0, r4
   2d94c:	f006 f8c6 	bl	33adc <assert_post_action>
        return IMG_MGMT_SWAP_TYPE_NONE;
   2d950:	2000      	movs	r0, #0
   2d952:	e7ec      	b.n	2d92e <img_mgmt_impl_swap_type+0x1a>
        return IMG_MGMT_SWAP_TYPE_TEST;
   2d954:	2001      	movs	r0, #1
   2d956:	e7ea      	b.n	2d92e <img_mgmt_impl_swap_type+0x1a>
   2d958:	0003f4e0 	.word	0x0003f4e0
   2d95c:	0003bdac 	.word	0x0003bdac

0002d960 <img_mgmt_impl_upload_inspect>:
 */
int
img_mgmt_impl_upload_inspect(const struct img_mgmt_upload_req *req,
                             struct img_mgmt_upload_action *action,
                             const char **errstr)
{
   2d960:	b570      	push	{r4, r5, r6, lr}
   2d962:	b084      	sub	sp, #16
   2d964:	4604      	mov	r4, r0
   2d966:	460d      	mov	r5, r1
   2d968:	4616      	mov	r6, r2
    struct image_version cur_ver;
    uint8_t rem_bytes;
    bool empty;
    int rc;

    memset(action, 0, sizeof *action);
   2d96a:	2218      	movs	r2, #24
   2d96c:	2100      	movs	r1, #0
   2d96e:	4628      	mov	r0, r5
   2d970:	f008 f8e8 	bl	35b44 <memset>

    if (req->off == -1) {
   2d974:	e9d4 0102 	ldrd	r0, r1, [r4, #8]
   2d978:	f1b1 3fff 	cmp.w	r1, #4294967295
   2d97c:	bf08      	it	eq
   2d97e:	f1b0 3fff 	cmpeq.w	r0, #4294967295
   2d982:	d043      	beq.n	2da0c <img_mgmt_impl_upload_inspect+0xac>
        /* Request did not include an `off` field. */
        *errstr = img_mgmt_err_str_hdr_malformed;
        return MGMT_ERR_EINVAL;
    }

    if (req->off == 0) {
   2d984:	ea50 0301 	orrs.w	r3, r0, r1
   2d988:	d160      	bne.n	2da4c <img_mgmt_impl_upload_inspect+0xec>
        /* First upload chunk. */
        if (req->data_len < sizeof(struct image_header)) {
   2d98a:	69a3      	ldr	r3, [r4, #24]
   2d98c:	2b1f      	cmp	r3, #31
   2d98e:	d941      	bls.n	2da14 <img_mgmt_impl_upload_inspect+0xb4>
             */
            *errstr = img_mgmt_err_str_hdr_malformed;
            return MGMT_ERR_EINVAL;
        }

        if (req->size == -1) {
   2d990:	e9d4 2304 	ldrd	r2, r3, [r4, #16]
   2d994:	f1b3 3fff 	cmp.w	r3, #4294967295
   2d998:	bf08      	it	eq
   2d99a:	f1b2 3fff 	cmpeq.w	r2, #4294967295
   2d99e:	d03d      	beq.n	2da1c <img_mgmt_impl_upload_inspect+0xbc>
            /* Request did not include a `len` field. */
            *errstr = img_mgmt_err_str_hdr_malformed;
            return MGMT_ERR_EINVAL;
        }
        action->size = req->size;
   2d9a0:	e9c5 2300 	strd	r2, r3, [r5]

        hdr = (struct image_header *)req->img_data;
        if (hdr->ih_magic != IMAGE_MAGIC) {
   2d9a4:	6a22      	ldr	r2, [r4, #32]
   2d9a6:	4b4c      	ldr	r3, [pc, #304]	; (2dad8 <img_mgmt_impl_upload_inspect+0x178>)
   2d9a8:	429a      	cmp	r2, r3
   2d9aa:	d13b      	bne.n	2da24 <img_mgmt_impl_upload_inspect+0xc4>
            *errstr = img_mgmt_err_str_magic_mismatch;
            return MGMT_ERR_EINVAL;
        }

        if (req->data_sha_len > IMG_MGMT_DATA_SHA_LEN) {
   2d9ac:	69e2      	ldr	r2, [r4, #28]
   2d9ae:	2a20      	cmp	r2, #32
   2d9b0:	f200 8089 	bhi.w	2dac6 <img_mgmt_impl_upload_inspect+0x166>
         * If request includes proper data hash we can check whether there is
         * upload in progress (interrupted due to e.g. link disconnection) with
         * the same data hash so we can just resume it by simply including
         * current upload offset in response.
         */
        if ((req->data_sha_len > 0) && (g_img_mgmt_state.area_id != -1)) {
   2d9b4:	b142      	cbz	r2, 2d9c8 <img_mgmt_impl_upload_inspect+0x68>
   2d9b6:	4b49      	ldr	r3, [pc, #292]	; (2dadc <img_mgmt_impl_upload_inspect+0x17c>)
   2d9b8:	681b      	ldr	r3, [r3, #0]
   2d9ba:	f1b3 3fff 	cmp.w	r3, #4294967295
   2d9be:	d003      	beq.n	2d9c8 <img_mgmt_impl_upload_inspect+0x68>
            if ((g_img_mgmt_state.data_sha_len == req->data_sha_len) &&
   2d9c0:	4b46      	ldr	r3, [pc, #280]	; (2dadc <img_mgmt_impl_upload_inspect+0x17c>)
   2d9c2:	7b1b      	ldrb	r3, [r3, #12]
   2d9c4:	429a      	cmp	r2, r3
   2d9c6:	d031      	beq.n	2da2c <img_mgmt_impl_upload_inspect+0xcc>
                                                        req->data_sha_len)) {
                return 0;
            }
        }

        action->area_id = img_mgmt_get_unused_slot_area_id(req->image);
   2d9c8:	6820      	ldr	r0, [r4, #0]
   2d9ca:	f00c fd1d 	bl	3a408 <img_mgmt_get_unused_slot_area_id>
   2d9ce:	60e8      	str	r0, [r5, #12]
        if (action->area_id < 0) {
   2d9d0:	2800      	cmp	r0, #0
   2d9d2:	db33      	blt.n	2da3c <img_mgmt_impl_upload_inspect+0xdc>
            flash_area_close(fa);
        }
#endif


        if (req->upgrade) {
   2d9d4:	f894 3240 	ldrb.w	r3, [r4, #576]	; 0x240
   2d9d8:	b15b      	cbz	r3, 2d9f2 <img_mgmt_impl_upload_inspect+0x92>
            /* User specified upgrade-only.  Make sure new image version is
             * greater than that of the currently running image.
             */
            rc = img_mgmt_my_version(&cur_ver);
   2d9da:	a801      	add	r0, sp, #4
   2d9dc:	f00c fdf0 	bl	3a5c0 <img_mgmt_my_version>
            if (rc != 0) {
   2d9e0:	2800      	cmp	r0, #0
   2d9e2:	d172      	bne.n	2daca <img_mgmt_impl_upload_inspect+0x16a>
                return MGMT_ERR_EUNKNOWN;
            }

            if (img_mgmt_vercmp(&cur_ver, &hdr->ih_ver) >= 0) {
   2d9e4:	f104 0134 	add.w	r1, r4, #52	; 0x34
   2d9e8:	a801      	add	r0, sp, #4
   2d9ea:	f00c fced 	bl	3a3c8 <img_mgmt_vercmp>
   2d9ee:	2800      	cmp	r0, #0
   2d9f0:	da28      	bge.n	2da44 <img_mgmt_impl_upload_inspect+0xe4>
        }

#if IMG_MGMT_LAZY_ERASE
        (void) empty;
#else
        rc = zephyr_img_mgmt_flash_check_empty(action->area_id, &empty);
   2d9f2:	f10d 0103 	add.w	r1, sp, #3
   2d9f6:	7b28      	ldrb	r0, [r5, #12]
   2d9f8:	f7ff fe82 	bl	2d700 <zephyr_img_mgmt_flash_check_empty>
        if (rc) {
   2d9fc:	2800      	cmp	r0, #0
   2d9fe:	d166      	bne.n	2dace <img_mgmt_impl_upload_inspect+0x16e>
            return MGMT_ERR_EUNKNOWN;
        }

        action->erase = !empty;
   2da00:	f89d 3003 	ldrb.w	r3, [sp, #3]
   2da04:	f083 0301 	eor.w	r3, r3, #1
   2da08:	746b      	strb	r3, [r5, #17]
   2da0a:	e02e      	b.n	2da6a <img_mgmt_impl_upload_inspect+0x10a>
        *errstr = img_mgmt_err_str_hdr_malformed;
   2da0c:	2300      	movs	r3, #0
   2da0e:	6033      	str	r3, [r6, #0]
        return MGMT_ERR_EINVAL;
   2da10:	2003      	movs	r0, #3
   2da12:	e03b      	b.n	2da8c <img_mgmt_impl_upload_inspect+0x12c>
            *errstr = img_mgmt_err_str_hdr_malformed;
   2da14:	2300      	movs	r3, #0
   2da16:	6033      	str	r3, [r6, #0]
            return MGMT_ERR_EINVAL;
   2da18:	2003      	movs	r0, #3
   2da1a:	e037      	b.n	2da8c <img_mgmt_impl_upload_inspect+0x12c>
            *errstr = img_mgmt_err_str_hdr_malformed;
   2da1c:	2300      	movs	r3, #0
   2da1e:	6033      	str	r3, [r6, #0]
            return MGMT_ERR_EINVAL;
   2da20:	2003      	movs	r0, #3
   2da22:	e033      	b.n	2da8c <img_mgmt_impl_upload_inspect+0x12c>
            *errstr = img_mgmt_err_str_magic_mismatch;
   2da24:	2300      	movs	r3, #0
   2da26:	6033      	str	r3, [r6, #0]
            return MGMT_ERR_EINVAL;
   2da28:	2003      	movs	r0, #3
   2da2a:	e02f      	b.n	2da8c <img_mgmt_impl_upload_inspect+0x12c>
                            !memcmp(g_img_mgmt_state.data_sha, req->data_sha,
   2da2c:	f504 7108 	add.w	r1, r4, #544	; 0x220
   2da30:	482b      	ldr	r0, [pc, #172]	; (2dae0 <img_mgmt_impl_upload_inspect+0x180>)
   2da32:	f008 f84c 	bl	35ace <memcmp>
            if ((g_img_mgmt_state.data_sha_len == req->data_sha_len) &&
   2da36:	2800      	cmp	r0, #0
   2da38:	d1c6      	bne.n	2d9c8 <img_mgmt_impl_upload_inspect+0x68>
   2da3a:	e027      	b.n	2da8c <img_mgmt_impl_upload_inspect+0x12c>
            *errstr = img_mgmt_err_str_no_slot;
   2da3c:	2300      	movs	r3, #0
   2da3e:	6033      	str	r3, [r6, #0]
            return MGMT_ERR_ENOMEM;
   2da40:	2002      	movs	r0, #2
   2da42:	e023      	b.n	2da8c <img_mgmt_impl_upload_inspect+0x12c>
                *errstr = img_mgmt_err_str_downgrade;
   2da44:	2300      	movs	r3, #0
   2da46:	6033      	str	r3, [r6, #0]
                return MGMT_ERR_EBADSTATE;
   2da48:	2006      	movs	r0, #6
   2da4a:	e01f      	b.n	2da8c <img_mgmt_impl_upload_inspect+0x12c>
#endif
    } else {
        /* Continuation of upload. */
        action->area_id = g_img_mgmt_state.area_id;
   2da4c:	4923      	ldr	r1, [pc, #140]	; (2dadc <img_mgmt_impl_upload_inspect+0x17c>)
   2da4e:	680b      	ldr	r3, [r1, #0]
   2da50:	60eb      	str	r3, [r5, #12]
        action->size = g_img_mgmt_state.size;
   2da52:	688b      	ldr	r3, [r1, #8]
   2da54:	602b      	str	r3, [r5, #0]
   2da56:	2300      	movs	r3, #0
   2da58:	606b      	str	r3, [r5, #4]

        if (req->off != g_img_mgmt_state.off) {
   2da5a:	e9d4 2302 	ldrd	r2, r3, [r4, #8]
   2da5e:	6848      	ldr	r0, [r1, #4]
   2da60:	2100      	movs	r1, #0
   2da62:	428b      	cmp	r3, r1
   2da64:	bf08      	it	eq
   2da66:	4282      	cmpeq	r2, r0
   2da68:	d133      	bne.n	2dad2 <img_mgmt_impl_upload_inspect+0x172>
            return 0;
        }
    }

    /* Calculate size of flash write. */
    action->write_bytes = req->data_len;
   2da6a:	69a3      	ldr	r3, [r4, #24]
   2da6c:	60ab      	str	r3, [r5, #8]
    if (req->off + req->data_len < action->size) {
   2da6e:	e9d4 2302 	ldrd	r2, r3, [r4, #8]
   2da72:	69a1      	ldr	r1, [r4, #24]
   2da74:	1852      	adds	r2, r2, r1
   2da76:	f143 0300 	adc.w	r3, r3, #0
   2da7a:	e9d5 0100 	ldrd	r0, r1, [r5]
   2da7e:	428b      	cmp	r3, r1
   2da80:	bf08      	it	eq
   2da82:	4282      	cmpeq	r2, r0
   2da84:	d304      	bcc.n	2da90 <img_mgmt_impl_upload_inspect+0x130>
        if (rem_bytes) {
            action->write_bytes -= rem_bytes;
        }
    }

    action->proceed = true;
   2da86:	2301      	movs	r3, #1
   2da88:	742b      	strb	r3, [r5, #16]
    return 0;
   2da8a:	2000      	movs	r0, #0
}
   2da8c:	b004      	add	sp, #16
   2da8e:	bd70      	pop	{r4, r5, r6, pc}
        rc = flash_area_open(action->area_id, &fa);
   2da90:	a903      	add	r1, sp, #12
   2da92:	7b28      	ldrb	r0, [r5, #12]
   2da94:	f7f0 fa4a 	bl	1df2c <flash_area_open>
        if (rc) {
   2da98:	b118      	cbz	r0, 2daa2 <img_mgmt_impl_upload_inspect+0x142>
            *errstr = img_mgmt_err_str_flash_open_failed;
   2da9a:	2300      	movs	r3, #0
   2da9c:	6033      	str	r3, [r6, #0]
            return MGMT_ERR_EUNKNOWN;
   2da9e:	2001      	movs	r0, #1
   2daa0:	e7f4      	b.n	2da8c <img_mgmt_impl_upload_inspect+0x12c>
        rem_bytes = req->data_len % flash_area_align(fa);
   2daa2:	69a6      	ldr	r6, [r4, #24]
   2daa4:	9803      	ldr	r0, [sp, #12]
   2daa6:	f006 fca9 	bl	343fc <flash_area_align>
   2daaa:	fbb6 f4f0 	udiv	r4, r6, r0
   2daae:	fb00 6414 	mls	r4, r0, r4, r6
   2dab2:	b2e6      	uxtb	r6, r4
        flash_area_close(fa);
   2dab4:	9803      	ldr	r0, [sp, #12]
   2dab6:	f006 fc1f 	bl	342f8 <flash_area_close>
        if (rem_bytes) {
   2daba:	2e00      	cmp	r6, #0
   2dabc:	d0e3      	beq.n	2da86 <img_mgmt_impl_upload_inspect+0x126>
            action->write_bytes -= rem_bytes;
   2dabe:	68ab      	ldr	r3, [r5, #8]
   2dac0:	1b9c      	subs	r4, r3, r6
   2dac2:	60ac      	str	r4, [r5, #8]
   2dac4:	e7df      	b.n	2da86 <img_mgmt_impl_upload_inspect+0x126>
            return MGMT_ERR_EINVAL;
   2dac6:	2003      	movs	r0, #3
   2dac8:	e7e0      	b.n	2da8c <img_mgmt_impl_upload_inspect+0x12c>
                return MGMT_ERR_EUNKNOWN;
   2daca:	2001      	movs	r0, #1
   2dacc:	e7de      	b.n	2da8c <img_mgmt_impl_upload_inspect+0x12c>
            return MGMT_ERR_EUNKNOWN;
   2dace:	2001      	movs	r0, #1
   2dad0:	e7dc      	b.n	2da8c <img_mgmt_impl_upload_inspect+0x12c>
            return 0;
   2dad2:	2000      	movs	r0, #0
   2dad4:	e7da      	b.n	2da8c <img_mgmt_impl_upload_inspect+0x12c>
   2dad6:	bf00      	nop
   2dad8:	96f3b83d 	.word	0x96f3b83d
   2dadc:	20002f80 	.word	0x20002f80
   2dae0:	20002f8d 	.word	0x20002f8d

0002dae4 <img_mgmt_upload_good_rsp>:
    return 0;
}

static int
img_mgmt_upload_good_rsp(struct mgmt_ctxt *ctxt)
{
   2dae4:	b570      	push	{r4, r5, r6, lr}
   2dae6:	4604      	mov	r4, r0
{ return cbor_encode_text_string(encoder, string, strlen(string)); }
   2dae8:	4d13      	ldr	r5, [pc, #76]	; (2db38 <img_mgmt_upload_good_rsp+0x54>)
   2daea:	4628      	mov	r0, r5
   2daec:	f007 ffb8 	bl	35a60 <strlen>
   2daf0:	4602      	mov	r2, r0
   2daf2:	4629      	mov	r1, r5
   2daf4:	4620      	mov	r0, r4
   2daf6:	f00d f9b6 	bl	3ae66 <cbor_encode_text_string>
   2dafa:	4605      	mov	r5, r0
    CborError err = CborNoError;

    err |= cbor_encode_text_stringz(&ctxt->encoder, "rc");
    err |= cbor_encode_int(&ctxt->encoder, MGMT_ERR_EOK);
   2dafc:	2200      	movs	r2, #0
   2dafe:	2300      	movs	r3, #0
   2db00:	4620      	mov	r0, r4
   2db02:	f00d f92c 	bl	3ad5e <cbor_encode_int>
   2db06:	4305      	orrs	r5, r0
   2db08:	4e0c      	ldr	r6, [pc, #48]	; (2db3c <img_mgmt_upload_good_rsp+0x58>)
   2db0a:	4630      	mov	r0, r6
   2db0c:	f007 ffa8 	bl	35a60 <strlen>
   2db10:	4602      	mov	r2, r0
   2db12:	4631      	mov	r1, r6
   2db14:	4620      	mov	r0, r4
   2db16:	f00d f9a6 	bl	3ae66 <cbor_encode_text_string>
    err |= cbor_encode_text_stringz(&ctxt->encoder, "off");
   2db1a:	4305      	orrs	r5, r0
    err |= cbor_encode_int(&ctxt->encoder, g_img_mgmt_state.off);
   2db1c:	4b08      	ldr	r3, [pc, #32]	; (2db40 <img_mgmt_upload_good_rsp+0x5c>)
   2db1e:	685a      	ldr	r2, [r3, #4]
   2db20:	2300      	movs	r3, #0
   2db22:	4620      	mov	r0, r4
   2db24:	f00d f91b 	bl	3ad5e <cbor_encode_int>

    if (err != 0) {
   2db28:	ea55 0300 	orrs.w	r3, r5, r0
   2db2c:	d101      	bne.n	2db32 <img_mgmt_upload_good_rsp+0x4e>
        return MGMT_ERR_ENOMEM;
    }

    return 0;
   2db2e:	2000      	movs	r0, #0
}
   2db30:	bd70      	pop	{r4, r5, r6, pc}
        return MGMT_ERR_ENOMEM;
   2db32:	2002      	movs	r0, #2
   2db34:	e7fc      	b.n	2db30 <img_mgmt_upload_good_rsp+0x4c>
   2db36:	bf00      	nop
   2db38:	0003f658 	.word	0x0003f658
   2db3c:	0003f65c 	.word	0x0003f65c
   2db40:	20002f80 	.word	0x20002f80

0002db44 <img_mgmt_read_info>:
{
   2db44:	b5f0      	push	{r4, r5, r6, r7, lr}
   2db46:	b08d      	sub	sp, #52	; 0x34
   2db48:	4604      	mov	r4, r0
   2db4a:	460d      	mov	r5, r1
   2db4c:	4616      	mov	r6, r2
   2db4e:	461f      	mov	r7, r3
    rc = img_mgmt_impl_erased_val(image_slot, &erased_val);
   2db50:	f10d 0103 	add.w	r1, sp, #3
   2db54:	f00c fcbf 	bl	3a4d6 <img_mgmt_impl_erased_val>
    if (rc != 0) {
   2db58:	b118      	cbz	r0, 2db62 <img_mgmt_read_info+0x1e>
        return MGMT_ERR_EUNKNOWN;
   2db5a:	2501      	movs	r5, #1
}
   2db5c:	4628      	mov	r0, r5
   2db5e:	b00d      	add	sp, #52	; 0x34
   2db60:	bdf0      	pop	{r4, r5, r6, r7, pc}
    rc = img_mgmt_impl_read(image_slot, 0, &hdr, sizeof hdr);
   2db62:	2320      	movs	r3, #32
   2db64:	aa04      	add	r2, sp, #16
   2db66:	2100      	movs	r1, #0
   2db68:	4620      	mov	r0, r4
   2db6a:	f00c fc96 	bl	3a49a <img_mgmt_impl_read>
    if (rc != 0) {
   2db6e:	2800      	cmp	r0, #0
   2db70:	d179      	bne.n	2dc66 <img_mgmt_read_info+0x122>
    if (ver != NULL) {
   2db72:	b12d      	cbz	r5, 2db80 <img_mgmt_read_info+0x3c>
        memset(ver, erased_val, sizeof(*ver));
   2db74:	2208      	movs	r2, #8
   2db76:	f89d 1003 	ldrb.w	r1, [sp, #3]
   2db7a:	4628      	mov	r0, r5
   2db7c:	f007 ffe2 	bl	35b44 <memset>
    erased_val_32 = ERASED_VAL_32(erased_val);
   2db80:	f89d 2003 	ldrb.w	r2, [sp, #3]
   2db84:	0413      	lsls	r3, r2, #16
   2db86:	ea43 6302 	orr.w	r3, r3, r2, lsl #24
   2db8a:	ea43 2302 	orr.w	r3, r3, r2, lsl #8
   2db8e:	431a      	orrs	r2, r3
    if (hdr.ih_magic == IMAGE_MAGIC) {
   2db90:	9b04      	ldr	r3, [sp, #16]
   2db92:	493b      	ldr	r1, [pc, #236]	; (2dc80 <img_mgmt_read_info+0x13c>)
   2db94:	428b      	cmp	r3, r1
   2db96:	d003      	beq.n	2dba0 <img_mgmt_read_info+0x5c>
    } else if (hdr.ih_magic == erased_val_32) {
   2db98:	4293      	cmp	r3, r2
   2db9a:	d026      	beq.n	2dbea <img_mgmt_read_info+0xa6>
        return MGMT_ERR_EUNKNOWN;
   2db9c:	2501      	movs	r5, #1
   2db9e:	e7dd      	b.n	2db5c <img_mgmt_read_info+0x18>
        if (ver != NULL) {
   2dba0:	b125      	cbz	r5, 2dbac <img_mgmt_read_info+0x68>
            memcpy(ver, &hdr.ih_ver, sizeof(*ver));
   2dba2:	2208      	movs	r2, #8
   2dba4:	a909      	add	r1, sp, #36	; 0x24
   2dba6:	4628      	mov	r0, r5
   2dba8:	f007 ffa8 	bl	35afc <memcpy>
    if (flags != NULL) {
   2dbac:	b10f      	cbz	r7, 2dbb2 <img_mgmt_read_info+0x6e>
        *flags = hdr.ih_flags;
   2dbae:	9b08      	ldr	r3, [sp, #32]
   2dbb0:	603b      	str	r3, [r7, #0]
    data_off = hdr.ih_hdr_size + hdr.ih_img_size;
   2dbb2:	f8bd 3018 	ldrh.w	r3, [sp, #24]
   2dbb6:	9a07      	ldr	r2, [sp, #28]
   2dbb8:	4413      	add	r3, r2
   2dbba:	9302      	str	r3, [sp, #8]
    rc = img_mgmt_find_tlvs(image_slot, &data_off, &data_end, IMAGE_TLV_PROT_INFO_MAGIC);
   2dbbc:	f646 1308 	movw	r3, #26888	; 0x6908
   2dbc0:	aa01      	add	r2, sp, #4
   2dbc2:	a902      	add	r1, sp, #8
   2dbc4:	4620      	mov	r0, r4
   2dbc6:	f00c fca5 	bl	3a514 <img_mgmt_find_tlvs>
    if (!rc) {
   2dbca:	b910      	cbnz	r0, 2dbd2 <img_mgmt_read_info+0x8e>
        data_off = data_end - sizeof(struct image_tlv_info);
   2dbcc:	9b01      	ldr	r3, [sp, #4]
   2dbce:	3b04      	subs	r3, #4
   2dbd0:	9302      	str	r3, [sp, #8]
    rc = img_mgmt_find_tlvs(image_slot, &data_off, &data_end, IMAGE_TLV_INFO_MAGIC);
   2dbd2:	f646 1307 	movw	r3, #26887	; 0x6907
   2dbd6:	aa01      	add	r2, sp, #4
   2dbd8:	a902      	add	r1, sp, #8
   2dbda:	4620      	mov	r0, r4
   2dbdc:	f00c fc9a 	bl	3a514 <img_mgmt_find_tlvs>
    if (rc != 0) {
   2dbe0:	4605      	mov	r5, r0
   2dbe2:	2800      	cmp	r0, #0
   2dbe4:	d141      	bne.n	2dc6a <img_mgmt_read_info+0x126>
    hash_found = false;
   2dbe6:	2700      	movs	r7, #0
   2dbe8:	e00f      	b.n	2dc0a <img_mgmt_read_info+0xc6>
        return MGMT_ERR_ENOENT;
   2dbea:	2505      	movs	r5, #5
   2dbec:	e7b6      	b.n	2db5c <img_mgmt_read_info+0x18>
        if (tlv.it_type == 0xff && tlv.it_len == 0xffff) {
   2dbee:	f8bd 100e 	ldrh.w	r1, [sp, #14]
   2dbf2:	f64f 72ff 	movw	r2, #65535	; 0xffff
   2dbf6:	4291      	cmp	r1, r2
   2dbf8:	d116      	bne.n	2dc28 <img_mgmt_read_info+0xe4>
            return MGMT_ERR_EUNKNOWN;
   2dbfa:	2501      	movs	r5, #1
   2dbfc:	e7ae      	b.n	2db5c <img_mgmt_read_info+0x18>
            data_off += sizeof tlv + tlv.it_len;
   2dbfe:	f8bd 300e 	ldrh.w	r3, [sp, #14]
   2dc02:	9a02      	ldr	r2, [sp, #8]
   2dc04:	4413      	add	r3, r2
   2dc06:	3304      	adds	r3, #4
   2dc08:	9302      	str	r3, [sp, #8]
    while (data_off + sizeof tlv <= data_end) {
   2dc0a:	9902      	ldr	r1, [sp, #8]
   2dc0c:	1d0a      	adds	r2, r1, #4
   2dc0e:	9b01      	ldr	r3, [sp, #4]
   2dc10:	429a      	cmp	r2, r3
   2dc12:	d823      	bhi.n	2dc5c <img_mgmt_read_info+0x118>
        rc = img_mgmt_impl_read(image_slot, data_off, &tlv, sizeof tlv);
   2dc14:	2304      	movs	r3, #4
   2dc16:	aa03      	add	r2, sp, #12
   2dc18:	4620      	mov	r0, r4
   2dc1a:	f00c fc3e 	bl	3a49a <img_mgmt_impl_read>
        if (rc != 0) {
   2dc1e:	bb30      	cbnz	r0, 2dc6e <img_mgmt_read_info+0x12a>
        if (tlv.it_type == 0xff && tlv.it_len == 0xffff) {
   2dc20:	f89d 300c 	ldrb.w	r3, [sp, #12]
   2dc24:	2bff      	cmp	r3, #255	; 0xff
   2dc26:	d0e2      	beq.n	2dbee <img_mgmt_read_info+0xaa>
        if (tlv.it_type != IMAGE_TLV_SHA256 || tlv.it_len != IMAGE_HASH_LEN) {
   2dc28:	2b10      	cmp	r3, #16
   2dc2a:	d1e8      	bne.n	2dbfe <img_mgmt_read_info+0xba>
   2dc2c:	f8bd 300e 	ldrh.w	r3, [sp, #14]
   2dc30:	2b20      	cmp	r3, #32
   2dc32:	d1e4      	bne.n	2dbfe <img_mgmt_read_info+0xba>
        if (hash_found) {
   2dc34:	b9ef      	cbnz	r7, 2dc72 <img_mgmt_read_info+0x12e>
        data_off += sizeof tlv;
   2dc36:	9902      	ldr	r1, [sp, #8]
   2dc38:	3104      	adds	r1, #4
   2dc3a:	9102      	str	r1, [sp, #8]
        if (hash != NULL) {
   2dc3c:	b166      	cbz	r6, 2dc58 <img_mgmt_read_info+0x114>
            if (data_off + IMAGE_HASH_LEN > data_end) {
   2dc3e:	f101 0320 	add.w	r3, r1, #32
   2dc42:	9a01      	ldr	r2, [sp, #4]
   2dc44:	4293      	cmp	r3, r2
   2dc46:	d816      	bhi.n	2dc76 <img_mgmt_read_info+0x132>
            rc = img_mgmt_impl_read(image_slot, data_off, hash,
   2dc48:	2320      	movs	r3, #32
   2dc4a:	4632      	mov	r2, r6
   2dc4c:	4620      	mov	r0, r4
   2dc4e:	f00c fc24 	bl	3a49a <img_mgmt_impl_read>
            if (rc != 0) {
   2dc52:	b990      	cbnz	r0, 2dc7a <img_mgmt_read_info+0x136>
        hash_found = true;
   2dc54:	2701      	movs	r7, #1
   2dc56:	e7d8      	b.n	2dc0a <img_mgmt_read_info+0xc6>
   2dc58:	2701      	movs	r7, #1
   2dc5a:	e7d6      	b.n	2dc0a <img_mgmt_read_info+0xc6>
    if (!hash_found) {
   2dc5c:	2f00      	cmp	r7, #0
   2dc5e:	f47f af7d 	bne.w	2db5c <img_mgmt_read_info+0x18>
        return MGMT_ERR_EUNKNOWN;
   2dc62:	2501      	movs	r5, #1
   2dc64:	e77a      	b.n	2db5c <img_mgmt_read_info+0x18>
        return MGMT_ERR_EUNKNOWN;
   2dc66:	2501      	movs	r5, #1
   2dc68:	e778      	b.n	2db5c <img_mgmt_read_info+0x18>
        return MGMT_ERR_EUNKNOWN;
   2dc6a:	2501      	movs	r5, #1
   2dc6c:	e776      	b.n	2db5c <img_mgmt_read_info+0x18>
            return MGMT_ERR_EUNKNOWN;
   2dc6e:	2501      	movs	r5, #1
   2dc70:	e774      	b.n	2db5c <img_mgmt_read_info+0x18>
            return MGMT_ERR_EUNKNOWN;
   2dc72:	2501      	movs	r5, #1
   2dc74:	e772      	b.n	2db5c <img_mgmt_read_info+0x18>
                return MGMT_ERR_EUNKNOWN;
   2dc76:	2501      	movs	r5, #1
   2dc78:	e770      	b.n	2db5c <img_mgmt_read_info+0x18>
                return MGMT_ERR_EUNKNOWN;
   2dc7a:	2501      	movs	r5, #1
   2dc7c:	e76e      	b.n	2db5c <img_mgmt_read_info+0x18>
   2dc7e:	bf00      	nop
   2dc80:	96f3b83d 	.word	0x96f3b83d

0002dc84 <img_mgmt_dfu_stopped>:
    return img_mgmt_upload_good_rsp(ctxt);
}

void
img_mgmt_dfu_stopped(void)
{
   2dc84:	b508      	push	{r3, lr}
    if (img_mgmt_dfu_callbacks_fn && img_mgmt_dfu_callbacks_fn->dfu_stopped_cb) {
   2dc86:	4b03      	ldr	r3, [pc, #12]	; (2dc94 <img_mgmt_dfu_stopped+0x10>)
   2dc88:	681b      	ldr	r3, [r3, #0]
   2dc8a:	b113      	cbz	r3, 2dc92 <img_mgmt_dfu_stopped+0xe>
   2dc8c:	685b      	ldr	r3, [r3, #4]
   2dc8e:	b103      	cbz	r3, 2dc92 <img_mgmt_dfu_stopped+0xe>
        img_mgmt_dfu_callbacks_fn->dfu_stopped_cb();
   2dc90:	4798      	blx	r3
    }
}
   2dc92:	bd08      	pop	{r3, pc}
   2dc94:	20002fb0 	.word	0x20002fb0

0002dc98 <img_mgmt_erase>:
{
   2dc98:	b570      	push	{r4, r5, r6, lr}
   2dc9a:	b082      	sub	sp, #8
   2dc9c:	4604      	mov	r4, r0
    rc = img_mgmt_read_info(1, &ver, NULL, NULL);
   2dc9e:	2300      	movs	r3, #0
   2dca0:	461a      	mov	r2, r3
   2dca2:	4669      	mov	r1, sp
   2dca4:	2001      	movs	r0, #1
   2dca6:	f7ff ff4d 	bl	2db44 <img_mgmt_read_info>
    if (rc == 0) {
   2dcaa:	b918      	cbnz	r0, 2dcb4 <img_mgmt_erase+0x1c>
        if (img_mgmt_slot_in_use(1)) {
   2dcac:	2001      	movs	r0, #1
   2dcae:	f00c fcc5 	bl	3a63c <img_mgmt_slot_in_use>
   2dcb2:	b9d8      	cbnz	r0, 2dcec <img_mgmt_erase+0x54>
    rc = img_mgmt_impl_erase_slot();
   2dcb4:	f00c fbbd 	bl	3a432 <img_mgmt_impl_erase_slot>
    if (!rc) {
   2dcb8:	4606      	mov	r6, r0
   2dcba:	b1a0      	cbz	r0, 2dce6 <img_mgmt_erase+0x4e>
   2dcbc:	4d0d      	ldr	r5, [pc, #52]	; (2dcf4 <img_mgmt_erase+0x5c>)
   2dcbe:	4628      	mov	r0, r5
   2dcc0:	f007 fece 	bl	35a60 <strlen>
   2dcc4:	4602      	mov	r2, r0
   2dcc6:	4629      	mov	r1, r5
   2dcc8:	4620      	mov	r0, r4
   2dcca:	f00d f8cc 	bl	3ae66 <cbor_encode_text_string>
   2dcce:	4605      	mov	r5, r0
    err |= cbor_encode_int(&ctxt->encoder, rc);
   2dcd0:	4632      	mov	r2, r6
   2dcd2:	17f3      	asrs	r3, r6, #31
   2dcd4:	4620      	mov	r0, r4
   2dcd6:	f00d f842 	bl	3ad5e <cbor_encode_int>
    if (err != 0) {
   2dcda:	ea50 0305 	orrs.w	r3, r0, r5
   2dcde:	d107      	bne.n	2dcf0 <img_mgmt_erase+0x58>
    return 0;
   2dce0:	2000      	movs	r0, #0
}
   2dce2:	b002      	add	sp, #8
   2dce4:	bd70      	pop	{r4, r5, r6, pc}
        img_mgmt_dfu_stopped();
   2dce6:	f7ff ffcd 	bl	2dc84 <img_mgmt_dfu_stopped>
   2dcea:	e7e7      	b.n	2dcbc <img_mgmt_erase+0x24>
            return MGMT_ERR_EBADSTATE;
   2dcec:	2006      	movs	r0, #6
   2dcee:	e7f8      	b.n	2dce2 <img_mgmt_erase+0x4a>
        return MGMT_ERR_ENOMEM;
   2dcf0:	2002      	movs	r0, #2
   2dcf2:	e7f6      	b.n	2dce2 <img_mgmt_erase+0x4a>
   2dcf4:	0003f658 	.word	0x0003f658

0002dcf8 <img_mgmt_dfu_started>:

void
img_mgmt_dfu_started(void)
{
   2dcf8:	b508      	push	{r3, lr}
    if (img_mgmt_dfu_callbacks_fn && img_mgmt_dfu_callbacks_fn->dfu_started_cb) {
   2dcfa:	4b03      	ldr	r3, [pc, #12]	; (2dd08 <img_mgmt_dfu_started+0x10>)
   2dcfc:	681b      	ldr	r3, [r3, #0]
   2dcfe:	b113      	cbz	r3, 2dd06 <img_mgmt_dfu_started+0xe>
   2dd00:	681b      	ldr	r3, [r3, #0]
   2dd02:	b103      	cbz	r3, 2dd06 <img_mgmt_dfu_started+0xe>
        img_mgmt_dfu_callbacks_fn->dfu_started_cb();
   2dd04:	4798      	blx	r3
    }
}
   2dd06:	bd08      	pop	{r3, pc}
   2dd08:	20002fb0 	.word	0x20002fb0

0002dd0c <img_mgmt_dfu_pending>:

void
img_mgmt_dfu_pending(void)
{
   2dd0c:	b508      	push	{r3, lr}
    if (img_mgmt_dfu_callbacks_fn && img_mgmt_dfu_callbacks_fn->dfu_pending_cb) {
   2dd0e:	4b03      	ldr	r3, [pc, #12]	; (2dd1c <img_mgmt_dfu_pending+0x10>)
   2dd10:	681b      	ldr	r3, [r3, #0]
   2dd12:	b113      	cbz	r3, 2dd1a <img_mgmt_dfu_pending+0xe>
   2dd14:	689b      	ldr	r3, [r3, #8]
   2dd16:	b103      	cbz	r3, 2dd1a <img_mgmt_dfu_pending+0xe>
        img_mgmt_dfu_callbacks_fn->dfu_pending_cb();
   2dd18:	4798      	blx	r3
    }
}
   2dd1a:	bd08      	pop	{r3, pc}
   2dd1c:	20002fb0 	.word	0x20002fb0

0002dd20 <img_mgmt_upload>:
{
   2dd20:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   2dd24:	f5ad 7d70 	sub.w	sp, sp, #960	; 0x3c0
   2dd28:	4605      	mov	r5, r0
    struct img_mgmt_upload_req req = {
   2dd2a:	ac5c      	add	r4, sp, #368	; 0x170
   2dd2c:	f44f 7212 	mov.w	r2, #584	; 0x248
   2dd30:	2100      	movs	r1, #0
   2dd32:	4620      	mov	r0, r4
   2dd34:	f007 ff06 	bl	35b44 <memset>
   2dd38:	f04f 32ff 	mov.w	r2, #4294967295
   2dd3c:	f04f 33ff 	mov.w	r3, #4294967295
   2dd40:	e9c4 2302 	strd	r2, r3, [r4, #8]
   2dd44:	e9c4 2304 	strd	r2, r3, [r4, #16]
    const struct cbor_attr_t off_attr[] = {
   2dd48:	f44f 72a8 	mov.w	r2, #336	; 0x150
   2dd4c:	2100      	movs	r1, #0
   2dd4e:	a808      	add	r0, sp, #32
   2dd50:	f007 fef8 	bl	35b44 <memset>
   2dd54:	4b6f      	ldr	r3, [pc, #444]	; (2df14 <img_mgmt_upload+0x1f4>)
   2dd56:	9308      	str	r3, [sp, #32]
   2dd58:	2202      	movs	r2, #2
   2dd5a:	f88d 2024 	strb.w	r2, [sp, #36]	; 0x24
   2dd5e:	940a      	str	r4, [sp, #40]	; 0x28
   2dd60:	2301      	movs	r3, #1
   2dd62:	f88d 304c 	strb.w	r3, [sp, #76]	; 0x4c
   2dd66:	496c      	ldr	r1, [pc, #432]	; (2df18 <img_mgmt_upload+0x1f8>)
   2dd68:	9114      	str	r1, [sp, #80]	; 0x50
   2dd6a:	2103      	movs	r1, #3
   2dd6c:	f88d 1054 	strb.w	r1, [sp, #84]	; 0x54
   2dd70:	a864      	add	r0, sp, #400	; 0x190
   2dd72:	9016      	str	r0, [sp, #88]	; 0x58
   2dd74:	a862      	add	r0, sp, #392	; 0x188
   2dd76:	9017      	str	r0, [sp, #92]	; 0x5c
   2dd78:	f44f 7000 	mov.w	r0, #512	; 0x200
   2dd7c:	901e      	str	r0, [sp, #120]	; 0x78
   2dd7e:	4867      	ldr	r0, [pc, #412]	; (2df1c <img_mgmt_upload+0x1fc>)
   2dd80:	9020      	str	r0, [sp, #128]	; 0x80
   2dd82:	f88d 2084 	strb.w	r2, [sp, #132]	; 0x84
   2dd86:	a860      	add	r0, sp, #384	; 0x180
   2dd88:	9022      	str	r0, [sp, #136]	; 0x88
   2dd8a:	f88d 30ac 	strb.w	r3, [sp, #172]	; 0xac
   2dd8e:	4864      	ldr	r0, [pc, #400]	; (2df20 <img_mgmt_upload+0x200>)
   2dd90:	902c      	str	r0, [sp, #176]	; 0xb0
   2dd92:	f88d 20b4 	strb.w	r2, [sp, #180]	; 0xb4
   2dd96:	aa5e      	add	r2, sp, #376	; 0x178
   2dd98:	922e      	str	r2, [sp, #184]	; 0xb8
   2dd9a:	f88d 30dc 	strb.w	r3, [sp, #220]	; 0xdc
   2dd9e:	4b61      	ldr	r3, [pc, #388]	; (2df24 <img_mgmt_upload+0x204>)
   2dda0:	9338      	str	r3, [sp, #224]	; 0xe0
   2dda2:	f88d 10e4 	strb.w	r1, [sp, #228]	; 0xe4
   2dda6:	abe4      	add	r3, sp, #912	; 0x390
   2dda8:	933a      	str	r3, [sp, #232]	; 0xe8
   2ddaa:	ab63      	add	r3, sp, #396	; 0x18c
   2ddac:	933b      	str	r3, [sp, #236]	; 0xec
   2ddae:	2320      	movs	r3, #32
   2ddb0:	9342      	str	r3, [sp, #264]	; 0x108
   2ddb2:	4b5d      	ldr	r3, [pc, #372]	; (2df28 <img_mgmt_upload+0x208>)
   2ddb4:	9344      	str	r3, [sp, #272]	; 0x110
   2ddb6:	2305      	movs	r3, #5
   2ddb8:	f88d 3114 	strb.w	r3, [sp, #276]	; 0x114
   2ddbc:	abec      	add	r3, sp, #944	; 0x3b0
   2ddbe:	9346      	str	r3, [sp, #280]	; 0x118
    const char *errstr = NULL;
   2ddc0:	2300      	movs	r3, #0
   2ddc2:	9307      	str	r3, [sp, #28]
    rc = cbor_read_object(&ctxt->it, off_attr);
   2ddc4:	a908      	add	r1, sp, #32
   2ddc6:	f105 001c 	add.w	r0, r5, #28
   2ddca:	f00c faee 	bl	3a3aa <cbor_read_object>
    if (rc != 0) {
   2ddce:	2800      	cmp	r0, #0
   2ddd0:	f040 8099 	bne.w	2df06 <img_mgmt_upload+0x1e6>
    rc = img_mgmt_impl_upload_inspect(&req, &action, &errstr);
   2ddd4:	aa07      	add	r2, sp, #28
   2ddd6:	4669      	mov	r1, sp
   2ddd8:	a85c      	add	r0, sp, #368	; 0x170
   2ddda:	f7ff fdc1 	bl	2d960 <img_mgmt_impl_upload_inspect>
    if (rc != 0) {
   2ddde:	4604      	mov	r4, r0
   2dde0:	2800      	cmp	r0, #0
   2dde2:	d13a      	bne.n	2de5a <img_mgmt_upload+0x13a>
    if (!action.proceed) {
   2dde4:	f89d 6010 	ldrb.w	r6, [sp, #16]
   2dde8:	2e00      	cmp	r6, #0
   2ddea:	d039      	beq.n	2de60 <img_mgmt_upload+0x140>
    if (img_mgmt_upload_cb != NULL) {
   2ddec:	4b4f      	ldr	r3, [pc, #316]	; (2df2c <img_mgmt_upload+0x20c>)
   2ddee:	681b      	ldr	r3, [r3, #0]
   2ddf0:	b13b      	cbz	r3, 2de02 <img_mgmt_upload+0xe2>
        rc = img_mgmt_upload_cb(req.off, action.size, img_mgmt_upload_arg);
   2ddf2:	4a4f      	ldr	r2, [pc, #316]	; (2df30 <img_mgmt_upload+0x210>)
   2ddf4:	6812      	ldr	r2, [r2, #0]
   2ddf6:	9900      	ldr	r1, [sp, #0]
   2ddf8:	985e      	ldr	r0, [sp, #376]	; 0x178
   2ddfa:	4798      	blx	r3
        if (rc != 0) {
   2ddfc:	4604      	mov	r4, r0
   2ddfe:	2800      	cmp	r0, #0
   2de00:	d133      	bne.n	2de6a <img_mgmt_upload+0x14a>
    g_img_mgmt_state.area_id = action.area_id;
   2de02:	9a03      	ldr	r2, [sp, #12]
   2de04:	4b4b      	ldr	r3, [pc, #300]	; (2df34 <img_mgmt_upload+0x214>)
   2de06:	601a      	str	r2, [r3, #0]
    g_img_mgmt_state.size = action.size;
   2de08:	9a00      	ldr	r2, [sp, #0]
   2de0a:	609a      	str	r2, [r3, #8]
    if (req.off == 0) {
   2de0c:	e9dd 235e 	ldrd	r2, r3, [sp, #376]	; 0x178
   2de10:	4313      	orrs	r3, r2
   2de12:	d048      	beq.n	2dea6 <img_mgmt_upload+0x186>
    if (req.data_len != 0) {
   2de14:	9b62      	ldr	r3, [sp, #392]	; 0x188
   2de16:	b353      	cbz	r3, 2de6e <img_mgmt_upload+0x14e>
        if (g_img_mgmt_state.off + req.data_len == g_img_mgmt_state.size) {
   2de18:	4a46      	ldr	r2, [pc, #280]	; (2df34 <img_mgmt_upload+0x214>)
   2de1a:	6851      	ldr	r1, [r2, #4]
   2de1c:	440b      	add	r3, r1
   2de1e:	6892      	ldr	r2, [r2, #8]
   2de20:	4293      	cmp	r3, r2
   2de22:	d000      	beq.n	2de26 <img_mgmt_upload+0x106>
    bool last = false;
   2de24:	2600      	movs	r6, #0
        rc = img_mgmt_impl_write_image_data(req.off, req.img_data, action.write_bytes, last);
   2de26:	4633      	mov	r3, r6
   2de28:	9a02      	ldr	r2, [sp, #8]
   2de2a:	a964      	add	r1, sp, #400	; 0x190
   2de2c:	985e      	ldr	r0, [sp, #376]	; 0x178
   2de2e:	f7ff fccf 	bl	2d7d0 <img_mgmt_impl_write_image_data>
        if (rc != 0) {
   2de32:	4604      	mov	r4, r0
   2de34:	2800      	cmp	r0, #0
   2de36:	d15f      	bne.n	2def8 <img_mgmt_upload+0x1d8>
            g_img_mgmt_state.off += action.write_bytes;
   2de38:	9b02      	ldr	r3, [sp, #8]
   2de3a:	4a3e      	ldr	r2, [pc, #248]	; (2df34 <img_mgmt_upload+0x214>)
   2de3c:	6851      	ldr	r1, [r2, #4]
   2de3e:	440b      	add	r3, r1
   2de40:	6053      	str	r3, [r2, #4]
            if (g_img_mgmt_state.off == g_img_mgmt_state.size) {
   2de42:	6892      	ldr	r2, [r2, #8]
   2de44:	4293      	cmp	r3, r2
   2de46:	d112      	bne.n	2de6e <img_mgmt_upload+0x14e>
                img_mgmt_dfu_pending();
   2de48:	f7ff ff60 	bl	2dd0c <img_mgmt_dfu_pending>
                cmd_status_arg.status = IMG_MGMT_ID_UPLOAD_STATUS_ONGOING;
   2de4c:	2301      	movs	r3, #1
   2de4e:	93ef      	str	r3, [sp, #956]	; 0x3bc
                g_img_mgmt_state.area_id = -1;
   2de50:	4b38      	ldr	r3, [pc, #224]	; (2df34 <img_mgmt_upload+0x214>)
   2de52:	f04f 32ff 	mov.w	r2, #4294967295
   2de56:	601a      	str	r2, [r3, #0]
   2de58:	e009      	b.n	2de6e <img_mgmt_upload+0x14e>
        img_mgmt_dfu_stopped();
   2de5a:	f7ff ff13 	bl	2dc84 <img_mgmt_dfu_stopped>
        return rc;
   2de5e:	e053      	b.n	2df08 <img_mgmt_upload+0x1e8>
        return img_mgmt_upload_good_rsp(ctxt);
   2de60:	4628      	mov	r0, r5
   2de62:	f7ff fe3f 	bl	2dae4 <img_mgmt_upload_good_rsp>
   2de66:	4604      	mov	r4, r0
   2de68:	e04e      	b.n	2df08 <img_mgmt_upload+0x1e8>
            errstr = img_mgmt_err_str_app_reject;
   2de6a:	2300      	movs	r3, #0
   2de6c:	9307      	str	r3, [sp, #28]
    img_mgmt_upload_log(req.off == 0, g_img_mgmt_state.off == g_img_mgmt_state.size, rc);
   2de6e:	985e      	ldr	r0, [sp, #376]	; 0x178
   2de70:	9a5f      	ldr	r2, [sp, #380]	; 0x17c
   2de72:	4b30      	ldr	r3, [pc, #192]	; (2df34 <img_mgmt_upload+0x214>)
   2de74:	6859      	ldr	r1, [r3, #4]
   2de76:	689b      	ldr	r3, [r3, #8]
   2de78:	4302      	orrs	r2, r0
   2de7a:	bf0c      	ite	eq
   2de7c:	2001      	moveq	r0, #1
   2de7e:	2000      	movne	r0, #0
   2de80:	4622      	mov	r2, r4
   2de82:	4299      	cmp	r1, r3
   2de84:	bf14      	ite	ne
   2de86:	2100      	movne	r1, #0
   2de88:	2101      	moveq	r1, #1
   2de8a:	f00c fb60 	bl	3a54e <img_mgmt_upload_log>
    mgmt_evt(MGMT_EVT_OP_CMD_STATUS, MGMT_GROUP_ID_IMAGE, IMG_MGMT_ID_UPLOAD,
   2de8e:	abef      	add	r3, sp, #956	; 0x3bc
   2de90:	2201      	movs	r2, #1
   2de92:	4611      	mov	r1, r2
   2de94:	2002      	movs	r0, #2
   2de96:	f000 fb7b 	bl	2e590 <mgmt_evt>
    if (rc != 0) {
   2de9a:	bb8c      	cbnz	r4, 2df00 <img_mgmt_upload+0x1e0>
    return img_mgmt_upload_good_rsp(ctxt);
   2de9c:	4628      	mov	r0, r5
   2de9e:	f7ff fe21 	bl	2dae4 <img_mgmt_upload_good_rsp>
   2dea2:	4604      	mov	r4, r0
   2dea4:	e030      	b.n	2df08 <img_mgmt_upload+0x1e8>
        g_img_mgmt_state.off = 0;
   2dea6:	4f23      	ldr	r7, [pc, #140]	; (2df34 <img_mgmt_upload+0x214>)
   2dea8:	f04f 0800 	mov.w	r8, #0
   2deac:	f8c7 8004 	str.w	r8, [r7, #4]
        img_mgmt_dfu_started();
   2deb0:	f7ff ff22 	bl	2dcf8 <img_mgmt_dfu_started>
        cmd_status_arg.status = IMG_MGMT_ID_UPLOAD_STATUS_START;
   2deb4:	f8cd 83bc 	str.w	r8, [sp, #956]	; 0x3bc
        g_img_mgmt_state.data_sha_len = req.data_sha_len;
   2deb8:	9a63      	ldr	r2, [sp, #396]	; 0x18c
   2deba:	733a      	strb	r2, [r7, #12]
        memcpy(g_img_mgmt_state.data_sha, req.data_sha, req.data_sha_len);
   2debc:	a9e4      	add	r1, sp, #912	; 0x390
   2debe:	f107 000d 	add.w	r0, r7, #13
   2dec2:	f007 fe1b 	bl	35afc <memcpy>
        memset(&g_img_mgmt_state.data_sha[req.data_sha_len], 0,
   2dec6:	9a63      	ldr	r2, [sp, #396]	; 0x18c
   2dec8:	f102 0008 	add.w	r0, r2, #8
   2decc:	4438      	add	r0, r7
   2dece:	f1c2 0220 	rsb	r2, r2, #32
   2ded2:	4641      	mov	r1, r8
   2ded4:	3005      	adds	r0, #5
   2ded6:	f007 fe35 	bl	35b44 <memset>
        if (action.erase) {
   2deda:	f89d 3011 	ldrb.w	r3, [sp, #17]
   2dede:	2b00      	cmp	r3, #0
   2dee0:	d098      	beq.n	2de14 <img_mgmt_upload+0xf4>
            rc = img_mgmt_impl_erase_image_data(0, req.size);
   2dee2:	9960      	ldr	r1, [sp, #384]	; 0x180
   2dee4:	4640      	mov	r0, r8
   2dee6:	f7ff fc9b 	bl	2d820 <img_mgmt_impl_erase_image_data>
            if (rc != 0) {
   2deea:	4604      	mov	r4, r0
   2deec:	2800      	cmp	r0, #0
   2deee:	d091      	beq.n	2de14 <img_mgmt_upload+0xf4>
                errstr = img_mgmt_err_str_flash_erase_failed;
   2def0:	f8cd 801c 	str.w	r8, [sp, #28]
                rc = MGMT_ERR_EUNKNOWN;
   2def4:	2401      	movs	r4, #1
                goto end;
   2def6:	e7ba      	b.n	2de6e <img_mgmt_upload+0x14e>
            errstr = img_mgmt_err_str_flash_write_failed;
   2def8:	2300      	movs	r3, #0
   2defa:	9307      	str	r3, [sp, #28]
            rc = MGMT_ERR_EUNKNOWN;
   2defc:	2401      	movs	r4, #1
            goto end;
   2defe:	e7b6      	b.n	2de6e <img_mgmt_upload+0x14e>
        img_mgmt_dfu_stopped();
   2df00:	f7ff fec0 	bl	2dc84 <img_mgmt_dfu_stopped>
        return img_mgmt_error_rsp(ctxt, rc, errstr);
   2df04:	e000      	b.n	2df08 <img_mgmt_upload+0x1e8>
        return MGMT_ERR_EINVAL;
   2df06:	2403      	movs	r4, #3
}
   2df08:	4620      	mov	r0, r4
   2df0a:	f50d 7d70 	add.w	sp, sp, #960	; 0x3c0
   2df0e:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
   2df12:	bf00      	nop
   2df14:	0003f660 	.word	0x0003f660
   2df18:	0003f668 	.word	0x0003f668
   2df1c:	0003f670 	.word	0x0003f670
   2df20:	0003f65c 	.word	0x0003f65c
   2df24:	0003f674 	.word	0x0003f674
   2df28:	0003f678 	.word	0x0003f678
   2df2c:	20002fb8 	.word	0x20002fb8
   2df30:	20002fb4 	.word	0x20002fb4
   2df34:	20002f80 	.word	0x20002f80

0002df38 <img_mgmt_dfu_confirmed>:

void
img_mgmt_dfu_confirmed(void)
{
   2df38:	b508      	push	{r3, lr}
    if (img_mgmt_dfu_callbacks_fn && img_mgmt_dfu_callbacks_fn->dfu_confirmed_cb) {
   2df3a:	4b03      	ldr	r3, [pc, #12]	; (2df48 <img_mgmt_dfu_confirmed+0x10>)
   2df3c:	681b      	ldr	r3, [r3, #0]
   2df3e:	b113      	cbz	r3, 2df46 <img_mgmt_dfu_confirmed+0xe>
   2df40:	68db      	ldr	r3, [r3, #12]
   2df42:	b103      	cbz	r3, 2df46 <img_mgmt_dfu_confirmed+0xe>
        img_mgmt_dfu_callbacks_fn->dfu_confirmed_cb();
   2df44:	4798      	blx	r3
    }
}
   2df46:	bd08      	pop	{r3, pc}
   2df48:	20002fb0 	.word	0x20002fb0

0002df4c <img_mgmt_register_group>:
    return img_mgmt_read_info(IMG_MGMT_BOOT_CURR_SLOT, ver, NULL, NULL);
}

void
img_mgmt_register_group(void)
{
   2df4c:	b508      	push	{r3, lr}
    mgmt_register_group(&img_mgmt_group);
   2df4e:	4802      	ldr	r0, [pc, #8]	; (2df58 <img_mgmt_register_group+0xc>)
   2df50:	f000 fafa 	bl	2e548 <mgmt_register_group>
}
   2df54:	bd08      	pop	{r3, pc}
   2df56:	bf00      	nop
   2df58:	20000744 	.word	0x20000744

0002df5c <img_mgmt_state_read>:
/**
 * Command handler: image state read
 */
int
img_mgmt_state_read(struct mgmt_ctxt *ctxt)
{
   2df5c:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   2df60:	b09a      	sub	sp, #104	; 0x68
   2df62:	4606      	mov	r6, r0
   2df64:	4c73      	ldr	r4, [pc, #460]	; (2e134 <img_mgmt_state_read+0x1d8>)
   2df66:	4620      	mov	r0, r4
   2df68:	f007 fd7a 	bl	35a60 <strlen>
   2df6c:	4602      	mov	r2, r0
   2df6e:	4621      	mov	r1, r4
   2df70:	4630      	mov	r0, r6
   2df72:	f00c ff78 	bl	3ae66 <cbor_encode_text_string>
   2df76:	4604      	mov	r4, r0
    int i;

    err = 0;
    err |= cbor_encode_text_stringz(&ctxt->encoder, "images");

    err |= cbor_encoder_create_array(&ctxt->encoder, &images,
   2df78:	f04f 32ff 	mov.w	r2, #4294967295
   2df7c:	a905      	add	r1, sp, #20
   2df7e:	4630      	mov	r0, r6
   2df80:	f00c ff78 	bl	3ae74 <cbor_encoder_create_array>
   2df84:	4304      	orrs	r4, r0
                                       CborIndefiniteLength);

    for (i = 0; i < 2 * IMG_MGMT_UPDATABLE_IMAGE_NUMBER; i++) {
   2df86:	2500      	movs	r5, #0
   2df88:	e000      	b.n	2df8c <img_mgmt_state_read+0x30>
   2df8a:	3501      	adds	r5, #1
   2df8c:	2d01      	cmp	r5, #1
   2df8e:	f300 80b4 	bgt.w	2e0fa <img_mgmt_state_read+0x19e>
        rc = img_mgmt_read_info(i, &ver, hash, &flags);
   2df92:	466b      	mov	r3, sp
   2df94:	aa0b      	add	r2, sp, #44	; 0x2c
   2df96:	a909      	add	r1, sp, #36	; 0x24
   2df98:	4628      	mov	r0, r5
   2df9a:	f7ff fdd3 	bl	2db44 <img_mgmt_read_info>
        if (rc != 0) {
   2df9e:	2800      	cmp	r0, #0
   2dfa0:	d1f3      	bne.n	2df8a <img_mgmt_state_read+0x2e>
            continue;
        }

        state_flags = img_mgmt_state_flags(i);
   2dfa2:	4628      	mov	r0, r5
   2dfa4:	f00c fb14 	bl	3a5d0 <img_mgmt_state_flags>
   2dfa8:	4607      	mov	r7, r0

        err |= cbor_encoder_create_map(&images, &image,
   2dfaa:	f04f 32ff 	mov.w	r2, #4294967295
   2dfae:	a901      	add	r1, sp, #4
   2dfb0:	a805      	add	r0, sp, #20
   2dfb2:	f00c ff64 	bl	3ae7e <cbor_encoder_create_map>
   2dfb6:	4304      	orrs	r4, r0
   2dfb8:	f8df 8180 	ldr.w	r8, [pc, #384]	; 2e13c <img_mgmt_state_read+0x1e0>
   2dfbc:	4640      	mov	r0, r8
   2dfbe:	f007 fd4f 	bl	35a60 <strlen>
   2dfc2:	4602      	mov	r2, r0
   2dfc4:	4641      	mov	r1, r8
   2dfc6:	a801      	add	r0, sp, #4
   2dfc8:	f00c ff4d 	bl	3ae66 <cbor_encode_text_string>

#if IMG_MGMT_UPDATABLE_IMAGE_NUMBER > 1
        err |= cbor_encode_text_stringz(&image, "image");
        err |= cbor_encode_int(&image, i >> 1);
#endif
        err |= cbor_encode_text_stringz(&image, "slot");
   2dfcc:	4304      	orrs	r4, r0
        err |= cbor_encode_int(&image, i % 2);
   2dfce:	2d00      	cmp	r5, #0
   2dfd0:	f005 0201 	and.w	r2, r5, #1
   2dfd4:	bfb8      	it	lt
   2dfd6:	4252      	neglt	r2, r2
   2dfd8:	17d3      	asrs	r3, r2, #31
   2dfda:	a801      	add	r0, sp, #4
   2dfdc:	f00c febf 	bl	3ad5e <cbor_encode_int>
   2dfe0:	4304      	orrs	r4, r0
   2dfe2:	f8df 815c 	ldr.w	r8, [pc, #348]	; 2e140 <img_mgmt_state_read+0x1e4>
   2dfe6:	4640      	mov	r0, r8
   2dfe8:	f007 fd3a 	bl	35a60 <strlen>
   2dfec:	4602      	mov	r2, r0
   2dfee:	4641      	mov	r1, r8
   2dff0:	a801      	add	r0, sp, #4
   2dff2:	f00c ff38 	bl	3ae66 <cbor_encode_text_string>

        err |= cbor_encode_text_stringz(&image, "version");
   2dff6:	4304      	orrs	r4, r0
        img_mgmt_ver_str(&ver, vers_str);
   2dff8:	a913      	add	r1, sp, #76	; 0x4c
   2dffa:	a809      	add	r0, sp, #36	; 0x24
   2dffc:	f00c fb6a 	bl	3a6d4 <img_mgmt_ver_str>
   2e000:	a813      	add	r0, sp, #76	; 0x4c
   2e002:	f007 fd2d 	bl	35a60 <strlen>
   2e006:	4602      	mov	r2, r0
   2e008:	a913      	add	r1, sp, #76	; 0x4c
   2e00a:	a801      	add	r0, sp, #4
   2e00c:	f00c ff2b 	bl	3ae66 <cbor_encode_text_string>
        err |= cbor_encode_text_stringz(&image, vers_str);
   2e010:	4304      	orrs	r4, r0
   2e012:	f8df 8130 	ldr.w	r8, [pc, #304]	; 2e144 <img_mgmt_state_read+0x1e8>
   2e016:	4640      	mov	r0, r8
   2e018:	f007 fd22 	bl	35a60 <strlen>
   2e01c:	4602      	mov	r2, r0
   2e01e:	4641      	mov	r1, r8
   2e020:	a801      	add	r0, sp, #4
   2e022:	f00c ff20 	bl	3ae66 <cbor_encode_text_string>

        err |= cbor_encode_text_stringz(&image, "hash");
   2e026:	4304      	orrs	r4, r0
        err |= cbor_encode_byte_string(&image, hash, IMAGE_HASH_LEN);
   2e028:	2220      	movs	r2, #32
   2e02a:	a90b      	add	r1, sp, #44	; 0x2c
   2e02c:	a801      	add	r0, sp, #4
   2e02e:	f00c ff13 	bl	3ae58 <cbor_encode_byte_string>
   2e032:	4304      	orrs	r4, r0
   2e034:	f8df 8110 	ldr.w	r8, [pc, #272]	; 2e148 <img_mgmt_state_read+0x1ec>
   2e038:	4640      	mov	r0, r8
   2e03a:	f007 fd11 	bl	35a60 <strlen>
   2e03e:	4602      	mov	r2, r0
   2e040:	4641      	mov	r1, r8
   2e042:	a801      	add	r0, sp, #4
   2e044:	f00c ff0f 	bl	3ae66 <cbor_encode_text_string>

        err |= cbor_encode_text_stringz(&image, "bootable");
   2e048:	4304      	orrs	r4, r0
        err |= cbor_encode_boolean(&image, !(flags & IMAGE_F_NON_BOOTABLE));
   2e04a:	9b00      	ldr	r3, [sp, #0]
   2e04c:	f013 0f10 	tst.w	r3, #16
{ return cbor_encode_simple_value(encoder, (int)value - 1 + (CborBooleanType & 0x1f)); }
   2e050:	bf14      	ite	ne
   2e052:	2114      	movne	r1, #20
   2e054:	2115      	moveq	r1, #21
   2e056:	a801      	add	r0, sp, #4
   2e058:	f00c fec9 	bl	3adee <cbor_encode_simple_value>
   2e05c:	4304      	orrs	r4, r0
{ return cbor_encode_text_string(encoder, string, strlen(string)); }
   2e05e:	f8df 80ec 	ldr.w	r8, [pc, #236]	; 2e14c <img_mgmt_state_read+0x1f0>
   2e062:	4640      	mov	r0, r8
   2e064:	f007 fcfc 	bl	35a60 <strlen>
   2e068:	4602      	mov	r2, r0
   2e06a:	4641      	mov	r1, r8
   2e06c:	a801      	add	r0, sp, #4
   2e06e:	f00c fefa 	bl	3ae66 <cbor_encode_text_string>

        err |= cbor_encode_text_stringz(&image, "pending");
   2e072:	4304      	orrs	r4, r0
        err |= cbor_encode_boolean(&image,
   2e074:	f007 0101 	and.w	r1, r7, #1
{ return cbor_encode_simple_value(encoder, (int)value - 1 + (CborBooleanType & 0x1f)); }
   2e078:	3114      	adds	r1, #20
   2e07a:	a801      	add	r0, sp, #4
   2e07c:	f00c feb7 	bl	3adee <cbor_encode_simple_value>
   2e080:	4304      	orrs	r4, r0
{ return cbor_encode_text_string(encoder, string, strlen(string)); }
   2e082:	f8df 80cc 	ldr.w	r8, [pc, #204]	; 2e150 <img_mgmt_state_read+0x1f4>
   2e086:	4640      	mov	r0, r8
   2e088:	f007 fcea 	bl	35a60 <strlen>
   2e08c:	4602      	mov	r2, r0
   2e08e:	4641      	mov	r1, r8
   2e090:	a801      	add	r0, sp, #4
   2e092:	f00c fee8 	bl	3ae66 <cbor_encode_text_string>
                                     state_flags & IMG_MGMT_STATE_F_PENDING);

        err |= cbor_encode_text_stringz(&image, "confirmed");
   2e096:	4304      	orrs	r4, r0
        err |= cbor_encode_boolean(&image,
   2e098:	f3c7 0140 	ubfx	r1, r7, #1, #1
{ return cbor_encode_simple_value(encoder, (int)value - 1 + (CborBooleanType & 0x1f)); }
   2e09c:	3114      	adds	r1, #20
   2e09e:	a801      	add	r0, sp, #4
   2e0a0:	f00c fea5 	bl	3adee <cbor_encode_simple_value>
   2e0a4:	4304      	orrs	r4, r0
{ return cbor_encode_text_string(encoder, string, strlen(string)); }
   2e0a6:	f8df 80ac 	ldr.w	r8, [pc, #172]	; 2e154 <img_mgmt_state_read+0x1f8>
   2e0aa:	4640      	mov	r0, r8
   2e0ac:	f007 fcd8 	bl	35a60 <strlen>
   2e0b0:	4602      	mov	r2, r0
   2e0b2:	4641      	mov	r1, r8
   2e0b4:	a801      	add	r0, sp, #4
   2e0b6:	f00c fed6 	bl	3ae66 <cbor_encode_text_string>
                                     state_flags & IMG_MGMT_STATE_F_CONFIRMED);

        err |= cbor_encode_text_stringz(&image, "active");
   2e0ba:	4304      	orrs	r4, r0
        err |= cbor_encode_boolean(&image,
   2e0bc:	f3c7 0180 	ubfx	r1, r7, #2, #1
{ return cbor_encode_simple_value(encoder, (int)value - 1 + (CborBooleanType & 0x1f)); }
   2e0c0:	3114      	adds	r1, #20
   2e0c2:	a801      	add	r0, sp, #4
   2e0c4:	f00c fe93 	bl	3adee <cbor_encode_simple_value>
   2e0c8:	4304      	orrs	r4, r0
{ return cbor_encode_text_string(encoder, string, strlen(string)); }
   2e0ca:	f8df 808c 	ldr.w	r8, [pc, #140]	; 2e158 <img_mgmt_state_read+0x1fc>
   2e0ce:	4640      	mov	r0, r8
   2e0d0:	f007 fcc6 	bl	35a60 <strlen>
   2e0d4:	4602      	mov	r2, r0
   2e0d6:	4641      	mov	r1, r8
   2e0d8:	a801      	add	r0, sp, #4
   2e0da:	f00c fec4 	bl	3ae66 <cbor_encode_text_string>
                                     state_flags & IMG_MGMT_STATE_F_ACTIVE);

        err |= cbor_encode_text_stringz(&image, "permanent");
   2e0de:	4304      	orrs	r4, r0
        err |= cbor_encode_boolean(&image,
   2e0e0:	f3c7 01c0 	ubfx	r1, r7, #3, #1
{ return cbor_encode_simple_value(encoder, (int)value - 1 + (CborBooleanType & 0x1f)); }
   2e0e4:	3114      	adds	r1, #20
   2e0e6:	a801      	add	r0, sp, #4
   2e0e8:	f00c fe81 	bl	3adee <cbor_encode_simple_value>
   2e0ec:	4304      	orrs	r4, r0
                                     state_flags & IMG_MGMT_STATE_F_PERMANENT);

        err |= cbor_encoder_close_container(&images, &image);
   2e0ee:	a901      	add	r1, sp, #4
   2e0f0:	a805      	add	r0, sp, #20
   2e0f2:	f00c fed2 	bl	3ae9a <cbor_encoder_close_container>
   2e0f6:	4304      	orrs	r4, r0
   2e0f8:	e747      	b.n	2df8a <img_mgmt_state_read+0x2e>
    }

    err |= cbor_encoder_close_container(&ctxt->encoder, &images);
   2e0fa:	a905      	add	r1, sp, #20
   2e0fc:	4630      	mov	r0, r6
   2e0fe:	f00c fecc 	bl	3ae9a <cbor_encoder_close_container>
   2e102:	4304      	orrs	r4, r0
{ return cbor_encode_text_string(encoder, string, strlen(string)); }
   2e104:	4d0c      	ldr	r5, [pc, #48]	; (2e138 <img_mgmt_state_read+0x1dc>)
   2e106:	4628      	mov	r0, r5
   2e108:	f007 fcaa 	bl	35a60 <strlen>
   2e10c:	4602      	mov	r2, r0
   2e10e:	4629      	mov	r1, r5
   2e110:	4630      	mov	r0, r6
   2e112:	f00c fea8 	bl	3ae66 <cbor_encode_text_string>

    err |= cbor_encode_text_stringz(&ctxt->encoder, "splitStatus");
   2e116:	4304      	orrs	r4, r0
    err |= cbor_encode_int(&ctxt->encoder, 0);
   2e118:	2200      	movs	r2, #0
   2e11a:	2300      	movs	r3, #0
   2e11c:	4630      	mov	r0, r6
   2e11e:	f00c fe1e 	bl	3ad5e <cbor_encode_int>

    if (err != 0) {
   2e122:	ea54 0300 	orrs.w	r3, r4, r0
   2e126:	d103      	bne.n	2e130 <img_mgmt_state_read+0x1d4>
        return MGMT_ERR_ENOMEM;
    }

    return 0;
   2e128:	2000      	movs	r0, #0
}
   2e12a:	b01a      	add	sp, #104	; 0x68
   2e12c:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
        return MGMT_ERR_ENOMEM;
   2e130:	2002      	movs	r0, #2
   2e132:	e7fa      	b.n	2e12a <img_mgmt_state_read+0x1ce>
   2e134:	0003f6b0 	.word	0x0003f6b0
   2e138:	0003f704 	.word	0x0003f704
   2e13c:	0003f6b8 	.word	0x0003f6b8
   2e140:	0003f6c0 	.word	0x0003f6c0
   2e144:	0003f6c8 	.word	0x0003f6c8
   2e148:	0003f6d0 	.word	0x0003f6d0
   2e14c:	0003f6dc 	.word	0x0003f6dc
   2e150:	0003f6e4 	.word	0x0003f6e4
   2e154:	0003f6f0 	.word	0x0003f6f0
   2e158:	0003f6f8 	.word	0x0003f6f8

0002e15c <img_mgmt_state_write>:
/**
 * Command handler: image state write
 */
int
img_mgmt_state_write(struct mgmt_ctxt *ctxt)
{
   2e15c:	b510      	push	{r4, lr}
   2e15e:	b0b0      	sub	sp, #192	; 0xc0
   2e160:	4604      	mov	r4, r0
    size_t hash_len;
    bool confirm;
    int slot;
    int rc;

    const struct cbor_attr_t write_attr[] = {
   2e162:	228c      	movs	r2, #140	; 0x8c
   2e164:	2100      	movs	r1, #0
   2e166:	a801      	add	r0, sp, #4
   2e168:	f007 fcec 	bl	35b44 <memset>
   2e16c:	4b20      	ldr	r3, [pc, #128]	; (2e1f0 <img_mgmt_state_write+0x94>)
   2e16e:	9300      	str	r3, [sp, #0]
   2e170:	2303      	movs	r3, #3
   2e172:	f88d 3004 	strb.w	r3, [sp, #4]
   2e176:	ab27      	add	r3, sp, #156	; 0x9c
   2e178:	9302      	str	r3, [sp, #8]
   2e17a:	ab26      	add	r3, sp, #152	; 0x98
   2e17c:	9303      	str	r3, [sp, #12]
   2e17e:	2321      	movs	r3, #33	; 0x21
   2e180:	930a      	str	r3, [sp, #40]	; 0x28
   2e182:	4b1c      	ldr	r3, [pc, #112]	; (2e1f4 <img_mgmt_state_write+0x98>)
   2e184:	930c      	str	r3, [sp, #48]	; 0x30
   2e186:	2305      	movs	r3, #5
   2e188:	f88d 3034 	strb.w	r3, [sp, #52]	; 0x34
   2e18c:	f10d 0397 	add.w	r3, sp, #151	; 0x97
   2e190:	930e      	str	r3, [sp, #56]	; 0x38
            .dflt.boolean = false,
        },
        [2] = { 0 },
    };

    hash_len = 0;
   2e192:	2300      	movs	r3, #0
   2e194:	9326      	str	r3, [sp, #152]	; 0x98
    rc = cbor_read_object(&ctxt->it, write_attr);
   2e196:	4669      	mov	r1, sp
   2e198:	f104 001c 	add.w	r0, r4, #28
   2e19c:	f00c f905 	bl	3a3aa <cbor_read_object>
    if (rc != 0) {
   2e1a0:	bb10      	cbnz	r0, 2e1e8 <img_mgmt_state_write+0x8c>
   2e1a2:	4603      	mov	r3, r0
        return MGMT_ERR_EINVAL;
    }

    /* Determine which slot is being operated on. */
    if (hash_len == 0) {
   2e1a4:	9a26      	ldr	r2, [sp, #152]	; 0x98
   2e1a6:	b97a      	cbnz	r2, 2e1c8 <img_mgmt_state_write+0x6c>
        if (confirm) {
   2e1a8:	f89d 2097 	ldrb.w	r2, [sp, #151]	; 0x97
   2e1ac:	b152      	cbz	r2, 2e1c4 <img_mgmt_state_write+0x68>
        if (slot < 0) {
            return MGMT_ERR_EINVAL;
        }
    }

    if (slot == IMG_MGMT_BOOT_CURR_SLOT && confirm) {
   2e1ae:	f89d 2097 	ldrb.w	r2, [sp, #151]	; 0x97
   2e1b2:	b992      	cbnz	r2, 2e1da <img_mgmt_state_write+0x7e>
        /* Confirm current setup. */
        rc = img_mgmt_state_confirm();
    } else {
        rc = img_mgmt_state_set_pending(slot, confirm);
   2e1b4:	f89d 1097 	ldrb.w	r1, [sp, #151]	; 0x97
   2e1b8:	4618      	mov	r0, r3
   2e1ba:	f00c fa4e 	bl	3a65a <img_mgmt_state_set_pending>
    }
    if (rc != 0) {
   2e1be:	b178      	cbz	r0, 2e1e0 <img_mgmt_state_write+0x84>
    if (rc != 0) {
        return rc;
    }

    return 0;
}
   2e1c0:	b030      	add	sp, #192	; 0xc0
   2e1c2:	bd10      	pop	{r4, pc}
            return MGMT_ERR_EINVAL;
   2e1c4:	2003      	movs	r0, #3
   2e1c6:	e7fb      	b.n	2e1c0 <img_mgmt_state_write+0x64>
        slot = img_mgmt_find_by_hash(hash, NULL);
   2e1c8:	2100      	movs	r1, #0
   2e1ca:	a827      	add	r0, sp, #156	; 0x9c
   2e1cc:	f00c f9da 	bl	3a584 <img_mgmt_find_by_hash>
        if (slot < 0) {
   2e1d0:	1e03      	subs	r3, r0, #0
   2e1d2:	db0b      	blt.n	2e1ec <img_mgmt_state_write+0x90>
    if (slot == IMG_MGMT_BOOT_CURR_SLOT && confirm) {
   2e1d4:	2b00      	cmp	r3, #0
   2e1d6:	d1ed      	bne.n	2e1b4 <img_mgmt_state_write+0x58>
   2e1d8:	e7e9      	b.n	2e1ae <img_mgmt_state_write+0x52>
        rc = img_mgmt_state_confirm();
   2e1da:	f00c fa69 	bl	3a6b0 <img_mgmt_state_confirm>
   2e1de:	e7ee      	b.n	2e1be <img_mgmt_state_write+0x62>
    rc = img_mgmt_state_read(ctxt);
   2e1e0:	4620      	mov	r0, r4
   2e1e2:	f7ff febb 	bl	2df5c <img_mgmt_state_read>
    if (rc != 0) {
   2e1e6:	e7eb      	b.n	2e1c0 <img_mgmt_state_write+0x64>
        return MGMT_ERR_EINVAL;
   2e1e8:	2003      	movs	r0, #3
   2e1ea:	e7e9      	b.n	2e1c0 <img_mgmt_state_write+0x64>
            return MGMT_ERR_EINVAL;
   2e1ec:	2003      	movs	r0, #3
   2e1ee:	e7e7      	b.n	2e1c0 <img_mgmt_state_write+0x64>
   2e1f0:	0003f6c8 	.word	0x0003f6c8
   2e1f4:	0003f710 	.word	0x0003f710

0002e1f8 <zephyr_os_mgmt_task_at>:
K_WORK_DEFINE(zephyr_os_mgmt_reset_work, zephyr_os_mgmt_reset_work_handler);

#ifdef CONFIG_THREAD_MONITOR
static const struct k_thread *
zephyr_os_mgmt_task_at(int idx)
{
   2e1f8:	4602      	mov	r2, r0
    const struct k_thread *thread;
    int i;

    thread = SYS_THREAD_MONITOR_HEAD;
   2e1fa:	4b05      	ldr	r3, [pc, #20]	; (2e210 <zephyr_os_mgmt_task_at+0x18>)
   2e1fc:	6a98      	ldr	r0, [r3, #40]	; 0x28
    for (i = 0; i < idx; i++) {
   2e1fe:	2300      	movs	r3, #0
   2e200:	4293      	cmp	r3, r2
   2e202:	da03      	bge.n	2e20c <zephyr_os_mgmt_task_at+0x14>
        if (thread == NULL) {
   2e204:	b110      	cbz	r0, 2e20c <zephyr_os_mgmt_task_at+0x14>
            break;
        }
        thread = SYS_THREAD_MONITOR_NEXT(thread);
   2e206:	6f40      	ldr	r0, [r0, #116]	; 0x74
    for (i = 0; i < idx; i++) {
   2e208:	3301      	adds	r3, #1
   2e20a:	e7f9      	b.n	2e200 <zephyr_os_mgmt_task_at+0x8>
    }

    return thread;
}
   2e20c:	4770      	bx	lr
   2e20e:	bf00      	nop
   2e210:	20003480 	.word	0x20003480

0002e214 <zephyr_os_mgmt_reset_cb>:
    sys_reboot(SYS_REBOOT_WARM);
}

static void
zephyr_os_mgmt_reset_cb(struct k_timer *timer)
{
   2e214:	b508      	push	{r3, lr}
    /* Reboot the system from the system workqueue thread. */
    k_work_submit(&zephyr_os_mgmt_reset_work);
   2e216:	4802      	ldr	r0, [pc, #8]	; (2e220 <zephyr_os_mgmt_reset_cb+0xc>)
   2e218:	f002 fa2a 	bl	30670 <k_work_submit>
}
   2e21c:	bd08      	pop	{r3, pc}
   2e21e:	bf00      	nop
   2e220:	20000750 	.word	0x20000750

0002e224 <os_mgmt_impl_reset>:

int
os_mgmt_impl_reset(unsigned int delay_ms)
{
   2e224:	b530      	push	{r4, r5, lr}
   2e226:	b083      	sub	sp, #12
    k_timer_start(&zephyr_os_mgmt_reset_timer, K_MSEC(delay_ms), K_NO_WAIT);
   2e228:	2500      	movs	r5, #0
		} else {
			return (t * to_hz + off) / from_hz;
   2e22a:	0c41      	lsrs	r1, r0, #17
   2e22c:	03c4      	lsls	r4, r0, #15
   2e22e:	f240 30e7 	movw	r0, #999	; 0x3e7
   2e232:	f44f 727a 	mov.w	r2, #1000	; 0x3e8
   2e236:	2300      	movs	r3, #0
   2e238:	1820      	adds	r0, r4, r0
   2e23a:	eb45 0101 	adc.w	r1, r5, r1
   2e23e:	f7de f85f 	bl	c300 <__aeabi_uldivmod>
   2e242:	4602      	mov	r2, r0
   2e244:	460b      	mov	r3, r1
	z_impl_k_timer_start(timer, duration, period);
   2e246:	2000      	movs	r0, #0
   2e248:	2100      	movs	r1, #0
   2e24a:	e9cd 0100 	strd	r0, r1, [sp]
   2e24e:	4803      	ldr	r0, [pc, #12]	; (2e25c <os_mgmt_impl_reset+0x38>)
   2e250:	f004 f9a6 	bl	325a0 <z_impl_k_timer_start>
    return 0;
}
   2e254:	4628      	mov	r0, r5
   2e256:	b003      	add	sp, #12
   2e258:	bd30      	pop	{r4, r5, pc}
   2e25a:	bf00      	nop
   2e25c:	200007a0 	.word	0x200007a0

0002e260 <os_mgmt_taskstat_encode_one>:
 * Encodes a single taskstat entry.
 */
static int
os_mgmt_taskstat_encode_one(struct CborEncoder *encoder,
                            const struct os_mgmt_task_info *task_info)
{
   2e260:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   2e264:	b084      	sub	sp, #16
   2e266:	4606      	mov	r6, r0
   2e268:	460d      	mov	r5, r1
    CborEncoder task_map;
    CborError err;

    err = 0;
    err |= cbor_encode_text_stringz(encoder, task_info->oti_name);
   2e26a:	f101 0418 	add.w	r4, r1, #24
   2e26e:	4620      	mov	r0, r4
   2e270:	f007 fbf6 	bl	35a60 <strlen>
   2e274:	4602      	mov	r2, r0
   2e276:	4621      	mov	r1, r4
   2e278:	4630      	mov	r0, r6
   2e27a:	f00c fdf4 	bl	3ae66 <cbor_encode_text_string>
   2e27e:	4604      	mov	r4, r0
    err |= cbor_encoder_create_map(encoder, &task_map, CborIndefiniteLength);
   2e280:	f04f 32ff 	mov.w	r2, #4294967295
   2e284:	4669      	mov	r1, sp
   2e286:	4630      	mov	r0, r6
   2e288:	f00c fdf9 	bl	3ae7e <cbor_encoder_create_map>
   2e28c:	4304      	orrs	r4, r0
   2e28e:	4f50      	ldr	r7, [pc, #320]	; (2e3d0 <os_mgmt_taskstat_encode_one+0x170>)
   2e290:	4638      	mov	r0, r7
   2e292:	f007 fbe5 	bl	35a60 <strlen>
   2e296:	4602      	mov	r2, r0
   2e298:	4639      	mov	r1, r7
   2e29a:	4668      	mov	r0, sp
   2e29c:	f00c fde3 	bl	3ae66 <cbor_encode_text_string>
    err |= cbor_encode_text_stringz(&task_map, "prio");
   2e2a0:	4304      	orrs	r4, r0
    err |= cbor_encode_uint(&task_map, task_info->oti_prio);
   2e2a2:	782a      	ldrb	r2, [r5, #0]
   2e2a4:	2300      	movs	r3, #0
   2e2a6:	4668      	mov	r0, sp
   2e2a8:	f00c fd1d 	bl	3ace6 <cbor_encode_uint>
   2e2ac:	4304      	orrs	r4, r0
   2e2ae:	4f49      	ldr	r7, [pc, #292]	; (2e3d4 <os_mgmt_taskstat_encode_one+0x174>)
   2e2b0:	4638      	mov	r0, r7
   2e2b2:	f007 fbd5 	bl	35a60 <strlen>
   2e2b6:	4602      	mov	r2, r0
   2e2b8:	4639      	mov	r1, r7
   2e2ba:	4668      	mov	r0, sp
   2e2bc:	f00c fdd3 	bl	3ae66 <cbor_encode_text_string>
    err |= cbor_encode_text_stringz(&task_map, "tid");
   2e2c0:	4304      	orrs	r4, r0
    err |= cbor_encode_uint(&task_map, task_info->oti_taskid);
   2e2c2:	786a      	ldrb	r2, [r5, #1]
   2e2c4:	2300      	movs	r3, #0
   2e2c6:	4668      	mov	r0, sp
   2e2c8:	f00c fd0d 	bl	3ace6 <cbor_encode_uint>
   2e2cc:	4304      	orrs	r4, r0
   2e2ce:	4f42      	ldr	r7, [pc, #264]	; (2e3d8 <os_mgmt_taskstat_encode_one+0x178>)
   2e2d0:	4638      	mov	r0, r7
   2e2d2:	f007 fbc5 	bl	35a60 <strlen>
   2e2d6:	4602      	mov	r2, r0
   2e2d8:	4639      	mov	r1, r7
   2e2da:	4668      	mov	r0, sp
   2e2dc:	f00c fdc3 	bl	3ae66 <cbor_encode_text_string>
    err |= cbor_encode_text_stringz(&task_map, "state");
   2e2e0:	4304      	orrs	r4, r0
    err |= cbor_encode_uint(&task_map, task_info->oti_state);
   2e2e2:	78aa      	ldrb	r2, [r5, #2]
   2e2e4:	2300      	movs	r3, #0
   2e2e6:	4668      	mov	r0, sp
   2e2e8:	f00c fcfd 	bl	3ace6 <cbor_encode_uint>
   2e2ec:	4304      	orrs	r4, r0
   2e2ee:	4f3b      	ldr	r7, [pc, #236]	; (2e3dc <os_mgmt_taskstat_encode_one+0x17c>)
   2e2f0:	4638      	mov	r0, r7
   2e2f2:	f007 fbb5 	bl	35a60 <strlen>
   2e2f6:	4602      	mov	r2, r0
   2e2f8:	4639      	mov	r1, r7
   2e2fa:	4668      	mov	r0, sp
   2e2fc:	f00c fdb3 	bl	3ae66 <cbor_encode_text_string>
    err |= cbor_encode_text_stringz(&task_map, "stkuse");
   2e300:	4304      	orrs	r4, r0
    err |= cbor_encode_uint(&task_map, task_info->oti_stkusage);
   2e302:	88aa      	ldrh	r2, [r5, #4]
   2e304:	2300      	movs	r3, #0
   2e306:	4668      	mov	r0, sp
   2e308:	f00c fced 	bl	3ace6 <cbor_encode_uint>
   2e30c:	4304      	orrs	r4, r0
   2e30e:	4f34      	ldr	r7, [pc, #208]	; (2e3e0 <os_mgmt_taskstat_encode_one+0x180>)
   2e310:	4638      	mov	r0, r7
   2e312:	f007 fba5 	bl	35a60 <strlen>
   2e316:	4602      	mov	r2, r0
   2e318:	4639      	mov	r1, r7
   2e31a:	4668      	mov	r0, sp
   2e31c:	f00c fda3 	bl	3ae66 <cbor_encode_text_string>
    err |= cbor_encode_text_stringz(&task_map, "stksiz");
   2e320:	4304      	orrs	r4, r0
    err |= cbor_encode_uint(&task_map, task_info->oti_stksize);
   2e322:	88ea      	ldrh	r2, [r5, #6]
   2e324:	2300      	movs	r3, #0
   2e326:	4668      	mov	r0, sp
   2e328:	f00c fcdd 	bl	3ace6 <cbor_encode_uint>
   2e32c:	4304      	orrs	r4, r0
   2e32e:	4f2d      	ldr	r7, [pc, #180]	; (2e3e4 <os_mgmt_taskstat_encode_one+0x184>)
   2e330:	4638      	mov	r0, r7
   2e332:	f007 fb95 	bl	35a60 <strlen>
   2e336:	4602      	mov	r2, r0
   2e338:	4639      	mov	r1, r7
   2e33a:	4668      	mov	r0, sp
   2e33c:	f00c fd93 	bl	3ae66 <cbor_encode_text_string>
    err |= cbor_encode_text_stringz(&task_map, "cswcnt");
   2e340:	4304      	orrs	r4, r0
    err |= cbor_encode_uint(&task_map, task_info->oti_cswcnt);
   2e342:	2700      	movs	r7, #0
   2e344:	68aa      	ldr	r2, [r5, #8]
   2e346:	463b      	mov	r3, r7
   2e348:	4668      	mov	r0, sp
   2e34a:	f00c fccc 	bl	3ace6 <cbor_encode_uint>
   2e34e:	4304      	orrs	r4, r0
   2e350:	f8df 8094 	ldr.w	r8, [pc, #148]	; 2e3e8 <os_mgmt_taskstat_encode_one+0x188>
   2e354:	4640      	mov	r0, r8
   2e356:	f007 fb83 	bl	35a60 <strlen>
   2e35a:	4602      	mov	r2, r0
   2e35c:	4641      	mov	r1, r8
   2e35e:	4668      	mov	r0, sp
   2e360:	f00c fd81 	bl	3ae66 <cbor_encode_text_string>
    err |= cbor_encode_text_stringz(&task_map, "runtime");
   2e364:	4304      	orrs	r4, r0
    err |= cbor_encode_uint(&task_map, task_info->oti_runtime);
   2e366:	68ea      	ldr	r2, [r5, #12]
   2e368:	463b      	mov	r3, r7
   2e36a:	4668      	mov	r0, sp
   2e36c:	f00c fcbb 	bl	3ace6 <cbor_encode_uint>
   2e370:	4304      	orrs	r4, r0
   2e372:	f8df 8078 	ldr.w	r8, [pc, #120]	; 2e3ec <os_mgmt_taskstat_encode_one+0x18c>
   2e376:	4640      	mov	r0, r8
   2e378:	f007 fb72 	bl	35a60 <strlen>
   2e37c:	4602      	mov	r2, r0
   2e37e:	4641      	mov	r1, r8
   2e380:	4668      	mov	r0, sp
   2e382:	f00c fd70 	bl	3ae66 <cbor_encode_text_string>
    err |= cbor_encode_text_stringz(&task_map, "last_checkin");
   2e386:	4304      	orrs	r4, r0
    err |= cbor_encode_uint(&task_map, task_info->oti_last_checkin);
   2e388:	692a      	ldr	r2, [r5, #16]
   2e38a:	463b      	mov	r3, r7
   2e38c:	4668      	mov	r0, sp
   2e38e:	f00c fcaa 	bl	3ace6 <cbor_encode_uint>
   2e392:	4304      	orrs	r4, r0
   2e394:	f8df 8058 	ldr.w	r8, [pc, #88]	; 2e3f0 <os_mgmt_taskstat_encode_one+0x190>
   2e398:	4640      	mov	r0, r8
   2e39a:	f007 fb61 	bl	35a60 <strlen>
   2e39e:	4602      	mov	r2, r0
   2e3a0:	4641      	mov	r1, r8
   2e3a2:	4668      	mov	r0, sp
   2e3a4:	f00c fd5f 	bl	3ae66 <cbor_encode_text_string>
    err |= cbor_encode_text_stringz(&task_map, "next_checkin");
   2e3a8:	4304      	orrs	r4, r0
    err |= cbor_encode_uint(&task_map, task_info->oti_next_checkin);
   2e3aa:	696a      	ldr	r2, [r5, #20]
   2e3ac:	463b      	mov	r3, r7
   2e3ae:	4668      	mov	r0, sp
   2e3b0:	f00c fc99 	bl	3ace6 <cbor_encode_uint>
   2e3b4:	4304      	orrs	r4, r0
    err |= cbor_encoder_close_container(encoder, &task_map);
   2e3b6:	4669      	mov	r1, sp
   2e3b8:	4630      	mov	r0, r6
   2e3ba:	f00c fd6e 	bl	3ae9a <cbor_encoder_close_container>

    if (err != 0) {
   2e3be:	ea54 0300 	orrs.w	r3, r4, r0
   2e3c2:	d103      	bne.n	2e3cc <os_mgmt_taskstat_encode_one+0x16c>
        return MGMT_ERR_ENOMEM;
    }

    return 0;
   2e3c4:	4638      	mov	r0, r7
}
   2e3c6:	b004      	add	sp, #16
   2e3c8:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
        return MGMT_ERR_ENOMEM;
   2e3cc:	2002      	movs	r0, #2
   2e3ce:	e7fa      	b.n	2e3c6 <os_mgmt_taskstat_encode_one+0x166>
   2e3d0:	0003f718 	.word	0x0003f718
   2e3d4:	0003f720 	.word	0x0003f720
   2e3d8:	0003f724 	.word	0x0003f724
   2e3dc:	0003f72c 	.word	0x0003f72c
   2e3e0:	0003f734 	.word	0x0003f734
   2e3e4:	0003f73c 	.word	0x0003f73c
   2e3e8:	0003f744 	.word	0x0003f744
   2e3ec:	0003f74c 	.word	0x0003f74c
   2e3f0:	0003f75c 	.word	0x0003f75c

0002e3f4 <os_mgmt_taskstat_read>:
/**
 * Command handler: os taskstat
 */
static int
os_mgmt_taskstat_read(struct mgmt_ctxt *ctxt)
{
   2e3f4:	b570      	push	{r4, r5, r6, lr}
   2e3f6:	b092      	sub	sp, #72	; 0x48
   2e3f8:	4606      	mov	r6, r0
   2e3fa:	4c1b      	ldr	r4, [pc, #108]	; (2e468 <os_mgmt_taskstat_read+0x74>)
   2e3fc:	4620      	mov	r0, r4
   2e3fe:	f007 fb2f 	bl	35a60 <strlen>
   2e402:	4602      	mov	r2, r0
   2e404:	4621      	mov	r1, r4
   2e406:	4630      	mov	r0, r6
   2e408:	f00c fd2d 	bl	3ae66 <cbor_encode_text_string>
   2e40c:	4604      	mov	r4, r0
    int task_idx;
    int rc;

    err = 0;
    err |= cbor_encode_text_stringz(&ctxt->encoder, "tasks");
    err |= cbor_encoder_create_map(&ctxt->encoder, &tasks_map,
   2e40e:	f04f 32ff 	mov.w	r2, #4294967295
   2e412:	4669      	mov	r1, sp
   2e414:	4630      	mov	r0, r6
   2e416:	f00c fd32 	bl	3ae7e <cbor_encoder_create_map>
                                   CborIndefiniteLength);
    if (err != 0) {
   2e41a:	ea50 0304 	orrs.w	r3, r0, r4
   2e41e:	d11f      	bne.n	2e460 <os_mgmt_taskstat_read+0x6c>
        return MGMT_ERR_ENOMEM;
    }

    /* Iterate the list of tasks, encoding each. */
    for (task_idx = 0; ; task_idx++) {
   2e420:	2500      	movs	r5, #0
   2e422:	e000      	b.n	2e426 <os_mgmt_taskstat_read+0x32>
   2e424:	3501      	adds	r5, #1
        rc = os_mgmt_impl_task_info(task_idx, &task_info);
   2e426:	a904      	add	r1, sp, #16
   2e428:	4628      	mov	r0, r5
   2e42a:	f00c f98a 	bl	3a742 <os_mgmt_impl_task_info>
   2e42e:	4604      	mov	r4, r0
        if (rc == MGMT_ERR_ENOENT) {
   2e430:	2805      	cmp	r0, #5
   2e432:	d00e      	beq.n	2e452 <os_mgmt_taskstat_read+0x5e>
            /* No more tasks to encode. */
            break;
        } else if (rc != 0) {
   2e434:	b950      	cbnz	r0, 2e44c <os_mgmt_taskstat_read+0x58>
            return rc;
        }

        rc = os_mgmt_taskstat_encode_one(&tasks_map, &task_info);
   2e436:	a904      	add	r1, sp, #16
   2e438:	4668      	mov	r0, sp
   2e43a:	f7ff ff11 	bl	2e260 <os_mgmt_taskstat_encode_one>
        if (rc != 0) {
   2e43e:	4604      	mov	r4, r0
   2e440:	2800      	cmp	r0, #0
   2e442:	d0ef      	beq.n	2e424 <os_mgmt_taskstat_read+0x30>
            cbor_encoder_close_container(&ctxt->encoder, &tasks_map);
   2e444:	4669      	mov	r1, sp
   2e446:	4630      	mov	r0, r6
   2e448:	f00c fd27 	bl	3ae9a <cbor_encoder_close_container>
    if (err != 0) {
        return MGMT_ERR_ENOMEM;
    }

    return 0;
}
   2e44c:	4620      	mov	r0, r4
   2e44e:	b012      	add	sp, #72	; 0x48
   2e450:	bd70      	pop	{r4, r5, r6, pc}
    err = cbor_encoder_close_container(&ctxt->encoder, &tasks_map);
   2e452:	4669      	mov	r1, sp
   2e454:	4630      	mov	r0, r6
   2e456:	f00c fd20 	bl	3ae9a <cbor_encoder_close_container>
    if (err != 0) {
   2e45a:	b918      	cbnz	r0, 2e464 <os_mgmt_taskstat_read+0x70>
    return 0;
   2e45c:	2400      	movs	r4, #0
   2e45e:	e7f5      	b.n	2e44c <os_mgmt_taskstat_read+0x58>
        return MGMT_ERR_ENOMEM;
   2e460:	2402      	movs	r4, #2
   2e462:	e7f3      	b.n	2e44c <os_mgmt_taskstat_read+0x58>
        return MGMT_ERR_ENOMEM;
   2e464:	2402      	movs	r4, #2
   2e466:	e7f1      	b.n	2e44c <os_mgmt_taskstat_read+0x58>
   2e468:	0003f76c 	.word	0x0003f76c

0002e46c <os_mgmt_echo>:
{
   2e46c:	b570      	push	{r4, r5, r6, lr}
   2e46e:	b0b8      	sub	sp, #224	; 0xe0
   2e470:	4604      	mov	r4, r0
    const struct cbor_attr_t attrs[2] = {
   2e472:	225c      	movs	r2, #92	; 0x5c
   2e474:	2100      	movs	r1, #0
   2e476:	a801      	add	r0, sp, #4
   2e478:	f007 fb64 	bl	35b44 <memset>
   2e47c:	4b18      	ldr	r3, [pc, #96]	; (2e4e0 <os_mgmt_echo+0x74>)
   2e47e:	9300      	str	r3, [sp, #0]
   2e480:	2304      	movs	r3, #4
   2e482:	f88d 3004 	strb.w	r3, [sp, #4]
   2e486:	ab18      	add	r3, sp, #96	; 0x60
   2e488:	9302      	str	r3, [sp, #8]
   2e48a:	2380      	movs	r3, #128	; 0x80
   2e48c:	930a      	str	r3, [sp, #40]	; 0x28
   2e48e:	2301      	movs	r3, #1
   2e490:	f88d 302c 	strb.w	r3, [sp, #44]	; 0x2c
    echo_buf[0] = '\0';
   2e494:	2300      	movs	r3, #0
   2e496:	f88d 3060 	strb.w	r3, [sp, #96]	; 0x60
    err = cbor_read_object(&ctxt->it, attrs);
   2e49a:	4669      	mov	r1, sp
   2e49c:	f104 001c 	add.w	r0, r4, #28
   2e4a0:	f00b ff83 	bl	3a3aa <cbor_read_object>
    if (err != 0) {
   2e4a4:	b9c0      	cbnz	r0, 2e4d8 <os_mgmt_echo+0x6c>
   2e4a6:	4605      	mov	r5, r0
   2e4a8:	4e0e      	ldr	r6, [pc, #56]	; (2e4e4 <os_mgmt_echo+0x78>)
   2e4aa:	4630      	mov	r0, r6
   2e4ac:	f007 fad8 	bl	35a60 <strlen>
   2e4b0:	4602      	mov	r2, r0
   2e4b2:	4631      	mov	r1, r6
   2e4b4:	4620      	mov	r0, r4
   2e4b6:	f00c fcd6 	bl	3ae66 <cbor_encode_text_string>
    err |= cbor_encode_text_stringz(&ctxt->encoder, "r");
   2e4ba:	4305      	orrs	r5, r0
    err |= cbor_encode_text_string(&ctxt->encoder, echo_buf, strlen(echo_buf));
   2e4bc:	a818      	add	r0, sp, #96	; 0x60
   2e4be:	f007 facf 	bl	35a60 <strlen>
   2e4c2:	4602      	mov	r2, r0
   2e4c4:	a918      	add	r1, sp, #96	; 0x60
   2e4c6:	4620      	mov	r0, r4
   2e4c8:	f00c fccd 	bl	3ae66 <cbor_encode_text_string>
    if (err != 0) {
   2e4cc:	ea55 0300 	orrs.w	r3, r5, r0
   2e4d0:	d104      	bne.n	2e4dc <os_mgmt_echo+0x70>
    return 0;
   2e4d2:	2000      	movs	r0, #0
}
   2e4d4:	b038      	add	sp, #224	; 0xe0
   2e4d6:	bd70      	pop	{r4, r5, r6, pc}
        return MGMT_ERR_EINVAL;
   2e4d8:	2003      	movs	r0, #3
   2e4da:	e7fb      	b.n	2e4d4 <os_mgmt_echo+0x68>
        return MGMT_ERR_ENOMEM;
   2e4dc:	2002      	movs	r0, #2
   2e4de:	e7f9      	b.n	2e4d4 <os_mgmt_echo+0x68>
   2e4e0:	0003f914 	.word	0x0003f914
   2e4e4:	0003f1d4 	.word	0x0003f1d4

0002e4e8 <os_mgmt_register_group>:
    return os_mgmt_impl_reset(OS_MGMT_RESET_MS);
}

void
os_mgmt_register_group(void)
{
   2e4e8:	b508      	push	{r3, lr}
    mgmt_register_group(&os_mgmt_group);
   2e4ea:	4802      	ldr	r0, [pc, #8]	; (2e4f4 <os_mgmt_register_group+0xc>)
   2e4ec:	f000 f82c 	bl	2e548 <mgmt_register_group>
}
   2e4f0:	bd08      	pop	{r3, pc}
   2e4f2:	bf00      	nop
   2e4f4:	20000760 	.word	0x20000760

0002e4f8 <mgmt_find_group>:
    }
}

static struct mgmt_group *
mgmt_find_group(uint16_t group_id, uint16_t command_id)
{
   2e4f8:	4602      	mov	r2, r0
     * Find the group with the specified group id, if one exists
     * check the handler for the command id and make sure
     * that is not NULL. If that is not set, look for the group
     * with a command id that is set
     */
    for (group = mgmt_group_list; group != NULL; group = group->mg_next) {
   2e4fa:	4b12      	ldr	r3, [pc, #72]	; (2e544 <mgmt_find_group+0x4c>)
   2e4fc:	6818      	ldr	r0, [r3, #0]
   2e4fe:	b1f0      	cbz	r0, 2e53e <mgmt_find_group+0x46>
        if (group->mg_group_id == group_id) {
   2e500:	8943      	ldrh	r3, [r0, #10]
   2e502:	4293      	cmp	r3, r2
   2e504:	d016      	beq.n	2e534 <mgmt_find_group+0x3c>
    for (group = mgmt_group_list; group != NULL; group = group->mg_next) {
   2e506:	6800      	ldr	r0, [r0, #0]
   2e508:	e7f9      	b.n	2e4fe <mgmt_find_group+0x6>
   2e50a:	6800      	ldr	r0, [r0, #0]
   2e50c:	b170      	cbz	r0, 2e52c <mgmt_find_group+0x34>
        if (group->mg_group_id == group_id) {
   2e50e:	8943      	ldrh	r3, [r0, #10]
   2e510:	4293      	cmp	r3, r2
   2e512:	d1fa      	bne.n	2e50a <mgmt_find_group+0x12>
            if (command_id >= group->mg_handlers_count) {
   2e514:	8903      	ldrh	r3, [r0, #8]
   2e516:	428b      	cmp	r3, r1
   2e518:	d90a      	bls.n	2e530 <mgmt_find_group+0x38>
                return NULL;
            }

            if (!group->mg_handlers[command_id].mh_read &&
   2e51a:	6843      	ldr	r3, [r0, #4]
   2e51c:	eb03 04c1 	add.w	r4, r3, r1, lsl #3
   2e520:	f853 3031 	ldr.w	r3, [r3, r1, lsl #3]
   2e524:	b913      	cbnz	r3, 2e52c <mgmt_find_group+0x34>
                !group->mg_handlers[command_id].mh_write) {
   2e526:	6863      	ldr	r3, [r4, #4]
            if (!group->mg_handlers[command_id].mh_read &&
   2e528:	2b00      	cmp	r3, #0
   2e52a:	d0ee      	beq.n	2e50a <mgmt_find_group+0x12>
            break;
        }
    }

    return group;
}
   2e52c:	bc10      	pop	{r4}
   2e52e:	4770      	bx	lr
                return NULL;
   2e530:	2000      	movs	r0, #0
   2e532:	e7fb      	b.n	2e52c <mgmt_find_group+0x34>
            if (command_id >= group->mg_handlers_count) {
   2e534:	8903      	ldrh	r3, [r0, #8]
   2e536:	428b      	cmp	r3, r1
   2e538:	d902      	bls.n	2e540 <mgmt_find_group+0x48>
{
   2e53a:	b410      	push	{r4}
   2e53c:	e7ed      	b.n	2e51a <mgmt_find_group+0x22>
   2e53e:	4770      	bx	lr
                return NULL;
   2e540:	2000      	movs	r0, #0
}
   2e542:	4770      	bx	lr
   2e544:	20002fc0 	.word	0x20002fc0

0002e548 <mgmt_register_group>:

void
mgmt_register_group(struct mgmt_group *group)
{
    if (mgmt_group_list_end == NULL) {
   2e548:	4b04      	ldr	r3, [pc, #16]	; (2e55c <mgmt_register_group+0x14>)
   2e54a:	681b      	ldr	r3, [r3, #0]
   2e54c:	b11b      	cbz	r3, 2e556 <mgmt_register_group+0xe>
        mgmt_group_list = group;
    } else {
        mgmt_group_list_end->mg_next = group;
   2e54e:	6018      	str	r0, [r3, #0]
    }
    mgmt_group_list_end = group;
   2e550:	4b02      	ldr	r3, [pc, #8]	; (2e55c <mgmt_register_group+0x14>)
   2e552:	6018      	str	r0, [r3, #0]
}
   2e554:	4770      	bx	lr
        mgmt_group_list = group;
   2e556:	4b02      	ldr	r3, [pc, #8]	; (2e560 <mgmt_register_group+0x18>)
   2e558:	6018      	str	r0, [r3, #0]
   2e55a:	e7f9      	b.n	2e550 <mgmt_register_group+0x8>
   2e55c:	20002fc4 	.word	0x20002fc4
   2e560:	20002fc0 	.word	0x20002fc0

0002e564 <mgmt_write_rsp_status>:
    return &group->mg_handlers[command_id];
}

int
mgmt_write_rsp_status(struct mgmt_ctxt *ctxt, int errcode)
{
   2e564:	b570      	push	{r4, r5, r6, lr}
   2e566:	4604      	mov	r4, r0
   2e568:	460d      	mov	r5, r1
   2e56a:	4e08      	ldr	r6, [pc, #32]	; (2e58c <mgmt_write_rsp_status+0x28>)
   2e56c:	4630      	mov	r0, r6
   2e56e:	f007 fa77 	bl	35a60 <strlen>
   2e572:	4602      	mov	r2, r0
   2e574:	4631      	mov	r1, r6
   2e576:	4620      	mov	r0, r4
   2e578:	f00c fc75 	bl	3ae66 <cbor_encode_text_string>
    int rc;

    rc = cbor_encode_text_stringz(&ctxt->encoder, "rc");
    if (rc != 0) {
   2e57c:	b100      	cbz	r0, 2e580 <mgmt_write_rsp_status+0x1c>
    if (rc != 0) {
        return rc;
    }

    return 0;
}
   2e57e:	bd70      	pop	{r4, r5, r6, pc}
    rc = cbor_encode_int(&ctxt->encoder, errcode);
   2e580:	462a      	mov	r2, r5
   2e582:	17eb      	asrs	r3, r5, #31
   2e584:	4620      	mov	r0, r4
   2e586:	f00c fbea 	bl	3ad5e <cbor_encode_int>
    if (rc != 0) {
   2e58a:	e7f8      	b.n	2e57e <mgmt_write_rsp_status+0x1a>
   2e58c:	0003f658 	.word	0x0003f658

0002e590 <mgmt_evt>:
    evt_cb = cb;
}

void
mgmt_evt(uint8_t opcode, uint16_t group, uint8_t id, void *arg)
{
   2e590:	b510      	push	{r4, lr}
    if (evt_cb) {
   2e592:	4c02      	ldr	r4, [pc, #8]	; (2e59c <mgmt_evt+0xc>)
   2e594:	6824      	ldr	r4, [r4, #0]
   2e596:	b104      	cbz	r4, 2e59a <mgmt_evt+0xa>
        evt_cb(opcode, group, id, arg);
   2e598:	47a0      	blx	r4
    }
}
   2e59a:	bd10      	pop	{r4, pc}
   2e59c:	20002fbc 	.word	0x20002fbc

0002e5a0 <ull_to_s>:
#include <stdbool.h>
#include "util/mcumgr_util.h"

int
ull_to_s(unsigned long long val, int dst_max_len, char *dst)
{
   2e5a0:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
   2e5a4:	4604      	mov	r4, r0
   2e5a6:	460d      	mov	r5, r1
   2e5a8:	4699      	mov	r9, r3
    int digit;
    int off;
    int len;

    /* First, calculate the length of the resulting string. */
    copy = val;
   2e5aa:	4601      	mov	r1, r0
    for (len = 0; copy != 0; len++) {
   2e5ac:	f04f 0800 	mov.w	r8, #0
   2e5b0:	b131      	cbz	r1, 2e5c0 <ull_to_s+0x20>
        copy /= 10;
   2e5b2:	4b19      	ldr	r3, [pc, #100]	; (2e618 <ull_to_s+0x78>)
   2e5b4:	fba3 3101 	umull	r3, r1, r3, r1
   2e5b8:	08c9      	lsrs	r1, r1, #3
    for (len = 0; copy != 0; len++) {
   2e5ba:	f108 0801 	add.w	r8, r8, #1
   2e5be:	e7f7      	b.n	2e5b0 <ull_to_s+0x10>
    }

    /* A value of 0 still requires one character ("0"). */
    if (len == 0) {
   2e5c0:	f1b8 0f00 	cmp.w	r8, #0
   2e5c4:	d101      	bne.n	2e5ca <ull_to_s+0x2a>
        len = 1;
   2e5c6:	f04f 0801 	mov.w	r8, #1
    }

    /* Ensure the buffer can accommodate the string and terminator. */
    if (len >= dst_max_len - 1) {
   2e5ca:	3a01      	subs	r2, #1
   2e5cc:	4542      	cmp	r2, r8
   2e5ce:	dd20      	ble.n	2e612 <ull_to_s+0x72>
        return -1;
    }

    /* Encode the string from right to left. */
    off = len;
    dst[off--] = '\0';
   2e5d0:	f108 3aff 	add.w	sl, r8, #4294967295
   2e5d4:	2300      	movs	r3, #0
   2e5d6:	f809 3008 	strb.w	r3, [r9, r8]
    do {
        digit = val % 10;
   2e5da:	220a      	movs	r2, #10
   2e5dc:	2300      	movs	r3, #0
   2e5de:	4620      	mov	r0, r4
   2e5e0:	4629      	mov	r1, r5
   2e5e2:	f7dd fe8d 	bl	c300 <__aeabi_uldivmod>
        dst[off--] = '0' + digit;
   2e5e6:	3230      	adds	r2, #48	; 0x30
   2e5e8:	f809 200a 	strb.w	r2, [r9, sl]
   2e5ec:	f10a 3aff 	add.w	sl, sl, #4294967295

        val /= 10;
   2e5f0:	4626      	mov	r6, r4
   2e5f2:	462f      	mov	r7, r5
   2e5f4:	220a      	movs	r2, #10
   2e5f6:	2300      	movs	r3, #0
   2e5f8:	4620      	mov	r0, r4
   2e5fa:	4629      	mov	r1, r5
   2e5fc:	f7dd fe80 	bl	c300 <__aeabi_uldivmod>
   2e600:	4604      	mov	r4, r0
   2e602:	460d      	mov	r5, r1
    } while (val > 0);
   2e604:	2f00      	cmp	r7, #0
   2e606:	bf08      	it	eq
   2e608:	2e0a      	cmpeq	r6, #10
   2e60a:	d2e6      	bcs.n	2e5da <ull_to_s+0x3a>

    return len;
}
   2e60c:	4640      	mov	r0, r8
   2e60e:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
        return -1;
   2e612:	f04f 38ff 	mov.w	r8, #4294967295
   2e616:	e7f9      	b.n	2e60c <ull_to_s+0x6c>
   2e618:	cccccccd 	.word	0xcccccccd

0002e61c <_DoInit>:
                      _DoInit();                                                                     \
                    }                                                                                \
                  } while (0);                                                                       \
                }

static void _DoInit(void) {
   2e61c:	b510      	push	{r4, lr}
  volatile SEGGER_RTT_CB* p;   // Volatile to make sure that compiler cannot change the order of accesses to the control block
  //
  // Initialize control block
  //
  p                     = (volatile SEGGER_RTT_CB*)((char*)&_SEGGER_RTT + SEGGER_RTT_UNCACHED_OFF);  // Access control block uncached so that nothing in the cache ever becomes dirty and all changes are visible in HW directly
  p->MaxNumUpBuffers    = SEGGER_RTT_MAX_NUM_UP_BUFFERS;
   2e61e:	4c14      	ldr	r4, [pc, #80]	; (2e670 <_DoInit+0x54>)
   2e620:	2303      	movs	r3, #3
   2e622:	6123      	str	r3, [r4, #16]
  p->MaxNumDownBuffers  = SEGGER_RTT_MAX_NUM_DOWN_BUFFERS;
   2e624:	6163      	str	r3, [r4, #20]
  //
  // Initialize up buffer 0
  //
  p->aUp[0].sName         = "Terminal";
   2e626:	4a13      	ldr	r2, [pc, #76]	; (2e674 <_DoInit+0x58>)
   2e628:	61a2      	str	r2, [r4, #24]
  p->aUp[0].pBuffer       = _acUpBuffer;
   2e62a:	4b13      	ldr	r3, [pc, #76]	; (2e678 <_DoInit+0x5c>)
   2e62c:	61e3      	str	r3, [r4, #28]
  p->aUp[0].SizeOfBuffer  = BUFFER_SIZE_UP;
   2e62e:	f44f 6380 	mov.w	r3, #1024	; 0x400
   2e632:	6223      	str	r3, [r4, #32]
  p->aUp[0].RdOff         = 0u;
   2e634:	2300      	movs	r3, #0
   2e636:	62a3      	str	r3, [r4, #40]	; 0x28
  p->aUp[0].WrOff         = 0u;
   2e638:	6263      	str	r3, [r4, #36]	; 0x24
  p->aUp[0].Flags         = SEGGER_RTT_MODE_DEFAULT;
   2e63a:	62e3      	str	r3, [r4, #44]	; 0x2c
  //
  // Initialize down buffer 0
  //
  p->aDown[0].sName         = "Terminal";
   2e63c:	6622      	str	r2, [r4, #96]	; 0x60
  p->aDown[0].pBuffer       = _acDownBuffer;
   2e63e:	4a0f      	ldr	r2, [pc, #60]	; (2e67c <_DoInit+0x60>)
   2e640:	6662      	str	r2, [r4, #100]	; 0x64
  p->aDown[0].SizeOfBuffer  = BUFFER_SIZE_DOWN;
   2e642:	2210      	movs	r2, #16
   2e644:	66a2      	str	r2, [r4, #104]	; 0x68
  p->aDown[0].RdOff         = 0u;
   2e646:	6723      	str	r3, [r4, #112]	; 0x70
  p->aDown[0].WrOff         = 0u;
   2e648:	66e3      	str	r3, [r4, #108]	; 0x6c
  p->aDown[0].Flags         = SEGGER_RTT_MODE_DEFAULT;
   2e64a:	6763      	str	r3, [r4, #116]	; 0x74
  //
  // Finish initialization of the control block.
  // Copy Id string in three steps to make sure "SEGGER RTT" is not found
  // in initializer memory (usually flash) by J-Link
  //
  STRCPY((char*)&p->acID[7], "RTT");
   2e64c:	490c      	ldr	r1, [pc, #48]	; (2e680 <_DoInit+0x64>)
   2e64e:	1de0      	adds	r0, r4, #7
   2e650:	f007 f9e3 	bl	35a1a <strcpy>
  RTT__DMB();                       // Force order of memory accessed inside core for cores that allow to change the order
   2e654:	f3bf 8f5f 	dmb	sy
  STRCPY((char*)&p->acID[0], "SEGGER");
   2e658:	490a      	ldr	r1, [pc, #40]	; (2e684 <_DoInit+0x68>)
   2e65a:	4620      	mov	r0, r4
   2e65c:	f007 f9dd 	bl	35a1a <strcpy>
  RTT__DMB();                       // Force order of memory accessed inside core for cores that allow to change the order
   2e660:	f3bf 8f5f 	dmb	sy
  p->acID[6] = ' ';
   2e664:	2320      	movs	r3, #32
   2e666:	71a3      	strb	r3, [r4, #6]
  RTT__DMB();                       // Force order of memory accessed inside core for cores that allow to change the order
   2e668:	f3bf 8f5f 	dmb	sy
}
   2e66c:	bd10      	pop	{r4, pc}
   2e66e:	bf00      	nop
   2e670:	20002fc8 	.word	0x20002fc8
   2e674:	0003f7a4 	.word	0x0003f7a4
   2e678:	20003080 	.word	0x20003080
   2e67c:	20003070 	.word	0x20003070
   2e680:	0003f7b0 	.word	0x0003f7b0
   2e684:	0003f7b4 	.word	0x0003f7b4

0002e688 <preparse_value>:
    return type != CborTextStringType && type != CborByteStringType && type != CborArrayType &&
           type != CborMapType;
}

static CborError preparse_value(CborValue *it)
{
   2e688:	b570      	push	{r4, r5, r6, lr}
    const CborParser *parser = it->parser;
   2e68a:	6805      	ldr	r5, [r0, #0]
    it->type = CborInvalidType;
   2e68c:	23ff      	movs	r3, #255	; 0xff
   2e68e:	7383      	strb	r3, [r0, #14]

    /* are we at the end? */
    if (it->offset == parser->end)
   2e690:	6841      	ldr	r1, [r0, #4]
   2e692:	686b      	ldr	r3, [r5, #4]
   2e694:	4299      	cmp	r1, r3
   2e696:	f000 8090 	beq.w	2e7ba <preparse_value+0x132>
   2e69a:	4604      	mov	r4, r0
        return CborErrorUnexpectedEOF;

    uint8_t descriptor = parser->d->get8(parser->d, it->offset);
   2e69c:	6828      	ldr	r0, [r5, #0]
   2e69e:	6803      	ldr	r3, [r0, #0]
   2e6a0:	4798      	blx	r3
    uint8_t type = descriptor & MajorTypeMask;
   2e6a2:	f000 06e0 	and.w	r6, r0, #224	; 0xe0
    it->type = type;
   2e6a6:	73a6      	strb	r6, [r4, #14]
    it->flags = 0;
   2e6a8:	2300      	movs	r3, #0
   2e6aa:	73e3      	strb	r3, [r4, #15]
    it->extra = (descriptor &= SmallValueMask);
   2e6ac:	f000 031f 	and.w	r3, r0, #31
   2e6b0:	81a3      	strh	r3, [r4, #12]

    if (descriptor > Value64Bit) {
   2e6b2:	2b1b      	cmp	r3, #27
   2e6b4:	d91d      	bls.n	2e6f2 <preparse_value+0x6a>
        if (unlikely(descriptor != IndefiniteLength))
   2e6b6:	2b1f      	cmp	r3, #31
   2e6b8:	d10b      	bne.n	2e6d2 <preparse_value+0x4a>
            return type == CborSimpleType ? CborErrorUnknownType : CborErrorIllegalNumber;
        if (likely(!is_fixed_type(type))) {
   2e6ba:	4630      	mov	r0, r6
   2e6bc:	f00c fc03 	bl	3aec6 <is_fixed_type>
   2e6c0:	f080 0001 	eor.w	r0, r0, #1
   2e6c4:	f010 0fff 	tst.w	r0, #255	; 0xff
   2e6c8:	d00b      	beq.n	2e6e2 <preparse_value+0x5a>
            /* special case */
            it->flags |= CborIteratorFlag_UnknownLength;
   2e6ca:	2304      	movs	r3, #4
   2e6cc:	73e3      	strb	r3, [r4, #15]
            it->type = type;
            return CborNoError;
   2e6ce:	2000      	movs	r0, #0
    else if (descriptor == Value16Bit)
        it->extra = parser->d->get16(parser->d, it->offset + 1);
    else
        it->flags |= CborIteratorFlag_IntegerValueTooLarge;     /* Value32Bit or Value64Bit */
    return CborNoError;
}
   2e6d0:	bd70      	pop	{r4, r5, r6, pc}
            return type == CborSimpleType ? CborErrorUnknownType : CborErrorIllegalNumber;
   2e6d2:	2ee0      	cmp	r6, #224	; 0xe0
   2e6d4:	d002      	beq.n	2e6dc <preparse_value+0x54>
   2e6d6:	f240 1005 	movw	r0, #261	; 0x105
   2e6da:	e7f9      	b.n	2e6d0 <preparse_value+0x48>
   2e6dc:	f240 1003 	movw	r0, #259	; 0x103
   2e6e0:	e7f6      	b.n	2e6d0 <preparse_value+0x48>
        return type == CborSimpleType ? CborErrorUnexpectedBreak : CborErrorIllegalNumber;
   2e6e2:	2ee0      	cmp	r6, #224	; 0xe0
   2e6e4:	d002      	beq.n	2e6ec <preparse_value+0x64>
   2e6e6:	f240 1005 	movw	r0, #261	; 0x105
   2e6ea:	e7f1      	b.n	2e6d0 <preparse_value+0x48>
   2e6ec:	f44f 7081 	mov.w	r0, #258	; 0x102
   2e6f0:	e7ee      	b.n	2e6d0 <preparse_value+0x48>
    size_t bytesNeeded = descriptor < Value8Bit ? 0 : (1 << (descriptor - Value8Bit));
   2e6f2:	2b17      	cmp	r3, #23
   2e6f4:	d904      	bls.n	2e700 <preparse_value+0x78>
   2e6f6:	f1a3 0118 	sub.w	r1, r3, #24
   2e6fa:	2201      	movs	r2, #1
   2e6fc:	408a      	lsls	r2, r1
   2e6fe:	e000      	b.n	2e702 <preparse_value+0x7a>
   2e700:	2200      	movs	r2, #0
    if (bytesNeeded + 1 > (size_t)(parser->end - it->offset))
   2e702:	3201      	adds	r2, #1
   2e704:	6868      	ldr	r0, [r5, #4]
   2e706:	6861      	ldr	r1, [r4, #4]
   2e708:	1a40      	subs	r0, r0, r1
   2e70a:	4282      	cmp	r2, r0
   2e70c:	d858      	bhi.n	2e7c0 <preparse_value+0x138>
    uint8_t majortype = type >> MajorTypeShift;
   2e70e:	0972      	lsrs	r2, r6, #5
    if (majortype == NegativeIntegerType) {
   2e710:	2e20      	cmp	r6, #32
   2e712:	d00d      	beq.n	2e730 <preparse_value+0xa8>
    } else if (majortype == SimpleTypesType) {
   2e714:	2a07      	cmp	r2, #7
   2e716:	d010      	beq.n	2e73a <preparse_value+0xb2>
    if (descriptor < Value8Bit)
   2e718:	2b17      	cmp	r3, #23
   2e71a:	d954      	bls.n	2e7c6 <preparse_value+0x13e>
    if (descriptor == Value8Bit)
   2e71c:	2b18      	cmp	r3, #24
   2e71e:	d03e      	beq.n	2e79e <preparse_value+0x116>
    else if (descriptor == Value16Bit)
   2e720:	2b19      	cmp	r3, #25
   2e722:	d043      	beq.n	2e7ac <preparse_value+0x124>
        it->flags |= CborIteratorFlag_IntegerValueTooLarge;     /* Value32Bit or Value64Bit */
   2e724:	7be3      	ldrb	r3, [r4, #15]
   2e726:	f043 0301 	orr.w	r3, r3, #1
   2e72a:	73e3      	strb	r3, [r4, #15]
    return CborNoError;
   2e72c:	2000      	movs	r0, #0
   2e72e:	e7cf      	b.n	2e6d0 <preparse_value+0x48>
        it->flags |= CborIteratorFlag_NegativeInteger;
   2e730:	2202      	movs	r2, #2
   2e732:	73e2      	strb	r2, [r4, #15]
        it->type = CborIntegerType;
   2e734:	2200      	movs	r2, #0
   2e736:	73a2      	strb	r2, [r4, #14]
   2e738:	e7ee      	b.n	2e718 <preparse_value+0x90>
        switch (descriptor) {
   2e73a:	3b14      	subs	r3, #20
   2e73c:	2b0b      	cmp	r3, #11
   2e73e:	d812      	bhi.n	2e766 <preparse_value+0xde>
   2e740:	e8df f003 	tbb	[pc, r3]
   2e744:	0d0d0d06 	.word	0x0d0d0d06
   2e748:	0b0b0d13 	.word	0x0b0b0d13
   2e74c:	20202020 	.word	0x20202020
            it->extra = false;
   2e750:	2300      	movs	r3, #0
   2e752:	81a3      	strh	r3, [r4, #12]
            it->type = CborBooleanType;
   2e754:	23f5      	movs	r3, #245	; 0xf5
   2e756:	73a3      	strb	r3, [r4, #14]
            break;
   2e758:	e005      	b.n	2e766 <preparse_value+0xde>
            it->flags |= CborIteratorFlag_IntegerValueTooLarge;
   2e75a:	2301      	movs	r3, #1
   2e75c:	73e3      	strb	r3, [r4, #15]
            it->type = parser->d->get8(parser->d, it->offset);
   2e75e:	6828      	ldr	r0, [r5, #0]
   2e760:	6803      	ldr	r3, [r0, #0]
   2e762:	4798      	blx	r3
   2e764:	73a0      	strb	r0, [r4, #14]
        return CborNoError;
   2e766:	2000      	movs	r0, #0
   2e768:	e7b2      	b.n	2e6d0 <preparse_value+0x48>
            it->extra = parser->d->get8(parser->d, it->offset + 1);
   2e76a:	6828      	ldr	r0, [r5, #0]
   2e76c:	6803      	ldr	r3, [r0, #0]
   2e76e:	3101      	adds	r1, #1
   2e770:	4798      	blx	r3
   2e772:	b283      	uxth	r3, r0
   2e774:	81a3      	strh	r3, [r4, #12]
            if (unlikely(it->extra < 32)) {
   2e776:	2b1f      	cmp	r3, #31
   2e778:	d8f5      	bhi.n	2e766 <preparse_value+0xde>
                it->type = CborInvalidType;
   2e77a:	23ff      	movs	r3, #255	; 0xff
   2e77c:	73a3      	strb	r3, [r4, #14]
                return CborErrorIllegalSimpleType;
   2e77e:	f44f 7083 	mov.w	r0, #262	; 0x106
   2e782:	e7a5      	b.n	2e6d0 <preparse_value+0x48>
            assert(false);  /* these conditions can't be reached */
   2e784:	4c11      	ldr	r4, [pc, #68]	; (2e7cc <preparse_value+0x144>)
   2e786:	22ef      	movs	r2, #239	; 0xef
   2e788:	4621      	mov	r1, r4
   2e78a:	4811      	ldr	r0, [pc, #68]	; (2e7d0 <preparse_value+0x148>)
   2e78c:	f004 fe0d 	bl	333aa <printk>
   2e790:	21ef      	movs	r1, #239	; 0xef
   2e792:	4620      	mov	r0, r4
   2e794:	f005 f9a2 	bl	33adc <assert_post_action>
            return CborErrorUnexpectedBreak;
   2e798:	f44f 7081 	mov.w	r0, #258	; 0x102
   2e79c:	e798      	b.n	2e6d0 <preparse_value+0x48>
        it->extra = parser->d->get8(parser->d, it->offset + 1);
   2e79e:	6828      	ldr	r0, [r5, #0]
   2e7a0:	6803      	ldr	r3, [r0, #0]
   2e7a2:	3101      	adds	r1, #1
   2e7a4:	4798      	blx	r3
   2e7a6:	81a0      	strh	r0, [r4, #12]
    return CborNoError;
   2e7a8:	2000      	movs	r0, #0
   2e7aa:	e791      	b.n	2e6d0 <preparse_value+0x48>
        it->extra = parser->d->get16(parser->d, it->offset + 1);
   2e7ac:	6828      	ldr	r0, [r5, #0]
   2e7ae:	6843      	ldr	r3, [r0, #4]
   2e7b0:	3101      	adds	r1, #1
   2e7b2:	4798      	blx	r3
   2e7b4:	81a0      	strh	r0, [r4, #12]
    return CborNoError;
   2e7b6:	2000      	movs	r0, #0
   2e7b8:	e78a      	b.n	2e6d0 <preparse_value+0x48>
        return CborErrorUnexpectedEOF;
   2e7ba:	f240 1001 	movw	r0, #257	; 0x101
   2e7be:	e787      	b.n	2e6d0 <preparse_value+0x48>
        return CborErrorUnexpectedEOF;
   2e7c0:	f240 1001 	movw	r0, #257	; 0x101
   2e7c4:	e784      	b.n	2e6d0 <preparse_value+0x48>
        return CborNoError;
   2e7c6:	2000      	movs	r0, #0
   2e7c8:	e782      	b.n	2e6d0 <preparse_value+0x48>
   2e7ca:	bf00      	nop
   2e7cc:	0003f7bc 	.word	0x0003f7bc
   2e7d0:	0003bdac 	.word	0x0003bdac

0002e7d4 <iterate_string_chunks>:
    return true;
}

static CborError iterate_string_chunks(const CborValue *value, char *buffer, size_t *buflen,
                                       bool *result, CborValue *next, IterateFunction func)
{
   2e7d4:	e92d 43f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, lr}
   2e7d8:	b085      	sub	sp, #20
   2e7da:	4604      	mov	r4, r0
   2e7dc:	4689      	mov	r9, r1
   2e7de:	4616      	mov	r6, r2
   2e7e0:	461d      	mov	r5, r3
{ return value->type == CborByteStringType; }
   2e7e2:	7b83      	ldrb	r3, [r0, #14]
    assert(cbor_value_is_byte_string(value) || cbor_value_is_text_string(value));
   2e7e4:	2b40      	cmp	r3, #64	; 0x40
   2e7e6:	d001      	beq.n	2e7ec <iterate_string_chunks+0x18>
   2e7e8:	2b60      	cmp	r3, #96	; 0x60
   2e7ea:	d10c      	bne.n	2e806 <iterate_string_chunks+0x32>

    size_t total;
    CborError err;
    int offset = value->offset;
   2e7ec:	6863      	ldr	r3, [r4, #4]
   2e7ee:	9302      	str	r3, [sp, #8]
{ return (value->flags & CborIteratorFlag_UnknownLength) == 0; }
   2e7f0:	7be2      	ldrb	r2, [r4, #15]
    if (cbor_value_is_length_known(value)) {
   2e7f2:	f012 0f04 	tst.w	r2, #4
   2e7f6:	d014      	beq.n	2e822 <iterate_string_chunks+0x4e>
        else
            *result = false;
        offset += total;
    } else {
        /* chunked */
        ++offset;
   2e7f8:	3301      	adds	r3, #1
   2e7fa:	9302      	str	r3, [sp, #8]
        total = 0;
   2e7fc:	2300      	movs	r3, #0
   2e7fe:	9303      	str	r3, [sp, #12]
        *result = true;
   2e800:	2301      	movs	r3, #1
   2e802:	702b      	strb	r3, [r5, #0]
   2e804:	e050      	b.n	2e8a8 <iterate_string_chunks+0xd4>
    assert(cbor_value_is_byte_string(value) || cbor_value_is_text_string(value));
   2e806:	f8df 814c 	ldr.w	r8, [pc, #332]	; 2e954 <iterate_string_chunks+0x180>
   2e80a:	f240 329e 	movw	r2, #926	; 0x39e
   2e80e:	4641      	mov	r1, r8
   2e810:	484f      	ldr	r0, [pc, #316]	; (2e950 <iterate_string_chunks+0x17c>)
   2e812:	f004 fdca 	bl	333aa <printk>
   2e816:	f240 319e 	movw	r1, #926	; 0x39e
   2e81a:	4640      	mov	r0, r8
   2e81c:	f005 f95e 	bl	33adc <assert_post_action>
   2e820:	e7e4      	b.n	2e7ec <iterate_string_chunks+0x18>
        err = extract_length(value->parser, &offset, &total);
   2e822:	aa03      	add	r2, sp, #12
   2e824:	a902      	add	r1, sp, #8
   2e826:	6820      	ldr	r0, [r4, #0]
   2e828:	f00c fb86 	bl	3af38 <extract_length>
        if (err)
   2e82c:	4603      	mov	r3, r0
   2e82e:	2800      	cmp	r0, #0
   2e830:	d177      	bne.n	2e922 <iterate_string_chunks+0x14e>
        if (total > (size_t)(value->parser->end - offset))
   2e832:	6820      	ldr	r0, [r4, #0]
   2e834:	6843      	ldr	r3, [r0, #4]
   2e836:	9a02      	ldr	r2, [sp, #8]
   2e838:	1a99      	subs	r1, r3, r2
   2e83a:	9b03      	ldr	r3, [sp, #12]
   2e83c:	4299      	cmp	r1, r3
   2e83e:	f0c0 8083 	bcc.w	2e948 <iterate_string_chunks+0x174>
        if (total <= *buflen)
   2e842:	6831      	ldr	r1, [r6, #0]
   2e844:	428b      	cmp	r3, r1
   2e846:	d81e      	bhi.n	2e886 <iterate_string_chunks+0xb2>
            *result = !!func(value->parser->d, buffer, offset, total);
   2e848:	4649      	mov	r1, r9
   2e84a:	6800      	ldr	r0, [r0, #0]
   2e84c:	9f0d      	ldr	r7, [sp, #52]	; 0x34
   2e84e:	47b8      	blx	r7
   2e850:	3800      	subs	r0, #0
   2e852:	bf18      	it	ne
   2e854:	2001      	movne	r0, #1
   2e856:	7028      	strb	r0, [r5, #0]
        offset += total;
   2e858:	9b02      	ldr	r3, [sp, #8]
   2e85a:	9a03      	ldr	r2, [sp, #12]
   2e85c:	4413      	add	r3, r2
   2e85e:	9302      	str	r3, [sp, #8]
            total = newTotal;
        }
    }

    /* is there enough room for the ending NUL byte? */
    if (*result && *buflen > total) {
   2e860:	782b      	ldrb	r3, [r5, #0]
   2e862:	b14b      	cbz	r3, 2e878 <iterate_string_chunks+0xa4>
   2e864:	6832      	ldr	r2, [r6, #0]
   2e866:	9b03      	ldr	r3, [sp, #12]
   2e868:	429a      	cmp	r2, r3
   2e86a:	d905      	bls.n	2e878 <iterate_string_chunks+0xa4>
        /* we are just trying to write a NULL byte here,, but this is hard
         * because this is called by function pointer with an abstract
         * reader.  Since this is the output buffer, we can assume that if
         * we have a valid buffer its ok to write a NULL here  */
        if(buffer) {
   2e86c:	f1b9 0f00 	cmp.w	r9, #0
   2e870:	d002      	beq.n	2e878 <iterate_string_chunks+0xa4>
            *(buffer + total) = '\0';
   2e872:	2200      	movs	r2, #0
   2e874:	f809 2003 	strb.w	r2, [r9, r3]
        }
    }
    *buflen = total;
   2e878:	9b03      	ldr	r3, [sp, #12]
   2e87a:	6033      	str	r3, [r6, #0]

    if (next) {
   2e87c:	9b0c      	ldr	r3, [sp, #48]	; 0x30
   2e87e:	2b00      	cmp	r3, #0
   2e880:	d156      	bne.n	2e930 <iterate_string_chunks+0x15c>
        *next = *value;
        next->offset = offset;
        return preparse_next_value(next);
    }
    return CborNoError;
   2e882:	2300      	movs	r3, #0
   2e884:	e04d      	b.n	2e922 <iterate_string_chunks+0x14e>
            *result = false;
   2e886:	2300      	movs	r3, #0
   2e888:	702b      	strb	r3, [r5, #0]
   2e88a:	e7e5      	b.n	2e858 <iterate_string_chunks+0x84>
                ++offset;
   2e88c:	9b02      	ldr	r3, [sp, #8]
   2e88e:	3301      	adds	r3, #1
   2e890:	9302      	str	r3, [sp, #8]
                break;
   2e892:	e7e5      	b.n	2e860 <iterate_string_chunks+0x8c>
#endif

static inline bool add_check_overflow(size_t v1, size_t v2, size_t *r)
{
#if ((defined(__GNUC__) && (__GNUC__ >= 5)) && !defined(__INTEL_COMPILER)) || __has_builtin(__builtin_add_overflow)
    return __builtin_add_overflow(v1, v2, r);
   2e894:	2201      	movs	r2, #1
   2e896:	e023      	b.n	2e8e0 <iterate_string_chunks+0x10c>
                *result = false;
   2e898:	2300      	movs	r3, #0
   2e89a:	702b      	strb	r3, [r5, #0]
            offset += chunkLen;
   2e89c:	9b02      	ldr	r3, [sp, #8]
   2e89e:	9a01      	ldr	r2, [sp, #4]
   2e8a0:	4413      	add	r3, r2
   2e8a2:	9302      	str	r3, [sp, #8]
            total = newTotal;
   2e8a4:	f8cd 800c 	str.w	r8, [sp, #12]
            if (offset == value->parser->end)
   2e8a8:	6823      	ldr	r3, [r4, #0]
   2e8aa:	685a      	ldr	r2, [r3, #4]
   2e8ac:	9902      	ldr	r1, [sp, #8]
   2e8ae:	428a      	cmp	r2, r1
   2e8b0:	d02f      	beq.n	2e912 <iterate_string_chunks+0x13e>
            val = value->parser->d->get8(value->parser->d, offset);
   2e8b2:	6818      	ldr	r0, [r3, #0]
   2e8b4:	6803      	ldr	r3, [r0, #0]
   2e8b6:	4798      	blx	r3
            if (val == (uint8_t)BreakByte) {
   2e8b8:	28ff      	cmp	r0, #255	; 0xff
   2e8ba:	d0e7      	beq.n	2e88c <iterate_string_chunks+0xb8>
            if ((val & MajorTypeMask) != value->type)
   2e8bc:	f020 001f 	bic.w	r0, r0, #31
   2e8c0:	7ba3      	ldrb	r3, [r4, #14]
   2e8c2:	4298      	cmp	r0, r3
   2e8c4:	d128      	bne.n	2e918 <iterate_string_chunks+0x144>
            err = extract_length(value->parser, &offset, &chunkLen);
   2e8c6:	aa01      	add	r2, sp, #4
   2e8c8:	a902      	add	r1, sp, #8
   2e8ca:	6820      	ldr	r0, [r4, #0]
   2e8cc:	f00c fb34 	bl	3af38 <extract_length>
            if (err)
   2e8d0:	4603      	mov	r3, r0
   2e8d2:	bb30      	cbnz	r0, 2e922 <iterate_string_chunks+0x14e>
            if (unlikely(add_check_overflow(total, chunkLen, &newTotal)))
   2e8d4:	9903      	ldr	r1, [sp, #12]
   2e8d6:	9b01      	ldr	r3, [sp, #4]
   2e8d8:	2200      	movs	r2, #0
   2e8da:	eb11 0803 	adds.w	r8, r1, r3
   2e8de:	d2d9      	bcs.n	2e894 <iterate_string_chunks+0xc0>
   2e8e0:	b9ea      	cbnz	r2, 2e91e <iterate_string_chunks+0x14a>
            if (chunkLen > (size_t)(value->parser->end - offset))
   2e8e2:	f8d4 c000 	ldr.w	ip, [r4]
   2e8e6:	f8dc 0004 	ldr.w	r0, [ip, #4]
   2e8ea:	9a02      	ldr	r2, [sp, #8]
   2e8ec:	1a80      	subs	r0, r0, r2
   2e8ee:	4283      	cmp	r3, r0
   2e8f0:	d81b      	bhi.n	2e92a <iterate_string_chunks+0x156>
            if (*result && *buflen >= newTotal)
   2e8f2:	7828      	ldrb	r0, [r5, #0]
   2e8f4:	2800      	cmp	r0, #0
   2e8f6:	d0cf      	beq.n	2e898 <iterate_string_chunks+0xc4>
   2e8f8:	6830      	ldr	r0, [r6, #0]
   2e8fa:	4540      	cmp	r0, r8
   2e8fc:	d3cc      	bcc.n	2e898 <iterate_string_chunks+0xc4>
                *result = !!func(value->parser->d, buffer + total, offset, chunkLen);
   2e8fe:	4449      	add	r1, r9
   2e900:	f8dc 0000 	ldr.w	r0, [ip]
   2e904:	9f0d      	ldr	r7, [sp, #52]	; 0x34
   2e906:	47b8      	blx	r7
   2e908:	3800      	subs	r0, #0
   2e90a:	bf18      	it	ne
   2e90c:	2001      	movne	r0, #1
   2e90e:	7028      	strb	r0, [r5, #0]
   2e910:	e7c4      	b.n	2e89c <iterate_string_chunks+0xc8>
                return CborErrorUnexpectedEOF;
   2e912:	f240 1301 	movw	r3, #257	; 0x101
   2e916:	e004      	b.n	2e922 <iterate_string_chunks+0x14e>
                return CborErrorIllegalType;
   2e918:	f44f 7382 	mov.w	r3, #260	; 0x104
   2e91c:	e001      	b.n	2e922 <iterate_string_chunks+0x14e>
                return CborErrorDataTooLarge;
   2e91e:	f44f 6380 	mov.w	r3, #1024	; 0x400
}
   2e922:	4618      	mov	r0, r3
   2e924:	b005      	add	sp, #20
   2e926:	e8bd 83f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, pc}
                return CborErrorUnexpectedEOF;
   2e92a:	f240 1301 	movw	r3, #257	; 0x101
   2e92e:	e7f8      	b.n	2e922 <iterate_string_chunks+0x14e>
        *next = *value;
   2e930:	e894 000f 	ldmia.w	r4, {r0, r1, r2, r3}
   2e934:	9c0c      	ldr	r4, [sp, #48]	; 0x30
   2e936:	e884 000f 	stmia.w	r4, {r0, r1, r2, r3}
        next->offset = offset;
   2e93a:	9b02      	ldr	r3, [sp, #8]
   2e93c:	6063      	str	r3, [r4, #4]
        return preparse_next_value(next);
   2e93e:	4620      	mov	r0, r4
   2e940:	f00c fad5 	bl	3aeee <preparse_next_value>
   2e944:	4603      	mov	r3, r0
   2e946:	e7ec      	b.n	2e922 <iterate_string_chunks+0x14e>
            return CborErrorUnexpectedEOF;
   2e948:	f240 1301 	movw	r3, #257	; 0x101
   2e94c:	e7e9      	b.n	2e922 <iterate_string_chunks+0x14e>
   2e94e:	bf00      	nop
   2e950:	0003bdac 	.word	0x0003bdac
   2e954:	0003f7bc 	.word	0x0003f7bc

0002e958 <advance_internal>:
{
   2e958:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
   2e95a:	4604      	mov	r4, r0
    CborError err = extract_number(it->parser, &it->offset,  &length);
   2e95c:	6807      	ldr	r7, [r0, #0]
    return cbor_ntohll(result);
}

static inline CborError extract_number(const CborParser *p, int *offset, uint64_t *len)
{
    uint8_t additional_information = p->d->get8(p->d, *offset) & SmallValueMask;
   2e95e:	6838      	ldr	r0, [r7, #0]
   2e960:	6803      	ldr	r3, [r0, #0]
   2e962:	6861      	ldr	r1, [r4, #4]
   2e964:	4798      	blx	r3
   2e966:	f000 001f 	and.w	r0, r0, #31
    ++*offset;
   2e96a:	6863      	ldr	r3, [r4, #4]
   2e96c:	3301      	adds	r3, #1
   2e96e:	6063      	str	r3, [r4, #4]
    *len = 1;
    if (additional_information < Value8Bit) {
   2e970:	2817      	cmp	r0, #23
   2e972:	d915      	bls.n	2e9a0 <advance_internal+0x48>
        *len = additional_information;
        return CborNoError;
    }
    if (unlikely(additional_information > Value64Bit))
   2e974:	281b      	cmp	r0, #27
   2e976:	d842      	bhi.n	2e9fe <advance_internal+0xa6>
        return CborErrorIllegalNumber;

    size_t bytesNeeded = (size_t)(1 << (additional_information - Value8Bit));
   2e978:	3818      	subs	r0, #24
   2e97a:	2501      	movs	r5, #1
   2e97c:	4085      	lsls	r5, r0
    if (unlikely(bytesNeeded > (size_t)(p->end - *offset))) {
   2e97e:	687b      	ldr	r3, [r7, #4]
   2e980:	6861      	ldr	r1, [r4, #4]
   2e982:	1a5b      	subs	r3, r3, r1
   2e984:	429d      	cmp	r5, r3
   2e986:	d83f      	bhi.n	2ea08 <advance_internal+0xb0>
        return CborErrorUnexpectedEOF;
    } else if (bytesNeeded == 1) {
   2e988:	2d01      	cmp	r5, #1
   2e98a:	d00d      	beq.n	2e9a8 <advance_internal+0x50>
        *len = p->d->get8(p->d, *offset);
    } else if (bytesNeeded == 2) {
   2e98c:	2d02      	cmp	r5, #2
   2e98e:	d02a      	beq.n	2e9e6 <advance_internal+0x8e>
        *len =  p->d->get16(p->d, *offset);
    } else if (bytesNeeded == 4) {
   2e990:	2d04      	cmp	r5, #4
   2e992:	d02e      	beq.n	2e9f2 <advance_internal+0x9a>
        *len =  p->d->get32(p->d, *offset);
    } else {
        *len =  p->d->get64(p->d, *offset);
   2e994:	6838      	ldr	r0, [r7, #0]
   2e996:	68c3      	ldr	r3, [r0, #12]
   2e998:	4798      	blx	r3
   2e99a:	4606      	mov	r6, r0
   2e99c:	460f      	mov	r7, r1
   2e99e:	e008      	b.n	2e9b2 <advance_internal+0x5a>
        *len = additional_information;
   2e9a0:	b2c6      	uxtb	r6, r0
   2e9a2:	2700      	movs	r7, #0
        return CborNoError;
   2e9a4:	2000      	movs	r0, #0
   2e9a6:	e008      	b.n	2e9ba <advance_internal+0x62>
        *len = p->d->get8(p->d, *offset);
   2e9a8:	6838      	ldr	r0, [r7, #0]
   2e9aa:	6803      	ldr	r3, [r0, #0]
   2e9ac:	4798      	blx	r3
   2e9ae:	4606      	mov	r6, r0
   2e9b0:	2700      	movs	r7, #0
    }
    *offset += bytesNeeded;
   2e9b2:	6860      	ldr	r0, [r4, #4]
   2e9b4:	4428      	add	r0, r5
   2e9b6:	6060      	str	r0, [r4, #4]
    return CborNoError;
   2e9b8:	2000      	movs	r0, #0
    if (err != CborNoError) {
   2e9ba:	b998      	cbnz	r0, 2e9e4 <advance_internal+0x8c>
    if (it->type == CborByteStringType || it->type == CborTextStringType) {
   2e9bc:	7ba3      	ldrb	r3, [r4, #14]
   2e9be:	2b40      	cmp	r3, #64	; 0x40
   2e9c0:	d001      	beq.n	2e9c6 <advance_internal+0x6e>
   2e9c2:	2b60      	cmp	r3, #96	; 0x60
   2e9c4:	d10b      	bne.n	2e9de <advance_internal+0x86>
        assert(length == (size_t)length);
   2e9c6:	2300      	movs	r3, #0
   2e9c8:	42bb      	cmp	r3, r7
   2e9ca:	bf08      	it	eq
   2e9cc:	42b6      	cmpeq	r6, r6
   2e9ce:	d120      	bne.n	2ea12 <advance_internal+0xba>
        assert((it->flags & CborIteratorFlag_UnknownLength) == 0);
   2e9d0:	7be3      	ldrb	r3, [r4, #15]
   2e9d2:	f013 0f04 	tst.w	r3, #4
   2e9d6:	d129      	bne.n	2ea2c <advance_internal+0xd4>
        it->offset += length;
   2e9d8:	6860      	ldr	r0, [r4, #4]
   2e9da:	4430      	add	r0, r6
   2e9dc:	6060      	str	r0, [r4, #4]
    return preparse_next_value(it);
   2e9de:	4620      	mov	r0, r4
   2e9e0:	f00c fa85 	bl	3aeee <preparse_next_value>
}
   2e9e4:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
        *len =  p->d->get16(p->d, *offset);
   2e9e6:	6838      	ldr	r0, [r7, #0]
   2e9e8:	6843      	ldr	r3, [r0, #4]
   2e9ea:	4798      	blx	r3
   2e9ec:	4606      	mov	r6, r0
   2e9ee:	2700      	movs	r7, #0
   2e9f0:	e7df      	b.n	2e9b2 <advance_internal+0x5a>
        *len =  p->d->get32(p->d, *offset);
   2e9f2:	6838      	ldr	r0, [r7, #0]
   2e9f4:	6883      	ldr	r3, [r0, #8]
   2e9f6:	4798      	blx	r3
   2e9f8:	4606      	mov	r6, r0
   2e9fa:	2700      	movs	r7, #0
   2e9fc:	e7d9      	b.n	2e9b2 <advance_internal+0x5a>
    *len = 1;
   2e9fe:	2601      	movs	r6, #1
   2ea00:	2700      	movs	r7, #0
        return CborErrorIllegalNumber;
   2ea02:	f240 1005 	movw	r0, #261	; 0x105
   2ea06:	e7d8      	b.n	2e9ba <advance_internal+0x62>
    *len = 1;
   2ea08:	2601      	movs	r6, #1
   2ea0a:	2700      	movs	r7, #0
        return CborErrorUnexpectedEOF;
   2ea0c:	f240 1001 	movw	r0, #257	; 0x101
   2ea10:	e7d3      	b.n	2e9ba <advance_internal+0x62>
        assert(length == (size_t)length);
   2ea12:	4d0d      	ldr	r5, [pc, #52]	; (2ea48 <advance_internal+0xf0>)
   2ea14:	f240 121f 	movw	r2, #287	; 0x11f
   2ea18:	4629      	mov	r1, r5
   2ea1a:	480c      	ldr	r0, [pc, #48]	; (2ea4c <advance_internal+0xf4>)
   2ea1c:	f004 fcc5 	bl	333aa <printk>
   2ea20:	f240 111f 	movw	r1, #287	; 0x11f
   2ea24:	4628      	mov	r0, r5
   2ea26:	f005 f859 	bl	33adc <assert_post_action>
   2ea2a:	e7d1      	b.n	2e9d0 <advance_internal+0x78>
        assert((it->flags & CborIteratorFlag_UnknownLength) == 0);
   2ea2c:	4d06      	ldr	r5, [pc, #24]	; (2ea48 <advance_internal+0xf0>)
   2ea2e:	f44f 7290 	mov.w	r2, #288	; 0x120
   2ea32:	4629      	mov	r1, r5
   2ea34:	4805      	ldr	r0, [pc, #20]	; (2ea4c <advance_internal+0xf4>)
   2ea36:	f004 fcb8 	bl	333aa <printk>
   2ea3a:	f44f 7190 	mov.w	r1, #288	; 0x120
   2ea3e:	4628      	mov	r0, r5
   2ea40:	f005 f84c 	bl	33adc <assert_post_action>
   2ea44:	e7c8      	b.n	2e9d8 <advance_internal+0x80>
   2ea46:	bf00      	nop
   2ea48:	0003f7bc 	.word	0x0003f7bc
   2ea4c:	0003bdac 	.word	0x0003bdac

0002ea50 <_cbor_value_decode_int64_internal>:
{
   2ea50:	b570      	push	{r4, r5, r6, lr}
   2ea52:	4604      	mov	r4, r0
    uint8_t val = value->parser->d->get8(value->parser->d, value->offset);
   2ea54:	6803      	ldr	r3, [r0, #0]
   2ea56:	6818      	ldr	r0, [r3, #0]
   2ea58:	6803      	ldr	r3, [r0, #0]
   2ea5a:	6861      	ldr	r1, [r4, #4]
   2ea5c:	4798      	blx	r3
   2ea5e:	4605      	mov	r5, r0
    assert(value->flags & CborIteratorFlag_IntegerValueTooLarge ||
   2ea60:	7be3      	ldrb	r3, [r4, #15]
   2ea62:	f013 0f01 	tst.w	r3, #1
   2ea66:	d104      	bne.n	2ea72 <_cbor_value_decode_int64_internal+0x22>
   2ea68:	7ba3      	ldrb	r3, [r4, #14]
   2ea6a:	2bfa      	cmp	r3, #250	; 0xfa
   2ea6c:	d001      	beq.n	2ea72 <_cbor_value_decode_int64_internal+0x22>
   2ea6e:	2bfb      	cmp	r3, #251	; 0xfb
   2ea70:	d111      	bne.n	2ea96 <_cbor_value_decode_int64_internal+0x46>
    assert((val & SmallValueMask) == Value32Bit || (val & SmallValueMask) == Value64Bit);
   2ea72:	f005 031e 	and.w	r3, r5, #30
   2ea76:	2b1a      	cmp	r3, #26
   2ea78:	d11a      	bne.n	2eab0 <_cbor_value_decode_int64_internal+0x60>
    if ((val & 1) == (Value32Bit & 1))
   2ea7a:	f015 0f01 	tst.w	r5, #1
   2ea7e:	d024      	beq.n	2eaca <_cbor_value_decode_int64_internal+0x7a>
    assert((val & SmallValueMask) == Value64Bit);
   2ea80:	f005 051f 	and.w	r5, r5, #31
   2ea84:	2d1b      	cmp	r5, #27
   2ea86:	d128      	bne.n	2eada <_cbor_value_decode_int64_internal+0x8a>
        return value->parser->d->get64(value->parser->d, value->offset + 1);
   2ea88:	6823      	ldr	r3, [r4, #0]
   2ea8a:	6818      	ldr	r0, [r3, #0]
   2ea8c:	68c3      	ldr	r3, [r0, #12]
   2ea8e:	6861      	ldr	r1, [r4, #4]
   2ea90:	3101      	adds	r1, #1
   2ea92:	4798      	blx	r3
}
   2ea94:	bd70      	pop	{r4, r5, r6, pc}
    assert(value->flags & CborIteratorFlag_IntegerValueTooLarge ||
   2ea96:	4e17      	ldr	r6, [pc, #92]	; (2eaf4 <_cbor_value_decode_int64_internal+0xa4>)
   2ea98:	f240 1235 	movw	r2, #309	; 0x135
   2ea9c:	4631      	mov	r1, r6
   2ea9e:	4816      	ldr	r0, [pc, #88]	; (2eaf8 <_cbor_value_decode_int64_internal+0xa8>)
   2eaa0:	f004 fc83 	bl	333aa <printk>
   2eaa4:	f240 1135 	movw	r1, #309	; 0x135
   2eaa8:	4630      	mov	r0, r6
   2eaaa:	f005 f817 	bl	33adc <assert_post_action>
   2eaae:	e7e0      	b.n	2ea72 <_cbor_value_decode_int64_internal+0x22>
    assert((val & SmallValueMask) == Value32Bit || (val & SmallValueMask) == Value64Bit);
   2eab0:	4e10      	ldr	r6, [pc, #64]	; (2eaf4 <_cbor_value_decode_int64_internal+0xa4>)
   2eab2:	f44f 729d 	mov.w	r2, #314	; 0x13a
   2eab6:	4631      	mov	r1, r6
   2eab8:	480f      	ldr	r0, [pc, #60]	; (2eaf8 <_cbor_value_decode_int64_internal+0xa8>)
   2eaba:	f004 fc76 	bl	333aa <printk>
   2eabe:	f44f 719d 	mov.w	r1, #314	; 0x13a
   2eac2:	4630      	mov	r0, r6
   2eac4:	f005 f80a 	bl	33adc <assert_post_action>
   2eac8:	e7d7      	b.n	2ea7a <_cbor_value_decode_int64_internal+0x2a>
        return value->parser->d->get32(value->parser->d, value->offset + 1);
   2eaca:	6823      	ldr	r3, [r4, #0]
   2eacc:	6818      	ldr	r0, [r3, #0]
   2eace:	6883      	ldr	r3, [r0, #8]
   2ead0:	6861      	ldr	r1, [r4, #4]
   2ead2:	3101      	adds	r1, #1
   2ead4:	4798      	blx	r3
   2ead6:	2100      	movs	r1, #0
   2ead8:	e7dc      	b.n	2ea94 <_cbor_value_decode_int64_internal+0x44>
    assert((val & SmallValueMask) == Value64Bit);
   2eada:	4d06      	ldr	r5, [pc, #24]	; (2eaf4 <_cbor_value_decode_int64_internal+0xa4>)
   2eadc:	f44f 729f 	mov.w	r2, #318	; 0x13e
   2eae0:	4629      	mov	r1, r5
   2eae2:	4805      	ldr	r0, [pc, #20]	; (2eaf8 <_cbor_value_decode_int64_internal+0xa8>)
   2eae4:	f004 fc61 	bl	333aa <printk>
   2eae8:	f44f 719f 	mov.w	r1, #318	; 0x13e
   2eaec:	4628      	mov	r0, r5
   2eaee:	f004 fff5 	bl	33adc <assert_post_action>
   2eaf2:	e7c9      	b.n	2ea88 <_cbor_value_decode_int64_internal+0x38>
   2eaf4:	0003f7bc 	.word	0x0003f7bc
   2eaf8:	0003bdac 	.word	0x0003bdac

0002eafc <cbor_value_enter_container>:
{
   2eafc:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   2eb00:	4605      	mov	r5, r0
   2eb02:	460c      	mov	r4, r1
{ return it->type == CborArrayType || it->type == CborMapType; }
   2eb04:	7b83      	ldrb	r3, [r0, #14]
   2eb06:	2b80      	cmp	r3, #128	; 0x80
   2eb08:	d022      	beq.n	2eb50 <cbor_value_enter_container+0x54>
   2eb0a:	2ba0      	cmp	r3, #160	; 0xa0
   2eb0c:	d01e      	beq.n	2eb4c <cbor_value_enter_container+0x50>
   2eb0e:	2300      	movs	r3, #0
    assert(cbor_value_is_container(it));
   2eb10:	b303      	cbz	r3, 2eb54 <cbor_value_enter_container+0x58>
    *recursed = *it;
   2eb12:	e895 000f 	ldmia.w	r5, {r0, r1, r2, r3}
   2eb16:	e884 000f 	stmia.w	r4, {r0, r1, r2, r3}
    if (it->flags & CborIteratorFlag_UnknownLength) {
   2eb1a:	7beb      	ldrb	r3, [r5, #15]
   2eb1c:	f013 0f04 	tst.w	r3, #4
   2eb20:	d025      	beq.n	2eb6e <cbor_value_enter_container+0x72>
        recursed->remaining = UINT32_MAX;
   2eb22:	f04f 33ff 	mov.w	r3, #4294967295
   2eb26:	60a3      	str	r3, [r4, #8]
        ++recursed->offset;
   2eb28:	460b      	mov	r3, r1
   2eb2a:	3301      	adds	r3, #1
   2eb2c:	6063      	str	r3, [r4, #4]
        err = preparse_value(recursed);
   2eb2e:	4620      	mov	r0, r4
   2eb30:	f7ff fdaa 	bl	2e688 <preparse_value>
        if (err != CborErrorUnexpectedBreak)
   2eb34:	f5b0 7f81 	cmp.w	r0, #258	; 0x102
   2eb38:	d106      	bne.n	2eb48 <cbor_value_enter_container+0x4c>
        ++recursed->offset;
   2eb3a:	6863      	ldr	r3, [r4, #4]
   2eb3c:	3301      	adds	r3, #1
   2eb3e:	6063      	str	r3, [r4, #4]
    recursed->type = CborInvalidType;
   2eb40:	23ff      	movs	r3, #255	; 0xff
   2eb42:	73a3      	strb	r3, [r4, #14]
    recursed->remaining = 0;
   2eb44:	2000      	movs	r0, #0
   2eb46:	60a0      	str	r0, [r4, #8]
}
   2eb48:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
   2eb4c:	2301      	movs	r3, #1
   2eb4e:	e7df      	b.n	2eb10 <cbor_value_enter_container+0x14>
   2eb50:	2301      	movs	r3, #1
   2eb52:	e7dd      	b.n	2eb10 <cbor_value_enter_container+0x14>
    assert(cbor_value_is_container(it));
   2eb54:	4e44      	ldr	r6, [pc, #272]	; (2ec68 <cbor_value_enter_container+0x16c>)
   2eb56:	f240 2205 	movw	r2, #517	; 0x205
   2eb5a:	4631      	mov	r1, r6
   2eb5c:	4843      	ldr	r0, [pc, #268]	; (2ec6c <cbor_value_enter_container+0x170>)
   2eb5e:	f004 fc24 	bl	333aa <printk>
   2eb62:	f240 2105 	movw	r1, #517	; 0x205
   2eb66:	4630      	mov	r0, r6
   2eb68:	f004 ffb8 	bl	33adc <assert_post_action>
   2eb6c:	e7d1      	b.n	2eb12 <cbor_value_enter_container+0x16>
        err = extract_number(recursed->parser, &recursed->offset, &len);
   2eb6e:	6827      	ldr	r7, [r4, #0]
    uint8_t additional_information = p->d->get8(p->d, *offset) & SmallValueMask;
   2eb70:	6838      	ldr	r0, [r7, #0]
   2eb72:	6803      	ldr	r3, [r0, #0]
   2eb74:	6861      	ldr	r1, [r4, #4]
   2eb76:	4798      	blx	r3
   2eb78:	f000 001f 	and.w	r0, r0, #31
    ++*offset;
   2eb7c:	6863      	ldr	r3, [r4, #4]
   2eb7e:	3301      	adds	r3, #1
   2eb80:	6063      	str	r3, [r4, #4]
    if (additional_information < Value8Bit) {
   2eb82:	2817      	cmp	r0, #23
   2eb84:	d91a      	bls.n	2ebbc <cbor_value_enter_container+0xc0>
    if (unlikely(additional_information > Value64Bit))
   2eb86:	281b      	cmp	r0, #27
   2eb88:	d847      	bhi.n	2ec1a <cbor_value_enter_container+0x11e>
    size_t bytesNeeded = (size_t)(1 << (additional_information - Value8Bit));
   2eb8a:	3818      	subs	r0, #24
   2eb8c:	f04f 0801 	mov.w	r8, #1
   2eb90:	fa08 f800 	lsl.w	r8, r8, r0
    if (unlikely(bytesNeeded > (size_t)(p->end - *offset))) {
   2eb94:	687b      	ldr	r3, [r7, #4]
   2eb96:	6861      	ldr	r1, [r4, #4]
   2eb98:	1a5b      	subs	r3, r3, r1
   2eb9a:	4598      	cmp	r8, r3
   2eb9c:	d842      	bhi.n	2ec24 <cbor_value_enter_container+0x128>
    } else if (bytesNeeded == 1) {
   2eb9e:	f1b8 0f01 	cmp.w	r8, #1
   2eba2:	d00f      	beq.n	2ebc4 <cbor_value_enter_container+0xc8>
    } else if (bytesNeeded == 2) {
   2eba4:	f1b8 0f02 	cmp.w	r8, #2
   2eba8:	d02b      	beq.n	2ec02 <cbor_value_enter_container+0x106>
    } else if (bytesNeeded == 4) {
   2ebaa:	f1b8 0f04 	cmp.w	r8, #4
   2ebae:	d02e      	beq.n	2ec0e <cbor_value_enter_container+0x112>
        *len =  p->d->get64(p->d, *offset);
   2ebb0:	6838      	ldr	r0, [r7, #0]
   2ebb2:	68c3      	ldr	r3, [r0, #12]
   2ebb4:	4798      	blx	r3
   2ebb6:	4606      	mov	r6, r0
   2ebb8:	460f      	mov	r7, r1
   2ebba:	e008      	b.n	2ebce <cbor_value_enter_container+0xd2>
        *len = additional_information;
   2ebbc:	b2c6      	uxtb	r6, r0
   2ebbe:	2700      	movs	r7, #0
        return CborNoError;
   2ebc0:	2300      	movs	r3, #0
   2ebc2:	e008      	b.n	2ebd6 <cbor_value_enter_container+0xda>
        *len = p->d->get8(p->d, *offset);
   2ebc4:	6838      	ldr	r0, [r7, #0]
   2ebc6:	6803      	ldr	r3, [r0, #0]
   2ebc8:	4798      	blx	r3
   2ebca:	4606      	mov	r6, r0
   2ebcc:	2700      	movs	r7, #0
    *offset += bytesNeeded;
   2ebce:	6860      	ldr	r0, [r4, #4]
   2ebd0:	4440      	add	r0, r8
   2ebd2:	6060      	str	r0, [r4, #4]
    return CborNoError;
   2ebd4:	2300      	movs	r3, #0
        assert(err == CborNoError);
   2ebd6:	bb53      	cbnz	r3, 2ec2e <cbor_value_enter_container+0x132>
        recursed->remaining = (uint32_t)len;
   2ebd8:	60a6      	str	r6, [r4, #8]
        if (recursed->remaining != len || len == UINT32_MAX) {
   2ebda:	2300      	movs	r3, #0
   2ebdc:	42bb      	cmp	r3, r7
   2ebde:	bf08      	it	eq
   2ebe0:	42b6      	cmpeq	r6, r6
   2ebe2:	d132      	bne.n	2ec4a <cbor_value_enter_container+0x14e>
   2ebe4:	2f00      	cmp	r7, #0
   2ebe6:	bf08      	it	eq
   2ebe8:	f1b6 3fff 	cmpeq.w	r6, #4294967295
   2ebec:	d02d      	beq.n	2ec4a <cbor_value_enter_container+0x14e>
        if (recursed->type == CborMapType) {
   2ebee:	7ba3      	ldrb	r3, [r4, #14]
   2ebf0:	2ba0      	cmp	r3, #160	; 0xa0
   2ebf2:	d02f      	beq.n	2ec54 <cbor_value_enter_container+0x158>
        if (len != 0)
   2ebf4:	ea56 0307 	orrs.w	r3, r6, r7
   2ebf8:	d0a2      	beq.n	2eb40 <cbor_value_enter_container+0x44>
            return preparse_value(recursed);
   2ebfa:	4620      	mov	r0, r4
   2ebfc:	f7ff fd44 	bl	2e688 <preparse_value>
   2ec00:	e7a2      	b.n	2eb48 <cbor_value_enter_container+0x4c>
        *len =  p->d->get16(p->d, *offset);
   2ec02:	6838      	ldr	r0, [r7, #0]
   2ec04:	6843      	ldr	r3, [r0, #4]
   2ec06:	4798      	blx	r3
   2ec08:	4606      	mov	r6, r0
   2ec0a:	2700      	movs	r7, #0
   2ec0c:	e7df      	b.n	2ebce <cbor_value_enter_container+0xd2>
        *len =  p->d->get32(p->d, *offset);
   2ec0e:	6838      	ldr	r0, [r7, #0]
   2ec10:	6883      	ldr	r3, [r0, #8]
   2ec12:	4798      	blx	r3
   2ec14:	4606      	mov	r6, r0
   2ec16:	2700      	movs	r7, #0
   2ec18:	e7d9      	b.n	2ebce <cbor_value_enter_container+0xd2>
    *len = 1;
   2ec1a:	2601      	movs	r6, #1
   2ec1c:	2700      	movs	r7, #0
        return CborErrorIllegalNumber;
   2ec1e:	f240 1305 	movw	r3, #261	; 0x105
   2ec22:	e7d8      	b.n	2ebd6 <cbor_value_enter_container+0xda>
    *len = 1;
   2ec24:	2601      	movs	r6, #1
   2ec26:	2700      	movs	r7, #0
        return CborErrorUnexpectedEOF;
   2ec28:	f240 1301 	movw	r3, #257	; 0x101
   2ec2c:	e7d3      	b.n	2ebd6 <cbor_value_enter_container+0xda>
        assert(err == CborNoError);
   2ec2e:	f8df 8038 	ldr.w	r8, [pc, #56]	; 2ec68 <cbor_value_enter_container+0x16c>
   2ec32:	f44f 7205 	mov.w	r2, #532	; 0x214
   2ec36:	4641      	mov	r1, r8
   2ec38:	480c      	ldr	r0, [pc, #48]	; (2ec6c <cbor_value_enter_container+0x170>)
   2ec3a:	f004 fbb6 	bl	333aa <printk>
   2ec3e:	f44f 7105 	mov.w	r1, #532	; 0x214
   2ec42:	4640      	mov	r0, r8
   2ec44:	f004 ff4a 	bl	33adc <assert_post_action>
   2ec48:	e7c6      	b.n	2ebd8 <cbor_value_enter_container+0xdc>
            recursed->offset = it->offset;
   2ec4a:	686b      	ldr	r3, [r5, #4]
   2ec4c:	6063      	str	r3, [r4, #4]
            return CborErrorDataTooLarge;
   2ec4e:	f44f 6080 	mov.w	r0, #1024	; 0x400
   2ec52:	e779      	b.n	2eb48 <cbor_value_enter_container+0x4c>
            if (recursed->remaining > UINT32_MAX / 2) {
   2ec54:	2e00      	cmp	r6, #0
   2ec56:	db02      	blt.n	2ec5e <cbor_value_enter_container+0x162>
            recursed->remaining *= 2;
   2ec58:	0071      	lsls	r1, r6, #1
   2ec5a:	60a1      	str	r1, [r4, #8]
   2ec5c:	e7ca      	b.n	2ebf4 <cbor_value_enter_container+0xf8>
                recursed->offset = it->offset;
   2ec5e:	686b      	ldr	r3, [r5, #4]
   2ec60:	6063      	str	r3, [r4, #4]
                return CborErrorDataTooLarge;
   2ec62:	f44f 6080 	mov.w	r0, #1024	; 0x400
   2ec66:	e76f      	b.n	2eb48 <cbor_value_enter_container+0x4c>
   2ec68:	0003f7bc 	.word	0x0003f7bc
   2ec6c:	0003bdac 	.word	0x0003bdac

0002ec70 <cbor_value_leave_container>:
{
   2ec70:	b570      	push	{r4, r5, r6, lr}
   2ec72:	4604      	mov	r4, r0
   2ec74:	460d      	mov	r5, r1
   2ec76:	7b83      	ldrb	r3, [r0, #14]
   2ec78:	2b80      	cmp	r3, #128	; 0x80
   2ec7a:	d00e      	beq.n	2ec9a <cbor_value_leave_container+0x2a>
   2ec7c:	2ba0      	cmp	r3, #160	; 0xa0
   2ec7e:	d00a      	beq.n	2ec96 <cbor_value_leave_container+0x26>
   2ec80:	2300      	movs	r3, #0
    assert(cbor_value_is_container(it));
   2ec82:	b163      	cbz	r3, 2ec9e <cbor_value_leave_container+0x2e>
    assert(recursed->type == CborInvalidType);
   2ec84:	7bab      	ldrb	r3, [r5, #14]
   2ec86:	2bff      	cmp	r3, #255	; 0xff
   2ec88:	d116      	bne.n	2ecb8 <cbor_value_leave_container+0x48>
    it->offset = recursed->offset;
   2ec8a:	686b      	ldr	r3, [r5, #4]
   2ec8c:	6063      	str	r3, [r4, #4]
    return preparse_next_value(it);
   2ec8e:	4620      	mov	r0, r4
   2ec90:	f00c f92d 	bl	3aeee <preparse_next_value>
}
   2ec94:	bd70      	pop	{r4, r5, r6, pc}
   2ec96:	2301      	movs	r3, #1
   2ec98:	e7f3      	b.n	2ec82 <cbor_value_leave_container+0x12>
   2ec9a:	2301      	movs	r3, #1
   2ec9c:	e7f1      	b.n	2ec82 <cbor_value_leave_container+0x12>
    assert(cbor_value_is_container(it));
   2ec9e:	4e0d      	ldr	r6, [pc, #52]	; (2ecd4 <cbor_value_leave_container+0x64>)
   2eca0:	f240 223d 	movw	r2, #573	; 0x23d
   2eca4:	4631      	mov	r1, r6
   2eca6:	480c      	ldr	r0, [pc, #48]	; (2ecd8 <cbor_value_leave_container+0x68>)
   2eca8:	f004 fb7f 	bl	333aa <printk>
   2ecac:	f240 213d 	movw	r1, #573	; 0x23d
   2ecb0:	4630      	mov	r0, r6
   2ecb2:	f004 ff13 	bl	33adc <assert_post_action>
   2ecb6:	e7e5      	b.n	2ec84 <cbor_value_leave_container+0x14>
    assert(recursed->type == CborInvalidType);
   2ecb8:	4e06      	ldr	r6, [pc, #24]	; (2ecd4 <cbor_value_leave_container+0x64>)
   2ecba:	f240 223e 	movw	r2, #574	; 0x23e
   2ecbe:	4631      	mov	r1, r6
   2ecc0:	4805      	ldr	r0, [pc, #20]	; (2ecd8 <cbor_value_leave_container+0x68>)
   2ecc2:	f004 fb72 	bl	333aa <printk>
   2ecc6:	f240 213e 	movw	r1, #574	; 0x23e
   2ecca:	4630      	mov	r0, r6
   2eccc:	f004 ff06 	bl	33adc <assert_post_action>
   2ecd0:	e7db      	b.n	2ec8a <cbor_value_leave_container+0x1a>
   2ecd2:	bf00      	nop
   2ecd4:	0003f7bc 	.word	0x0003f7bc
   2ecd8:	0003bdac 	.word	0x0003bdac

0002ecdc <_cbor_value_copy_string>:
 * \sa cbor_value_dup_text_string(), cbor_value_copy_text_string(), cbor_value_get_string_length(), cbor_value_calculate_string_length()
 */

CborError _cbor_value_copy_string(const CborValue *value, void *buffer,
                                 size_t *buflen, CborValue *next)
{
   2ecdc:	b510      	push	{r4, lr}
   2ecde:	b084      	sub	sp, #16
    bool copied_all;
    CborError err = iterate_string_chunks(value, (char*)buffer, buflen, &copied_all, next,
   2ece0:	460c      	mov	r4, r1
   2ece2:	b179      	cbz	r1, 2ed04 <_cbor_value_copy_string+0x28>
                                          buffer ? (IterateFunction) value->parser->d->cpy : iterate_noop);
   2ece4:	6801      	ldr	r1, [r0, #0]
   2ece6:	6809      	ldr	r1, [r1, #0]
    CborError err = iterate_string_chunks(value, (char*)buffer, buflen, &copied_all, next,
   2ece8:	6949      	ldr	r1, [r1, #20]
   2ecea:	9101      	str	r1, [sp, #4]
   2ecec:	9300      	str	r3, [sp, #0]
   2ecee:	f10d 030f 	add.w	r3, sp, #15
   2ecf2:	4621      	mov	r1, r4
   2ecf4:	f7ff fd6e 	bl	2e7d4 <iterate_string_chunks>
    return err ? err :
   2ecf8:	b910      	cbnz	r0, 2ed00 <_cbor_value_copy_string+0x24>
                 copied_all ? CborNoError : CborErrorOutOfMemory;
   2ecfa:	f89d 300f 	ldrb.w	r3, [sp, #15]
    return err ? err :
   2ecfe:	b11b      	cbz	r3, 2ed08 <_cbor_value_copy_string+0x2c>
}
   2ed00:	b004      	add	sp, #16
   2ed02:	bd10      	pop	{r4, pc}
    CborError err = iterate_string_chunks(value, (char*)buffer, buflen, &copied_all, next,
   2ed04:	4902      	ldr	r1, [pc, #8]	; (2ed10 <_cbor_value_copy_string+0x34>)
   2ed06:	e7f0      	b.n	2ecea <_cbor_value_copy_string+0xe>
    return err ? err :
   2ed08:	f04f 4000 	mov.w	r0, #2147483648	; 0x80000000
   2ed0c:	e7f8      	b.n	2ed00 <_cbor_value_copy_string+0x24>
   2ed0e:	bf00      	nop
   2ed10:	0003aeeb 	.word	0x0003aeeb

0002ed14 <cbor_value_advance>:
{
   2ed14:	b538      	push	{r3, r4, r5, lr}
   2ed16:	4604      	mov	r4, r0
    assert(it->type != CborInvalidType);
   2ed18:	7b83      	ldrb	r3, [r0, #14]
   2ed1a:	2bff      	cmp	r3, #255	; 0xff
   2ed1c:	d006      	beq.n	2ed2c <cbor_value_advance+0x18>
    if (!it->remaining)
   2ed1e:	68a3      	ldr	r3, [r4, #8]
   2ed20:	b18b      	cbz	r3, 2ed46 <cbor_value_advance+0x32>
    return advance_recursive(it, 0);
   2ed22:	2100      	movs	r1, #0
   2ed24:	4620      	mov	r0, r4
   2ed26:	f00c f97b 	bl	3b020 <advance_recursive>
}
   2ed2a:	bd38      	pop	{r3, r4, r5, pc}
    assert(it->type != CborInvalidType);
   2ed2c:	4d07      	ldr	r5, [pc, #28]	; (2ed4c <cbor_value_advance+0x38>)
   2ed2e:	f240 12c5 	movw	r2, #453	; 0x1c5
   2ed32:	4629      	mov	r1, r5
   2ed34:	4806      	ldr	r0, [pc, #24]	; (2ed50 <cbor_value_advance+0x3c>)
   2ed36:	f004 fb38 	bl	333aa <printk>
   2ed3a:	f240 11c5 	movw	r1, #453	; 0x1c5
   2ed3e:	4628      	mov	r0, r5
   2ed40:	f004 fecc 	bl	33adc <assert_post_action>
   2ed44:	e7eb      	b.n	2ed1e <cbor_value_advance+0xa>
        return CborErrorAdvancePastEOF;
   2ed46:	2003      	movs	r0, #3
   2ed48:	e7ef      	b.n	2ed2a <cbor_value_advance+0x16>
   2ed4a:	bf00      	nop
   2ed4c:	0003f7bc 	.word	0x0003f7bc
   2ed50:	0003bdac 	.word	0x0003bdac

0002ed54 <z_device_state_init>:
 * The state object is always zero-initialized, but this may not be
 * sufficient.
 */
void z_device_state_init(void)
{
	const struct device *dev = __device_start;
   2ed54:	4b03      	ldr	r3, [pc, #12]	; (2ed64 <z_device_state_init+0x10>)

	while (dev < __device_end) {
   2ed56:	4a04      	ldr	r2, [pc, #16]	; (2ed68 <z_device_state_init+0x14>)
   2ed58:	4293      	cmp	r3, r2
   2ed5a:	d201      	bcs.n	2ed60 <z_device_state_init+0xc>
		z_object_init(dev);
		++dev;
   2ed5c:	3318      	adds	r3, #24
   2ed5e:	e7fa      	b.n	2ed56 <z_device_state_init+0x2>
	}
}
   2ed60:	4770      	bx	lr
   2ed62:	bf00      	nop
   2ed64:	0003b544 	.word	0x0003b544
   2ed68:	0003b604 	.word	0x0003b604

0002ed6c <z_sys_init_run_level>:
 * off and the next one begins.
 *
 * @param level init level to run.
 */
void z_sys_init_run_level(int32_t level)
{
   2ed6c:	b570      	push	{r4, r5, r6, lr}
   2ed6e:	4606      	mov	r6, r0
		/* End marker */
		__init_end,
	};
	const struct init_entry *entry;

	for (entry = levels[level]; entry < levels[level+1]; entry++) {
   2ed70:	4b11      	ldr	r3, [pc, #68]	; (2edb8 <z_sys_init_run_level+0x4c>)
   2ed72:	f853 4020 	ldr.w	r4, [r3, r0, lsl #2]
   2ed76:	e009      	b.n	2ed8c <z_sys_init_run_level+0x20>
			/* Mark device initialized.  If initialization
			 * failed, record the error condition.
			 */
			if (rc != 0) {
				if (rc < 0) {
					rc = -rc;
   2ed78:	4240      	negs	r0, r0
   2ed7a:	e017      	b.n	2edac <z_sys_init_run_level+0x40>
				}
				if (rc > UINT8_MAX) {
					rc = UINT8_MAX;
				}
				dev->state->init_res = rc;
   2ed7c:	68eb      	ldr	r3, [r5, #12]
   2ed7e:	7018      	strb	r0, [r3, #0]
			}
			dev->state->initialized = true;
   2ed80:	68ea      	ldr	r2, [r5, #12]
   2ed82:	7853      	ldrb	r3, [r2, #1]
   2ed84:	f043 0301 	orr.w	r3, r3, #1
   2ed88:	7053      	strb	r3, [r2, #1]
	for (entry = levels[level]; entry < levels[level+1]; entry++) {
   2ed8a:	3408      	adds	r4, #8
   2ed8c:	1c73      	adds	r3, r6, #1
   2ed8e:	4a0a      	ldr	r2, [pc, #40]	; (2edb8 <z_sys_init_run_level+0x4c>)
   2ed90:	f852 3023 	ldr.w	r3, [r2, r3, lsl #2]
   2ed94:	42a3      	cmp	r3, r4
   2ed96:	d90d      	bls.n	2edb4 <z_sys_init_run_level+0x48>
		const struct device *dev = entry->dev;
   2ed98:	6865      	ldr	r5, [r4, #4]
		int rc = entry->init(dev);
   2ed9a:	6823      	ldr	r3, [r4, #0]
   2ed9c:	4628      	mov	r0, r5
   2ed9e:	4798      	blx	r3
		if (dev != NULL) {
   2eda0:	2d00      	cmp	r5, #0
   2eda2:	d0f2      	beq.n	2ed8a <z_sys_init_run_level+0x1e>
			if (rc != 0) {
   2eda4:	2800      	cmp	r0, #0
   2eda6:	d0eb      	beq.n	2ed80 <z_sys_init_run_level+0x14>
				if (rc < 0) {
   2eda8:	2800      	cmp	r0, #0
   2edaa:	dbe5      	blt.n	2ed78 <z_sys_init_run_level+0xc>
				if (rc > UINT8_MAX) {
   2edac:	28ff      	cmp	r0, #255	; 0xff
   2edae:	dde5      	ble.n	2ed7c <z_sys_init_run_level+0x10>
					rc = UINT8_MAX;
   2edb0:	20ff      	movs	r0, #255	; 0xff
   2edb2:	e7e3      	b.n	2ed7c <z_sys_init_run_level+0x10>
		}
	}
}
   2edb4:	bd70      	pop	{r4, r5, r6, pc}
   2edb6:	bf00      	nop
   2edb8:	0003f7f0 	.word	0x0003f7f0

0002edbc <z_impl_device_get_binding>:

const struct device *z_impl_device_get_binding(const char *name)
{
   2edbc:	b538      	push	{r3, r4, r5, lr}
	const struct device *dev;

	/* A null string identifies no device.  So does an empty
	 * string.
	 */
	if ((name == NULL) || (name[0] == '\0')) {
   2edbe:	4605      	mov	r5, r0
   2edc0:	b328      	cbz	r0, 2ee0e <z_impl_device_get_binding+0x52>
   2edc2:	7803      	ldrb	r3, [r0, #0]
   2edc4:	b32b      	cbz	r3, 2ee12 <z_impl_device_get_binding+0x56>
	/* Split the search into two loops: in the common scenario, where
	 * device names are stored in ROM (and are referenced by the user
	 * with CONFIG_* macros), only cheap pointer comparisons will be
	 * performed. Reserve string comparisons for a fallback.
	 */
	for (dev = __device_start; dev != __device_end; dev++) {
   2edc6:	4c14      	ldr	r4, [pc, #80]	; (2ee18 <z_impl_device_get_binding+0x5c>)
   2edc8:	e000      	b.n	2edcc <z_impl_device_get_binding+0x10>
   2edca:	3418      	adds	r4, #24
   2edcc:	4b13      	ldr	r3, [pc, #76]	; (2ee1c <z_impl_device_get_binding+0x60>)
   2edce:	429c      	cmp	r4, r3
   2edd0:	d008      	beq.n	2ede4 <z_impl_device_get_binding+0x28>
		if (z_device_ready(dev) && (dev->name == name)) {
   2edd2:	4620      	mov	r0, r4
   2edd4:	f00c f96f 	bl	3b0b6 <z_device_ready>
   2edd8:	2800      	cmp	r0, #0
   2edda:	d0f6      	beq.n	2edca <z_impl_device_get_binding+0xe>
   2eddc:	6823      	ldr	r3, [r4, #0]
   2edde:	42ab      	cmp	r3, r5
   2ede0:	d1f3      	bne.n	2edca <z_impl_device_get_binding+0xe>
   2ede2:	e012      	b.n	2ee0a <z_impl_device_get_binding+0x4e>
			return dev;
		}
	}

	for (dev = __device_start; dev != __device_end; dev++) {
   2ede4:	4c0c      	ldr	r4, [pc, #48]	; (2ee18 <z_impl_device_get_binding+0x5c>)
   2ede6:	e000      	b.n	2edea <z_impl_device_get_binding+0x2e>
   2ede8:	3418      	adds	r4, #24
   2edea:	4b0c      	ldr	r3, [pc, #48]	; (2ee1c <z_impl_device_get_binding+0x60>)
   2edec:	429c      	cmp	r4, r3
   2edee:	d00b      	beq.n	2ee08 <z_impl_device_get_binding+0x4c>
		if (z_device_ready(dev) && (strcmp(name, dev->name) == 0)) {
   2edf0:	4620      	mov	r0, r4
   2edf2:	f00c f960 	bl	3b0b6 <z_device_ready>
   2edf6:	2800      	cmp	r0, #0
   2edf8:	d0f6      	beq.n	2ede8 <z_impl_device_get_binding+0x2c>
   2edfa:	6821      	ldr	r1, [r4, #0]
   2edfc:	4628      	mov	r0, r5
   2edfe:	f006 fe41 	bl	35a84 <strcmp>
   2ee02:	2800      	cmp	r0, #0
   2ee04:	d1f0      	bne.n	2ede8 <z_impl_device_get_binding+0x2c>
   2ee06:	e000      	b.n	2ee0a <z_impl_device_get_binding+0x4e>
			return dev;
		}
	}

	return NULL;
   2ee08:	2400      	movs	r4, #0
}
   2ee0a:	4620      	mov	r0, r4
   2ee0c:	bd38      	pop	{r3, r4, r5, pc}
		return NULL;
   2ee0e:	4604      	mov	r4, r0
   2ee10:	e7fb      	b.n	2ee0a <z_impl_device_get_binding+0x4e>
   2ee12:	2400      	movs	r4, #0
   2ee14:	e7f9      	b.n	2ee0a <z_impl_device_get_binding+0x4e>
   2ee16:	bf00      	nop
   2ee18:	0003b544 	.word	0x0003b544
   2ee1c:	0003b604 	.word	0x0003b604

0002ee20 <z_impl_z_errno>:
#include <syscalls/z_errno_mrsh.c>

#else
int *z_impl_z_errno(void)
{
	return &_current->errno_var;
   2ee20:	4b01      	ldr	r3, [pc, #4]	; (2ee28 <z_impl_z_errno+0x8>)
   2ee22:	6898      	ldr	r0, [r3, #8]
}
   2ee24:	3098      	adds	r0, #152	; 0x98
   2ee26:	4770      	bx	lr
   2ee28:	20003480 	.word	0x20003480

0002ee2c <reason_to_str>:
	return thread_name;
}

static const char *reason_to_str(unsigned int reason)
{
	switch (reason) {
   2ee2c:	2804      	cmp	r0, #4
   2ee2e:	d80c      	bhi.n	2ee4a <reason_to_str+0x1e>
   2ee30:	e8df f000 	tbb	[pc, r0]
   2ee34:	07050d03 	.word	0x07050d03
   2ee38:	09          	.byte	0x09
   2ee39:	00          	.byte	0x00
	case K_ERR_STACK_CHK_FAIL:
		return "Stack overflow";
	case K_ERR_KERNEL_OOPS:
		return "Kernel oops";
	case K_ERR_KERNEL_PANIC:
		return "Kernel panic";
   2ee3a:	4806      	ldr	r0, [pc, #24]	; (2ee54 <reason_to_str+0x28>)
   2ee3c:	4770      	bx	lr
		return "Stack overflow";
   2ee3e:	4806      	ldr	r0, [pc, #24]	; (2ee58 <reason_to_str+0x2c>)
   2ee40:	4770      	bx	lr
		return "Kernel oops";
   2ee42:	4806      	ldr	r0, [pc, #24]	; (2ee5c <reason_to_str+0x30>)
   2ee44:	4770      	bx	lr
		return "Kernel panic";
   2ee46:	4806      	ldr	r0, [pc, #24]	; (2ee60 <reason_to_str+0x34>)
   2ee48:	4770      	bx	lr
	default:
		return "Unknown error";
   2ee4a:	4806      	ldr	r0, [pc, #24]	; (2ee64 <reason_to_str+0x38>)
   2ee4c:	4770      	bx	lr
		return "Unhandled interrupt";
   2ee4e:	4806      	ldr	r0, [pc, #24]	; (2ee68 <reason_to_str+0x3c>)
	}
}
   2ee50:	4770      	bx	lr
   2ee52:	bf00      	nop
   2ee54:	0003f858 	.word	0x0003f858
   2ee58:	0003f82c 	.word	0x0003f82c
   2ee5c:	0003f83c 	.word	0x0003f83c
   2ee60:	0003f848 	.word	0x0003f848
   2ee64:	0003f808 	.word	0x0003f808
   2ee68:	0003f818 	.word	0x0003f818

0002ee6c <thread_name_get>:
	const char *thread_name = (thread != NULL) ? k_thread_name_get(thread) : NULL;
   2ee6c:	b130      	cbz	r0, 2ee7c <thread_name_get+0x10>
{
   2ee6e:	b508      	push	{r3, lr}
	const char *thread_name = (thread != NULL) ? k_thread_name_get(thread) : NULL;
   2ee70:	f00c f965 	bl	3b13e <k_thread_name_get>
	if ((thread_name == NULL) || (thread_name[0] == '\0')) {
   2ee74:	b120      	cbz	r0, 2ee80 <thread_name_get+0x14>
   2ee76:	7803      	ldrb	r3, [r0, #0]
   2ee78:	b123      	cbz	r3, 2ee84 <thread_name_get+0x18>
}
   2ee7a:	bd08      	pop	{r3, pc}
		thread_name = "unknown";
   2ee7c:	4802      	ldr	r0, [pc, #8]	; (2ee88 <thread_name_get+0x1c>)
}
   2ee7e:	4770      	bx	lr
		thread_name = "unknown";
   2ee80:	4801      	ldr	r0, [pc, #4]	; (2ee88 <thread_name_get+0x1c>)
   2ee82:	e7fa      	b.n	2ee7a <thread_name_get+0xe>
   2ee84:	4800      	ldr	r0, [pc, #0]	; (2ee88 <thread_name_get+0x1c>)
	return thread_name;
   2ee86:	e7f8      	b.n	2ee7a <thread_name_get+0xe>
   2ee88:	0003f868 	.word	0x0003f868

0002ee8c <z_fatal_error>:
	return 0;
#endif
}

void z_fatal_error(unsigned int reason, const z_arch_esf_t *esf)
{
   2ee8c:	b5f0      	push	{r4, r5, r6, r7, lr}
   2ee8e:	b083      	sub	sp, #12
   2ee90:	4604      	mov	r4, r0
   2ee92:	460e      	mov	r6, r1
   2ee94:	f04f 0340 	mov.w	r3, #64	; 0x40
   2ee98:	f3ef 8711 	mrs	r7, BASEPRI
   2ee9c:	f383 8812 	msr	BASEPRI_MAX, r3
   2eea0:	f3bf 8f6f 	isb	sy
	return z_impl_z_current_get();
   2eea4:	f002 feec 	bl	31c80 <z_impl_z_current_get>
   2eea8:	4605      	mov	r5, r0
			k_current_get() : NULL;

	/* twister looks for the "ZEPHYR FATAL ERROR" string, don't
	 * change it without also updating twister
	 */
	LOG_ERR(">>> ZEPHYR FATAL ERROR %d: %s on CPU %d", reason,
   2eeaa:	4620      	mov	r0, r4
   2eeac:	f7ff ffbe 	bl	2ee2c <reason_to_str>
   2eeb0:	4603      	mov	r3, r0
   2eeb2:	2200      	movs	r2, #0
   2eeb4:	9200      	str	r2, [sp, #0]
   2eeb6:	4622      	mov	r2, r4
   2eeb8:	2145      	movs	r1, #69	; 0x45
   2eeba:	4818      	ldr	r0, [pc, #96]	; (2ef1c <z_fatal_error+0x90>)
   2eebc:	f004 fe16 	bl	33aec <z_log_minimal_printk>
	 * an IRQ or exception was being handled, or thread context.
	 *
	 * See #17656
	 */
#if defined(CONFIG_ARCH_HAS_NESTED_EXCEPTION_DETECTION)
	if ((esf != NULL) && arch_is_in_nested_exception(esf)) {
   2eec0:	b11e      	cbz	r6, 2eeca <z_fatal_error+0x3e>
 * @return true if execution state was in handler mode, before
 *              the current exception occurred, otherwise false.
 */
static ALWAYS_INLINE bool arch_is_in_nested_exception(const z_arch_esf_t *esf)
{
	return (esf->basic.xpsr & IPSR_ISR_Msk) ? (true) : (false);
   2eec2:	69f3      	ldr	r3, [r6, #28]
   2eec4:	f3c3 0308 	ubfx	r3, r3, #0, #9
   2eec8:	b9bb      	cbnz	r3, 2eefa <z_fatal_error+0x6e>
		LOG_ERR("Fault during interrupt handling\n");
	}
#endif

	LOG_ERR("Current thread: %p (%s)", thread,
   2eeca:	4628      	mov	r0, r5
   2eecc:	f7ff ffce 	bl	2ee6c <thread_name_get>
   2eed0:	4603      	mov	r3, r0
   2eed2:	462a      	mov	r2, r5
   2eed4:	2145      	movs	r1, #69	; 0x45
   2eed6:	4812      	ldr	r0, [pc, #72]	; (2ef20 <z_fatal_error+0x94>)
   2eed8:	f004 fe08 	bl	33aec <z_log_minimal_printk>
		log_strdup(thread_name_get(thread)));

	coredump(reason, esf, thread);

	k_sys_fatal_error_handler(reason, esf);
   2eedc:	4631      	mov	r1, r6
   2eede:	4620      	mov	r0, r4
   2eee0:	f7fd f87a 	bl	2bfd8 <k_sys_fatal_error_handler>
	 *
	 * Note that k_thread_abort() returns on some architectures but
	 * not others; e.g. on ARC, x86_64, Xtensa with ASM2, ARM
	 */
	if (!IS_ENABLED(CONFIG_TEST)) {
		__ASSERT(reason != K_ERR_KERNEL_PANIC,
   2eee4:	2c04      	cmp	r4, #4
   2eee6:	d00d      	beq.n	2ef04 <z_fatal_error+0x78>
	__asm__ volatile(
   2eee8:	f387 8811 	msr	BASEPRI, r7
   2eeec:	f3bf 8f6f 	isb	sy
	z_impl_k_thread_abort(thread);
   2eef0:	4628      	mov	r0, r5
   2eef2:	f7f0 fec3 	bl	1fc7c <z_impl_k_thread_abort>
	arch_irq_unlock(key);

	if (IS_ENABLED(CONFIG_MULTITHREADING)) {
		k_thread_abort(thread);
	}
}
   2eef6:	b003      	add	sp, #12
   2eef8:	bdf0      	pop	{r4, r5, r6, r7, pc}
		LOG_ERR("Fault during interrupt handling\n");
   2eefa:	2145      	movs	r1, #69	; 0x45
   2eefc:	4809      	ldr	r0, [pc, #36]	; (2ef24 <z_fatal_error+0x98>)
   2eefe:	f004 fdf5 	bl	33aec <z_log_minimal_printk>
   2ef02:	e7e2      	b.n	2eeca <z_fatal_error+0x3e>
		__ASSERT(reason != K_ERR_KERNEL_PANIC,
   2ef04:	4c08      	ldr	r4, [pc, #32]	; (2ef28 <z_fatal_error+0x9c>)
   2ef06:	228f      	movs	r2, #143	; 0x8f
   2ef08:	4621      	mov	r1, r4
   2ef0a:	4808      	ldr	r0, [pc, #32]	; (2ef2c <z_fatal_error+0xa0>)
   2ef0c:	f004 fa4d 	bl	333aa <printk>
   2ef10:	218f      	movs	r1, #143	; 0x8f
   2ef12:	4620      	mov	r0, r4
   2ef14:	f004 fde2 	bl	33adc <assert_post_action>
   2ef18:	e7e6      	b.n	2eee8 <z_fatal_error+0x5c>
   2ef1a:	bf00      	nop
   2ef1c:	0003f870 	.word	0x0003f870
   2ef20:	0003f8c8 	.word	0x0003f8c8
   2ef24:	0003f8a0 	.word	0x0003f8a0
   2ef28:	0003f8e8 	.word	0x0003f8e8
   2ef2c:	0003bdac 	.word	0x0003bdac

0002ef30 <init_idle_thread>:
} /* LCOV_EXCL_LINE ... because we just dumped final coverage data */

#if defined(CONFIG_MULTITHREADING)
__boot_func
static void init_idle_thread(int i)
{
   2ef30:	b5f0      	push	{r4, r5, r6, r7, lr}
   2ef32:	b089      	sub	sp, #36	; 0x24
   2ef34:	4604      	mov	r4, r0
	struct k_thread *thread = &z_idle_threads[i];
   2ef36:	4b15      	ldr	r3, [pc, #84]	; (2ef8c <init_idle_thread+0x5c>)
   2ef38:	25b8      	movs	r5, #184	; 0xb8
   2ef3a:	fb05 3500 	mla	r5, r5, r0, r3
	k_thread_stack_t *stack = z_idle_stacks[i];
   2ef3e:	4b14      	ldr	r3, [pc, #80]	; (2ef90 <init_idle_thread+0x60>)
   2ef40:	f44f 76b0 	mov.w	r6, #352	; 0x160
   2ef44:	fb06 3600 	mla	r6, r6, r0, r3

#ifdef CONFIG_THREAD_NAME
	char tname[8];

	snprintk(tname, 8, "idle %02d", i);
   2ef48:	af06      	add	r7, sp, #24
   2ef4a:	4603      	mov	r3, r0
   2ef4c:	4a11      	ldr	r2, [pc, #68]	; (2ef94 <init_idle_thread+0x64>)
   2ef4e:	2108      	movs	r1, #8
   2ef50:	4638      	mov	r0, r7
   2ef52:	f004 fa38 	bl	333c6 <snprintk>
#else
	char *tname = NULL;
#endif /* CONFIG_THREAD_NAME */

	z_setup_new_thread(thread, stack,
			  CONFIG_IDLE_STACK_SIZE, idle, &_kernel.cpus[i],
   2ef56:	eb04 0444 	add.w	r4, r4, r4, lsl #1
   2ef5a:	480f      	ldr	r0, [pc, #60]	; (2ef98 <init_idle_thread+0x68>)
   2ef5c:	eb00 04c4 	add.w	r4, r0, r4, lsl #3
	z_setup_new_thread(thread, stack,
   2ef60:	9705      	str	r7, [sp, #20]
   2ef62:	2301      	movs	r3, #1
   2ef64:	9304      	str	r3, [sp, #16]
   2ef66:	230f      	movs	r3, #15
   2ef68:	9303      	str	r3, [sp, #12]
   2ef6a:	2300      	movs	r3, #0
   2ef6c:	9302      	str	r3, [sp, #8]
   2ef6e:	9301      	str	r3, [sp, #4]
   2ef70:	9400      	str	r4, [sp, #0]
   2ef72:	4b0a      	ldr	r3, [pc, #40]	; (2ef9c <init_idle_thread+0x6c>)
   2ef74:	f44f 72a0 	mov.w	r2, #320	; 0x140
   2ef78:	4631      	mov	r1, r6
   2ef7a:	4628      	mov	r0, r5
   2ef7c:	f000 fb42 	bl	2f604 <z_setup_new_thread>
	SYS_PORT_TRACING_FUNC(k_thread, sched_resume, thread);
}

static inline void z_mark_thread_as_started(struct k_thread *thread)
{
	thread->base.thread_state &= ~_THREAD_PRESTART;
   2ef80:	7b6b      	ldrb	r3, [r5, #13]
   2ef82:	f023 0304 	bic.w	r3, r3, #4
   2ef86:	736b      	strb	r3, [r5, #13]
	z_mark_thread_as_started(thread);

#ifdef CONFIG_SMP
	thread->base.is_idle = 1U;
#endif
}
   2ef88:	b009      	add	sp, #36	; 0x24
   2ef8a:	bdf0      	pop	{r4, r5, r6, r7, pc}
   2ef8c:	20001ea0 	.word	0x20001ea0
   2ef90:	200054e0 	.word	0x200054e0
   2ef94:	0003f90c 	.word	0x0003f90c
   2ef98:	20003480 	.word	0x20003480
   2ef9c:	0002f8d9 	.word	0x0002f8d9

0002efa0 <prepare_multithreading>:
 *
 * @return initial stack pointer for the main thread
 */
__boot_func
static char *prepare_multithreading(void)
{
   2efa0:	b570      	push	{r4, r5, r6, lr}
   2efa2:	b086      	sub	sp, #24
	char *stack_ptr;

	/* _kernel.ready_q is all zeroes */
	z_sched_init();
   2efa4:	f002 fcea 	bl	3197c <z_sched_init>
	 * - the main thread will be the one to run first
	 * - no other thread is initialized yet and thus their priority fields
	 *   contain garbage, which would prevent the cache loading algorithm
	 *   to work as intended
	 */
	_kernel.ready_q.cache = &z_main_thread;
   2efa8:	4d1b      	ldr	r5, [pc, #108]	; (2f018 <prepare_multithreading+0x78>)
   2efaa:	4b1c      	ldr	r3, [pc, #112]	; (2f01c <prepare_multithreading+0x7c>)
   2efac:	61dd      	str	r5, [r3, #28]
#endif
	stack_ptr = z_setup_new_thread(&z_main_thread, z_main_stack,
   2efae:	4b1c      	ldr	r3, [pc, #112]	; (2f020 <prepare_multithreading+0x80>)
   2efb0:	9305      	str	r3, [sp, #20]
   2efb2:	2301      	movs	r3, #1
   2efb4:	9304      	str	r3, [sp, #16]
   2efb6:	2400      	movs	r4, #0
   2efb8:	9403      	str	r4, [sp, #12]
   2efba:	9402      	str	r4, [sp, #8]
   2efbc:	9401      	str	r4, [sp, #4]
   2efbe:	9400      	str	r4, [sp, #0]
   2efc0:	4b18      	ldr	r3, [pc, #96]	; (2f024 <prepare_multithreading+0x84>)
   2efc2:	f44f 6280 	mov.w	r2, #1024	; 0x400
   2efc6:	4918      	ldr	r1, [pc, #96]	; (2f028 <prepare_multithreading+0x88>)
   2efc8:	4628      	mov	r0, r5
   2efca:	f000 fb1b 	bl	2f604 <z_setup_new_thread>
   2efce:	4606      	mov	r6, r0
   2efd0:	7b6b      	ldrb	r3, [r5, #13]
   2efd2:	f023 0304 	bic.w	r3, r3, #4
   2efd6:	736b      	strb	r3, [r5, #13]
				       CONFIG_MAIN_STACK_SIZE, bg_thread_main,
				       NULL, NULL, NULL,
				       CONFIG_MAIN_THREAD_PRIORITY,
				       K_ESSENTIAL, "main");
	z_mark_thread_as_started(&z_main_thread);
	z_ready_thread(&z_main_thread);
   2efd8:	4628      	mov	r0, r5
   2efda:	f002 f901 	bl	311e0 <z_ready_thread>

	for (int i = 0; i < CONFIG_MP_NUM_CPUS; i++) {
   2efde:	2c00      	cmp	r4, #0
   2efe0:	dd02      	ble.n	2efe8 <prepare_multithreading+0x48>
			(Z_KERNEL_STACK_BUFFER(z_interrupt_stacks[i]) +
			 K_KERNEL_STACK_SIZEOF(z_interrupt_stacks[i]));
	}

	return stack_ptr;
}
   2efe2:	4630      	mov	r0, r6
   2efe4:	b006      	add	sp, #24
   2efe6:	bd70      	pop	{r4, r5, r6, pc}
		init_idle_thread(i);
   2efe8:	4620      	mov	r0, r4
   2efea:	f7ff ffa1 	bl	2ef30 <init_idle_thread>
		_kernel.cpus[i].idle_thread = &z_idle_threads[i];
   2efee:	4b0f      	ldr	r3, [pc, #60]	; (2f02c <prepare_multithreading+0x8c>)
   2eff0:	22b8      	movs	r2, #184	; 0xb8
   2eff2:	fb02 3204 	mla	r2, r2, r4, r3
   2eff6:	eb04 0144 	add.w	r1, r4, r4, lsl #1
   2effa:	4b08      	ldr	r3, [pc, #32]	; (2f01c <prepare_multithreading+0x7c>)
   2effc:	eb03 03c1 	add.w	r3, r3, r1, lsl #3
   2f000:	60da      	str	r2, [r3, #12]
		_kernel.cpus[i].id = i;
   2f002:	751c      	strb	r4, [r3, #20]
			(Z_KERNEL_STACK_BUFFER(z_interrupt_stacks[i]) +
   2f004:	eb04 1184 	add.w	r1, r4, r4, lsl #6
   2f008:	4a09      	ldr	r2, [pc, #36]	; (2f030 <prepare_multithreading+0x90>)
   2f00a:	eb02 1241 	add.w	r2, r2, r1, lsl #5
   2f00e:	f502 6202 	add.w	r2, r2, #2080	; 0x820
		_kernel.cpus[i].irq_stack =
   2f012:	605a      	str	r2, [r3, #4]
	for (int i = 0; i < CONFIG_MP_NUM_CPUS; i++) {
   2f014:	3401      	adds	r4, #1
   2f016:	e7e2      	b.n	2efde <prepare_multithreading+0x3e>
   2f018:	20001f58 	.word	0x20001f58
   2f01c:	20003480 	.word	0x20003480
   2f020:	0003f918 	.word	0x0003f918
   2f024:	0002f035 	.word	0x0002f035
   2f028:	200050c0 	.word	0x200050c0
   2f02c:	20001ea0 	.word	0x20001ea0
   2f030:	20005640 	.word	0x20005640

0002f034 <bg_thread_main>:
{
   2f034:	b508      	push	{r3, lr}
	z_sys_post_kernel = true;
   2f036:	4b0a      	ldr	r3, [pc, #40]	; (2f060 <bg_thread_main+0x2c>)
   2f038:	2201      	movs	r2, #1
   2f03a:	701a      	strb	r2, [r3, #0]
	z_sys_init_run_level(_SYS_INIT_LEVEL_POST_KERNEL);
   2f03c:	2002      	movs	r0, #2
   2f03e:	f7ff fe95 	bl	2ed6c <z_sys_init_run_level>
	boot_banner();
   2f042:	f004 f8ff 	bl	33244 <boot_banner>
	z_sys_init_run_level(_SYS_INIT_LEVEL_APPLICATION);
   2f046:	2003      	movs	r0, #3
   2f048:	f7ff fe90 	bl	2ed6c <z_sys_init_run_level>
	z_init_static_threads();
   2f04c:	f000 fbc4 	bl	2f7d8 <z_init_static_threads>
	main();
   2f050:	f7ed f90a 	bl	1c268 <main>
	z_main_thread.base.user_options &= ~K_ESSENTIAL;
   2f054:	4a03      	ldr	r2, [pc, #12]	; (2f064 <bg_thread_main+0x30>)
   2f056:	7b13      	ldrb	r3, [r2, #12]
   2f058:	f023 0301 	bic.w	r3, r3, #1
   2f05c:	7313      	strb	r3, [r2, #12]
} /* LCOV_EXCL_LINE ... because we just dumped final coverage data */
   2f05e:	bd08      	pop	{r3, pc}
   2f060:	200034f0 	.word	0x200034f0
   2f064:	20001f58 	.word	0x20001f58

0002f068 <switch_to_main_thread>:

__boot_func
static FUNC_NORETURN void switch_to_main_thread(char *stack_ptr)
{
   2f068:	b508      	push	{r3, lr}
   2f06a:	4601      	mov	r1, r0
#ifdef CONFIG_ARCH_HAS_CUSTOM_SWAP_TO_MAIN
	arch_switch_to_main_thread(&z_main_thread, stack_ptr, bg_thread_main);
   2f06c:	4a01      	ldr	r2, [pc, #4]	; (2f074 <switch_to_main_thread+0xc>)
   2f06e:	4802      	ldr	r0, [pc, #8]	; (2f078 <switch_to_main_thread+0x10>)
   2f070:	f7f0 fabe 	bl	1f5f0 <arch_switch_to_main_thread>
	 * current fake thread is not on a wait queue or ready queue, so it
	 * will never be rescheduled in.
	 */
	z_swap_unlocked();
#endif
	CODE_UNREACHABLE; /* LCOV_EXCL_LINE */
   2f074:	0002f035 	.word	0x0002f035
   2f078:	20001f58 	.word	0x20001f58

0002f07c <z_bss_zero>:
{
   2f07c:	b508      	push	{r3, lr}
	(void)memset(__bss_start, 0, __bss_end - __bss_start);
   2f07e:	4803      	ldr	r0, [pc, #12]	; (2f08c <z_bss_zero+0x10>)
   2f080:	4a03      	ldr	r2, [pc, #12]	; (2f090 <z_bss_zero+0x14>)
   2f082:	1a12      	subs	r2, r2, r0
   2f084:	2100      	movs	r1, #0
   2f086:	f006 fd5d 	bl	35b44 <memset>
}
   2f08a:	bd08      	pop	{r3, pc}
   2f08c:	20000a10 	.word	0x20000a10
   2f090:	200034f4 	.word	0x200034f4

0002f094 <z_cstart>:
 *
 * @return Does not return
 */
__boot_func
FUNC_NORETURN void z_cstart(void)
{
   2f094:	b500      	push	{lr}
   2f096:	b0af      	sub	sp, #188	; 0xbc
 *
 * @return N/A
 */
static ALWAYS_INLINE void z_arm_interrupt_stack_setup(void)
{
	uint32_t msp =
   2f098:	4b1d      	ldr	r3, [pc, #116]	; (2f110 <z_cstart+0x7c>)
  __ASM volatile ("MSR msp, %0" : : "r" (topOfMainStack) : );
   2f09a:	f383 8808 	msr	MSP, r3
	 * for Cortex-M3 and Cortex-M4 (ARMv7-M) MCUs. For the rest
	 * of ARM Cortex-M processors this setting is enforced by
	 * default and it is not configurable.
	 */
#if defined(CONFIG_CPU_CORTEX_M3) || defined(CONFIG_CPU_CORTEX_M4)
	SCB->CCR |= SCB_CCR_STKALIGN_Msk;
   2f09e:	4c1d      	ldr	r4, [pc, #116]	; (2f114 <z_cstart+0x80>)
   2f0a0:	6963      	ldr	r3, [r4, #20]
   2f0a2:	f443 7300 	orr.w	r3, r3, #512	; 0x200
   2f0a6:	6163      	str	r3, [r4, #20]
    SCB->SHP[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL);
   2f0a8:	23e0      	movs	r3, #224	; 0xe0
   2f0aa:	f884 3022 	strb.w	r3, [r4, #34]	; 0x22
   2f0ae:	2320      	movs	r3, #32
   2f0b0:	77e3      	strb	r3, [r4, #31]
   2f0b2:	2500      	movs	r5, #0
   2f0b4:	7625      	strb	r5, [r4, #24]
   2f0b6:	7665      	strb	r5, [r4, #25]
   2f0b8:	76a5      	strb	r5, [r4, #26]
   2f0ba:	f884 5020 	strb.w	r5, [r4, #32]
#if defined(CONFIG_ARM_SECURE_FIRMWARE)
	NVIC_SetPriority(SecureFault_IRQn, _EXC_FAULT_PRIO);
#endif /* CONFIG_ARM_SECURE_FIRMWARE */

	/* Enable Usage, Mem, & Bus Faults */
	SCB->SHCSR |= SCB_SHCSR_USGFAULTENA_Msk | SCB_SHCSR_MEMFAULTENA_Msk |
   2f0be:	6a63      	ldr	r3, [r4, #36]	; 0x24
   2f0c0:	f443 23e0 	orr.w	r3, r3, #458752	; 0x70000
   2f0c4:	6263      	str	r3, [r4, #36]	; 0x24
   2f0c6:	f884 5023 	strb.w	r5, [r4, #35]	; 0x23

static ALWAYS_INLINE void arch_kernel_init(void)
{
	z_arm_interrupt_stack_setup();
	z_arm_exc_setup();
	z_arm_fault_init();
   2f0ca:	f7f0 fd47 	bl	1fb5c <z_arm_fault_init>
	z_arm_cpu_idle_init();
   2f0ce:	f7f0 f913 	bl	1f2f8 <z_arm_cpu_idle_init>
static ALWAYS_INLINE void z_arm_clear_faults(void)
{
#if defined(CONFIG_ARMV6_M_ARMV8_M_BASELINE)
#elif defined(CONFIG_ARMV7_M_ARMV8_M_MAINLINE)
	/* Reset all faults */
	SCB->CFSR = SCB_CFSR_USGFAULTSR_Msk |
   2f0d2:	f04f 33ff 	mov.w	r3, #4294967295
   2f0d6:	62a3      	str	r3, [r4, #40]	; 0x28
		    SCB_CFSR_MEMFAULTSR_Msk |
		    SCB_CFSR_BUSFAULTSR_Msk;

	/* Clear all Hard Faults - HFSR is write-one-to-clear */
	SCB->HFSR = 0xffffffff;
   2f0d8:	62e3      	str	r3, [r4, #44]	; 0x2c
	z_arm_clear_faults();
#if defined(CONFIG_ARM_MPU)
	z_arm_mpu_init();
   2f0da:	f7f0 febb 	bl	1fe54 <z_arm_mpu_init>
	 * to set up access permissions for fixed memory sections, such
	 * as Application Memory or No-Cacheable SRAM area.
	 *
	 * This function is invoked once, upon system initialization.
	 */
	z_arm_configure_static_mpu_regions();
   2f0de:	f7f0 fde3 	bl	1fca8 <z_arm_configure_static_mpu_regions>
 *
 * The memory of the dummy thread can be completely uninitialized.
 */
static inline void z_dummy_thread_init(struct k_thread *dummy_thread)
{
	dummy_thread->base.thread_state = _THREAD_DUMMY;
   2f0e2:	2401      	movs	r4, #1
   2f0e4:	f88d 400d 	strb.w	r4, [sp, #13]
#ifdef CONFIG_SCHED_CPU_MASK
	dummy_thread->base.cpu_mask = -1;
#endif
	dummy_thread->base.user_options = K_ESSENTIAL;
   2f0e8:	f88d 400c 	strb.w	r4, [sp, #12]
#ifdef CONFIG_THREAD_STACK_INFO
	dummy_thread->stack_info.start = 0U;
   2f0ec:	9527      	str	r5, [sp, #156]	; 0x9c
	dummy_thread->stack_info.size = 0U;
   2f0ee:	9528      	str	r5, [sp, #160]	; 0xa0
#endif
#ifdef CONFIG_USERSPACE
	dummy_thread->mem_domain_info.mem_domain = &k_mem_domain_default;
#endif

	_current_cpu->current = dummy_thread;
   2f0f0:	4b09      	ldr	r3, [pc, #36]	; (2f118 <z_cstart+0x84>)
   2f0f2:	f8c3 d008 	str.w	sp, [r3, #8]
	struct k_thread dummy_thread;

	z_dummy_thread_init(&dummy_thread);
#endif
	/* do any necessary initialization of static devices */
	z_device_state_init();
   2f0f6:	f7ff fe2d 	bl	2ed54 <z_device_state_init>

	/* perform basic hardware initialization */
	z_sys_init_run_level(_SYS_INIT_LEVEL_PRE_KERNEL_1);
   2f0fa:	4628      	mov	r0, r5
   2f0fc:	f7ff fe36 	bl	2ed6c <z_sys_init_run_level>
	z_sys_init_run_level(_SYS_INIT_LEVEL_PRE_KERNEL_2);
   2f100:	4620      	mov	r0, r4
   2f102:	f7ff fe33 	bl	2ed6c <z_sys_init_run_level>
	timing_init();
	timing_start();
#endif

#ifdef CONFIG_MULTITHREADING
	switch_to_main_thread(prepare_multithreading());
   2f106:	f7ff ff4b 	bl	2efa0 <prepare_multithreading>
   2f10a:	f7ff ffad 	bl	2f068 <switch_to_main_thread>
   2f10e:	bf00      	nop
   2f110:	20005e60 	.word	0x20005e60
   2f114:	e000ed00 	.word	0xe000ed00
   2f118:	20003480 	.word	0x20003480

0002f11c <statics_init>:

	SYS_PORT_TRACING_OBJ_INIT(k_heap, h);
}

static int statics_init(const struct device *unused)
{
   2f11c:	b538      	push	{r3, r4, r5, lr}
	ARG_UNUSED(unused);
	STRUCT_SECTION_FOREACH(k_heap, h) {
   2f11e:	4c0d      	ldr	r4, [pc, #52]	; (2f154 <statics_init+0x38>)
   2f120:	e012      	b.n	2f148 <statics_init+0x2c>
   2f122:	4d0d      	ldr	r5, [pc, #52]	; (2f158 <statics_init+0x3c>)
   2f124:	2218      	movs	r2, #24
   2f126:	4629      	mov	r1, r5
   2f128:	480c      	ldr	r0, [pc, #48]	; (2f15c <statics_init+0x40>)
   2f12a:	f004 f93e 	bl	333aa <printk>
   2f12e:	2118      	movs	r1, #24
   2f130:	4628      	mov	r0, r5
   2f132:	f004 fcd3 	bl	33adc <assert_post_action>
   2f136:	4b0a      	ldr	r3, [pc, #40]	; (2f160 <statics_init+0x44>)
   2f138:	429c      	cmp	r4, r3
   2f13a:	d209      	bcs.n	2f150 <statics_init+0x34>
		}

		if (do_clear)
#endif /* CONFIG_DEMAND_PAGING && !CONFIG_LINKER_GENERIC_SECTIONS_PRESENT_AT_BOOT */
		{
			k_heap_init(h, h->heap.init_mem, h->heap.init_bytes);
   2f13c:	68a2      	ldr	r2, [r4, #8]
   2f13e:	6861      	ldr	r1, [r4, #4]
   2f140:	4620      	mov	r0, r4
   2f142:	f00b ffc5 	bl	3b0d0 <k_heap_init>
	STRUCT_SECTION_FOREACH(k_heap, h) {
   2f146:	3418      	adds	r4, #24
   2f148:	4b05      	ldr	r3, [pc, #20]	; (2f160 <statics_init+0x44>)
   2f14a:	429c      	cmp	r4, r3
   2f14c:	d9f3      	bls.n	2f136 <statics_init+0x1a>
   2f14e:	e7e8      	b.n	2f122 <statics_init+0x6>
		}
	}
	return 0;
}
   2f150:	2000      	movs	r0, #0
   2f152:	bd38      	pop	{r3, r4, r5, pc}
   2f154:	20000838 	.word	0x20000838
   2f158:	0003f924 	.word	0x0003f924
   2f15c:	0003bdac 	.word	0x0003bdac
   2f160:	20000838 	.word	0x20000838

0002f164 <k_heap_aligned_alloc>:
SYS_INIT(statics_init, POST_KERNEL, 0);
#endif /* CONFIG_DEMAND_PAGING && !CONFIG_LINKER_GENERIC_SECTIONS_PRESENT_AT_BOOT */

void *k_heap_aligned_alloc(struct k_heap *h, size_t align, size_t bytes,
			k_timeout_t timeout)
{
   2f164:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
   2f168:	b087      	sub	sp, #28
   2f16a:	4681      	mov	r9, r0
   2f16c:	9103      	str	r1, [sp, #12]
   2f16e:	9204      	str	r2, [sp, #16]
	int64_t now, end = sys_clock_timeout_end_calc(timeout);
   2f170:	e9dd 0110 	ldrd	r0, r1, [sp, #64]	; 0x40
   2f174:	f00c f912 	bl	3b39c <sys_clock_timeout_end_calc>
   2f178:	4683      	mov	fp, r0
   2f17a:	9105      	str	r1, [sp, #20]
	void *ret = NULL;
	k_spinlock_key_t key = k_spin_lock(&h->lock);
   2f17c:	f109 0814 	add.w	r8, r9, #20
	__asm__ volatile(
   2f180:	f04f 0340 	mov.w	r3, #64	; 0x40
   2f184:	f3ef 8511 	mrs	r5, BASEPRI
   2f188:	f383 8812 	msr	BASEPRI_MAX, r3
   2f18c:	f3bf 8f6f 	isb	sy
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   2f190:	4640      	mov	r0, r8
   2f192:	f000 f9c7 	bl	2f524 <z_spin_lock_valid>
   2f196:	b168      	cbz	r0, 2f1b4 <k_heap_aligned_alloc+0x50>
	z_spin_lock_set_owner(l);
   2f198:	4640      	mov	r0, r8
   2f19a:	f000 f9e3 	bl	2f564 <z_spin_lock_set_owner>
  __ASM volatile ("MRS %0, ipsr" : "=r" (result) );
   2f19e:	f3ef 8305 	mrs	r3, IPSR

	SYS_PORT_TRACING_OBJ_FUNC_ENTER(k_heap, aligned_alloc, h, timeout);

	__ASSERT(!arch_is_in_isr() || K_TIMEOUT_EQ(timeout, K_NO_WAIT), "");
   2f1a2:	b11b      	cbz	r3, 2f1ac <k_heap_aligned_alloc+0x48>
   2f1a4:	e9dd 3410 	ldrd	r3, r4, [sp, #64]	; 0x40
   2f1a8:	4323      	orrs	r3, r4
   2f1aa:	d10e      	bne.n	2f1ca <k_heap_aligned_alloc+0x66>

	bool blocked_alloc = false;
   2f1ac:	f04f 0a00 	mov.w	sl, #0
	void *ret = NULL;
   2f1b0:	4654      	mov	r4, sl

	while (ret == NULL) {
   2f1b2:	e02c      	b.n	2f20e <k_heap_aligned_alloc+0xaa>
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   2f1b4:	4c33      	ldr	r4, [pc, #204]	; (2f284 <k_heap_aligned_alloc+0x120>)
   2f1b6:	2281      	movs	r2, #129	; 0x81
   2f1b8:	4621      	mov	r1, r4
   2f1ba:	4833      	ldr	r0, [pc, #204]	; (2f288 <k_heap_aligned_alloc+0x124>)
   2f1bc:	f004 f8f5 	bl	333aa <printk>
   2f1c0:	2181      	movs	r1, #129	; 0x81
   2f1c2:	4620      	mov	r0, r4
   2f1c4:	f004 fc8a 	bl	33adc <assert_post_action>
   2f1c8:	e7e6      	b.n	2f198 <k_heap_aligned_alloc+0x34>
	__ASSERT(!arch_is_in_isr() || K_TIMEOUT_EQ(timeout, K_NO_WAIT), "");
   2f1ca:	4c30      	ldr	r4, [pc, #192]	; (2f28c <k_heap_aligned_alloc+0x128>)
   2f1cc:	2249      	movs	r2, #73	; 0x49
   2f1ce:	4621      	mov	r1, r4
   2f1d0:	482d      	ldr	r0, [pc, #180]	; (2f288 <k_heap_aligned_alloc+0x124>)
   2f1d2:	f004 f8ea 	bl	333aa <printk>
   2f1d6:	2149      	movs	r1, #73	; 0x49
   2f1d8:	4620      	mov	r0, r4
   2f1da:	f004 fc7f 	bl	33adc <assert_post_action>
   2f1de:	e7e5      	b.n	2f1ac <k_heap_aligned_alloc+0x48>
			/**
			 * @todo	Trace attempt to avoid empty trace segments
			 */
		}

		(void) z_pend_curr(&h->lock, key, &h->wait_q,
   2f1e0:	e9cd 6700 	strd	r6, r7, [sp]
   2f1e4:	f109 020c 	add.w	r2, r9, #12
   2f1e8:	4629      	mov	r1, r5
   2f1ea:	4640      	mov	r0, r8
   2f1ec:	f002 f984 	bl	314f8 <z_pend_curr>
   2f1f0:	f04f 0340 	mov.w	r3, #64	; 0x40
   2f1f4:	f3ef 8511 	mrs	r5, BASEPRI
   2f1f8:	f383 8812 	msr	BASEPRI_MAX, r3
   2f1fc:	f3bf 8f6f 	isb	sy
   2f200:	4640      	mov	r0, r8
   2f202:	f000 f98f 	bl	2f524 <z_spin_lock_valid>
   2f206:	b1d8      	cbz	r0, 2f240 <k_heap_aligned_alloc+0xdc>
	z_spin_lock_set_owner(l);
   2f208:	4640      	mov	r0, r8
   2f20a:	f000 f9ab 	bl	2f564 <z_spin_lock_set_owner>
	while (ret == NULL) {
   2f20e:	bb0c      	cbnz	r4, 2f254 <k_heap_aligned_alloc+0xf0>
		ret = sys_heap_aligned_alloc(&h->heap, align, bytes);
   2f210:	9a04      	ldr	r2, [sp, #16]
   2f212:	9903      	ldr	r1, [sp, #12]
   2f214:	4648      	mov	r0, r9
   2f216:	f7ed fcb3 	bl	1cb80 <sys_heap_aligned_alloc>
   2f21a:	4604      	mov	r4, r0
		now = sys_clock_tick_get();
   2f21c:	f003 f906 	bl	3242c <sys_clock_tick_get>
		if (!IS_ENABLED(CONFIG_MULTITHREADING) ||
   2f220:	b9c4      	cbnz	r4, 2f254 <k_heap_aligned_alloc+0xf0>
		    (ret != NULL) || ((end - now) <= 0)) {
   2f222:	ebbb 0600 	subs.w	r6, fp, r0
   2f226:	9b05      	ldr	r3, [sp, #20]
   2f228:	eb63 0701 	sbc.w	r7, r3, r1
   2f22c:	2e01      	cmp	r6, #1
   2f22e:	f177 0300 	sbcs.w	r3, r7, #0
   2f232:	db0f      	blt.n	2f254 <k_heap_aligned_alloc+0xf0>
		if (!blocked_alloc) {
   2f234:	f1ba 0f00 	cmp.w	sl, #0
   2f238:	d1d2      	bne.n	2f1e0 <k_heap_aligned_alloc+0x7c>
			blocked_alloc = true;
   2f23a:	f04f 0a01 	mov.w	sl, #1
   2f23e:	e7cf      	b.n	2f1e0 <k_heap_aligned_alloc+0x7c>
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   2f240:	2281      	movs	r2, #129	; 0x81
   2f242:	4910      	ldr	r1, [pc, #64]	; (2f284 <k_heap_aligned_alloc+0x120>)
   2f244:	4810      	ldr	r0, [pc, #64]	; (2f288 <k_heap_aligned_alloc+0x124>)
   2f246:	f004 f8b0 	bl	333aa <printk>
   2f24a:	2181      	movs	r1, #129	; 0x81
   2f24c:	480d      	ldr	r0, [pc, #52]	; (2f284 <k_heap_aligned_alloc+0x120>)
   2f24e:	f004 fc45 	bl	33adc <assert_post_action>
   2f252:	e7d9      	b.n	2f208 <k_heap_aligned_alloc+0xa4>
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   2f254:	4640      	mov	r0, r8
   2f256:	f000 f975 	bl	2f544 <z_spin_unlock_valid>
   2f25a:	b138      	cbz	r0, 2f26c <k_heap_aligned_alloc+0x108>
	__asm__ volatile(
   2f25c:	f385 8811 	msr	BASEPRI, r5
   2f260:	f3bf 8f6f 	isb	sy

	SYS_PORT_TRACING_OBJ_FUNC_EXIT(k_heap, aligned_alloc, h, timeout, ret);

	k_spin_unlock(&h->lock, key);
	return ret;
}
   2f264:	4620      	mov	r0, r4
   2f266:	b007      	add	sp, #28
   2f268:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
   2f26c:	4e05      	ldr	r6, [pc, #20]	; (2f284 <k_heap_aligned_alloc+0x120>)
   2f26e:	22ac      	movs	r2, #172	; 0xac
   2f270:	4631      	mov	r1, r6
   2f272:	4805      	ldr	r0, [pc, #20]	; (2f288 <k_heap_aligned_alloc+0x124>)
   2f274:	f004 f899 	bl	333aa <printk>
   2f278:	21ac      	movs	r1, #172	; 0xac
   2f27a:	4630      	mov	r0, r6
   2f27c:	f004 fc2e 	bl	33adc <assert_post_action>
   2f280:	e7ec      	b.n	2f25c <k_heap_aligned_alloc+0xf8>
   2f282:	bf00      	nop
   2f284:	0003bde8 	.word	0x0003bde8
   2f288:	0003bdac 	.word	0x0003bdac
   2f28c:	0003f924 	.word	0x0003f924

0002f290 <k_heap_free>:

	return ret;
}

void k_heap_free(struct k_heap *h, void *mem)
{
   2f290:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   2f294:	4604      	mov	r4, r0
   2f296:	460e      	mov	r6, r1
	k_spinlock_key_t key = k_spin_lock(&h->lock);
   2f298:	f100 0514 	add.w	r5, r0, #20
	__asm__ volatile(
   2f29c:	f04f 0340 	mov.w	r3, #64	; 0x40
   2f2a0:	f3ef 8711 	mrs	r7, BASEPRI
   2f2a4:	f383 8812 	msr	BASEPRI_MAX, r3
   2f2a8:	f3bf 8f6f 	isb	sy
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   2f2ac:	4628      	mov	r0, r5
   2f2ae:	f000 f939 	bl	2f524 <z_spin_lock_valid>
   2f2b2:	b188      	cbz	r0, 2f2d8 <k_heap_free+0x48>
	z_spin_lock_set_owner(l);
   2f2b4:	4628      	mov	r0, r5
   2f2b6:	f000 f955 	bl	2f564 <z_spin_lock_set_owner>

	sys_heap_free(&h->heap, mem);
   2f2ba:	4631      	mov	r1, r6
   2f2bc:	4620      	mov	r0, r4
   2f2be:	f7ed fc09 	bl	1cad4 <sys_heap_free>

	SYS_PORT_TRACING_OBJ_FUNC(k_heap, free, h);
	if (IS_ENABLED(CONFIG_MULTITHREADING) && z_unpend_all(&h->wait_q) != 0) {
   2f2c2:	f104 000c 	add.w	r0, r4, #12
   2f2c6:	f00c f837 	bl	3b338 <z_unpend_all>
   2f2ca:	b188      	cbz	r0, 2f2f0 <k_heap_free+0x60>
		z_reschedule(&h->lock, key);
   2f2cc:	4639      	mov	r1, r7
   2f2ce:	4628      	mov	r0, r5
   2f2d0:	f001 fd14 	bl	30cfc <z_reschedule>
	} else {
		k_spin_unlock(&h->lock, key);
	}
}
   2f2d4:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   2f2d8:	f8df 8040 	ldr.w	r8, [pc, #64]	; 2f31c <k_heap_free+0x8c>
   2f2dc:	2281      	movs	r2, #129	; 0x81
   2f2de:	4641      	mov	r1, r8
   2f2e0:	480d      	ldr	r0, [pc, #52]	; (2f318 <k_heap_free+0x88>)
   2f2e2:	f004 f862 	bl	333aa <printk>
   2f2e6:	2181      	movs	r1, #129	; 0x81
   2f2e8:	4640      	mov	r0, r8
   2f2ea:	f004 fbf7 	bl	33adc <assert_post_action>
   2f2ee:	e7e1      	b.n	2f2b4 <k_heap_free+0x24>
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   2f2f0:	4628      	mov	r0, r5
   2f2f2:	f000 f927 	bl	2f544 <z_spin_unlock_valid>
   2f2f6:	b120      	cbz	r0, 2f302 <k_heap_free+0x72>
	__asm__ volatile(
   2f2f8:	f387 8811 	msr	BASEPRI, r7
   2f2fc:	f3bf 8f6f 	isb	sy
   2f300:	e7e8      	b.n	2f2d4 <k_heap_free+0x44>
   2f302:	4c06      	ldr	r4, [pc, #24]	; (2f31c <k_heap_free+0x8c>)
   2f304:	22ac      	movs	r2, #172	; 0xac
   2f306:	4621      	mov	r1, r4
   2f308:	4803      	ldr	r0, [pc, #12]	; (2f318 <k_heap_free+0x88>)
   2f30a:	f004 f84e 	bl	333aa <printk>
   2f30e:	21ac      	movs	r1, #172	; 0xac
   2f310:	4620      	mov	r0, r4
   2f312:	f004 fbe3 	bl	33adc <assert_post_action>
   2f316:	e7ef      	b.n	2f2f8 <k_heap_free+0x68>
   2f318:	0003bdac 	.word	0x0003bdac
   2f31c:	0003bde8 	.word	0x0003bde8

0002f320 <init_mem_slab_module>:
 * Perform any initialization that wasn't done at build time.
 *
 * @return N/A
 */
static int init_mem_slab_module(const struct device *dev)
{
   2f320:	b570      	push	{r4, r5, r6, lr}
	int rc = 0;
	ARG_UNUSED(dev);

	STRUCT_SECTION_FOREACH(k_mem_slab, slab) {
   2f322:	4c0e      	ldr	r4, [pc, #56]	; (2f35c <init_mem_slab_module+0x3c>)
	int rc = 0;
   2f324:	2500      	movs	r5, #0
	STRUCT_SECTION_FOREACH(k_mem_slab, slab) {
   2f326:	e012      	b.n	2f34e <init_mem_slab_module+0x2e>
   2f328:	4e0d      	ldr	r6, [pc, #52]	; (2f360 <init_mem_slab_module+0x40>)
   2f32a:	223c      	movs	r2, #60	; 0x3c
   2f32c:	4631      	mov	r1, r6
   2f32e:	480d      	ldr	r0, [pc, #52]	; (2f364 <init_mem_slab_module+0x44>)
   2f330:	f004 f83b 	bl	333aa <printk>
   2f334:	213c      	movs	r1, #60	; 0x3c
   2f336:	4630      	mov	r0, r6
   2f338:	f004 fbd0 	bl	33adc <assert_post_action>
   2f33c:	4b0a      	ldr	r3, [pc, #40]	; (2f368 <init_mem_slab_module+0x48>)
   2f33e:	429c      	cmp	r4, r3
   2f340:	d209      	bcs.n	2f356 <init_mem_slab_module+0x36>
		rc = create_free_list(slab);
   2f342:	4620      	mov	r0, r4
   2f344:	f00b fecc 	bl	3b0e0 <create_free_list>
		if (rc < 0) {
   2f348:	1e05      	subs	r5, r0, #0
   2f34a:	db04      	blt.n	2f356 <init_mem_slab_module+0x36>
	STRUCT_SECTION_FOREACH(k_mem_slab, slab) {
   2f34c:	3420      	adds	r4, #32
   2f34e:	4b06      	ldr	r3, [pc, #24]	; (2f368 <init_mem_slab_module+0x48>)
   2f350:	429c      	cmp	r4, r3
   2f352:	d9f3      	bls.n	2f33c <init_mem_slab_module+0x1c>
   2f354:	e7e8      	b.n	2f328 <init_mem_slab_module+0x8>
		z_object_init(slab);
	}

out:
	return rc;
}
   2f356:	4628      	mov	r0, r5
   2f358:	bd70      	pop	{r4, r5, r6, pc}
   2f35a:	bf00      	nop
   2f35c:	200007d8 	.word	0x200007d8
   2f360:	0003f948 	.word	0x0003f948
   2f364:	0003bdac 	.word	0x0003bdac
   2f368:	20000838 	.word	0x20000838

0002f36c <k_mem_slab_alloc>:

	return rc;
}

int k_mem_slab_alloc(struct k_mem_slab *slab, void **mem, k_timeout_t timeout)
{
   2f36c:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
   2f370:	b082      	sub	sp, #8
   2f372:	4604      	mov	r4, r0
   2f374:	460e      	mov	r6, r1
   2f376:	4690      	mov	r8, r2
   2f378:	4699      	mov	r9, r3
	k_spinlock_key_t key = k_spin_lock(&slab->lock);
   2f37a:	f100 0508 	add.w	r5, r0, #8
	__asm__ volatile(
   2f37e:	f04f 0340 	mov.w	r3, #64	; 0x40
   2f382:	f3ef 8711 	mrs	r7, BASEPRI
   2f386:	f383 8812 	msr	BASEPRI_MAX, r3
   2f38a:	f3bf 8f6f 	isb	sy
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   2f38e:	4628      	mov	r0, r5
   2f390:	f000 f8c8 	bl	2f524 <z_spin_lock_valid>
   2f394:	b1c0      	cbz	r0, 2f3c8 <k_mem_slab_alloc+0x5c>
	z_spin_lock_set_owner(l);
   2f396:	4628      	mov	r0, r5
   2f398:	f000 f8e4 	bl	2f564 <z_spin_lock_set_owner>
	int result;

	SYS_PORT_TRACING_OBJ_FUNC_ENTER(k_mem_slab, alloc, slab, timeout);

	if (slab->free_list != NULL) {
   2f39c:	69a3      	ldr	r3, [r4, #24]
   2f39e:	b1fb      	cbz	r3, 2f3e0 <k_mem_slab_alloc+0x74>
		/* take a free block */
		*mem = slab->free_list;
   2f3a0:	6033      	str	r3, [r6, #0]
		slab->free_list = *(char **)(slab->free_list);
   2f3a2:	69a3      	ldr	r3, [r4, #24]
   2f3a4:	681b      	ldr	r3, [r3, #0]
   2f3a6:	61a3      	str	r3, [r4, #24]
		slab->num_used++;
   2f3a8:	69e3      	ldr	r3, [r4, #28]
   2f3aa:	3301      	adds	r3, #1
   2f3ac:	61e3      	str	r3, [r4, #28]

#ifdef CONFIG_MEM_SLAB_TRACE_MAX_UTILIZATION
		slab->max_used = MAX(slab->num_used, slab->max_used);
#endif

		result = 0;
   2f3ae:	2400      	movs	r4, #0
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   2f3b0:	4628      	mov	r0, r5
   2f3b2:	f000 f8c7 	bl	2f544 <z_spin_unlock_valid>
   2f3b6:	b350      	cbz	r0, 2f40e <k_mem_slab_alloc+0xa2>
	__asm__ volatile(
   2f3b8:	f387 8811 	msr	BASEPRI, r7
   2f3bc:	f3bf 8f6f 	isb	sy
	SYS_PORT_TRACING_OBJ_FUNC_EXIT(k_mem_slab, alloc, slab, timeout, result);

	k_spin_unlock(&slab->lock, key);

	return result;
}
   2f3c0:	4620      	mov	r0, r4
   2f3c2:	b002      	add	sp, #8
   2f3c4:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   2f3c8:	f8df a060 	ldr.w	sl, [pc, #96]	; 2f42c <k_mem_slab_alloc+0xc0>
   2f3cc:	2281      	movs	r2, #129	; 0x81
   2f3ce:	4651      	mov	r1, sl
   2f3d0:	4814      	ldr	r0, [pc, #80]	; (2f424 <k_mem_slab_alloc+0xb8>)
   2f3d2:	f003 ffea 	bl	333aa <printk>
   2f3d6:	2181      	movs	r1, #129	; 0x81
   2f3d8:	4650      	mov	r0, sl
   2f3da:	f004 fb7f 	bl	33adc <assert_post_action>
   2f3de:	e7da      	b.n	2f396 <k_mem_slab_alloc+0x2a>
	} else if (K_TIMEOUT_EQ(timeout, K_NO_WAIT) ||
   2f3e0:	ea58 0309 	orrs.w	r3, r8, r9
   2f3e4:	d104      	bne.n	2f3f0 <k_mem_slab_alloc+0x84>
		*mem = NULL;
   2f3e6:	2300      	movs	r3, #0
   2f3e8:	6033      	str	r3, [r6, #0]
		result = -ENOMEM;
   2f3ea:	f06f 040b 	mvn.w	r4, #11
   2f3ee:	e7df      	b.n	2f3b0 <k_mem_slab_alloc+0x44>
		result = z_pend_curr(&slab->lock, key, &slab->wait_q, timeout);
   2f3f0:	e9cd 8900 	strd	r8, r9, [sp]
   2f3f4:	4622      	mov	r2, r4
   2f3f6:	4639      	mov	r1, r7
   2f3f8:	4628      	mov	r0, r5
   2f3fa:	f002 f87d 	bl	314f8 <z_pend_curr>
		if (result == 0) {
   2f3fe:	4604      	mov	r4, r0
   2f400:	2800      	cmp	r0, #0
   2f402:	d1dd      	bne.n	2f3c0 <k_mem_slab_alloc+0x54>
			*mem = _current->base.swap_data;
   2f404:	4b08      	ldr	r3, [pc, #32]	; (2f428 <k_mem_slab_alloc+0xbc>)
   2f406:	689b      	ldr	r3, [r3, #8]
   2f408:	695b      	ldr	r3, [r3, #20]
   2f40a:	6033      	str	r3, [r6, #0]
		return result;
   2f40c:	e7d8      	b.n	2f3c0 <k_mem_slab_alloc+0x54>
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   2f40e:	4d07      	ldr	r5, [pc, #28]	; (2f42c <k_mem_slab_alloc+0xc0>)
   2f410:	22ac      	movs	r2, #172	; 0xac
   2f412:	4629      	mov	r1, r5
   2f414:	4803      	ldr	r0, [pc, #12]	; (2f424 <k_mem_slab_alloc+0xb8>)
   2f416:	f003 ffc8 	bl	333aa <printk>
   2f41a:	21ac      	movs	r1, #172	; 0xac
   2f41c:	4628      	mov	r0, r5
   2f41e:	f004 fb5d 	bl	33adc <assert_post_action>
   2f422:	e7c9      	b.n	2f3b8 <k_mem_slab_alloc+0x4c>
   2f424:	0003bdac 	.word	0x0003bdac
   2f428:	20003480 	.word	0x20003480
   2f42c:	0003bde8 	.word	0x0003bde8

0002f430 <k_mem_slab_free>:

void k_mem_slab_free(struct k_mem_slab *slab, void **mem)
{
   2f430:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   2f434:	4604      	mov	r4, r0
   2f436:	460d      	mov	r5, r1
	k_spinlock_key_t key = k_spin_lock(&slab->lock);
   2f438:	f100 0608 	add.w	r6, r0, #8
	__asm__ volatile(
   2f43c:	f04f 0340 	mov.w	r3, #64	; 0x40
   2f440:	f3ef 8711 	mrs	r7, BASEPRI
   2f444:	f383 8812 	msr	BASEPRI_MAX, r3
   2f448:	f3bf 8f6f 	isb	sy
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   2f44c:	4630      	mov	r0, r6
   2f44e:	f000 f869 	bl	2f524 <z_spin_lock_valid>
   2f452:	b1b0      	cbz	r0, 2f482 <k_mem_slab_free+0x52>
	z_spin_lock_set_owner(l);
   2f454:	4630      	mov	r0, r6
   2f456:	f000 f885 	bl	2f564 <z_spin_lock_set_owner>

	SYS_PORT_TRACING_OBJ_FUNC_ENTER(k_mem_slab, free, slab);
	if (slab->free_list == NULL && IS_ENABLED(CONFIG_MULTITHREADING)) {
   2f45a:	69a3      	ldr	r3, [r4, #24]
   2f45c:	b1eb      	cbz	r3, 2f49a <k_mem_slab_free+0x6a>
			z_ready_thread(pending_thread);
			z_reschedule(&slab->lock, key);
			return;
		}
	}
	**(char ***) mem = slab->free_list;
   2f45e:	682b      	ldr	r3, [r5, #0]
   2f460:	69a2      	ldr	r2, [r4, #24]
   2f462:	601a      	str	r2, [r3, #0]
	slab->free_list = *(char **) mem;
   2f464:	682b      	ldr	r3, [r5, #0]
   2f466:	61a3      	str	r3, [r4, #24]
	slab->num_used--;
   2f468:	69e3      	ldr	r3, [r4, #28]
   2f46a:	3b01      	subs	r3, #1
   2f46c:	61e3      	str	r3, [r4, #28]
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   2f46e:	4630      	mov	r0, r6
   2f470:	f000 f868 	bl	2f544 <z_spin_unlock_valid>
   2f474:	b310      	cbz	r0, 2f4bc <k_mem_slab_free+0x8c>
	__asm__ volatile(
   2f476:	f387 8811 	msr	BASEPRI, r7
   2f47a:	f3bf 8f6f 	isb	sy

	SYS_PORT_TRACING_OBJ_FUNC_EXIT(k_mem_slab, free, slab);

	k_spin_unlock(&slab->lock, key);
}
   2f47e:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   2f482:	f8df 8054 	ldr.w	r8, [pc, #84]	; 2f4d8 <k_mem_slab_free+0xa8>
   2f486:	2281      	movs	r2, #129	; 0x81
   2f488:	4641      	mov	r1, r8
   2f48a:	4812      	ldr	r0, [pc, #72]	; (2f4d4 <k_mem_slab_free+0xa4>)
   2f48c:	f003 ff8d 	bl	333aa <printk>
   2f490:	2181      	movs	r1, #129	; 0x81
   2f492:	4640      	mov	r0, r8
   2f494:	f004 fb22 	bl	33adc <assert_post_action>
   2f498:	e7dc      	b.n	2f454 <k_mem_slab_free+0x24>
		struct k_thread *pending_thread = z_unpend_first_thread(&slab->wait_q);
   2f49a:	4620      	mov	r0, r4
   2f49c:	f002 fa1c 	bl	318d8 <z_unpend_first_thread>
		if (pending_thread != NULL) {
   2f4a0:	2800      	cmp	r0, #0
   2f4a2:	d0dc      	beq.n	2f45e <k_mem_slab_free+0x2e>
			z_thread_return_value_set_with_data(pending_thread, 0, *mem);
   2f4a4:	682a      	ldr	r2, [r5, #0]
}

static ALWAYS_INLINE void
arch_thread_return_value_set(struct k_thread *thread, unsigned int value)
{
	thread->arch.swap_return_value = value;
   2f4a6:	2100      	movs	r1, #0
   2f4a8:	f8c0 10b0 	str.w	r1, [r0, #176]	; 0xb0
z_thread_return_value_set_with_data(struct k_thread *thread,
				   unsigned int value,
				   void *data)
{
	arch_thread_return_value_set(thread, value);
	thread->base.swap_data = data;
   2f4ac:	6142      	str	r2, [r0, #20]
			z_ready_thread(pending_thread);
   2f4ae:	f001 fe97 	bl	311e0 <z_ready_thread>
			z_reschedule(&slab->lock, key);
   2f4b2:	4639      	mov	r1, r7
   2f4b4:	4630      	mov	r0, r6
   2f4b6:	f001 fc21 	bl	30cfc <z_reschedule>
			return;
   2f4ba:	e7e0      	b.n	2f47e <k_mem_slab_free+0x4e>
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   2f4bc:	4c06      	ldr	r4, [pc, #24]	; (2f4d8 <k_mem_slab_free+0xa8>)
   2f4be:	22ac      	movs	r2, #172	; 0xac
   2f4c0:	4621      	mov	r1, r4
   2f4c2:	4804      	ldr	r0, [pc, #16]	; (2f4d4 <k_mem_slab_free+0xa4>)
   2f4c4:	f003 ff71 	bl	333aa <printk>
   2f4c8:	21ac      	movs	r1, #172	; 0xac
   2f4ca:	4620      	mov	r0, r4
   2f4cc:	f004 fb06 	bl	33adc <assert_post_action>
   2f4d0:	e7d1      	b.n	2f476 <k_mem_slab_free+0x46>
   2f4d2:	bf00      	nop
   2f4d4:	0003bdac 	.word	0x0003bdac
   2f4d8:	0003bde8 	.word	0x0003bde8

0002f4dc <z_impl_k_thread_name_set>:
	k_spin_unlock(&z_thread_monitor_lock, key);
}
#endif

int z_impl_k_thread_name_set(struct k_thread *thread, const char *value)
{
   2f4dc:	b510      	push	{r4, lr}
#ifdef CONFIG_THREAD_NAME
	if (thread == NULL) {
   2f4de:	4604      	mov	r4, r0
   2f4e0:	b140      	cbz	r0, 2f4f4 <z_impl_k_thread_name_set+0x18>
		thread = _current;
	}

	strncpy(thread->name, value, CONFIG_THREAD_MAX_NAME_LEN);
   2f4e2:	2220      	movs	r2, #32
   2f4e4:	f104 0078 	add.w	r0, r4, #120	; 0x78
   2f4e8:	f006 faa0 	bl	35a2c <strncpy>
	thread->name[CONFIG_THREAD_MAX_NAME_LEN - 1] = '\0';
   2f4ec:	2000      	movs	r0, #0
   2f4ee:	f884 0097 	strb.w	r0, [r4, #151]	; 0x97

	SYS_PORT_TRACING_OBJ_FUNC(k_thread, name_set, thread, -ENOSYS);

	return -ENOSYS;
#endif /* CONFIG_THREAD_NAME */
}
   2f4f2:	bd10      	pop	{r4, pc}
		thread = _current;
   2f4f4:	4b01      	ldr	r3, [pc, #4]	; (2f4fc <z_impl_k_thread_name_set+0x20>)
   2f4f6:	689c      	ldr	r4, [r3, #8]
   2f4f8:	e7f3      	b.n	2f4e2 <z_impl_k_thread_name_set+0x6>
   2f4fa:	bf00      	nop
   2f4fc:	20003480 	.word	0x20003480

0002f500 <schedule_new_thread>:
#endif
#endif

#ifdef CONFIG_MULTITHREADING
static void schedule_new_thread(struct k_thread *thread, k_timeout_t delay)
{
   2f500:	b538      	push	{r3, r4, r5, lr}
   2f502:	4614      	mov	r4, r2
   2f504:	461d      	mov	r5, r3
#ifdef CONFIG_SYS_CLOCK_EXISTS
	if (K_TIMEOUT_EQ(delay, K_NO_WAIT)) {
   2f506:	ea54 0305 	orrs.w	r3, r4, r5
   2f50a:	d102      	bne.n	2f512 <schedule_new_thread+0x12>
	z_impl_k_thread_start(thread);
   2f50c:	f00b fe19 	bl	3b142 <z_impl_k_thread_start>
	}
#else
	ARG_UNUSED(delay);
	k_thread_start(thread);
#endif
}
   2f510:	bd38      	pop	{r3, r4, r5, pc}

extern void z_thread_timeout(struct _timeout *timeout);

static inline void z_add_thread_timeout(struct k_thread *thread, k_timeout_t ticks)
{
	z_add_timeout(&thread->base.timeout, z_thread_timeout, ticks);
   2f512:	462b      	mov	r3, r5
   2f514:	4902      	ldr	r1, [pc, #8]	; (2f520 <schedule_new_thread+0x20>)
   2f516:	3018      	adds	r0, #24
   2f518:	f002 fd1c 	bl	31f54 <z_add_timeout>
   2f51c:	e7f8      	b.n	2f510 <schedule_new_thread+0x10>
   2f51e:	bf00      	nop
   2f520:	000312f5 	.word	0x000312f5

0002f524 <z_spin_lock_valid>:
 * them in spinlock.h is a giant header ordering headache.
 */
#ifdef CONFIG_SPIN_VALIDATE
bool z_spin_lock_valid(struct k_spinlock *l)
{
	uintptr_t thread_cpu = l->thread_cpu;
   2f524:	6803      	ldr	r3, [r0, #0]

	if (thread_cpu != 0U) {
   2f526:	b13b      	cbz	r3, 2f538 <z_spin_lock_valid+0x14>
		if ((thread_cpu & 3U) == _current_cpu->id) {
   2f528:	f003 0303 	and.w	r3, r3, #3
   2f52c:	4a04      	ldr	r2, [pc, #16]	; (2f540 <z_spin_lock_valid+0x1c>)
   2f52e:	7d12      	ldrb	r2, [r2, #20]
   2f530:	4293      	cmp	r3, r2
   2f532:	d003      	beq.n	2f53c <z_spin_lock_valid+0x18>
			return false;
		}
	}
	return true;
   2f534:	2001      	movs	r0, #1
   2f536:	4770      	bx	lr
   2f538:	2001      	movs	r0, #1
   2f53a:	4770      	bx	lr
			return false;
   2f53c:	2000      	movs	r0, #0
}
   2f53e:	4770      	bx	lr
   2f540:	20003480 	.word	0x20003480

0002f544 <z_spin_unlock_valid>:

bool z_spin_unlock_valid(struct k_spinlock *l)
{
	if (l->thread_cpu != (_current_cpu->id | (uintptr_t)_current)) {
   2f544:	6801      	ldr	r1, [r0, #0]
   2f546:	4a06      	ldr	r2, [pc, #24]	; (2f560 <z_spin_unlock_valid+0x1c>)
   2f548:	7d13      	ldrb	r3, [r2, #20]
   2f54a:	6892      	ldr	r2, [r2, #8]
   2f54c:	4313      	orrs	r3, r2
   2f54e:	4299      	cmp	r1, r3
   2f550:	d103      	bne.n	2f55a <z_spin_unlock_valid+0x16>
		return false;
	}
	l->thread_cpu = 0;
   2f552:	2300      	movs	r3, #0
   2f554:	6003      	str	r3, [r0, #0]
	return true;
   2f556:	2001      	movs	r0, #1
   2f558:	4770      	bx	lr
		return false;
   2f55a:	2000      	movs	r0, #0
}
   2f55c:	4770      	bx	lr
   2f55e:	bf00      	nop
   2f560:	20003480 	.word	0x20003480

0002f564 <z_spin_lock_set_owner>:

void z_spin_lock_set_owner(struct k_spinlock *l)
{
	l->thread_cpu = _current_cpu->id | (uintptr_t)_current;
   2f564:	4a02      	ldr	r2, [pc, #8]	; (2f570 <z_spin_lock_set_owner+0xc>)
   2f566:	7d13      	ldrb	r3, [r2, #20]
   2f568:	6892      	ldr	r2, [r2, #8]
   2f56a:	4313      	orrs	r3, r2
   2f56c:	6003      	str	r3, [r0, #0]
}
   2f56e:	4770      	bx	lr
   2f570:	20003480 	.word	0x20003480

0002f574 <z_thread_monitor_exit>:
{
   2f574:	b570      	push	{r4, r5, r6, lr}
   2f576:	4604      	mov	r4, r0
	__asm__ volatile(
   2f578:	f04f 0340 	mov.w	r3, #64	; 0x40
   2f57c:	f3ef 8511 	mrs	r5, BASEPRI
   2f580:	f383 8812 	msr	BASEPRI_MAX, r3
   2f584:	f3bf 8f6f 	isb	sy
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   2f588:	481a      	ldr	r0, [pc, #104]	; (2f5f4 <z_thread_monitor_exit+0x80>)
   2f58a:	f7ff ffcb 	bl	2f524 <z_spin_lock_valid>
   2f58e:	b150      	cbz	r0, 2f5a6 <z_thread_monitor_exit+0x32>
	z_spin_lock_set_owner(l);
   2f590:	4818      	ldr	r0, [pc, #96]	; (2f5f4 <z_thread_monitor_exit+0x80>)
   2f592:	f7ff ffe7 	bl	2f564 <z_spin_lock_set_owner>
	if (thread == _kernel.threads) {
   2f596:	4b18      	ldr	r3, [pc, #96]	; (2f5f8 <z_thread_monitor_exit+0x84>)
   2f598:	6a9b      	ldr	r3, [r3, #40]	; 0x28
   2f59a:	42a3      	cmp	r3, r4
   2f59c:	d10f      	bne.n	2f5be <z_thread_monitor_exit+0x4a>
		_kernel.threads = _kernel.threads->next_thread;
   2f59e:	6f5a      	ldr	r2, [r3, #116]	; 0x74
   2f5a0:	4b15      	ldr	r3, [pc, #84]	; (2f5f8 <z_thread_monitor_exit+0x84>)
   2f5a2:	629a      	str	r2, [r3, #40]	; 0x28
   2f5a4:	e012      	b.n	2f5cc <z_thread_monitor_exit+0x58>
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   2f5a6:	4e15      	ldr	r6, [pc, #84]	; (2f5fc <z_thread_monitor_exit+0x88>)
   2f5a8:	2281      	movs	r2, #129	; 0x81
   2f5aa:	4631      	mov	r1, r6
   2f5ac:	4814      	ldr	r0, [pc, #80]	; (2f600 <z_thread_monitor_exit+0x8c>)
   2f5ae:	f003 fefc 	bl	333aa <printk>
   2f5b2:	2181      	movs	r1, #129	; 0x81
   2f5b4:	4630      	mov	r0, r6
   2f5b6:	f004 fa91 	bl	33adc <assert_post_action>
   2f5ba:	e7e9      	b.n	2f590 <z_thread_monitor_exit+0x1c>
			prev_thread = prev_thread->next_thread;
   2f5bc:	4613      	mov	r3, r2
		while ((prev_thread != NULL) &&
   2f5be:	b113      	cbz	r3, 2f5c6 <z_thread_monitor_exit+0x52>
			(thread != prev_thread->next_thread)) {
   2f5c0:	6f5a      	ldr	r2, [r3, #116]	; 0x74
		while ((prev_thread != NULL) &&
   2f5c2:	42a2      	cmp	r2, r4
   2f5c4:	d1fa      	bne.n	2f5bc <z_thread_monitor_exit+0x48>
		if (prev_thread != NULL) {
   2f5c6:	b10b      	cbz	r3, 2f5cc <z_thread_monitor_exit+0x58>
			prev_thread->next_thread = thread->next_thread;
   2f5c8:	6f62      	ldr	r2, [r4, #116]	; 0x74
   2f5ca:	675a      	str	r2, [r3, #116]	; 0x74
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   2f5cc:	4809      	ldr	r0, [pc, #36]	; (2f5f4 <z_thread_monitor_exit+0x80>)
   2f5ce:	f7ff ffb9 	bl	2f544 <z_spin_unlock_valid>
   2f5d2:	b120      	cbz	r0, 2f5de <z_thread_monitor_exit+0x6a>
	__asm__ volatile(
   2f5d4:	f385 8811 	msr	BASEPRI, r5
   2f5d8:	f3bf 8f6f 	isb	sy
}
   2f5dc:	bd70      	pop	{r4, r5, r6, pc}
   2f5de:	4c07      	ldr	r4, [pc, #28]	; (2f5fc <z_thread_monitor_exit+0x88>)
   2f5e0:	22ac      	movs	r2, #172	; 0xac
   2f5e2:	4621      	mov	r1, r4
   2f5e4:	4806      	ldr	r0, [pc, #24]	; (2f600 <z_thread_monitor_exit+0x8c>)
   2f5e6:	f003 fee0 	bl	333aa <printk>
   2f5ea:	21ac      	movs	r1, #172	; 0xac
   2f5ec:	4620      	mov	r0, r4
   2f5ee:	f004 fa75 	bl	33adc <assert_post_action>
   2f5f2:	e7ef      	b.n	2f5d4 <z_thread_monitor_exit+0x60>
   2f5f4:	200034ac 	.word	0x200034ac
   2f5f8:	20003480 	.word	0x20003480
   2f5fc:	0003bde8 	.word	0x0003bde8
   2f600:	0003bdac 	.word	0x0003bdac

0002f604 <z_setup_new_thread>:
{
   2f604:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
   2f608:	b085      	sub	sp, #20
   2f60a:	4604      	mov	r4, r0
   2f60c:	460e      	mov	r6, r1
   2f60e:	4617      	mov	r7, r2
   2f610:	461d      	mov	r5, r3
   2f612:	f8dd b038 	ldr.w	fp, [sp, #56]	; 0x38
   2f616:	f8dd a03c 	ldr.w	sl, [sp, #60]	; 0x3c
   2f61a:	f8dd 8044 	ldr.w	r8, [sp, #68]	; 0x44
	Z_ASSERT_VALID_PRIO(prio, entry);
   2f61e:	f1b8 0f0f 	cmp.w	r8, #15
   2f622:	d05d      	beq.n	2f6e0 <z_setup_new_thread+0xdc>
   2f624:	f108 0310 	add.w	r3, r8, #16
   2f628:	2b1e      	cmp	r3, #30
   2f62a:	d85d      	bhi.n	2f6e8 <z_setup_new_thread+0xe4>
	SYS_DLIST_FOR_EACH_CONTAINER(&((wq)->waitq), thread_ptr, \
				     base.qnode_dlist)

static inline void z_waitq_init(_wait_q_t *w)
{
	sys_dlist_init(&w->waitq);
   2f62c:	f104 0358 	add.w	r3, r4, #88	; 0x58
 * @return N/A
 */

static inline void sys_dlist_init(sys_dlist_t *list)
{
	list->head = (sys_dnode_t *)list;
   2f630:	65a3      	str	r3, [r4, #88]	; 0x58
	list->tail = (sys_dnode_t *)list;
   2f632:	65e3      	str	r3, [r4, #92]	; 0x5c
	z_init_thread_base(&new_thread->base, prio, _THREAD_PRESTART, options);
   2f634:	9b12      	ldr	r3, [sp, #72]	; 0x48
   2f636:	2204      	movs	r2, #4
   2f638:	4641      	mov	r1, r8
   2f63a:	4620      	mov	r0, r4
   2f63c:	f00b fd85 	bl	3b14a <z_init_thread_base>
	stack_ptr = setup_thread_stack(new_thread, stack, stack_size);
   2f640:	463a      	mov	r2, r7
   2f642:	4631      	mov	r1, r6
   2f644:	4620      	mov	r0, r4
   2f646:	f00b fd62 	bl	3b10e <setup_thread_stack>
   2f64a:	4607      	mov	r7, r0
	arch_new_thread(new_thread, stack, stack_ptr, entry, p1, p2, p3);
   2f64c:	9b10      	ldr	r3, [sp, #64]	; 0x40
   2f64e:	9302      	str	r3, [sp, #8]
   2f650:	f8cd a004 	str.w	sl, [sp, #4]
   2f654:	f8cd b000 	str.w	fp, [sp]
   2f658:	462b      	mov	r3, r5
   2f65a:	4602      	mov	r2, r0
   2f65c:	4631      	mov	r1, r6
   2f65e:	4620      	mov	r0, r4
   2f660:	f7ef ff76 	bl	1f550 <arch_new_thread>
	new_thread->init_data = NULL;
   2f664:	2300      	movs	r3, #0
   2f666:	6563      	str	r3, [r4, #84]	; 0x54
	new_thread->entry.pEntry = entry;
   2f668:	6665      	str	r5, [r4, #100]	; 0x64
	new_thread->entry.parameter1 = p1;
   2f66a:	f8c4 b068 	str.w	fp, [r4, #104]	; 0x68
	new_thread->entry.parameter2 = p2;
   2f66e:	f8c4 a06c 	str.w	sl, [r4, #108]	; 0x6c
	new_thread->entry.parameter3 = p3;
   2f672:	9b10      	ldr	r3, [sp, #64]	; 0x40
   2f674:	6723      	str	r3, [r4, #112]	; 0x70
	__asm__ volatile(
   2f676:	f04f 0340 	mov.w	r3, #64	; 0x40
   2f67a:	f3ef 8611 	mrs	r6, BASEPRI
   2f67e:	f383 8812 	msr	BASEPRI_MAX, r3
   2f682:	f3bf 8f6f 	isb	sy
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   2f686:	482e      	ldr	r0, [pc, #184]	; (2f740 <z_setup_new_thread+0x13c>)
   2f688:	f7ff ff4c 	bl	2f524 <z_spin_lock_valid>
   2f68c:	2800      	cmp	r0, #0
   2f68e:	d039      	beq.n	2f704 <z_setup_new_thread+0x100>
	z_spin_lock_set_owner(l);
   2f690:	4d2b      	ldr	r5, [pc, #172]	; (2f740 <z_setup_new_thread+0x13c>)
   2f692:	4628      	mov	r0, r5
   2f694:	f7ff ff66 	bl	2f564 <z_spin_lock_set_owner>
	new_thread->next_thread = _kernel.threads;
   2f698:	4b2a      	ldr	r3, [pc, #168]	; (2f744 <z_setup_new_thread+0x140>)
   2f69a:	6a9a      	ldr	r2, [r3, #40]	; 0x28
   2f69c:	6762      	str	r2, [r4, #116]	; 0x74
	_kernel.threads = new_thread;
   2f69e:	629c      	str	r4, [r3, #40]	; 0x28
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   2f6a0:	4628      	mov	r0, r5
   2f6a2:	f7ff ff4f 	bl	2f544 <z_spin_unlock_valid>
   2f6a6:	2800      	cmp	r0, #0
   2f6a8:	d037      	beq.n	2f71a <z_setup_new_thread+0x116>
	__asm__ volatile(
   2f6aa:	f386 8811 	msr	BASEPRI, r6
   2f6ae:	f3bf 8f6f 	isb	sy
	if (name != NULL) {
   2f6b2:	9b13      	ldr	r3, [sp, #76]	; 0x4c
   2f6b4:	2b00      	cmp	r3, #0
   2f6b6:	d03b      	beq.n	2f730 <z_setup_new_thread+0x12c>
		strncpy(new_thread->name, name,
   2f6b8:	221f      	movs	r2, #31
   2f6ba:	4619      	mov	r1, r3
   2f6bc:	f104 0078 	add.w	r0, r4, #120	; 0x78
   2f6c0:	f006 f9b4 	bl	35a2c <strncpy>
		new_thread->name[CONFIG_THREAD_MAX_NAME_LEN - 1] = '\0';
   2f6c4:	2300      	movs	r3, #0
   2f6c6:	f884 3097 	strb.w	r3, [r4, #151]	; 0x97
	if (!_current) {
   2f6ca:	4b1e      	ldr	r3, [pc, #120]	; (2f744 <z_setup_new_thread+0x140>)
   2f6cc:	689b      	ldr	r3, [r3, #8]
   2f6ce:	b39b      	cbz	r3, 2f738 <z_setup_new_thread+0x134>
	new_thread->resource_pool = _current->resource_pool;
   2f6d0:	f8d3 30a8 	ldr.w	r3, [r3, #168]	; 0xa8
   2f6d4:	f8c4 30a8 	str.w	r3, [r4, #168]	; 0xa8
}
   2f6d8:	4638      	mov	r0, r7
   2f6da:	b005      	add	sp, #20
   2f6dc:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
	Z_ASSERT_VALID_PRIO(prio, entry);
   2f6e0:	4b19      	ldr	r3, [pc, #100]	; (2f748 <z_setup_new_thread+0x144>)
   2f6e2:	429d      	cmp	r5, r3
   2f6e4:	d19e      	bne.n	2f624 <z_setup_new_thread+0x20>
   2f6e6:	e7a1      	b.n	2f62c <z_setup_new_thread+0x28>
   2f6e8:	f8df 9068 	ldr.w	r9, [pc, #104]	; 2f754 <z_setup_new_thread+0x150>
   2f6ec:	f240 2205 	movw	r2, #517	; 0x205
   2f6f0:	4649      	mov	r1, r9
   2f6f2:	4816      	ldr	r0, [pc, #88]	; (2f74c <z_setup_new_thread+0x148>)
   2f6f4:	f003 fe59 	bl	333aa <printk>
   2f6f8:	f240 2105 	movw	r1, #517	; 0x205
   2f6fc:	4648      	mov	r0, r9
   2f6fe:	f004 f9ed 	bl	33adc <assert_post_action>
   2f702:	e793      	b.n	2f62c <z_setup_new_thread+0x28>
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   2f704:	4d12      	ldr	r5, [pc, #72]	; (2f750 <z_setup_new_thread+0x14c>)
   2f706:	2281      	movs	r2, #129	; 0x81
   2f708:	4629      	mov	r1, r5
   2f70a:	4810      	ldr	r0, [pc, #64]	; (2f74c <z_setup_new_thread+0x148>)
   2f70c:	f003 fe4d 	bl	333aa <printk>
   2f710:	2181      	movs	r1, #129	; 0x81
   2f712:	4628      	mov	r0, r5
   2f714:	f004 f9e2 	bl	33adc <assert_post_action>
   2f718:	e7ba      	b.n	2f690 <z_setup_new_thread+0x8c>
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   2f71a:	4d0d      	ldr	r5, [pc, #52]	; (2f750 <z_setup_new_thread+0x14c>)
   2f71c:	22ac      	movs	r2, #172	; 0xac
   2f71e:	4629      	mov	r1, r5
   2f720:	480a      	ldr	r0, [pc, #40]	; (2f74c <z_setup_new_thread+0x148>)
   2f722:	f003 fe42 	bl	333aa <printk>
   2f726:	21ac      	movs	r1, #172	; 0xac
   2f728:	4628      	mov	r0, r5
   2f72a:	f004 f9d7 	bl	33adc <assert_post_action>
   2f72e:	e7bc      	b.n	2f6aa <z_setup_new_thread+0xa6>
		new_thread->name[0] = '\0';
   2f730:	2300      	movs	r3, #0
   2f732:	f884 3078 	strb.w	r3, [r4, #120]	; 0x78
   2f736:	e7c8      	b.n	2f6ca <z_setup_new_thread+0xc6>
		new_thread->resource_pool = NULL;
   2f738:	f8c4 30a8 	str.w	r3, [r4, #168]	; 0xa8
		return stack_ptr;
   2f73c:	e7cc      	b.n	2f6d8 <z_setup_new_thread+0xd4>
   2f73e:	bf00      	nop
   2f740:	200034ac 	.word	0x200034ac
   2f744:	20003480 	.word	0x20003480
   2f748:	0002f8d9 	.word	0x0002f8d9
   2f74c:	0003bdac 	.word	0x0003bdac
   2f750:	0003bde8 	.word	0x0003bde8
   2f754:	0003f970 	.word	0x0003f970

0002f758 <z_impl_k_thread_create>:
{
   2f758:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
   2f75c:	b086      	sub	sp, #24
   2f75e:	4604      	mov	r4, r0
   2f760:	460d      	mov	r5, r1
   2f762:	4616      	mov	r6, r2
   2f764:	461f      	mov	r7, r3
   2f766:	e9dd 8914 	ldrd	r8, r9, [sp, #80]	; 0x50
   2f76a:	f3ef 8305 	mrs	r3, IPSR
	__ASSERT(!arch_is_in_isr(), "Threads may not be created in ISRs");
   2f76e:	b9db      	cbnz	r3, 2f7a8 <z_impl_k_thread_create+0x50>
	z_setup_new_thread(new_thread, stack, stack_size, entry, p1, p2, p3,
   2f770:	2300      	movs	r3, #0
   2f772:	9305      	str	r3, [sp, #20]
   2f774:	9b12      	ldr	r3, [sp, #72]	; 0x48
   2f776:	9304      	str	r3, [sp, #16]
   2f778:	9b11      	ldr	r3, [sp, #68]	; 0x44
   2f77a:	9303      	str	r3, [sp, #12]
   2f77c:	9b10      	ldr	r3, [sp, #64]	; 0x40
   2f77e:	9302      	str	r3, [sp, #8]
   2f780:	9b0f      	ldr	r3, [sp, #60]	; 0x3c
   2f782:	9301      	str	r3, [sp, #4]
   2f784:	9b0e      	ldr	r3, [sp, #56]	; 0x38
   2f786:	9300      	str	r3, [sp, #0]
   2f788:	463b      	mov	r3, r7
   2f78a:	4632      	mov	r2, r6
   2f78c:	4629      	mov	r1, r5
   2f78e:	4620      	mov	r0, r4
   2f790:	f7ff ff38 	bl	2f604 <z_setup_new_thread>
	if (!K_TIMEOUT_EQ(delay, K_FOREVER)) {
   2f794:	f1b9 3fff 	cmp.w	r9, #4294967295
   2f798:	bf08      	it	eq
   2f79a:	f1b8 3fff 	cmpeq.w	r8, #4294967295
   2f79e:	d111      	bne.n	2f7c4 <z_impl_k_thread_create+0x6c>
}
   2f7a0:	4620      	mov	r0, r4
   2f7a2:	b006      	add	sp, #24
   2f7a4:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
	__ASSERT(!arch_is_in_isr(), "Threads may not be created in ISRs");
   2f7a8:	f8df a028 	ldr.w	sl, [pc, #40]	; 2f7d4 <z_impl_k_thread_create+0x7c>
   2f7ac:	f240 226e 	movw	r2, #622	; 0x26e
   2f7b0:	4651      	mov	r1, sl
   2f7b2:	4807      	ldr	r0, [pc, #28]	; (2f7d0 <z_impl_k_thread_create+0x78>)
   2f7b4:	f003 fdf9 	bl	333aa <printk>
   2f7b8:	f240 216e 	movw	r1, #622	; 0x26e
   2f7bc:	4650      	mov	r0, sl
   2f7be:	f004 f98d 	bl	33adc <assert_post_action>
   2f7c2:	e7d5      	b.n	2f770 <z_impl_k_thread_create+0x18>
		schedule_new_thread(new_thread, delay);
   2f7c4:	4642      	mov	r2, r8
   2f7c6:	464b      	mov	r3, r9
   2f7c8:	4620      	mov	r0, r4
   2f7ca:	f7ff fe99 	bl	2f500 <schedule_new_thread>
   2f7ce:	e7e7      	b.n	2f7a0 <z_impl_k_thread_create+0x48>
   2f7d0:	0003bdac 	.word	0x0003bdac
   2f7d4:	0003f970 	.word	0x0003f970

0002f7d8 <z_init_static_threads>:
{
   2f7d8:	e92d 4370 	stmdb	sp!, {r4, r5, r6, r8, r9, lr}
   2f7dc:	b086      	sub	sp, #24
	_FOREACH_STATIC_THREAD(thread_data) {
   2f7de:	4c33      	ldr	r4, [pc, #204]	; (2f8ac <z_init_static_threads+0xd4>)
   2f7e0:	e023      	b.n	2f82a <z_init_static_threads+0x52>
   2f7e2:	4d33      	ldr	r5, [pc, #204]	; (2f8b0 <z_init_static_threads+0xd8>)
   2f7e4:	f240 22d5 	movw	r2, #725	; 0x2d5
   2f7e8:	4629      	mov	r1, r5
   2f7ea:	4832      	ldr	r0, [pc, #200]	; (2f8b4 <z_init_static_threads+0xdc>)
   2f7ec:	f003 fddd 	bl	333aa <printk>
   2f7f0:	f240 21d5 	movw	r1, #725	; 0x2d5
   2f7f4:	4628      	mov	r0, r5
   2f7f6:	f004 f971 	bl	33adc <assert_post_action>
   2f7fa:	4b2f      	ldr	r3, [pc, #188]	; (2f8b8 <z_init_static_threads+0xe0>)
   2f7fc:	429c      	cmp	r4, r3
   2f7fe:	d218      	bcs.n	2f832 <z_init_static_threads+0x5a>
		z_setup_new_thread(
   2f800:	6ae3      	ldr	r3, [r4, #44]	; 0x2c
   2f802:	9305      	str	r3, [sp, #20]
   2f804:	6a23      	ldr	r3, [r4, #32]
   2f806:	9304      	str	r3, [sp, #16]
   2f808:	69e3      	ldr	r3, [r4, #28]
   2f80a:	9303      	str	r3, [sp, #12]
   2f80c:	69a3      	ldr	r3, [r4, #24]
   2f80e:	9302      	str	r3, [sp, #8]
   2f810:	6963      	ldr	r3, [r4, #20]
   2f812:	9301      	str	r3, [sp, #4]
   2f814:	6923      	ldr	r3, [r4, #16]
   2f816:	9300      	str	r3, [sp, #0]
   2f818:	68e3      	ldr	r3, [r4, #12]
   2f81a:	68a2      	ldr	r2, [r4, #8]
   2f81c:	6861      	ldr	r1, [r4, #4]
   2f81e:	6820      	ldr	r0, [r4, #0]
   2f820:	f7ff fef0 	bl	2f604 <z_setup_new_thread>
		thread_data->init_thread->init_data = thread_data;
   2f824:	6823      	ldr	r3, [r4, #0]
   2f826:	655c      	str	r4, [r3, #84]	; 0x54
	_FOREACH_STATIC_THREAD(thread_data) {
   2f828:	3430      	adds	r4, #48	; 0x30
   2f82a:	4b23      	ldr	r3, [pc, #140]	; (2f8b8 <z_init_static_threads+0xe0>)
   2f82c:	429c      	cmp	r4, r3
   2f82e:	d9e4      	bls.n	2f7fa <z_init_static_threads+0x22>
   2f830:	e7d7      	b.n	2f7e2 <z_init_static_threads+0xa>
	k_sched_lock();
   2f832:	f001 fa9f 	bl	30d74 <k_sched_lock>
	_FOREACH_STATIC_THREAD(thread_data) {
   2f836:	4c1d      	ldr	r4, [pc, #116]	; (2f8ac <z_init_static_threads+0xd4>)
   2f838:	e01b      	b.n	2f872 <z_init_static_threads+0x9a>
			schedule_new_thread(thread_data->init_thread,
   2f83a:	6826      	ldr	r6, [r4, #0]
					    K_MSEC(thread_data->init_delay));
   2f83c:	ea23 73e3 	bic.w	r3, r3, r3, asr #31
   2f840:	ea4f 79e3 	mov.w	r9, r3, asr #31
   2f844:	ea4f 31c9 	mov.w	r1, r9, lsl #15
   2f848:	ea41 4153 	orr.w	r1, r1, r3, lsr #17
   2f84c:	03d8      	lsls	r0, r3, #15
   2f84e:	f240 35e7 	movw	r5, #999	; 0x3e7
   2f852:	f44f 727a 	mov.w	r2, #1000	; 0x3e8
   2f856:	2300      	movs	r3, #0
   2f858:	1940      	adds	r0, r0, r5
   2f85a:	f04f 0500 	mov.w	r5, #0
   2f85e:	eb45 0101 	adc.w	r1, r5, r1
   2f862:	f7dc fd4d 	bl	c300 <__aeabi_uldivmod>
   2f866:	4602      	mov	r2, r0
   2f868:	460b      	mov	r3, r1
			schedule_new_thread(thread_data->init_thread,
   2f86a:	4630      	mov	r0, r6
   2f86c:	f7ff fe48 	bl	2f500 <schedule_new_thread>
	_FOREACH_STATIC_THREAD(thread_data) {
   2f870:	3430      	adds	r4, #48	; 0x30
   2f872:	4b11      	ldr	r3, [pc, #68]	; (2f8b8 <z_init_static_threads+0xe0>)
   2f874:	429c      	cmp	r4, r3
   2f876:	d807      	bhi.n	2f888 <z_init_static_threads+0xb0>
   2f878:	4b0f      	ldr	r3, [pc, #60]	; (2f8b8 <z_init_static_threads+0xe0>)
   2f87a:	429c      	cmp	r4, r3
   2f87c:	d211      	bcs.n	2f8a2 <z_init_static_threads+0xca>
		if (thread_data->init_delay != K_TICKS_FOREVER) {
   2f87e:	6a63      	ldr	r3, [r4, #36]	; 0x24
   2f880:	f1b3 3fff 	cmp.w	r3, #4294967295
   2f884:	d0f4      	beq.n	2f870 <z_init_static_threads+0x98>
   2f886:	e7d8      	b.n	2f83a <z_init_static_threads+0x62>
	_FOREACH_STATIC_THREAD(thread_data) {
   2f888:	4d09      	ldr	r5, [pc, #36]	; (2f8b0 <z_init_static_threads+0xd8>)
   2f88a:	f44f 723d 	mov.w	r2, #756	; 0x2f4
   2f88e:	4629      	mov	r1, r5
   2f890:	4808      	ldr	r0, [pc, #32]	; (2f8b4 <z_init_static_threads+0xdc>)
   2f892:	f003 fd8a 	bl	333aa <printk>
   2f896:	f44f 713d 	mov.w	r1, #756	; 0x2f4
   2f89a:	4628      	mov	r0, r5
   2f89c:	f004 f91e 	bl	33adc <assert_post_action>
   2f8a0:	e7ea      	b.n	2f878 <z_init_static_threads+0xa0>
	k_sched_unlock();
   2f8a2:	f001 ff57 	bl	31754 <k_sched_unlock>
}
   2f8a6:	b006      	add	sp, #24
   2f8a8:	e8bd 8370 	ldmia.w	sp!, {r4, r5, r6, r8, r9, pc}
   2f8ac:	200007a0 	.word	0x200007a0
   2f8b0:	0003f970 	.word	0x0003f970
   2f8b4:	0003bdac 	.word	0x0003bdac
   2f8b8:	200007a0 	.word	0x200007a0

0002f8bc <pm_save_idle>:
 *
 * Sets the kernel data structure idle field to either a positive value or
 * K_FOREVER.
 */
static void pm_save_idle(void)
{
   2f8bc:	b508      	push	{r3, lr}
#ifdef CONFIG_PM
	int32_t ticks = z_get_next_timeout_expiry();
   2f8be:	f002 fc75 	bl	321ac <z_get_next_timeout_expiry>
	_kernel.idle = ticks;
   2f8c2:	4b04      	ldr	r3, [pc, #16]	; (2f8d4 <pm_save_idle+0x18>)
   2f8c4:	6198      	str	r0, [r3, #24]
	 * before exiting. This is because the kernel does not do its own idle
	 * processing in those cases i.e. skips k_cpu_idle(). The kernel's
	 * idle processing re-enables interrupts which is essential for
	 * the kernel's scheduling logic.
	 */
	if (pm_system_suspend(ticks) == PM_STATE_ACTIVE) {
   2f8c6:	f7ee ff21 	bl	1e70c <pm_system_suspend>
   2f8ca:	b100      	cbz	r0, 2f8ce <pm_save_idle+0x12>
		k_cpu_idle();
	}
#endif
}
   2f8cc:	bd08      	pop	{r3, pc}
	arch_cpu_idle();
   2f8ce:	f7ef fd19 	bl	1f304 <arch_cpu_idle>
   2f8d2:	e7fb      	b.n	2f8cc <pm_save_idle+0x10>
   2f8d4:	20003480 	.word	0x20003480

0002f8d8 <idle>:
#endif	/* CONFIG_PM */
	sys_clock_idle_exit();
}

void idle(void *unused1, void *unused2, void *unused3)
{
   2f8d8:	b508      	push	{r3, lr}
	ARG_UNUSED(unused1);
	ARG_UNUSED(unused2);
	ARG_UNUSED(unused3);

	__ASSERT_NO_MSG(_current->base.prio >= 0);
   2f8da:	4b0e      	ldr	r3, [pc, #56]	; (2f914 <idle+0x3c>)
   2f8dc:	689b      	ldr	r3, [r3, #8]
   2f8de:	f993 300e 	ldrsb.w	r3, [r3, #14]
   2f8e2:	2b00      	cmp	r3, #0
   2f8e4:	db0a      	blt.n	2f8fc <idle+0x24>
	__asm__ volatile(
   2f8e6:	f04f 0240 	mov.w	r2, #64	; 0x40
   2f8ea:	f3ef 8311 	mrs	r3, BASEPRI
   2f8ee:	f382 8812 	msr	BASEPRI_MAX, r2
   2f8f2:	f3bf 8f6f 	isb	sy
		 * higher level construct.
		 */
		(void) arch_irq_lock();

		if (IS_ENABLED(CONFIG_PM)) {
			pm_save_idle();
   2f8f6:	f7ff ffe1 	bl	2f8bc <pm_save_idle>
   2f8fa:	e7f4      	b.n	2f8e6 <idle+0xe>
	__ASSERT_NO_MSG(_current->base.prio >= 0);
   2f8fc:	4c06      	ldr	r4, [pc, #24]	; (2f918 <idle+0x40>)
   2f8fe:	2246      	movs	r2, #70	; 0x46
   2f900:	4621      	mov	r1, r4
   2f902:	4806      	ldr	r0, [pc, #24]	; (2f91c <idle+0x44>)
   2f904:	f003 fd51 	bl	333aa <printk>
   2f908:	2146      	movs	r1, #70	; 0x46
   2f90a:	4620      	mov	r0, r4
   2f90c:	f004 f8e6 	bl	33adc <assert_post_action>
   2f910:	e7e9      	b.n	2f8e6 <idle+0xe>
   2f912:	bf00      	nop
   2f914:	20003480 	.word	0x20003480
   2f918:	0003f994 	.word	0x0003f994
   2f91c:	0003bdac 	.word	0x0003bdac

0002f920 <z_impl_k_mutex_lock>:
	}
	return false;
}

int z_impl_k_mutex_lock(struct k_mutex *mutex, k_timeout_t timeout)
{
   2f920:	e92d 43f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, lr}
   2f924:	b083      	sub	sp, #12
   2f926:	4604      	mov	r4, r0
   2f928:	4616      	mov	r6, r2
   2f92a:	461d      	mov	r5, r3
   2f92c:	f3ef 8105 	mrs	r1, IPSR
	int new_prio;
	k_spinlock_key_t key;
	bool resched = false;

	__ASSERT(!arch_is_in_isr(), "mutexes cannot be used inside ISRs");
   2f930:	2900      	cmp	r1, #0
   2f932:	d12a      	bne.n	2f98a <z_impl_k_mutex_lock+0x6a>
   2f934:	f04f 0340 	mov.w	r3, #64	; 0x40
   2f938:	f3ef 8711 	mrs	r7, BASEPRI
   2f93c:	f383 8812 	msr	BASEPRI_MAX, r3
   2f940:	f3bf 8f6f 	isb	sy
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   2f944:	486c      	ldr	r0, [pc, #432]	; (2faf8 <z_impl_k_mutex_lock+0x1d8>)
   2f946:	f7ff fded 	bl	2f524 <z_spin_lock_valid>
   2f94a:	b348      	cbz	r0, 2f9a0 <z_impl_k_mutex_lock+0x80>
	z_spin_lock_set_owner(l);
   2f94c:	486a      	ldr	r0, [pc, #424]	; (2faf8 <z_impl_k_mutex_lock+0x1d8>)
   2f94e:	f7ff fe09 	bl	2f564 <z_spin_lock_set_owner>

	SYS_PORT_TRACING_OBJ_FUNC_ENTER(k_mutex, lock, mutex, timeout);

	key = k_spin_lock(&lock);

	if (likely((mutex->lock_count == 0U) || (mutex->owner == _current))) {
   2f952:	68e1      	ldr	r1, [r4, #12]
   2f954:	2900      	cmp	r1, #0
   2f956:	d12f      	bne.n	2f9b8 <z_impl_k_mutex_lock+0x98>

		mutex->owner_orig_prio = (mutex->lock_count == 0U) ?
					_current->base.prio :
   2f958:	2900      	cmp	r1, #0
   2f95a:	d174      	bne.n	2fa46 <z_impl_k_mutex_lock+0x126>
   2f95c:	4b67      	ldr	r3, [pc, #412]	; (2fafc <z_impl_k_mutex_lock+0x1dc>)
   2f95e:	689b      	ldr	r3, [r3, #8]
   2f960:	f993 300e 	ldrsb.w	r3, [r3, #14]
		mutex->owner_orig_prio = (mutex->lock_count == 0U) ?
   2f964:	6123      	str	r3, [r4, #16]
					mutex->owner_orig_prio;

		mutex->lock_count++;
   2f966:	3101      	adds	r1, #1
   2f968:	60e1      	str	r1, [r4, #12]
		mutex->owner = _current;
   2f96a:	4b64      	ldr	r3, [pc, #400]	; (2fafc <z_impl_k_mutex_lock+0x1dc>)
   2f96c:	689b      	ldr	r3, [r3, #8]
   2f96e:	60a3      	str	r3, [r4, #8]
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   2f970:	4861      	ldr	r0, [pc, #388]	; (2faf8 <z_impl_k_mutex_lock+0x1d8>)
   2f972:	f7ff fde7 	bl	2f544 <z_spin_unlock_valid>
   2f976:	2800      	cmp	r0, #0
   2f978:	d067      	beq.n	2fa4a <z_impl_k_mutex_lock+0x12a>
	__asm__ volatile(
   2f97a:	f387 8811 	msr	BASEPRI, r7
   2f97e:	f3bf 8f6f 	isb	sy

		k_spin_unlock(&lock, key);

		SYS_PORT_TRACING_OBJ_FUNC_EXIT(k_mutex, lock, mutex, timeout, 0);

		return 0;
   2f982:	2000      	movs	r0, #0
	}

	SYS_PORT_TRACING_OBJ_FUNC_EXIT(k_mutex, lock, mutex, timeout, -EAGAIN);

	return -EAGAIN;
}
   2f984:	b003      	add	sp, #12
   2f986:	e8bd 83f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, pc}
	__ASSERT(!arch_is_in_isr(), "mutexes cannot be used inside ISRs");
   2f98a:	4f5d      	ldr	r7, [pc, #372]	; (2fb00 <z_impl_k_mutex_lock+0x1e0>)
   2f98c:	2265      	movs	r2, #101	; 0x65
   2f98e:	4639      	mov	r1, r7
   2f990:	485c      	ldr	r0, [pc, #368]	; (2fb04 <z_impl_k_mutex_lock+0x1e4>)
   2f992:	f003 fd0a 	bl	333aa <printk>
   2f996:	2165      	movs	r1, #101	; 0x65
   2f998:	4638      	mov	r0, r7
   2f99a:	f004 f89f 	bl	33adc <assert_post_action>
   2f99e:	e7c9      	b.n	2f934 <z_impl_k_mutex_lock+0x14>
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   2f9a0:	f8df 8164 	ldr.w	r8, [pc, #356]	; 2fb08 <z_impl_k_mutex_lock+0x1e8>
   2f9a4:	2281      	movs	r2, #129	; 0x81
   2f9a6:	4641      	mov	r1, r8
   2f9a8:	4856      	ldr	r0, [pc, #344]	; (2fb04 <z_impl_k_mutex_lock+0x1e4>)
   2f9aa:	f003 fcfe 	bl	333aa <printk>
   2f9ae:	2181      	movs	r1, #129	; 0x81
   2f9b0:	4640      	mov	r0, r8
   2f9b2:	f004 f893 	bl	33adc <assert_post_action>
   2f9b6:	e7c9      	b.n	2f94c <z_impl_k_mutex_lock+0x2c>
	if (likely((mutex->lock_count == 0U) || (mutex->owner == _current))) {
   2f9b8:	68a2      	ldr	r2, [r4, #8]
   2f9ba:	4b50      	ldr	r3, [pc, #320]	; (2fafc <z_impl_k_mutex_lock+0x1dc>)
   2f9bc:	689b      	ldr	r3, [r3, #8]
   2f9be:	429a      	cmp	r2, r3
   2f9c0:	d0ca      	beq.n	2f958 <z_impl_k_mutex_lock+0x38>
	if (unlikely(K_TIMEOUT_EQ(timeout, K_NO_WAIT))) {
   2f9c2:	ea55 0106 	orrs.w	r1, r5, r6
   2f9c6:	bf0c      	ite	eq
   2f9c8:	f04f 0801 	moveq.w	r8, #1
   2f9cc:	f04f 0800 	movne.w	r8, #0
   2f9d0:	d046      	beq.n	2fa60 <z_impl_k_mutex_lock+0x140>
					    mutex->owner->base.prio);
   2f9d2:	f992 900e 	ldrsb.w	r9, [r2, #14]
	new_prio = new_prio_for_inheritance(_current->base.prio,
   2f9d6:	4649      	mov	r1, r9
   2f9d8:	f993 000e 	ldrsb.w	r0, [r3, #14]
   2f9dc:	f00b fbc6 	bl	3b16c <new_prio_for_inheritance>
	if (z_is_prio_higher(new_prio, mutex->owner->base.prio)) {
   2f9e0:	4581      	cmp	r9, r0
   2f9e2:	dc53      	bgt.n	2fa8c <z_impl_k_mutex_lock+0x16c>
	bool resched = false;
   2f9e4:	f04f 0900 	mov.w	r9, #0
	int got_mutex = z_pend_curr(&lock, key, &mutex->wait_q, timeout);
   2f9e8:	9600      	str	r6, [sp, #0]
   2f9ea:	9501      	str	r5, [sp, #4]
   2f9ec:	4622      	mov	r2, r4
   2f9ee:	4639      	mov	r1, r7
   2f9f0:	4841      	ldr	r0, [pc, #260]	; (2faf8 <z_impl_k_mutex_lock+0x1d8>)
   2f9f2:	f001 fd81 	bl	314f8 <z_pend_curr>
	if (got_mutex == 0) {
   2f9f6:	2800      	cmp	r0, #0
   2f9f8:	d0c4      	beq.n	2f984 <z_impl_k_mutex_lock+0x64>
	__asm__ volatile(
   2f9fa:	f04f 0340 	mov.w	r3, #64	; 0x40
   2f9fe:	f3ef 8511 	mrs	r5, BASEPRI
   2fa02:	f383 8812 	msr	BASEPRI_MAX, r3
   2fa06:	f3bf 8f6f 	isb	sy
   2fa0a:	483b      	ldr	r0, [pc, #236]	; (2faf8 <z_impl_k_mutex_lock+0x1d8>)
   2fa0c:	f7ff fd8a 	bl	2f524 <z_spin_lock_valid>
   2fa10:	2800      	cmp	r0, #0
   2fa12:	d041      	beq.n	2fa98 <z_impl_k_mutex_lock+0x178>
	z_spin_lock_set_owner(l);
   2fa14:	4838      	ldr	r0, [pc, #224]	; (2faf8 <z_impl_k_mutex_lock+0x1d8>)
   2fa16:	f7ff fda5 	bl	2f564 <z_spin_lock_set_owner>
 * @return true if empty, false otherwise
 */

static inline bool sys_dlist_is_empty(sys_dlist_t *list)
{
	return list->head == list;
   2fa1a:	6823      	ldr	r3, [r4, #0]
 * @return a pointer to the head element, NULL if list is empty
 */

static inline sys_dnode_t *sys_dlist_peek_head(sys_dlist_t *list)
{
	return sys_dlist_is_empty(list) ? NULL : list->head;
   2fa1c:	429c      	cmp	r4, r3
   2fa1e:	d046      	beq.n	2faae <z_impl_k_mutex_lock+0x18e>
		new_prio_for_inheritance(waiter->base.prio, mutex->owner_orig_prio) :
   2fa20:	2b00      	cmp	r3, #0
   2fa22:	d044      	beq.n	2faae <z_impl_k_mutex_lock+0x18e>
   2fa24:	6921      	ldr	r1, [r4, #16]
   2fa26:	f993 000e 	ldrsb.w	r0, [r3, #14]
   2fa2a:	f00b fb9f 	bl	3b16c <new_prio_for_inheritance>
   2fa2e:	4601      	mov	r1, r0
	resched = adjust_owner_prio(mutex, new_prio) || resched;
   2fa30:	4620      	mov	r0, r4
   2fa32:	f00b fba6 	bl	3b182 <adjust_owner_prio>
   2fa36:	2800      	cmp	r0, #0
   2fa38:	d13b      	bne.n	2fab2 <z_impl_k_mutex_lock+0x192>
   2fa3a:	f1b9 0f00 	cmp.w	r9, #0
   2fa3e:	d03a      	beq.n	2fab6 <z_impl_k_mutex_lock+0x196>
   2fa40:	f04f 0801 	mov.w	r8, #1
   2fa44:	e037      	b.n	2fab6 <z_impl_k_mutex_lock+0x196>
					_current->base.prio :
   2fa46:	6923      	ldr	r3, [r4, #16]
   2fa48:	e78c      	b.n	2f964 <z_impl_k_mutex_lock+0x44>
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   2fa4a:	4c2f      	ldr	r4, [pc, #188]	; (2fb08 <z_impl_k_mutex_lock+0x1e8>)
   2fa4c:	22ac      	movs	r2, #172	; 0xac
   2fa4e:	4621      	mov	r1, r4
   2fa50:	482c      	ldr	r0, [pc, #176]	; (2fb04 <z_impl_k_mutex_lock+0x1e4>)
   2fa52:	f003 fcaa 	bl	333aa <printk>
   2fa56:	21ac      	movs	r1, #172	; 0xac
   2fa58:	4620      	mov	r0, r4
   2fa5a:	f004 f83f 	bl	33adc <assert_post_action>
   2fa5e:	e78c      	b.n	2f97a <z_impl_k_mutex_lock+0x5a>
   2fa60:	4825      	ldr	r0, [pc, #148]	; (2faf8 <z_impl_k_mutex_lock+0x1d8>)
   2fa62:	f7ff fd6f 	bl	2f544 <z_spin_unlock_valid>
   2fa66:	b130      	cbz	r0, 2fa76 <z_impl_k_mutex_lock+0x156>
	__asm__ volatile(
   2fa68:	f387 8811 	msr	BASEPRI, r7
   2fa6c:	f3bf 8f6f 	isb	sy
		return -EBUSY;
   2fa70:	f06f 000f 	mvn.w	r0, #15
   2fa74:	e786      	b.n	2f984 <z_impl_k_mutex_lock+0x64>
   2fa76:	4c24      	ldr	r4, [pc, #144]	; (2fb08 <z_impl_k_mutex_lock+0x1e8>)
   2fa78:	22ac      	movs	r2, #172	; 0xac
   2fa7a:	4621      	mov	r1, r4
   2fa7c:	4821      	ldr	r0, [pc, #132]	; (2fb04 <z_impl_k_mutex_lock+0x1e4>)
   2fa7e:	f003 fc94 	bl	333aa <printk>
   2fa82:	21ac      	movs	r1, #172	; 0xac
   2fa84:	4620      	mov	r0, r4
   2fa86:	f004 f829 	bl	33adc <assert_post_action>
   2fa8a:	e7ed      	b.n	2fa68 <z_impl_k_mutex_lock+0x148>
		resched = adjust_owner_prio(mutex, new_prio);
   2fa8c:	4601      	mov	r1, r0
   2fa8e:	4620      	mov	r0, r4
   2fa90:	f00b fb77 	bl	3b182 <adjust_owner_prio>
   2fa94:	4681      	mov	r9, r0
   2fa96:	e7a7      	b.n	2f9e8 <z_impl_k_mutex_lock+0xc8>
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   2fa98:	4e1b      	ldr	r6, [pc, #108]	; (2fb08 <z_impl_k_mutex_lock+0x1e8>)
   2fa9a:	2281      	movs	r2, #129	; 0x81
   2fa9c:	4631      	mov	r1, r6
   2fa9e:	4819      	ldr	r0, [pc, #100]	; (2fb04 <z_impl_k_mutex_lock+0x1e4>)
   2faa0:	f003 fc83 	bl	333aa <printk>
   2faa4:	2181      	movs	r1, #129	; 0x81
   2faa6:	4630      	mov	r0, r6
   2faa8:	f004 f818 	bl	33adc <assert_post_action>
   2faac:	e7b2      	b.n	2fa14 <z_impl_k_mutex_lock+0xf4>
		new_prio_for_inheritance(waiter->base.prio, mutex->owner_orig_prio) :
   2faae:	6921      	ldr	r1, [r4, #16]
   2fab0:	e7be      	b.n	2fa30 <z_impl_k_mutex_lock+0x110>
	resched = adjust_owner_prio(mutex, new_prio) || resched;
   2fab2:	f04f 0801 	mov.w	r8, #1
	if (resched) {
   2fab6:	f1b8 0f00 	cmp.w	r8, #0
   2faba:	d006      	beq.n	2faca <z_impl_k_mutex_lock+0x1aa>
		z_reschedule(&lock, key);
   2fabc:	4629      	mov	r1, r5
   2fabe:	480e      	ldr	r0, [pc, #56]	; (2faf8 <z_impl_k_mutex_lock+0x1d8>)
   2fac0:	f001 f91c 	bl	30cfc <z_reschedule>
	return -EAGAIN;
   2fac4:	f06f 000a 	mvn.w	r0, #10
   2fac8:	e75c      	b.n	2f984 <z_impl_k_mutex_lock+0x64>
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   2faca:	480b      	ldr	r0, [pc, #44]	; (2faf8 <z_impl_k_mutex_lock+0x1d8>)
   2facc:	f7ff fd3a 	bl	2f544 <z_spin_unlock_valid>
   2fad0:	b130      	cbz	r0, 2fae0 <z_impl_k_mutex_lock+0x1c0>
   2fad2:	f385 8811 	msr	BASEPRI, r5
   2fad6:	f3bf 8f6f 	isb	sy
   2fada:	f06f 000a 	mvn.w	r0, #10
   2fade:	e751      	b.n	2f984 <z_impl_k_mutex_lock+0x64>
   2fae0:	4c09      	ldr	r4, [pc, #36]	; (2fb08 <z_impl_k_mutex_lock+0x1e8>)
   2fae2:	22ac      	movs	r2, #172	; 0xac
   2fae4:	4621      	mov	r1, r4
   2fae6:	4807      	ldr	r0, [pc, #28]	; (2fb04 <z_impl_k_mutex_lock+0x1e4>)
   2fae8:	f003 fc5f 	bl	333aa <printk>
   2faec:	21ac      	movs	r1, #172	; 0xac
   2faee:	4620      	mov	r0, r4
   2faf0:	f003 fff4 	bl	33adc <assert_post_action>
   2faf4:	e7ed      	b.n	2fad2 <z_impl_k_mutex_lock+0x1b2>
   2faf6:	bf00      	nop
   2faf8:	200034b0 	.word	0x200034b0
   2fafc:	20003480 	.word	0x20003480
   2fb00:	0003f9b8 	.word	0x0003f9b8
   2fb04:	0003bdac 	.word	0x0003bdac
   2fb08:	0003bde8 	.word	0x0003bde8

0002fb0c <z_impl_k_mutex_unlock>:
}
#include <syscalls/k_mutex_lock_mrsh.c>
#endif

int z_impl_k_mutex_unlock(struct k_mutex *mutex)
{
   2fb0c:	b570      	push	{r4, r5, r6, lr}
   2fb0e:	4604      	mov	r4, r0
   2fb10:	f3ef 8305 	mrs	r3, IPSR
	struct k_thread *new_owner;

	__ASSERT(!arch_is_in_isr(), "mutexes cannot be used inside ISRs");
   2fb14:	bb03      	cbnz	r3, 2fb58 <z_impl_k_mutex_unlock+0x4c>

	SYS_PORT_TRACING_OBJ_FUNC_ENTER(k_mutex, unlock, mutex);

	CHECKIF(mutex->owner == NULL) {
   2fb16:	68a3      	ldr	r3, [r4, #8]
   2fb18:	2b00      	cmp	r3, #0
   2fb1a:	f000 808f 	beq.w	2fc3c <z_impl_k_mutex_unlock+0x130>
		return -EINVAL;
	}
	/*
	 * The current thread does not own the mutex.
	 */
	CHECKIF(mutex->owner != _current) {
   2fb1e:	4a4a      	ldr	r2, [pc, #296]	; (2fc48 <z_impl_k_mutex_unlock+0x13c>)
   2fb20:	6892      	ldr	r2, [r2, #8]
   2fb22:	4293      	cmp	r3, r2
   2fb24:	f040 808d 	bne.w	2fc42 <z_impl_k_mutex_unlock+0x136>
	 * Attempt to unlock a mutex which is unlocked. mutex->lock_count
	 * cannot be zero if the current thread is equal to mutex->owner,
	 * therefore no underflow check is required. Use assert to catch
	 * undefined behavior.
	 */
	__ASSERT_NO_MSG(mutex->lock_count > 0U);
   2fb28:	68e3      	ldr	r3, [r4, #12]
   2fb2a:	b303      	cbz	r3, 2fb6e <z_impl_k_mutex_unlock+0x62>
   2fb2c:	f3ef 8305 	mrs	r3, IPSR
	}
}

static inline void z_sched_lock(void)
{
	__ASSERT(!arch_is_in_isr(), "");
   2fb30:	bb43      	cbnz	r3, 2fb84 <z_impl_k_mutex_unlock+0x78>
	__ASSERT(_current->base.sched_locked != 1U, "");
   2fb32:	4b45      	ldr	r3, [pc, #276]	; (2fc48 <z_impl_k_mutex_unlock+0x13c>)
   2fb34:	689b      	ldr	r3, [r3, #8]
   2fb36:	7bdb      	ldrb	r3, [r3, #15]
   2fb38:	2b01      	cmp	r3, #1
   2fb3a:	d02e      	beq.n	2fb9a <z_impl_k_mutex_unlock+0x8e>

	--_current->base.sched_locked;
   2fb3c:	4b42      	ldr	r3, [pc, #264]	; (2fc48 <z_impl_k_mutex_unlock+0x13c>)
   2fb3e:	689a      	ldr	r2, [r3, #8]
   2fb40:	7bd3      	ldrb	r3, [r2, #15]
   2fb42:	3b01      	subs	r3, #1
   2fb44:	73d3      	strb	r3, [r2, #15]

	/*
	 * If we are the owner and count is greater than 1, then decrement
	 * the count and return and keep current thread as the owner.
	 */
	if (mutex->lock_count > 1U) {
   2fb46:	68e3      	ldr	r3, [r4, #12]
   2fb48:	2b01      	cmp	r3, #1
   2fb4a:	d931      	bls.n	2fbb0 <z_impl_k_mutex_unlock+0xa4>
		mutex->lock_count--;
   2fb4c:	3b01      	subs	r3, #1
   2fb4e:	60e3      	str	r3, [r4, #12]


k_mutex_unlock_return:
	SYS_PORT_TRACING_OBJ_FUNC_EXIT(k_mutex, unlock, mutex, 0);

	k_sched_unlock();
   2fb50:	f001 fe00 	bl	31754 <k_sched_unlock>

	return 0;
   2fb54:	2000      	movs	r0, #0
}
   2fb56:	bd70      	pop	{r4, r5, r6, pc}
	__ASSERT(!arch_is_in_isr(), "mutexes cannot be used inside ISRs");
   2fb58:	4d3c      	ldr	r5, [pc, #240]	; (2fc4c <z_impl_k_mutex_unlock+0x140>)
   2fb5a:	22c7      	movs	r2, #199	; 0xc7
   2fb5c:	4629      	mov	r1, r5
   2fb5e:	483c      	ldr	r0, [pc, #240]	; (2fc50 <z_impl_k_mutex_unlock+0x144>)
   2fb60:	f003 fc23 	bl	333aa <printk>
   2fb64:	21c7      	movs	r1, #199	; 0xc7
   2fb66:	4628      	mov	r0, r5
   2fb68:	f003 ffb8 	bl	33adc <assert_post_action>
   2fb6c:	e7d3      	b.n	2fb16 <z_impl_k_mutex_unlock+0xa>
	__ASSERT_NO_MSG(mutex->lock_count > 0U);
   2fb6e:	4d37      	ldr	r5, [pc, #220]	; (2fc4c <z_impl_k_mutex_unlock+0x140>)
   2fb70:	22df      	movs	r2, #223	; 0xdf
   2fb72:	4629      	mov	r1, r5
   2fb74:	4836      	ldr	r0, [pc, #216]	; (2fc50 <z_impl_k_mutex_unlock+0x144>)
   2fb76:	f003 fc18 	bl	333aa <printk>
   2fb7a:	21df      	movs	r1, #223	; 0xdf
   2fb7c:	4628      	mov	r0, r5
   2fb7e:	f003 ffad 	bl	33adc <assert_post_action>
   2fb82:	e7d3      	b.n	2fb2c <z_impl_k_mutex_unlock+0x20>
	__ASSERT(!arch_is_in_isr(), "");
   2fb84:	4d33      	ldr	r5, [pc, #204]	; (2fc54 <z_impl_k_mutex_unlock+0x148>)
   2fb86:	22fd      	movs	r2, #253	; 0xfd
   2fb88:	4629      	mov	r1, r5
   2fb8a:	4831      	ldr	r0, [pc, #196]	; (2fc50 <z_impl_k_mutex_unlock+0x144>)
   2fb8c:	f003 fc0d 	bl	333aa <printk>
   2fb90:	21fd      	movs	r1, #253	; 0xfd
   2fb92:	4628      	mov	r0, r5
   2fb94:	f003 ffa2 	bl	33adc <assert_post_action>
   2fb98:	e7cb      	b.n	2fb32 <z_impl_k_mutex_unlock+0x26>
	__ASSERT(_current->base.sched_locked != 1U, "");
   2fb9a:	4d2e      	ldr	r5, [pc, #184]	; (2fc54 <z_impl_k_mutex_unlock+0x148>)
   2fb9c:	22fe      	movs	r2, #254	; 0xfe
   2fb9e:	4629      	mov	r1, r5
   2fba0:	482b      	ldr	r0, [pc, #172]	; (2fc50 <z_impl_k_mutex_unlock+0x144>)
   2fba2:	f003 fc02 	bl	333aa <printk>
   2fba6:	21fe      	movs	r1, #254	; 0xfe
   2fba8:	4628      	mov	r0, r5
   2fbaa:	f003 ff97 	bl	33adc <assert_post_action>
   2fbae:	e7c5      	b.n	2fb3c <z_impl_k_mutex_unlock+0x30>
	__asm__ volatile(
   2fbb0:	f04f 0340 	mov.w	r3, #64	; 0x40
   2fbb4:	f3ef 8511 	mrs	r5, BASEPRI
   2fbb8:	f383 8812 	msr	BASEPRI_MAX, r3
   2fbbc:	f3bf 8f6f 	isb	sy
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   2fbc0:	4825      	ldr	r0, [pc, #148]	; (2fc58 <z_impl_k_mutex_unlock+0x14c>)
   2fbc2:	f7ff fcaf 	bl	2f524 <z_spin_lock_valid>
   2fbc6:	b1c0      	cbz	r0, 2fbfa <z_impl_k_mutex_unlock+0xee>
	z_spin_lock_set_owner(l);
   2fbc8:	4823      	ldr	r0, [pc, #140]	; (2fc58 <z_impl_k_mutex_unlock+0x14c>)
   2fbca:	f7ff fccb 	bl	2f564 <z_spin_lock_set_owner>
	adjust_owner_prio(mutex, mutex->owner_orig_prio);
   2fbce:	6921      	ldr	r1, [r4, #16]
   2fbd0:	4620      	mov	r0, r4
   2fbd2:	f00b fad6 	bl	3b182 <adjust_owner_prio>
	new_owner = z_unpend_first_thread(&mutex->wait_q);
   2fbd6:	4620      	mov	r0, r4
   2fbd8:	f001 fe7e 	bl	318d8 <z_unpend_first_thread>
	mutex->owner = new_owner;
   2fbdc:	60a0      	str	r0, [r4, #8]
	if (new_owner != NULL) {
   2fbde:	b1b8      	cbz	r0, 2fc10 <z_impl_k_mutex_unlock+0x104>
		mutex->owner_orig_prio = new_owner->base.prio;
   2fbe0:	f990 300e 	ldrsb.w	r3, [r0, #14]
   2fbe4:	6123      	str	r3, [r4, #16]
   2fbe6:	2300      	movs	r3, #0
   2fbe8:	f8c0 30b0 	str.w	r3, [r0, #176]	; 0xb0
		z_ready_thread(new_owner);
   2fbec:	f001 faf8 	bl	311e0 <z_ready_thread>
		z_reschedule(&lock, key);
   2fbf0:	4629      	mov	r1, r5
   2fbf2:	4819      	ldr	r0, [pc, #100]	; (2fc58 <z_impl_k_mutex_unlock+0x14c>)
   2fbf4:	f001 f882 	bl	30cfc <z_reschedule>
   2fbf8:	e7aa      	b.n	2fb50 <z_impl_k_mutex_unlock+0x44>
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   2fbfa:	4e18      	ldr	r6, [pc, #96]	; (2fc5c <z_impl_k_mutex_unlock+0x150>)
   2fbfc:	2281      	movs	r2, #129	; 0x81
   2fbfe:	4631      	mov	r1, r6
   2fc00:	4813      	ldr	r0, [pc, #76]	; (2fc50 <z_impl_k_mutex_unlock+0x144>)
   2fc02:	f003 fbd2 	bl	333aa <printk>
   2fc06:	2181      	movs	r1, #129	; 0x81
   2fc08:	4630      	mov	r0, r6
   2fc0a:	f003 ff67 	bl	33adc <assert_post_action>
   2fc0e:	e7db      	b.n	2fbc8 <z_impl_k_mutex_unlock+0xbc>
		mutex->lock_count = 0U;
   2fc10:	2300      	movs	r3, #0
   2fc12:	60e3      	str	r3, [r4, #12]
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   2fc14:	4810      	ldr	r0, [pc, #64]	; (2fc58 <z_impl_k_mutex_unlock+0x14c>)
   2fc16:	f7ff fc95 	bl	2f544 <z_spin_unlock_valid>
   2fc1a:	b120      	cbz	r0, 2fc26 <z_impl_k_mutex_unlock+0x11a>
	__asm__ volatile(
   2fc1c:	f385 8811 	msr	BASEPRI, r5
   2fc20:	f3bf 8f6f 	isb	sy
   2fc24:	e794      	b.n	2fb50 <z_impl_k_mutex_unlock+0x44>
   2fc26:	4c0d      	ldr	r4, [pc, #52]	; (2fc5c <z_impl_k_mutex_unlock+0x150>)
   2fc28:	22ac      	movs	r2, #172	; 0xac
   2fc2a:	4621      	mov	r1, r4
   2fc2c:	4808      	ldr	r0, [pc, #32]	; (2fc50 <z_impl_k_mutex_unlock+0x144>)
   2fc2e:	f003 fbbc 	bl	333aa <printk>
   2fc32:	21ac      	movs	r1, #172	; 0xac
   2fc34:	4620      	mov	r0, r4
   2fc36:	f003 ff51 	bl	33adc <assert_post_action>
   2fc3a:	e7ef      	b.n	2fc1c <z_impl_k_mutex_unlock+0x110>
		return -EINVAL;
   2fc3c:	f06f 0015 	mvn.w	r0, #21
   2fc40:	e789      	b.n	2fb56 <z_impl_k_mutex_unlock+0x4a>
		return -EPERM;
   2fc42:	f04f 30ff 	mov.w	r0, #4294967295
   2fc46:	e786      	b.n	2fb56 <z_impl_k_mutex_unlock+0x4a>
   2fc48:	20003480 	.word	0x20003480
   2fc4c:	0003f9b8 	.word	0x0003f9b8
   2fc50:	0003bdac 	.word	0x0003bdac
   2fc54:	0003f9dc 	.word	0x0003f9dc
   2fc58:	200034b0 	.word	0x200034b0
   2fc5c:	0003bde8 	.word	0x0003bde8

0002fc60 <queue_insert>:
#include <syscalls/k_queue_cancel_wait_mrsh.c>
#endif

static int32_t queue_insert(struct k_queue *queue, void *prev, void *data,
			    bool alloc, bool is_append)
{
   2fc60:	e92d 4ff8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
   2fc64:	4604      	mov	r4, r0
   2fc66:	460e      	mov	r6, r1
   2fc68:	4615      	mov	r5, r2
   2fc6a:	4698      	mov	r8, r3
   2fc6c:	f89d 9028 	ldrb.w	r9, [sp, #40]	; 0x28
	struct k_thread *first_pending_thread;
	k_spinlock_key_t key = k_spin_lock(&queue->lock);
   2fc70:	f100 0708 	add.w	r7, r0, #8
	__asm__ volatile(
   2fc74:	f04f 0340 	mov.w	r3, #64	; 0x40
   2fc78:	f3ef 8a11 	mrs	sl, BASEPRI
   2fc7c:	f383 8812 	msr	BASEPRI_MAX, r3
   2fc80:	f3bf 8f6f 	isb	sy
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   2fc84:	4638      	mov	r0, r7
   2fc86:	f7ff fc4d 	bl	2f524 <z_spin_lock_valid>
   2fc8a:	b1c0      	cbz	r0, 2fcbe <queue_insert+0x5e>
	z_spin_lock_set_owner(l);
   2fc8c:	4638      	mov	r0, r7
   2fc8e:	f7ff fc69 	bl	2f564 <z_spin_lock_set_owner>

	SYS_PORT_TRACING_OBJ_FUNC_ENTER(k_queue, queue_insert, queue, alloc);

	if (is_append) {
   2fc92:	f1b9 0f00 	cmp.w	r9, #0
   2fc96:	d000      	beq.n	2fc9a <queue_insert+0x3a>
 *
 * @return A pointer on the last node of the list (or NULL if none)
 */
static inline sys_sfnode_t *sys_sflist_peek_tail(sys_sflist_t *list)
{
	return list->tail;
   2fc98:	6866      	ldr	r6, [r4, #4]
		prev = sys_sflist_peek_tail(&queue->data_q);
	}
	first_pending_thread = z_unpend_first_thread(&queue->wait_q);
   2fc9a:	f104 000c 	add.w	r0, r4, #12
   2fc9e:	f001 fe1b 	bl	318d8 <z_unpend_first_thread>

	if (first_pending_thread != NULL) {
   2fca2:	b9c0      	cbnz	r0, 2fcd6 <queue_insert+0x76>

		return 0;
	}

	/* Only need to actually allocate if no threads are pending */
	if (alloc) {
   2fca4:	f1b8 0f00 	cmp.w	r8, #0
   2fca8:	d034      	beq.n	2fd14 <queue_insert+0xb4>
	return z_thread_aligned_alloc(0, size);
   2fcaa:	2108      	movs	r1, #8
   2fcac:	2000      	movs	r0, #0
   2fcae:	f003 fab5 	bl	3321c <z_thread_aligned_alloc>
		struct alloc_node *anode;

		anode = z_thread_malloc(sizeof(*anode));
		if (anode == NULL) {
   2fcb2:	b1c8      	cbz	r0, 2fce8 <queue_insert+0x88>
			SYS_PORT_TRACING_OBJ_FUNC_EXIT(k_queue, queue_insert, queue, alloc,
				-ENOMEM);

			return -ENOMEM;
		}
		anode->data = data;
   2fcb4:	6045      	str	r5, [r0, #4]
 * @param flags A value between 0 and 3 to set the flags value
 */
static inline void sys_sfnode_init(sys_sfnode_t *node, uint8_t flags)
{
	__ASSERT((flags & ~SYS_SFLIST_FLAGS_MASK) == 0UL, "flags too large");
	node->next_and_flags = flags;
   2fcb6:	2201      	movs	r2, #1
   2fcb8:	6002      	str	r2, [r0, #0]
		sys_sfnode_init(&anode->node, 0x1);
		data = anode;
   2fcba:	4605      	mov	r5, r0
}
   2fcbc:	e02c      	b.n	2fd18 <queue_insert+0xb8>
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   2fcbe:	f8df b0c8 	ldr.w	fp, [pc, #200]	; 2fd88 <queue_insert+0x128>
   2fcc2:	2281      	movs	r2, #129	; 0x81
   2fcc4:	4659      	mov	r1, fp
   2fcc6:	482f      	ldr	r0, [pc, #188]	; (2fd84 <queue_insert+0x124>)
   2fcc8:	f003 fb6f 	bl	333aa <printk>
   2fccc:	2181      	movs	r1, #129	; 0x81
   2fcce:	4658      	mov	r0, fp
   2fcd0:	f003 ff04 	bl	33adc <assert_post_action>
   2fcd4:	e7da      	b.n	2fc8c <queue_insert+0x2c>
		prepare_thread_to_run(first_pending_thread, data);
   2fcd6:	4629      	mov	r1, r5
   2fcd8:	f00b fa65 	bl	3b1a6 <prepare_thread_to_run>
		z_reschedule(&queue->lock, key);
   2fcdc:	4651      	mov	r1, sl
   2fcde:	4638      	mov	r0, r7
   2fce0:	f001 f80c 	bl	30cfc <z_reschedule>
		return 0;
   2fce4:	2000      	movs	r0, #0
   2fce6:	e04b      	b.n	2fd80 <queue_insert+0x120>
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   2fce8:	4638      	mov	r0, r7
   2fcea:	f7ff fc2b 	bl	2f544 <z_spin_unlock_valid>
   2fcee:	b130      	cbz	r0, 2fcfe <queue_insert+0x9e>
	__asm__ volatile(
   2fcf0:	f38a 8811 	msr	BASEPRI, sl
   2fcf4:	f3bf 8f6f 	isb	sy
			return -ENOMEM;
   2fcf8:	f06f 000b 	mvn.w	r0, #11
   2fcfc:	e040      	b.n	2fd80 <queue_insert+0x120>
   2fcfe:	4c22      	ldr	r4, [pc, #136]	; (2fd88 <queue_insert+0x128>)
   2fd00:	22ac      	movs	r2, #172	; 0xac
   2fd02:	4621      	mov	r1, r4
   2fd04:	481f      	ldr	r0, [pc, #124]	; (2fd84 <queue_insert+0x124>)
   2fd06:	f003 fb50 	bl	333aa <printk>
   2fd0a:	21ac      	movs	r1, #172	; 0xac
   2fd0c:	4620      	mov	r0, r4
   2fd0e:	f003 fee5 	bl	33adc <assert_post_action>
   2fd12:	e7ed      	b.n	2fcf0 <queue_insert+0x90>
	node->next_and_flags = flags;
   2fd14:	2300      	movs	r3, #0
   2fd16:	602b      	str	r3, [r5, #0]
 */
static inline void sys_sflist_insert(sys_sflist_t *list,
				     sys_sfnode_t *prev,
				     sys_sfnode_t *node);

Z_GENLIST_INSERT(sflist, sfnode)
   2fd18:	b186      	cbz	r6, 2fd3c <queue_insert+0xdc>
	return (sys_sfnode_t *)(node->next_and_flags & ~SYS_SFLIST_FLAGS_MASK);
   2fd1a:	6833      	ldr	r3, [r6, #0]
Z_GENLIST_INSERT(sflist, sfnode)
   2fd1c:	f033 0303 	bics.w	r3, r3, #3
   2fd20:	d11a      	bne.n	2fd58 <queue_insert+0xf8>
	return node->next_and_flags & SYS_SFLIST_FLAGS_MASK;
   2fd22:	682b      	ldr	r3, [r5, #0]
   2fd24:	f003 0303 	and.w	r3, r3, #3
	parent->next_and_flags = cur_flags | (unative_t)child;
   2fd28:	602b      	str	r3, [r5, #0]
	return list->tail;
   2fd2a:	6862      	ldr	r2, [r4, #4]
Z_GENLIST_APPEND(sflist, sfnode)
   2fd2c:	b18a      	cbz	r2, 2fd52 <queue_insert+0xf2>
	return node->next_and_flags & SYS_SFLIST_FLAGS_MASK;
   2fd2e:	6813      	ldr	r3, [r2, #0]
   2fd30:	f003 0303 	and.w	r3, r3, #3
	parent->next_and_flags = cur_flags | (unative_t)child;
   2fd34:	432b      	orrs	r3, r5
   2fd36:	6013      	str	r3, [r2, #0]
	list->tail = node;
   2fd38:	6065      	str	r5, [r4, #4]
}
   2fd3a:	e017      	b.n	2fd6c <queue_insert+0x10c>
	return list->head;
   2fd3c:	6822      	ldr	r2, [r4, #0]
	return node->next_and_flags & SYS_SFLIST_FLAGS_MASK;
   2fd3e:	682b      	ldr	r3, [r5, #0]
   2fd40:	f003 0303 	and.w	r3, r3, #3
	parent->next_and_flags = cur_flags | (unative_t)child;
   2fd44:	4313      	orrs	r3, r2
   2fd46:	602b      	str	r3, [r5, #0]
	list->head = node;
   2fd48:	6025      	str	r5, [r4, #0]
	return list->tail;
   2fd4a:	6863      	ldr	r3, [r4, #4]
Z_GENLIST_PREPEND(sflist, sfnode)
   2fd4c:	b973      	cbnz	r3, 2fd6c <queue_insert+0x10c>
	list->tail = node;
   2fd4e:	6065      	str	r5, [r4, #4]
}
   2fd50:	e00c      	b.n	2fd6c <queue_insert+0x10c>
	list->tail = node;
   2fd52:	6065      	str	r5, [r4, #4]
	list->head = node;
   2fd54:	6025      	str	r5, [r4, #0]
}
   2fd56:	e009      	b.n	2fd6c <queue_insert+0x10c>
	return node->next_and_flags & SYS_SFLIST_FLAGS_MASK;
   2fd58:	682a      	ldr	r2, [r5, #0]
   2fd5a:	f002 0203 	and.w	r2, r2, #3
	parent->next_and_flags = cur_flags | (unative_t)child;
   2fd5e:	4313      	orrs	r3, r2
   2fd60:	602b      	str	r3, [r5, #0]
	return node->next_and_flags & SYS_SFLIST_FLAGS_MASK;
   2fd62:	6833      	ldr	r3, [r6, #0]
   2fd64:	f003 0303 	and.w	r3, r3, #3
	parent->next_and_flags = cur_flags | (unative_t)child;
   2fd68:	431d      	orrs	r5, r3
   2fd6a:	6035      	str	r5, [r6, #0]
	z_handle_obj_poll_events(&queue->poll_events, state);
   2fd6c:	2104      	movs	r1, #4
   2fd6e:	f104 0014 	add.w	r0, r4, #20
   2fd72:	f00b fb7e 	bl	3b472 <z_handle_obj_poll_events>

	SYS_PORT_TRACING_OBJ_FUNC_BLOCKING(k_queue, queue_insert, queue, alloc, K_FOREVER);

	sys_sflist_insert(&queue->data_q, prev, data);
	handle_poll_events(queue, K_POLL_STATE_DATA_AVAILABLE);
	z_reschedule(&queue->lock, key);
   2fd76:	4651      	mov	r1, sl
   2fd78:	4638      	mov	r0, r7
   2fd7a:	f000 ffbf 	bl	30cfc <z_reschedule>

	SYS_PORT_TRACING_OBJ_FUNC_EXIT(k_queue, queue_insert, queue, alloc, 0);

	return 0;
   2fd7e:	2000      	movs	r0, #0
}
   2fd80:	e8bd 8ff8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
   2fd84:	0003bdac 	.word	0x0003bdac
   2fd88:	0003bde8 	.word	0x0003bde8

0002fd8c <k_queue_append_list>:
int k_queue_append_list(struct k_queue *queue, void *head, void *tail)
{
	SYS_PORT_TRACING_OBJ_FUNC_ENTER(k_queue, append_list, queue);

	/* invalid head or tail of list */
	CHECKIF(head == NULL || tail == NULL) {
   2fd8c:	2900      	cmp	r1, #0
   2fd8e:	d049      	beq.n	2fe24 <k_queue_append_list+0x98>
{
   2fd90:	e92d 43f8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
   2fd94:	4606      	mov	r6, r0
   2fd96:	4617      	mov	r7, r2
   2fd98:	460c      	mov	r4, r1
	CHECKIF(head == NULL || tail == NULL) {
   2fd9a:	2a00      	cmp	r2, #0
   2fd9c:	d045      	beq.n	2fe2a <k_queue_append_list+0x9e>
		SYS_PORT_TRACING_OBJ_FUNC_EXIT(k_queue, append_list, queue, -EINVAL);

		return -EINVAL;
	}

	k_spinlock_key_t key = k_spin_lock(&queue->lock);
   2fd9e:	f100 0808 	add.w	r8, r0, #8
	__asm__ volatile(
   2fda2:	f04f 0340 	mov.w	r3, #64	; 0x40
   2fda6:	f3ef 8911 	mrs	r9, BASEPRI
   2fdaa:	f383 8812 	msr	BASEPRI_MAX, r3
   2fdae:	f3bf 8f6f 	isb	sy
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   2fdb2:	4640      	mov	r0, r8
   2fdb4:	f7ff fbb6 	bl	2f524 <z_spin_lock_valid>
   2fdb8:	b140      	cbz	r0, 2fdcc <k_queue_append_list+0x40>
	z_spin_lock_set_owner(l);
   2fdba:	4640      	mov	r0, r8
   2fdbc:	f7ff fbd2 	bl	2f564 <z_spin_lock_set_owner>
	struct k_thread *thread = NULL;

	if (head != NULL) {
		thread = z_unpend_first_thread(&queue->wait_q);
   2fdc0:	f106 050c 	add.w	r5, r6, #12
   2fdc4:	4628      	mov	r0, r5
   2fdc6:	f001 fd87 	bl	318d8 <z_unpend_first_thread>
   2fdca:	e011      	b.n	2fdf0 <k_queue_append_list+0x64>
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   2fdcc:	4d18      	ldr	r5, [pc, #96]	; (2fe30 <k_queue_append_list+0xa4>)
   2fdce:	2281      	movs	r2, #129	; 0x81
   2fdd0:	4629      	mov	r1, r5
   2fdd2:	4818      	ldr	r0, [pc, #96]	; (2fe34 <k_queue_append_list+0xa8>)
   2fdd4:	f003 fae9 	bl	333aa <printk>
   2fdd8:	2181      	movs	r1, #129	; 0x81
   2fdda:	4628      	mov	r0, r5
   2fddc:	f003 fe7e 	bl	33adc <assert_post_action>
   2fde0:	e7eb      	b.n	2fdba <k_queue_append_list+0x2e>
	}

	while ((head != NULL) && (thread != NULL)) {
		prepare_thread_to_run(thread, head);
   2fde2:	4621      	mov	r1, r4
   2fde4:	f00b f9df 	bl	3b1a6 <prepare_thread_to_run>
		head = *(void **)head;
   2fde8:	6824      	ldr	r4, [r4, #0]
		thread = z_unpend_first_thread(&queue->wait_q);
   2fdea:	4628      	mov	r0, r5
   2fdec:	f001 fd74 	bl	318d8 <z_unpend_first_thread>
	while ((head != NULL) && (thread != NULL)) {
   2fdf0:	b10c      	cbz	r4, 2fdf6 <k_queue_append_list+0x6a>
   2fdf2:	2800      	cmp	r0, #0
   2fdf4:	d1f5      	bne.n	2fde2 <k_queue_append_list+0x56>
	}

	if (head != NULL) {
   2fdf6:	b13c      	cbz	r4, 2fe08 <k_queue_append_list+0x7c>
	return list->tail;
   2fdf8:	6872      	ldr	r2, [r6, #4]
Z_GENLIST_APPEND_LIST(sflist, sfnode)
   2fdfa:	b18a      	cbz	r2, 2fe20 <k_queue_append_list+0x94>
	return node->next_and_flags & SYS_SFLIST_FLAGS_MASK;
   2fdfc:	6813      	ldr	r3, [r2, #0]
   2fdfe:	f003 0303 	and.w	r3, r3, #3
	parent->next_and_flags = cur_flags | (unative_t)child;
   2fe02:	431c      	orrs	r4, r3
   2fe04:	6014      	str	r4, [r2, #0]
	list->tail = node;
   2fe06:	6077      	str	r7, [r6, #4]
	z_handle_obj_poll_events(&queue->poll_events, state);
   2fe08:	2104      	movs	r1, #4
   2fe0a:	f106 0014 	add.w	r0, r6, #20
   2fe0e:	f00b fb30 	bl	3b472 <z_handle_obj_poll_events>
	}

	SYS_PORT_TRACING_OBJ_FUNC_EXIT(k_queue, append_list, queue, 0);

	handle_poll_events(queue, K_POLL_STATE_DATA_AVAILABLE);
	z_reschedule(&queue->lock, key);
   2fe12:	4649      	mov	r1, r9
   2fe14:	4640      	mov	r0, r8
   2fe16:	f000 ff71 	bl	30cfc <z_reschedule>
	return 0;
   2fe1a:	2000      	movs	r0, #0
}
   2fe1c:	e8bd 83f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
	list->head = node;
   2fe20:	6034      	str	r4, [r6, #0]
}
   2fe22:	e7f0      	b.n	2fe06 <k_queue_append_list+0x7a>
		return -EINVAL;
   2fe24:	f06f 0015 	mvn.w	r0, #21
}
   2fe28:	4770      	bx	lr
		return -EINVAL;
   2fe2a:	f06f 0015 	mvn.w	r0, #21
   2fe2e:	e7f5      	b.n	2fe1c <k_queue_append_list+0x90>
   2fe30:	0003bde8 	.word	0x0003bde8
   2fe34:	0003bdac 	.word	0x0003bdac

0002fe38 <z_impl_k_queue_get>:

	return 0;
}

void *z_impl_k_queue_get(struct k_queue *queue, k_timeout_t timeout)
{
   2fe38:	e92d 43f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, lr}
   2fe3c:	b083      	sub	sp, #12
   2fe3e:	4604      	mov	r4, r0
   2fe40:	4616      	mov	r6, r2
   2fe42:	461f      	mov	r7, r3
	k_spinlock_key_t key = k_spin_lock(&queue->lock);
   2fe44:	f100 0508 	add.w	r5, r0, #8
   2fe48:	f04f 0340 	mov.w	r3, #64	; 0x40
   2fe4c:	f3ef 8811 	mrs	r8, BASEPRI
   2fe50:	f383 8812 	msr	BASEPRI_MAX, r3
   2fe54:	f3bf 8f6f 	isb	sy
   2fe58:	4628      	mov	r0, r5
   2fe5a:	f7ff fb63 	bl	2f524 <z_spin_lock_valid>
   2fe5e:	b1d8      	cbz	r0, 2fe98 <z_impl_k_queue_get+0x60>
	z_spin_lock_set_owner(l);
   2fe60:	4628      	mov	r0, r5
   2fe62:	f7ff fb7f 	bl	2f564 <z_spin_lock_set_owner>
	return list->head;
   2fe66:	6820      	ldr	r0, [r4, #0]
	void *data;

	SYS_PORT_TRACING_OBJ_FUNC_ENTER(k_queue, get, queue, timeout);

	if (likely(!sys_sflist_is_empty(&queue->data_q))) {
   2fe68:	b378      	cbz	r0, 2feca <z_impl_k_queue_get+0x92>
	return (sys_sfnode_t *)(node->next_and_flags & ~SYS_SFLIST_FLAGS_MASK);
   2fe6a:	6803      	ldr	r3, [r0, #0]
   2fe6c:	f023 0303 	bic.w	r3, r3, #3
	list->head = node;
   2fe70:	6023      	str	r3, [r4, #0]
	return list->tail;
   2fe72:	6862      	ldr	r2, [r4, #4]
 *
 * @return A pointer to the first node of the list
 */
static inline sys_sfnode_t *sys_sflist_get_not_empty(sys_sflist_t *list);

Z_GENLIST_GET_NOT_EMPTY(sflist, sfnode)
   2fe74:	4290      	cmp	r0, r2
   2fe76:	d01b      	beq.n	2feb0 <z_impl_k_queue_get+0x78>
		sys_sfnode_t *node;

		node = sys_sflist_get_not_empty(&queue->data_q);
		data = z_queue_node_peek(node, true);
   2fe78:	2101      	movs	r1, #1
   2fe7a:	f00b f99c 	bl	3b1b6 <z_queue_node_peek>
   2fe7e:	4604      	mov	r4, r0
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   2fe80:	4628      	mov	r0, r5
   2fe82:	f7ff fb5f 	bl	2f544 <z_spin_unlock_valid>
   2fe86:	b1a8      	cbz	r0, 2feb4 <z_impl_k_queue_get+0x7c>
	__asm__ volatile(
   2fe88:	f388 8811 	msr	BASEPRI, r8
   2fe8c:	f3bf 8f6f 	isb	sy

	SYS_PORT_TRACING_OBJ_FUNC_EXIT(k_queue, get, queue, timeout,
		(ret != 0) ? NULL : _current->base.swap_data);

	return (ret != 0) ? NULL : _current->base.swap_data;
}
   2fe90:	4620      	mov	r0, r4
   2fe92:	b003      	add	sp, #12
   2fe94:	e8bd 83f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, pc}
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   2fe98:	f8df 9080 	ldr.w	r9, [pc, #128]	; 2ff1c <z_impl_k_queue_get+0xe4>
   2fe9c:	2281      	movs	r2, #129	; 0x81
   2fe9e:	4649      	mov	r1, r9
   2fea0:	481d      	ldr	r0, [pc, #116]	; (2ff18 <z_impl_k_queue_get+0xe0>)
   2fea2:	f003 fa82 	bl	333aa <printk>
   2fea6:	2181      	movs	r1, #129	; 0x81
   2fea8:	4648      	mov	r0, r9
   2feaa:	f003 fe17 	bl	33adc <assert_post_action>
   2feae:	e7d7      	b.n	2fe60 <z_impl_k_queue_get+0x28>
	list->tail = node;
   2feb0:	6063      	str	r3, [r4, #4]
}
   2feb2:	e7e1      	b.n	2fe78 <z_impl_k_queue_get+0x40>
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   2feb4:	4d19      	ldr	r5, [pc, #100]	; (2ff1c <z_impl_k_queue_get+0xe4>)
   2feb6:	22ac      	movs	r2, #172	; 0xac
   2feb8:	4629      	mov	r1, r5
   2feba:	4817      	ldr	r0, [pc, #92]	; (2ff18 <z_impl_k_queue_get+0xe0>)
   2febc:	f003 fa75 	bl	333aa <printk>
   2fec0:	21ac      	movs	r1, #172	; 0xac
   2fec2:	4628      	mov	r0, r5
   2fec4:	f003 fe0a 	bl	33adc <assert_post_action>
   2fec8:	e7de      	b.n	2fe88 <z_impl_k_queue_get+0x50>
	if (K_TIMEOUT_EQ(timeout, K_NO_WAIT)) {
   2feca:	ea56 0307 	orrs.w	r3, r6, r7
   2fece:	d00c      	beq.n	2feea <z_impl_k_queue_get+0xb2>
	int ret = z_pend_curr(&queue->lock, key, &queue->wait_q, timeout);
   2fed0:	e9cd 6700 	strd	r6, r7, [sp]
   2fed4:	f104 020c 	add.w	r2, r4, #12
   2fed8:	4641      	mov	r1, r8
   2feda:	4628      	mov	r0, r5
   2fedc:	f001 fb0c 	bl	314f8 <z_pend_curr>
	return (ret != 0) ? NULL : _current->base.swap_data;
   2fee0:	b9c0      	cbnz	r0, 2ff14 <z_impl_k_queue_get+0xdc>
   2fee2:	4b0f      	ldr	r3, [pc, #60]	; (2ff20 <z_impl_k_queue_get+0xe8>)
   2fee4:	689b      	ldr	r3, [r3, #8]
   2fee6:	695c      	ldr	r4, [r3, #20]
   2fee8:	e7d2      	b.n	2fe90 <z_impl_k_queue_get+0x58>
   2feea:	4628      	mov	r0, r5
   2feec:	f7ff fb2a 	bl	2f544 <z_spin_unlock_valid>
   2fef0:	b128      	cbz	r0, 2fefe <z_impl_k_queue_get+0xc6>
   2fef2:	f388 8811 	msr	BASEPRI, r8
   2fef6:	f3bf 8f6f 	isb	sy
		return NULL;
   2fefa:	2400      	movs	r4, #0
   2fefc:	e7c8      	b.n	2fe90 <z_impl_k_queue_get+0x58>
   2fefe:	4c07      	ldr	r4, [pc, #28]	; (2ff1c <z_impl_k_queue_get+0xe4>)
   2ff00:	22ac      	movs	r2, #172	; 0xac
   2ff02:	4621      	mov	r1, r4
   2ff04:	4804      	ldr	r0, [pc, #16]	; (2ff18 <z_impl_k_queue_get+0xe0>)
   2ff06:	f003 fa50 	bl	333aa <printk>
   2ff0a:	21ac      	movs	r1, #172	; 0xac
   2ff0c:	4620      	mov	r0, r4
   2ff0e:	f003 fde5 	bl	33adc <assert_post_action>
   2ff12:	e7ee      	b.n	2fef2 <z_impl_k_queue_get+0xba>
	return (ret != 0) ? NULL : _current->base.swap_data;
   2ff14:	2400      	movs	r4, #0
   2ff16:	e7bb      	b.n	2fe90 <z_impl_k_queue_get+0x58>
   2ff18:	0003bdac 	.word	0x0003bdac
   2ff1c:	0003bde8 	.word	0x0003bde8
   2ff20:	20003480 	.word	0x20003480

0002ff24 <z_impl_k_sem_give>:
	ARG_UNUSED(sem);
#endif
}

void z_impl_k_sem_give(struct k_sem *sem)
{
   2ff24:	b570      	push	{r4, r5, r6, lr}
   2ff26:	4604      	mov	r4, r0
	__asm__ volatile(
   2ff28:	f04f 0340 	mov.w	r3, #64	; 0x40
   2ff2c:	f3ef 8511 	mrs	r5, BASEPRI
   2ff30:	f383 8812 	msr	BASEPRI_MAX, r3
   2ff34:	f3bf 8f6f 	isb	sy
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   2ff38:	4817      	ldr	r0, [pc, #92]	; (2ff98 <z_impl_k_sem_give+0x74>)
   2ff3a:	f7ff faf3 	bl	2f524 <z_spin_lock_valid>
   2ff3e:	b180      	cbz	r0, 2ff62 <z_impl_k_sem_give+0x3e>
	z_spin_lock_set_owner(l);
   2ff40:	4815      	ldr	r0, [pc, #84]	; (2ff98 <z_impl_k_sem_give+0x74>)
   2ff42:	f7ff fb0f 	bl	2f564 <z_spin_lock_set_owner>
	k_spinlock_key_t key = k_spin_lock(&lock);
	struct k_thread *thread;

	SYS_PORT_TRACING_OBJ_FUNC_ENTER(k_sem, give, sem);

	thread = z_unpend_first_thread(&sem->wait_q);
   2ff46:	4620      	mov	r0, r4
   2ff48:	f001 fcc6 	bl	318d8 <z_unpend_first_thread>

	if (thread != NULL) {
   2ff4c:	b1a0      	cbz	r0, 2ff78 <z_impl_k_sem_give+0x54>
   2ff4e:	2200      	movs	r2, #0
   2ff50:	f8c0 20b0 	str.w	r2, [r0, #176]	; 0xb0
		arch_thread_return_value_set(thread, 0);
		z_ready_thread(thread);
   2ff54:	f001 f944 	bl	311e0 <z_ready_thread>
	} else {
		sem->count += (sem->count != sem->limit) ? 1U : 0U;
		handle_poll_events(sem);
	}

	z_reschedule(&lock, key);
   2ff58:	4629      	mov	r1, r5
   2ff5a:	480f      	ldr	r0, [pc, #60]	; (2ff98 <z_impl_k_sem_give+0x74>)
   2ff5c:	f000 fece 	bl	30cfc <z_reschedule>

	SYS_PORT_TRACING_OBJ_FUNC_EXIT(k_sem, give, sem);
}
   2ff60:	bd70      	pop	{r4, r5, r6, pc}
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   2ff62:	4e0e      	ldr	r6, [pc, #56]	; (2ff9c <z_impl_k_sem_give+0x78>)
   2ff64:	2281      	movs	r2, #129	; 0x81
   2ff66:	4631      	mov	r1, r6
   2ff68:	480d      	ldr	r0, [pc, #52]	; (2ffa0 <z_impl_k_sem_give+0x7c>)
   2ff6a:	f003 fa1e 	bl	333aa <printk>
   2ff6e:	2181      	movs	r1, #129	; 0x81
   2ff70:	4630      	mov	r0, r6
   2ff72:	f003 fdb3 	bl	33adc <assert_post_action>
   2ff76:	e7e3      	b.n	2ff40 <z_impl_k_sem_give+0x1c>
		sem->count += (sem->count != sem->limit) ? 1U : 0U;
   2ff78:	68a3      	ldr	r3, [r4, #8]
   2ff7a:	68e2      	ldr	r2, [r4, #12]
   2ff7c:	4293      	cmp	r3, r2
   2ff7e:	d008      	beq.n	2ff92 <z_impl_k_sem_give+0x6e>
   2ff80:	2201      	movs	r2, #1
   2ff82:	4413      	add	r3, r2
   2ff84:	60a3      	str	r3, [r4, #8]
	z_handle_obj_poll_events(&sem->poll_events, K_POLL_STATE_SEM_AVAILABLE);
   2ff86:	2102      	movs	r1, #2
   2ff88:	f104 0010 	add.w	r0, r4, #16
   2ff8c:	f00b fa71 	bl	3b472 <z_handle_obj_poll_events>
}
   2ff90:	e7e2      	b.n	2ff58 <z_impl_k_sem_give+0x34>
		sem->count += (sem->count != sem->limit) ? 1U : 0U;
   2ff92:	2200      	movs	r2, #0
   2ff94:	e7f5      	b.n	2ff82 <z_impl_k_sem_give+0x5e>
   2ff96:	bf00      	nop
   2ff98:	200034b4 	.word	0x200034b4
   2ff9c:	0003bde8 	.word	0x0003bde8
   2ffa0:	0003bdac 	.word	0x0003bdac

0002ffa4 <z_impl_k_sem_take>:
}
#include <syscalls/k_sem_give_mrsh.c>
#endif

int z_impl_k_sem_take(struct k_sem *sem, k_timeout_t timeout)
{
   2ffa4:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   2ffa8:	b082      	sub	sp, #8
   2ffaa:	4604      	mov	r4, r0
   2ffac:	4616      	mov	r6, r2
   2ffae:	461f      	mov	r7, r3
   2ffb0:	f3ef 8305 	mrs	r3, IPSR
	int ret = 0;

	__ASSERT(((arch_is_in_isr() == false) ||
   2ffb4:	b113      	cbz	r3, 2ffbc <z_impl_k_sem_take+0x18>
   2ffb6:	ea56 0307 	orrs.w	r3, r6, r7
   2ffba:	d11e      	bne.n	2fffa <z_impl_k_sem_take+0x56>
   2ffbc:	f04f 0340 	mov.w	r3, #64	; 0x40
   2ffc0:	f3ef 8511 	mrs	r5, BASEPRI
   2ffc4:	f383 8812 	msr	BASEPRI_MAX, r3
   2ffc8:	f3bf 8f6f 	isb	sy
   2ffcc:	482c      	ldr	r0, [pc, #176]	; (30080 <z_impl_k_sem_take+0xdc>)
   2ffce:	f7ff faa9 	bl	2f524 <z_spin_lock_valid>
   2ffd2:	b1e8      	cbz	r0, 30010 <z_impl_k_sem_take+0x6c>
	z_spin_lock_set_owner(l);
   2ffd4:	482a      	ldr	r0, [pc, #168]	; (30080 <z_impl_k_sem_take+0xdc>)
   2ffd6:	f7ff fac5 	bl	2f564 <z_spin_lock_set_owner>

	k_spinlock_key_t key = k_spin_lock(&lock);

	SYS_PORT_TRACING_OBJ_FUNC_ENTER(k_sem, take, sem, timeout);

	if (likely(sem->count > 0U)) {
   2ffda:	68a3      	ldr	r3, [r4, #8]
   2ffdc:	b37b      	cbz	r3, 3003e <z_impl_k_sem_take+0x9a>
		sem->count--;
   2ffde:	3b01      	subs	r3, #1
   2ffe0:	60a3      	str	r3, [r4, #8]
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   2ffe2:	4827      	ldr	r0, [pc, #156]	; (30080 <z_impl_k_sem_take+0xdc>)
   2ffe4:	f7ff faae 	bl	2f544 <z_spin_unlock_valid>
   2ffe8:	b1f0      	cbz	r0, 30028 <z_impl_k_sem_take+0x84>
	__asm__ volatile(
   2ffea:	f385 8811 	msr	BASEPRI, r5
   2ffee:	f3bf 8f6f 	isb	sy
		k_spin_unlock(&lock, key);
		ret = 0;
   2fff2:	2000      	movs	r0, #0

out:
	SYS_PORT_TRACING_OBJ_FUNC_EXIT(k_sem, take, sem, timeout, ret);

	return ret;
}
   2fff4:	b002      	add	sp, #8
   2fff6:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
	__ASSERT(((arch_is_in_isr() == false) ||
   2fffa:	4d22      	ldr	r5, [pc, #136]	; (30084 <z_impl_k_sem_take+0xe0>)
   2fffc:	2279      	movs	r2, #121	; 0x79
   2fffe:	4629      	mov	r1, r5
   30000:	4821      	ldr	r0, [pc, #132]	; (30088 <z_impl_k_sem_take+0xe4>)
   30002:	f003 f9d2 	bl	333aa <printk>
   30006:	2179      	movs	r1, #121	; 0x79
   30008:	4628      	mov	r0, r5
   3000a:	f003 fd67 	bl	33adc <assert_post_action>
   3000e:	e7d5      	b.n	2ffbc <z_impl_k_sem_take+0x18>
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   30010:	f8df 8078 	ldr.w	r8, [pc, #120]	; 3008c <z_impl_k_sem_take+0xe8>
   30014:	2281      	movs	r2, #129	; 0x81
   30016:	4641      	mov	r1, r8
   30018:	481b      	ldr	r0, [pc, #108]	; (30088 <z_impl_k_sem_take+0xe4>)
   3001a:	f003 f9c6 	bl	333aa <printk>
   3001e:	2181      	movs	r1, #129	; 0x81
   30020:	4640      	mov	r0, r8
   30022:	f003 fd5b 	bl	33adc <assert_post_action>
   30026:	e7d5      	b.n	2ffd4 <z_impl_k_sem_take+0x30>
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   30028:	4c18      	ldr	r4, [pc, #96]	; (3008c <z_impl_k_sem_take+0xe8>)
   3002a:	22ac      	movs	r2, #172	; 0xac
   3002c:	4621      	mov	r1, r4
   3002e:	4816      	ldr	r0, [pc, #88]	; (30088 <z_impl_k_sem_take+0xe4>)
   30030:	f003 f9bb 	bl	333aa <printk>
   30034:	21ac      	movs	r1, #172	; 0xac
   30036:	4620      	mov	r0, r4
   30038:	f003 fd50 	bl	33adc <assert_post_action>
   3003c:	e7d5      	b.n	2ffea <z_impl_k_sem_take+0x46>
	if (K_TIMEOUT_EQ(timeout, K_NO_WAIT)) {
   3003e:	ea56 0307 	orrs.w	r3, r6, r7
   30042:	d007      	beq.n	30054 <z_impl_k_sem_take+0xb0>
	ret = z_pend_curr(&lock, key, &sem->wait_q, timeout);
   30044:	e9cd 6700 	strd	r6, r7, [sp]
   30048:	4622      	mov	r2, r4
   3004a:	4629      	mov	r1, r5
   3004c:	480c      	ldr	r0, [pc, #48]	; (30080 <z_impl_k_sem_take+0xdc>)
   3004e:	f001 fa53 	bl	314f8 <z_pend_curr>
	return ret;
   30052:	e7cf      	b.n	2fff4 <z_impl_k_sem_take+0x50>
   30054:	480a      	ldr	r0, [pc, #40]	; (30080 <z_impl_k_sem_take+0xdc>)
   30056:	f7ff fa75 	bl	2f544 <z_spin_unlock_valid>
   3005a:	b130      	cbz	r0, 3006a <z_impl_k_sem_take+0xc6>
   3005c:	f385 8811 	msr	BASEPRI, r5
   30060:	f3bf 8f6f 	isb	sy
		ret = -EBUSY;
   30064:	f06f 000f 	mvn.w	r0, #15
   30068:	e7c4      	b.n	2fff4 <z_impl_k_sem_take+0x50>
   3006a:	4c08      	ldr	r4, [pc, #32]	; (3008c <z_impl_k_sem_take+0xe8>)
   3006c:	22ac      	movs	r2, #172	; 0xac
   3006e:	4621      	mov	r1, r4
   30070:	4805      	ldr	r0, [pc, #20]	; (30088 <z_impl_k_sem_take+0xe4>)
   30072:	f003 f99a 	bl	333aa <printk>
   30076:	21ac      	movs	r1, #172	; 0xac
   30078:	4620      	mov	r0, r4
   3007a:	f003 fd2f 	bl	33adc <assert_post_action>
   3007e:	e7ed      	b.n	3005c <z_impl_k_sem_take+0xb8>
   30080:	200034b4 	.word	0x200034b4
   30084:	0003fa08 	.word	0x0003fa08
   30088:	0003bdac 	.word	0x0003bdac
   3008c:	0003bde8 	.word	0x0003bde8

00030090 <z_impl_k_sem_reset>:

void z_impl_k_sem_reset(struct k_sem *sem)
{
   30090:	b570      	push	{r4, r5, r6, lr}
   30092:	4604      	mov	r4, r0
	__asm__ volatile(
   30094:	f04f 0340 	mov.w	r3, #64	; 0x40
   30098:	f3ef 8511 	mrs	r5, BASEPRI
   3009c:	f383 8812 	msr	BASEPRI_MAX, r3
   300a0:	f3bf 8f6f 	isb	sy
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   300a4:	4814      	ldr	r0, [pc, #80]	; (300f8 <z_impl_k_sem_reset+0x68>)
   300a6:	f7ff fa3d 	bl	2f524 <z_spin_lock_valid>
   300aa:	b168      	cbz	r0, 300c8 <z_impl_k_sem_reset+0x38>
	z_spin_lock_set_owner(l);
   300ac:	4812      	ldr	r0, [pc, #72]	; (300f8 <z_impl_k_sem_reset+0x68>)
   300ae:	f7ff fa59 	bl	2f564 <z_spin_lock_set_owner>
	struct k_thread *thread;
	k_spinlock_key_t key = k_spin_lock(&lock);

	while (true) {
		thread = z_unpend_first_thread(&sem->wait_q);
   300b2:	4620      	mov	r0, r4
   300b4:	f001 fc10 	bl	318d8 <z_unpend_first_thread>
		if (thread == NULL) {
   300b8:	b188      	cbz	r0, 300de <z_impl_k_sem_reset+0x4e>
   300ba:	f06f 020a 	mvn.w	r2, #10
   300be:	f8c0 20b0 	str.w	r2, [r0, #176]	; 0xb0
			break;
		}
		arch_thread_return_value_set(thread, -EAGAIN);
		z_ready_thread(thread);
   300c2:	f001 f88d 	bl	311e0 <z_ready_thread>
		thread = z_unpend_first_thread(&sem->wait_q);
   300c6:	e7f4      	b.n	300b2 <z_impl_k_sem_reset+0x22>
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   300c8:	4e0c      	ldr	r6, [pc, #48]	; (300fc <z_impl_k_sem_reset+0x6c>)
   300ca:	2281      	movs	r2, #129	; 0x81
   300cc:	4631      	mov	r1, r6
   300ce:	480c      	ldr	r0, [pc, #48]	; (30100 <z_impl_k_sem_reset+0x70>)
   300d0:	f003 f96b 	bl	333aa <printk>
   300d4:	2181      	movs	r1, #129	; 0x81
   300d6:	4630      	mov	r0, r6
   300d8:	f003 fd00 	bl	33adc <assert_post_action>
   300dc:	e7e6      	b.n	300ac <z_impl_k_sem_reset+0x1c>
	}
	sem->count = 0;
   300de:	2300      	movs	r3, #0
   300e0:	60a3      	str	r3, [r4, #8]
	z_handle_obj_poll_events(&sem->poll_events, K_POLL_STATE_SEM_AVAILABLE);
   300e2:	2102      	movs	r1, #2
   300e4:	f104 0010 	add.w	r0, r4, #16
   300e8:	f00b f9c3 	bl	3b472 <z_handle_obj_poll_events>

	SYS_PORT_TRACING_OBJ_FUNC(k_sem, reset, sem);

	handle_poll_events(sem);

	z_reschedule(&lock, key);
   300ec:	4629      	mov	r1, r5
   300ee:	4802      	ldr	r0, [pc, #8]	; (300f8 <z_impl_k_sem_reset+0x68>)
   300f0:	f000 fe04 	bl	30cfc <z_reschedule>
}
   300f4:	bd70      	pop	{r4, r5, r6, pc}
   300f6:	bf00      	nop
   300f8:	200034b4 	.word	0x200034b4
   300fc:	0003bde8 	.word	0x0003bde8
   30100:	0003bdac 	.word	0x0003bdac

00030104 <k_sys_work_q_init>:
			     CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE);

struct k_work_q k_sys_work_q;

static int k_sys_work_q_init(const struct device *dev)
{
   30104:	b510      	push	{r4, lr}
   30106:	b084      	sub	sp, #16
	ARG_UNUSED(dev);
	struct k_work_queue_config cfg = {
   30108:	4b08      	ldr	r3, [pc, #32]	; (3012c <k_sys_work_q_init+0x28>)
   3010a:	9302      	str	r3, [sp, #8]
   3010c:	2400      	movs	r4, #0
   3010e:	f88d 400c 	strb.w	r4, [sp, #12]
		.name = "sysworkq",
		.no_yield = IS_ENABLED(CONFIG_SYSTEM_WORKQUEUE_NO_YIELD),
	};

	k_work_queue_start(&k_sys_work_q,
   30112:	ab02      	add	r3, sp, #8
   30114:	9300      	str	r3, [sp, #0]
   30116:	f04f 33ff 	mov.w	r3, #4294967295
   3011a:	f44f 5280 	mov.w	r2, #4096	; 0x1000
   3011e:	4904      	ldr	r1, [pc, #16]	; (30130 <k_sys_work_q_init+0x2c>)
   30120:	4804      	ldr	r0, [pc, #16]	; (30134 <k_sys_work_q_init+0x30>)
   30122:	f000 faad 	bl	30680 <k_work_queue_start>
			    sys_work_q_stack,
			    K_KERNEL_STACK_SIZEOF(sys_work_q_stack),
			    CONFIG_SYSTEM_WORKQUEUE_PRIORITY, &cfg);
	return 0;
}
   30126:	4620      	mov	r0, r4
   30128:	b004      	add	sp, #16
   3012a:	bd10      	pop	{r4, pc}
   3012c:	0003fa28 	.word	0x0003fa28
   30130:	20005e60 	.word	0x20005e60
   30134:	20002010 	.word	0x20002010

00030138 <submit_to_queue_locked>:
 * @retval -EINVAL if no queue is provided
 * @retval -ENODEV if the queue is not started
 */
static int submit_to_queue_locked(struct k_work *work,
				  struct k_work_q **queuep)
{
   30138:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
   3013a:	460d      	mov	r5, r1
	return (*flagp & BIT(bit)) != 0U;
   3013c:	68c3      	ldr	r3, [r0, #12]
	int ret = 0;

	if (flag_test(&work->flags, K_WORK_CANCELING_BIT)) {
   3013e:	f013 0f02 	tst.w	r3, #2
   30142:	d16d      	bne.n	30220 <submit_to_queue_locked+0xe8>
   30144:	4604      	mov	r4, r0
		/* Disallowed */
		ret = -EBUSY;
	} else if (!flag_test(&work->flags, K_WORK_QUEUED_BIT)) {
   30146:	f013 0f04 	tst.w	r3, #4
   3014a:	d16e      	bne.n	3022a <submit_to_queue_locked+0xf2>
		/* Not currently queued */
		ret = 1;

		/* If no queue specified resubmit to last queue.
		 */
		if (*queuep == NULL) {
   3014c:	680b      	ldr	r3, [r1, #0]
   3014e:	2b00      	cmp	r3, #0
   30150:	d03c      	beq.n	301cc <submit_to_queue_locked+0x94>
	return (*flagp & BIT(bit)) != 0U;
   30152:	68e3      	ldr	r3, [r4, #12]

		/* If the work is currently running we have to use the
		 * queue it's running on to prevent handler
		 * re-entrancy.
		 */
		if (flag_test(&work->flags, K_WORK_RUNNING_BIT)) {
   30154:	f013 0f01 	tst.w	r3, #1
   30158:	d048      	beq.n	301ec <submit_to_queue_locked+0xb4>
			__ASSERT_NO_MSG(work->queue != NULL);
   3015a:	68a3      	ldr	r3, [r4, #8]
   3015c:	2b00      	cmp	r3, #0
   3015e:	d038      	beq.n	301d2 <submit_to_queue_locked+0x9a>
			*queuep = work->queue;
   30160:	68a3      	ldr	r3, [r4, #8]
   30162:	602b      	str	r3, [r5, #0]
			ret = 2;
   30164:	2702      	movs	r7, #2
		}

		int rc = queue_submit_locked(*queuep, work);
   30166:	682e      	ldr	r6, [r5, #0]
	if (queue == NULL) {
   30168:	2e00      	cmp	r6, #0
   3016a:	d04d      	beq.n	30208 <submit_to_queue_locked+0xd0>
	bool chained = (_current == &queue->thread) && !k_is_in_isr();
   3016c:	4b30      	ldr	r3, [pc, #192]	; (30230 <submit_to_queue_locked+0xf8>)
   3016e:	689b      	ldr	r3, [r3, #8]
   30170:	42b3      	cmp	r3, r6
   30172:	d03d      	beq.n	301f0 <submit_to_queue_locked+0xb8>
   30174:	2300      	movs	r3, #0
   30176:	461a      	mov	r2, r3
	return (*flagp & BIT(bit)) != 0U;
   30178:	f8d6 30d0 	ldr.w	r3, [r6, #208]	; 0xd0
   3017c:	f3c3 0180 	ubfx	r1, r3, #2, #1
   30180:	f3c3 00c0 	ubfx	r0, r3, #3, #1
	if (!flag_test(&queue->flags, K_WORK_QUEUE_STARTED_BIT)) {
   30184:	f013 0f01 	tst.w	r3, #1
   30188:	d041      	beq.n	3020e <submit_to_queue_locked+0xd6>
	} else if (draining && !chained) {
   3018a:	b109      	cbz	r1, 30190 <submit_to_queue_locked+0x58>
   3018c:	2a00      	cmp	r2, #0
   3018e:	d041      	beq.n	30214 <submit_to_queue_locked+0xdc>
	} else if (plugged && !draining) {
   30190:	b108      	cbz	r0, 30196 <submit_to_queue_locked+0x5e>
   30192:	2900      	cmp	r1, #0
   30194:	d041      	beq.n	3021a <submit_to_queue_locked+0xe2>
	parent->next = child;
   30196:	2300      	movs	r3, #0
   30198:	6023      	str	r3, [r4, #0]
	return list->tail;
   3019a:	f8d6 30bc 	ldr.w	r3, [r6, #188]	; 0xbc
Z_GENLIST_APPEND(slist, snode)
   3019e:	b373      	cbz	r3, 301fe <submit_to_queue_locked+0xc6>
	parent->next = child;
   301a0:	601c      	str	r4, [r3, #0]
	list->tail = node;
   301a2:	f8c6 40bc 	str.w	r4, [r6, #188]	; 0xbc
		rv = z_sched_wake(&queue->notifyq, 0, NULL);
   301a6:	2200      	movs	r2, #0
   301a8:	4611      	mov	r1, r2
   301aa:	f106 00c0 	add.w	r0, r6, #192	; 0xc0
   301ae:	f001 fdfb 	bl	31da8 <z_sched_wake>
		ret = 1;
   301b2:	2001      	movs	r0, #1

		if (rc < 0) {
   301b4:	2800      	cmp	r0, #0
   301b6:	db06      	blt.n	301c6 <submit_to_queue_locked+0x8e>
	*flagp |= BIT(bit);
   301b8:	68e3      	ldr	r3, [r4, #12]
   301ba:	f043 0304 	orr.w	r3, r3, #4
   301be:	60e3      	str	r3, [r4, #12]
			ret = rc;
		} else {
			flag_set(&work->flags, K_WORK_QUEUED_BIT);
			work->queue = *queuep;
   301c0:	682b      	ldr	r3, [r5, #0]
   301c2:	60a3      	str	r3, [r4, #8]
   301c4:	4638      	mov	r0, r7
		}
	} else {
		/* Already queued, do nothing. */
	}

	if (ret <= 0) {
   301c6:	2800      	cmp	r0, #0
   301c8:	dc2e      	bgt.n	30228 <submit_to_queue_locked+0xf0>
   301ca:	e02b      	b.n	30224 <submit_to_queue_locked+0xec>
			*queuep = work->queue;
   301cc:	6883      	ldr	r3, [r0, #8]
   301ce:	600b      	str	r3, [r1, #0]
   301d0:	e7bf      	b.n	30152 <submit_to_queue_locked+0x1a>
			__ASSERT_NO_MSG(work->queue != NULL);
   301d2:	4e18      	ldr	r6, [pc, #96]	; (30234 <submit_to_queue_locked+0xfc>)
   301d4:	f44f 72a7 	mov.w	r2, #334	; 0x14e
   301d8:	4631      	mov	r1, r6
   301da:	4817      	ldr	r0, [pc, #92]	; (30238 <submit_to_queue_locked+0x100>)
   301dc:	f003 f8e5 	bl	333aa <printk>
   301e0:	f44f 71a7 	mov.w	r1, #334	; 0x14e
   301e4:	4630      	mov	r0, r6
   301e6:	f003 fc79 	bl	33adc <assert_post_action>
   301ea:	e7b9      	b.n	30160 <submit_to_queue_locked+0x28>
		ret = 1;
   301ec:	2701      	movs	r7, #1
   301ee:	e7ba      	b.n	30166 <submit_to_queue_locked+0x2e>
	bool chained = (_current == &queue->thread) && !k_is_in_isr();
   301f0:	f00a ff9f 	bl	3b132 <k_is_in_isr>
   301f4:	b908      	cbnz	r0, 301fa <submit_to_queue_locked+0xc2>
   301f6:	2301      	movs	r3, #1
   301f8:	e7bd      	b.n	30176 <submit_to_queue_locked+0x3e>
   301fa:	2300      	movs	r3, #0
   301fc:	e7bb      	b.n	30176 <submit_to_queue_locked+0x3e>
   301fe:	f8c6 40bc 	str.w	r4, [r6, #188]	; 0xbc
	list->head = node;
   30202:	f8c6 40b8 	str.w	r4, [r6, #184]	; 0xb8
}
   30206:	e7ce      	b.n	301a6 <submit_to_queue_locked+0x6e>
		return -EINVAL;
   30208:	f06f 0015 	mvn.w	r0, #21
   3020c:	e7d2      	b.n	301b4 <submit_to_queue_locked+0x7c>
		ret = -ENODEV;
   3020e:	f06f 0012 	mvn.w	r0, #18
   30212:	e7cf      	b.n	301b4 <submit_to_queue_locked+0x7c>
		ret = -EBUSY;
   30214:	f06f 000f 	mvn.w	r0, #15
   30218:	e7cc      	b.n	301b4 <submit_to_queue_locked+0x7c>
		ret = -EBUSY;
   3021a:	f06f 000f 	mvn.w	r0, #15
   3021e:	e7c9      	b.n	301b4 <submit_to_queue_locked+0x7c>
		ret = -EBUSY;
   30220:	f06f 000f 	mvn.w	r0, #15
		*queuep = NULL;
   30224:	2300      	movs	r3, #0
   30226:	602b      	str	r3, [r5, #0]
	}

	return ret;
}
   30228:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
	int ret = 0;
   3022a:	2000      	movs	r0, #0
   3022c:	e7fa      	b.n	30224 <submit_to_queue_locked+0xec>
   3022e:	bf00      	nop
   30230:	20003480 	.word	0x20003480
   30234:	0003fa34 	.word	0x0003fa34
   30238:	0003bdac 	.word	0x0003bdac

0003023c <work_timeout>:
 * Invoked by timeout infrastructure.
 * Takes and releases work lock.
 * Conditionally reschedules.
 */
static void work_timeout(struct _timeout *to)
{
   3023c:	b5f0      	push	{r4, r5, r6, r7, lr}
   3023e:	b083      	sub	sp, #12
   30240:	4604      	mov	r4, r0
	struct k_work_delayable *dw
		= CONTAINER_OF(to, struct k_work_delayable, timeout);
	struct k_work *wp = &dw->work;
   30242:	f1a0 0610 	sub.w	r6, r0, #16
   30246:	f04f 0340 	mov.w	r3, #64	; 0x40
   3024a:	f3ef 8511 	mrs	r5, BASEPRI
   3024e:	f383 8812 	msr	BASEPRI_MAX, r3
   30252:	f3bf 8f6f 	isb	sy
   30256:	481c      	ldr	r0, [pc, #112]	; (302c8 <work_timeout+0x8c>)
   30258:	f7ff f964 	bl	2f524 <z_spin_lock_valid>
   3025c:	b1b8      	cbz	r0, 3028e <work_timeout+0x52>
	z_spin_lock_set_owner(l);
   3025e:	481a      	ldr	r0, [pc, #104]	; (302c8 <work_timeout+0x8c>)
   30260:	f7ff f980 	bl	2f564 <z_spin_lock_set_owner>
	k_spinlock_key_t key = k_spin_lock(&lock);
	struct k_work_q *queue = NULL;
   30264:	2300      	movs	r3, #0
   30266:	9301      	str	r3, [sp, #4]
	return (*flagp & BIT(bit)) != 0U;
   30268:	f854 3c04 	ldr.w	r3, [r4, #-4]
	*flagp &= ~BIT(bit);
   3026c:	f023 0208 	bic.w	r2, r3, #8
   30270:	f844 2c04 	str.w	r2, [r4, #-4]
	 * notified of new work at the next reschedule point.
	 *
	 * If not successful there is no notification that the work has been
	 * abandoned.  Sorry.
	 */
	if (flag_test_and_clear(&wp->flags, K_WORK_DELAYED_BIT)) {
   30274:	f013 0f08 	tst.w	r3, #8
   30278:	d114      	bne.n	302a4 <work_timeout+0x68>
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   3027a:	4813      	ldr	r0, [pc, #76]	; (302c8 <work_timeout+0x8c>)
   3027c:	f7ff f962 	bl	2f544 <z_spin_unlock_valid>
   30280:	b1b8      	cbz	r0, 302b2 <work_timeout+0x76>
	__asm__ volatile(
   30282:	f385 8811 	msr	BASEPRI, r5
   30286:	f3bf 8f6f 	isb	sy
		queue = dw->queue;
		(void)submit_to_queue_locked(wp, &queue);
	}

	k_spin_unlock(&lock, key);
}
   3028a:	b003      	add	sp, #12
   3028c:	bdf0      	pop	{r4, r5, r6, r7, pc}
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   3028e:	4f0f      	ldr	r7, [pc, #60]	; (302cc <work_timeout+0x90>)
   30290:	2281      	movs	r2, #129	; 0x81
   30292:	4639      	mov	r1, r7
   30294:	480e      	ldr	r0, [pc, #56]	; (302d0 <work_timeout+0x94>)
   30296:	f003 f888 	bl	333aa <printk>
   3029a:	2181      	movs	r1, #129	; 0x81
   3029c:	4638      	mov	r0, r7
   3029e:	f003 fc1d 	bl	33adc <assert_post_action>
   302a2:	e7dc      	b.n	3025e <work_timeout+0x22>
		queue = dw->queue;
   302a4:	69a3      	ldr	r3, [r4, #24]
   302a6:	9301      	str	r3, [sp, #4]
		(void)submit_to_queue_locked(wp, &queue);
   302a8:	a901      	add	r1, sp, #4
   302aa:	4630      	mov	r0, r6
   302ac:	f7ff ff44 	bl	30138 <submit_to_queue_locked>
   302b0:	e7e3      	b.n	3027a <work_timeout+0x3e>
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   302b2:	4c06      	ldr	r4, [pc, #24]	; (302cc <work_timeout+0x90>)
   302b4:	22ac      	movs	r2, #172	; 0xac
   302b6:	4621      	mov	r1, r4
   302b8:	4805      	ldr	r0, [pc, #20]	; (302d0 <work_timeout+0x94>)
   302ba:	f003 f876 	bl	333aa <printk>
   302be:	21ac      	movs	r1, #172	; 0xac
   302c0:	4620      	mov	r0, r4
   302c2:	f003 fc0b 	bl	33adc <assert_post_action>
   302c6:	e7dc      	b.n	30282 <work_timeout+0x46>
   302c8:	200034b8 	.word	0x200034b8
   302cc:	0003bde8 	.word	0x0003bde8
   302d0:	0003bdac 	.word	0x0003bdac

000302d4 <finalize_cancel_locked>:
{
   302d4:	b570      	push	{r4, r5, r6, lr}
   302d6:	4605      	mov	r5, r0
	*flagp &= ~BIT(bit);
   302d8:	68c3      	ldr	r3, [r0, #12]
   302da:	f023 0302 	bic.w	r3, r3, #2
   302de:	60c3      	str	r3, [r0, #12]
	return list->head;
   302e0:	4b19      	ldr	r3, [pc, #100]	; (30348 <finalize_cancel_locked+0x74>)
   302e2:	6818      	ldr	r0, [r3, #0]
	SYS_SLIST_FOR_EACH_CONTAINER_SAFE(&pending_cancels, wc, tmp, node) {
   302e4:	b1e8      	cbz	r0, 30322 <finalize_cancel_locked+0x4e>
   302e6:	4604      	mov	r4, r0
Z_GENLIST_PEEK_NEXT(slist, snode)
   302e8:	b100      	cbz	r0, 302ec <finalize_cancel_locked+0x18>
	return node->next;
   302ea:	6804      	ldr	r4, [r0, #0]
   302ec:	2600      	movs	r6, #0
   302ee:	e01d      	b.n	3032c <finalize_cancel_locked+0x58>
Z_GENLIST_REMOVE(slist, snode)
   302f0:	b15e      	cbz	r6, 3030a <finalize_cancel_locked+0x36>
	return node->next;
   302f2:	6803      	ldr	r3, [r0, #0]
	parent->next = child;
   302f4:	6033      	str	r3, [r6, #0]
	return list->tail;
   302f6:	4b14      	ldr	r3, [pc, #80]	; (30348 <finalize_cancel_locked+0x74>)
   302f8:	685b      	ldr	r3, [r3, #4]
Z_GENLIST_REMOVE(slist, snode)
   302fa:	4298      	cmp	r0, r3
   302fc:	d00e      	beq.n	3031c <finalize_cancel_locked+0x48>
	parent->next = child;
   302fe:	2300      	movs	r3, #0
   30300:	f840 3b08 	str.w	r3, [r0], #8
	z_impl_k_sem_give(sem);
   30304:	f7ff fe0e 	bl	2ff24 <z_impl_k_sem_give>
}
   30308:	e015      	b.n	30336 <finalize_cancel_locked+0x62>
	return node->next;
   3030a:	6802      	ldr	r2, [r0, #0]
	list->head = node;
   3030c:	4b0e      	ldr	r3, [pc, #56]	; (30348 <finalize_cancel_locked+0x74>)
   3030e:	601a      	str	r2, [r3, #0]
	return list->tail;
   30310:	685b      	ldr	r3, [r3, #4]
Z_GENLIST_REMOVE(slist, snode)
   30312:	4298      	cmp	r0, r3
   30314:	d1f3      	bne.n	302fe <finalize_cancel_locked+0x2a>
	list->tail = node;
   30316:	4b0c      	ldr	r3, [pc, #48]	; (30348 <finalize_cancel_locked+0x74>)
   30318:	605a      	str	r2, [r3, #4]
}
   3031a:	e7f0      	b.n	302fe <finalize_cancel_locked+0x2a>
	list->tail = node;
   3031c:	4b0a      	ldr	r3, [pc, #40]	; (30348 <finalize_cancel_locked+0x74>)
   3031e:	605e      	str	r6, [r3, #4]
}
   30320:	e7ed      	b.n	302fe <finalize_cancel_locked+0x2a>
   30322:	4604      	mov	r4, r0
   30324:	e7e2      	b.n	302ec <finalize_cancel_locked+0x18>
   30326:	4623      	mov	r3, r4
   30328:	4620      	mov	r0, r4
   3032a:	461c      	mov	r4, r3
   3032c:	b150      	cbz	r0, 30344 <finalize_cancel_locked+0x70>
		if (wc->work == work) {
   3032e:	6843      	ldr	r3, [r0, #4]
   30330:	42ab      	cmp	r3, r5
   30332:	d0dd      	beq.n	302f0 <finalize_cancel_locked+0x1c>
			prev = &wc->node;
   30334:	4606      	mov	r6, r0
	SYS_SLIST_FOR_EACH_CONTAINER_SAFE(&pending_cancels, wc, tmp, node) {
   30336:	2c00      	cmp	r4, #0
   30338:	d0f5      	beq.n	30326 <finalize_cancel_locked+0x52>
   3033a:	4623      	mov	r3, r4
Z_GENLIST_PEEK_NEXT(slist, snode)
   3033c:	2c00      	cmp	r4, #0
   3033e:	d0f3      	beq.n	30328 <finalize_cancel_locked+0x54>
	return node->next;
   30340:	6823      	ldr	r3, [r4, #0]
   30342:	e7f1      	b.n	30328 <finalize_cancel_locked+0x54>
}
   30344:	bd70      	pop	{r4, r5, r6, pc}
   30346:	bf00      	nop
   30348:	200034bc 	.word	0x200034bc

0003034c <cancel_sync_locked>:
{
   3034c:	b570      	push	{r4, r5, r6, lr}
	return (*flagp & BIT(bit)) != 0U;
   3034e:	68c5      	ldr	r5, [r0, #12]
   30350:	f015 0f02 	tst.w	r5, #2
   30354:	f3c5 0540 	ubfx	r5, r5, #1, #1
	if (ret) {
   30358:	d101      	bne.n	3035e <cancel_sync_locked+0x12>
}
   3035a:	4628      	mov	r0, r5
   3035c:	bd70      	pop	{r4, r5, r6, pc}
   3035e:	4604      	mov	r4, r0
   30360:	460e      	mov	r6, r1
	k_sem_init(&canceler->sem, 0, 1);
   30362:	f101 0008 	add.w	r0, r1, #8
	return z_impl_k_sem_init(sem, initial_count, limit);
   30366:	2201      	movs	r2, #1
   30368:	2100      	movs	r1, #0
   3036a:	f00a ff57 	bl	3b21c <z_impl_k_sem_init>
	canceler->work = work;
   3036e:	6074      	str	r4, [r6, #4]
	parent->next = child;
   30370:	2300      	movs	r3, #0
   30372:	6033      	str	r3, [r6, #0]
	return list->tail;
   30374:	4b05      	ldr	r3, [pc, #20]	; (3038c <cancel_sync_locked+0x40>)
   30376:	685b      	ldr	r3, [r3, #4]
Z_GENLIST_APPEND(slist, snode)
   30378:	b11b      	cbz	r3, 30382 <cancel_sync_locked+0x36>
	parent->next = child;
   3037a:	601e      	str	r6, [r3, #0]
	list->tail = node;
   3037c:	4b03      	ldr	r3, [pc, #12]	; (3038c <cancel_sync_locked+0x40>)
   3037e:	605e      	str	r6, [r3, #4]
}
   30380:	e7eb      	b.n	3035a <cancel_sync_locked+0xe>
   30382:	4b02      	ldr	r3, [pc, #8]	; (3038c <cancel_sync_locked+0x40>)
   30384:	605e      	str	r6, [r3, #4]
	list->head = node;
   30386:	601e      	str	r6, [r3, #0]
}
   30388:	e7e7      	b.n	3035a <cancel_sync_locked+0xe>
   3038a:	bf00      	nop
   3038c:	200034bc 	.word	0x200034bc

00030390 <work_queue_main>:
{
   30390:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   30394:	b084      	sub	sp, #16
   30396:	4605      	mov	r5, r0
	struct k_work_q *queue = (struct k_work_q *)workq_ptr;
   30398:	e021      	b.n	303de <work_queue_main+0x4e>
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   3039a:	4c63      	ldr	r4, [pc, #396]	; (30528 <work_queue_main+0x198>)
   3039c:	2281      	movs	r2, #129	; 0x81
   3039e:	4621      	mov	r1, r4
   303a0:	4862      	ldr	r0, [pc, #392]	; (3052c <work_queue_main+0x19c>)
   303a2:	f003 f802 	bl	333aa <printk>
   303a6:	2181      	movs	r1, #129	; 0x81
   303a8:	4620      	mov	r0, r4
   303aa:	f003 fb97 	bl	33adc <assert_post_action>
   303ae:	e023      	b.n	303f8 <work_queue_main+0x68>
	return (*flagp & BIT(bit)) != 0U;
   303b0:	f8d5 30d0 	ldr.w	r3, [r5, #208]	; 0xd0
	*flagp &= ~BIT(bit);
   303b4:	f023 0204 	bic.w	r2, r3, #4
   303b8:	f8c5 20d0 	str.w	r2, [r5, #208]	; 0xd0
		} else if (flag_test_and_clear(&queue->flags,
   303bc:	f013 0f04 	tst.w	r3, #4
   303c0:	d174      	bne.n	304ac <work_queue_main+0x11c>
			(void)z_sched_wait(&lock, key, &queue->notifyq,
   303c2:	2300      	movs	r3, #0
   303c4:	9302      	str	r3, [sp, #8]
   303c6:	f04f 32ff 	mov.w	r2, #4294967295
   303ca:	f04f 33ff 	mov.w	r3, #4294967295
   303ce:	e9cd 2300 	strd	r2, r3, [sp]
   303d2:	f105 02c0 	add.w	r2, r5, #192	; 0xc0
   303d6:	4631      	mov	r1, r6
   303d8:	4855      	ldr	r0, [pc, #340]	; (30530 <work_queue_main+0x1a0>)
   303da:	f001 fd47 	bl	31e6c <z_sched_wait>
	__asm__ volatile(
   303de:	f04f 0340 	mov.w	r3, #64	; 0x40
   303e2:	f3ef 8611 	mrs	r6, BASEPRI
   303e6:	f383 8812 	msr	BASEPRI_MAX, r3
   303ea:	f3bf 8f6f 	isb	sy
   303ee:	4850      	ldr	r0, [pc, #320]	; (30530 <work_queue_main+0x1a0>)
   303f0:	f7ff f898 	bl	2f524 <z_spin_lock_valid>
   303f4:	2800      	cmp	r0, #0
   303f6:	d0d0      	beq.n	3039a <work_queue_main+0xa>
	z_spin_lock_set_owner(l);
   303f8:	484d      	ldr	r0, [pc, #308]	; (30530 <work_queue_main+0x1a0>)
   303fa:	f7ff f8b3 	bl	2f564 <z_spin_lock_set_owner>
	return list->head;
   303fe:	f8d5 40b8 	ldr.w	r4, [r5, #184]	; 0xb8
Z_GENLIST_GET(slist, snode)
   30402:	2c00      	cmp	r4, #0
   30404:	d0d4      	beq.n	303b0 <work_queue_main+0x20>
	return node->next;
   30406:	6823      	ldr	r3, [r4, #0]
	list->head = node;
   30408:	f8c5 30b8 	str.w	r3, [r5, #184]	; 0xb8
	return list->tail;
   3040c:	f8d5 20bc 	ldr.w	r2, [r5, #188]	; 0xbc
Z_GENLIST_GET_NOT_EMPTY(slist, snode)
   30410:	4294      	cmp	r4, r2
   30412:	d048      	beq.n	304a6 <work_queue_main+0x116>
	*flagp |= BIT(bit);
   30414:	f8d5 30d0 	ldr.w	r3, [r5, #208]	; 0xd0
   30418:	f043 0302 	orr.w	r3, r3, #2
   3041c:	f8c5 30d0 	str.w	r3, [r5, #208]	; 0xd0
   30420:	68e3      	ldr	r3, [r4, #12]
   30422:	f043 0301 	orr.w	r3, r3, #1
	*flagp &= ~BIT(bit);
   30426:	f023 0304 	bic.w	r3, r3, #4
   3042a:	60e3      	str	r3, [r4, #12]
			handler = work->handler;
   3042c:	6867      	ldr	r7, [r4, #4]
		if (work == NULL) {
   3042e:	2c00      	cmp	r4, #0
   30430:	d0c7      	beq.n	303c2 <work_queue_main+0x32>
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   30432:	483f      	ldr	r0, [pc, #252]	; (30530 <work_queue_main+0x1a0>)
   30434:	f7ff f886 	bl	2f544 <z_spin_unlock_valid>
   30438:	2800      	cmp	r0, #0
   3043a:	d042      	beq.n	304c2 <work_queue_main+0x132>
	__asm__ volatile(
   3043c:	f386 8811 	msr	BASEPRI, r6
   30440:	f3bf 8f6f 	isb	sy
			__ASSERT_NO_MSG(handler != NULL);
   30444:	2f00      	cmp	r7, #0
   30446:	d048      	beq.n	304da <work_queue_main+0x14a>
			handler(work);
   30448:	4620      	mov	r0, r4
   3044a:	47b8      	blx	r7
	__asm__ volatile(
   3044c:	f04f 0340 	mov.w	r3, #64	; 0x40
   30450:	f3ef 8611 	mrs	r6, BASEPRI
   30454:	f383 8812 	msr	BASEPRI_MAX, r3
   30458:	f3bf 8f6f 	isb	sy
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   3045c:	4834      	ldr	r0, [pc, #208]	; (30530 <work_queue_main+0x1a0>)
   3045e:	f7ff f861 	bl	2f524 <z_spin_lock_valid>
   30462:	2800      	cmp	r0, #0
   30464:	d046      	beq.n	304f4 <work_queue_main+0x164>
	z_spin_lock_set_owner(l);
   30466:	4832      	ldr	r0, [pc, #200]	; (30530 <work_queue_main+0x1a0>)
   30468:	f7ff f87c 	bl	2f564 <z_spin_lock_set_owner>
	*flagp &= ~BIT(bit);
   3046c:	68e3      	ldr	r3, [r4, #12]
   3046e:	f023 0301 	bic.w	r3, r3, #1
   30472:	60e3      	str	r3, [r4, #12]
			if (flag_test(&work->flags, K_WORK_CANCELING_BIT)) {
   30474:	f013 0f02 	tst.w	r3, #2
   30478:	d147      	bne.n	3050a <work_queue_main+0x17a>
	*flagp &= ~BIT(bit);
   3047a:	f8d5 30d0 	ldr.w	r3, [r5, #208]	; 0xd0
   3047e:	f023 0302 	bic.w	r3, r3, #2
   30482:	f8c5 30d0 	str.w	r3, [r5, #208]	; 0xd0
	return (*flagp & BIT(bit)) != 0U;
   30486:	f3c3 2400 	ubfx	r4, r3, #8, #1
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   3048a:	4829      	ldr	r0, [pc, #164]	; (30530 <work_queue_main+0x1a0>)
   3048c:	f7ff f85a 	bl	2f544 <z_spin_unlock_valid>
   30490:	2800      	cmp	r0, #0
   30492:	d03e      	beq.n	30512 <work_queue_main+0x182>
	__asm__ volatile(
   30494:	f386 8811 	msr	BASEPRI, r6
   30498:	f3bf 8f6f 	isb	sy
			if (yield) {
   3049c:	2c00      	cmp	r4, #0
   3049e:	d19e      	bne.n	303de <work_queue_main+0x4e>
	z_impl_k_yield();
   304a0:	f001 fa7a 	bl	31998 <z_impl_k_yield>
}
   304a4:	e79b      	b.n	303de <work_queue_main+0x4e>
	list->tail = node;
   304a6:	f8c5 30bc 	str.w	r3, [r5, #188]	; 0xbc
}
   304aa:	e7b3      	b.n	30414 <work_queue_main+0x84>
			(void)z_sched_wake_all(&queue->drainq, 1, NULL);
   304ac:	f105 07c8 	add.w	r7, r5, #200	; 0xc8
static inline bool z_sched_wake_all(_wait_q_t *wait_q, int swap_retval,
				    void *swap_data)
{
	bool woken = false;

	while (z_sched_wake(wait_q, swap_retval, swap_data)) {
   304b0:	2200      	movs	r2, #0
   304b2:	2101      	movs	r1, #1
   304b4:	4638      	mov	r0, r7
   304b6:	f001 fc77 	bl	31da8 <z_sched_wake>
   304ba:	2800      	cmp	r0, #0
   304bc:	d1f8      	bne.n	304b0 <work_queue_main+0x120>
		k_work_handler_t handler = NULL;
   304be:	2700      	movs	r7, #0
   304c0:	e7b5      	b.n	3042e <work_queue_main+0x9e>
   304c2:	f8df 8064 	ldr.w	r8, [pc, #100]	; 30528 <work_queue_main+0x198>
   304c6:	22ac      	movs	r2, #172	; 0xac
   304c8:	4641      	mov	r1, r8
   304ca:	4818      	ldr	r0, [pc, #96]	; (3052c <work_queue_main+0x19c>)
   304cc:	f002 ff6d 	bl	333aa <printk>
   304d0:	21ac      	movs	r1, #172	; 0xac
   304d2:	4640      	mov	r0, r8
   304d4:	f003 fb02 	bl	33adc <assert_post_action>
   304d8:	e7b0      	b.n	3043c <work_queue_main+0xac>
			__ASSERT_NO_MSG(handler != NULL);
   304da:	4e16      	ldr	r6, [pc, #88]	; (30534 <work_queue_main+0x1a4>)
   304dc:	f240 228a 	movw	r2, #650	; 0x28a
   304e0:	4631      	mov	r1, r6
   304e2:	4812      	ldr	r0, [pc, #72]	; (3052c <work_queue_main+0x19c>)
   304e4:	f002 ff61 	bl	333aa <printk>
   304e8:	f240 218a 	movw	r1, #650	; 0x28a
   304ec:	4630      	mov	r0, r6
   304ee:	f003 faf5 	bl	33adc <assert_post_action>
   304f2:	e7a9      	b.n	30448 <work_queue_main+0xb8>
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   304f4:	4f0c      	ldr	r7, [pc, #48]	; (30528 <work_queue_main+0x198>)
   304f6:	2281      	movs	r2, #129	; 0x81
   304f8:	4639      	mov	r1, r7
   304fa:	480c      	ldr	r0, [pc, #48]	; (3052c <work_queue_main+0x19c>)
   304fc:	f002 ff55 	bl	333aa <printk>
   30500:	2181      	movs	r1, #129	; 0x81
   30502:	4638      	mov	r0, r7
   30504:	f003 faea 	bl	33adc <assert_post_action>
   30508:	e7ad      	b.n	30466 <work_queue_main+0xd6>
				finalize_cancel_locked(work);
   3050a:	4620      	mov	r0, r4
   3050c:	f7ff fee2 	bl	302d4 <finalize_cancel_locked>
   30510:	e7b3      	b.n	3047a <work_queue_main+0xea>
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   30512:	4f05      	ldr	r7, [pc, #20]	; (30528 <work_queue_main+0x198>)
   30514:	22ac      	movs	r2, #172	; 0xac
   30516:	4639      	mov	r1, r7
   30518:	4804      	ldr	r0, [pc, #16]	; (3052c <work_queue_main+0x19c>)
   3051a:	f002 ff46 	bl	333aa <printk>
   3051e:	21ac      	movs	r1, #172	; 0xac
   30520:	4638      	mov	r0, r7
   30522:	f003 fadb 	bl	33adc <assert_post_action>
   30526:	e7b5      	b.n	30494 <work_queue_main+0x104>
   30528:	0003bde8 	.word	0x0003bde8
   3052c:	0003bdac 	.word	0x0003bdac
   30530:	200034b8 	.word	0x200034b8
   30534:	0003fa34 	.word	0x0003fa34

00030538 <schedule_for_queue_locked>:
 * @retval 1 to indicate successfully scheduled.
 */
static int schedule_for_queue_locked(struct k_work_q **queuep,
				     struct k_work_delayable *dwork,
				     k_timeout_t delay)
{
   30538:	b570      	push	{r4, r5, r6, lr}
   3053a:	4606      	mov	r6, r0
   3053c:	4608      	mov	r0, r1
   3053e:	4614      	mov	r4, r2
   30540:	461d      	mov	r5, r3
	int ret = 1;
	struct k_work *work = &dwork->work;

	if (K_TIMEOUT_EQ(delay, K_NO_WAIT)) {
   30542:	ea54 0305 	orrs.w	r3, r4, r5
   30546:	d00c      	beq.n	30562 <schedule_for_queue_locked+0x2a>
	*flagp |= BIT(bit);
   30548:	68cb      	ldr	r3, [r1, #12]
   3054a:	f043 0308 	orr.w	r3, r3, #8
   3054e:	60cb      	str	r3, [r1, #12]
		return submit_to_queue_locked(work, queuep);
	}

	flag_set(&work->flags, K_WORK_DELAYED_BIT);
	dwork->queue = *queuep;
   30550:	6833      	ldr	r3, [r6, #0]
   30552:	628b      	str	r3, [r1, #40]	; 0x28

	/* Add timeout */
	z_add_timeout(&dwork->timeout, work_timeout, delay);
   30554:	462b      	mov	r3, r5
   30556:	4905      	ldr	r1, [pc, #20]	; (3056c <schedule_for_queue_locked+0x34>)
   30558:	3010      	adds	r0, #16
   3055a:	f001 fcfb 	bl	31f54 <z_add_timeout>

	return ret;
   3055e:	2001      	movs	r0, #1
}
   30560:	bd70      	pop	{r4, r5, r6, pc}
		return submit_to_queue_locked(work, queuep);
   30562:	4631      	mov	r1, r6
   30564:	f7ff fde8 	bl	30138 <submit_to_queue_locked>
   30568:	e7fa      	b.n	30560 <schedule_for_queue_locked+0x28>
   3056a:	bf00      	nop
   3056c:	0003023d 	.word	0x0003023d

00030570 <k_work_init>:
{
   30570:	b570      	push	{r4, r5, r6, lr}
   30572:	460d      	mov	r5, r1
	__ASSERT_NO_MSG(work != NULL);
   30574:	4604      	mov	r4, r0
   30576:	b130      	cbz	r0, 30586 <k_work_init+0x16>
	__ASSERT_NO_MSG(handler != NULL);
   30578:	b185      	cbz	r5, 3059c <k_work_init+0x2c>
	*work = (struct k_work)Z_WORK_INITIALIZER(handler);
   3057a:	2300      	movs	r3, #0
   3057c:	6023      	str	r3, [r4, #0]
   3057e:	60a3      	str	r3, [r4, #8]
   30580:	60e3      	str	r3, [r4, #12]
   30582:	6065      	str	r5, [r4, #4]
}
   30584:	bd70      	pop	{r4, r5, r6, pc}
	__ASSERT_NO_MSG(work != NULL);
   30586:	4e0b      	ldr	r6, [pc, #44]	; (305b4 <k_work_init+0x44>)
   30588:	2289      	movs	r2, #137	; 0x89
   3058a:	4631      	mov	r1, r6
   3058c:	480a      	ldr	r0, [pc, #40]	; (305b8 <k_work_init+0x48>)
   3058e:	f002 ff0c 	bl	333aa <printk>
   30592:	2189      	movs	r1, #137	; 0x89
   30594:	4630      	mov	r0, r6
   30596:	f003 faa1 	bl	33adc <assert_post_action>
   3059a:	e7ed      	b.n	30578 <k_work_init+0x8>
	__ASSERT_NO_MSG(handler != NULL);
   3059c:	4e05      	ldr	r6, [pc, #20]	; (305b4 <k_work_init+0x44>)
   3059e:	228a      	movs	r2, #138	; 0x8a
   305a0:	4631      	mov	r1, r6
   305a2:	4805      	ldr	r0, [pc, #20]	; (305b8 <k_work_init+0x48>)
   305a4:	f002 ff01 	bl	333aa <printk>
   305a8:	218a      	movs	r1, #138	; 0x8a
   305aa:	4630      	mov	r0, r6
   305ac:	f003 fa96 	bl	33adc <assert_post_action>
   305b0:	e7e3      	b.n	3057a <k_work_init+0xa>
   305b2:	bf00      	nop
   305b4:	0003fa34 	.word	0x0003fa34
   305b8:	0003bdac 	.word	0x0003bdac

000305bc <k_work_submit_to_queue>:
{
   305bc:	b570      	push	{r4, r5, r6, lr}
   305be:	b082      	sub	sp, #8
   305c0:	9001      	str	r0, [sp, #4]
	__ASSERT_NO_MSG(work != NULL);
   305c2:	460c      	mov	r4, r1
   305c4:	b309      	cbz	r1, 3060a <k_work_submit_to_queue+0x4e>
	__asm__ volatile(
   305c6:	f04f 0340 	mov.w	r3, #64	; 0x40
   305ca:	f3ef 8611 	mrs	r6, BASEPRI
   305ce:	f383 8812 	msr	BASEPRI_MAX, r3
   305d2:	f3bf 8f6f 	isb	sy
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   305d6:	4822      	ldr	r0, [pc, #136]	; (30660 <k_work_submit_to_queue+0xa4>)
   305d8:	f7fe ffa4 	bl	2f524 <z_spin_lock_valid>
   305dc:	b310      	cbz	r0, 30624 <k_work_submit_to_queue+0x68>
	z_spin_lock_set_owner(l);
   305de:	4d20      	ldr	r5, [pc, #128]	; (30660 <k_work_submit_to_queue+0xa4>)
   305e0:	4628      	mov	r0, r5
   305e2:	f7fe ffbf 	bl	2f564 <z_spin_lock_set_owner>
	int ret = submit_to_queue_locked(work, &queue);
   305e6:	a901      	add	r1, sp, #4
   305e8:	4620      	mov	r0, r4
   305ea:	f7ff fda5 	bl	30138 <submit_to_queue_locked>
   305ee:	4604      	mov	r4, r0
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   305f0:	4628      	mov	r0, r5
   305f2:	f7fe ffa7 	bl	2f544 <z_spin_unlock_valid>
   305f6:	b300      	cbz	r0, 3063a <k_work_submit_to_queue+0x7e>
	__asm__ volatile(
   305f8:	f386 8811 	msr	BASEPRI, r6
   305fc:	f3bf 8f6f 	isb	sy
	if ((ret > 0) && (k_is_preempt_thread() != 0)) {
   30600:	2c00      	cmp	r4, #0
   30602:	dc25      	bgt.n	30650 <k_work_submit_to_queue+0x94>
}
   30604:	4620      	mov	r0, r4
   30606:	b002      	add	sp, #8
   30608:	bd70      	pop	{r4, r5, r6, pc}
	__ASSERT_NO_MSG(work != NULL);
   3060a:	4d16      	ldr	r5, [pc, #88]	; (30664 <k_work_submit_to_queue+0xa8>)
   3060c:	f240 1269 	movw	r2, #361	; 0x169
   30610:	4629      	mov	r1, r5
   30612:	4815      	ldr	r0, [pc, #84]	; (30668 <k_work_submit_to_queue+0xac>)
   30614:	f002 fec9 	bl	333aa <printk>
   30618:	f240 1169 	movw	r1, #361	; 0x169
   3061c:	4628      	mov	r0, r5
   3061e:	f003 fa5d 	bl	33adc <assert_post_action>
   30622:	e7d0      	b.n	305c6 <k_work_submit_to_queue+0xa>
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   30624:	4d11      	ldr	r5, [pc, #68]	; (3066c <k_work_submit_to_queue+0xb0>)
   30626:	2281      	movs	r2, #129	; 0x81
   30628:	4629      	mov	r1, r5
   3062a:	480f      	ldr	r0, [pc, #60]	; (30668 <k_work_submit_to_queue+0xac>)
   3062c:	f002 febd 	bl	333aa <printk>
   30630:	2181      	movs	r1, #129	; 0x81
   30632:	4628      	mov	r0, r5
   30634:	f003 fa52 	bl	33adc <assert_post_action>
   30638:	e7d1      	b.n	305de <k_work_submit_to_queue+0x22>
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   3063a:	4d0c      	ldr	r5, [pc, #48]	; (3066c <k_work_submit_to_queue+0xb0>)
   3063c:	22ac      	movs	r2, #172	; 0xac
   3063e:	4629      	mov	r1, r5
   30640:	4809      	ldr	r0, [pc, #36]	; (30668 <k_work_submit_to_queue+0xac>)
   30642:	f002 feb2 	bl	333aa <printk>
   30646:	21ac      	movs	r1, #172	; 0xac
   30648:	4628      	mov	r0, r5
   3064a:	f003 fa47 	bl	33adc <assert_post_action>
   3064e:	e7d3      	b.n	305f8 <k_work_submit_to_queue+0x3c>
	return z_impl_k_is_preempt_thread();
   30650:	f001 fb1c 	bl	31c8c <z_impl_k_is_preempt_thread>
	if ((ret > 0) && (k_is_preempt_thread() != 0)) {
   30654:	2800      	cmp	r0, #0
   30656:	d0d5      	beq.n	30604 <k_work_submit_to_queue+0x48>
	z_impl_k_yield();
   30658:	f001 f99e 	bl	31998 <z_impl_k_yield>
	return ret;
   3065c:	e7d2      	b.n	30604 <k_work_submit_to_queue+0x48>
   3065e:	bf00      	nop
   30660:	200034b8 	.word	0x200034b8
   30664:	0003fa34 	.word	0x0003fa34
   30668:	0003bdac 	.word	0x0003bdac
   3066c:	0003bde8 	.word	0x0003bde8

00030670 <k_work_submit>:
{
   30670:	b508      	push	{r3, lr}
   30672:	4601      	mov	r1, r0
	int ret = k_work_submit_to_queue(&k_sys_work_q, work);
   30674:	4801      	ldr	r0, [pc, #4]	; (3067c <k_work_submit+0xc>)
   30676:	f7ff ffa1 	bl	305bc <k_work_submit_to_queue>
}
   3067a:	bd08      	pop	{r3, pc}
   3067c:	20002010 	.word	0x20002010

00030680 <k_work_queue_start>:
{
   30680:	e92d 43f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, lr}
   30684:	b089      	sub	sp, #36	; 0x24
   30686:	460d      	mov	r5, r1
   30688:	4617      	mov	r7, r2
   3068a:	4698      	mov	r8, r3
   3068c:	9e10      	ldr	r6, [sp, #64]	; 0x40
	__ASSERT_NO_MSG(queue);
   3068e:	4604      	mov	r4, r0
   30690:	2800      	cmp	r0, #0
   30692:	d03e      	beq.n	30712 <k_work_queue_start+0x92>
	__ASSERT_NO_MSG(stack);
   30694:	2d00      	cmp	r5, #0
   30696:	d04a      	beq.n	3072e <k_work_queue_start+0xae>
	return (*flagp & BIT(bit)) != 0U;
   30698:	f8d4 30d0 	ldr.w	r3, [r4, #208]	; 0xd0
	__ASSERT_NO_MSG(!flag_test(&queue->flags, K_WORK_QUEUE_STARTED_BIT));
   3069c:	f013 0f01 	tst.w	r3, #1
   306a0:	d153      	bne.n	3074a <k_work_queue_start+0xca>
	list->head = NULL;
   306a2:	2300      	movs	r3, #0
   306a4:	f8c4 30b8 	str.w	r3, [r4, #184]	; 0xb8
	list->tail = NULL;
   306a8:	f8c4 30bc 	str.w	r3, [r4, #188]	; 0xbc
   306ac:	f104 03c0 	add.w	r3, r4, #192	; 0xc0
	list->head = (sys_dnode_t *)list;
   306b0:	f8c4 30c0 	str.w	r3, [r4, #192]	; 0xc0
	list->tail = (sys_dnode_t *)list;
   306b4:	f8c4 30c4 	str.w	r3, [r4, #196]	; 0xc4
   306b8:	f104 03c8 	add.w	r3, r4, #200	; 0xc8
	list->head = (sys_dnode_t *)list;
   306bc:	f8c4 30c8 	str.w	r3, [r4, #200]	; 0xc8
	list->tail = (sys_dnode_t *)list;
   306c0:	f8c4 30cc 	str.w	r3, [r4, #204]	; 0xcc
	if ((cfg != NULL) && cfg->no_yield) {
   306c4:	2e00      	cmp	r6, #0
   306c6:	d04e      	beq.n	30766 <k_work_queue_start+0xe6>
   306c8:	7933      	ldrb	r3, [r6, #4]
   306ca:	2b00      	cmp	r3, #0
   306cc:	d14d      	bne.n	3076a <k_work_queue_start+0xea>
	uint32_t flags = K_WORK_QUEUE_STARTED;
   306ce:	2301      	movs	r3, #1
	*flagp = flags;
   306d0:	f8c4 30d0 	str.w	r3, [r4, #208]	; 0xd0
	return z_impl_k_thread_create(new_thread, stack, stack_size, entry, p1, p2, p3, prio, options, delay);
   306d4:	f04f 32ff 	mov.w	r2, #4294967295
   306d8:	f04f 33ff 	mov.w	r3, #4294967295
   306dc:	e9cd 2306 	strd	r2, r3, [sp, #24]
   306e0:	2200      	movs	r2, #0
   306e2:	9204      	str	r2, [sp, #16]
   306e4:	f8cd 800c 	str.w	r8, [sp, #12]
   306e8:	9202      	str	r2, [sp, #8]
   306ea:	9201      	str	r2, [sp, #4]
   306ec:	9400      	str	r4, [sp, #0]
   306ee:	4b20      	ldr	r3, [pc, #128]	; (30770 <k_work_queue_start+0xf0>)
   306f0:	463a      	mov	r2, r7
   306f2:	4629      	mov	r1, r5
   306f4:	4620      	mov	r0, r4
   306f6:	f7ff f82f 	bl	2f758 <z_impl_k_thread_create>
	if ((cfg != NULL) && (cfg->name != NULL)) {
   306fa:	b126      	cbz	r6, 30706 <k_work_queue_start+0x86>
   306fc:	6831      	ldr	r1, [r6, #0]
   306fe:	b111      	cbz	r1, 30706 <k_work_queue_start+0x86>
	return z_impl_k_thread_name_set(thread, str);
   30700:	4620      	mov	r0, r4
   30702:	f7fe feeb 	bl	2f4dc <z_impl_k_thread_name_set>
	z_impl_k_thread_start(thread);
   30706:	4620      	mov	r0, r4
   30708:	f00a fd1b 	bl	3b142 <z_impl_k_thread_start>
}
   3070c:	b009      	add	sp, #36	; 0x24
   3070e:	e8bd 83f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, pc}
	__ASSERT_NO_MSG(queue);
   30712:	f8df 9064 	ldr.w	r9, [pc, #100]	; 30778 <k_work_queue_start+0xf8>
   30716:	f44f 722e 	mov.w	r2, #696	; 0x2b8
   3071a:	4649      	mov	r1, r9
   3071c:	4815      	ldr	r0, [pc, #84]	; (30774 <k_work_queue_start+0xf4>)
   3071e:	f002 fe44 	bl	333aa <printk>
   30722:	f44f 712e 	mov.w	r1, #696	; 0x2b8
   30726:	4648      	mov	r0, r9
   30728:	f003 f9d8 	bl	33adc <assert_post_action>
   3072c:	e7b2      	b.n	30694 <k_work_queue_start+0x14>
	__ASSERT_NO_MSG(stack);
   3072e:	f8df 9048 	ldr.w	r9, [pc, #72]	; 30778 <k_work_queue_start+0xf8>
   30732:	f240 22b9 	movw	r2, #697	; 0x2b9
   30736:	4649      	mov	r1, r9
   30738:	480e      	ldr	r0, [pc, #56]	; (30774 <k_work_queue_start+0xf4>)
   3073a:	f002 fe36 	bl	333aa <printk>
   3073e:	f240 21b9 	movw	r1, #697	; 0x2b9
   30742:	4648      	mov	r0, r9
   30744:	f003 f9ca 	bl	33adc <assert_post_action>
   30748:	e7a6      	b.n	30698 <k_work_queue_start+0x18>
	__ASSERT_NO_MSG(!flag_test(&queue->flags, K_WORK_QUEUE_STARTED_BIT));
   3074a:	f8df 902c 	ldr.w	r9, [pc, #44]	; 30778 <k_work_queue_start+0xf8>
   3074e:	f240 22ba 	movw	r2, #698	; 0x2ba
   30752:	4649      	mov	r1, r9
   30754:	4807      	ldr	r0, [pc, #28]	; (30774 <k_work_queue_start+0xf4>)
   30756:	f002 fe28 	bl	333aa <printk>
   3075a:	f240 21ba 	movw	r1, #698	; 0x2ba
   3075e:	4648      	mov	r0, r9
   30760:	f003 f9bc 	bl	33adc <assert_post_action>
   30764:	e79d      	b.n	306a2 <k_work_queue_start+0x22>
	uint32_t flags = K_WORK_QUEUE_STARTED;
   30766:	2301      	movs	r3, #1
   30768:	e7b2      	b.n	306d0 <k_work_queue_start+0x50>
		flags |= K_WORK_QUEUE_NO_YIELD;
   3076a:	f240 1301 	movw	r3, #257	; 0x101
   3076e:	e7af      	b.n	306d0 <k_work_queue_start+0x50>
   30770:	00030391 	.word	0x00030391
   30774:	0003bdac 	.word	0x0003bdac
   30778:	0003fa34 	.word	0x0003fa34

0003077c <k_work_init_delayable>:
{
   3077c:	b570      	push	{r4, r5, r6, lr}
   3077e:	460c      	mov	r4, r1
	__ASSERT_NO_MSG(dwork != NULL);
   30780:	4605      	mov	r5, r0
   30782:	b150      	cbz	r0, 3079a <k_work_init_delayable+0x1e>
	__ASSERT_NO_MSG(handler != NULL);
   30784:	b1b4      	cbz	r4, 307b4 <k_work_init_delayable+0x38>
	*dwork = (struct k_work_delayable){
   30786:	2230      	movs	r2, #48	; 0x30
   30788:	2100      	movs	r1, #0
   3078a:	4628      	mov	r0, r5
   3078c:	f005 f9da 	bl	35b44 <memset>
   30790:	606c      	str	r4, [r5, #4]
   30792:	f44f 7380 	mov.w	r3, #256	; 0x100
   30796:	60eb      	str	r3, [r5, #12]
}
   30798:	bd70      	pop	{r4, r5, r6, pc}
	__ASSERT_NO_MSG(dwork != NULL);
   3079a:	4e0d      	ldr	r6, [pc, #52]	; (307d0 <k_work_init_delayable+0x54>)
   3079c:	f44f 724c 	mov.w	r2, #816	; 0x330
   307a0:	4631      	mov	r1, r6
   307a2:	480c      	ldr	r0, [pc, #48]	; (307d4 <k_work_init_delayable+0x58>)
   307a4:	f002 fe01 	bl	333aa <printk>
   307a8:	f44f 714c 	mov.w	r1, #816	; 0x330
   307ac:	4630      	mov	r0, r6
   307ae:	f003 f995 	bl	33adc <assert_post_action>
   307b2:	e7e7      	b.n	30784 <k_work_init_delayable+0x8>
	__ASSERT_NO_MSG(handler != NULL);
   307b4:	4e06      	ldr	r6, [pc, #24]	; (307d0 <k_work_init_delayable+0x54>)
   307b6:	f240 3231 	movw	r2, #817	; 0x331
   307ba:	4631      	mov	r1, r6
   307bc:	4805      	ldr	r0, [pc, #20]	; (307d4 <k_work_init_delayable+0x58>)
   307be:	f002 fdf4 	bl	333aa <printk>
   307c2:	f240 3131 	movw	r1, #817	; 0x331
   307c6:	4630      	mov	r0, r6
   307c8:	f003 f988 	bl	33adc <assert_post_action>
   307cc:	e7db      	b.n	30786 <k_work_init_delayable+0xa>
   307ce:	bf00      	nop
   307d0:	0003fa34 	.word	0x0003fa34
   307d4:	0003bdac 	.word	0x0003bdac

000307d8 <k_work_schedule_for_queue>:
}

int k_work_schedule_for_queue(struct k_work_q *queue,
			       struct k_work_delayable *dwork,
			       k_timeout_t delay)
{
   307d8:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   307dc:	b082      	sub	sp, #8
   307de:	9001      	str	r0, [sp, #4]
   307e0:	4617      	mov	r7, r2
   307e2:	461d      	mov	r5, r3
	__ASSERT_NO_MSG(dwork != NULL);
   307e4:	460c      	mov	r4, r1
   307e6:	b1f9      	cbz	r1, 30828 <k_work_schedule_for_queue+0x50>
	__asm__ volatile(
   307e8:	f04f 0340 	mov.w	r3, #64	; 0x40
   307ec:	f3ef 8611 	mrs	r6, BASEPRI
   307f0:	f383 8812 	msr	BASEPRI_MAX, r3
   307f4:	f3bf 8f6f 	isb	sy
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   307f8:	4821      	ldr	r0, [pc, #132]	; (30880 <k_work_schedule_for_queue+0xa8>)
   307fa:	f7fe fe93 	bl	2f524 <z_spin_lock_valid>
   307fe:	b300      	cbz	r0, 30842 <k_work_schedule_for_queue+0x6a>
	z_spin_lock_set_owner(l);
   30800:	481f      	ldr	r0, [pc, #124]	; (30880 <k_work_schedule_for_queue+0xa8>)
   30802:	f7fe feaf 	bl	2f564 <z_spin_lock_set_owner>
	return *flagp;
   30806:	68e1      	ldr	r1, [r4, #12]
	struct k_work *work = &dwork->work;
	int ret = 0;
	k_spinlock_key_t key = k_spin_lock(&lock);

	/* Schedule the work item if it's idle or running. */
	if ((work_busy_get_locked(work) & ~K_WORK_RUNNING) == 0U) {
   30808:	f011 0f0e 	tst.w	r1, #14
   3080c:	d025      	beq.n	3085a <k_work_schedule_for_queue+0x82>
	int ret = 0;
   3080e:	2400      	movs	r4, #0
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   30810:	481b      	ldr	r0, [pc, #108]	; (30880 <k_work_schedule_for_queue+0xa8>)
   30812:	f7fe fe97 	bl	2f544 <z_spin_unlock_valid>
   30816:	b340      	cbz	r0, 3086a <k_work_schedule_for_queue+0x92>
	__asm__ volatile(
   30818:	f386 8811 	msr	BASEPRI, r6
   3081c:	f3bf 8f6f 	isb	sy
	k_spin_unlock(&lock, key);

	SYS_PORT_TRACING_OBJ_FUNC_EXIT(k_work, schedule_for_queue, queue, dwork, delay, ret);

	return ret;
}
   30820:	4620      	mov	r0, r4
   30822:	b002      	add	sp, #8
   30824:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
	__ASSERT_NO_MSG(dwork != NULL);
   30828:	4e16      	ldr	r6, [pc, #88]	; (30884 <k_work_schedule_for_queue+0xac>)
   3082a:	f240 32a7 	movw	r2, #935	; 0x3a7
   3082e:	4631      	mov	r1, r6
   30830:	4815      	ldr	r0, [pc, #84]	; (30888 <k_work_schedule_for_queue+0xb0>)
   30832:	f002 fdba 	bl	333aa <printk>
   30836:	f240 31a7 	movw	r1, #935	; 0x3a7
   3083a:	4630      	mov	r0, r6
   3083c:	f003 f94e 	bl	33adc <assert_post_action>
   30840:	e7d2      	b.n	307e8 <k_work_schedule_for_queue+0x10>
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   30842:	f8df 8048 	ldr.w	r8, [pc, #72]	; 3088c <k_work_schedule_for_queue+0xb4>
   30846:	2281      	movs	r2, #129	; 0x81
   30848:	4641      	mov	r1, r8
   3084a:	480f      	ldr	r0, [pc, #60]	; (30888 <k_work_schedule_for_queue+0xb0>)
   3084c:	f002 fdad 	bl	333aa <printk>
   30850:	2181      	movs	r1, #129	; 0x81
   30852:	4640      	mov	r0, r8
   30854:	f003 f942 	bl	33adc <assert_post_action>
   30858:	e7d2      	b.n	30800 <k_work_schedule_for_queue+0x28>
		ret = schedule_for_queue_locked(&queue, dwork, delay);
   3085a:	463a      	mov	r2, r7
   3085c:	462b      	mov	r3, r5
   3085e:	4621      	mov	r1, r4
   30860:	a801      	add	r0, sp, #4
   30862:	f7ff fe69 	bl	30538 <schedule_for_queue_locked>
   30866:	4604      	mov	r4, r0
   30868:	e7d2      	b.n	30810 <k_work_schedule_for_queue+0x38>
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   3086a:	4d08      	ldr	r5, [pc, #32]	; (3088c <k_work_schedule_for_queue+0xb4>)
   3086c:	22ac      	movs	r2, #172	; 0xac
   3086e:	4629      	mov	r1, r5
   30870:	4805      	ldr	r0, [pc, #20]	; (30888 <k_work_schedule_for_queue+0xb0>)
   30872:	f002 fd9a 	bl	333aa <printk>
   30876:	21ac      	movs	r1, #172	; 0xac
   30878:	4628      	mov	r0, r5
   3087a:	f003 f92f 	bl	33adc <assert_post_action>
   3087e:	e7cb      	b.n	30818 <k_work_schedule_for_queue+0x40>
   30880:	200034b8 	.word	0x200034b8
   30884:	0003fa34 	.word	0x0003fa34
   30888:	0003bdac 	.word	0x0003bdac
   3088c:	0003bde8 	.word	0x0003bde8

00030890 <k_work_schedule>:

int k_work_schedule(struct k_work_delayable *dwork,
				   k_timeout_t delay)
{
   30890:	b508      	push	{r3, lr}
   30892:	4601      	mov	r1, r0
	SYS_PORT_TRACING_OBJ_FUNC_ENTER(k_work, schedule, dwork, delay);

	int ret = k_work_schedule_for_queue(&k_sys_work_q, dwork, delay);
   30894:	4801      	ldr	r0, [pc, #4]	; (3089c <k_work_schedule+0xc>)
   30896:	f7ff ff9f 	bl	307d8 <k_work_schedule_for_queue>

	SYS_PORT_TRACING_OBJ_FUNC_EXIT(k_work, schedule, dwork, delay, ret);

	return ret;
}
   3089a:	bd08      	pop	{r3, pc}
   3089c:	20002010 	.word	0x20002010

000308a0 <k_work_reschedule_for_queue>:

int k_work_reschedule_for_queue(struct k_work_q *queue,
				 struct k_work_delayable *dwork,
				 k_timeout_t delay)
{
   308a0:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   308a4:	b082      	sub	sp, #8
   308a6:	9001      	str	r0, [sp, #4]
   308a8:	4616      	mov	r6, r2
   308aa:	461d      	mov	r5, r3
	__ASSERT_NO_MSG(dwork != NULL);
   308ac:	460c      	mov	r4, r1
   308ae:	b341      	cbz	r1, 30902 <k_work_reschedule_for_queue+0x62>
	__asm__ volatile(
   308b0:	f04f 0340 	mov.w	r3, #64	; 0x40
   308b4:	f3ef 8711 	mrs	r7, BASEPRI
   308b8:	f383 8812 	msr	BASEPRI_MAX, r3
   308bc:	f3bf 8f6f 	isb	sy
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   308c0:	4824      	ldr	r0, [pc, #144]	; (30954 <k_work_reschedule_for_queue+0xb4>)
   308c2:	f7fe fe2f 	bl	2f524 <z_spin_lock_valid>
   308c6:	b348      	cbz	r0, 3091c <k_work_reschedule_for_queue+0x7c>
	z_spin_lock_set_owner(l);
   308c8:	4822      	ldr	r0, [pc, #136]	; (30954 <k_work_reschedule_for_queue+0xb4>)
   308ca:	f7fe fe4b 	bl	2f564 <z_spin_lock_set_owner>
	return (*flagp & BIT(bit)) != 0U;
   308ce:	68e3      	ldr	r3, [r4, #12]
	*flagp &= ~BIT(bit);
   308d0:	f023 0208 	bic.w	r2, r3, #8
   308d4:	60e2      	str	r2, [r4, #12]
	if (flag_test_and_clear(&work->flags, K_WORK_DELAYED_BIT)) {
   308d6:	f013 0f08 	tst.w	r3, #8
   308da:	d12b      	bne.n	30934 <k_work_reschedule_for_queue+0x94>

	/* Remove any active scheduling. */
	(void)unschedule_locked(dwork);

	/* Schedule the work item with the new parameters. */
	ret = schedule_for_queue_locked(&queue, dwork, delay);
   308dc:	4632      	mov	r2, r6
   308de:	462b      	mov	r3, r5
   308e0:	4621      	mov	r1, r4
   308e2:	a801      	add	r0, sp, #4
   308e4:	f7ff fe28 	bl	30538 <schedule_for_queue_locked>
   308e8:	4604      	mov	r4, r0
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   308ea:	481a      	ldr	r0, [pc, #104]	; (30954 <k_work_reschedule_for_queue+0xb4>)
   308ec:	f7fe fe2a 	bl	2f544 <z_spin_unlock_valid>
   308f0:	b328      	cbz	r0, 3093e <k_work_reschedule_for_queue+0x9e>
	__asm__ volatile(
   308f2:	f387 8811 	msr	BASEPRI, r7
   308f6:	f3bf 8f6f 	isb	sy
	k_spin_unlock(&lock, key);

	SYS_PORT_TRACING_OBJ_FUNC_EXIT(k_work, reschedule_for_queue, queue, dwork, delay, ret);

	return ret;
}
   308fa:	4620      	mov	r0, r4
   308fc:	b002      	add	sp, #8
   308fe:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
	__ASSERT_NO_MSG(dwork != NULL);
   30902:	4f15      	ldr	r7, [pc, #84]	; (30958 <k_work_reschedule_for_queue+0xb8>)
   30904:	f240 32cb 	movw	r2, #971	; 0x3cb
   30908:	4639      	mov	r1, r7
   3090a:	4814      	ldr	r0, [pc, #80]	; (3095c <k_work_reschedule_for_queue+0xbc>)
   3090c:	f002 fd4d 	bl	333aa <printk>
   30910:	f240 31cb 	movw	r1, #971	; 0x3cb
   30914:	4638      	mov	r0, r7
   30916:	f003 f8e1 	bl	33adc <assert_post_action>
   3091a:	e7c9      	b.n	308b0 <k_work_reschedule_for_queue+0x10>
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   3091c:	f8df 8040 	ldr.w	r8, [pc, #64]	; 30960 <k_work_reschedule_for_queue+0xc0>
   30920:	2281      	movs	r2, #129	; 0x81
   30922:	4641      	mov	r1, r8
   30924:	480d      	ldr	r0, [pc, #52]	; (3095c <k_work_reschedule_for_queue+0xbc>)
   30926:	f002 fd40 	bl	333aa <printk>
   3092a:	2181      	movs	r1, #129	; 0x81
   3092c:	4640      	mov	r0, r8
   3092e:	f003 f8d5 	bl	33adc <assert_post_action>
   30932:	e7c9      	b.n	308c8 <k_work_reschedule_for_queue+0x28>
		z_abort_timeout(&dwork->timeout);
   30934:	f104 0010 	add.w	r0, r4, #16
   30938:	f001 fbf0 	bl	3211c <z_abort_timeout>
		ret = true;
   3093c:	e7ce      	b.n	308dc <k_work_reschedule_for_queue+0x3c>
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   3093e:	4d08      	ldr	r5, [pc, #32]	; (30960 <k_work_reschedule_for_queue+0xc0>)
   30940:	22ac      	movs	r2, #172	; 0xac
   30942:	4629      	mov	r1, r5
   30944:	4805      	ldr	r0, [pc, #20]	; (3095c <k_work_reschedule_for_queue+0xbc>)
   30946:	f002 fd30 	bl	333aa <printk>
   3094a:	21ac      	movs	r1, #172	; 0xac
   3094c:	4628      	mov	r0, r5
   3094e:	f003 f8c5 	bl	33adc <assert_post_action>
   30952:	e7ce      	b.n	308f2 <k_work_reschedule_for_queue+0x52>
   30954:	200034b8 	.word	0x200034b8
   30958:	0003fa34 	.word	0x0003fa34
   3095c:	0003bdac 	.word	0x0003bdac
   30960:	0003bde8 	.word	0x0003bde8

00030964 <k_work_reschedule>:

int k_work_reschedule(struct k_work_delayable *dwork,
				     k_timeout_t delay)
{
   30964:	b508      	push	{r3, lr}
   30966:	4601      	mov	r1, r0
	SYS_PORT_TRACING_OBJ_FUNC_ENTER(k_work, reschedule, dwork, delay);

	int ret = k_work_reschedule_for_queue(&k_sys_work_q, dwork, delay);
   30968:	4801      	ldr	r0, [pc, #4]	; (30970 <k_work_reschedule+0xc>)
   3096a:	f7ff ff99 	bl	308a0 <k_work_reschedule_for_queue>

	SYS_PORT_TRACING_OBJ_FUNC_EXIT(k_work, reschedule, dwork, delay, ret);

	return ret;
}
   3096e:	bd08      	pop	{r3, pc}
   30970:	20002010 	.word	0x20002010

00030974 <k_work_cancel_delayable>:

int k_work_cancel_delayable(struct k_work_delayable *dwork)
{
   30974:	b570      	push	{r4, r5, r6, lr}
	__ASSERT_NO_MSG(dwork != NULL);
   30976:	4604      	mov	r4, r0
   30978:	b1e8      	cbz	r0, 309b6 <k_work_cancel_delayable+0x42>
	__asm__ volatile(
   3097a:	f04f 0340 	mov.w	r3, #64	; 0x40
   3097e:	f3ef 8611 	mrs	r6, BASEPRI
   30982:	f383 8812 	msr	BASEPRI_MAX, r3
   30986:	f3bf 8f6f 	isb	sy
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   3098a:	481c      	ldr	r0, [pc, #112]	; (309fc <k_work_cancel_delayable+0x88>)
   3098c:	f7fe fdca 	bl	2f524 <z_spin_lock_valid>
   30990:	b1f0      	cbz	r0, 309d0 <k_work_cancel_delayable+0x5c>
	z_spin_lock_set_owner(l);
   30992:	4d1a      	ldr	r5, [pc, #104]	; (309fc <k_work_cancel_delayable+0x88>)
   30994:	4628      	mov	r0, r5
   30996:	f7fe fde5 	bl	2f564 <z_spin_lock_set_owner>

	SYS_PORT_TRACING_OBJ_FUNC_ENTER(k_work, cancel_delayable, dwork);

	k_spinlock_key_t key = k_spin_lock(&lock);
	int ret = cancel_delayable_async_locked(dwork);
   3099a:	4620      	mov	r0, r4
   3099c:	f00a fc93 	bl	3b2c6 <cancel_delayable_async_locked>
   309a0:	4604      	mov	r4, r0
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   309a2:	4628      	mov	r0, r5
   309a4:	f7fe fdce 	bl	2f544 <z_spin_unlock_valid>
   309a8:	b1e8      	cbz	r0, 309e6 <k_work_cancel_delayable+0x72>
	__asm__ volatile(
   309aa:	f386 8811 	msr	BASEPRI, r6
   309ae:	f3bf 8f6f 	isb	sy
	k_spin_unlock(&lock, key);

	SYS_PORT_TRACING_OBJ_FUNC_EXIT(k_work, cancel_delayable, dwork, ret);

	return ret;
}
   309b2:	4620      	mov	r0, r4
   309b4:	bd70      	pop	{r4, r5, r6, pc}
	__ASSERT_NO_MSG(dwork != NULL);
   309b6:	4d12      	ldr	r5, [pc, #72]	; (30a00 <k_work_cancel_delayable+0x8c>)
   309b8:	f240 32ed 	movw	r2, #1005	; 0x3ed
   309bc:	4629      	mov	r1, r5
   309be:	4811      	ldr	r0, [pc, #68]	; (30a04 <k_work_cancel_delayable+0x90>)
   309c0:	f002 fcf3 	bl	333aa <printk>
   309c4:	f240 31ed 	movw	r1, #1005	; 0x3ed
   309c8:	4628      	mov	r0, r5
   309ca:	f003 f887 	bl	33adc <assert_post_action>
   309ce:	e7d4      	b.n	3097a <k_work_cancel_delayable+0x6>
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   309d0:	4d0d      	ldr	r5, [pc, #52]	; (30a08 <k_work_cancel_delayable+0x94>)
   309d2:	2281      	movs	r2, #129	; 0x81
   309d4:	4629      	mov	r1, r5
   309d6:	480b      	ldr	r0, [pc, #44]	; (30a04 <k_work_cancel_delayable+0x90>)
   309d8:	f002 fce7 	bl	333aa <printk>
   309dc:	2181      	movs	r1, #129	; 0x81
   309de:	4628      	mov	r0, r5
   309e0:	f003 f87c 	bl	33adc <assert_post_action>
   309e4:	e7d5      	b.n	30992 <k_work_cancel_delayable+0x1e>
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   309e6:	4d08      	ldr	r5, [pc, #32]	; (30a08 <k_work_cancel_delayable+0x94>)
   309e8:	22ac      	movs	r2, #172	; 0xac
   309ea:	4629      	mov	r1, r5
   309ec:	4805      	ldr	r0, [pc, #20]	; (30a04 <k_work_cancel_delayable+0x90>)
   309ee:	f002 fcdc 	bl	333aa <printk>
   309f2:	21ac      	movs	r1, #172	; 0xac
   309f4:	4628      	mov	r0, r5
   309f6:	f003 f871 	bl	33adc <assert_post_action>
   309fa:	e7d6      	b.n	309aa <k_work_cancel_delayable+0x36>
   309fc:	200034b8 	.word	0x200034b8
   30a00:	0003fa34 	.word	0x0003fa34
   30a04:	0003bdac 	.word	0x0003bdac
   30a08:	0003bde8 	.word	0x0003bde8

00030a0c <k_work_cancel_delayable_sync>:

bool k_work_cancel_delayable_sync(struct k_work_delayable *dwork,
				  struct k_work_sync *sync)
{
   30a0c:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   30a10:	460c      	mov	r4, r1
	__ASSERT_NO_MSG(dwork != NULL);
   30a12:	4605      	mov	r5, r0
   30a14:	2800      	cmp	r0, #0
   30a16:	d030      	beq.n	30a7a <k_work_cancel_delayable_sync+0x6e>
	__ASSERT_NO_MSG(sync != NULL);
   30a18:	2c00      	cmp	r4, #0
   30a1a:	d03b      	beq.n	30a94 <k_work_cancel_delayable_sync+0x88>
	__ASSERT_NO_MSG(!k_is_in_isr());
   30a1c:	f00a fb89 	bl	3b132 <k_is_in_isr>
   30a20:	2800      	cmp	r0, #0
   30a22:	d144      	bne.n	30aae <k_work_cancel_delayable_sync+0xa2>
	__asm__ volatile(
   30a24:	f04f 0340 	mov.w	r3, #64	; 0x40
   30a28:	f3ef 8711 	mrs	r7, BASEPRI
   30a2c:	f383 8812 	msr	BASEPRI_MAX, r3
   30a30:	f3bf 8f6f 	isb	sy
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   30a34:	4839      	ldr	r0, [pc, #228]	; (30b1c <k_work_cancel_delayable_sync+0x110>)
   30a36:	f7fe fd75 	bl	2f524 <z_spin_lock_valid>
   30a3a:	2800      	cmp	r0, #0
   30a3c:	d044      	beq.n	30ac8 <k_work_cancel_delayable_sync+0xbc>
	z_spin_lock_set_owner(l);
   30a3e:	4837      	ldr	r0, [pc, #220]	; (30b1c <k_work_cancel_delayable_sync+0x110>)
   30a40:	f7fe fd90 	bl	2f564 <z_spin_lock_set_owner>
   30a44:	f3bf 8f5b 	dmb	ish
   30a48:	68eb      	ldr	r3, [r5, #12]
   30a4a:	f3bf 8f5b 	dmb	ish
	return atomic_get(&dwork->work.flags) & K_WORK_MASK;
   30a4e:	f003 030f 	and.w	r3, r3, #15

	SYS_PORT_TRACING_OBJ_FUNC_ENTER(k_work, cancel_delayable_sync, dwork, sync);

	struct z_work_canceller *canceller = &sync->canceller;
	k_spinlock_key_t key = k_spin_lock(&lock);
	bool pending = (work_delayable_busy_get_locked(dwork) != 0U);
   30a52:	2b00      	cmp	r3, #0
   30a54:	bf14      	ite	ne
   30a56:	2601      	movne	r6, #1
   30a58:	2600      	moveq	r6, #0
	bool need_wait = false;

	if (pending) {
   30a5a:	d140      	bne.n	30ade <k_work_cancel_delayable_sync+0xd2>
	bool need_wait = false;
   30a5c:	2500      	movs	r5, #0
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   30a5e:	482f      	ldr	r0, [pc, #188]	; (30b1c <k_work_cancel_delayable_sync+0x110>)
   30a60:	f7fe fd70 	bl	2f544 <z_spin_unlock_valid>
   30a64:	2800      	cmp	r0, #0
   30a66:	d043      	beq.n	30af0 <k_work_cancel_delayable_sync+0xe4>
	__asm__ volatile(
   30a68:	f387 8811 	msr	BASEPRI, r7
   30a6c:	f3bf 8f6f 	isb	sy
		need_wait = cancel_sync_locked(&dwork->work, canceller);
	}

	k_spin_unlock(&lock, key);

	if (need_wait) {
   30a70:	2d00      	cmp	r5, #0
   30a72:	d149      	bne.n	30b08 <k_work_cancel_delayable_sync+0xfc>
		k_sem_take(&canceller->sem, K_FOREVER);
	}

	SYS_PORT_TRACING_OBJ_FUNC_EXIT(k_work, cancel_delayable_sync, dwork, sync, pending);
	return pending;
}
   30a74:	4630      	mov	r0, r6
   30a76:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
	__ASSERT_NO_MSG(dwork != NULL);
   30a7a:	4e29      	ldr	r6, [pc, #164]	; (30b20 <k_work_cancel_delayable_sync+0x114>)
   30a7c:	f240 32fe 	movw	r2, #1022	; 0x3fe
   30a80:	4631      	mov	r1, r6
   30a82:	4828      	ldr	r0, [pc, #160]	; (30b24 <k_work_cancel_delayable_sync+0x118>)
   30a84:	f002 fc91 	bl	333aa <printk>
   30a88:	f240 31fe 	movw	r1, #1022	; 0x3fe
   30a8c:	4630      	mov	r0, r6
   30a8e:	f003 f825 	bl	33adc <assert_post_action>
   30a92:	e7c1      	b.n	30a18 <k_work_cancel_delayable_sync+0xc>
	__ASSERT_NO_MSG(sync != NULL);
   30a94:	4e22      	ldr	r6, [pc, #136]	; (30b20 <k_work_cancel_delayable_sync+0x114>)
   30a96:	f240 32ff 	movw	r2, #1023	; 0x3ff
   30a9a:	4631      	mov	r1, r6
   30a9c:	4821      	ldr	r0, [pc, #132]	; (30b24 <k_work_cancel_delayable_sync+0x118>)
   30a9e:	f002 fc84 	bl	333aa <printk>
   30aa2:	f240 31ff 	movw	r1, #1023	; 0x3ff
   30aa6:	4630      	mov	r0, r6
   30aa8:	f003 f818 	bl	33adc <assert_post_action>
   30aac:	e7b6      	b.n	30a1c <k_work_cancel_delayable_sync+0x10>
	__ASSERT_NO_MSG(!k_is_in_isr());
   30aae:	4e1c      	ldr	r6, [pc, #112]	; (30b20 <k_work_cancel_delayable_sync+0x114>)
   30ab0:	f44f 6280 	mov.w	r2, #1024	; 0x400
   30ab4:	4631      	mov	r1, r6
   30ab6:	481b      	ldr	r0, [pc, #108]	; (30b24 <k_work_cancel_delayable_sync+0x118>)
   30ab8:	f002 fc77 	bl	333aa <printk>
   30abc:	f44f 6180 	mov.w	r1, #1024	; 0x400
   30ac0:	4630      	mov	r0, r6
   30ac2:	f003 f80b 	bl	33adc <assert_post_action>
   30ac6:	e7ad      	b.n	30a24 <k_work_cancel_delayable_sync+0x18>
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   30ac8:	4e17      	ldr	r6, [pc, #92]	; (30b28 <k_work_cancel_delayable_sync+0x11c>)
   30aca:	2281      	movs	r2, #129	; 0x81
   30acc:	4631      	mov	r1, r6
   30ace:	4815      	ldr	r0, [pc, #84]	; (30b24 <k_work_cancel_delayable_sync+0x118>)
   30ad0:	f002 fc6b 	bl	333aa <printk>
   30ad4:	2181      	movs	r1, #129	; 0x81
   30ad6:	4630      	mov	r0, r6
   30ad8:	f003 f800 	bl	33adc <assert_post_action>
   30adc:	e7af      	b.n	30a3e <k_work_cancel_delayable_sync+0x32>
		(void)cancel_delayable_async_locked(dwork);
   30ade:	4628      	mov	r0, r5
   30ae0:	f00a fbf1 	bl	3b2c6 <cancel_delayable_async_locked>
		need_wait = cancel_sync_locked(&dwork->work, canceller);
   30ae4:	4621      	mov	r1, r4
   30ae6:	4628      	mov	r0, r5
   30ae8:	f7ff fc30 	bl	3034c <cancel_sync_locked>
   30aec:	4605      	mov	r5, r0
   30aee:	e7b6      	b.n	30a5e <k_work_cancel_delayable_sync+0x52>
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   30af0:	f8df 8034 	ldr.w	r8, [pc, #52]	; 30b28 <k_work_cancel_delayable_sync+0x11c>
   30af4:	22ac      	movs	r2, #172	; 0xac
   30af6:	4641      	mov	r1, r8
   30af8:	480a      	ldr	r0, [pc, #40]	; (30b24 <k_work_cancel_delayable_sync+0x118>)
   30afa:	f002 fc56 	bl	333aa <printk>
   30afe:	21ac      	movs	r1, #172	; 0xac
   30b00:	4640      	mov	r0, r8
   30b02:	f002 ffeb 	bl	33adc <assert_post_action>
   30b06:	e7af      	b.n	30a68 <k_work_cancel_delayable_sync+0x5c>
		k_sem_take(&canceller->sem, K_FOREVER);
   30b08:	f104 0008 	add.w	r0, r4, #8
	return z_impl_k_sem_take(sem, timeout);
   30b0c:	f04f 32ff 	mov.w	r2, #4294967295
   30b10:	f04f 33ff 	mov.w	r3, #4294967295
   30b14:	f7ff fa46 	bl	2ffa4 <z_impl_k_sem_take>
   30b18:	e7ac      	b.n	30a74 <k_work_cancel_delayable_sync+0x68>
   30b1a:	bf00      	nop
   30b1c:	200034b8 	.word	0x200034b8
   30b20:	0003fa34 	.word	0x0003fa34
   30b24:	0003bdac 	.word	0x0003bdac
   30b28:	0003bde8 	.word	0x0003bde8

00030b2c <pended_on_thread>:
}
#include <syscalls/k_thread_resume_mrsh.c>
#endif

static _wait_q_t *pended_on_thread(struct k_thread *thread)
{
   30b2c:	b538      	push	{r3, r4, r5, lr}
   30b2e:	4604      	mov	r4, r0
	__ASSERT_NO_MSG(thread->base.pended_on);
   30b30:	6883      	ldr	r3, [r0, #8]
   30b32:	b10b      	cbz	r3, 30b38 <pended_on_thread+0xc>

	return thread->base.pended_on;
}
   30b34:	68a0      	ldr	r0, [r4, #8]
   30b36:	bd38      	pop	{r3, r4, r5, pc}
	__ASSERT_NO_MSG(thread->base.pended_on);
   30b38:	4d06      	ldr	r5, [pc, #24]	; (30b54 <pended_on_thread+0x28>)
   30b3a:	f240 2253 	movw	r2, #595	; 0x253
   30b3e:	4629      	mov	r1, r5
   30b40:	4805      	ldr	r0, [pc, #20]	; (30b58 <pended_on_thread+0x2c>)
   30b42:	f002 fc32 	bl	333aa <printk>
   30b46:	f240 2153 	movw	r1, #595	; 0x253
   30b4a:	4628      	mov	r0, r5
   30b4c:	f002 ffc6 	bl	33adc <assert_post_action>
   30b50:	e7f0      	b.n	30b34 <pended_on_thread+0x8>
   30b52:	bf00      	nop
   30b54:	0003fa58 	.word	0x0003fa58
   30b58:	0003bdac 	.word	0x0003bdac

00030b5c <add_thread_timeout>:
		z_priq_wait_add(&wait_q->waitq, thread);
	}
}

static void add_thread_timeout(struct k_thread *thread, k_timeout_t timeout)
{
   30b5c:	b538      	push	{r3, r4, r5, lr}
	if (!K_TIMEOUT_EQ(timeout, K_FOREVER)) {
   30b5e:	f1b3 3fff 	cmp.w	r3, #4294967295
   30b62:	bf08      	it	eq
   30b64:	f1b2 3fff 	cmpeq.w	r2, #4294967295
   30b68:	d100      	bne.n	30b6c <add_thread_timeout+0x10>
		z_add_thread_timeout(thread, timeout);
	}
}
   30b6a:	bd38      	pop	{r3, r4, r5, pc}
   30b6c:	4902      	ldr	r1, [pc, #8]	; (30b78 <add_thread_timeout+0x1c>)
   30b6e:	3018      	adds	r0, #24
   30b70:	f001 f9f0 	bl	31f54 <z_add_timeout>
   30b74:	e7f9      	b.n	30b6a <add_thread_timeout+0xe>
   30b76:	bf00      	nop
   30b78:	000312f5 	.word	0x000312f5

00030b7c <z_reset_time_slice>:
{
   30b7c:	b508      	push	{r3, lr}
	if (slice_time != 0) {
   30b7e:	4b08      	ldr	r3, [pc, #32]	; (30ba0 <z_reset_time_slice+0x24>)
   30b80:	681b      	ldr	r3, [r3, #0]
   30b82:	b903      	cbnz	r3, 30b86 <z_reset_time_slice+0xa>
}
   30b84:	bd08      	pop	{r3, pc}
		_current_cpu->slice_ticks = slice_time + sys_clock_elapsed();
   30b86:	f7fa fe4b 	bl	2b820 <sys_clock_elapsed>
   30b8a:	4603      	mov	r3, r0
   30b8c:	4a04      	ldr	r2, [pc, #16]	; (30ba0 <z_reset_time_slice+0x24>)
   30b8e:	6810      	ldr	r0, [r2, #0]
   30b90:	4403      	add	r3, r0
   30b92:	4a04      	ldr	r2, [pc, #16]	; (30ba4 <z_reset_time_slice+0x28>)
   30b94:	6113      	str	r3, [r2, #16]
		z_set_timeout_expiry(slice_time, false);
   30b96:	2100      	movs	r1, #0
   30b98:	f001 fb48 	bl	3222c <z_set_timeout_expiry>
}
   30b9c:	e7f2      	b.n	30b84 <z_reset_time_slice+0x8>
   30b9e:	bf00      	nop
   30ba0:	200034d0 	.word	0x200034d0
   30ba4:	20003480 	.word	0x20003480

00030ba8 <k_sched_time_slice_set>:
{
   30ba8:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   30bac:	4606      	mov	r6, r0
   30bae:	4688      	mov	r8, r1
	LOCKED(&sched_spinlock) {
   30bb0:	2400      	movs	r4, #0
	__asm__ volatile(
   30bb2:	f04f 0340 	mov.w	r3, #64	; 0x40
   30bb6:	f3ef 8711 	mrs	r7, BASEPRI
   30bba:	f383 8812 	msr	BASEPRI_MAX, r3
   30bbe:	f3bf 8f6f 	isb	sy
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   30bc2:	4824      	ldr	r0, [pc, #144]	; (30c54 <k_sched_time_slice_set+0xac>)
   30bc4:	f7fe fcae 	bl	2f524 <z_spin_lock_valid>
   30bc8:	b118      	cbz	r0, 30bd2 <k_sched_time_slice_set+0x2a>
	z_spin_lock_set_owner(l);
   30bca:	4822      	ldr	r0, [pc, #136]	; (30c54 <k_sched_time_slice_set+0xac>)
   30bcc:	f7fe fcca 	bl	2f564 <z_spin_lock_set_owner>
	return k;
   30bd0:	e018      	b.n	30c04 <k_sched_time_slice_set+0x5c>
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   30bd2:	4d21      	ldr	r5, [pc, #132]	; (30c58 <k_sched_time_slice_set+0xb0>)
   30bd4:	2281      	movs	r2, #129	; 0x81
   30bd6:	4629      	mov	r1, r5
   30bd8:	4820      	ldr	r0, [pc, #128]	; (30c5c <k_sched_time_slice_set+0xb4>)
   30bda:	f002 fbe6 	bl	333aa <printk>
   30bde:	2181      	movs	r1, #129	; 0x81
   30be0:	4628      	mov	r0, r5
   30be2:	f002 ff7b 	bl	33adc <assert_post_action>
   30be6:	e7f0      	b.n	30bca <k_sched_time_slice_set+0x22>
		slice_max_prio = prio;
   30be8:	4b1d      	ldr	r3, [pc, #116]	; (30c60 <k_sched_time_slice_set+0xb8>)
   30bea:	f8c3 8000 	str.w	r8, [r3]
		z_reset_time_slice();
   30bee:	f7ff ffc5 	bl	30b7c <z_reset_time_slice>
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   30bf2:	4818      	ldr	r0, [pc, #96]	; (30c54 <k_sched_time_slice_set+0xac>)
   30bf4:	f7fe fca6 	bl	2f544 <z_spin_unlock_valid>
   30bf8:	b1f8      	cbz	r0, 30c3a <k_sched_time_slice_set+0x92>
	__asm__ volatile(
   30bfa:	f387 8811 	msr	BASEPRI, r7
   30bfe:	f3bf 8f6f 	isb	sy
	LOCKED(&sched_spinlock) {
   30c02:	2401      	movs	r4, #1
   30c04:	bb24      	cbnz	r4, 30c50 <k_sched_time_slice_set+0xa8>
		_current_cpu->slice_ticks = 0;
   30c06:	2300      	movs	r3, #0
   30c08:	4a16      	ldr	r2, [pc, #88]	; (30c64 <k_sched_time_slice_set+0xbc>)
   30c0a:	6113      	str	r3, [r2, #16]
			return (uint32_t)((t * to_hz + off) / from_hz);
   30c0c:	0c75      	lsrs	r5, r6, #17
   30c0e:	03f4      	lsls	r4, r6, #15
   30c10:	f240 30e7 	movw	r0, #999	; 0x3e7
   30c14:	f44f 727a 	mov.w	r2, #1000	; 0x3e8
   30c18:	2300      	movs	r3, #0
   30c1a:	1820      	adds	r0, r4, r0
   30c1c:	f04f 0100 	mov.w	r1, #0
   30c20:	eb45 0101 	adc.w	r1, r5, r1
   30c24:	f7db fb6c 	bl	c300 <__aeabi_uldivmod>
		slice_time = k_ms_to_ticks_ceil32(slice);
   30c28:	4b0f      	ldr	r3, [pc, #60]	; (30c68 <k_sched_time_slice_set+0xc0>)
   30c2a:	6018      	str	r0, [r3, #0]
		if (IS_ENABLED(CONFIG_TICKLESS_KERNEL) && slice > 0) {
   30c2c:	2e00      	cmp	r6, #0
   30c2e:	dddb      	ble.n	30be8 <k_sched_time_slice_set+0x40>
			slice_time = MAX(2, slice_time);
   30c30:	2802      	cmp	r0, #2
   30c32:	bfb8      	it	lt
   30c34:	2002      	movlt	r0, #2
   30c36:	6018      	str	r0, [r3, #0]
   30c38:	e7d6      	b.n	30be8 <k_sched_time_slice_set+0x40>
   30c3a:	4c07      	ldr	r4, [pc, #28]	; (30c58 <k_sched_time_slice_set+0xb0>)
   30c3c:	22ac      	movs	r2, #172	; 0xac
   30c3e:	4621      	mov	r1, r4
   30c40:	4806      	ldr	r0, [pc, #24]	; (30c5c <k_sched_time_slice_set+0xb4>)
   30c42:	f002 fbb2 	bl	333aa <printk>
   30c46:	21ac      	movs	r1, #172	; 0xac
   30c48:	4620      	mov	r0, r4
   30c4a:	f002 ff47 	bl	33adc <assert_post_action>
   30c4e:	e7d4      	b.n	30bfa <k_sched_time_slice_set+0x52>
}
   30c50:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
   30c54:	200034c8 	.word	0x200034c8
   30c58:	0003bde8 	.word	0x0003bde8
   30c5c:	0003bdac 	.word	0x0003bdac
   30c60:	200034cc 	.word	0x200034cc
   30c64:	20003480 	.word	0x20003480
   30c68:	200034d0 	.word	0x200034d0

00030c6c <z_unpend_thread_no_timeout>:
	z_mark_thread_as_not_pending(thread);
	thread->base.pended_on = NULL;
}

ALWAYS_INLINE void z_unpend_thread_no_timeout(struct k_thread *thread)
{
   30c6c:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
   30c6e:	4604      	mov	r4, r0
	LOCKED(&sched_spinlock) {
   30c70:	2500      	movs	r5, #0
	__asm__ volatile(
   30c72:	f04f 0340 	mov.w	r3, #64	; 0x40
   30c76:	f3ef 8611 	mrs	r6, BASEPRI
   30c7a:	f383 8812 	msr	BASEPRI_MAX, r3
   30c7e:	f3bf 8f6f 	isb	sy
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   30c82:	481b      	ldr	r0, [pc, #108]	; (30cf0 <z_unpend_thread_no_timeout+0x84>)
   30c84:	f7fe fc4e 	bl	2f524 <z_spin_lock_valid>
   30c88:	b118      	cbz	r0, 30c92 <z_unpend_thread_no_timeout+0x26>
	z_spin_lock_set_owner(l);
   30c8a:	4819      	ldr	r0, [pc, #100]	; (30cf0 <z_unpend_thread_no_timeout+0x84>)
   30c8c:	f7fe fc6a 	bl	2f564 <z_spin_lock_set_owner>
	return k;
   30c90:	e019      	b.n	30cc6 <z_unpend_thread_no_timeout+0x5a>
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   30c92:	4f18      	ldr	r7, [pc, #96]	; (30cf4 <z_unpend_thread_no_timeout+0x88>)
   30c94:	2281      	movs	r2, #129	; 0x81
   30c96:	4639      	mov	r1, r7
   30c98:	4817      	ldr	r0, [pc, #92]	; (30cf8 <z_unpend_thread_no_timeout+0x8c>)
   30c9a:	f002 fb86 	bl	333aa <printk>
   30c9e:	2181      	movs	r1, #129	; 0x81
   30ca0:	4638      	mov	r0, r7
   30ca2:	f002 ff1b 	bl	33adc <assert_post_action>
   30ca6:	e7f0      	b.n	30c8a <z_unpend_thread_no_timeout+0x1e>
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   30ca8:	4d12      	ldr	r5, [pc, #72]	; (30cf4 <z_unpend_thread_no_timeout+0x88>)
   30caa:	22ac      	movs	r2, #172	; 0xac
   30cac:	4629      	mov	r1, r5
   30cae:	4812      	ldr	r0, [pc, #72]	; (30cf8 <z_unpend_thread_no_timeout+0x8c>)
   30cb0:	f002 fb7b 	bl	333aa <printk>
   30cb4:	21ac      	movs	r1, #172	; 0xac
   30cb6:	4628      	mov	r0, r5
   30cb8:	f002 ff10 	bl	33adc <assert_post_action>
	__asm__ volatile(
   30cbc:	f386 8811 	msr	BASEPRI, r6
   30cc0:	f3bf 8f6f 	isb	sy
   30cc4:	2501      	movs	r5, #1
   30cc6:	b98d      	cbnz	r5, 30cec <z_unpend_thread_no_timeout+0x80>
	_priq_wait_remove(&pended_on_thread(thread)->waitq, thread);
   30cc8:	4620      	mov	r0, r4
   30cca:	f7ff ff2f 	bl	30b2c <pended_on_thread>
   30cce:	4621      	mov	r1, r4
   30cd0:	f000 f8b2 	bl	30e38 <z_priq_dumb_remove>
	thread->base.thread_state &= ~_THREAD_PENDING;
   30cd4:	7b63      	ldrb	r3, [r4, #13]
   30cd6:	f023 0302 	bic.w	r3, r3, #2
   30cda:	7363      	strb	r3, [r4, #13]
	thread->base.pended_on = NULL;
   30cdc:	2300      	movs	r3, #0
   30cde:	60a3      	str	r3, [r4, #8]
   30ce0:	4803      	ldr	r0, [pc, #12]	; (30cf0 <z_unpend_thread_no_timeout+0x84>)
   30ce2:	f7fe fc2f 	bl	2f544 <z_spin_unlock_valid>
   30ce6:	2800      	cmp	r0, #0
   30ce8:	d1e8      	bne.n	30cbc <z_unpend_thread_no_timeout+0x50>
   30cea:	e7dd      	b.n	30ca8 <z_unpend_thread_no_timeout+0x3c>
		unpend_thread_no_timeout(thread);
	}
}
   30cec:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
   30cee:	bf00      	nop
   30cf0:	200034c8 	.word	0x200034c8
   30cf4:	0003bde8 	.word	0x0003bde8
   30cf8:	0003bdac 	.word	0x0003bdac

00030cfc <z_reschedule>:
	return new_thread != _current;
#endif
}

void z_reschedule(struct k_spinlock *lock, k_spinlock_key_t key)
{
   30cfc:	b538      	push	{r3, r4, r5, lr}
	if (resched(key.key) && need_swap()) {
   30cfe:	460c      	mov	r4, r1
	return arch_irq_unlocked(key) && !arch_is_in_isr();
   30d00:	b921      	cbnz	r1, 30d0c <z_reschedule+0x10>
   30d02:	f3ef 8305 	mrs	r3, IPSR
   30d06:	b913      	cbnz	r3, 30d0e <z_reschedule+0x12>
   30d08:	2101      	movs	r1, #1
   30d0a:	e000      	b.n	30d0e <z_reschedule+0x12>
   30d0c:	2100      	movs	r1, #0
	if (resched(key.key) && need_swap()) {
   30d0e:	f011 0f01 	tst.w	r1, #1
   30d12:	d016      	beq.n	30d42 <z_reschedule+0x46>
	new_thread = _kernel.ready_q.cache;
   30d14:	4b14      	ldr	r3, [pc, #80]	; (30d68 <z_reschedule+0x6c>)
   30d16:	69da      	ldr	r2, [r3, #28]
	return new_thread != _current;
   30d18:	689b      	ldr	r3, [r3, #8]
	if (resched(key.key) && need_swap()) {
   30d1a:	429a      	cmp	r2, r3
   30d1c:	d011      	beq.n	30d42 <z_reschedule+0x46>
 */
static ALWAYS_INLINE void k_spin_release(struct k_spinlock *l)
{
	ARG_UNUSED(l);
#ifdef CONFIG_SPIN_VALIDATE
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   30d1e:	f7fe fc11 	bl	2f544 <z_spin_unlock_valid>
   30d22:	b118      	cbz	r0, 30d2c <z_reschedule+0x30>
	ret = arch_swap(key);
   30d24:	4620      	mov	r0, r4
   30d26:	f7ee fbbb 	bl	1f4a0 <arch_swap>
		z_swap(lock, key);
   30d2a:	e011      	b.n	30d50 <z_reschedule+0x54>
   30d2c:	4d0f      	ldr	r5, [pc, #60]	; (30d6c <z_reschedule+0x70>)
   30d2e:	22c3      	movs	r2, #195	; 0xc3
   30d30:	4629      	mov	r1, r5
   30d32:	480f      	ldr	r0, [pc, #60]	; (30d70 <z_reschedule+0x74>)
   30d34:	f002 fb39 	bl	333aa <printk>
   30d38:	21c3      	movs	r1, #195	; 0xc3
   30d3a:	4628      	mov	r0, r5
   30d3c:	f002 fece 	bl	33adc <assert_post_action>
   30d40:	e7f0      	b.n	30d24 <z_reschedule+0x28>
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   30d42:	f7fe fbff 	bl	2f544 <z_spin_unlock_valid>
   30d46:	b120      	cbz	r0, 30d52 <z_reschedule+0x56>
   30d48:	f384 8811 	msr	BASEPRI, r4
   30d4c:	f3bf 8f6f 	isb	sy
	} else {
		k_spin_unlock(lock, key);
	}
}
   30d50:	bd38      	pop	{r3, r4, r5, pc}
   30d52:	4d06      	ldr	r5, [pc, #24]	; (30d6c <z_reschedule+0x70>)
   30d54:	22ac      	movs	r2, #172	; 0xac
   30d56:	4629      	mov	r1, r5
   30d58:	4805      	ldr	r0, [pc, #20]	; (30d70 <z_reschedule+0x74>)
   30d5a:	f002 fb26 	bl	333aa <printk>
   30d5e:	21ac      	movs	r1, #172	; 0xac
   30d60:	4628      	mov	r0, r5
   30d62:	f002 febb 	bl	33adc <assert_post_action>
   30d66:	e7ef      	b.n	30d48 <z_reschedule+0x4c>
   30d68:	20003480 	.word	0x20003480
   30d6c:	0003bde8 	.word	0x0003bde8
   30d70:	0003bdac 	.word	0x0003bdac

00030d74 <k_sched_lock>:
		irq_unlock(key);
	}
}

void k_sched_lock(void)
{
   30d74:	b570      	push	{r4, r5, r6, lr}
	LOCKED(&sched_spinlock) {
   30d76:	2400      	movs	r4, #0
	__asm__ volatile(
   30d78:	f04f 0340 	mov.w	r3, #64	; 0x40
   30d7c:	f3ef 8511 	mrs	r5, BASEPRI
   30d80:	f383 8812 	msr	BASEPRI_MAX, r3
   30d84:	f3bf 8f6f 	isb	sy
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   30d88:	4826      	ldr	r0, [pc, #152]	; (30e24 <k_sched_lock+0xb0>)
   30d8a:	f7fe fbcb 	bl	2f524 <z_spin_lock_valid>
   30d8e:	b118      	cbz	r0, 30d98 <k_sched_lock+0x24>
	z_spin_lock_set_owner(l);
   30d90:	4824      	ldr	r0, [pc, #144]	; (30e24 <k_sched_lock+0xb0>)
   30d92:	f7fe fbe7 	bl	2f564 <z_spin_lock_set_owner>
	return k;
   30d96:	e02f      	b.n	30df8 <k_sched_lock+0x84>
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   30d98:	4e23      	ldr	r6, [pc, #140]	; (30e28 <k_sched_lock+0xb4>)
   30d9a:	2281      	movs	r2, #129	; 0x81
   30d9c:	4631      	mov	r1, r6
   30d9e:	4823      	ldr	r0, [pc, #140]	; (30e2c <k_sched_lock+0xb8>)
   30da0:	f002 fb03 	bl	333aa <printk>
   30da4:	2181      	movs	r1, #129	; 0x81
   30da6:	4630      	mov	r0, r6
   30da8:	f002 fe98 	bl	33adc <assert_post_action>
   30dac:	e7f0      	b.n	30d90 <k_sched_lock+0x1c>
	__ASSERT(!arch_is_in_isr(), "");
   30dae:	4c20      	ldr	r4, [pc, #128]	; (30e30 <k_sched_lock+0xbc>)
   30db0:	22fd      	movs	r2, #253	; 0xfd
   30db2:	4621      	mov	r1, r4
   30db4:	481d      	ldr	r0, [pc, #116]	; (30e2c <k_sched_lock+0xb8>)
   30db6:	f002 faf8 	bl	333aa <printk>
   30dba:	21fd      	movs	r1, #253	; 0xfd
   30dbc:	4620      	mov	r0, r4
   30dbe:	f002 fe8d 	bl	33adc <assert_post_action>
   30dc2:	e01e      	b.n	30e02 <k_sched_lock+0x8e>
	__ASSERT(_current->base.sched_locked != 1U, "");
   30dc4:	4c1a      	ldr	r4, [pc, #104]	; (30e30 <k_sched_lock+0xbc>)
   30dc6:	22fe      	movs	r2, #254	; 0xfe
   30dc8:	4621      	mov	r1, r4
   30dca:	4818      	ldr	r0, [pc, #96]	; (30e2c <k_sched_lock+0xb8>)
   30dcc:	f002 faed 	bl	333aa <printk>
   30dd0:	21fe      	movs	r1, #254	; 0xfe
   30dd2:	4620      	mov	r0, r4
   30dd4:	f002 fe82 	bl	33adc <assert_post_action>
   30dd8:	e018      	b.n	30e0c <k_sched_lock+0x98>
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   30dda:	4c13      	ldr	r4, [pc, #76]	; (30e28 <k_sched_lock+0xb4>)
   30ddc:	22ac      	movs	r2, #172	; 0xac
   30dde:	4621      	mov	r1, r4
   30de0:	4812      	ldr	r0, [pc, #72]	; (30e2c <k_sched_lock+0xb8>)
   30de2:	f002 fae2 	bl	333aa <printk>
   30de6:	21ac      	movs	r1, #172	; 0xac
   30de8:	4620      	mov	r0, r4
   30dea:	f002 fe77 	bl	33adc <assert_post_action>
	__asm__ volatile(
   30dee:	f385 8811 	msr	BASEPRI, r5
   30df2:	f3bf 8f6f 	isb	sy
   30df6:	2401      	movs	r4, #1
   30df8:	b99c      	cbnz	r4, 30e22 <k_sched_lock+0xae>
   30dfa:	f3ef 8305 	mrs	r3, IPSR
	__ASSERT(!arch_is_in_isr(), "");
   30dfe:	2b00      	cmp	r3, #0
   30e00:	d1d5      	bne.n	30dae <k_sched_lock+0x3a>
	__ASSERT(_current->base.sched_locked != 1U, "");
   30e02:	4b0c      	ldr	r3, [pc, #48]	; (30e34 <k_sched_lock+0xc0>)
   30e04:	689b      	ldr	r3, [r3, #8]
   30e06:	7bdb      	ldrb	r3, [r3, #15]
   30e08:	2b01      	cmp	r3, #1
   30e0a:	d0db      	beq.n	30dc4 <k_sched_lock+0x50>
	--_current->base.sched_locked;
   30e0c:	4b09      	ldr	r3, [pc, #36]	; (30e34 <k_sched_lock+0xc0>)
   30e0e:	689a      	ldr	r2, [r3, #8]
   30e10:	7bd3      	ldrb	r3, [r2, #15]
   30e12:	3b01      	subs	r3, #1
   30e14:	73d3      	strb	r3, [r2, #15]
   30e16:	4803      	ldr	r0, [pc, #12]	; (30e24 <k_sched_lock+0xb0>)
   30e18:	f7fe fb94 	bl	2f544 <z_spin_unlock_valid>
   30e1c:	2800      	cmp	r0, #0
   30e1e:	d1e6      	bne.n	30dee <k_sched_lock+0x7a>
   30e20:	e7db      	b.n	30dda <k_sched_lock+0x66>
		SYS_PORT_TRACING_FUNC(k_thread, sched_lock);

		z_sched_lock();
	}
}
   30e22:	bd70      	pop	{r4, r5, r6, pc}
   30e24:	200034c8 	.word	0x200034c8
   30e28:	0003bde8 	.word	0x0003bde8
   30e2c:	0003bdac 	.word	0x0003bdac
   30e30:	0003f9dc 	.word	0x0003f9dc
   30e34:	20003480 	.word	0x20003480

00030e38 <z_priq_dumb_remove>:
#endif
}
#endif

void z_priq_dumb_remove(sys_dlist_t *pq, struct k_thread *thread)
{
   30e38:	b538      	push	{r3, r4, r5, lr}
   30e3a:	460c      	mov	r4, r1
	__ASSERT_NO_MSG(!z_is_idle_thread_object(thread));
   30e3c:	4b0b      	ldr	r3, [pc, #44]	; (30e6c <z_priq_dumb_remove+0x34>)
   30e3e:	4299      	cmp	r1, r3
   30e40:	d007      	beq.n	30e52 <z_priq_dumb_remove+0x1a>
 * @return N/A
 */

static inline void sys_dlist_remove(sys_dnode_t *node)
{
	sys_dnode_t *const prev = node->prev;
   30e42:	6862      	ldr	r2, [r4, #4]
	sys_dnode_t *const next = node->next;
   30e44:	6823      	ldr	r3, [r4, #0]

	prev->next = next;
   30e46:	6013      	str	r3, [r2, #0]
	next->prev = prev;
   30e48:	605a      	str	r2, [r3, #4]
	node->next = NULL;
   30e4a:	2300      	movs	r3, #0
   30e4c:	6023      	str	r3, [r4, #0]
	node->prev = NULL;
   30e4e:	6063      	str	r3, [r4, #4]

	sys_dlist_remove(&thread->base.qnode_dlist);
}
   30e50:	bd38      	pop	{r3, r4, r5, pc}
	__ASSERT_NO_MSG(!z_is_idle_thread_object(thread));
   30e52:	4d07      	ldr	r5, [pc, #28]	; (30e70 <z_priq_dumb_remove+0x38>)
   30e54:	f240 32b5 	movw	r2, #949	; 0x3b5
   30e58:	4629      	mov	r1, r5
   30e5a:	4806      	ldr	r0, [pc, #24]	; (30e74 <z_priq_dumb_remove+0x3c>)
   30e5c:	f002 faa5 	bl	333aa <printk>
   30e60:	f240 31b5 	movw	r1, #949	; 0x3b5
   30e64:	4628      	mov	r0, r5
   30e66:	f002 fe39 	bl	33adc <assert_post_action>
   30e6a:	e7ea      	b.n	30e42 <z_priq_dumb_remove+0xa>
   30e6c:	20001ea0 	.word	0x20001ea0
   30e70:	0003fa58 	.word	0x0003fa58
   30e74:	0003bdac 	.word	0x0003bdac

00030e78 <z_unpend_thread>:
{
   30e78:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
   30e7a:	4604      	mov	r4, r0
	LOCKED(&sched_spinlock) {
   30e7c:	2500      	movs	r5, #0
	__asm__ volatile(
   30e7e:	f04f 0340 	mov.w	r3, #64	; 0x40
   30e82:	f3ef 8611 	mrs	r6, BASEPRI
   30e86:	f383 8812 	msr	BASEPRI_MAX, r3
   30e8a:	f3bf 8f6f 	isb	sy
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   30e8e:	481d      	ldr	r0, [pc, #116]	; (30f04 <z_unpend_thread+0x8c>)
   30e90:	f7fe fb48 	bl	2f524 <z_spin_lock_valid>
   30e94:	b118      	cbz	r0, 30e9e <z_unpend_thread+0x26>
	z_spin_lock_set_owner(l);
   30e96:	481b      	ldr	r0, [pc, #108]	; (30f04 <z_unpend_thread+0x8c>)
   30e98:	f7fe fb64 	bl	2f564 <z_spin_lock_set_owner>
	return k;
   30e9c:	e019      	b.n	30ed2 <z_unpend_thread+0x5a>
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   30e9e:	4f1a      	ldr	r7, [pc, #104]	; (30f08 <z_unpend_thread+0x90>)
   30ea0:	2281      	movs	r2, #129	; 0x81
   30ea2:	4639      	mov	r1, r7
   30ea4:	4819      	ldr	r0, [pc, #100]	; (30f0c <z_unpend_thread+0x94>)
   30ea6:	f002 fa80 	bl	333aa <printk>
   30eaa:	2181      	movs	r1, #129	; 0x81
   30eac:	4638      	mov	r0, r7
   30eae:	f002 fe15 	bl	33adc <assert_post_action>
   30eb2:	e7f0      	b.n	30e96 <z_unpend_thread+0x1e>
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   30eb4:	4d14      	ldr	r5, [pc, #80]	; (30f08 <z_unpend_thread+0x90>)
   30eb6:	22ac      	movs	r2, #172	; 0xac
   30eb8:	4629      	mov	r1, r5
   30eba:	4814      	ldr	r0, [pc, #80]	; (30f0c <z_unpend_thread+0x94>)
   30ebc:	f002 fa75 	bl	333aa <printk>
   30ec0:	21ac      	movs	r1, #172	; 0xac
   30ec2:	4628      	mov	r0, r5
   30ec4:	f002 fe0a 	bl	33adc <assert_post_action>
	__asm__ volatile(
   30ec8:	f386 8811 	msr	BASEPRI, r6
   30ecc:	f3bf 8f6f 	isb	sy
   30ed0:	2501      	movs	r5, #1
   30ed2:	b98d      	cbnz	r5, 30ef8 <z_unpend_thread+0x80>
	_priq_wait_remove(&pended_on_thread(thread)->waitq, thread);
   30ed4:	4620      	mov	r0, r4
   30ed6:	f7ff fe29 	bl	30b2c <pended_on_thread>
   30eda:	4621      	mov	r1, r4
   30edc:	f7ff ffac 	bl	30e38 <z_priq_dumb_remove>
	thread->base.thread_state &= ~_THREAD_PENDING;
   30ee0:	7b63      	ldrb	r3, [r4, #13]
   30ee2:	f023 0302 	bic.w	r3, r3, #2
   30ee6:	7363      	strb	r3, [r4, #13]
	thread->base.pended_on = NULL;
   30ee8:	2300      	movs	r3, #0
   30eea:	60a3      	str	r3, [r4, #8]
   30eec:	4805      	ldr	r0, [pc, #20]	; (30f04 <z_unpend_thread+0x8c>)
   30eee:	f7fe fb29 	bl	2f544 <z_spin_unlock_valid>
   30ef2:	2800      	cmp	r0, #0
   30ef4:	d1e8      	bne.n	30ec8 <z_unpend_thread+0x50>
   30ef6:	e7dd      	b.n	30eb4 <z_unpend_thread+0x3c>
}

static inline int z_abort_thread_timeout(struct k_thread *thread)
{
	return z_abort_timeout(&thread->base.timeout);
   30ef8:	f104 0018 	add.w	r0, r4, #24
   30efc:	f001 f90e 	bl	3211c <z_abort_timeout>
}
   30f00:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
   30f02:	bf00      	nop
   30f04:	200034c8 	.word	0x200034c8
   30f08:	0003bde8 	.word	0x0003bde8
   30f0c:	0003bdac 	.word	0x0003bdac

00030f10 <update_cache>:
{
   30f10:	b538      	push	{r3, r4, r5, lr}
   30f12:	4604      	mov	r4, r0
	thread = _priq_run_best(&_kernel.ready_q.runq);
   30f14:	4816      	ldr	r0, [pc, #88]	; (30f70 <update_cache+0x60>)
   30f16:	f00a fa08 	bl	3b32a <z_priq_dumb_best>
	return (thread != NULL) ? thread : _current_cpu->idle_thread;
   30f1a:	4605      	mov	r5, r0
   30f1c:	b188      	cbz	r0, 30f42 <update_cache+0x32>
	if (preempt_ok != 0) {
   30f1e:	b9f4      	cbnz	r4, 30f5e <update_cache+0x4e>
	__ASSERT(_current != NULL, "");
   30f20:	4b14      	ldr	r3, [pc, #80]	; (30f74 <update_cache+0x64>)
   30f22:	689b      	ldr	r3, [r3, #8]
   30f24:	b183      	cbz	r3, 30f48 <update_cache+0x38>
	if (z_is_thread_prevented_from_running(_current)) {
   30f26:	4b13      	ldr	r3, [pc, #76]	; (30f74 <update_cache+0x64>)
   30f28:	689b      	ldr	r3, [r3, #8]
	uint8_t state = thread->base.thread_state;
   30f2a:	7b5a      	ldrb	r2, [r3, #13]
   30f2c:	f012 0f1f 	tst.w	r2, #31
   30f30:	d115      	bne.n	30f5e <update_cache+0x4e>
	return node->next != NULL;
   30f32:	69aa      	ldr	r2, [r5, #24]
	if (IS_ENABLED(CONFIG_SWAP_NONATOMIC)
   30f34:	b99a      	cbnz	r2, 30f5e <update_cache+0x4e>
	return thread->base.preempt <= _PREEMPT_THRESHOLD;
   30f36:	89da      	ldrh	r2, [r3, #14]
	if (is_preempt(_current) || is_metairq(thread)) {
   30f38:	2a7f      	cmp	r2, #127	; 0x7f
   30f3a:	d910      	bls.n	30f5e <update_cache+0x4e>
		_kernel.ready_q.cache = _current;
   30f3c:	4a0d      	ldr	r2, [pc, #52]	; (30f74 <update_cache+0x64>)
   30f3e:	61d3      	str	r3, [r2, #28]
   30f40:	e015      	b.n	30f6e <update_cache+0x5e>
	return (thread != NULL) ? thread : _current_cpu->idle_thread;
   30f42:	4b0c      	ldr	r3, [pc, #48]	; (30f74 <update_cache+0x64>)
   30f44:	68dd      	ldr	r5, [r3, #12]
   30f46:	e7ea      	b.n	30f1e <update_cache+0xe>
	__ASSERT(_current != NULL, "");
   30f48:	4c0b      	ldr	r4, [pc, #44]	; (30f78 <update_cache+0x68>)
   30f4a:	2281      	movs	r2, #129	; 0x81
   30f4c:	4621      	mov	r1, r4
   30f4e:	480b      	ldr	r0, [pc, #44]	; (30f7c <update_cache+0x6c>)
   30f50:	f002 fa2b 	bl	333aa <printk>
   30f54:	2181      	movs	r1, #129	; 0x81
   30f56:	4620      	mov	r0, r4
   30f58:	f002 fdc0 	bl	33adc <assert_post_action>
   30f5c:	e7e3      	b.n	30f26 <update_cache+0x16>
		if (thread != _current) {
   30f5e:	4b05      	ldr	r3, [pc, #20]	; (30f74 <update_cache+0x64>)
   30f60:	689b      	ldr	r3, [r3, #8]
   30f62:	42ab      	cmp	r3, r5
   30f64:	d001      	beq.n	30f6a <update_cache+0x5a>
			z_reset_time_slice();
   30f66:	f7ff fe09 	bl	30b7c <z_reset_time_slice>
		_kernel.ready_q.cache = thread;
   30f6a:	4b02      	ldr	r3, [pc, #8]	; (30f74 <update_cache+0x64>)
   30f6c:	61dd      	str	r5, [r3, #28]
}
   30f6e:	bd38      	pop	{r3, r4, r5, pc}
   30f70:	200034a0 	.word	0x200034a0
   30f74:	20003480 	.word	0x20003480
   30f78:	0003fa58 	.word	0x0003fa58
   30f7c:	0003bdac 	.word	0x0003bdac

00030f80 <move_thread_to_end_of_prio_q>:
{
   30f80:	b538      	push	{r3, r4, r5, lr}
   30f82:	4605      	mov	r5, r0
	return (thread->base.thread_state & state) != 0U;
   30f84:	7b42      	ldrb	r2, [r0, #13]
	if (z_is_thread_queued(thread)) {
   30f86:	f990 300d 	ldrsb.w	r3, [r0, #13]
   30f8a:	2b00      	cmp	r3, #0
   30f8c:	db2b      	blt.n	30fe6 <move_thread_to_end_of_prio_q+0x66>
	thread->base.thread_state |= _THREAD_QUEUED;
   30f8e:	7b6b      	ldrb	r3, [r5, #13]
   30f90:	f063 037f 	orn	r3, r3, #127	; 0x7f
   30f94:	736b      	strb	r3, [r5, #13]
	__ASSERT_NO_MSG(!z_is_idle_thread_object(thread));
   30f96:	4b21      	ldr	r3, [pc, #132]	; (3101c <move_thread_to_end_of_prio_q+0x9c>)
   30f98:	429d      	cmp	r5, r3
   30f9a:	d02c      	beq.n	30ff6 <move_thread_to_end_of_prio_q+0x76>
	return list->head == list;
   30f9c:	4b20      	ldr	r3, [pc, #128]	; (31020 <move_thread_to_end_of_prio_q+0xa0>)
   30f9e:	f853 4f20 	ldr.w	r4, [r3, #32]!
	return sys_dlist_is_empty(list) ? NULL : list->head;
   30fa2:	429c      	cmp	r4, r3
   30fa4:	d038      	beq.n	31018 <move_thread_to_end_of_prio_q+0x98>
	SYS_DLIST_FOR_EACH_CONTAINER(pq, t, base.qnode_dlist) {
   30fa6:	b16c      	cbz	r4, 30fc4 <move_thread_to_end_of_prio_q+0x44>
		if (z_sched_prio_cmp(thread, t) > 0) {
   30fa8:	4621      	mov	r1, r4
   30faa:	4628      	mov	r0, r5
   30fac:	f00a f99e 	bl	3b2ec <z_sched_prio_cmp>
   30fb0:	2800      	cmp	r0, #0
   30fb2:	dc2b      	bgt.n	3100c <move_thread_to_end_of_prio_q+0x8c>
	return (node != NULL) ? sys_dlist_peek_next_no_check(list, node) : NULL;
   30fb4:	b134      	cbz	r4, 30fc4 <move_thread_to_end_of_prio_q+0x44>
	return (node == list->tail) ? NULL : node->next;
   30fb6:	4b1a      	ldr	r3, [pc, #104]	; (31020 <move_thread_to_end_of_prio_q+0xa0>)
   30fb8:	6a5b      	ldr	r3, [r3, #36]	; 0x24
   30fba:	429c      	cmp	r4, r3
   30fbc:	d002      	beq.n	30fc4 <move_thread_to_end_of_prio_q+0x44>
   30fbe:	6824      	ldr	r4, [r4, #0]
	SYS_DLIST_FOR_EACH_CONTAINER(pq, t, base.qnode_dlist) {
   30fc0:	2c00      	cmp	r4, #0
   30fc2:	d1f0      	bne.n	30fa6 <move_thread_to_end_of_prio_q+0x26>
	sys_dnode_t *const tail = list->tail;
   30fc4:	4b16      	ldr	r3, [pc, #88]	; (31020 <move_thread_to_end_of_prio_q+0xa0>)
   30fc6:	6a5a      	ldr	r2, [r3, #36]	; 0x24
	node->next = list;
   30fc8:	f103 0120 	add.w	r1, r3, #32
   30fcc:	6029      	str	r1, [r5, #0]
	node->prev = tail;
   30fce:	606a      	str	r2, [r5, #4]
	tail->next = node;
   30fd0:	6015      	str	r5, [r2, #0]
	list->tail = node;
   30fd2:	625d      	str	r5, [r3, #36]	; 0x24
	update_cache(thread == _current);
   30fd4:	4b12      	ldr	r3, [pc, #72]	; (31020 <move_thread_to_end_of_prio_q+0xa0>)
   30fd6:	6898      	ldr	r0, [r3, #8]
   30fd8:	42a8      	cmp	r0, r5
   30fda:	bf14      	ite	ne
   30fdc:	2000      	movne	r0, #0
   30fde:	2001      	moveq	r0, #1
   30fe0:	f7ff ff96 	bl	30f10 <update_cache>
}
   30fe4:	bd38      	pop	{r3, r4, r5, pc}
	thread->base.thread_state &= ~_THREAD_QUEUED;
   30fe6:	f002 027f 	and.w	r2, r2, #127	; 0x7f
   30fea:	7342      	strb	r2, [r0, #13]
		_priq_run_remove(pq, thread);
   30fec:	4601      	mov	r1, r0
   30fee:	480d      	ldr	r0, [pc, #52]	; (31024 <move_thread_to_end_of_prio_q+0xa4>)
   30ff0:	f7ff ff22 	bl	30e38 <z_priq_dumb_remove>
}
   30ff4:	e7cb      	b.n	30f8e <move_thread_to_end_of_prio_q+0xe>
	__ASSERT_NO_MSG(!z_is_idle_thread_object(thread));
   30ff6:	4c0c      	ldr	r4, [pc, #48]	; (31028 <move_thread_to_end_of_prio_q+0xa8>)
   30ff8:	22b1      	movs	r2, #177	; 0xb1
   30ffa:	4621      	mov	r1, r4
   30ffc:	480b      	ldr	r0, [pc, #44]	; (3102c <move_thread_to_end_of_prio_q+0xac>)
   30ffe:	f002 f9d4 	bl	333aa <printk>
   31002:	21b1      	movs	r1, #177	; 0xb1
   31004:	4620      	mov	r0, r4
   31006:	f002 fd69 	bl	33adc <assert_post_action>
   3100a:	e7c7      	b.n	30f9c <move_thread_to_end_of_prio_q+0x1c>
	sys_dnode_t *const prev = successor->prev;
   3100c:	6863      	ldr	r3, [r4, #4]
	node->prev = prev;
   3100e:	606b      	str	r3, [r5, #4]
	node->next = successor;
   31010:	602c      	str	r4, [r5, #0]
	prev->next = node;
   31012:	601d      	str	r5, [r3, #0]
	successor->prev = node;
   31014:	6065      	str	r5, [r4, #4]
}
   31016:	e7dd      	b.n	30fd4 <move_thread_to_end_of_prio_q+0x54>
	SYS_DLIST_FOR_EACH_CONTAINER(pq, t, base.qnode_dlist) {
   31018:	2400      	movs	r4, #0
   3101a:	e7c4      	b.n	30fa6 <move_thread_to_end_of_prio_q+0x26>
   3101c:	20001ea0 	.word	0x20001ea0
   31020:	20003480 	.word	0x20003480
   31024:	200034a0 	.word	0x200034a0
   31028:	0003fa58 	.word	0x0003fa58
   3102c:	0003bdac 	.word	0x0003bdac

00031030 <z_time_slice>:
{
   31030:	b570      	push	{r4, r5, r6, lr}
   31032:	4604      	mov	r4, r0
	__asm__ volatile(
   31034:	f04f 0340 	mov.w	r3, #64	; 0x40
   31038:	f3ef 8511 	mrs	r5, BASEPRI
   3103c:	f383 8812 	msr	BASEPRI_MAX, r3
   31040:	f3bf 8f6f 	isb	sy
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   31044:	4834      	ldr	r0, [pc, #208]	; (31118 <z_time_slice+0xe8>)
   31046:	f7fe fa6d 	bl	2f524 <z_spin_lock_valid>
   3104a:	b338      	cbz	r0, 3109c <z_time_slice+0x6c>
	z_spin_lock_set_owner(l);
   3104c:	4832      	ldr	r0, [pc, #200]	; (31118 <z_time_slice+0xe8>)
   3104e:	f7fe fa89 	bl	2f564 <z_spin_lock_set_owner>
	if (pending_current == _current) {
   31052:	4b32      	ldr	r3, [pc, #200]	; (3111c <z_time_slice+0xec>)
   31054:	689b      	ldr	r3, [r3, #8]
   31056:	4a32      	ldr	r2, [pc, #200]	; (31120 <z_time_slice+0xf0>)
   31058:	6812      	ldr	r2, [r2, #0]
   3105a:	4293      	cmp	r3, r2
   3105c:	d029      	beq.n	310b2 <z_time_slice+0x82>
	pending_current = NULL;
   3105e:	4a30      	ldr	r2, [pc, #192]	; (31120 <z_time_slice+0xf0>)
   31060:	2100      	movs	r1, #0
   31062:	6011      	str	r1, [r2, #0]
	if (slice_time && sliceable(_current)) {
   31064:	4a2f      	ldr	r2, [pc, #188]	; (31124 <z_time_slice+0xf4>)
   31066:	6812      	ldr	r2, [r2, #0]
   31068:	2a00      	cmp	r2, #0
   3106a:	d03e      	beq.n	310ea <z_time_slice+0xba>
	return thread->base.preempt <= _PREEMPT_THRESHOLD;
   3106c:	89da      	ldrh	r2, [r3, #14]
		&& !z_is_idle_thread_object(thread);
   3106e:	2a7f      	cmp	r2, #127	; 0x7f
   31070:	d83b      	bhi.n	310ea <z_time_slice+0xba>
	uint8_t state = thread->base.thread_state;
   31072:	7b5a      	ldrb	r2, [r3, #13]
		&& !z_is_thread_prevented_from_running(thread)
   31074:	f012 0f1f 	tst.w	r2, #31
   31078:	d137      	bne.n	310ea <z_time_slice+0xba>
		&& !z_is_prio_higher(thread->base.prio, slice_max_prio)
   3107a:	f993 100e 	ldrsb.w	r1, [r3, #14]
   3107e:	4a2a      	ldr	r2, [pc, #168]	; (31128 <z_time_slice+0xf8>)
   31080:	6812      	ldr	r2, [r2, #0]
   31082:	4291      	cmp	r1, r2
   31084:	db31      	blt.n	310ea <z_time_slice+0xba>
		&& !z_is_idle_thread_object(thread);
   31086:	4a29      	ldr	r2, [pc, #164]	; (3112c <z_time_slice+0xfc>)
   31088:	4293      	cmp	r3, r2
   3108a:	d02e      	beq.n	310ea <z_time_slice+0xba>
		if (ticks >= _current_cpu->slice_ticks) {
   3108c:	4a23      	ldr	r2, [pc, #140]	; (3111c <z_time_slice+0xec>)
   3108e:	6910      	ldr	r0, [r2, #16]
   31090:	42a0      	cmp	r0, r4
   31092:	dd24      	ble.n	310de <z_time_slice+0xae>
			_current_cpu->slice_ticks -= ticks;
   31094:	1b00      	subs	r0, r0, r4
   31096:	4b21      	ldr	r3, [pc, #132]	; (3111c <z_time_slice+0xec>)
   31098:	6118      	str	r0, [r3, #16]
   3109a:	e029      	b.n	310f0 <z_time_slice+0xc0>
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   3109c:	4e24      	ldr	r6, [pc, #144]	; (31130 <z_time_slice+0x100>)
   3109e:	2281      	movs	r2, #129	; 0x81
   310a0:	4631      	mov	r1, r6
   310a2:	4824      	ldr	r0, [pc, #144]	; (31134 <z_time_slice+0x104>)
   310a4:	f002 f981 	bl	333aa <printk>
   310a8:	2181      	movs	r1, #129	; 0x81
   310aa:	4630      	mov	r0, r6
   310ac:	f002 fd16 	bl	33adc <assert_post_action>
   310b0:	e7cc      	b.n	3104c <z_time_slice+0x1c>
		z_reset_time_slice();
   310b2:	f7ff fd63 	bl	30b7c <z_reset_time_slice>
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   310b6:	4818      	ldr	r0, [pc, #96]	; (31118 <z_time_slice+0xe8>)
   310b8:	f7fe fa44 	bl	2f544 <z_spin_unlock_valid>
   310bc:	b120      	cbz	r0, 310c8 <z_time_slice+0x98>
	__asm__ volatile(
   310be:	f385 8811 	msr	BASEPRI, r5
   310c2:	f3bf 8f6f 	isb	sy
		return;
   310c6:	e01b      	b.n	31100 <z_time_slice+0xd0>
   310c8:	4c19      	ldr	r4, [pc, #100]	; (31130 <z_time_slice+0x100>)
   310ca:	22ac      	movs	r2, #172	; 0xac
   310cc:	4621      	mov	r1, r4
   310ce:	4819      	ldr	r0, [pc, #100]	; (31134 <z_time_slice+0x104>)
   310d0:	f002 f96b 	bl	333aa <printk>
   310d4:	21ac      	movs	r1, #172	; 0xac
   310d6:	4620      	mov	r0, r4
   310d8:	f002 fd00 	bl	33adc <assert_post_action>
   310dc:	e7ef      	b.n	310be <z_time_slice+0x8e>
			move_thread_to_end_of_prio_q(_current);
   310de:	4618      	mov	r0, r3
   310e0:	f7ff ff4e 	bl	30f80 <move_thread_to_end_of_prio_q>
			z_reset_time_slice();
   310e4:	f7ff fd4a 	bl	30b7c <z_reset_time_slice>
   310e8:	e002      	b.n	310f0 <z_time_slice+0xc0>
		_current_cpu->slice_ticks = 0;
   310ea:	4b0c      	ldr	r3, [pc, #48]	; (3111c <z_time_slice+0xec>)
   310ec:	2200      	movs	r2, #0
   310ee:	611a      	str	r2, [r3, #16]
   310f0:	4809      	ldr	r0, [pc, #36]	; (31118 <z_time_slice+0xe8>)
   310f2:	f7fe fa27 	bl	2f544 <z_spin_unlock_valid>
   310f6:	b120      	cbz	r0, 31102 <z_time_slice+0xd2>
   310f8:	f385 8811 	msr	BASEPRI, r5
   310fc:	f3bf 8f6f 	isb	sy
}
   31100:	bd70      	pop	{r4, r5, r6, pc}
   31102:	4c0b      	ldr	r4, [pc, #44]	; (31130 <z_time_slice+0x100>)
   31104:	22ac      	movs	r2, #172	; 0xac
   31106:	4621      	mov	r1, r4
   31108:	480a      	ldr	r0, [pc, #40]	; (31134 <z_time_slice+0x104>)
   3110a:	f002 f94e 	bl	333aa <printk>
   3110e:	21ac      	movs	r1, #172	; 0xac
   31110:	4620      	mov	r0, r4
   31112:	f002 fce3 	bl	33adc <assert_post_action>
   31116:	e7ef      	b.n	310f8 <z_time_slice+0xc8>
   31118:	200034c8 	.word	0x200034c8
   3111c:	20003480 	.word	0x20003480
   31120:	200034c4 	.word	0x200034c4
   31124:	200034d0 	.word	0x200034d0
   31128:	200034cc 	.word	0x200034cc
   3112c:	20001ea0 	.word	0x20001ea0
   31130:	0003bde8 	.word	0x0003bde8
   31134:	0003bdac 	.word	0x0003bdac

00031138 <ready_thread>:
{
   31138:	b538      	push	{r3, r4, r5, lr}
	return (thread->base.thread_state & state) != 0U;
   3113a:	7b43      	ldrb	r3, [r0, #13]
	if (!z_is_thread_queued(thread) && z_is_thread_ready(thread)) {
   3113c:	f990 200d 	ldrsb.w	r2, [r0, #13]
   31140:	2a00      	cmp	r2, #0
   31142:	db30      	blt.n	311a6 <ready_thread+0x6e>
   31144:	4604      	mov	r4, r0
	return !((z_is_thread_prevented_from_running(thread)) != 0U ||
   31146:	f013 0f1f 	tst.w	r3, #31
   3114a:	d105      	bne.n	31158 <ready_thread+0x20>
	return node->next != NULL;
   3114c:	6982      	ldr	r2, [r0, #24]
   3114e:	b10a      	cbz	r2, 31154 <ready_thread+0x1c>
   31150:	2200      	movs	r2, #0
   31152:	e002      	b.n	3115a <ready_thread+0x22>
   31154:	2201      	movs	r2, #1
   31156:	e000      	b.n	3115a <ready_thread+0x22>
   31158:	2200      	movs	r2, #0
   3115a:	b322      	cbz	r2, 311a6 <ready_thread+0x6e>
	thread->base.thread_state |= _THREAD_QUEUED;
   3115c:	f063 037f 	orn	r3, r3, #127	; 0x7f
   31160:	7363      	strb	r3, [r4, #13]
	__ASSERT_NO_MSG(!z_is_idle_thread_object(thread));
   31162:	4b1b      	ldr	r3, [pc, #108]	; (311d0 <ready_thread+0x98>)
   31164:	429c      	cmp	r4, r3
   31166:	d01f      	beq.n	311a8 <ready_thread+0x70>
	return list->head == list;
   31168:	4b1a      	ldr	r3, [pc, #104]	; (311d4 <ready_thread+0x9c>)
   3116a:	f853 5f20 	ldr.w	r5, [r3, #32]!
	return sys_dlist_is_empty(list) ? NULL : list->head;
   3116e:	429d      	cmp	r5, r3
   31170:	d02b      	beq.n	311ca <ready_thread+0x92>
	SYS_DLIST_FOR_EACH_CONTAINER(pq, t, base.qnode_dlist) {
   31172:	b16d      	cbz	r5, 31190 <ready_thread+0x58>
		if (z_sched_prio_cmp(thread, t) > 0) {
   31174:	4629      	mov	r1, r5
   31176:	4620      	mov	r0, r4
   31178:	f00a f8b8 	bl	3b2ec <z_sched_prio_cmp>
   3117c:	2800      	cmp	r0, #0
   3117e:	dc1e      	bgt.n	311be <ready_thread+0x86>
	return (node != NULL) ? sys_dlist_peek_next_no_check(list, node) : NULL;
   31180:	b135      	cbz	r5, 31190 <ready_thread+0x58>
	return (node == list->tail) ? NULL : node->next;
   31182:	4b14      	ldr	r3, [pc, #80]	; (311d4 <ready_thread+0x9c>)
   31184:	6a5b      	ldr	r3, [r3, #36]	; 0x24
   31186:	429d      	cmp	r5, r3
   31188:	d002      	beq.n	31190 <ready_thread+0x58>
   3118a:	682d      	ldr	r5, [r5, #0]
	SYS_DLIST_FOR_EACH_CONTAINER(pq, t, base.qnode_dlist) {
   3118c:	2d00      	cmp	r5, #0
   3118e:	d1f0      	bne.n	31172 <ready_thread+0x3a>
	sys_dnode_t *const tail = list->tail;
   31190:	4b10      	ldr	r3, [pc, #64]	; (311d4 <ready_thread+0x9c>)
   31192:	6a5a      	ldr	r2, [r3, #36]	; 0x24
	node->next = list;
   31194:	f103 0120 	add.w	r1, r3, #32
   31198:	6021      	str	r1, [r4, #0]
	node->prev = tail;
   3119a:	6062      	str	r2, [r4, #4]
	tail->next = node;
   3119c:	6014      	str	r4, [r2, #0]
	list->tail = node;
   3119e:	625c      	str	r4, [r3, #36]	; 0x24
		update_cache(0);
   311a0:	2000      	movs	r0, #0
   311a2:	f7ff feb5 	bl	30f10 <update_cache>
}
   311a6:	bd38      	pop	{r3, r4, r5, pc}
	__ASSERT_NO_MSG(!z_is_idle_thread_object(thread));
   311a8:	4d0b      	ldr	r5, [pc, #44]	; (311d8 <ready_thread+0xa0>)
   311aa:	22b1      	movs	r2, #177	; 0xb1
   311ac:	4629      	mov	r1, r5
   311ae:	480b      	ldr	r0, [pc, #44]	; (311dc <ready_thread+0xa4>)
   311b0:	f002 f8fb 	bl	333aa <printk>
   311b4:	21b1      	movs	r1, #177	; 0xb1
   311b6:	4628      	mov	r0, r5
   311b8:	f002 fc90 	bl	33adc <assert_post_action>
   311bc:	e7d4      	b.n	31168 <ready_thread+0x30>
	sys_dnode_t *const prev = successor->prev;
   311be:	686b      	ldr	r3, [r5, #4]
	node->prev = prev;
   311c0:	6063      	str	r3, [r4, #4]
	node->next = successor;
   311c2:	6025      	str	r5, [r4, #0]
	prev->next = node;
   311c4:	601c      	str	r4, [r3, #0]
	successor->prev = node;
   311c6:	606c      	str	r4, [r5, #4]
}
   311c8:	e7ea      	b.n	311a0 <ready_thread+0x68>
	SYS_DLIST_FOR_EACH_CONTAINER(pq, t, base.qnode_dlist) {
   311ca:	2500      	movs	r5, #0
   311cc:	e7d1      	b.n	31172 <ready_thread+0x3a>
   311ce:	bf00      	nop
   311d0:	20001ea0 	.word	0x20001ea0
   311d4:	20003480 	.word	0x20003480
   311d8:	0003fa58 	.word	0x0003fa58
   311dc:	0003bdac 	.word	0x0003bdac

000311e0 <z_ready_thread>:
{
   311e0:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
   311e2:	4605      	mov	r5, r0
	LOCKED(&sched_spinlock) {
   311e4:	2400      	movs	r4, #0
	__asm__ volatile(
   311e6:	f04f 0340 	mov.w	r3, #64	; 0x40
   311ea:	f3ef 8611 	mrs	r6, BASEPRI
   311ee:	f383 8812 	msr	BASEPRI_MAX, r3
   311f2:	f3bf 8f6f 	isb	sy
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   311f6:	4819      	ldr	r0, [pc, #100]	; (3125c <z_ready_thread+0x7c>)
   311f8:	f7fe f994 	bl	2f524 <z_spin_lock_valid>
   311fc:	b118      	cbz	r0, 31206 <z_ready_thread+0x26>
	z_spin_lock_set_owner(l);
   311fe:	4817      	ldr	r0, [pc, #92]	; (3125c <z_ready_thread+0x7c>)
   31200:	f7fe f9b0 	bl	2f564 <z_spin_lock_set_owner>
	return k;
   31204:	e01d      	b.n	31242 <z_ready_thread+0x62>
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   31206:	4f16      	ldr	r7, [pc, #88]	; (31260 <z_ready_thread+0x80>)
   31208:	2281      	movs	r2, #129	; 0x81
   3120a:	4639      	mov	r1, r7
   3120c:	4815      	ldr	r0, [pc, #84]	; (31264 <z_ready_thread+0x84>)
   3120e:	f002 f8cc 	bl	333aa <printk>
   31212:	2181      	movs	r1, #129	; 0x81
   31214:	4638      	mov	r0, r7
   31216:	f002 fc61 	bl	33adc <assert_post_action>
   3121a:	e7f0      	b.n	311fe <z_ready_thread+0x1e>
			ready_thread(thread);
   3121c:	4628      	mov	r0, r5
   3121e:	f7ff ff8b 	bl	31138 <ready_thread>
   31222:	e014      	b.n	3124e <z_ready_thread+0x6e>
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   31224:	4c0e      	ldr	r4, [pc, #56]	; (31260 <z_ready_thread+0x80>)
   31226:	22ac      	movs	r2, #172	; 0xac
   31228:	4621      	mov	r1, r4
   3122a:	480e      	ldr	r0, [pc, #56]	; (31264 <z_ready_thread+0x84>)
   3122c:	f002 f8bd 	bl	333aa <printk>
   31230:	21ac      	movs	r1, #172	; 0xac
   31232:	4620      	mov	r0, r4
   31234:	f002 fc52 	bl	33adc <assert_post_action>
	__asm__ volatile(
   31238:	f386 8811 	msr	BASEPRI, r6
   3123c:	f3bf 8f6f 	isb	sy
	LOCKED(&sched_spinlock) {
   31240:	2401      	movs	r4, #1
   31242:	b954      	cbnz	r4, 3125a <z_ready_thread+0x7a>
		if (!thread_active_elsewhere(thread)) {
   31244:	4628      	mov	r0, r5
   31246:	f00a f84f 	bl	3b2e8 <thread_active_elsewhere>
   3124a:	2800      	cmp	r0, #0
   3124c:	d0e6      	beq.n	3121c <z_ready_thread+0x3c>
   3124e:	4803      	ldr	r0, [pc, #12]	; (3125c <z_ready_thread+0x7c>)
   31250:	f7fe f978 	bl	2f544 <z_spin_unlock_valid>
   31254:	2800      	cmp	r0, #0
   31256:	d1ef      	bne.n	31238 <z_ready_thread+0x58>
   31258:	e7e4      	b.n	31224 <z_ready_thread+0x44>
}
   3125a:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
   3125c:	200034c8 	.word	0x200034c8
   31260:	0003bde8 	.word	0x0003bde8
   31264:	0003bdac 	.word	0x0003bdac

00031268 <z_sched_start>:
{
   31268:	b570      	push	{r4, r5, r6, lr}
   3126a:	4604      	mov	r4, r0
	__asm__ volatile(
   3126c:	f04f 0340 	mov.w	r3, #64	; 0x40
   31270:	f3ef 8511 	mrs	r5, BASEPRI
   31274:	f383 8812 	msr	BASEPRI_MAX, r3
   31278:	f3bf 8f6f 	isb	sy
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   3127c:	481a      	ldr	r0, [pc, #104]	; (312e8 <z_sched_start+0x80>)
   3127e:	f7fe f951 	bl	2f524 <z_spin_lock_valid>
   31282:	b188      	cbz	r0, 312a8 <z_sched_start+0x40>
	z_spin_lock_set_owner(l);
   31284:	4818      	ldr	r0, [pc, #96]	; (312e8 <z_sched_start+0x80>)
   31286:	f7fe f96d 	bl	2f564 <z_spin_lock_set_owner>
	return (thread->base.thread_state & _THREAD_PRESTART) == 0U;
   3128a:	7b63      	ldrb	r3, [r4, #13]
	if (z_has_thread_started(thread)) {
   3128c:	f013 0f04 	tst.w	r3, #4
   31290:	d015      	beq.n	312be <z_sched_start+0x56>
	thread->base.thread_state &= ~_THREAD_PRESTART;
   31292:	f023 0304 	bic.w	r3, r3, #4
   31296:	7363      	strb	r3, [r4, #13]
	ready_thread(thread);
   31298:	4620      	mov	r0, r4
   3129a:	f7ff ff4d 	bl	31138 <ready_thread>
	z_reschedule(&sched_spinlock, key);
   3129e:	4629      	mov	r1, r5
   312a0:	4811      	ldr	r0, [pc, #68]	; (312e8 <z_sched_start+0x80>)
   312a2:	f7ff fd2b 	bl	30cfc <z_reschedule>
}
   312a6:	bd70      	pop	{r4, r5, r6, pc}
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   312a8:	4e10      	ldr	r6, [pc, #64]	; (312ec <z_sched_start+0x84>)
   312aa:	2281      	movs	r2, #129	; 0x81
   312ac:	4631      	mov	r1, r6
   312ae:	4810      	ldr	r0, [pc, #64]	; (312f0 <z_sched_start+0x88>)
   312b0:	f002 f87b 	bl	333aa <printk>
   312b4:	2181      	movs	r1, #129	; 0x81
   312b6:	4630      	mov	r0, r6
   312b8:	f002 fc10 	bl	33adc <assert_post_action>
   312bc:	e7e2      	b.n	31284 <z_sched_start+0x1c>
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   312be:	480a      	ldr	r0, [pc, #40]	; (312e8 <z_sched_start+0x80>)
   312c0:	f7fe f940 	bl	2f544 <z_spin_unlock_valid>
   312c4:	b120      	cbz	r0, 312d0 <z_sched_start+0x68>
	__asm__ volatile(
   312c6:	f385 8811 	msr	BASEPRI, r5
   312ca:	f3bf 8f6f 	isb	sy
		return;
   312ce:	e7ea      	b.n	312a6 <z_sched_start+0x3e>
   312d0:	4c06      	ldr	r4, [pc, #24]	; (312ec <z_sched_start+0x84>)
   312d2:	22ac      	movs	r2, #172	; 0xac
   312d4:	4621      	mov	r1, r4
   312d6:	4806      	ldr	r0, [pc, #24]	; (312f0 <z_sched_start+0x88>)
   312d8:	f002 f867 	bl	333aa <printk>
   312dc:	21ac      	movs	r1, #172	; 0xac
   312de:	4620      	mov	r0, r4
   312e0:	f002 fbfc 	bl	33adc <assert_post_action>
   312e4:	e7ef      	b.n	312c6 <z_sched_start+0x5e>
   312e6:	bf00      	nop
   312e8:	200034c8 	.word	0x200034c8
   312ec:	0003bde8 	.word	0x0003bde8
   312f0:	0003bdac 	.word	0x0003bdac

000312f4 <z_thread_timeout>:
{
   312f4:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   312f8:	4604      	mov	r4, r0
	struct k_thread *thread = CONTAINER_OF(timeout,
   312fa:	f1a0 0618 	sub.w	r6, r0, #24
	LOCKED(&sched_spinlock) {
   312fe:	2500      	movs	r5, #0
	__asm__ volatile(
   31300:	f04f 0340 	mov.w	r3, #64	; 0x40
   31304:	f3ef 8711 	mrs	r7, BASEPRI
   31308:	f383 8812 	msr	BASEPRI_MAX, r3
   3130c:	f3bf 8f6f 	isb	sy
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   31310:	4824      	ldr	r0, [pc, #144]	; (313a4 <z_thread_timeout+0xb0>)
   31312:	f7fe f907 	bl	2f524 <z_spin_lock_valid>
   31316:	b118      	cbz	r0, 31320 <z_thread_timeout+0x2c>
	z_spin_lock_set_owner(l);
   31318:	4822      	ldr	r0, [pc, #136]	; (313a4 <z_thread_timeout+0xb0>)
   3131a:	f7fe f923 	bl	2f564 <z_spin_lock_set_owner>
	return k;
   3131e:	e029      	b.n	31374 <z_thread_timeout+0x80>
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   31320:	f8df 8088 	ldr.w	r8, [pc, #136]	; 313ac <z_thread_timeout+0xb8>
   31324:	2281      	movs	r2, #129	; 0x81
   31326:	4641      	mov	r1, r8
   31328:	481f      	ldr	r0, [pc, #124]	; (313a8 <z_thread_timeout+0xb4>)
   3132a:	f002 f83e 	bl	333aa <printk>
   3132e:	2181      	movs	r1, #129	; 0x81
   31330:	4640      	mov	r0, r8
   31332:	f002 fbd3 	bl	33adc <assert_post_action>
   31336:	e7ef      	b.n	31318 <z_thread_timeout+0x24>
	_priq_wait_remove(&pended_on_thread(thread)->waitq, thread);
   31338:	4630      	mov	r0, r6
   3133a:	f7ff fbf7 	bl	30b2c <pended_on_thread>
   3133e:	4631      	mov	r1, r6
   31340:	f7ff fd7a 	bl	30e38 <z_priq_dumb_remove>
	thread->base.thread_state &= ~_THREAD_PENDING;
   31344:	7b73      	ldrb	r3, [r6, #13]
   31346:	f023 0302 	bic.w	r3, r3, #2
   3134a:	7373      	strb	r3, [r6, #13]
	thread->base.pended_on = NULL;
   3134c:	2300      	movs	r3, #0
   3134e:	60b3      	str	r3, [r6, #8]
	thread->base.thread_state &= ~_THREAD_PRESTART;
   31350:	f814 3c0b 	ldrb.w	r3, [r4, #-11]
	thread->base.thread_state &= ~_THREAD_SUSPENDED;
   31354:	f003 03eb 	and.w	r3, r3, #235	; 0xeb
   31358:	f804 3c0b 	strb.w	r3, [r4, #-11]
			ready_thread(thread);
   3135c:	4630      	mov	r0, r6
   3135e:	f7ff feeb 	bl	31138 <ready_thread>
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   31362:	4810      	ldr	r0, [pc, #64]	; (313a4 <z_thread_timeout+0xb0>)
   31364:	f7fe f8ee 	bl	2f544 <z_spin_unlock_valid>
   31368:	b178      	cbz	r0, 3138a <z_thread_timeout+0x96>
	__asm__ volatile(
   3136a:	f387 8811 	msr	BASEPRI, r7
   3136e:	f3bf 8f6f 	isb	sy
	LOCKED(&sched_spinlock) {
   31372:	2501      	movs	r5, #1
   31374:	b9a5      	cbnz	r5, 313a0 <z_thread_timeout+0xac>
		bool killed = ((thread->base.thread_state & _THREAD_DEAD) ||
   31376:	f814 3c0b 	ldrb.w	r3, [r4, #-11]
		if (!killed) {
   3137a:	f013 0f28 	tst.w	r3, #40	; 0x28
   3137e:	d1f0      	bne.n	31362 <z_thread_timeout+0x6e>
			if (thread->base.pended_on != NULL) {
   31380:	f854 3c10 	ldr.w	r3, [r4, #-16]
   31384:	2b00      	cmp	r3, #0
   31386:	d1d7      	bne.n	31338 <z_thread_timeout+0x44>
   31388:	e7e2      	b.n	31350 <z_thread_timeout+0x5c>
   3138a:	4d08      	ldr	r5, [pc, #32]	; (313ac <z_thread_timeout+0xb8>)
   3138c:	22ac      	movs	r2, #172	; 0xac
   3138e:	4629      	mov	r1, r5
   31390:	4805      	ldr	r0, [pc, #20]	; (313a8 <z_thread_timeout+0xb4>)
   31392:	f002 f80a 	bl	333aa <printk>
   31396:	21ac      	movs	r1, #172	; 0xac
   31398:	4628      	mov	r0, r5
   3139a:	f002 fb9f 	bl	33adc <assert_post_action>
   3139e:	e7e4      	b.n	3136a <z_thread_timeout+0x76>
}
   313a0:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
   313a4:	200034c8 	.word	0x200034c8
   313a8:	0003bdac 	.word	0x0003bdac
   313ac:	0003bde8 	.word	0x0003bde8

000313b0 <unready_thread>:
{
   313b0:	b510      	push	{r4, lr}
   313b2:	4604      	mov	r4, r0
	return (thread->base.thread_state & state) != 0U;
   313b4:	7b42      	ldrb	r2, [r0, #13]
	if (z_is_thread_queued(thread)) {
   313b6:	f990 300d 	ldrsb.w	r3, [r0, #13]
   313ba:	2b00      	cmp	r3, #0
   313bc:	db08      	blt.n	313d0 <unready_thread+0x20>
	update_cache(thread == _current);
   313be:	4b08      	ldr	r3, [pc, #32]	; (313e0 <unready_thread+0x30>)
   313c0:	6898      	ldr	r0, [r3, #8]
   313c2:	42a0      	cmp	r0, r4
   313c4:	bf14      	ite	ne
   313c6:	2000      	movne	r0, #0
   313c8:	2001      	moveq	r0, #1
   313ca:	f7ff fda1 	bl	30f10 <update_cache>
}
   313ce:	bd10      	pop	{r4, pc}
	thread->base.thread_state &= ~_THREAD_QUEUED;
   313d0:	f002 027f 	and.w	r2, r2, #127	; 0x7f
   313d4:	7342      	strb	r2, [r0, #13]
		_priq_run_remove(pq, thread);
   313d6:	4601      	mov	r1, r0
   313d8:	4802      	ldr	r0, [pc, #8]	; (313e4 <unready_thread+0x34>)
   313da:	f7ff fd2d 	bl	30e38 <z_priq_dumb_remove>
}
   313de:	e7ee      	b.n	313be <unready_thread+0xe>
   313e0:	20003480 	.word	0x20003480
   313e4:	200034a0 	.word	0x200034a0

000313e8 <add_to_waitq_locked>:
{
   313e8:	b570      	push	{r4, r5, r6, lr}
   313ea:	4605      	mov	r5, r0
   313ec:	460e      	mov	r6, r1
	unready_thread(thread);
   313ee:	f7ff ffdf 	bl	313b0 <unready_thread>
	thread->base.thread_state |= _THREAD_PENDING;
   313f2:	7b6b      	ldrb	r3, [r5, #13]
   313f4:	f043 0302 	orr.w	r3, r3, #2
   313f8:	736b      	strb	r3, [r5, #13]
	if (wait_q != NULL) {
   313fa:	b1ce      	cbz	r6, 31430 <add_to_waitq_locked+0x48>
		thread->base.pended_on = wait_q;
   313fc:	60ae      	str	r6, [r5, #8]
	__ASSERT_NO_MSG(!z_is_idle_thread_object(thread));
   313fe:	4b16      	ldr	r3, [pc, #88]	; (31458 <add_to_waitq_locked+0x70>)
   31400:	429d      	cmp	r5, r3
   31402:	d016      	beq.n	31432 <add_to_waitq_locked+0x4a>
	return list->head == list;
   31404:	6834      	ldr	r4, [r6, #0]
	return sys_dlist_is_empty(list) ? NULL : list->head;
   31406:	42a6      	cmp	r6, r4
   31408:	d024      	beq.n	31454 <add_to_waitq_locked+0x6c>
	SYS_DLIST_FOR_EACH_CONTAINER(pq, t, base.qnode_dlist) {
   3140a:	b164      	cbz	r4, 31426 <add_to_waitq_locked+0x3e>
		if (z_sched_prio_cmp(thread, t) > 0) {
   3140c:	4621      	mov	r1, r4
   3140e:	4628      	mov	r0, r5
   31410:	f009 ff6c 	bl	3b2ec <z_sched_prio_cmp>
   31414:	2800      	cmp	r0, #0
   31416:	dc17      	bgt.n	31448 <add_to_waitq_locked+0x60>
	return (node != NULL) ? sys_dlist_peek_next_no_check(list, node) : NULL;
   31418:	b12c      	cbz	r4, 31426 <add_to_waitq_locked+0x3e>
	return (node == list->tail) ? NULL : node->next;
   3141a:	6873      	ldr	r3, [r6, #4]
   3141c:	429c      	cmp	r4, r3
   3141e:	d002      	beq.n	31426 <add_to_waitq_locked+0x3e>
   31420:	6824      	ldr	r4, [r4, #0]
	SYS_DLIST_FOR_EACH_CONTAINER(pq, t, base.qnode_dlist) {
   31422:	2c00      	cmp	r4, #0
   31424:	d1f1      	bne.n	3140a <add_to_waitq_locked+0x22>
	sys_dnode_t *const tail = list->tail;
   31426:	6873      	ldr	r3, [r6, #4]
	node->next = list;
   31428:	602e      	str	r6, [r5, #0]
	node->prev = tail;
   3142a:	606b      	str	r3, [r5, #4]
	tail->next = node;
   3142c:	601d      	str	r5, [r3, #0]
	list->tail = node;
   3142e:	6075      	str	r5, [r6, #4]
}
   31430:	bd70      	pop	{r4, r5, r6, pc}
	__ASSERT_NO_MSG(!z_is_idle_thread_object(thread));
   31432:	4c0a      	ldr	r4, [pc, #40]	; (3145c <add_to_waitq_locked+0x74>)
   31434:	22b1      	movs	r2, #177	; 0xb1
   31436:	4621      	mov	r1, r4
   31438:	4809      	ldr	r0, [pc, #36]	; (31460 <add_to_waitq_locked+0x78>)
   3143a:	f001 ffb6 	bl	333aa <printk>
   3143e:	21b1      	movs	r1, #177	; 0xb1
   31440:	4620      	mov	r0, r4
   31442:	f002 fb4b 	bl	33adc <assert_post_action>
   31446:	e7dd      	b.n	31404 <add_to_waitq_locked+0x1c>
	sys_dnode_t *const prev = successor->prev;
   31448:	6863      	ldr	r3, [r4, #4]
	node->prev = prev;
   3144a:	606b      	str	r3, [r5, #4]
	node->next = successor;
   3144c:	602c      	str	r4, [r5, #0]
	prev->next = node;
   3144e:	601d      	str	r5, [r3, #0]
	successor->prev = node;
   31450:	6065      	str	r5, [r4, #4]
}
   31452:	e7ed      	b.n	31430 <add_to_waitq_locked+0x48>
	SYS_DLIST_FOR_EACH_CONTAINER(pq, t, base.qnode_dlist) {
   31454:	2400      	movs	r4, #0
   31456:	e7d8      	b.n	3140a <add_to_waitq_locked+0x22>
   31458:	20001ea0 	.word	0x20001ea0
   3145c:	0003fa58 	.word	0x0003fa58
   31460:	0003bdac 	.word	0x0003bdac

00031464 <pend>:
{
   31464:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
   31468:	4605      	mov	r5, r0
   3146a:	460f      	mov	r7, r1
   3146c:	4691      	mov	r9, r2
   3146e:	4698      	mov	r8, r3
	LOCKED(&sched_spinlock) {
   31470:	2400      	movs	r4, #0
	__asm__ volatile(
   31472:	f04f 0340 	mov.w	r3, #64	; 0x40
   31476:	f3ef 8611 	mrs	r6, BASEPRI
   3147a:	f383 8812 	msr	BASEPRI_MAX, r3
   3147e:	f3bf 8f6f 	isb	sy
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   31482:	481a      	ldr	r0, [pc, #104]	; (314ec <pend+0x88>)
   31484:	f7fe f84e 	bl	2f524 <z_spin_lock_valid>
   31488:	b118      	cbz	r0, 31492 <pend+0x2e>
	z_spin_lock_set_owner(l);
   3148a:	4818      	ldr	r0, [pc, #96]	; (314ec <pend+0x88>)
   3148c:	f7fe f86a 	bl	2f564 <z_spin_lock_set_owner>
	return k;
   31490:	e01a      	b.n	314c8 <pend+0x64>
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   31492:	f8df a060 	ldr.w	sl, [pc, #96]	; 314f4 <pend+0x90>
   31496:	2281      	movs	r2, #129	; 0x81
   31498:	4651      	mov	r1, sl
   3149a:	4815      	ldr	r0, [pc, #84]	; (314f0 <pend+0x8c>)
   3149c:	f001 ff85 	bl	333aa <printk>
   314a0:	2181      	movs	r1, #129	; 0x81
   314a2:	4650      	mov	r0, sl
   314a4:	f002 fb1a 	bl	33adc <assert_post_action>
   314a8:	e7ef      	b.n	3148a <pend+0x26>
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   314aa:	4c12      	ldr	r4, [pc, #72]	; (314f4 <pend+0x90>)
   314ac:	22ac      	movs	r2, #172	; 0xac
   314ae:	4621      	mov	r1, r4
   314b0:	480f      	ldr	r0, [pc, #60]	; (314f0 <pend+0x8c>)
   314b2:	f001 ff7a 	bl	333aa <printk>
   314b6:	21ac      	movs	r1, #172	; 0xac
   314b8:	4620      	mov	r0, r4
   314ba:	f002 fb0f 	bl	33adc <assert_post_action>
	__asm__ volatile(
   314be:	f386 8811 	msr	BASEPRI, r6
   314c2:	f3bf 8f6f 	isb	sy
   314c6:	2401      	movs	r4, #1
   314c8:	b94c      	cbnz	r4, 314de <pend+0x7a>
		add_to_waitq_locked(thread, wait_q);
   314ca:	4639      	mov	r1, r7
   314cc:	4628      	mov	r0, r5
   314ce:	f7ff ff8b 	bl	313e8 <add_to_waitq_locked>
   314d2:	4806      	ldr	r0, [pc, #24]	; (314ec <pend+0x88>)
   314d4:	f7fe f836 	bl	2f544 <z_spin_unlock_valid>
   314d8:	2800      	cmp	r0, #0
   314da:	d1f0      	bne.n	314be <pend+0x5a>
   314dc:	e7e5      	b.n	314aa <pend+0x46>
	add_thread_timeout(thread, timeout);
   314de:	464a      	mov	r2, r9
   314e0:	4643      	mov	r3, r8
   314e2:	4628      	mov	r0, r5
   314e4:	f7ff fb3a 	bl	30b5c <add_thread_timeout>
}
   314e8:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
   314ec:	200034c8 	.word	0x200034c8
   314f0:	0003bdac 	.word	0x0003bdac
   314f4:	0003bde8 	.word	0x0003bde8

000314f8 <z_pend_curr>:
{
   314f8:	b538      	push	{r3, r4, r5, lr}
   314fa:	4605      	mov	r5, r0
   314fc:	460c      	mov	r4, r1
   314fe:	4611      	mov	r1, r2
	pending_current = _current;
   31500:	4b0d      	ldr	r3, [pc, #52]	; (31538 <z_pend_curr+0x40>)
   31502:	6898      	ldr	r0, [r3, #8]
   31504:	4b0d      	ldr	r3, [pc, #52]	; (3153c <z_pend_curr+0x44>)
   31506:	6018      	str	r0, [r3, #0]
	pend(_current, wait_q, timeout);
   31508:	e9dd 2304 	ldrd	r2, r3, [sp, #16]
   3150c:	f7ff ffaa 	bl	31464 <pend>
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   31510:	4628      	mov	r0, r5
   31512:	f7fe f817 	bl	2f544 <z_spin_unlock_valid>
   31516:	b118      	cbz	r0, 31520 <z_pend_curr+0x28>
   31518:	4620      	mov	r0, r4
   3151a:	f7ed ffc1 	bl	1f4a0 <arch_swap>
}
   3151e:	bd38      	pop	{r3, r4, r5, pc}
   31520:	4d07      	ldr	r5, [pc, #28]	; (31540 <z_pend_curr+0x48>)
   31522:	22c3      	movs	r2, #195	; 0xc3
   31524:	4629      	mov	r1, r5
   31526:	4807      	ldr	r0, [pc, #28]	; (31544 <z_pend_curr+0x4c>)
   31528:	f001 ff3f 	bl	333aa <printk>
   3152c:	21c3      	movs	r1, #195	; 0xc3
   3152e:	4628      	mov	r0, r5
   31530:	f002 fad4 	bl	33adc <assert_post_action>
   31534:	e7f0      	b.n	31518 <z_pend_curr+0x20>
   31536:	bf00      	nop
   31538:	20003480 	.word	0x20003480
   3153c:	200034c4 	.word	0x200034c4
   31540:	0003bde8 	.word	0x0003bde8
   31544:	0003bdac 	.word	0x0003bdac

00031548 <z_set_prio>:
{
   31548:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   3154c:	4604      	mov	r4, r0
   3154e:	460f      	mov	r7, r1
	LOCKED(&sched_spinlock) {
   31550:	2500      	movs	r5, #0
	__asm__ volatile(
   31552:	f04f 0340 	mov.w	r3, #64	; 0x40
   31556:	f3ef 8611 	mrs	r6, BASEPRI
   3155a:	f383 8812 	msr	BASEPRI_MAX, r3
   3155e:	f3bf 8f6f 	isb	sy
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   31562:	4840      	ldr	r0, [pc, #256]	; (31664 <z_set_prio+0x11c>)
   31564:	f7fd ffde 	bl	2f524 <z_spin_lock_valid>
   31568:	b128      	cbz	r0, 31576 <z_set_prio+0x2e>
	z_spin_lock_set_owner(l);
   3156a:	483e      	ldr	r0, [pc, #248]	; (31664 <z_set_prio+0x11c>)
   3156c:	f7fd fffa 	bl	2f564 <z_spin_lock_set_owner>
	bool need_sched = 0;
   31570:	f04f 0800 	mov.w	r8, #0
	return k;
   31574:	e019      	b.n	315aa <z_set_prio+0x62>
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   31576:	f8df 8104 	ldr.w	r8, [pc, #260]	; 3167c <z_set_prio+0x134>
   3157a:	2281      	movs	r2, #129	; 0x81
   3157c:	4641      	mov	r1, r8
   3157e:	483a      	ldr	r0, [pc, #232]	; (31668 <z_set_prio+0x120>)
   31580:	f001 ff13 	bl	333aa <printk>
   31584:	2181      	movs	r1, #129	; 0x81
   31586:	4640      	mov	r0, r8
   31588:	f002 faa8 	bl	33adc <assert_post_action>
   3158c:	e7ed      	b.n	3156a <z_set_prio+0x22>
		if (need_sched) {
   3158e:	f013 0801 	ands.w	r8, r3, #1
   31592:	d116      	bne.n	315c2 <z_set_prio+0x7a>
			thread->base.prio = prio;
   31594:	73a7      	strb	r7, [r4, #14]
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   31596:	4833      	ldr	r0, [pc, #204]	; (31664 <z_set_prio+0x11c>)
   31598:	f7fd ffd4 	bl	2f544 <z_spin_unlock_valid>
   3159c:	2800      	cmp	r0, #0
   3159e:	d052      	beq.n	31646 <z_set_prio+0xfe>
	__asm__ volatile(
   315a0:	f386 8811 	msr	BASEPRI, r6
   315a4:	f3bf 8f6f 	isb	sy
	LOCKED(&sched_spinlock) {
   315a8:	2501      	movs	r5, #1
   315aa:	462b      	mov	r3, r5
   315ac:	2d00      	cmp	r5, #0
   315ae:	d155      	bne.n	3165c <z_set_prio+0x114>
	uint8_t state = thread->base.thread_state;
   315b0:	7b62      	ldrb	r2, [r4, #13]
	return !((z_is_thread_prevented_from_running(thread)) != 0U ||
   315b2:	f012 0f1f 	tst.w	r2, #31
   315b6:	d1ea      	bne.n	3158e <z_set_prio+0x46>
	return node->next != NULL;
   315b8:	69a1      	ldr	r1, [r4, #24]
   315ba:	2900      	cmp	r1, #0
   315bc:	d1e7      	bne.n	3158e <z_set_prio+0x46>
   315be:	2301      	movs	r3, #1
   315c0:	e7e5      	b.n	3158e <z_set_prio+0x46>
	thread->base.thread_state &= ~_THREAD_QUEUED;
   315c2:	f002 027f 	and.w	r2, r2, #127	; 0x7f
   315c6:	7362      	strb	r2, [r4, #13]
		_priq_run_remove(pq, thread);
   315c8:	4621      	mov	r1, r4
   315ca:	4828      	ldr	r0, [pc, #160]	; (3166c <z_set_prio+0x124>)
   315cc:	f7ff fc34 	bl	30e38 <z_priq_dumb_remove>
				thread->base.prio = prio;
   315d0:	73a7      	strb	r7, [r4, #14]
	thread->base.thread_state |= _THREAD_QUEUED;
   315d2:	7b63      	ldrb	r3, [r4, #13]
   315d4:	f063 037f 	orn	r3, r3, #127	; 0x7f
   315d8:	7363      	strb	r3, [r4, #13]
	__ASSERT_NO_MSG(!z_is_idle_thread_object(thread));
   315da:	4b25      	ldr	r3, [pc, #148]	; (31670 <z_set_prio+0x128>)
   315dc:	429c      	cmp	r4, r3
   315de:	d01f      	beq.n	31620 <z_set_prio+0xd8>
	return list->head == list;
   315e0:	4b24      	ldr	r3, [pc, #144]	; (31674 <z_set_prio+0x12c>)
   315e2:	f853 5f20 	ldr.w	r5, [r3, #32]!
	return sys_dlist_is_empty(list) ? NULL : list->head;
   315e6:	429d      	cmp	r5, r3
   315e8:	d02b      	beq.n	31642 <z_set_prio+0xfa>
	SYS_DLIST_FOR_EACH_CONTAINER(pq, t, base.qnode_dlist) {
   315ea:	b16d      	cbz	r5, 31608 <z_set_prio+0xc0>
		if (z_sched_prio_cmp(thread, t) > 0) {
   315ec:	4629      	mov	r1, r5
   315ee:	4620      	mov	r0, r4
   315f0:	f009 fe7c 	bl	3b2ec <z_sched_prio_cmp>
   315f4:	2800      	cmp	r0, #0
   315f6:	dc1e      	bgt.n	31636 <z_set_prio+0xee>
	return (node != NULL) ? sys_dlist_peek_next_no_check(list, node) : NULL;
   315f8:	b135      	cbz	r5, 31608 <z_set_prio+0xc0>
	return (node == list->tail) ? NULL : node->next;
   315fa:	4b1e      	ldr	r3, [pc, #120]	; (31674 <z_set_prio+0x12c>)
   315fc:	6a5b      	ldr	r3, [r3, #36]	; 0x24
   315fe:	429d      	cmp	r5, r3
   31600:	d002      	beq.n	31608 <z_set_prio+0xc0>
   31602:	682d      	ldr	r5, [r5, #0]
	SYS_DLIST_FOR_EACH_CONTAINER(pq, t, base.qnode_dlist) {
   31604:	2d00      	cmp	r5, #0
   31606:	d1f0      	bne.n	315ea <z_set_prio+0xa2>
	sys_dnode_t *const tail = list->tail;
   31608:	4b1a      	ldr	r3, [pc, #104]	; (31674 <z_set_prio+0x12c>)
   3160a:	6a5a      	ldr	r2, [r3, #36]	; 0x24
	node->next = list;
   3160c:	f103 0120 	add.w	r1, r3, #32
   31610:	6021      	str	r1, [r4, #0]
	node->prev = tail;
   31612:	6062      	str	r2, [r4, #4]
	tail->next = node;
   31614:	6014      	str	r4, [r2, #0]
	list->tail = node;
   31616:	625c      	str	r4, [r3, #36]	; 0x24
			update_cache(1);
   31618:	2001      	movs	r0, #1
   3161a:	f7ff fc79 	bl	30f10 <update_cache>
   3161e:	e7ba      	b.n	31596 <z_set_prio+0x4e>
	__ASSERT_NO_MSG(!z_is_idle_thread_object(thread));
   31620:	4d15      	ldr	r5, [pc, #84]	; (31678 <z_set_prio+0x130>)
   31622:	22b1      	movs	r2, #177	; 0xb1
   31624:	4629      	mov	r1, r5
   31626:	4810      	ldr	r0, [pc, #64]	; (31668 <z_set_prio+0x120>)
   31628:	f001 febf 	bl	333aa <printk>
   3162c:	21b1      	movs	r1, #177	; 0xb1
   3162e:	4628      	mov	r0, r5
   31630:	f002 fa54 	bl	33adc <assert_post_action>
   31634:	e7d4      	b.n	315e0 <z_set_prio+0x98>
	sys_dnode_t *const prev = successor->prev;
   31636:	686b      	ldr	r3, [r5, #4]
	node->prev = prev;
   31638:	6063      	str	r3, [r4, #4]
	node->next = successor;
   3163a:	6025      	str	r5, [r4, #0]
	prev->next = node;
   3163c:	601c      	str	r4, [r3, #0]
	successor->prev = node;
   3163e:	606c      	str	r4, [r5, #4]
}
   31640:	e7ea      	b.n	31618 <z_set_prio+0xd0>
	SYS_DLIST_FOR_EACH_CONTAINER(pq, t, base.qnode_dlist) {
   31642:	2500      	movs	r5, #0
   31644:	e7d1      	b.n	315ea <z_set_prio+0xa2>
   31646:	4d0d      	ldr	r5, [pc, #52]	; (3167c <z_set_prio+0x134>)
   31648:	22ac      	movs	r2, #172	; 0xac
   3164a:	4629      	mov	r1, r5
   3164c:	4806      	ldr	r0, [pc, #24]	; (31668 <z_set_prio+0x120>)
   3164e:	f001 feac 	bl	333aa <printk>
   31652:	21ac      	movs	r1, #172	; 0xac
   31654:	4628      	mov	r0, r5
   31656:	f002 fa41 	bl	33adc <assert_post_action>
   3165a:	e7a1      	b.n	315a0 <z_set_prio+0x58>
}
   3165c:	4640      	mov	r0, r8
   3165e:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
   31662:	bf00      	nop
   31664:	200034c8 	.word	0x200034c8
   31668:	0003bdac 	.word	0x0003bdac
   3166c:	200034a0 	.word	0x200034a0
   31670:	20001ea0 	.word	0x20001ea0
   31674:	20003480 	.word	0x20003480
   31678:	0003fa58 	.word	0x0003fa58
   3167c:	0003bde8 	.word	0x0003bde8

00031680 <z_impl_k_thread_suspend>:
{
   31680:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
   31682:	4604      	mov	r4, r0
   31684:	3018      	adds	r0, #24
   31686:	f000 fd49 	bl	3211c <z_abort_timeout>
	LOCKED(&sched_spinlock) {
   3168a:	2500      	movs	r5, #0
	__asm__ volatile(
   3168c:	f04f 0340 	mov.w	r3, #64	; 0x40
   31690:	f3ef 8611 	mrs	r6, BASEPRI
   31694:	f383 8812 	msr	BASEPRI_MAX, r3
   31698:	f3bf 8f6f 	isb	sy
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   3169c:	4828      	ldr	r0, [pc, #160]	; (31740 <z_impl_k_thread_suspend+0xc0>)
   3169e:	f7fd ff41 	bl	2f524 <z_spin_lock_valid>
   316a2:	b118      	cbz	r0, 316ac <z_impl_k_thread_suspend+0x2c>
	z_spin_lock_set_owner(l);
   316a4:	4826      	ldr	r0, [pc, #152]	; (31740 <z_impl_k_thread_suspend+0xc0>)
   316a6:	f7fd ff5d 	bl	2f564 <z_spin_lock_set_owner>
	return k;
   316aa:	e021      	b.n	316f0 <z_impl_k_thread_suspend+0x70>
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   316ac:	4f25      	ldr	r7, [pc, #148]	; (31744 <z_impl_k_thread_suspend+0xc4>)
   316ae:	2281      	movs	r2, #129	; 0x81
   316b0:	4639      	mov	r1, r7
   316b2:	4825      	ldr	r0, [pc, #148]	; (31748 <z_impl_k_thread_suspend+0xc8>)
   316b4:	f001 fe79 	bl	333aa <printk>
   316b8:	2181      	movs	r1, #129	; 0x81
   316ba:	4638      	mov	r0, r7
   316bc:	f002 fa0e 	bl	33adc <assert_post_action>
   316c0:	e7f0      	b.n	316a4 <z_impl_k_thread_suspend+0x24>
	thread->base.thread_state &= ~_THREAD_QUEUED;
   316c2:	f002 027f 	and.w	r2, r2, #127	; 0x7f
   316c6:	7362      	strb	r2, [r4, #13]
		_priq_run_remove(pq, thread);
   316c8:	4621      	mov	r1, r4
   316ca:	4820      	ldr	r0, [pc, #128]	; (3174c <z_impl_k_thread_suspend+0xcc>)
   316cc:	f7ff fbb4 	bl	30e38 <z_priq_dumb_remove>
}
   316d0:	e014      	b.n	316fc <z_impl_k_thread_suspend+0x7c>
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   316d2:	4d1c      	ldr	r5, [pc, #112]	; (31744 <z_impl_k_thread_suspend+0xc4>)
   316d4:	22ac      	movs	r2, #172	; 0xac
   316d6:	4629      	mov	r1, r5
   316d8:	481b      	ldr	r0, [pc, #108]	; (31748 <z_impl_k_thread_suspend+0xc8>)
   316da:	f001 fe66 	bl	333aa <printk>
   316de:	21ac      	movs	r1, #172	; 0xac
   316e0:	4628      	mov	r0, r5
   316e2:	f002 f9fb 	bl	33adc <assert_post_action>
	__asm__ volatile(
   316e6:	f386 8811 	msr	BASEPRI, r6
   316ea:	f3bf 8f6f 	isb	sy
	LOCKED(&sched_spinlock) {
   316ee:	2501      	movs	r5, #1
   316f0:	b9b5      	cbnz	r5, 31720 <z_impl_k_thread_suspend+0xa0>
	return (thread->base.thread_state & state) != 0U;
   316f2:	7b62      	ldrb	r2, [r4, #13]
		if (z_is_thread_queued(thread)) {
   316f4:	f994 300d 	ldrsb.w	r3, [r4, #13]
   316f8:	2b00      	cmp	r3, #0
   316fa:	dbe2      	blt.n	316c2 <z_impl_k_thread_suspend+0x42>
	thread->base.thread_state |= _THREAD_SUSPENDED;
   316fc:	7b63      	ldrb	r3, [r4, #13]
   316fe:	f043 0310 	orr.w	r3, r3, #16
   31702:	7363      	strb	r3, [r4, #13]
		update_cache(thread == _current);
   31704:	4b12      	ldr	r3, [pc, #72]	; (31750 <z_impl_k_thread_suspend+0xd0>)
   31706:	6898      	ldr	r0, [r3, #8]
   31708:	42a0      	cmp	r0, r4
   3170a:	bf14      	ite	ne
   3170c:	2000      	movne	r0, #0
   3170e:	2001      	moveq	r0, #1
   31710:	f7ff fbfe 	bl	30f10 <update_cache>
   31714:	480a      	ldr	r0, [pc, #40]	; (31740 <z_impl_k_thread_suspend+0xc0>)
   31716:	f7fd ff15 	bl	2f544 <z_spin_unlock_valid>
   3171a:	2800      	cmp	r0, #0
   3171c:	d1e3      	bne.n	316e6 <z_impl_k_thread_suspend+0x66>
   3171e:	e7d8      	b.n	316d2 <z_impl_k_thread_suspend+0x52>
	if (thread == _current) {
   31720:	4b0b      	ldr	r3, [pc, #44]	; (31750 <z_impl_k_thread_suspend+0xd0>)
   31722:	689b      	ldr	r3, [r3, #8]
   31724:	42a3      	cmp	r3, r4
   31726:	d000      	beq.n	3172a <z_impl_k_thread_suspend+0xaa>
}
   31728:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
	__asm__ volatile(
   3172a:	f04f 0340 	mov.w	r3, #64	; 0x40
   3172e:	f3ef 8011 	mrs	r0, BASEPRI
   31732:	f383 8812 	msr	BASEPRI_MAX, r3
   31736:	f3bf 8f6f 	isb	sy
	(void) z_reschedule_irqlock(arch_irq_lock());
   3173a:	f009 fde1 	bl	3b300 <z_reschedule_irqlock>
   3173e:	e7f3      	b.n	31728 <z_impl_k_thread_suspend+0xa8>
   31740:	200034c8 	.word	0x200034c8
   31744:	0003bde8 	.word	0x0003bde8
   31748:	0003bdac 	.word	0x0003bdac
   3174c:	200034a0 	.word	0x200034a0
   31750:	20003480 	.word	0x20003480

00031754 <k_sched_unlock>:
{
   31754:	b570      	push	{r4, r5, r6, lr}
	LOCKED(&sched_spinlock) {
   31756:	2400      	movs	r4, #0
   31758:	f04f 0340 	mov.w	r3, #64	; 0x40
   3175c:	f3ef 8511 	mrs	r5, BASEPRI
   31760:	f383 8812 	msr	BASEPRI_MAX, r3
   31764:	f3bf 8f6f 	isb	sy
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   31768:	482f      	ldr	r0, [pc, #188]	; (31828 <k_sched_unlock+0xd4>)
   3176a:	f7fd fedb 	bl	2f524 <z_spin_lock_valid>
   3176e:	b118      	cbz	r0, 31778 <k_sched_unlock+0x24>
	z_spin_lock_set_owner(l);
   31770:	482d      	ldr	r0, [pc, #180]	; (31828 <k_sched_unlock+0xd4>)
   31772:	f7fd fef7 	bl	2f564 <z_spin_lock_set_owner>
	return k;
   31776:	e033      	b.n	317e0 <k_sched_unlock+0x8c>
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   31778:	4e2c      	ldr	r6, [pc, #176]	; (3182c <k_sched_unlock+0xd8>)
   3177a:	2281      	movs	r2, #129	; 0x81
   3177c:	4631      	mov	r1, r6
   3177e:	482c      	ldr	r0, [pc, #176]	; (31830 <k_sched_unlock+0xdc>)
   31780:	f001 fe13 	bl	333aa <printk>
   31784:	2181      	movs	r1, #129	; 0x81
   31786:	4630      	mov	r0, r6
   31788:	f002 f9a8 	bl	33adc <assert_post_action>
   3178c:	e7f0      	b.n	31770 <k_sched_unlock+0x1c>
		__ASSERT(_current->base.sched_locked != 0U, "");
   3178e:	4c29      	ldr	r4, [pc, #164]	; (31834 <k_sched_unlock+0xe0>)
   31790:	f240 3255 	movw	r2, #853	; 0x355
   31794:	4621      	mov	r1, r4
   31796:	4826      	ldr	r0, [pc, #152]	; (31830 <k_sched_unlock+0xdc>)
   31798:	f001 fe07 	bl	333aa <printk>
   3179c:	f240 3155 	movw	r1, #853	; 0x355
   317a0:	4620      	mov	r0, r4
   317a2:	f002 f99b 	bl	33adc <assert_post_action>
   317a6:	e021      	b.n	317ec <k_sched_unlock+0x98>
		__ASSERT(!arch_is_in_isr(), "");
   317a8:	4c22      	ldr	r4, [pc, #136]	; (31834 <k_sched_unlock+0xe0>)
   317aa:	f240 3256 	movw	r2, #854	; 0x356
   317ae:	4621      	mov	r1, r4
   317b0:	481f      	ldr	r0, [pc, #124]	; (31830 <k_sched_unlock+0xdc>)
   317b2:	f001 fdfa 	bl	333aa <printk>
   317b6:	f240 3156 	movw	r1, #854	; 0x356
   317ba:	4620      	mov	r0, r4
   317bc:	f002 f98e 	bl	33adc <assert_post_action>
   317c0:	e018      	b.n	317f4 <k_sched_unlock+0xa0>
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   317c2:	4c1a      	ldr	r4, [pc, #104]	; (3182c <k_sched_unlock+0xd8>)
   317c4:	22ac      	movs	r2, #172	; 0xac
   317c6:	4621      	mov	r1, r4
   317c8:	4819      	ldr	r0, [pc, #100]	; (31830 <k_sched_unlock+0xdc>)
   317ca:	f001 fdee 	bl	333aa <printk>
   317ce:	21ac      	movs	r1, #172	; 0xac
   317d0:	4620      	mov	r0, r4
   317d2:	f002 f983 	bl	33adc <assert_post_action>
	__asm__ volatile(
   317d6:	f385 8811 	msr	BASEPRI, r5
   317da:	f3bf 8f6f 	isb	sy
	LOCKED(&sched_spinlock) {
   317de:	2401      	movs	r4, #1
   317e0:	b9b4      	cbnz	r4, 31810 <k_sched_unlock+0xbc>
		__ASSERT(_current->base.sched_locked != 0U, "");
   317e2:	4b15      	ldr	r3, [pc, #84]	; (31838 <k_sched_unlock+0xe4>)
   317e4:	689b      	ldr	r3, [r3, #8]
   317e6:	7bdb      	ldrb	r3, [r3, #15]
   317e8:	2b00      	cmp	r3, #0
   317ea:	d0d0      	beq.n	3178e <k_sched_unlock+0x3a>
   317ec:	f3ef 8305 	mrs	r3, IPSR
		__ASSERT(!arch_is_in_isr(), "");
   317f0:	2b00      	cmp	r3, #0
   317f2:	d1d9      	bne.n	317a8 <k_sched_unlock+0x54>
		++_current->base.sched_locked;
   317f4:	4b10      	ldr	r3, [pc, #64]	; (31838 <k_sched_unlock+0xe4>)
   317f6:	689a      	ldr	r2, [r3, #8]
   317f8:	7bd3      	ldrb	r3, [r2, #15]
   317fa:	3301      	adds	r3, #1
   317fc:	73d3      	strb	r3, [r2, #15]
		update_cache(0);
   317fe:	2000      	movs	r0, #0
   31800:	f7ff fb86 	bl	30f10 <update_cache>
   31804:	4808      	ldr	r0, [pc, #32]	; (31828 <k_sched_unlock+0xd4>)
   31806:	f7fd fe9d 	bl	2f544 <z_spin_unlock_valid>
   3180a:	2800      	cmp	r0, #0
   3180c:	d1e3      	bne.n	317d6 <k_sched_unlock+0x82>
   3180e:	e7d8      	b.n	317c2 <k_sched_unlock+0x6e>
	__asm__ volatile(
   31810:	f04f 0340 	mov.w	r3, #64	; 0x40
   31814:	f3ef 8011 	mrs	r0, BASEPRI
   31818:	f383 8812 	msr	BASEPRI_MAX, r3
   3181c:	f3bf 8f6f 	isb	sy
   31820:	f009 fd6e 	bl	3b300 <z_reschedule_irqlock>
}
   31824:	bd70      	pop	{r4, r5, r6, pc}
   31826:	bf00      	nop
   31828:	200034c8 	.word	0x200034c8
   3182c:	0003bde8 	.word	0x0003bde8
   31830:	0003bdac 	.word	0x0003bdac
   31834:	0003fa58 	.word	0x0003fa58
   31838:	20003480 	.word	0x20003480

0003183c <end_thread>:
#ifdef CONFIG_CMSIS_RTOS_V1
extern void z_thread_cmsis_status_mask_clear(struct k_thread *thread);
#endif

static void end_thread(struct k_thread *thread)
{
   3183c:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
	/* We hold the lock, and the thread is known not to be running
	 * anywhere.
	 */
	if ((thread->base.thread_state & _THREAD_DEAD) == 0U) {
   3183e:	7b43      	ldrb	r3, [r0, #13]
   31840:	f013 0f08 	tst.w	r3, #8
   31844:	d145      	bne.n	318d2 <end_thread+0x96>
   31846:	4605      	mov	r5, r0
		thread->base.thread_state |= _THREAD_DEAD;
   31848:	f043 0308 	orr.w	r3, r3, #8
		thread->base.thread_state &= ~_THREAD_ABORTING;
   3184c:	f003 03df 	and.w	r3, r3, #223	; 0xdf
   31850:	7343      	strb	r3, [r0, #13]
		if (z_is_thread_queued(thread)) {
   31852:	f013 0f80 	tst.w	r3, #128	; 0x80
   31856:	d114      	bne.n	31882 <end_thread+0x46>
			dequeue_thread(&_kernel.ready_q.runq, thread);
		}
		if (thread->base.pended_on != NULL) {
   31858:	68ab      	ldr	r3, [r5, #8]
   3185a:	b15b      	cbz	r3, 31874 <end_thread+0x38>
	_priq_wait_remove(&pended_on_thread(thread)->waitq, thread);
   3185c:	4628      	mov	r0, r5
   3185e:	f7ff f965 	bl	30b2c <pended_on_thread>
   31862:	4629      	mov	r1, r5
   31864:	f7ff fae8 	bl	30e38 <z_priq_dumb_remove>
	thread->base.thread_state &= ~_THREAD_PENDING;
   31868:	7b6b      	ldrb	r3, [r5, #13]
   3186a:	f023 0302 	bic.w	r3, r3, #2
   3186e:	736b      	strb	r3, [r5, #13]
	thread->base.pended_on = NULL;
   31870:	2300      	movs	r3, #0
   31872:	60ab      	str	r3, [r5, #8]
   31874:	f105 0018 	add.w	r0, r5, #24
   31878:	f000 fc50 	bl	3211c <z_abort_timeout>
			unpend_thread_no_timeout(thread);
		}
		(void)z_abort_thread_timeout(thread);
		unpend_all(&thread->join_queue);
   3187c:	f105 0758 	add.w	r7, r5, #88	; 0x58
	while ((thread = z_waitq_head(wait_q)) != NULL) {
   31880:	e01c      	b.n	318bc <end_thread+0x80>
	thread->base.thread_state &= ~_THREAD_QUEUED;
   31882:	f003 037f 	and.w	r3, r3, #127	; 0x7f
   31886:	7343      	strb	r3, [r0, #13]
		_priq_run_remove(pq, thread);
   31888:	4601      	mov	r1, r0
   3188a:	4812      	ldr	r0, [pc, #72]	; (318d4 <end_thread+0x98>)
   3188c:	f7ff fad4 	bl	30e38 <z_priq_dumb_remove>
}
   31890:	e7e2      	b.n	31858 <end_thread+0x1c>
	_priq_wait_remove(&pended_on_thread(thread)->waitq, thread);
   31892:	4620      	mov	r0, r4
   31894:	f7ff f94a 	bl	30b2c <pended_on_thread>
   31898:	4621      	mov	r1, r4
   3189a:	f7ff facd 	bl	30e38 <z_priq_dumb_remove>
   3189e:	7b63      	ldrb	r3, [r4, #13]
   318a0:	f023 0302 	bic.w	r3, r3, #2
   318a4:	7363      	strb	r3, [r4, #13]
	thread->base.pended_on = NULL;
   318a6:	2600      	movs	r6, #0
   318a8:	60a6      	str	r6, [r4, #8]
   318aa:	f104 0018 	add.w	r0, r4, #24
   318ae:	f000 fc35 	bl	3211c <z_abort_timeout>
   318b2:	f8c4 60b0 	str.w	r6, [r4, #176]	; 0xb0
		ready_thread(thread);
   318b6:	4620      	mov	r0, r4
   318b8:	f7ff fc3e 	bl	31138 <ready_thread>
	return list->head == list;
   318bc:	683c      	ldr	r4, [r7, #0]
	return sys_dlist_is_empty(list) ? NULL : list->head;
   318be:	42bc      	cmp	r4, r7
   318c0:	d001      	beq.n	318c6 <end_thread+0x8a>
	while ((thread = z_waitq_head(wait_q)) != NULL) {
   318c2:	2c00      	cmp	r4, #0
   318c4:	d1e5      	bne.n	31892 <end_thread+0x56>
		update_cache(1);
   318c6:	2001      	movs	r0, #1
   318c8:	f7ff fb22 	bl	30f10 <update_cache>

		SYS_PORT_TRACING_FUNC(k_thread, sched_abort, thread);

		z_thread_monitor_exit(thread);
   318cc:	4628      	mov	r0, r5
   318ce:	f7fd fe51 	bl	2f574 <z_thread_monitor_exit>
		z_thread_perms_all_clear(thread);
		z_object_uninit(thread->stack_obj);
		z_object_uninit(thread);
#endif
	}
}
   318d2:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
   318d4:	200034a0 	.word	0x200034a0

000318d8 <z_unpend_first_thread>:
{
   318d8:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
   318da:	4607      	mov	r7, r0
	LOCKED(&sched_spinlock) {
   318dc:	2500      	movs	r5, #0
   318de:	f04f 0340 	mov.w	r3, #64	; 0x40
   318e2:	f3ef 8611 	mrs	r6, BASEPRI
   318e6:	f383 8812 	msr	BASEPRI_MAX, r3
   318ea:	f3bf 8f6f 	isb	sy
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   318ee:	4820      	ldr	r0, [pc, #128]	; (31970 <z_unpend_first_thread+0x98>)
   318f0:	f7fd fe18 	bl	2f524 <z_spin_lock_valid>
   318f4:	b120      	cbz	r0, 31900 <z_unpend_first_thread+0x28>
	z_spin_lock_set_owner(l);
   318f6:	481e      	ldr	r0, [pc, #120]	; (31970 <z_unpend_first_thread+0x98>)
   318f8:	f7fd fe34 	bl	2f564 <z_spin_lock_set_owner>
	struct k_thread *thread = NULL;
   318fc:	2400      	movs	r4, #0
	return k;
   318fe:	e022      	b.n	31946 <z_unpend_first_thread+0x6e>
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   31900:	4c1c      	ldr	r4, [pc, #112]	; (31974 <z_unpend_first_thread+0x9c>)
   31902:	2281      	movs	r2, #129	; 0x81
   31904:	4621      	mov	r1, r4
   31906:	481c      	ldr	r0, [pc, #112]	; (31978 <z_unpend_first_thread+0xa0>)
   31908:	f001 fd4f 	bl	333aa <printk>
   3190c:	2181      	movs	r1, #129	; 0x81
   3190e:	4620      	mov	r0, r4
   31910:	f002 f8e4 	bl	33adc <assert_post_action>
   31914:	e7ef      	b.n	318f6 <z_unpend_first_thread+0x1e>
	_priq_wait_remove(&pended_on_thread(thread)->waitq, thread);
   31916:	f7ff f909 	bl	30b2c <pended_on_thread>
   3191a:	4621      	mov	r1, r4
   3191c:	f7ff fa8c 	bl	30e38 <z_priq_dumb_remove>
   31920:	7b63      	ldrb	r3, [r4, #13]
   31922:	f023 0302 	bic.w	r3, r3, #2
   31926:	7363      	strb	r3, [r4, #13]
	thread->base.pended_on = NULL;
   31928:	2300      	movs	r3, #0
   3192a:	60a3      	str	r3, [r4, #8]
   3192c:	f104 0018 	add.w	r0, r4, #24
   31930:	f000 fbf4 	bl	3211c <z_abort_timeout>
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   31934:	480e      	ldr	r0, [pc, #56]	; (31970 <z_unpend_first_thread+0x98>)
   31936:	f7fd fe05 	bl	2f544 <z_spin_unlock_valid>
   3193a:	b160      	cbz	r0, 31956 <z_unpend_first_thread+0x7e>
	__asm__ volatile(
   3193c:	f386 8811 	msr	BASEPRI, r6
   31940:	f3bf 8f6f 	isb	sy
	LOCKED(&sched_spinlock) {
   31944:	2501      	movs	r5, #1
   31946:	b98d      	cbnz	r5, 3196c <z_unpend_first_thread+0x94>
		thread = _priq_wait_best(&wait_q->waitq);
   31948:	4638      	mov	r0, r7
   3194a:	f009 fcee 	bl	3b32a <z_priq_dumb_best>
		if (thread != NULL) {
   3194e:	4604      	mov	r4, r0
   31950:	2800      	cmp	r0, #0
   31952:	d1e0      	bne.n	31916 <z_unpend_first_thread+0x3e>
   31954:	e7ee      	b.n	31934 <z_unpend_first_thread+0x5c>
   31956:	4d07      	ldr	r5, [pc, #28]	; (31974 <z_unpend_first_thread+0x9c>)
   31958:	22ac      	movs	r2, #172	; 0xac
   3195a:	4629      	mov	r1, r5
   3195c:	4806      	ldr	r0, [pc, #24]	; (31978 <z_unpend_first_thread+0xa0>)
   3195e:	f001 fd24 	bl	333aa <printk>
   31962:	21ac      	movs	r1, #172	; 0xac
   31964:	4628      	mov	r0, r5
   31966:	f002 f8b9 	bl	33adc <assert_post_action>
   3196a:	e7e7      	b.n	3193c <z_unpend_first_thread+0x64>
}
   3196c:	4620      	mov	r0, r4
   3196e:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
   31970:	200034c8 	.word	0x200034c8
   31974:	0003bde8 	.word	0x0003bde8
   31978:	0003bdac 	.word	0x0003bdac

0003197c <z_sched_init>:
{
   3197c:	b508      	push	{r3, lr}
	list->head = (sys_dnode_t *)list;
   3197e:	4b05      	ldr	r3, [pc, #20]	; (31994 <z_sched_init+0x18>)
   31980:	f103 0220 	add.w	r2, r3, #32
   31984:	621a      	str	r2, [r3, #32]
	list->tail = (sys_dnode_t *)list;
   31986:	625a      	str	r2, [r3, #36]	; 0x24
	k_sched_time_slice_set(CONFIG_TIMESLICE_SIZE,
   31988:	2100      	movs	r1, #0
   3198a:	4608      	mov	r0, r1
   3198c:	f7ff f90c 	bl	30ba8 <k_sched_time_slice_set>
}
   31990:	bd08      	pop	{r3, pc}
   31992:	bf00      	nop
   31994:	20003480 	.word	0x20003480

00031998 <z_impl_k_yield>:
{
   31998:	b570      	push	{r4, r5, r6, lr}
   3199a:	f3ef 8305 	mrs	r3, IPSR
	__ASSERT(!arch_is_in_isr(), "");
   3199e:	2b00      	cmp	r3, #0
   319a0:	d148      	bne.n	31a34 <z_impl_k_yield+0x9c>
	__asm__ volatile(
   319a2:	f04f 0340 	mov.w	r3, #64	; 0x40
   319a6:	f3ef 8611 	mrs	r6, BASEPRI
   319aa:	f383 8812 	msr	BASEPRI_MAX, r3
   319ae:	f3bf 8f6f 	isb	sy
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   319b2:	483b      	ldr	r0, [pc, #236]	; (31aa0 <z_impl_k_yield+0x108>)
   319b4:	f7fd fdb6 	bl	2f524 <z_spin_lock_valid>
   319b8:	2800      	cmp	r0, #0
   319ba:	d048      	beq.n	31a4e <z_impl_k_yield+0xb6>
	z_spin_lock_set_owner(l);
   319bc:	4838      	ldr	r0, [pc, #224]	; (31aa0 <z_impl_k_yield+0x108>)
   319be:	f7fd fdd1 	bl	2f564 <z_spin_lock_set_owner>
		dequeue_thread(&_kernel.ready_q.runq,
   319c2:	4c38      	ldr	r4, [pc, #224]	; (31aa4 <z_impl_k_yield+0x10c>)
   319c4:	68a1      	ldr	r1, [r4, #8]
	thread->base.thread_state &= ~_THREAD_QUEUED;
   319c6:	7b4b      	ldrb	r3, [r1, #13]
   319c8:	f003 037f 	and.w	r3, r3, #127	; 0x7f
   319cc:	734b      	strb	r3, [r1, #13]
		_priq_run_remove(pq, thread);
   319ce:	f104 0020 	add.w	r0, r4, #32
   319d2:	f7ff fa31 	bl	30e38 <z_priq_dumb_remove>
	queue_thread(&_kernel.ready_q.runq, _current);
   319d6:	68a5      	ldr	r5, [r4, #8]
	thread->base.thread_state |= _THREAD_QUEUED;
   319d8:	7b6b      	ldrb	r3, [r5, #13]
   319da:	f063 037f 	orn	r3, r3, #127	; 0x7f
   319de:	736b      	strb	r3, [r5, #13]
	__ASSERT_NO_MSG(!z_is_idle_thread_object(thread));
   319e0:	4b31      	ldr	r3, [pc, #196]	; (31aa8 <z_impl_k_yield+0x110>)
   319e2:	429d      	cmp	r5, r3
   319e4:	d03e      	beq.n	31a64 <z_impl_k_yield+0xcc>
	return list->head == list;
   319e6:	4b2f      	ldr	r3, [pc, #188]	; (31aa4 <z_impl_k_yield+0x10c>)
   319e8:	f853 4f20 	ldr.w	r4, [r3, #32]!
	return sys_dlist_is_empty(list) ? NULL : list->head;
   319ec:	429c      	cmp	r4, r3
   319ee:	d04a      	beq.n	31a86 <z_impl_k_yield+0xee>
	SYS_DLIST_FOR_EACH_CONTAINER(pq, t, base.qnode_dlist) {
   319f0:	b16c      	cbz	r4, 31a0e <z_impl_k_yield+0x76>
		if (z_sched_prio_cmp(thread, t) > 0) {
   319f2:	4621      	mov	r1, r4
   319f4:	4628      	mov	r0, r5
   319f6:	f009 fc79 	bl	3b2ec <z_sched_prio_cmp>
   319fa:	2800      	cmp	r0, #0
   319fc:	dc3d      	bgt.n	31a7a <z_impl_k_yield+0xe2>
	return (node != NULL) ? sys_dlist_peek_next_no_check(list, node) : NULL;
   319fe:	b134      	cbz	r4, 31a0e <z_impl_k_yield+0x76>
	return (node == list->tail) ? NULL : node->next;
   31a00:	4b28      	ldr	r3, [pc, #160]	; (31aa4 <z_impl_k_yield+0x10c>)
   31a02:	6a5b      	ldr	r3, [r3, #36]	; 0x24
   31a04:	429c      	cmp	r4, r3
   31a06:	d002      	beq.n	31a0e <z_impl_k_yield+0x76>
   31a08:	6824      	ldr	r4, [r4, #0]
	SYS_DLIST_FOR_EACH_CONTAINER(pq, t, base.qnode_dlist) {
   31a0a:	2c00      	cmp	r4, #0
   31a0c:	d1f0      	bne.n	319f0 <z_impl_k_yield+0x58>
	sys_dnode_t *const tail = list->tail;
   31a0e:	4b25      	ldr	r3, [pc, #148]	; (31aa4 <z_impl_k_yield+0x10c>)
   31a10:	6a5a      	ldr	r2, [r3, #36]	; 0x24
	node->next = list;
   31a12:	f103 0120 	add.w	r1, r3, #32
   31a16:	6029      	str	r1, [r5, #0]
	node->prev = tail;
   31a18:	606a      	str	r2, [r5, #4]
	tail->next = node;
   31a1a:	6015      	str	r5, [r2, #0]
	list->tail = node;
   31a1c:	625d      	str	r5, [r3, #36]	; 0x24
	update_cache(1);
   31a1e:	2001      	movs	r0, #1
   31a20:	f7ff fa76 	bl	30f10 <update_cache>
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   31a24:	481e      	ldr	r0, [pc, #120]	; (31aa0 <z_impl_k_yield+0x108>)
   31a26:	f7fd fd8d 	bl	2f544 <z_spin_unlock_valid>
   31a2a:	b370      	cbz	r0, 31a8a <z_impl_k_yield+0xf2>
   31a2c:	4630      	mov	r0, r6
   31a2e:	f7ed fd37 	bl	1f4a0 <arch_swap>
}
   31a32:	bd70      	pop	{r4, r5, r6, pc}
	__ASSERT(!arch_is_in_isr(), "");
   31a34:	4c1d      	ldr	r4, [pc, #116]	; (31aac <z_impl_k_yield+0x114>)
   31a36:	f240 42a1 	movw	r2, #1185	; 0x4a1
   31a3a:	4621      	mov	r1, r4
   31a3c:	481c      	ldr	r0, [pc, #112]	; (31ab0 <z_impl_k_yield+0x118>)
   31a3e:	f001 fcb4 	bl	333aa <printk>
   31a42:	f240 41a1 	movw	r1, #1185	; 0x4a1
   31a46:	4620      	mov	r0, r4
   31a48:	f002 f848 	bl	33adc <assert_post_action>
   31a4c:	e7a9      	b.n	319a2 <z_impl_k_yield+0xa>
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   31a4e:	4c19      	ldr	r4, [pc, #100]	; (31ab4 <z_impl_k_yield+0x11c>)
   31a50:	2281      	movs	r2, #129	; 0x81
   31a52:	4621      	mov	r1, r4
   31a54:	4816      	ldr	r0, [pc, #88]	; (31ab0 <z_impl_k_yield+0x118>)
   31a56:	f001 fca8 	bl	333aa <printk>
   31a5a:	2181      	movs	r1, #129	; 0x81
   31a5c:	4620      	mov	r0, r4
   31a5e:	f002 f83d 	bl	33adc <assert_post_action>
   31a62:	e7ab      	b.n	319bc <z_impl_k_yield+0x24>
	__ASSERT_NO_MSG(!z_is_idle_thread_object(thread));
   31a64:	4c11      	ldr	r4, [pc, #68]	; (31aac <z_impl_k_yield+0x114>)
   31a66:	22b1      	movs	r2, #177	; 0xb1
   31a68:	4621      	mov	r1, r4
   31a6a:	4811      	ldr	r0, [pc, #68]	; (31ab0 <z_impl_k_yield+0x118>)
   31a6c:	f001 fc9d 	bl	333aa <printk>
   31a70:	21b1      	movs	r1, #177	; 0xb1
   31a72:	4620      	mov	r0, r4
   31a74:	f002 f832 	bl	33adc <assert_post_action>
   31a78:	e7b5      	b.n	319e6 <z_impl_k_yield+0x4e>
	sys_dnode_t *const prev = successor->prev;
   31a7a:	6863      	ldr	r3, [r4, #4]
	node->prev = prev;
   31a7c:	606b      	str	r3, [r5, #4]
	node->next = successor;
   31a7e:	602c      	str	r4, [r5, #0]
	prev->next = node;
   31a80:	601d      	str	r5, [r3, #0]
	successor->prev = node;
   31a82:	6065      	str	r5, [r4, #4]
}
   31a84:	e7cb      	b.n	31a1e <z_impl_k_yield+0x86>
	SYS_DLIST_FOR_EACH_CONTAINER(pq, t, base.qnode_dlist) {
   31a86:	2400      	movs	r4, #0
   31a88:	e7b2      	b.n	319f0 <z_impl_k_yield+0x58>
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   31a8a:	4c0a      	ldr	r4, [pc, #40]	; (31ab4 <z_impl_k_yield+0x11c>)
   31a8c:	22c3      	movs	r2, #195	; 0xc3
   31a8e:	4621      	mov	r1, r4
   31a90:	4807      	ldr	r0, [pc, #28]	; (31ab0 <z_impl_k_yield+0x118>)
   31a92:	f001 fc8a 	bl	333aa <printk>
   31a96:	21c3      	movs	r1, #195	; 0xc3
   31a98:	4620      	mov	r0, r4
   31a9a:	f002 f81f 	bl	33adc <assert_post_action>
   31a9e:	e7c5      	b.n	31a2c <z_impl_k_yield+0x94>
   31aa0:	200034c8 	.word	0x200034c8
   31aa4:	20003480 	.word	0x20003480
   31aa8:	20001ea0 	.word	0x20001ea0
   31aac:	0003fa58 	.word	0x0003fa58
   31ab0:	0003bdac 	.word	0x0003bdac
   31ab4:	0003bde8 	.word	0x0003bde8

00031ab8 <z_tick_sleep>:
{
   31ab8:	e92d 43f8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
   31abc:	4604      	mov	r4, r0
   31abe:	460d      	mov	r5, r1
   31ac0:	f3ef 8305 	mrs	r3, IPSR
	__ASSERT(!arch_is_in_isr(), "");
   31ac4:	2b00      	cmp	r3, #0
   31ac6:	d14e      	bne.n	31b66 <z_tick_sleep+0xae>
	if (ticks == 0) {
   31ac8:	ea54 0305 	orrs.w	r3, r4, r5
   31acc:	d059      	beq.n	31b82 <z_tick_sleep+0xca>
	if (Z_TICK_ABS(ticks) <= 0) {
   31ace:	f06f 0301 	mvn.w	r3, #1
   31ad2:	1b1e      	subs	r6, r3, r4
   31ad4:	f04f 33ff 	mov.w	r3, #4294967295
   31ad8:	eb63 0705 	sbc.w	r7, r3, r5
   31adc:	2e01      	cmp	r6, #1
   31ade:	f177 0300 	sbcs.w	r3, r7, #0
   31ae2:	db52      	blt.n	31b8a <z_tick_sleep+0xd2>
		expected_wakeup_ticks = Z_TICK_ABS(ticks);
   31ae4:	f06f 0601 	mvn.w	r6, #1
   31ae8:	1b36      	subs	r6, r6, r4
   31aea:	f04f 0340 	mov.w	r3, #64	; 0x40
   31aee:	f3ef 8911 	mrs	r9, BASEPRI
   31af2:	f383 8812 	msr	BASEPRI_MAX, r3
   31af6:	f3bf 8f6f 	isb	sy
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   31afa:	4838      	ldr	r0, [pc, #224]	; (31bdc <z_tick_sleep+0x124>)
   31afc:	f7fd fd12 	bl	2f524 <z_spin_lock_valid>
   31b00:	2800      	cmp	r0, #0
   31b02:	d046      	beq.n	31b92 <z_tick_sleep+0xda>
	z_spin_lock_set_owner(l);
   31b04:	f8df 80d4 	ldr.w	r8, [pc, #212]	; 31bdc <z_tick_sleep+0x124>
   31b08:	4640      	mov	r0, r8
   31b0a:	f7fd fd2b 	bl	2f564 <z_spin_lock_set_owner>
	pending_current = _current;
   31b0e:	4f34      	ldr	r7, [pc, #208]	; (31be0 <z_tick_sleep+0x128>)
   31b10:	68b8      	ldr	r0, [r7, #8]
   31b12:	4b34      	ldr	r3, [pc, #208]	; (31be4 <z_tick_sleep+0x12c>)
   31b14:	6018      	str	r0, [r3, #0]
	unready_thread(_current);
   31b16:	f7ff fc4b 	bl	313b0 <unready_thread>
	z_add_thread_timeout(_current, timeout);
   31b1a:	68b8      	ldr	r0, [r7, #8]
	z_add_timeout(&thread->base.timeout, z_thread_timeout, ticks);
   31b1c:	4622      	mov	r2, r4
   31b1e:	462b      	mov	r3, r5
   31b20:	4931      	ldr	r1, [pc, #196]	; (31be8 <z_tick_sleep+0x130>)
   31b22:	3018      	adds	r0, #24
   31b24:	f000 fa16 	bl	31f54 <z_add_timeout>
	z_mark_thread_as_suspended(_current);
   31b28:	68ba      	ldr	r2, [r7, #8]
	thread->base.thread_state |= _THREAD_SUSPENDED;
   31b2a:	7b53      	ldrb	r3, [r2, #13]
   31b2c:	f043 0310 	orr.w	r3, r3, #16
   31b30:	7353      	strb	r3, [r2, #13]
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   31b32:	4640      	mov	r0, r8
   31b34:	f7fd fd06 	bl	2f544 <z_spin_unlock_valid>
   31b38:	b3b0      	cbz	r0, 31ba8 <z_tick_sleep+0xf0>
   31b3a:	4648      	mov	r0, r9
   31b3c:	f7ed fcb0 	bl	1f4a0 <arch_swap>
	__ASSERT(!z_is_thread_state_set(_current, _THREAD_SUSPENDED), "");
   31b40:	4b27      	ldr	r3, [pc, #156]	; (31be0 <z_tick_sleep+0x128>)
   31b42:	689b      	ldr	r3, [r3, #8]
	return (thread->base.thread_state & state) != 0U;
   31b44:	7b5b      	ldrb	r3, [r3, #13]
   31b46:	f013 0f10 	tst.w	r3, #16
   31b4a:	d138      	bne.n	31bbe <z_tick_sleep+0x106>
	ticks = (k_ticks_t)expected_wakeup_ticks - sys_clock_tick_get_32();
   31b4c:	2500      	movs	r5, #0
   31b4e:	f009 fc1b 	bl	3b388 <sys_clock_tick_get_32>
   31b52:	1a34      	subs	r4, r6, r0
   31b54:	f165 0500 	sbc.w	r5, r5, #0
	if (ticks > 0) {
   31b58:	2c01      	cmp	r4, #1
   31b5a:	f175 0300 	sbcs.w	r3, r5, #0
   31b5e:	da3b      	bge.n	31bd8 <z_tick_sleep+0x120>
	return 0;
   31b60:	2000      	movs	r0, #0
}
   31b62:	e8bd 83f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
	__ASSERT(!arch_is_in_isr(), "");
   31b66:	f8df 808c 	ldr.w	r8, [pc, #140]	; 31bf4 <z_tick_sleep+0x13c>
   31b6a:	f240 42be 	movw	r2, #1214	; 0x4be
   31b6e:	4641      	mov	r1, r8
   31b70:	481e      	ldr	r0, [pc, #120]	; (31bec <z_tick_sleep+0x134>)
   31b72:	f001 fc1a 	bl	333aa <printk>
   31b76:	f240 41be 	movw	r1, #1214	; 0x4be
   31b7a:	4640      	mov	r0, r8
   31b7c:	f001 ffae 	bl	33adc <assert_post_action>
   31b80:	e7a2      	b.n	31ac8 <z_tick_sleep+0x10>
	z_impl_k_yield();
   31b82:	f7ff ff09 	bl	31998 <z_impl_k_yield>
		return 0;
   31b86:	2000      	movs	r0, #0
   31b88:	e7eb      	b.n	31b62 <z_tick_sleep+0xaa>
		expected_wakeup_ticks = ticks + sys_clock_tick_get_32();
   31b8a:	f009 fbfd 	bl	3b388 <sys_clock_tick_get_32>
   31b8e:	1906      	adds	r6, r0, r4
   31b90:	e7ab      	b.n	31aea <z_tick_sleep+0x32>
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   31b92:	4f17      	ldr	r7, [pc, #92]	; (31bf0 <z_tick_sleep+0x138>)
   31b94:	2281      	movs	r2, #129	; 0x81
   31b96:	4639      	mov	r1, r7
   31b98:	4814      	ldr	r0, [pc, #80]	; (31bec <z_tick_sleep+0x134>)
   31b9a:	f001 fc06 	bl	333aa <printk>
   31b9e:	2181      	movs	r1, #129	; 0x81
   31ba0:	4638      	mov	r0, r7
   31ba2:	f001 ff9b 	bl	33adc <assert_post_action>
   31ba6:	e7ad      	b.n	31b04 <z_tick_sleep+0x4c>
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   31ba8:	4c11      	ldr	r4, [pc, #68]	; (31bf0 <z_tick_sleep+0x138>)
   31baa:	22c3      	movs	r2, #195	; 0xc3
   31bac:	4621      	mov	r1, r4
   31bae:	480f      	ldr	r0, [pc, #60]	; (31bec <z_tick_sleep+0x134>)
   31bb0:	f001 fbfb 	bl	333aa <printk>
   31bb4:	21c3      	movs	r1, #195	; 0xc3
   31bb6:	4620      	mov	r0, r4
   31bb8:	f001 ff90 	bl	33adc <assert_post_action>
   31bbc:	e7bd      	b.n	31b3a <z_tick_sleep+0x82>
	__ASSERT(!z_is_thread_state_set(_current, _THREAD_SUSPENDED), "");
   31bbe:	4c0d      	ldr	r4, [pc, #52]	; (31bf4 <z_tick_sleep+0x13c>)
   31bc0:	f240 42df 	movw	r2, #1247	; 0x4df
   31bc4:	4621      	mov	r1, r4
   31bc6:	4809      	ldr	r0, [pc, #36]	; (31bec <z_tick_sleep+0x134>)
   31bc8:	f001 fbef 	bl	333aa <printk>
   31bcc:	f240 41df 	movw	r1, #1247	; 0x4df
   31bd0:	4620      	mov	r0, r4
   31bd2:	f001 ff83 	bl	33adc <assert_post_action>
   31bd6:	e7b9      	b.n	31b4c <z_tick_sleep+0x94>
		return ticks;
   31bd8:	4620      	mov	r0, r4
   31bda:	e7c2      	b.n	31b62 <z_tick_sleep+0xaa>
   31bdc:	200034c8 	.word	0x200034c8
   31be0:	20003480 	.word	0x20003480
   31be4:	200034c4 	.word	0x200034c4
   31be8:	000312f5 	.word	0x000312f5
   31bec:	0003bdac 	.word	0x0003bdac
   31bf0:	0003bde8 	.word	0x0003bde8
   31bf4:	0003fa58 	.word	0x0003fa58

00031bf8 <z_impl_k_sleep>:
{
   31bf8:	b570      	push	{r4, r5, r6, lr}
   31bfa:	4604      	mov	r4, r0
   31bfc:	460d      	mov	r5, r1
   31bfe:	f3ef 8305 	mrs	r3, IPSR
	__ASSERT(!arch_is_in_isr(), "");
   31c02:	bb13      	cbnz	r3, 31c4a <z_impl_k_sleep+0x52>
	if (K_TIMEOUT_EQ(timeout, K_FOREVER)) {
   31c04:	f1b5 3fff 	cmp.w	r5, #4294967295
   31c08:	bf08      	it	eq
   31c0a:	f1b4 3fff 	cmpeq.w	r4, #4294967295
   31c0e:	d029      	beq.n	31c64 <z_impl_k_sleep+0x6c>
	ticks = z_tick_sleep(ticks);
   31c10:	4620      	mov	r0, r4
   31c12:	4629      	mov	r1, r5
   31c14:	f7ff ff50 	bl	31ab8 <z_tick_sleep>
	int32_t ret = k_ticks_to_ms_floor64(ticks);
   31c18:	4604      	mov	r4, r0
   31c1a:	17c5      	asrs	r5, r0, #31
			return (t * to_hz + off) / from_hz;
   31c1c:	0169      	lsls	r1, r5, #5
   31c1e:	0143      	lsls	r3, r0, #5
   31c20:	ea41 62d0 	orr.w	r2, r1, r0, lsr #27
   31c24:	1a18      	subs	r0, r3, r0
   31c26:	eb62 0305 	sbc.w	r3, r2, r5
   31c2a:	009a      	lsls	r2, r3, #2
   31c2c:	ea42 7290 	orr.w	r2, r2, r0, lsr #30
   31c30:	0081      	lsls	r1, r0, #2
   31c32:	4613      	mov	r3, r2
   31c34:	1908      	adds	r0, r1, r4
   31c36:	eb45 0303 	adc.w	r3, r5, r3
   31c3a:	00da      	lsls	r2, r3, #3
   31c3c:	ea42 7250 	orr.w	r2, r2, r0, lsr #29
   31c40:	00c1      	lsls	r1, r0, #3
   31c42:	0bc8      	lsrs	r0, r1, #15
   31c44:	ea40 4042 	orr.w	r0, r0, r2, lsl #17
}
   31c48:	bd70      	pop	{r4, r5, r6, pc}
	__ASSERT(!arch_is_in_isr(), "");
   31c4a:	4e0a      	ldr	r6, [pc, #40]	; (31c74 <z_impl_k_sleep+0x7c>)
   31c4c:	f240 42ee 	movw	r2, #1262	; 0x4ee
   31c50:	4631      	mov	r1, r6
   31c52:	4809      	ldr	r0, [pc, #36]	; (31c78 <z_impl_k_sleep+0x80>)
   31c54:	f001 fba9 	bl	333aa <printk>
   31c58:	f240 41ee 	movw	r1, #1262	; 0x4ee
   31c5c:	4630      	mov	r0, r6
   31c5e:	f001 ff3d 	bl	33adc <assert_post_action>
   31c62:	e7cf      	b.n	31c04 <z_impl_k_sleep+0xc>
		k_thread_suspend(_current);
   31c64:	4b05      	ldr	r3, [pc, #20]	; (31c7c <z_impl_k_sleep+0x84>)
   31c66:	6898      	ldr	r0, [r3, #8]
	z_impl_k_thread_suspend(thread);
   31c68:	f7ff fd0a 	bl	31680 <z_impl_k_thread_suspend>
		return (int32_t) K_TICKS_FOREVER;
   31c6c:	f04f 30ff 	mov.w	r0, #4294967295
   31c70:	e7ea      	b.n	31c48 <z_impl_k_sleep+0x50>
   31c72:	bf00      	nop
   31c74:	0003fa58 	.word	0x0003fa58
   31c78:	0003bdac 	.word	0x0003bdac
   31c7c:	20003480 	.word	0x20003480

00031c80 <z_impl_z_current_get>:
}
   31c80:	4b01      	ldr	r3, [pc, #4]	; (31c88 <z_impl_z_current_get+0x8>)
   31c82:	6898      	ldr	r0, [r3, #8]
   31c84:	4770      	bx	lr
   31c86:	bf00      	nop
   31c88:	20003480 	.word	0x20003480

00031c8c <z_impl_k_is_preempt_thread>:
   31c8c:	f3ef 8305 	mrs	r3, IPSR
	return !arch_is_in_isr() && is_preempt(_current);
   31c90:	b933      	cbnz	r3, 31ca0 <z_impl_k_is_preempt_thread+0x14>
   31c92:	4b05      	ldr	r3, [pc, #20]	; (31ca8 <z_impl_k_is_preempt_thread+0x1c>)
   31c94:	689b      	ldr	r3, [r3, #8]
	return thread->base.preempt <= _PREEMPT_THRESHOLD;
   31c96:	89db      	ldrh	r3, [r3, #14]
	return !arch_is_in_isr() && is_preempt(_current);
   31c98:	2b7f      	cmp	r3, #127	; 0x7f
   31c9a:	d803      	bhi.n	31ca4 <z_impl_k_is_preempt_thread+0x18>
   31c9c:	2001      	movs	r0, #1
   31c9e:	4770      	bx	lr
   31ca0:	2000      	movs	r0, #0
   31ca2:	4770      	bx	lr
   31ca4:	2000      	movs	r0, #0
}
   31ca6:	4770      	bx	lr
   31ca8:	20003480 	.word	0x20003480

00031cac <z_thread_abort>:

void z_thread_abort(struct k_thread *thread)
{
   31cac:	b570      	push	{r4, r5, r6, lr}
   31cae:	4604      	mov	r4, r0
   31cb0:	f04f 0340 	mov.w	r3, #64	; 0x40
   31cb4:	f3ef 8511 	mrs	r5, BASEPRI
   31cb8:	f383 8812 	msr	BASEPRI_MAX, r3
   31cbc:	f3bf 8f6f 	isb	sy
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   31cc0:	4834      	ldr	r0, [pc, #208]	; (31d94 <z_thread_abort+0xe8>)
   31cc2:	f7fd fc2f 	bl	2f524 <z_spin_lock_valid>
   31cc6:	b1b8      	cbz	r0, 31cf8 <z_thread_abort+0x4c>
	z_spin_lock_set_owner(l);
   31cc8:	4832      	ldr	r0, [pc, #200]	; (31d94 <z_thread_abort+0xe8>)
   31cca:	f7fd fc4b 	bl	2f564 <z_spin_lock_set_owner>
	k_spinlock_key_t key = k_spin_lock(&sched_spinlock);

	if ((thread->base.thread_state & _THREAD_DEAD) != 0U) {
   31cce:	7b63      	ldrb	r3, [r4, #13]
   31cd0:	f013 0f08 	tst.w	r3, #8
   31cd4:	d11b      	bne.n	31d0e <z_thread_abort+0x62>
			z_swap(&sched_spinlock, key);
		}
		return; /* lock has been released */
	}
#endif
	end_thread(thread);
   31cd6:	4620      	mov	r0, r4
   31cd8:	f7ff fdb0 	bl	3183c <end_thread>
	if (thread == _current && !arch_is_in_isr()) {
   31cdc:	4b2e      	ldr	r3, [pc, #184]	; (31d98 <z_thread_abort+0xec>)
   31cde:	689b      	ldr	r3, [r3, #8]
   31ce0:	42a3      	cmp	r3, r4
   31ce2:	d028      	beq.n	31d36 <z_thread_abort+0x8a>
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   31ce4:	482b      	ldr	r0, [pc, #172]	; (31d94 <z_thread_abort+0xe8>)
   31ce6:	f7fd fc2d 	bl	2f544 <z_spin_unlock_valid>
   31cea:	2800      	cmp	r0, #0
   31cec:	d046      	beq.n	31d7c <z_thread_abort+0xd0>
	__asm__ volatile(
   31cee:	f385 8811 	msr	BASEPRI, r5
   31cf2:	f3bf 8f6f 	isb	sy
		z_swap(&sched_spinlock, key);
		__ASSERT(false, "aborted _current back from dead");
	}
	k_spin_unlock(&sched_spinlock, key);
}
   31cf6:	bd70      	pop	{r4, r5, r6, pc}
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   31cf8:	4e28      	ldr	r6, [pc, #160]	; (31d9c <z_thread_abort+0xf0>)
   31cfa:	2281      	movs	r2, #129	; 0x81
   31cfc:	4631      	mov	r1, r6
   31cfe:	4828      	ldr	r0, [pc, #160]	; (31da0 <z_thread_abort+0xf4>)
   31d00:	f001 fb53 	bl	333aa <printk>
   31d04:	2181      	movs	r1, #129	; 0x81
   31d06:	4630      	mov	r0, r6
   31d08:	f001 fee8 	bl	33adc <assert_post_action>
   31d0c:	e7dc      	b.n	31cc8 <z_thread_abort+0x1c>
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   31d0e:	4821      	ldr	r0, [pc, #132]	; (31d94 <z_thread_abort+0xe8>)
   31d10:	f7fd fc18 	bl	2f544 <z_spin_unlock_valid>
   31d14:	b120      	cbz	r0, 31d20 <z_thread_abort+0x74>
   31d16:	f385 8811 	msr	BASEPRI, r5
   31d1a:	f3bf 8f6f 	isb	sy
		return;
   31d1e:	e7ea      	b.n	31cf6 <z_thread_abort+0x4a>
   31d20:	4c1e      	ldr	r4, [pc, #120]	; (31d9c <z_thread_abort+0xf0>)
   31d22:	22ac      	movs	r2, #172	; 0xac
   31d24:	4621      	mov	r1, r4
   31d26:	481e      	ldr	r0, [pc, #120]	; (31da0 <z_thread_abort+0xf4>)
   31d28:	f001 fb3f 	bl	333aa <printk>
   31d2c:	21ac      	movs	r1, #172	; 0xac
   31d2e:	4620      	mov	r0, r4
   31d30:	f001 fed4 	bl	33adc <assert_post_action>
   31d34:	e7ef      	b.n	31d16 <z_thread_abort+0x6a>
   31d36:	f3ef 8305 	mrs	r3, IPSR
	if (thread == _current && !arch_is_in_isr()) {
   31d3a:	2b00      	cmp	r3, #0
   31d3c:	d1d2      	bne.n	31ce4 <z_thread_abort+0x38>
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   31d3e:	4815      	ldr	r0, [pc, #84]	; (31d94 <z_thread_abort+0xe8>)
   31d40:	f7fd fc00 	bl	2f544 <z_spin_unlock_valid>
   31d44:	b178      	cbz	r0, 31d66 <z_thread_abort+0xba>
   31d46:	4628      	mov	r0, r5
   31d48:	f7ed fbaa 	bl	1f4a0 <arch_swap>
		__ASSERT(false, "aborted _current back from dead");
   31d4c:	4c15      	ldr	r4, [pc, #84]	; (31da4 <z_thread_abort+0xf8>)
   31d4e:	f240 6209 	movw	r2, #1545	; 0x609
   31d52:	4621      	mov	r1, r4
   31d54:	4812      	ldr	r0, [pc, #72]	; (31da0 <z_thread_abort+0xf4>)
   31d56:	f001 fb28 	bl	333aa <printk>
   31d5a:	f240 6109 	movw	r1, #1545	; 0x609
   31d5e:	4620      	mov	r0, r4
   31d60:	f001 febc 	bl	33adc <assert_post_action>
   31d64:	e7be      	b.n	31ce4 <z_thread_abort+0x38>
   31d66:	4c0d      	ldr	r4, [pc, #52]	; (31d9c <z_thread_abort+0xf0>)
   31d68:	22c3      	movs	r2, #195	; 0xc3
   31d6a:	4621      	mov	r1, r4
   31d6c:	480c      	ldr	r0, [pc, #48]	; (31da0 <z_thread_abort+0xf4>)
   31d6e:	f001 fb1c 	bl	333aa <printk>
   31d72:	21c3      	movs	r1, #195	; 0xc3
   31d74:	4620      	mov	r0, r4
   31d76:	f001 feb1 	bl	33adc <assert_post_action>
   31d7a:	e7e4      	b.n	31d46 <z_thread_abort+0x9a>
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   31d7c:	4c07      	ldr	r4, [pc, #28]	; (31d9c <z_thread_abort+0xf0>)
   31d7e:	22ac      	movs	r2, #172	; 0xac
   31d80:	4621      	mov	r1, r4
   31d82:	4807      	ldr	r0, [pc, #28]	; (31da0 <z_thread_abort+0xf4>)
   31d84:	f001 fb11 	bl	333aa <printk>
   31d88:	21ac      	movs	r1, #172	; 0xac
   31d8a:	4620      	mov	r0, r4
   31d8c:	f001 fea6 	bl	33adc <assert_post_action>
   31d90:	e7ad      	b.n	31cee <z_thread_abort+0x42>
   31d92:	bf00      	nop
   31d94:	200034c8 	.word	0x200034c8
   31d98:	20003480 	.word	0x20003480
   31d9c:	0003bde8 	.word	0x0003bde8
   31da0:	0003bdac 	.word	0x0003bdac
   31da4:	0003fa58 	.word	0x0003fa58

00031da8 <z_sched_wake>:

/*
 * future scheduler.h API implementations
 */
bool z_sched_wake(_wait_q_t *wait_q, int swap_retval, void *swap_data)
{
   31da8:	e92d 43f8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
   31dac:	4606      	mov	r6, r0
   31dae:	460f      	mov	r7, r1
   31db0:	4690      	mov	r8, r2
	struct k_thread *thread;
	bool ret = false;

	LOCKED(&sched_spinlock) {
   31db2:	2400      	movs	r4, #0
	__asm__ volatile(
   31db4:	f04f 0340 	mov.w	r3, #64	; 0x40
   31db8:	f3ef 8511 	mrs	r5, BASEPRI
   31dbc:	f383 8812 	msr	BASEPRI_MAX, r3
   31dc0:	f3bf 8f6f 	isb	sy
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   31dc4:	4826      	ldr	r0, [pc, #152]	; (31e60 <z_sched_wake+0xb8>)
   31dc6:	f7fd fbad 	bl	2f524 <z_spin_lock_valid>
   31dca:	b128      	cbz	r0, 31dd8 <z_sched_wake+0x30>
	z_spin_lock_set_owner(l);
   31dcc:	4824      	ldr	r0, [pc, #144]	; (31e60 <z_sched_wake+0xb8>)
   31dce:	f7fd fbc9 	bl	2f564 <z_spin_lock_set_owner>
	bool ret = false;
   31dd2:	f04f 0900 	mov.w	r9, #0
	return k;
   31dd6:	e02c      	b.n	31e32 <z_sched_wake+0x8a>
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   31dd8:	f8df 908c 	ldr.w	r9, [pc, #140]	; 31e68 <z_sched_wake+0xc0>
   31ddc:	2281      	movs	r2, #129	; 0x81
   31dde:	4649      	mov	r1, r9
   31de0:	4820      	ldr	r0, [pc, #128]	; (31e64 <z_sched_wake+0xbc>)
   31de2:	f001 fae2 	bl	333aa <printk>
   31de6:	2181      	movs	r1, #129	; 0x81
   31de8:	4648      	mov	r0, r9
   31dea:	f001 fe77 	bl	33adc <assert_post_action>
   31dee:	e7ed      	b.n	31dcc <z_sched_wake+0x24>
   31df0:	f8c0 70b0 	str.w	r7, [r0, #176]	; 0xb0
	thread->base.swap_data = data;
   31df4:	f8c0 8014 	str.w	r8, [r0, #20]
	_priq_wait_remove(&pended_on_thread(thread)->waitq, thread);
   31df8:	f7fe fe98 	bl	30b2c <pended_on_thread>
   31dfc:	4621      	mov	r1, r4
   31dfe:	f7ff f81b 	bl	30e38 <z_priq_dumb_remove>
	thread->base.thread_state &= ~_THREAD_PENDING;
   31e02:	7b63      	ldrb	r3, [r4, #13]
   31e04:	f023 0302 	bic.w	r3, r3, #2
   31e08:	7363      	strb	r3, [r4, #13]
	thread->base.pended_on = NULL;
   31e0a:	2300      	movs	r3, #0
   31e0c:	60a3      	str	r3, [r4, #8]
	return z_abort_timeout(&thread->base.timeout);
   31e0e:	f104 0018 	add.w	r0, r4, #24
   31e12:	f000 f983 	bl	3211c <z_abort_timeout>
			z_thread_return_value_set_with_data(thread,
							    swap_retval,
							    swap_data);
			unpend_thread_no_timeout(thread);
			(void)z_abort_thread_timeout(thread);
			ready_thread(thread);
   31e16:	4620      	mov	r0, r4
   31e18:	f7ff f98e 	bl	31138 <ready_thread>
			ret = true;
   31e1c:	f04f 0901 	mov.w	r9, #1
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   31e20:	480f      	ldr	r0, [pc, #60]	; (31e60 <z_sched_wake+0xb8>)
   31e22:	f7fd fb8f 	bl	2f544 <z_spin_unlock_valid>
   31e26:	b160      	cbz	r0, 31e42 <z_sched_wake+0x9a>
	__asm__ volatile(
   31e28:	f385 8811 	msr	BASEPRI, r5
   31e2c:	f3bf 8f6f 	isb	sy
	LOCKED(&sched_spinlock) {
   31e30:	2401      	movs	r4, #1
   31e32:	b98c      	cbnz	r4, 31e58 <z_sched_wake+0xb0>
		thread = _priq_wait_best(&wait_q->waitq);
   31e34:	4630      	mov	r0, r6
   31e36:	f009 fa78 	bl	3b32a <z_priq_dumb_best>
		if (thread != NULL) {
   31e3a:	4604      	mov	r4, r0
   31e3c:	2800      	cmp	r0, #0
   31e3e:	d1d7      	bne.n	31df0 <z_sched_wake+0x48>
   31e40:	e7ee      	b.n	31e20 <z_sched_wake+0x78>
   31e42:	4c09      	ldr	r4, [pc, #36]	; (31e68 <z_sched_wake+0xc0>)
   31e44:	22ac      	movs	r2, #172	; 0xac
   31e46:	4621      	mov	r1, r4
   31e48:	4806      	ldr	r0, [pc, #24]	; (31e64 <z_sched_wake+0xbc>)
   31e4a:	f001 faae 	bl	333aa <printk>
   31e4e:	21ac      	movs	r1, #172	; 0xac
   31e50:	4620      	mov	r0, r4
   31e52:	f001 fe43 	bl	33adc <assert_post_action>
   31e56:	e7e7      	b.n	31e28 <z_sched_wake+0x80>
		}
	}

	return ret;
}
   31e58:	4648      	mov	r0, r9
   31e5a:	e8bd 83f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
   31e5e:	bf00      	nop
   31e60:	200034c8 	.word	0x200034c8
   31e64:	0003bdac 	.word	0x0003bdac
   31e68:	0003bde8 	.word	0x0003bde8

00031e6c <z_sched_wait>:

int z_sched_wait(struct k_spinlock *lock, k_spinlock_key_t key,
		 _wait_q_t *wait_q, k_timeout_t timeout, void **data)
{
   31e6c:	b5d0      	push	{r4, r6, r7, lr}
   31e6e:	b082      	sub	sp, #8
   31e70:	9c08      	ldr	r4, [sp, #32]
	int ret = z_pend_curr(lock, key, wait_q, timeout);
   31e72:	e9dd 6706 	ldrd	r6, r7, [sp, #24]
   31e76:	e9cd 6700 	strd	r6, r7, [sp]
   31e7a:	f7ff fb3d 	bl	314f8 <z_pend_curr>

	if (data != NULL) {
   31e7e:	b11c      	cbz	r4, 31e88 <z_sched_wait+0x1c>
		*data = _current->base.swap_data;
   31e80:	4b02      	ldr	r3, [pc, #8]	; (31e8c <z_sched_wait+0x20>)
   31e82:	689b      	ldr	r3, [r3, #8]
   31e84:	695b      	ldr	r3, [r3, #20]
   31e86:	6023      	str	r3, [r4, #0]
	}
	return ret;
}
   31e88:	b002      	add	sp, #8
   31e8a:	bdd0      	pop	{r4, r6, r7, pc}
   31e8c:	20003480 	.word	0x20003480

00031e90 <z_data_copy>:
 * This routine copies the data section from ROM to RAM.
 *
 * @return N/A
 */
void z_data_copy(void)
{
   31e90:	b508      	push	{r3, lr}
	(void)memcpy(&__data_region_start, &__data_region_load_start,
		 __data_region_end - __data_region_start);
   31e92:	4806      	ldr	r0, [pc, #24]	; (31eac <z_data_copy+0x1c>)
	(void)memcpy(&__data_region_start, &__data_region_load_start,
   31e94:	4a06      	ldr	r2, [pc, #24]	; (31eb0 <z_data_copy+0x20>)
   31e96:	1a12      	subs	r2, r2, r0
   31e98:	4906      	ldr	r1, [pc, #24]	; (31eb4 <z_data_copy+0x24>)
   31e9a:	f003 fe2f 	bl	35afc <memcpy>
#ifdef CONFIG_ARCH_HAS_RAMFUNC_SUPPORT
	(void)memcpy(&__ramfunc_start, &__ramfunc_load_start,
   31e9e:	4a06      	ldr	r2, [pc, #24]	; (31eb8 <z_data_copy+0x28>)
   31ea0:	4906      	ldr	r1, [pc, #24]	; (31ebc <z_data_copy+0x2c>)
   31ea2:	4807      	ldr	r0, [pc, #28]	; (31ec0 <z_data_copy+0x30>)
   31ea4:	f003 fe2a 	bl	35afc <memcpy>
#else
	(void)memcpy(&_app_smem_start, &_app_smem_rom_start,
		 _app_smem_end - _app_smem_start);
#endif /* CONFIG_STACK_CANARIES */
#endif /* CONFIG_USERSPACE */
}
   31ea8:	bd08      	pop	{r3, pc}
   31eaa:	bf00      	nop
   31eac:	20000000 	.word	0x20000000
   31eb0:	20000a10 	.word	0x20000a10
   31eb4:	0003fb1c 	.word	0x0003fb1c
   31eb8:	00000000 	.word	0x00000000
   31ebc:	0003fb1c 	.word	0x0003fb1c
   31ec0:	20000000 	.word	0x20000000

00031ec4 <first>:
	return list->head == list;
   31ec4:	4b03      	ldr	r3, [pc, #12]	; (31ed4 <first+0x10>)
   31ec6:	6818      	ldr	r0, [r3, #0]
	return sys_dlist_is_empty(list) ? NULL : list->head;
   31ec8:	4298      	cmp	r0, r3
   31eca:	d000      	beq.n	31ece <first+0xa>
static struct _timeout *first(void)
{
	sys_dnode_t *t = sys_dlist_peek_head(&timeout_list);

	return t == NULL ? NULL : CONTAINER_OF(t, struct _timeout, node);
}
   31ecc:	4770      	bx	lr
   31ece:	2000      	movs	r0, #0
	return t == NULL ? NULL : CONTAINER_OF(t, struct _timeout, node);
   31ed0:	e7fc      	b.n	31ecc <first+0x8>
   31ed2:	bf00      	nop
   31ed4:	2000076c 	.word	0x2000076c

00031ed8 <next>:
	return (node != NULL) ? sys_dlist_peek_next_no_check(list, node) : NULL;
   31ed8:	b130      	cbz	r0, 31ee8 <next+0x10>
	return (node == list->tail) ? NULL : node->next;
   31eda:	4a04      	ldr	r2, [pc, #16]	; (31eec <next+0x14>)
   31edc:	6852      	ldr	r2, [r2, #4]
   31ede:	4290      	cmp	r0, r2
   31ee0:	d001      	beq.n	31ee6 <next+0xe>
   31ee2:	6800      	ldr	r0, [r0, #0]
   31ee4:	4770      	bx	lr
   31ee6:	2000      	movs	r0, #0
static struct _timeout *next(struct _timeout *t)
{
	sys_dnode_t *n = sys_dlist_peek_next(&timeout_list, &t->node);

	return n == NULL ? NULL : CONTAINER_OF(n, struct _timeout, node);
}
   31ee8:	4770      	bx	lr
   31eea:	bf00      	nop
   31eec:	2000076c 	.word	0x2000076c

00031ef0 <elapsed>:

	sys_dlist_remove(&t->node);
}

static int32_t elapsed(void)
{
   31ef0:	b508      	push	{r3, lr}
	return announce_remaining == 0 ? sys_clock_elapsed() : 0U;
   31ef2:	4b04      	ldr	r3, [pc, #16]	; (31f04 <elapsed+0x14>)
   31ef4:	681b      	ldr	r3, [r3, #0]
   31ef6:	b10b      	cbz	r3, 31efc <elapsed+0xc>
   31ef8:	2000      	movs	r0, #0
}
   31efa:	bd08      	pop	{r3, pc}
	return announce_remaining == 0 ? sys_clock_elapsed() : 0U;
   31efc:	f7f9 fc90 	bl	2b820 <sys_clock_elapsed>
   31f00:	e7fb      	b.n	31efa <elapsed+0xa>
   31f02:	bf00      	nop
   31f04:	200034d4 	.word	0x200034d4

00031f08 <next_timeout>:

static int32_t next_timeout(void)
{
   31f08:	b510      	push	{r4, lr}
	struct _timeout *to = first();
   31f0a:	f7ff ffdb 	bl	31ec4 <first>
   31f0e:	4604      	mov	r4, r0
	int32_t ticks_elapsed = elapsed();
   31f10:	f7ff ffee 	bl	31ef0 <elapsed>
	int32_t ret = to == NULL ? MAX_WAIT
   31f14:	b18c      	cbz	r4, 31f3a <next_timeout+0x32>
		: CLAMP(to->dticks - ticks_elapsed, 0, MAX_WAIT);
   31f16:	e9d4 2304 	ldrd	r2, r3, [r4, #16]
   31f1a:	1a12      	subs	r2, r2, r0
   31f1c:	eb63 73e0 	sbc.w	r3, r3, r0, asr #31
	int32_t ret = to == NULL ? MAX_WAIT
   31f20:	2a01      	cmp	r2, #1
   31f22:	f173 0100 	sbcs.w	r1, r3, #0
   31f26:	db11      	blt.n	31f4c <next_timeout+0x44>
		: CLAMP(to->dticks - ticks_elapsed, 0, MAX_WAIT);
   31f28:	4610      	mov	r0, r2
   31f2a:	f1b2 4f00 	cmp.w	r2, #2147483648	; 0x80000000
   31f2e:	f173 0300 	sbcs.w	r3, r3, #0
   31f32:	db04      	blt.n	31f3e <next_timeout+0x36>
   31f34:	f06f 4000 	mvn.w	r0, #2147483648	; 0x80000000
   31f38:	e001      	b.n	31f3e <next_timeout+0x36>
	int32_t ret = to == NULL ? MAX_WAIT
   31f3a:	f06f 4000 	mvn.w	r0, #2147483648	; 0x80000000

#ifdef CONFIG_TIMESLICING
	if (_current_cpu->slice_ticks && _current_cpu->slice_ticks < ret) {
   31f3e:	4b04      	ldr	r3, [pc, #16]	; (31f50 <next_timeout+0x48>)
   31f40:	691b      	ldr	r3, [r3, #16]
   31f42:	b113      	cbz	r3, 31f4a <next_timeout+0x42>
   31f44:	4283      	cmp	r3, r0
   31f46:	da00      	bge.n	31f4a <next_timeout+0x42>
		ret = _current_cpu->slice_ticks;
   31f48:	4618      	mov	r0, r3
	}
#endif
	return ret;
}
   31f4a:	bd10      	pop	{r4, pc}
	int32_t ret = to == NULL ? MAX_WAIT
   31f4c:	2000      	movs	r0, #0
   31f4e:	e7f6      	b.n	31f3e <next_timeout+0x36>
   31f50:	20003480 	.word	0x20003480

00031f54 <z_add_timeout>:

void z_add_timeout(struct _timeout *to, _timeout_func_t fn,
		   k_timeout_t timeout)
{
   31f54:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
   31f58:	b087      	sub	sp, #28
   31f5a:	9100      	str	r1, [sp, #0]
	if (K_TIMEOUT_EQ(timeout, K_FOREVER)) {
   31f5c:	f1b3 3fff 	cmp.w	r3, #4294967295
   31f60:	bf08      	it	eq
   31f62:	f1b2 3fff 	cmpeq.w	r2, #4294967295
   31f66:	f000 80c7 	beq.w	320f8 <CONFIG_FLASH_LOAD_SIZE+0xf8>
   31f6a:	4604      	mov	r4, r0
   31f6c:	4616      	mov	r6, r2
   31f6e:	461f      	mov	r7, r3
	return node->next != NULL;
   31f70:	6803      	ldr	r3, [r0, #0]

#ifdef CONFIG_KERNEL_COHERENCE
	__ASSERT_NO_MSG(arch_mem_coherent(to));
#endif

	__ASSERT(!sys_dnode_is_linked(&to->node), "");
   31f72:	b14b      	cbz	r3, 31f88 <z_add_timeout+0x34>
   31f74:	4d62      	ldr	r5, [pc, #392]	; (32100 <CONFIG_FLASH_LOAD_SIZE+0x100>)
   31f76:	225d      	movs	r2, #93	; 0x5d
   31f78:	4629      	mov	r1, r5
   31f7a:	4862      	ldr	r0, [pc, #392]	; (32104 <CONFIG_FLASH_LOAD_SIZE+0x104>)
   31f7c:	f001 fa15 	bl	333aa <printk>
   31f80:	215d      	movs	r1, #93	; 0x5d
   31f82:	4628      	mov	r0, r5
   31f84:	f001 fdaa 	bl	33adc <assert_post_action>
	to->fn = fn;
   31f88:	9b00      	ldr	r3, [sp, #0]
   31f8a:	60a3      	str	r3, [r4, #8]

	LOCKED(&timeout_lock) {
   31f8c:	2500      	movs	r5, #0
	__asm__ volatile(
   31f8e:	f04f 0340 	mov.w	r3, #64	; 0x40
   31f92:	f3ef 8211 	mrs	r2, BASEPRI
   31f96:	f383 8812 	msr	BASEPRI_MAX, r3
   31f9a:	f3bf 8f6f 	isb	sy
   31f9e:	9200      	str	r2, [sp, #0]
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   31fa0:	4859      	ldr	r0, [pc, #356]	; (32108 <CONFIG_FLASH_LOAD_SIZE+0x108>)
   31fa2:	f7fd fabf 	bl	2f524 <z_spin_lock_valid>
   31fa6:	b140      	cbz	r0, 31fba <z_add_timeout+0x66>
	z_spin_lock_set_owner(l);
   31fa8:	4857      	ldr	r0, [pc, #348]	; (32108 <CONFIG_FLASH_LOAD_SIZE+0x108>)
   31faa:	f7fd fadb 	bl	2f564 <z_spin_lock_set_owner>
	return k;
   31fae:	9b00      	ldr	r3, [sp, #0]
   31fb0:	9305      	str	r3, [sp, #20]
   31fb2:	e9cd ab02 	strd	sl, fp, [sp, #8]
   31fb6:	46a3      	mov	fp, r4
   31fb8:	e03a      	b.n	32030 <CONFIG_FLASH_LOAD_SIZE+0x30>
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   31fba:	2281      	movs	r2, #129	; 0x81
   31fbc:	4953      	ldr	r1, [pc, #332]	; (3210c <CONFIG_FLASH_LOAD_SIZE+0x10c>)
   31fbe:	4851      	ldr	r0, [pc, #324]	; (32104 <CONFIG_FLASH_LOAD_SIZE+0x104>)
   31fc0:	f001 f9f3 	bl	333aa <printk>
   31fc4:	2181      	movs	r1, #129	; 0x81
   31fc6:	4851      	ldr	r0, [pc, #324]	; (3210c <CONFIG_FLASH_LOAD_SIZE+0x10c>)
   31fc8:	f001 fd88 	bl	33adc <assert_post_action>
   31fcc:	e7ec      	b.n	31fa8 <z_add_timeout+0x54>

		if (IS_ENABLED(CONFIG_TIMEOUT_64BIT) &&
		    Z_TICK_ABS(timeout.ticks) >= 0) {
			k_ticks_t ticks = Z_TICK_ABS(timeout.ticks) - curr_tick;

			to->dticks = MAX(1, ticks);
   31fce:	2201      	movs	r2, #1
   31fd0:	2300      	movs	r3, #0
   31fd2:	e051      	b.n	32078 <CONFIG_FLASH_LOAD_SIZE+0x78>
		} else {
			to->dticks = timeout.ticks + 1 + elapsed();
   31fd4:	f7ff ff8c 	bl	31ef0 <elapsed>
   31fd8:	1833      	adds	r3, r6, r0
   31fda:	eb47 74e0 	adc.w	r4, r7, r0, asr #31
   31fde:	1c5a      	adds	r2, r3, #1
   31fe0:	f144 0300 	adc.w	r3, r4, #0
   31fe4:	f8cb 2010 	str.w	r2, [fp, #16]
   31fe8:	f8cb 3014 	str.w	r3, [fp, #20]
   31fec:	e048      	b.n	32080 <CONFIG_FLASH_LOAD_SIZE+0x80>
		}

		for (t = first(); t != NULL; t = next(t)) {
			if (t->dticks > to->dticks) {
				t->dticks -= to->dticks;
   31fee:	9b00      	ldr	r3, [sp, #0]
   31ff0:	1ae2      	subs	r2, r4, r3
   31ff2:	9b01      	ldr	r3, [sp, #4]
   31ff4:	eb65 0303 	sbc.w	r3, r5, r3
   31ff8:	6102      	str	r2, [r0, #16]
   31ffa:	6143      	str	r3, [r0, #20]
	sys_dnode_t *const prev = successor->prev;
   31ffc:	6843      	ldr	r3, [r0, #4]
	node->prev = prev;
   31ffe:	f8cb 3004 	str.w	r3, [fp, #4]
	node->next = successor;
   32002:	f8cb 0000 	str.w	r0, [fp]
	prev->next = node;
   32006:	f8c3 b000 	str.w	fp, [r3]
	successor->prev = node;
   3200a:	f8c0 b004 	str.w	fp, [r0, #4]
				break;
			}
			to->dticks -= t->dticks;
		}

		if (t == NULL) {
   3200e:	2800      	cmp	r0, #0
   32010:	d04f      	beq.n	320b2 <CONFIG_FLASH_LOAD_SIZE+0xb2>
			sys_dlist_append(&timeout_list, &to->node);
		}

		if (to == first()) {
   32012:	f7ff ff57 	bl	31ec4 <first>
   32016:	4583      	cmp	fp, r0
   32018:	d056      	beq.n	320c8 <CONFIG_FLASH_LOAD_SIZE+0xc8>
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   3201a:	483b      	ldr	r0, [pc, #236]	; (32108 <CONFIG_FLASH_LOAD_SIZE+0x108>)
   3201c:	f7fd fa92 	bl	2f544 <z_spin_unlock_valid>
   32020:	2800      	cmp	r0, #0
   32022:	d05e      	beq.n	320e2 <CONFIG_FLASH_LOAD_SIZE+0xe2>
	__asm__ volatile(
   32024:	9b05      	ldr	r3, [sp, #20]
   32026:	f383 8811 	msr	BASEPRI, r3
   3202a:	f3bf 8f6f 	isb	sy
	LOCKED(&timeout_lock) {
   3202e:	2501      	movs	r5, #1
   32030:	2d00      	cmp	r5, #0
   32032:	d161      	bne.n	320f8 <CONFIG_FLASH_LOAD_SIZE+0xf8>
		    Z_TICK_ABS(timeout.ticks) >= 0) {
   32034:	f06f 0301 	mvn.w	r3, #1
   32038:	ebb3 0806 	subs.w	r8, r3, r6
   3203c:	f04f 30ff 	mov.w	r0, #4294967295
   32040:	eb60 0907 	sbc.w	r9, r0, r7
		if (IS_ENABLED(CONFIG_TIMEOUT_64BIT) &&
   32044:	f1b8 0f00 	cmp.w	r8, #0
   32048:	f179 0300 	sbcs.w	r3, r9, #0
   3204c:	dbc2      	blt.n	31fd4 <z_add_timeout+0x80>
			k_ticks_t ticks = Z_TICK_ABS(timeout.ticks) - curr_tick;
   3204e:	4a30      	ldr	r2, [pc, #192]	; (32110 <CONFIG_FLASH_LOAD_SIZE+0x110>)
   32050:	6813      	ldr	r3, [r2, #0]
   32052:	6852      	ldr	r2, [r2, #4]
   32054:	18f3      	adds	r3, r6, r3
   32056:	eb47 0202 	adc.w	r2, r7, r2
   3205a:	f06f 0101 	mvn.w	r1, #1
   3205e:	1acb      	subs	r3, r1, r3
   32060:	9302      	str	r3, [sp, #8]
   32062:	eb60 0302 	sbc.w	r3, r0, r2
   32066:	9303      	str	r3, [sp, #12]
			to->dticks = MAX(1, ticks);
   32068:	e9dd 0102 	ldrd	r0, r1, [sp, #8]
   3206c:	4602      	mov	r2, r0
   3206e:	460b      	mov	r3, r1
   32070:	2801      	cmp	r0, #1
   32072:	f171 0100 	sbcs.w	r1, r1, #0
   32076:	dbaa      	blt.n	31fce <z_add_timeout+0x7a>
   32078:	f8cb 2010 	str.w	r2, [fp, #16]
   3207c:	f8cb 3014 	str.w	r3, [fp, #20]
		for (t = first(); t != NULL; t = next(t)) {
   32080:	f7ff ff20 	bl	31ec4 <first>
   32084:	2800      	cmp	r0, #0
   32086:	d0c2      	beq.n	3200e <CONFIG_FLASH_LOAD_SIZE+0xe>
			if (t->dticks > to->dticks) {
   32088:	e9d0 4504 	ldrd	r4, r5, [r0, #16]
   3208c:	e9db 2304 	ldrd	r2, r3, [fp, #16]
   32090:	e9cd 2300 	strd	r2, r3, [sp]
   32094:	42a2      	cmp	r2, r4
   32096:	41ab      	sbcs	r3, r5
   32098:	dba9      	blt.n	31fee <z_add_timeout+0x9a>
			to->dticks -= t->dticks;
   3209a:	9b00      	ldr	r3, [sp, #0]
   3209c:	1b1a      	subs	r2, r3, r4
   3209e:	9b01      	ldr	r3, [sp, #4]
   320a0:	eb63 0305 	sbc.w	r3, r3, r5
   320a4:	f8cb 2010 	str.w	r2, [fp, #16]
   320a8:	f8cb 3014 	str.w	r3, [fp, #20]
		for (t = first(); t != NULL; t = next(t)) {
   320ac:	f7ff ff14 	bl	31ed8 <next>
   320b0:	e7e8      	b.n	32084 <CONFIG_FLASH_LOAD_SIZE+0x84>
	sys_dnode_t *const tail = list->tail;
   320b2:	4b18      	ldr	r3, [pc, #96]	; (32114 <CONFIG_FLASH_LOAD_SIZE+0x114>)
   320b4:	685a      	ldr	r2, [r3, #4]
	node->next = list;
   320b6:	f8cb 3000 	str.w	r3, [fp]
	node->prev = tail;
   320ba:	f8cb 2004 	str.w	r2, [fp, #4]
	tail->next = node;
   320be:	f8c2 b000 	str.w	fp, [r2]
	list->tail = node;
   320c2:	f8c3 b004 	str.w	fp, [r3, #4]
}
   320c6:	e7a4      	b.n	32012 <CONFIG_FLASH_LOAD_SIZE+0x12>
			 * last announcement, and slice_ticks is based
			 * on that. It means that the time remaining for
			 * the next announcement can be less than
			 * slice_ticks.
			 */
			int32_t next_time = next_timeout();
   320c8:	f7ff ff1e 	bl	31f08 <next_timeout>

			if (next_time == 0 ||
   320cc:	4603      	mov	r3, r0
   320ce:	b118      	cbz	r0, 320d8 <CONFIG_FLASH_LOAD_SIZE+0xd8>
			    _current_cpu->slice_ticks != next_time) {
   320d0:	4a11      	ldr	r2, [pc, #68]	; (32118 <CONFIG_FLASH_LOAD_SIZE+0x118>)
   320d2:	6912      	ldr	r2, [r2, #16]
			if (next_time == 0 ||
   320d4:	4282      	cmp	r2, r0
   320d6:	d0a0      	beq.n	3201a <CONFIG_FLASH_LOAD_SIZE+0x1a>
				sys_clock_set_timeout(next_time, false);
   320d8:	2100      	movs	r1, #0
   320da:	4618      	mov	r0, r3
   320dc:	f7f9 fb6c 	bl	2b7b8 <sys_clock_set_timeout>
   320e0:	e79b      	b.n	3201a <CONFIG_FLASH_LOAD_SIZE+0x1a>
   320e2:	4c0a      	ldr	r4, [pc, #40]	; (3210c <CONFIG_FLASH_LOAD_SIZE+0x10c>)
   320e4:	22ac      	movs	r2, #172	; 0xac
   320e6:	4621      	mov	r1, r4
   320e8:	4806      	ldr	r0, [pc, #24]	; (32104 <CONFIG_FLASH_LOAD_SIZE+0x104>)
   320ea:	f001 f95e 	bl	333aa <printk>
   320ee:	21ac      	movs	r1, #172	; 0xac
   320f0:	4620      	mov	r0, r4
   320f2:	f001 fcf3 	bl	33adc <assert_post_action>
   320f6:	e795      	b.n	32024 <CONFIG_FLASH_LOAD_SIZE+0x24>
#else
			sys_clock_set_timeout(next_timeout(), false);
#endif	/* CONFIG_TIMESLICING */
		}
	}
}
   320f8:	b007      	add	sp, #28
   320fa:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
   320fe:	bf00      	nop
   32100:	0003fa7c 	.word	0x0003fa7c
   32104:	0003bdac 	.word	0x0003bdac
   32108:	200034d8 	.word	0x200034d8
   3210c:	0003bde8 	.word	0x0003bde8
   32110:	200020e8 	.word	0x200020e8
   32114:	2000076c 	.word	0x2000076c
   32118:	20003480 	.word	0x20003480

0003211c <z_abort_timeout>:

int z_abort_timeout(struct _timeout *to)
{
   3211c:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   32120:	4605      	mov	r5, r0
	int ret = -EINVAL;

	LOCKED(&timeout_lock) {
   32122:	2400      	movs	r4, #0
	__asm__ volatile(
   32124:	f04f 0340 	mov.w	r3, #64	; 0x40
   32128:	f3ef 8711 	mrs	r7, BASEPRI
   3212c:	f383 8812 	msr	BASEPRI_MAX, r3
   32130:	f3bf 8f6f 	isb	sy
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   32134:	481a      	ldr	r0, [pc, #104]	; (321a0 <z_abort_timeout+0x84>)
   32136:	f7fd f9f5 	bl	2f524 <z_spin_lock_valid>
   3213a:	b128      	cbz	r0, 32148 <z_abort_timeout+0x2c>
	z_spin_lock_set_owner(l);
   3213c:	4818      	ldr	r0, [pc, #96]	; (321a0 <z_abort_timeout+0x84>)
   3213e:	f7fd fa11 	bl	2f564 <z_spin_lock_set_owner>
	int ret = -EINVAL;
   32142:	f06f 0815 	mvn.w	r8, #21
	return k;
   32146:	e017      	b.n	32178 <z_abort_timeout+0x5c>
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   32148:	4e16      	ldr	r6, [pc, #88]	; (321a4 <z_abort_timeout+0x88>)
   3214a:	2281      	movs	r2, #129	; 0x81
   3214c:	4631      	mov	r1, r6
   3214e:	4816      	ldr	r0, [pc, #88]	; (321a8 <z_abort_timeout+0x8c>)
   32150:	f001 f92b 	bl	333aa <printk>
   32154:	2181      	movs	r1, #129	; 0x81
   32156:	4630      	mov	r0, r6
   32158:	f001 fcc0 	bl	33adc <assert_post_action>
   3215c:	e7ee      	b.n	3213c <z_abort_timeout+0x20>
		if (sys_dnode_is_linked(&to->node)) {
			remove_timeout(to);
   3215e:	4628      	mov	r0, r5
   32160:	f009 f8fb 	bl	3b35a <remove_timeout>
			ret = 0;
   32164:	46b0      	mov	r8, r6
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   32166:	480e      	ldr	r0, [pc, #56]	; (321a0 <z_abort_timeout+0x84>)
   32168:	f7fd f9ec 	bl	2f544 <z_spin_unlock_valid>
   3216c:	b150      	cbz	r0, 32184 <z_abort_timeout+0x68>
	__asm__ volatile(
   3216e:	f387 8811 	msr	BASEPRI, r7
   32172:	f3bf 8f6f 	isb	sy
	LOCKED(&timeout_lock) {
   32176:	2401      	movs	r4, #1
   32178:	4626      	mov	r6, r4
   3217a:	b974      	cbnz	r4, 3219a <z_abort_timeout+0x7e>
	return node->next != NULL;
   3217c:	682b      	ldr	r3, [r5, #0]
		if (sys_dnode_is_linked(&to->node)) {
   3217e:	2b00      	cmp	r3, #0
   32180:	d1ed      	bne.n	3215e <z_abort_timeout+0x42>
   32182:	e7f0      	b.n	32166 <z_abort_timeout+0x4a>
   32184:	4c07      	ldr	r4, [pc, #28]	; (321a4 <z_abort_timeout+0x88>)
   32186:	22ac      	movs	r2, #172	; 0xac
   32188:	4621      	mov	r1, r4
   3218a:	4807      	ldr	r0, [pc, #28]	; (321a8 <z_abort_timeout+0x8c>)
   3218c:	f001 f90d 	bl	333aa <printk>
   32190:	21ac      	movs	r1, #172	; 0xac
   32192:	4620      	mov	r0, r4
   32194:	f001 fca2 	bl	33adc <assert_post_action>
   32198:	e7e9      	b.n	3216e <z_abort_timeout+0x52>
		}
	}

	return ret;
}
   3219a:	4640      	mov	r0, r8
   3219c:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
   321a0:	200034d8 	.word	0x200034d8
   321a4:	0003bde8 	.word	0x0003bde8
   321a8:	0003bdac 	.word	0x0003bdac

000321ac <z_get_next_timeout_expiry>:

	return ticks;
}

int32_t z_get_next_timeout_expiry(void)
{
   321ac:	b570      	push	{r4, r5, r6, lr}
	int32_t ret = (int32_t) K_TICKS_FOREVER;

	LOCKED(&timeout_lock) {
   321ae:	2500      	movs	r5, #0
	__asm__ volatile(
   321b0:	f04f 0340 	mov.w	r3, #64	; 0x40
   321b4:	f3ef 8611 	mrs	r6, BASEPRI
   321b8:	f383 8812 	msr	BASEPRI_MAX, r3
   321bc:	f3bf 8f6f 	isb	sy
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   321c0:	4817      	ldr	r0, [pc, #92]	; (32220 <z_get_next_timeout_expiry+0x74>)
   321c2:	f7fd f9af 	bl	2f524 <z_spin_lock_valid>
   321c6:	b128      	cbz	r0, 321d4 <z_get_next_timeout_expiry+0x28>
	z_spin_lock_set_owner(l);
   321c8:	4815      	ldr	r0, [pc, #84]	; (32220 <z_get_next_timeout_expiry+0x74>)
   321ca:	f7fd f9cb 	bl	2f564 <z_spin_lock_set_owner>
	int32_t ret = (int32_t) K_TICKS_FOREVER;
   321ce:	f04f 34ff 	mov.w	r4, #4294967295
	return k;
   321d2:	e019      	b.n	32208 <z_get_next_timeout_expiry+0x5c>
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   321d4:	4c13      	ldr	r4, [pc, #76]	; (32224 <z_get_next_timeout_expiry+0x78>)
   321d6:	2281      	movs	r2, #129	; 0x81
   321d8:	4621      	mov	r1, r4
   321da:	4813      	ldr	r0, [pc, #76]	; (32228 <z_get_next_timeout_expiry+0x7c>)
   321dc:	f001 f8e5 	bl	333aa <printk>
   321e0:	2181      	movs	r1, #129	; 0x81
   321e2:	4620      	mov	r0, r4
   321e4:	f001 fc7a 	bl	33adc <assert_post_action>
   321e8:	e7ee      	b.n	321c8 <z_get_next_timeout_expiry+0x1c>
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   321ea:	4d0e      	ldr	r5, [pc, #56]	; (32224 <z_get_next_timeout_expiry+0x78>)
   321ec:	22ac      	movs	r2, #172	; 0xac
   321ee:	4629      	mov	r1, r5
   321f0:	480d      	ldr	r0, [pc, #52]	; (32228 <z_get_next_timeout_expiry+0x7c>)
   321f2:	f001 f8da 	bl	333aa <printk>
   321f6:	21ac      	movs	r1, #172	; 0xac
   321f8:	4628      	mov	r0, r5
   321fa:	f001 fc6f 	bl	33adc <assert_post_action>
	__asm__ volatile(
   321fe:	f386 8811 	msr	BASEPRI, r6
   32202:	f3bf 8f6f 	isb	sy
	LOCKED(&timeout_lock) {
   32206:	2501      	movs	r5, #1
   32208:	b945      	cbnz	r5, 3221c <z_get_next_timeout_expiry+0x70>
		ret = next_timeout();
   3220a:	f7ff fe7d 	bl	31f08 <next_timeout>
   3220e:	4604      	mov	r4, r0
   32210:	4803      	ldr	r0, [pc, #12]	; (32220 <z_get_next_timeout_expiry+0x74>)
   32212:	f7fd f997 	bl	2f544 <z_spin_unlock_valid>
   32216:	2800      	cmp	r0, #0
   32218:	d1f1      	bne.n	321fe <z_get_next_timeout_expiry+0x52>
   3221a:	e7e6      	b.n	321ea <z_get_next_timeout_expiry+0x3e>
	}
	return ret;
}
   3221c:	4620      	mov	r0, r4
   3221e:	bd70      	pop	{r4, r5, r6, pc}
   32220:	200034d8 	.word	0x200034d8
   32224:	0003bde8 	.word	0x0003bde8
   32228:	0003bdac 	.word	0x0003bdac

0003222c <z_set_timeout_expiry>:

void z_set_timeout_expiry(int32_t ticks, bool is_idle)
{
   3222c:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   32230:	4607      	mov	r7, r0
   32232:	4688      	mov	r8, r1
	LOCKED(&timeout_lock) {
   32234:	2500      	movs	r5, #0
	__asm__ volatile(
   32236:	f04f 0340 	mov.w	r3, #64	; 0x40
   3223a:	f3ef 8611 	mrs	r6, BASEPRI
   3223e:	f383 8812 	msr	BASEPRI_MAX, r3
   32242:	f3bf 8f6f 	isb	sy
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   32246:	4820      	ldr	r0, [pc, #128]	; (322c8 <z_set_timeout_expiry+0x9c>)
   32248:	f7fd f96c 	bl	2f524 <z_spin_lock_valid>
   3224c:	b118      	cbz	r0, 32256 <z_set_timeout_expiry+0x2a>
	z_spin_lock_set_owner(l);
   3224e:	481e      	ldr	r0, [pc, #120]	; (322c8 <z_set_timeout_expiry+0x9c>)
   32250:	f7fd f988 	bl	2f564 <z_spin_lock_set_owner>
	return k;
   32254:	e019      	b.n	3228a <z_set_timeout_expiry+0x5e>
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   32256:	4c1d      	ldr	r4, [pc, #116]	; (322cc <z_set_timeout_expiry+0xa0>)
   32258:	2281      	movs	r2, #129	; 0x81
   3225a:	4621      	mov	r1, r4
   3225c:	481c      	ldr	r0, [pc, #112]	; (322d0 <z_set_timeout_expiry+0xa4>)
   3225e:	f001 f8a4 	bl	333aa <printk>
   32262:	2181      	movs	r1, #129	; 0x81
   32264:	4620      	mov	r0, r4
   32266:	f001 fc39 	bl	33adc <assert_post_action>
   3226a:	e7f0      	b.n	3224e <z_set_timeout_expiry+0x22>
		int next_to = next_timeout();
		bool sooner = (next_to == K_TICKS_FOREVER)
			      || (ticks <= next_to);
   3226c:	2401      	movs	r4, #1
		bool sooner = (next_to == K_TICKS_FOREVER)
   3226e:	f004 0401 	and.w	r4, r4, #1
		 * SMP can't use this optimization though: we don't
		 * know when context switches happen until interrupt
		 * exit and so can't get the timeslicing clamp folded
		 * in.
		 */
		if (!imminent && (sooner || IS_ENABLED(CONFIG_SMP))) {
   32272:	2801      	cmp	r0, #1
   32274:	dd00      	ble.n	32278 <z_set_timeout_expiry+0x4c>
   32276:	b99c      	cbnz	r4, 322a0 <z_set_timeout_expiry+0x74>
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   32278:	4813      	ldr	r0, [pc, #76]	; (322c8 <z_set_timeout_expiry+0x9c>)
   3227a:	f7fd f963 	bl	2f544 <z_spin_unlock_valid>
   3227e:	b1b0      	cbz	r0, 322ae <z_set_timeout_expiry+0x82>
	__asm__ volatile(
   32280:	f386 8811 	msr	BASEPRI, r6
   32284:	f3bf 8f6f 	isb	sy
	LOCKED(&timeout_lock) {
   32288:	2501      	movs	r5, #1
   3228a:	462c      	mov	r4, r5
   3228c:	b9d5      	cbnz	r5, 322c4 <z_set_timeout_expiry+0x98>
		int next_to = next_timeout();
   3228e:	f7ff fe3b 	bl	31f08 <next_timeout>
			      || (ticks <= next_to);
   32292:	f1b0 3fff 	cmp.w	r0, #4294967295
   32296:	d0e9      	beq.n	3226c <z_set_timeout_expiry+0x40>
   32298:	42b8      	cmp	r0, r7
   3229a:	dbe8      	blt.n	3226e <z_set_timeout_expiry+0x42>
   3229c:	2401      	movs	r4, #1
   3229e:	e7e6      	b.n	3226e <z_set_timeout_expiry+0x42>
			sys_clock_set_timeout(MIN(ticks, next_to), is_idle);
   322a0:	4641      	mov	r1, r8
   322a2:	42b8      	cmp	r0, r7
   322a4:	bfa8      	it	ge
   322a6:	4638      	movge	r0, r7
   322a8:	f7f9 fa86 	bl	2b7b8 <sys_clock_set_timeout>
   322ac:	e7e4      	b.n	32278 <z_set_timeout_expiry+0x4c>
   322ae:	4c07      	ldr	r4, [pc, #28]	; (322cc <z_set_timeout_expiry+0xa0>)
   322b0:	22ac      	movs	r2, #172	; 0xac
   322b2:	4621      	mov	r1, r4
   322b4:	4806      	ldr	r0, [pc, #24]	; (322d0 <z_set_timeout_expiry+0xa4>)
   322b6:	f001 f878 	bl	333aa <printk>
   322ba:	21ac      	movs	r1, #172	; 0xac
   322bc:	4620      	mov	r0, r4
   322be:	f001 fc0d 	bl	33adc <assert_post_action>
   322c2:	e7dd      	b.n	32280 <z_set_timeout_expiry+0x54>
		}
	}
}
   322c4:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
   322c8:	200034d8 	.word	0x200034d8
   322cc:	0003bde8 	.word	0x0003bde8
   322d0:	0003bdac 	.word	0x0003bdac

000322d4 <sys_clock_announce>:

void sys_clock_announce(int32_t ticks)
{
   322d4:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
   322d6:	4605      	mov	r5, r0
#ifdef CONFIG_TIMESLICING
	z_time_slice(ticks);
   322d8:	f7fe feaa 	bl	31030 <z_time_slice>
	__asm__ volatile(
   322dc:	f04f 0340 	mov.w	r3, #64	; 0x40
   322e0:	f3ef 8411 	mrs	r4, BASEPRI
   322e4:	f383 8812 	msr	BASEPRI_MAX, r3
   322e8:	f3bf 8f6f 	isb	sy
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   322ec:	484a      	ldr	r0, [pc, #296]	; (32418 <sys_clock_announce+0x144>)
   322ee:	f7fd f919 	bl	2f524 <z_spin_lock_valid>
   322f2:	b128      	cbz	r0, 32300 <sys_clock_announce+0x2c>
	z_spin_lock_set_owner(l);
   322f4:	4848      	ldr	r0, [pc, #288]	; (32418 <sys_clock_announce+0x144>)
   322f6:	f7fd f935 	bl	2f564 <z_spin_lock_set_owner>
#endif

	k_spinlock_key_t key = k_spin_lock(&timeout_lock);

	announce_remaining = ticks;
   322fa:	4b48      	ldr	r3, [pc, #288]	; (3241c <sys_clock_announce+0x148>)
   322fc:	601d      	str	r5, [r3, #0]

	while (first() != NULL && first()->dticks <= announce_remaining) {
   322fe:	e022      	b.n	32346 <sys_clock_announce+0x72>
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   32300:	4e47      	ldr	r6, [pc, #284]	; (32420 <sys_clock_announce+0x14c>)
   32302:	2281      	movs	r2, #129	; 0x81
   32304:	4631      	mov	r1, r6
   32306:	4847      	ldr	r0, [pc, #284]	; (32424 <sys_clock_announce+0x150>)
   32308:	f001 f84f 	bl	333aa <printk>
   3230c:	2181      	movs	r1, #129	; 0x81
   3230e:	4630      	mov	r0, r6
   32310:	f001 fbe4 	bl	33adc <assert_post_action>
   32314:	e7ee      	b.n	322f4 <sys_clock_announce+0x20>
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   32316:	4e42      	ldr	r6, [pc, #264]	; (32420 <sys_clock_announce+0x14c>)
   32318:	22ac      	movs	r2, #172	; 0xac
   3231a:	4631      	mov	r1, r6
   3231c:	4841      	ldr	r0, [pc, #260]	; (32424 <sys_clock_announce+0x150>)
   3231e:	f001 f844 	bl	333aa <printk>
   32322:	21ac      	movs	r1, #172	; 0xac
   32324:	4630      	mov	r0, r6
   32326:	f001 fbd9 	bl	33adc <assert_post_action>
   3232a:	e030      	b.n	3238e <sys_clock_announce+0xba>
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   3232c:	4d3c      	ldr	r5, [pc, #240]	; (32420 <sys_clock_announce+0x14c>)
   3232e:	2281      	movs	r2, #129	; 0x81
   32330:	4629      	mov	r1, r5
   32332:	483c      	ldr	r0, [pc, #240]	; (32424 <sys_clock_announce+0x150>)
   32334:	f001 f839 	bl	333aa <printk>
   32338:	2181      	movs	r1, #129	; 0x81
   3233a:	4628      	mov	r0, r5
   3233c:	f001 fbce 	bl	33adc <assert_post_action>
	z_spin_lock_set_owner(l);
   32340:	4835      	ldr	r0, [pc, #212]	; (32418 <sys_clock_announce+0x144>)
   32342:	f7fd f90f 	bl	2f564 <z_spin_lock_set_owner>
   32346:	f7ff fdbd 	bl	31ec4 <first>
   3234a:	4605      	mov	r5, r0
   3234c:	2800      	cmp	r0, #0
   3234e:	d033      	beq.n	323b8 <sys_clock_announce+0xe4>
   32350:	e9d0 6704 	ldrd	r6, r7, [r0, #16]
   32354:	4b31      	ldr	r3, [pc, #196]	; (3241c <sys_clock_announce+0x148>)
   32356:	6819      	ldr	r1, [r3, #0]
   32358:	17cb      	asrs	r3, r1, #31
   3235a:	42b1      	cmp	r1, r6
   3235c:	41bb      	sbcs	r3, r7
   3235e:	db2b      	blt.n	323b8 <sys_clock_announce+0xe4>
		struct _timeout *t = first();
		int dt = t->dticks;

		curr_tick += dt;
   32360:	4831      	ldr	r0, [pc, #196]	; (32428 <sys_clock_announce+0x154>)
   32362:	e9d0 2300 	ldrd	r2, r3, [r0]
   32366:	1992      	adds	r2, r2, r6
   32368:	eb43 73e6 	adc.w	r3, r3, r6, asr #31
   3236c:	e9c0 2300 	strd	r2, r3, [r0]
		announce_remaining -= dt;
   32370:	1b89      	subs	r1, r1, r6
   32372:	4b2a      	ldr	r3, [pc, #168]	; (3241c <sys_clock_announce+0x148>)
   32374:	6019      	str	r1, [r3, #0]
		t->dticks = 0;
   32376:	2200      	movs	r2, #0
   32378:	2300      	movs	r3, #0
   3237a:	e9c5 2304 	strd	r2, r3, [r5, #16]
		remove_timeout(t);
   3237e:	4628      	mov	r0, r5
   32380:	f008 ffeb 	bl	3b35a <remove_timeout>
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   32384:	4824      	ldr	r0, [pc, #144]	; (32418 <sys_clock_announce+0x144>)
   32386:	f7fd f8dd 	bl	2f544 <z_spin_unlock_valid>
   3238a:	2800      	cmp	r0, #0
   3238c:	d0c3      	beq.n	32316 <sys_clock_announce+0x42>
	__asm__ volatile(
   3238e:	f384 8811 	msr	BASEPRI, r4
   32392:	f3bf 8f6f 	isb	sy

		k_spin_unlock(&timeout_lock, key);
		t->fn(t);
   32396:	68ab      	ldr	r3, [r5, #8]
   32398:	4628      	mov	r0, r5
   3239a:	4798      	blx	r3
	__asm__ volatile(
   3239c:	f04f 0340 	mov.w	r3, #64	; 0x40
   323a0:	f3ef 8411 	mrs	r4, BASEPRI
   323a4:	f383 8812 	msr	BASEPRI_MAX, r3
   323a8:	f3bf 8f6f 	isb	sy
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   323ac:	481a      	ldr	r0, [pc, #104]	; (32418 <sys_clock_announce+0x144>)
   323ae:	f7fd f8b9 	bl	2f524 <z_spin_lock_valid>
   323b2:	2800      	cmp	r0, #0
   323b4:	d1c4      	bne.n	32340 <sys_clock_announce+0x6c>
   323b6:	e7b9      	b.n	3232c <sys_clock_announce+0x58>
		key = k_spin_lock(&timeout_lock);
	}

	if (first() != NULL) {
   323b8:	b145      	cbz	r5, 323cc <sys_clock_announce+0xf8>
		first()->dticks -= announce_remaining;
   323ba:	4b18      	ldr	r3, [pc, #96]	; (3241c <sys_clock_announce+0x148>)
   323bc:	6819      	ldr	r1, [r3, #0]
   323be:	e9d5 2304 	ldrd	r2, r3, [r5, #16]
   323c2:	1a52      	subs	r2, r2, r1
   323c4:	eb63 73e1 	sbc.w	r3, r3, r1, asr #31
   323c8:	e9c5 2304 	strd	r2, r3, [r5, #16]
	}

	curr_tick += announce_remaining;
   323cc:	4816      	ldr	r0, [pc, #88]	; (32428 <sys_clock_announce+0x154>)
   323ce:	4913      	ldr	r1, [pc, #76]	; (3241c <sys_clock_announce+0x148>)
   323d0:	680d      	ldr	r5, [r1, #0]
   323d2:	e9d0 2300 	ldrd	r2, r3, [r0]
   323d6:	1952      	adds	r2, r2, r5
   323d8:	eb43 73e5 	adc.w	r3, r3, r5, asr #31
   323dc:	e9c0 2300 	strd	r2, r3, [r0]
	announce_remaining = 0;
   323e0:	2500      	movs	r5, #0
   323e2:	600d      	str	r5, [r1, #0]

	sys_clock_set_timeout(next_timeout(), false);
   323e4:	f7ff fd90 	bl	31f08 <next_timeout>
   323e8:	4629      	mov	r1, r5
   323ea:	f7f9 f9e5 	bl	2b7b8 <sys_clock_set_timeout>
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   323ee:	480a      	ldr	r0, [pc, #40]	; (32418 <sys_clock_announce+0x144>)
   323f0:	f7fd f8a8 	bl	2f544 <z_spin_unlock_valid>
   323f4:	b120      	cbz	r0, 32400 <sys_clock_announce+0x12c>
	__asm__ volatile(
   323f6:	f384 8811 	msr	BASEPRI, r4
   323fa:	f3bf 8f6f 	isb	sy

	k_spin_unlock(&timeout_lock, key);
}
   323fe:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
   32400:	4d07      	ldr	r5, [pc, #28]	; (32420 <sys_clock_announce+0x14c>)
   32402:	22ac      	movs	r2, #172	; 0xac
   32404:	4629      	mov	r1, r5
   32406:	4807      	ldr	r0, [pc, #28]	; (32424 <sys_clock_announce+0x150>)
   32408:	f000 ffcf 	bl	333aa <printk>
   3240c:	21ac      	movs	r1, #172	; 0xac
   3240e:	4628      	mov	r0, r5
   32410:	f001 fb64 	bl	33adc <assert_post_action>
   32414:	e7ef      	b.n	323f6 <sys_clock_announce+0x122>
   32416:	bf00      	nop
   32418:	200034d8 	.word	0x200034d8
   3241c:	200034d4 	.word	0x200034d4
   32420:	0003bde8 	.word	0x0003bde8
   32424:	0003bdac 	.word	0x0003bdac
   32428:	200020e8 	.word	0x200020e8

0003242c <sys_clock_tick_get>:

int64_t sys_clock_tick_get(void)
{
   3242c:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
	uint64_t t = 0U;

	LOCKED(&timeout_lock) {
   3242e:	2400      	movs	r4, #0
	__asm__ volatile(
   32430:	f04f 0340 	mov.w	r3, #64	; 0x40
   32434:	f3ef 8511 	mrs	r5, BASEPRI
   32438:	f383 8812 	msr	BASEPRI_MAX, r3
   3243c:	f3bf 8f6f 	isb	sy
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   32440:	481a      	ldr	r0, [pc, #104]	; (324ac <sys_clock_tick_get+0x80>)
   32442:	f7fd f86f 	bl	2f524 <z_spin_lock_valid>
   32446:	b128      	cbz	r0, 32454 <sys_clock_tick_get+0x28>
	z_spin_lock_set_owner(l);
   32448:	4818      	ldr	r0, [pc, #96]	; (324ac <sys_clock_tick_get+0x80>)
   3244a:	f7fd f88b 	bl	2f564 <z_spin_lock_set_owner>
	uint64_t t = 0U;
   3244e:	2600      	movs	r6, #0
   32450:	2700      	movs	r7, #0
	return k;
   32452:	e019      	b.n	32488 <sys_clock_tick_get+0x5c>
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   32454:	4e16      	ldr	r6, [pc, #88]	; (324b0 <sys_clock_tick_get+0x84>)
   32456:	2281      	movs	r2, #129	; 0x81
   32458:	4631      	mov	r1, r6
   3245a:	4816      	ldr	r0, [pc, #88]	; (324b4 <sys_clock_tick_get+0x88>)
   3245c:	f000 ffa5 	bl	333aa <printk>
   32460:	2181      	movs	r1, #129	; 0x81
   32462:	4630      	mov	r0, r6
   32464:	f001 fb3a 	bl	33adc <assert_post_action>
   32468:	e7ee      	b.n	32448 <sys_clock_tick_get+0x1c>
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   3246a:	4c11      	ldr	r4, [pc, #68]	; (324b0 <sys_clock_tick_get+0x84>)
   3246c:	22ac      	movs	r2, #172	; 0xac
   3246e:	4621      	mov	r1, r4
   32470:	4810      	ldr	r0, [pc, #64]	; (324b4 <sys_clock_tick_get+0x88>)
   32472:	f000 ff9a 	bl	333aa <printk>
   32476:	21ac      	movs	r1, #172	; 0xac
   32478:	4620      	mov	r0, r4
   3247a:	f001 fb2f 	bl	33adc <assert_post_action>
	__asm__ volatile(
   3247e:	f385 8811 	msr	BASEPRI, r5
   32482:	f3bf 8f6f 	isb	sy
	LOCKED(&timeout_lock) {
   32486:	2401      	movs	r4, #1
   32488:	b96c      	cbnz	r4, 324a6 <sys_clock_tick_get+0x7a>
		t = curr_tick + sys_clock_elapsed();
   3248a:	f7f9 f9c9 	bl	2b820 <sys_clock_elapsed>
   3248e:	4b0a      	ldr	r3, [pc, #40]	; (324b8 <sys_clock_tick_get+0x8c>)
   32490:	e9d3 6700 	ldrd	r6, r7, [r3]
   32494:	1836      	adds	r6, r6, r0
   32496:	f147 0700 	adc.w	r7, r7, #0
   3249a:	4804      	ldr	r0, [pc, #16]	; (324ac <sys_clock_tick_get+0x80>)
   3249c:	f7fd f852 	bl	2f544 <z_spin_unlock_valid>
   324a0:	2800      	cmp	r0, #0
   324a2:	d1ec      	bne.n	3247e <sys_clock_tick_get+0x52>
   324a4:	e7e1      	b.n	3246a <sys_clock_tick_get+0x3e>
	}
	return t;
}
   324a6:	4630      	mov	r0, r6
   324a8:	4639      	mov	r1, r7
   324aa:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
   324ac:	200034d8 	.word	0x200034d8
   324b0:	0003bde8 	.word	0x0003bde8
   324b4:	0003bdac 	.word	0x0003bdac
   324b8:	200020e8 	.word	0x200020e8

000324bc <z_timer_expiration_handler>:
 * @param t  Timeout used by the timer.
 *
 * @return N/A
 */
void z_timer_expiration_handler(struct _timeout *t)
{
   324bc:	b570      	push	{r4, r5, r6, lr}
   324be:	4604      	mov	r4, r0
	__asm__ volatile(
   324c0:	f04f 0340 	mov.w	r3, #64	; 0x40
   324c4:	f3ef 8511 	mrs	r5, BASEPRI
   324c8:	f383 8812 	msr	BASEPRI_MAX, r3
   324cc:	f3bf 8f6f 	isb	sy
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   324d0:	482f      	ldr	r0, [pc, #188]	; (32590 <z_timer_expiration_handler+0xd4>)
   324d2:	f7fd f827 	bl	2f524 <z_spin_lock_valid>
   324d6:	b360      	cbz	r0, 32532 <z_timer_expiration_handler+0x76>
	z_spin_lock_set_owner(l);
   324d8:	482d      	ldr	r0, [pc, #180]	; (32590 <z_timer_expiration_handler+0xd4>)
   324da:	f7fd f843 	bl	2f564 <z_spin_lock_set_owner>

	/*
	 * if the timer is periodic, start it again; don't add _TICK_ALIGN
	 * since we're already aligned to a tick boundary
	 */
	if (!K_TIMEOUT_EQ(timer->period, K_NO_WAIT) &&
   324de:	e9d4 230a 	ldrd	r2, r3, [r4, #40]	; 0x28
   324e2:	ea52 0103 	orrs.w	r1, r2, r3
   324e6:	d005      	beq.n	324f4 <z_timer_expiration_handler+0x38>
   324e8:	f1b3 3fff 	cmp.w	r3, #4294967295
   324ec:	bf08      	it	eq
   324ee:	f1b2 3fff 	cmpeq.w	r2, #4294967295
   324f2:	d129      	bne.n	32548 <z_timer_expiration_handler+0x8c>
		z_add_timeout(&timer->timeout, z_timer_expiration_handler,
			     timer->period);
	}

	/* update timer's status */
	timer->status += 1U;
   324f4:	6b23      	ldr	r3, [r4, #48]	; 0x30
   324f6:	3301      	adds	r3, #1
   324f8:	6323      	str	r3, [r4, #48]	; 0x30

	/* invoke timer expiry function */
	if (timer->expiry_fn != NULL) {
   324fa:	6a23      	ldr	r3, [r4, #32]
   324fc:	b10b      	cbz	r3, 32502 <z_timer_expiration_handler+0x46>
		timer->expiry_fn(timer);
   324fe:	4620      	mov	r0, r4
   32500:	4798      	blx	r3
}

static inline struct k_thread *z_waitq_head(_wait_q_t *w)
{
	return (struct k_thread *)sys_dlist_peek_head(&w->waitq);
   32502:	f104 0318 	add.w	r3, r4, #24
	return list->head == list;
   32506:	69a4      	ldr	r4, [r4, #24]
	return sys_dlist_is_empty(list) ? NULL : list->head;
   32508:	42a3      	cmp	r3, r4
   3250a:	d022      	beq.n	32552 <z_timer_expiration_handler+0x96>
		return;
	}

	thread = z_waitq_head(&timer->wait_q);

	if (thread == NULL) {
   3250c:	b30c      	cbz	r4, 32552 <z_timer_expiration_handler+0x96>
		k_spin_unlock(&lock, key);
		return;
	}

	z_unpend_thread_no_timeout(thread);
   3250e:	4620      	mov	r0, r4
   32510:	f7fe fbac 	bl	30c6c <z_unpend_thread_no_timeout>
   32514:	2300      	movs	r3, #0
   32516:	f8c4 30b0 	str.w	r3, [r4, #176]	; 0xb0
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   3251a:	481d      	ldr	r0, [pc, #116]	; (32590 <z_timer_expiration_handler+0xd4>)
   3251c:	f7fd f812 	bl	2f544 <z_spin_unlock_valid>
   32520:	b358      	cbz	r0, 3257a <z_timer_expiration_handler+0xbe>
	__asm__ volatile(
   32522:	f385 8811 	msr	BASEPRI, r5
   32526:	f3bf 8f6f 	isb	sy

	arch_thread_return_value_set(thread, 0);

	k_spin_unlock(&lock, key);

	z_ready_thread(thread);
   3252a:	4620      	mov	r0, r4
   3252c:	f7fe fe58 	bl	311e0 <z_ready_thread>
}
   32530:	bd70      	pop	{r4, r5, r6, pc}
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   32532:	4e18      	ldr	r6, [pc, #96]	; (32594 <z_timer_expiration_handler+0xd8>)
   32534:	2281      	movs	r2, #129	; 0x81
   32536:	4631      	mov	r1, r6
   32538:	4817      	ldr	r0, [pc, #92]	; (32598 <z_timer_expiration_handler+0xdc>)
   3253a:	f000 ff36 	bl	333aa <printk>
   3253e:	2181      	movs	r1, #129	; 0x81
   32540:	4630      	mov	r0, r6
   32542:	f001 facb 	bl	33adc <assert_post_action>
   32546:	e7c7      	b.n	324d8 <z_timer_expiration_handler+0x1c>
		z_add_timeout(&timer->timeout, z_timer_expiration_handler,
   32548:	4914      	ldr	r1, [pc, #80]	; (3259c <z_timer_expiration_handler+0xe0>)
   3254a:	4620      	mov	r0, r4
   3254c:	f7ff fd02 	bl	31f54 <z_add_timeout>
   32550:	e7d0      	b.n	324f4 <z_timer_expiration_handler+0x38>
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   32552:	480f      	ldr	r0, [pc, #60]	; (32590 <z_timer_expiration_handler+0xd4>)
   32554:	f7fc fff6 	bl	2f544 <z_spin_unlock_valid>
   32558:	b120      	cbz	r0, 32564 <z_timer_expiration_handler+0xa8>
   3255a:	f385 8811 	msr	BASEPRI, r5
   3255e:	f3bf 8f6f 	isb	sy
		return;
   32562:	e7e5      	b.n	32530 <z_timer_expiration_handler+0x74>
   32564:	4c0b      	ldr	r4, [pc, #44]	; (32594 <z_timer_expiration_handler+0xd8>)
   32566:	22ac      	movs	r2, #172	; 0xac
   32568:	4621      	mov	r1, r4
   3256a:	480b      	ldr	r0, [pc, #44]	; (32598 <z_timer_expiration_handler+0xdc>)
   3256c:	f000 ff1d 	bl	333aa <printk>
   32570:	21ac      	movs	r1, #172	; 0xac
   32572:	4620      	mov	r0, r4
   32574:	f001 fab2 	bl	33adc <assert_post_action>
   32578:	e7ef      	b.n	3255a <z_timer_expiration_handler+0x9e>
   3257a:	4e06      	ldr	r6, [pc, #24]	; (32594 <z_timer_expiration_handler+0xd8>)
   3257c:	22ac      	movs	r2, #172	; 0xac
   3257e:	4631      	mov	r1, r6
   32580:	4805      	ldr	r0, [pc, #20]	; (32598 <z_timer_expiration_handler+0xdc>)
   32582:	f000 ff12 	bl	333aa <printk>
   32586:	21ac      	movs	r1, #172	; 0xac
   32588:	4630      	mov	r0, r6
   3258a:	f001 faa7 	bl	33adc <assert_post_action>
   3258e:	e7c8      	b.n	32522 <z_timer_expiration_handler+0x66>
   32590:	200034dc 	.word	0x200034dc
   32594:	0003bde8 	.word	0x0003bde8
   32598:	0003bdac 	.word	0x0003bdac
   3259c:	000324bd 	.word	0x000324bd

000325a0 <z_impl_k_timer_start>:
}


void z_impl_k_timer_start(struct k_timer *timer, k_timeout_t duration,
			  k_timeout_t period)
{
   325a0:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
   325a4:	b087      	sub	sp, #28
   325a6:	4614      	mov	r4, r2
   325a8:	461d      	mov	r5, r3
   325aa:	e9dd 8910 	ldrd	r8, r9, [sp, #64]	; 0x40
	SYS_PORT_TRACING_OBJ_FUNC(k_timer, start, timer);

	if (K_TIMEOUT_EQ(duration, K_FOREVER)) {
   325ae:	f1b3 3fff 	cmp.w	r3, #4294967295
   325b2:	bf08      	it	eq
   325b4:	f1b2 3fff 	cmpeq.w	r2, #4294967295
   325b8:	d035      	beq.n	32626 <z_impl_k_timer_start+0x86>
   325ba:	4606      	mov	r6, r0
   325bc:	4613      	mov	r3, r2
   325be:	462a      	mov	r2, r5
	 * for backwards compatibility.  This is unfortunate
	 * (i.e. k_timer_start() doesn't treat its initial sleep
	 * argument the same way k_sleep() does), but historical.  The
	 * timer_api test relies on this behavior.
	 */
	if (!K_TIMEOUT_EQ(period, K_FOREVER) && period.ticks != 0 &&
   325c0:	f1b9 3fff 	cmp.w	r9, #4294967295
   325c4:	bf08      	it	eq
   325c6:	f1b8 3fff 	cmpeq.w	r8, #4294967295
   325ca:	d012      	beq.n	325f2 <z_impl_k_timer_start+0x52>
   325cc:	ea58 0109 	orrs.w	r1, r8, r9
   325d0:	d00f      	beq.n	325f2 <z_impl_k_timer_start+0x52>
	    Z_TICK_ABS(period.ticks) < 0) {
   325d2:	f06f 0701 	mvn.w	r7, #1
   325d6:	ebb7 0708 	subs.w	r7, r7, r8
   325da:	9702      	str	r7, [sp, #8]
   325dc:	f04f 31ff 	mov.w	r1, #4294967295
   325e0:	eb61 0709 	sbc.w	r7, r1, r9
   325e4:	9703      	str	r7, [sp, #12]
	if (!K_TIMEOUT_EQ(period, K_FOREVER) && period.ticks != 0 &&
   325e6:	e9dd 0102 	ldrd	r0, r1, [sp, #8]
   325ea:	2800      	cmp	r0, #0
   325ec:	f171 0100 	sbcs.w	r1, r1, #0
   325f0:	db1c      	blt.n	3262c <z_impl_k_timer_start+0x8c>
		period.ticks = MAX(period.ticks - 1, 1);
	}
	if (Z_TICK_ABS(duration.ticks) < 0) {
   325f2:	f06f 0101 	mvn.w	r1, #1
   325f6:	ebb1 0a03 	subs.w	sl, r1, r3
   325fa:	f04f 31ff 	mov.w	r1, #4294967295
   325fe:	eb61 0b02 	sbc.w	fp, r1, r2
   32602:	f1ba 0f00 	cmp.w	sl, #0
   32606:	f17b 0100 	sbcs.w	r1, fp, #0
   3260a:	db23      	blt.n	32654 <z_impl_k_timer_start+0xb4>
		duration.ticks = MAX(duration.ticks - 1, 0);
	}

	(void)z_abort_timeout(&timer->timeout);
   3260c:	4630      	mov	r0, r6
   3260e:	f7ff fd85 	bl	3211c <z_abort_timeout>
	timer->period = period;
   32612:	e9c6 890a 	strd	r8, r9, [r6, #40]	; 0x28
	timer->status = 0U;
   32616:	2300      	movs	r3, #0
   32618:	6333      	str	r3, [r6, #48]	; 0x30

	z_add_timeout(&timer->timeout, z_timer_expiration_handler,
   3261a:	4622      	mov	r2, r4
   3261c:	462b      	mov	r3, r5
   3261e:	4917      	ldr	r1, [pc, #92]	; (3267c <z_impl_k_timer_start+0xdc>)
   32620:	4630      	mov	r0, r6
   32622:	f7ff fc97 	bl	31f54 <z_add_timeout>
		     duration);
}
   32626:	b007      	add	sp, #28
   32628:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
		period.ticks = MAX(period.ticks - 1, 1);
   3262c:	f118 31ff 	adds.w	r1, r8, #4294967295
   32630:	9104      	str	r1, [sp, #16]
   32632:	f149 31ff 	adc.w	r1, r9, #4294967295
   32636:	9105      	str	r1, [sp, #20]
   32638:	e9dd 7804 	ldrd	r7, r8, [sp, #16]
   3263c:	4638      	mov	r0, r7
   3263e:	4641      	mov	r1, r8
   32640:	2f01      	cmp	r7, #1
   32642:	f178 0700 	sbcs.w	r7, r8, #0
   32646:	db02      	blt.n	3264e <z_impl_k_timer_start+0xae>
   32648:	4680      	mov	r8, r0
   3264a:	4689      	mov	r9, r1
   3264c:	e7d1      	b.n	325f2 <z_impl_k_timer_start+0x52>
   3264e:	2001      	movs	r0, #1
   32650:	2100      	movs	r1, #0
   32652:	e7f9      	b.n	32648 <z_impl_k_timer_start+0xa8>
		duration.ticks = MAX(duration.ticks - 1, 0);
   32654:	f113 33ff 	adds.w	r3, r3, #4294967295
   32658:	9300      	str	r3, [sp, #0]
   3265a:	f142 33ff 	adc.w	r3, r2, #4294967295
   3265e:	9301      	str	r3, [sp, #4]
   32660:	e9dd 0100 	ldrd	r0, r1, [sp]
   32664:	4602      	mov	r2, r0
   32666:	460b      	mov	r3, r1
   32668:	2800      	cmp	r0, #0
   3266a:	f171 0100 	sbcs.w	r1, r1, #0
   3266e:	db02      	blt.n	32676 <z_impl_k_timer_start+0xd6>
   32670:	4614      	mov	r4, r2
   32672:	461d      	mov	r5, r3
   32674:	e7ca      	b.n	3260c <z_impl_k_timer_start+0x6c>
   32676:	2200      	movs	r2, #0
   32678:	4613      	mov	r3, r2
   3267a:	e7f9      	b.n	32670 <z_impl_k_timer_start+0xd0>
   3267c:	000324bd 	.word	0x000324bd

00032680 <signal_poller>:

	return events_registered;
}

static int signal_poller(struct k_poll_event *event, uint32_t state)
{
   32680:	b570      	push	{r4, r5, r6, lr}
   32682:	460d      	mov	r5, r1
	struct k_thread *thread = poller_thread(event->poller);
   32684:	6880      	ldr	r0, [r0, #8]
   32686:	f008 feb9 	bl	3b3fc <poller_thread>

	__ASSERT(thread != NULL, "poller should have a thread\n");
   3268a:	4604      	mov	r4, r0
   3268c:	b1e8      	cbz	r0, 326ca <signal_poller+0x4a>
	return (thread->base.thread_state & _THREAD_PENDING) != 0U;
   3268e:	7b63      	ldrb	r3, [r4, #13]

	if (!z_is_thread_pending(thread)) {
   32690:	f013 0f02 	tst.w	r3, #2
   32694:	d032      	beq.n	326fc <signal_poller+0x7c>
	return thread->base.timeout.dticks == _EXPIRED;
   32696:	e9d4 230a 	ldrd	r2, r3, [r4, #40]	; 0x28
		return 0;
	}

	if (z_is_thread_timeout_expired(thread)) {
   3269a:	f06f 0001 	mvn.w	r0, #1
   3269e:	f04f 31ff 	mov.w	r1, #4294967295
   326a2:	428b      	cmp	r3, r1
   326a4:	bf08      	it	eq
   326a6:	4282      	cmpeq	r2, r0
   326a8:	d02a      	beq.n	32700 <signal_poller+0x80>
		return -EAGAIN;
	}

	z_unpend_thread(thread);
   326aa:	4620      	mov	r0, r4
   326ac:	f7fe fbe4 	bl	30e78 <z_unpend_thread>
	arch_thread_return_value_set(thread,
   326b0:	2d08      	cmp	r5, #8
   326b2:	d015      	beq.n	326e0 <signal_poller+0x60>
   326b4:	2300      	movs	r3, #0
   326b6:	f8c4 30b0 	str.w	r3, [r4, #176]	; 0xb0
	uint8_t state = thread->base.thread_state;
   326ba:	7b63      	ldrb	r3, [r4, #13]
	return !((z_is_thread_prevented_from_running(thread)) != 0U ||
   326bc:	f013 0f1f 	tst.w	r3, #31
   326c0:	d113      	bne.n	326ea <signal_poller+0x6a>
	return node->next != NULL;
   326c2:	69a3      	ldr	r3, [r4, #24]
   326c4:	b17b      	cbz	r3, 326e6 <signal_poller+0x66>
   326c6:	2300      	movs	r3, #0
   326c8:	e010      	b.n	326ec <signal_poller+0x6c>
	__ASSERT(thread != NULL, "poller should have a thread\n");
   326ca:	4e0f      	ldr	r6, [pc, #60]	; (32708 <signal_poller+0x88>)
   326cc:	22f9      	movs	r2, #249	; 0xf9
   326ce:	4631      	mov	r1, r6
   326d0:	480e      	ldr	r0, [pc, #56]	; (3270c <signal_poller+0x8c>)
   326d2:	f000 fe6a 	bl	333aa <printk>
   326d6:	21f9      	movs	r1, #249	; 0xf9
   326d8:	4630      	mov	r0, r6
   326da:	f001 f9ff 	bl	33adc <assert_post_action>
   326de:	e7d6      	b.n	3268e <signal_poller+0xe>
	arch_thread_return_value_set(thread,
   326e0:	f06f 0303 	mvn.w	r3, #3
   326e4:	e7e7      	b.n	326b6 <signal_poller+0x36>
   326e6:	2301      	movs	r3, #1
   326e8:	e000      	b.n	326ec <signal_poller+0x6c>
   326ea:	2300      	movs	r3, #0
		state == K_POLL_STATE_CANCELLED ? -EINTR : 0);

	if (!z_is_thread_ready(thread)) {
   326ec:	b90b      	cbnz	r3, 326f2 <signal_poller+0x72>
		return 0;
   326ee:	2000      	movs	r0, #0
   326f0:	e005      	b.n	326fe <signal_poller+0x7e>
	}

	z_ready_thread(thread);
   326f2:	4620      	mov	r0, r4
   326f4:	f7fe fd74 	bl	311e0 <z_ready_thread>

	return 0;
   326f8:	2000      	movs	r0, #0
   326fa:	e000      	b.n	326fe <signal_poller+0x7e>
		return 0;
   326fc:	2000      	movs	r0, #0
}
   326fe:	bd70      	pop	{r4, r5, r6, pc}
		return -EAGAIN;
   32700:	f06f 000a 	mvn.w	r0, #10
   32704:	e7fb      	b.n	326fe <signal_poller+0x7e>
   32706:	bf00      	nop
   32708:	0003faa0 	.word	0x0003faa0
   3270c:	0003bdac 	.word	0x0003bdac

00032710 <k_poll_event_init>:
{
   32710:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   32714:	4604      	mov	r4, r0
   32716:	460e      	mov	r6, r1
   32718:	461d      	mov	r5, r3
	__ASSERT(mode == K_POLL_MODE_NOTIFY_ONLY,
   3271a:	4617      	mov	r7, r2
   3271c:	b9c2      	cbnz	r2, 32750 <k_poll_event_init+0x40>
	__ASSERT(type < (BIT(_POLL_NUM_TYPES)), "invalid type\n");
   3271e:	2e1f      	cmp	r6, #31
   32720:	d822      	bhi.n	32768 <k_poll_event_init+0x58>
	__ASSERT(obj != NULL, "must provide an object\n");
   32722:	b36d      	cbz	r5, 32780 <k_poll_event_init+0x70>
	event->poller = NULL;
   32724:	2300      	movs	r3, #0
   32726:	60a3      	str	r3, [r4, #8]
	event->type = type;
   32728:	7b62      	ldrb	r2, [r4, #13]
   3272a:	f366 0204 	bfi	r2, r6, #0, #5
   3272e:	7362      	strb	r2, [r4, #13]
	event->state = K_POLL_STATE_NOT_READY;
   32730:	68e2      	ldr	r2, [r4, #12]
   32732:	f363 3252 	bfi	r2, r3, #13, #6
   32736:	60e2      	str	r2, [r4, #12]
	event->mode = mode;
   32738:	f3c2 4207 	ubfx	r2, r2, #16, #8
   3273c:	f367 02c3 	bfi	r2, r7, #3, #1
   32740:	73a2      	strb	r2, [r4, #14]
	event->unused = 0U;
   32742:	89e2      	ldrh	r2, [r4, #14]
   32744:	f363 120f 	bfi	r2, r3, #4, #12
   32748:	81e2      	strh	r2, [r4, #14]
	event->obj = obj;
   3274a:	6125      	str	r5, [r4, #16]
}
   3274c:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
	__ASSERT(mode == K_POLL_MODE_NOTIFY_ONLY,
   32750:	f8df 8048 	ldr.w	r8, [pc, #72]	; 3279c <k_poll_event_init+0x8c>
   32754:	222d      	movs	r2, #45	; 0x2d
   32756:	4641      	mov	r1, r8
   32758:	480f      	ldr	r0, [pc, #60]	; (32798 <k_poll_event_init+0x88>)
   3275a:	f000 fe26 	bl	333aa <printk>
   3275e:	212d      	movs	r1, #45	; 0x2d
   32760:	4640      	mov	r0, r8
   32762:	f001 f9bb 	bl	33adc <assert_post_action>
   32766:	e7da      	b.n	3271e <k_poll_event_init+0xe>
	__ASSERT(type < (BIT(_POLL_NUM_TYPES)), "invalid type\n");
   32768:	f8df 8030 	ldr.w	r8, [pc, #48]	; 3279c <k_poll_event_init+0x8c>
   3276c:	222f      	movs	r2, #47	; 0x2f
   3276e:	4641      	mov	r1, r8
   32770:	4809      	ldr	r0, [pc, #36]	; (32798 <k_poll_event_init+0x88>)
   32772:	f000 fe1a 	bl	333aa <printk>
   32776:	212f      	movs	r1, #47	; 0x2f
   32778:	4640      	mov	r0, r8
   3277a:	f001 f9af 	bl	33adc <assert_post_action>
   3277e:	e7d0      	b.n	32722 <k_poll_event_init+0x12>
	__ASSERT(obj != NULL, "must provide an object\n");
   32780:	f8df 8018 	ldr.w	r8, [pc, #24]	; 3279c <k_poll_event_init+0x8c>
   32784:	2230      	movs	r2, #48	; 0x30
   32786:	4641      	mov	r1, r8
   32788:	4803      	ldr	r0, [pc, #12]	; (32798 <k_poll_event_init+0x88>)
   3278a:	f000 fe0e 	bl	333aa <printk>
   3278e:	2130      	movs	r1, #48	; 0x30
   32790:	4640      	mov	r0, r8
   32792:	f001 f9a3 	bl	33adc <assert_post_action>
   32796:	e7c5      	b.n	32724 <k_poll_event_init+0x14>
   32798:	0003bdac 	.word	0x0003bdac
   3279c:	0003faa0 	.word	0x0003faa0

000327a0 <z_impl_k_poll>:

int z_impl_k_poll(struct k_poll_event *events, int num_events,
		  k_timeout_t timeout)
{
   327a0:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
   327a4:	b08d      	sub	sp, #52	; 0x34
   327a6:	4605      	mov	r5, r0
   327a8:	9106      	str	r1, [sp, #24]
   327aa:	9202      	str	r2, [sp, #8]
   327ac:	9303      	str	r3, [sp, #12]
	int events_registered;
	k_spinlock_key_t key;
	struct z_poller *poller = &_current->poller;
   327ae:	4ba6      	ldr	r3, [pc, #664]	; (32a48 <z_impl_k_poll+0x2a8>)
   327b0:	f8d3 9008 	ldr.w	r9, [r3, #8]
   327b4:	f109 0660 	add.w	r6, r9, #96	; 0x60

	poller->is_polling = true;
   327b8:	2301      	movs	r3, #1
   327ba:	f889 3060 	strb.w	r3, [r9, #96]	; 0x60
	poller->mode = MODE_POLL;
   327be:	f889 3061 	strb.w	r3, [r9, #97]	; 0x61
   327c2:	f3ef 8305 	mrs	r3, IPSR

	__ASSERT(!arch_is_in_isr(), "");
   327c6:	b973      	cbnz	r3, 327e6 <z_impl_k_poll+0x46>
	__ASSERT(events != NULL, "NULL events\n");
   327c8:	b1d5      	cbz	r5, 32800 <z_impl_k_poll+0x60>
	__ASSERT(num_events >= 0, "<0 events\n");
   327ca:	9b06      	ldr	r3, [sp, #24]
   327cc:	2b00      	cmp	r3, #0
   327ce:	db24      	blt.n	3281a <z_impl_k_poll+0x7a>

	SYS_PORT_TRACING_FUNC_ENTER(k_poll_api, poll, events);

	events_registered = register_events(events, num_events, poller,
   327d0:	e9dd 1202 	ldrd	r1, r2, [sp, #8]
   327d4:	4613      	mov	r3, r2
   327d6:	430b      	orrs	r3, r1
   327d8:	bf0c      	ite	eq
   327da:	2301      	moveq	r3, #1
   327dc:	2300      	movne	r3, #0
   327de:	9307      	str	r3, [sp, #28]
	for (int ii = 0; ii < num_events; ii++) {
   327e0:	2700      	movs	r7, #0
	int events_registered = 0;
   327e2:	46bb      	mov	fp, r7
	for (int ii = 0; ii < num_events; ii++) {
   327e4:	e071      	b.n	328ca <z_impl_k_poll+0x12a>
	__ASSERT(!arch_is_in_isr(), "");
   327e6:	4c99      	ldr	r4, [pc, #612]	; (32a4c <z_impl_k_poll+0x2ac>)
   327e8:	f44f 728d 	mov.w	r2, #282	; 0x11a
   327ec:	4621      	mov	r1, r4
   327ee:	4898      	ldr	r0, [pc, #608]	; (32a50 <z_impl_k_poll+0x2b0>)
   327f0:	f000 fddb 	bl	333aa <printk>
   327f4:	f44f 718d 	mov.w	r1, #282	; 0x11a
   327f8:	4620      	mov	r0, r4
   327fa:	f001 f96f 	bl	33adc <assert_post_action>
   327fe:	e7e3      	b.n	327c8 <z_impl_k_poll+0x28>
	__ASSERT(events != NULL, "NULL events\n");
   32800:	4c92      	ldr	r4, [pc, #584]	; (32a4c <z_impl_k_poll+0x2ac>)
   32802:	f240 121b 	movw	r2, #283	; 0x11b
   32806:	4621      	mov	r1, r4
   32808:	4891      	ldr	r0, [pc, #580]	; (32a50 <z_impl_k_poll+0x2b0>)
   3280a:	f000 fdce 	bl	333aa <printk>
   3280e:	f240 111b 	movw	r1, #283	; 0x11b
   32812:	4620      	mov	r0, r4
   32814:	f001 f962 	bl	33adc <assert_post_action>
   32818:	e7d7      	b.n	327ca <z_impl_k_poll+0x2a>
	__ASSERT(num_events >= 0, "<0 events\n");
   3281a:	4c8c      	ldr	r4, [pc, #560]	; (32a4c <z_impl_k_poll+0x2ac>)
   3281c:	f44f 728e 	mov.w	r2, #284	; 0x11c
   32820:	4621      	mov	r1, r4
   32822:	488b      	ldr	r0, [pc, #556]	; (32a50 <z_impl_k_poll+0x2b0>)
   32824:	f000 fdc1 	bl	333aa <printk>
   32828:	f44f 718e 	mov.w	r1, #284	; 0x11c
   3282c:	4620      	mov	r0, r4
   3282e:	f001 f955 	bl	33adc <assert_post_action>
   32832:	e7cd      	b.n	327d0 <z_impl_k_poll+0x30>
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   32834:	4c87      	ldr	r4, [pc, #540]	; (32a54 <z_impl_k_poll+0x2b4>)
   32836:	2281      	movs	r2, #129	; 0x81
   32838:	4621      	mov	r1, r4
   3283a:	4885      	ldr	r0, [pc, #532]	; (32a50 <z_impl_k_poll+0x2b0>)
   3283c:	f000 fdb5 	bl	333aa <printk>
   32840:	2181      	movs	r1, #129	; 0x81
   32842:	4620      	mov	r0, r4
   32844:	f001 f94a 	bl	33adc <assert_post_action>
   32848:	e051      	b.n	328ee <z_impl_k_poll+0x14e>
		if (k_sem_count_get(event->sem) > 0U) {
   3284a:	6923      	ldr	r3, [r4, #16]
	return sem->count;
   3284c:	689b      	ldr	r3, [r3, #8]
   3284e:	b31b      	cbz	r3, 32898 <z_impl_k_poll+0xf8>
			*state = K_POLL_STATE_SEM_AVAILABLE;
   32850:	2302      	movs	r3, #2
   32852:	9305      	str	r3, [sp, #20]
			return true;
   32854:	2301      	movs	r3, #1
   32856:	e01f      	b.n	32898 <z_impl_k_poll+0xf8>
		if (!k_queue_is_empty(event->queue)) {
   32858:	6923      	ldr	r3, [r4, #16]
	return list->head;
   3285a:	681b      	ldr	r3, [r3, #0]
   3285c:	b1e3      	cbz	r3, 32898 <z_impl_k_poll+0xf8>
			*state = K_POLL_STATE_FIFO_DATA_AVAILABLE;
   3285e:	2304      	movs	r3, #4
   32860:	9305      	str	r3, [sp, #20]
			return true;
   32862:	2301      	movs	r3, #1
   32864:	e018      	b.n	32898 <z_impl_k_poll+0xf8>
		if (event->signal->signaled != 0U) {
   32866:	6923      	ldr	r3, [r4, #16]
   32868:	689b      	ldr	r3, [r3, #8]
   3286a:	b1ab      	cbz	r3, 32898 <z_impl_k_poll+0xf8>
			*state = K_POLL_STATE_SIGNALED;
   3286c:	2301      	movs	r3, #1
   3286e:	9305      	str	r3, [sp, #20]
   32870:	e012      	b.n	32898 <z_impl_k_poll+0xf8>
		if (event->msgq->used_msgs > 0) {
   32872:	6923      	ldr	r3, [r4, #16]
   32874:	6a5b      	ldr	r3, [r3, #36]	; 0x24
   32876:	b17b      	cbz	r3, 32898 <z_impl_k_poll+0xf8>
			*state = K_POLL_STATE_MSGQ_DATA_AVAILABLE;
   32878:	2310      	movs	r3, #16
   3287a:	9305      	str	r3, [sp, #20]
			return true;
   3287c:	2301      	movs	r3, #1
   3287e:	e00b      	b.n	32898 <z_impl_k_poll+0xf8>
		__ASSERT(false, "invalid event type (0x%x)\n", event->type);
   32880:	f8df 81c8 	ldr.w	r8, [pc, #456]	; 32a4c <z_impl_k_poll+0x2ac>
   32884:	225c      	movs	r2, #92	; 0x5c
   32886:	4641      	mov	r1, r8
   32888:	4871      	ldr	r0, [pc, #452]	; (32a50 <z_impl_k_poll+0x2b0>)
   3288a:	f000 fd8e 	bl	333aa <printk>
   3288e:	215c      	movs	r1, #92	; 0x5c
   32890:	4640      	mov	r0, r8
   32892:	f001 f923 	bl	33adc <assert_post_action>
	return false;
   32896:	2300      	movs	r3, #0
		if (is_condition_met(&events[ii], &state)) {
   32898:	2b00      	cmp	r3, #0
   3289a:	d04d      	beq.n	32938 <z_impl_k_poll+0x198>
	event->poller = NULL;
   3289c:	2100      	movs	r1, #0
   3289e:	60a1      	str	r1, [r4, #8]
	event->state |= state;
   328a0:	68e3      	ldr	r3, [r4, #12]
   328a2:	f3c3 3245 	ubfx	r2, r3, #13, #6
   328a6:	9805      	ldr	r0, [sp, #20]
   328a8:	4302      	orrs	r2, r0
   328aa:	f362 3352 	bfi	r3, r2, #13, #6
   328ae:	60e3      	str	r3, [r4, #12]
			poller->is_polling = false;
   328b0:	7031      	strb	r1, [r6, #0]
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   328b2:	4869      	ldr	r0, [pc, #420]	; (32a58 <z_impl_k_poll+0x2b8>)
   328b4:	f7fc fe46 	bl	2f544 <z_spin_unlock_valid>
   328b8:	2800      	cmp	r0, #0
   328ba:	f000 822a 	beq.w	32d12 <z_impl_k_poll+0x572>
   328be:	9b08      	ldr	r3, [sp, #32]
   328c0:	f383 8811 	msr	BASEPRI, r3
   328c4:	f3bf 8f6f 	isb	sy
	for (int ii = 0; ii < num_events; ii++) {
   328c8:	3701      	adds	r7, #1
   328ca:	9b06      	ldr	r3, [sp, #24]
   328cc:	42bb      	cmp	r3, r7
   328ce:	f340 822b 	ble.w	32d28 <z_impl_k_poll+0x588>
	__asm__ volatile(
   328d2:	f04f 0340 	mov.w	r3, #64	; 0x40
   328d6:	f3ef 8211 	mrs	r2, BASEPRI
   328da:	f383 8812 	msr	BASEPRI_MAX, r3
   328de:	f3bf 8f6f 	isb	sy
   328e2:	9208      	str	r2, [sp, #32]
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   328e4:	485c      	ldr	r0, [pc, #368]	; (32a58 <z_impl_k_poll+0x2b8>)
   328e6:	f7fc fe1d 	bl	2f524 <z_spin_lock_valid>
   328ea:	2800      	cmp	r0, #0
   328ec:	d0a2      	beq.n	32834 <z_impl_k_poll+0x94>
	z_spin_lock_set_owner(l);
   328ee:	485a      	ldr	r0, [pc, #360]	; (32a58 <z_impl_k_poll+0x2b8>)
   328f0:	f7fc fe38 	bl	2f564 <z_spin_lock_set_owner>
		if (is_condition_met(&events[ii], &state)) {
   328f4:	eb07 0487 	add.w	r4, r7, r7, lsl #2
   328f8:	00a3      	lsls	r3, r4, #2
   328fa:	9309      	str	r3, [sp, #36]	; 0x24
   328fc:	eb05 0484 	add.w	r4, r5, r4, lsl #2
	switch (event->type) {
   32900:	7b63      	ldrb	r3, [r4, #13]
   32902:	f003 031f 	and.w	r3, r3, #31
   32906:	2b08      	cmp	r3, #8
   32908:	d8ba      	bhi.n	32880 <z_impl_k_poll+0xe0>
   3290a:	a201      	add	r2, pc, #4	; (adr r2, 32910 <z_impl_k_poll+0x170>)
   3290c:	f852 f023 	ldr.w	pc, [r2, r3, lsl #2]
   32910:	00032935 	.word	0x00032935
   32914:	00032867 	.word	0x00032867
   32918:	0003284b 	.word	0x0003284b
   3291c:	00032881 	.word	0x00032881
   32920:	00032859 	.word	0x00032859
   32924:	00032881 	.word	0x00032881
   32928:	00032881 	.word	0x00032881
   3292c:	00032881 	.word	0x00032881
   32930:	00032873 	.word	0x00032873
   32934:	2300      	movs	r3, #0
   32936:	e7af      	b.n	32898 <z_impl_k_poll+0xf8>
		} else if (!just_check && poller->is_polling) {
   32938:	9b07      	ldr	r3, [sp, #28]
   3293a:	2b00      	cmp	r3, #0
   3293c:	d1b9      	bne.n	328b2 <z_impl_k_poll+0x112>
   3293e:	7833      	ldrb	r3, [r6, #0]
   32940:	2b00      	cmp	r3, #0
   32942:	d0b6      	beq.n	328b2 <z_impl_k_poll+0x112>
	switch (event->type) {
   32944:	7b63      	ldrb	r3, [r4, #13]
   32946:	f003 031f 	and.w	r3, r3, #31
   3294a:	2b08      	cmp	r3, #8
   3294c:	f200 81d2 	bhi.w	32cf4 <z_impl_k_poll+0x554>
   32950:	e8df f013 	tbh	[pc, r3, lsl #1]
   32954:	00f401db 	.word	0x00f401db
   32958:	01d00009 	.word	0x01d00009
   3295c:	01d00084 	.word	0x01d00084
   32960:	01d001d0 	.word	0x01d001d0
   32964:	0160      	.short	0x0160
		__ASSERT(event->sem != NULL, "invalid semaphore\n");
   32966:	6923      	ldr	r3, [r4, #16]
   32968:	2b00      	cmp	r3, #0
   3296a:	d035      	beq.n	329d8 <z_impl_k_poll+0x238>
		add_event(&event->sem->poll_events, event, poller);
   3296c:	f8d4 a010 	ldr.w	sl, [r4, #16]
   32970:	f10a 0810 	add.w	r8, sl, #16
	return list->head == list;
   32974:	f8da 3010 	ldr.w	r3, [sl, #16]
	return sys_dlist_is_empty(list) ? NULL : list->tail;
   32978:	4598      	cmp	r8, r3
   3297a:	d039      	beq.n	329f0 <z_impl_k_poll+0x250>
   3297c:	f8d8 3004 	ldr.w	r3, [r8, #4]
	if ((pending == NULL) ||
   32980:	2b00      	cmp	r3, #0
   32982:	d035      	beq.n	329f0 <z_impl_k_poll+0x250>
		(z_sched_prio_cmp(poller_thread(pending->poller),
   32984:	6898      	ldr	r0, [r3, #8]
   32986:	f008 fd39 	bl	3b3fc <poller_thread>
   3298a:	900b      	str	r0, [sp, #44]	; 0x2c
   3298c:	4630      	mov	r0, r6
   3298e:	f008 fd35 	bl	3b3fc <poller_thread>
   32992:	4601      	mov	r1, r0
   32994:	900a      	str	r0, [sp, #40]	; 0x28
   32996:	980b      	ldr	r0, [sp, #44]	; 0x2c
   32998:	f008 fca8 	bl	3b2ec <z_sched_prio_cmp>
	if ((pending == NULL) ||
   3299c:	2800      	cmp	r0, #0
   3299e:	dc27      	bgt.n	329f0 <z_impl_k_poll+0x250>
	return list->head == list;
   329a0:	f8da a010 	ldr.w	sl, [sl, #16]
	return sys_dlist_is_empty(list) ? NULL : list->head;
   329a4:	45d0      	cmp	r8, sl
   329a6:	d039      	beq.n	32a1c <z_impl_k_poll+0x27c>
   329a8:	4653      	mov	r3, sl
   329aa:	46a2      	mov	sl, r4
   329ac:	461c      	mov	r4, r3
	SYS_DLIST_FOR_EACH_CONTAINER(events, pending, _node) {
   329ae:	2c00      	cmp	r4, #0
   329b0:	d03a      	beq.n	32a28 <z_impl_k_poll+0x288>
		if (z_sched_prio_cmp(poller_thread(poller),
   329b2:	68a0      	ldr	r0, [r4, #8]
   329b4:	f008 fd22 	bl	3b3fc <poller_thread>
   329b8:	4601      	mov	r1, r0
   329ba:	980a      	ldr	r0, [sp, #40]	; 0x28
   329bc:	f008 fc96 	bl	3b2ec <z_sched_prio_cmp>
   329c0:	2800      	cmp	r0, #0
   329c2:	dc1f      	bgt.n	32a04 <z_impl_k_poll+0x264>
	return (node != NULL) ? sys_dlist_peek_next_no_check(list, node) : NULL;
   329c4:	b394      	cbz	r4, 32a2c <z_impl_k_poll+0x28c>
	return (node == list->tail) ? NULL : node->next;
   329c6:	f8d8 3004 	ldr.w	r3, [r8, #4]
   329ca:	429c      	cmp	r4, r3
   329cc:	d039      	beq.n	32a42 <z_impl_k_poll+0x2a2>
   329ce:	6824      	ldr	r4, [r4, #0]
	SYS_DLIST_FOR_EACH_CONTAINER(events, pending, _node) {
   329d0:	2c00      	cmp	r4, #0
   329d2:	d1ec      	bne.n	329ae <z_impl_k_poll+0x20e>
   329d4:	4654      	mov	r4, sl
   329d6:	e02a      	b.n	32a2e <z_impl_k_poll+0x28e>
		__ASSERT(event->sem != NULL, "invalid semaphore\n");
   329d8:	f8df 8070 	ldr.w	r8, [pc, #112]	; 32a4c <z_impl_k_poll+0x2ac>
   329dc:	2286      	movs	r2, #134	; 0x86
   329de:	4641      	mov	r1, r8
   329e0:	481b      	ldr	r0, [pc, #108]	; (32a50 <z_impl_k_poll+0x2b0>)
   329e2:	f000 fce2 	bl	333aa <printk>
   329e6:	2186      	movs	r1, #134	; 0x86
   329e8:	4640      	mov	r0, r8
   329ea:	f001 f877 	bl	33adc <assert_post_action>
   329ee:	e7bd      	b.n	3296c <z_impl_k_poll+0x1cc>
	sys_dnode_t *const tail = list->tail;
   329f0:	f8d8 3004 	ldr.w	r3, [r8, #4]
	node->next = list;
   329f4:	9a09      	ldr	r2, [sp, #36]	; 0x24
   329f6:	f845 8002 	str.w	r8, [r5, r2]
	node->prev = tail;
   329fa:	6063      	str	r3, [r4, #4]
	tail->next = node;
   329fc:	601c      	str	r4, [r3, #0]
	list->tail = node;
   329fe:	f8c8 4004 	str.w	r4, [r8, #4]
		return;
   32a02:	e182      	b.n	32d0a <z_impl_k_poll+0x56a>
   32a04:	4623      	mov	r3, r4
   32a06:	4654      	mov	r4, sl
   32a08:	469a      	mov	sl, r3
	sys_dnode_t *const prev = successor->prev;
   32a0a:	685b      	ldr	r3, [r3, #4]
	node->prev = prev;
   32a0c:	6063      	str	r3, [r4, #4]
	node->next = successor;
   32a0e:	9a09      	ldr	r2, [sp, #36]	; 0x24
   32a10:	f845 a002 	str.w	sl, [r5, r2]
	prev->next = node;
   32a14:	601c      	str	r4, [r3, #0]
	successor->prev = node;
   32a16:	f8ca 4004 	str.w	r4, [sl, #4]
			return;
   32a1a:	e176      	b.n	32d0a <z_impl_k_poll+0x56a>
	SYS_DLIST_FOR_EACH_CONTAINER(events, pending, _node) {
   32a1c:	f04f 0a00 	mov.w	sl, #0
   32a20:	4653      	mov	r3, sl
   32a22:	46a2      	mov	sl, r4
   32a24:	461c      	mov	r4, r3
   32a26:	e7c2      	b.n	329ae <z_impl_k_poll+0x20e>
   32a28:	4654      	mov	r4, sl
   32a2a:	e000      	b.n	32a2e <z_impl_k_poll+0x28e>
   32a2c:	4654      	mov	r4, sl
	sys_dnode_t *const tail = list->tail;
   32a2e:	f8d8 3004 	ldr.w	r3, [r8, #4]
	node->next = list;
   32a32:	9a09      	ldr	r2, [sp, #36]	; 0x24
   32a34:	f845 8002 	str.w	r8, [r5, r2]
	node->prev = tail;
   32a38:	6063      	str	r3, [r4, #4]
	tail->next = node;
   32a3a:	601c      	str	r4, [r3, #0]
	list->tail = node;
   32a3c:	f8c8 4004 	str.w	r4, [r8, #4]
}
   32a40:	e163      	b.n	32d0a <z_impl_k_poll+0x56a>
   32a42:	4654      	mov	r4, sl
   32a44:	e7f3      	b.n	32a2e <z_impl_k_poll+0x28e>
   32a46:	bf00      	nop
   32a48:	20003480 	.word	0x20003480
   32a4c:	0003faa0 	.word	0x0003faa0
   32a50:	0003bdac 	.word	0x0003bdac
   32a54:	0003bde8 	.word	0x0003bde8
   32a58:	200034e0 	.word	0x200034e0
		__ASSERT(event->queue != NULL, "invalid queue\n");
   32a5c:	6923      	ldr	r3, [r4, #16]
   32a5e:	2b00      	cmp	r3, #0
   32a60:	d035      	beq.n	32ace <z_impl_k_poll+0x32e>
		add_event(&event->queue->poll_events, event, poller);
   32a62:	f8d4 a010 	ldr.w	sl, [r4, #16]
   32a66:	f10a 0814 	add.w	r8, sl, #20
	return list->head == list;
   32a6a:	f8da 3014 	ldr.w	r3, [sl, #20]
	return sys_dlist_is_empty(list) ? NULL : list->tail;
   32a6e:	4598      	cmp	r8, r3
   32a70:	d039      	beq.n	32ae6 <z_impl_k_poll+0x346>
   32a72:	f8d8 3004 	ldr.w	r3, [r8, #4]
	if ((pending == NULL) ||
   32a76:	2b00      	cmp	r3, #0
   32a78:	d035      	beq.n	32ae6 <z_impl_k_poll+0x346>
		(z_sched_prio_cmp(poller_thread(pending->poller),
   32a7a:	6898      	ldr	r0, [r3, #8]
   32a7c:	f008 fcbe 	bl	3b3fc <poller_thread>
   32a80:	900b      	str	r0, [sp, #44]	; 0x2c
   32a82:	4630      	mov	r0, r6
   32a84:	f008 fcba 	bl	3b3fc <poller_thread>
   32a88:	4601      	mov	r1, r0
   32a8a:	900a      	str	r0, [sp, #40]	; 0x28
   32a8c:	980b      	ldr	r0, [sp, #44]	; 0x2c
   32a8e:	f008 fc2d 	bl	3b2ec <z_sched_prio_cmp>
	if ((pending == NULL) ||
   32a92:	2800      	cmp	r0, #0
   32a94:	dc27      	bgt.n	32ae6 <z_impl_k_poll+0x346>
	return list->head == list;
   32a96:	f8da a014 	ldr.w	sl, [sl, #20]
	return sys_dlist_is_empty(list) ? NULL : list->head;
   32a9a:	45d0      	cmp	r8, sl
   32a9c:	d039      	beq.n	32b12 <z_impl_k_poll+0x372>
   32a9e:	4653      	mov	r3, sl
   32aa0:	46a2      	mov	sl, r4
   32aa2:	461c      	mov	r4, r3
	SYS_DLIST_FOR_EACH_CONTAINER(events, pending, _node) {
   32aa4:	2c00      	cmp	r4, #0
   32aa6:	d03a      	beq.n	32b1e <z_impl_k_poll+0x37e>
		if (z_sched_prio_cmp(poller_thread(poller),
   32aa8:	68a0      	ldr	r0, [r4, #8]
   32aaa:	f008 fca7 	bl	3b3fc <poller_thread>
   32aae:	4601      	mov	r1, r0
   32ab0:	980a      	ldr	r0, [sp, #40]	; 0x28
   32ab2:	f008 fc1b 	bl	3b2ec <z_sched_prio_cmp>
   32ab6:	2800      	cmp	r0, #0
   32ab8:	dc1f      	bgt.n	32afa <z_impl_k_poll+0x35a>
	return (node != NULL) ? sys_dlist_peek_next_no_check(list, node) : NULL;
   32aba:	b394      	cbz	r4, 32b22 <z_impl_k_poll+0x382>
	return (node == list->tail) ? NULL : node->next;
   32abc:	f8d8 3004 	ldr.w	r3, [r8, #4]
   32ac0:	429c      	cmp	r4, r3
   32ac2:	d039      	beq.n	32b38 <z_impl_k_poll+0x398>
   32ac4:	6824      	ldr	r4, [r4, #0]
	SYS_DLIST_FOR_EACH_CONTAINER(events, pending, _node) {
   32ac6:	2c00      	cmp	r4, #0
   32ac8:	d1ec      	bne.n	32aa4 <z_impl_k_poll+0x304>
   32aca:	4654      	mov	r4, sl
   32acc:	e02a      	b.n	32b24 <z_impl_k_poll+0x384>
		__ASSERT(event->queue != NULL, "invalid queue\n");
   32ace:	f8df 82f8 	ldr.w	r8, [pc, #760]	; 32dc8 <z_impl_k_poll+0x628>
   32ad2:	228a      	movs	r2, #138	; 0x8a
   32ad4:	4641      	mov	r1, r8
   32ad6:	48b8      	ldr	r0, [pc, #736]	; (32db8 <z_impl_k_poll+0x618>)
   32ad8:	f000 fc67 	bl	333aa <printk>
   32adc:	218a      	movs	r1, #138	; 0x8a
   32ade:	4640      	mov	r0, r8
   32ae0:	f000 fffc 	bl	33adc <assert_post_action>
   32ae4:	e7bd      	b.n	32a62 <z_impl_k_poll+0x2c2>
	sys_dnode_t *const tail = list->tail;
   32ae6:	f8d8 3004 	ldr.w	r3, [r8, #4]
	node->next = list;
   32aea:	9a09      	ldr	r2, [sp, #36]	; 0x24
   32aec:	f845 8002 	str.w	r8, [r5, r2]
	node->prev = tail;
   32af0:	6063      	str	r3, [r4, #4]
	tail->next = node;
   32af2:	601c      	str	r4, [r3, #0]
	list->tail = node;
   32af4:	f8c8 4004 	str.w	r4, [r8, #4]
		return;
   32af8:	e107      	b.n	32d0a <z_impl_k_poll+0x56a>
   32afa:	4623      	mov	r3, r4
   32afc:	4654      	mov	r4, sl
   32afe:	469a      	mov	sl, r3
	sys_dnode_t *const prev = successor->prev;
   32b00:	685b      	ldr	r3, [r3, #4]
	node->prev = prev;
   32b02:	6063      	str	r3, [r4, #4]
	node->next = successor;
   32b04:	9a09      	ldr	r2, [sp, #36]	; 0x24
   32b06:	f845 a002 	str.w	sl, [r5, r2]
	prev->next = node;
   32b0a:	601c      	str	r4, [r3, #0]
	successor->prev = node;
   32b0c:	f8ca 4004 	str.w	r4, [sl, #4]
			return;
   32b10:	e0fb      	b.n	32d0a <z_impl_k_poll+0x56a>
	SYS_DLIST_FOR_EACH_CONTAINER(events, pending, _node) {
   32b12:	f04f 0a00 	mov.w	sl, #0
   32b16:	4653      	mov	r3, sl
   32b18:	46a2      	mov	sl, r4
   32b1a:	461c      	mov	r4, r3
   32b1c:	e7c2      	b.n	32aa4 <z_impl_k_poll+0x304>
   32b1e:	4654      	mov	r4, sl
   32b20:	e000      	b.n	32b24 <z_impl_k_poll+0x384>
   32b22:	4654      	mov	r4, sl
	sys_dnode_t *const tail = list->tail;
   32b24:	f8d8 3004 	ldr.w	r3, [r8, #4]
	node->next = list;
   32b28:	9a09      	ldr	r2, [sp, #36]	; 0x24
   32b2a:	f845 8002 	str.w	r8, [r5, r2]
	node->prev = tail;
   32b2e:	6063      	str	r3, [r4, #4]
	tail->next = node;
   32b30:	601c      	str	r4, [r3, #0]
	list->tail = node;
   32b32:	f8c8 4004 	str.w	r4, [r8, #4]
}
   32b36:	e0e8      	b.n	32d0a <z_impl_k_poll+0x56a>
   32b38:	4654      	mov	r4, sl
   32b3a:	e7f3      	b.n	32b24 <z_impl_k_poll+0x384>
		__ASSERT(event->signal != NULL, "invalid poll signal\n");
   32b3c:	6923      	ldr	r3, [r4, #16]
   32b3e:	b393      	cbz	r3, 32ba6 <z_impl_k_poll+0x406>
		add_event(&event->signal->poll_events, event, poller);
   32b40:	f8d4 8010 	ldr.w	r8, [r4, #16]
	return list->head == list;
   32b44:	f8d8 3000 	ldr.w	r3, [r8]
	return sys_dlist_is_empty(list) ? NULL : list->tail;
   32b48:	4598      	cmp	r8, r3
   32b4a:	d038      	beq.n	32bbe <z_impl_k_poll+0x41e>
   32b4c:	f8d8 3004 	ldr.w	r3, [r8, #4]
	if ((pending == NULL) ||
   32b50:	b3ab      	cbz	r3, 32bbe <z_impl_k_poll+0x41e>
		(z_sched_prio_cmp(poller_thread(pending->poller),
   32b52:	6898      	ldr	r0, [r3, #8]
   32b54:	f008 fc52 	bl	3b3fc <poller_thread>
   32b58:	4682      	mov	sl, r0
   32b5a:	4630      	mov	r0, r6
   32b5c:	f008 fc4e 	bl	3b3fc <poller_thread>
   32b60:	4601      	mov	r1, r0
   32b62:	900a      	str	r0, [sp, #40]	; 0x28
   32b64:	4650      	mov	r0, sl
   32b66:	f008 fbc1 	bl	3b2ec <z_sched_prio_cmp>
	if ((pending == NULL) ||
   32b6a:	2800      	cmp	r0, #0
   32b6c:	dc27      	bgt.n	32bbe <z_impl_k_poll+0x41e>
	return list->head == list;
   32b6e:	f8d8 a000 	ldr.w	sl, [r8]
	return sys_dlist_is_empty(list) ? NULL : list->head;
   32b72:	45d0      	cmp	r8, sl
   32b74:	d039      	beq.n	32bea <z_impl_k_poll+0x44a>
   32b76:	4653      	mov	r3, sl
   32b78:	46a2      	mov	sl, r4
   32b7a:	461c      	mov	r4, r3
	SYS_DLIST_FOR_EACH_CONTAINER(events, pending, _node) {
   32b7c:	2c00      	cmp	r4, #0
   32b7e:	d03a      	beq.n	32bf6 <z_impl_k_poll+0x456>
		if (z_sched_prio_cmp(poller_thread(poller),
   32b80:	68a0      	ldr	r0, [r4, #8]
   32b82:	f008 fc3b 	bl	3b3fc <poller_thread>
   32b86:	4601      	mov	r1, r0
   32b88:	980a      	ldr	r0, [sp, #40]	; 0x28
   32b8a:	f008 fbaf 	bl	3b2ec <z_sched_prio_cmp>
   32b8e:	2800      	cmp	r0, #0
   32b90:	dc1f      	bgt.n	32bd2 <z_impl_k_poll+0x432>
	return (node != NULL) ? sys_dlist_peek_next_no_check(list, node) : NULL;
   32b92:	b394      	cbz	r4, 32bfa <z_impl_k_poll+0x45a>
	return (node == list->tail) ? NULL : node->next;
   32b94:	f8d8 3004 	ldr.w	r3, [r8, #4]
   32b98:	429c      	cmp	r4, r3
   32b9a:	d039      	beq.n	32c10 <z_impl_k_poll+0x470>
   32b9c:	6824      	ldr	r4, [r4, #0]
	SYS_DLIST_FOR_EACH_CONTAINER(events, pending, _node) {
   32b9e:	2c00      	cmp	r4, #0
   32ba0:	d1ec      	bne.n	32b7c <z_impl_k_poll+0x3dc>
   32ba2:	4654      	mov	r4, sl
   32ba4:	e02a      	b.n	32bfc <z_impl_k_poll+0x45c>
		__ASSERT(event->signal != NULL, "invalid poll signal\n");
   32ba6:	f8df 8220 	ldr.w	r8, [pc, #544]	; 32dc8 <z_impl_k_poll+0x628>
   32baa:	228e      	movs	r2, #142	; 0x8e
   32bac:	4641      	mov	r1, r8
   32bae:	4882      	ldr	r0, [pc, #520]	; (32db8 <z_impl_k_poll+0x618>)
   32bb0:	f000 fbfb 	bl	333aa <printk>
   32bb4:	218e      	movs	r1, #142	; 0x8e
   32bb6:	4640      	mov	r0, r8
   32bb8:	f000 ff90 	bl	33adc <assert_post_action>
   32bbc:	e7c0      	b.n	32b40 <z_impl_k_poll+0x3a0>
	sys_dnode_t *const tail = list->tail;
   32bbe:	f8d8 3004 	ldr.w	r3, [r8, #4]
	node->next = list;
   32bc2:	9a09      	ldr	r2, [sp, #36]	; 0x24
   32bc4:	f845 8002 	str.w	r8, [r5, r2]
	node->prev = tail;
   32bc8:	6063      	str	r3, [r4, #4]
	tail->next = node;
   32bca:	601c      	str	r4, [r3, #0]
	list->tail = node;
   32bcc:	f8c8 4004 	str.w	r4, [r8, #4]
		return;
   32bd0:	e09b      	b.n	32d0a <z_impl_k_poll+0x56a>
   32bd2:	4623      	mov	r3, r4
   32bd4:	4654      	mov	r4, sl
   32bd6:	469a      	mov	sl, r3
	sys_dnode_t *const prev = successor->prev;
   32bd8:	685b      	ldr	r3, [r3, #4]
	node->prev = prev;
   32bda:	6063      	str	r3, [r4, #4]
	node->next = successor;
   32bdc:	9a09      	ldr	r2, [sp, #36]	; 0x24
   32bde:	f845 a002 	str.w	sl, [r5, r2]
	prev->next = node;
   32be2:	601c      	str	r4, [r3, #0]
	successor->prev = node;
   32be4:	f8ca 4004 	str.w	r4, [sl, #4]
			return;
   32be8:	e08f      	b.n	32d0a <z_impl_k_poll+0x56a>
	SYS_DLIST_FOR_EACH_CONTAINER(events, pending, _node) {
   32bea:	f04f 0a00 	mov.w	sl, #0
   32bee:	4653      	mov	r3, sl
   32bf0:	46a2      	mov	sl, r4
   32bf2:	461c      	mov	r4, r3
   32bf4:	e7c2      	b.n	32b7c <z_impl_k_poll+0x3dc>
   32bf6:	4654      	mov	r4, sl
   32bf8:	e000      	b.n	32bfc <z_impl_k_poll+0x45c>
   32bfa:	4654      	mov	r4, sl
	sys_dnode_t *const tail = list->tail;
   32bfc:	f8d8 3004 	ldr.w	r3, [r8, #4]
	node->next = list;
   32c00:	9a09      	ldr	r2, [sp, #36]	; 0x24
   32c02:	f845 8002 	str.w	r8, [r5, r2]
	node->prev = tail;
   32c06:	6063      	str	r3, [r4, #4]
	tail->next = node;
   32c08:	601c      	str	r4, [r3, #0]
	list->tail = node;
   32c0a:	f8c8 4004 	str.w	r4, [r8, #4]
}
   32c0e:	e07c      	b.n	32d0a <z_impl_k_poll+0x56a>
   32c10:	4654      	mov	r4, sl
   32c12:	e7f3      	b.n	32bfc <z_impl_k_poll+0x45c>
		__ASSERT(event->msgq != NULL, "invalid message queue\n");
   32c14:	6923      	ldr	r3, [r4, #16]
   32c16:	2b00      	cmp	r3, #0
   32c18:	d035      	beq.n	32c86 <z_impl_k_poll+0x4e6>
		add_event(&event->msgq->poll_events, event, poller);
   32c1a:	f8d4 a010 	ldr.w	sl, [r4, #16]
   32c1e:	f10a 0828 	add.w	r8, sl, #40	; 0x28
	return list->head == list;
   32c22:	f8da 3028 	ldr.w	r3, [sl, #40]	; 0x28
	return sys_dlist_is_empty(list) ? NULL : list->tail;
   32c26:	4598      	cmp	r8, r3
   32c28:	d039      	beq.n	32c9e <z_impl_k_poll+0x4fe>
   32c2a:	f8d8 3004 	ldr.w	r3, [r8, #4]
	if ((pending == NULL) ||
   32c2e:	2b00      	cmp	r3, #0
   32c30:	d035      	beq.n	32c9e <z_impl_k_poll+0x4fe>
		(z_sched_prio_cmp(poller_thread(pending->poller),
   32c32:	6898      	ldr	r0, [r3, #8]
   32c34:	f008 fbe2 	bl	3b3fc <poller_thread>
   32c38:	900b      	str	r0, [sp, #44]	; 0x2c
   32c3a:	4630      	mov	r0, r6
   32c3c:	f008 fbde 	bl	3b3fc <poller_thread>
   32c40:	4601      	mov	r1, r0
   32c42:	900a      	str	r0, [sp, #40]	; 0x28
   32c44:	980b      	ldr	r0, [sp, #44]	; 0x2c
   32c46:	f008 fb51 	bl	3b2ec <z_sched_prio_cmp>
	if ((pending == NULL) ||
   32c4a:	2800      	cmp	r0, #0
   32c4c:	dc27      	bgt.n	32c9e <z_impl_k_poll+0x4fe>
	return list->head == list;
   32c4e:	f8da a028 	ldr.w	sl, [sl, #40]	; 0x28
	return sys_dlist_is_empty(list) ? NULL : list->head;
   32c52:	45d0      	cmp	r8, sl
   32c54:	d039      	beq.n	32cca <z_impl_k_poll+0x52a>
   32c56:	4653      	mov	r3, sl
   32c58:	46a2      	mov	sl, r4
   32c5a:	461c      	mov	r4, r3
	SYS_DLIST_FOR_EACH_CONTAINER(events, pending, _node) {
   32c5c:	2c00      	cmp	r4, #0
   32c5e:	d03a      	beq.n	32cd6 <z_impl_k_poll+0x536>
		if (z_sched_prio_cmp(poller_thread(poller),
   32c60:	68a0      	ldr	r0, [r4, #8]
   32c62:	f008 fbcb 	bl	3b3fc <poller_thread>
   32c66:	4601      	mov	r1, r0
   32c68:	980a      	ldr	r0, [sp, #40]	; 0x28
   32c6a:	f008 fb3f 	bl	3b2ec <z_sched_prio_cmp>
   32c6e:	2800      	cmp	r0, #0
   32c70:	dc1f      	bgt.n	32cb2 <z_impl_k_poll+0x512>
	return (node != NULL) ? sys_dlist_peek_next_no_check(list, node) : NULL;
   32c72:	b394      	cbz	r4, 32cda <z_impl_k_poll+0x53a>
	return (node == list->tail) ? NULL : node->next;
   32c74:	f8d8 3004 	ldr.w	r3, [r8, #4]
   32c78:	429c      	cmp	r4, r3
   32c7a:	d039      	beq.n	32cf0 <z_impl_k_poll+0x550>
   32c7c:	6824      	ldr	r4, [r4, #0]
	SYS_DLIST_FOR_EACH_CONTAINER(events, pending, _node) {
   32c7e:	2c00      	cmp	r4, #0
   32c80:	d1ec      	bne.n	32c5c <z_impl_k_poll+0x4bc>
   32c82:	4654      	mov	r4, sl
   32c84:	e02a      	b.n	32cdc <z_impl_k_poll+0x53c>
		__ASSERT(event->msgq != NULL, "invalid message queue\n");
   32c86:	f8df 8140 	ldr.w	r8, [pc, #320]	; 32dc8 <z_impl_k_poll+0x628>
   32c8a:	2292      	movs	r2, #146	; 0x92
   32c8c:	4641      	mov	r1, r8
   32c8e:	484a      	ldr	r0, [pc, #296]	; (32db8 <z_impl_k_poll+0x618>)
   32c90:	f000 fb8b 	bl	333aa <printk>
   32c94:	2192      	movs	r1, #146	; 0x92
   32c96:	4640      	mov	r0, r8
   32c98:	f000 ff20 	bl	33adc <assert_post_action>
   32c9c:	e7bd      	b.n	32c1a <z_impl_k_poll+0x47a>
	sys_dnode_t *const tail = list->tail;
   32c9e:	f8d8 3004 	ldr.w	r3, [r8, #4]
	node->next = list;
   32ca2:	9a09      	ldr	r2, [sp, #36]	; 0x24
   32ca4:	f845 8002 	str.w	r8, [r5, r2]
	node->prev = tail;
   32ca8:	6063      	str	r3, [r4, #4]
	tail->next = node;
   32caa:	601c      	str	r4, [r3, #0]
	list->tail = node;
   32cac:	f8c8 4004 	str.w	r4, [r8, #4]
		return;
   32cb0:	e02b      	b.n	32d0a <z_impl_k_poll+0x56a>
   32cb2:	4623      	mov	r3, r4
   32cb4:	4654      	mov	r4, sl
   32cb6:	469a      	mov	sl, r3
	sys_dnode_t *const prev = successor->prev;
   32cb8:	685b      	ldr	r3, [r3, #4]
	node->prev = prev;
   32cba:	6063      	str	r3, [r4, #4]
	node->next = successor;
   32cbc:	9a09      	ldr	r2, [sp, #36]	; 0x24
   32cbe:	f845 a002 	str.w	sl, [r5, r2]
	prev->next = node;
   32cc2:	601c      	str	r4, [r3, #0]
	successor->prev = node;
   32cc4:	f8ca 4004 	str.w	r4, [sl, #4]
			return;
   32cc8:	e01f      	b.n	32d0a <z_impl_k_poll+0x56a>
	SYS_DLIST_FOR_EACH_CONTAINER(events, pending, _node) {
   32cca:	f04f 0a00 	mov.w	sl, #0
   32cce:	4653      	mov	r3, sl
   32cd0:	46a2      	mov	sl, r4
   32cd2:	461c      	mov	r4, r3
   32cd4:	e7c2      	b.n	32c5c <z_impl_k_poll+0x4bc>
   32cd6:	4654      	mov	r4, sl
   32cd8:	e000      	b.n	32cdc <z_impl_k_poll+0x53c>
   32cda:	4654      	mov	r4, sl
	sys_dnode_t *const tail = list->tail;
   32cdc:	f8d8 3004 	ldr.w	r3, [r8, #4]
	node->next = list;
   32ce0:	9a09      	ldr	r2, [sp, #36]	; 0x24
   32ce2:	f845 8002 	str.w	r8, [r5, r2]
	node->prev = tail;
   32ce6:	6063      	str	r3, [r4, #4]
	tail->next = node;
   32ce8:	601c      	str	r4, [r3, #0]
	list->tail = node;
   32cea:	f8c8 4004 	str.w	r4, [r8, #4]
}
   32cee:	e00c      	b.n	32d0a <z_impl_k_poll+0x56a>
   32cf0:	4654      	mov	r4, sl
   32cf2:	e7f3      	b.n	32cdc <z_impl_k_poll+0x53c>
		__ASSERT(false, "invalid event type\n");
   32cf4:	f8df 80d0 	ldr.w	r8, [pc, #208]	; 32dc8 <z_impl_k_poll+0x628>
   32cf8:	2299      	movs	r2, #153	; 0x99
   32cfa:	4641      	mov	r1, r8
   32cfc:	482e      	ldr	r0, [pc, #184]	; (32db8 <z_impl_k_poll+0x618>)
   32cfe:	f000 fb54 	bl	333aa <printk>
   32d02:	2199      	movs	r1, #153	; 0x99
   32d04:	4640      	mov	r0, r8
   32d06:	f000 fee9 	bl	33adc <assert_post_action>
	event->poller = poller;
   32d0a:	60a6      	str	r6, [r4, #8]
			events_registered += 1;
   32d0c:	f10b 0b01 	add.w	fp, fp, #1
   32d10:	e5cf      	b.n	328b2 <z_impl_k_poll+0x112>
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   32d12:	4c2a      	ldr	r4, [pc, #168]	; (32dbc <z_impl_k_poll+0x61c>)
   32d14:	22ac      	movs	r2, #172	; 0xac
   32d16:	4621      	mov	r1, r4
   32d18:	4827      	ldr	r0, [pc, #156]	; (32db8 <z_impl_k_poll+0x618>)
   32d1a:	f000 fb46 	bl	333aa <printk>
   32d1e:	21ac      	movs	r1, #172	; 0xac
   32d20:	4620      	mov	r0, r4
   32d22:	f000 fedb 	bl	33adc <assert_post_action>
   32d26:	e5ca      	b.n	328be <z_impl_k_poll+0x11e>
   32d28:	f04f 0340 	mov.w	r3, #64	; 0x40
   32d2c:	f3ef 8611 	mrs	r6, BASEPRI
   32d30:	f383 8812 	msr	BASEPRI_MAX, r3
   32d34:	f3bf 8f6f 	isb	sy
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   32d38:	4821      	ldr	r0, [pc, #132]	; (32dc0 <z_impl_k_poll+0x620>)
   32d3a:	f7fc fbf3 	bl	2f524 <z_spin_lock_valid>
   32d3e:	b368      	cbz	r0, 32d9c <z_impl_k_poll+0x5fc>
	z_spin_lock_set_owner(l);
   32d40:	481f      	ldr	r0, [pc, #124]	; (32dc0 <z_impl_k_poll+0x620>)
   32d42:	f7fc fc0f 	bl	2f564 <z_spin_lock_set_owner>
	/*
	 * If we're not polling anymore, it means that at least one event
	 * condition is met, either when looping through the events here or
	 * because one of the events registered has had its state changed.
	 */
	if (!poller->is_polling) {
   32d46:	f899 3060 	ldrb.w	r3, [r9, #96]	; 0x60
   32d4a:	2b00      	cmp	r3, #0
   32d4c:	d031      	beq.n	32db2 <z_impl_k_poll+0x612>
		SYS_PORT_TRACING_FUNC_EXIT(k_poll_api, poll, events, 0);

		return 0;
	}

	poller->is_polling = false;
   32d4e:	2300      	movs	r3, #0
   32d50:	f889 3060 	strb.w	r3, [r9, #96]	; 0x60

	if (K_TIMEOUT_EQ(timeout, K_NO_WAIT)) {
   32d54:	e9dd 3402 	ldrd	r3, r4, [sp, #8]
   32d58:	4323      	orrs	r3, r4
   32d5a:	f000 80ef 	beq.w	32f3c <z_impl_k_poll+0x79c>
		return -EAGAIN;
	}

	static _wait_q_t wait_q = Z_WAIT_Q_INIT(&wait_q);

	int swap_rc = z_pend_curr(&lock, key, &wait_q, timeout);
   32d5e:	4c18      	ldr	r4, [pc, #96]	; (32dc0 <z_impl_k_poll+0x620>)
   32d60:	e9dd 2302 	ldrd	r2, r3, [sp, #8]
   32d64:	e9cd 2300 	strd	r2, r3, [sp]
   32d68:	4a16      	ldr	r2, [pc, #88]	; (32dc4 <z_impl_k_poll+0x624>)
   32d6a:	4631      	mov	r1, r6
   32d6c:	4620      	mov	r0, r4
   32d6e:	f7fe fbc3 	bl	314f8 <z_pend_curr>
   32d72:	4607      	mov	r7, r0
   32d74:	f04f 0340 	mov.w	r3, #64	; 0x40
   32d78:	f3ef 8911 	mrs	r9, BASEPRI
   32d7c:	f383 8812 	msr	BASEPRI_MAX, r3
   32d80:	f3bf 8f6f 	isb	sy
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   32d84:	4620      	mov	r0, r4
   32d86:	f7fc fbcd 	bl	2f524 <z_spin_lock_valid>
   32d8a:	2800      	cmp	r0, #0
   32d8c:	f000 80ec 	beq.w	32f68 <z_impl_k_poll+0x7c8>
	z_spin_lock_set_owner(l);
   32d90:	480b      	ldr	r0, [pc, #44]	; (32dc0 <z_impl_k_poll+0x620>)
   32d92:	f7fc fbe7 	bl	2f564 <z_spin_lock_set_owner>
	 * we've already know the return code (-EAGAIN), and even if they are
	 * added to the list of events that occurred, the user has to check the
	 * return code first, which invalidates the whole list of event states.
	 */
	key = k_spin_lock(&lock);
	clear_event_registrations(events, events_registered, key);
   32d96:	464e      	mov	r6, r9
	while (num_events--) {
   32d98:	465b      	mov	r3, fp
   32d9a:	e118      	b.n	32fce <z_impl_k_poll+0x82e>
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   32d9c:	4c07      	ldr	r4, [pc, #28]	; (32dbc <z_impl_k_poll+0x61c>)
   32d9e:	2281      	movs	r2, #129	; 0x81
   32da0:	4621      	mov	r1, r4
   32da2:	4805      	ldr	r0, [pc, #20]	; (32db8 <z_impl_k_poll+0x618>)
   32da4:	f000 fb01 	bl	333aa <printk>
   32da8:	2181      	movs	r1, #129	; 0x81
   32daa:	4620      	mov	r0, r4
   32dac:	f000 fe96 	bl	33adc <assert_post_action>
   32db0:	e7c6      	b.n	32d40 <z_impl_k_poll+0x5a0>
		clear_event_registrations(events, events_registered, key);
   32db2:	46b0      	mov	r8, r6
	while (num_events--) {
   32db4:	465f      	mov	r7, fp
   32db6:	e02e      	b.n	32e16 <z_impl_k_poll+0x676>
   32db8:	0003bdac 	.word	0x0003bdac
   32dbc:	0003bde8 	.word	0x0003bde8
   32dc0:	200034e0 	.word	0x200034e0
   32dc4:	20000774 	.word	0x20000774
   32dc8:	0003faa0 	.word	0x0003faa0
		__ASSERT(event->sem != NULL, "invalid semaphore\n");
   32dcc:	6923      	ldr	r3, [r4, #16]
   32dce:	2b00      	cmp	r3, #0
   32dd0:	d046      	beq.n	32e60 <z_impl_k_poll+0x6c0>
	return node->next != NULL;
   32dd2:	59eb      	ldr	r3, [r5, r7]
	if (remove_event && sys_dnode_is_linked(&event->_node)) {
   32dd4:	b12b      	cbz	r3, 32de2 <z_impl_k_poll+0x642>
	sys_dnode_t *const prev = node->prev;
   32dd6:	6862      	ldr	r2, [r4, #4]
	prev->next = next;
   32dd8:	6013      	str	r3, [r2, #0]
	next->prev = prev;
   32dda:	605a      	str	r2, [r3, #4]
	node->next = NULL;
   32ddc:	2300      	movs	r3, #0
   32dde:	51eb      	str	r3, [r5, r7]
	node->prev = NULL;
   32de0:	6063      	str	r3, [r4, #4]
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   32de2:	48bb      	ldr	r0, [pc, #748]	; (330d0 <z_impl_k_poll+0x930>)
   32de4:	f7fc fbae 	bl	2f544 <z_spin_unlock_valid>
   32de8:	2800      	cmp	r0, #0
   32dea:	d07d      	beq.n	32ee8 <z_impl_k_poll+0x748>
	__asm__ volatile(
   32dec:	f388 8811 	msr	BASEPRI, r8
   32df0:	f3bf 8f6f 	isb	sy
	__asm__ volatile(
   32df4:	f04f 0340 	mov.w	r3, #64	; 0x40
   32df8:	f3ef 8811 	mrs	r8, BASEPRI
   32dfc:	f383 8812 	msr	BASEPRI_MAX, r3
   32e00:	f3bf 8f6f 	isb	sy
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   32e04:	48b2      	ldr	r0, [pc, #712]	; (330d0 <z_impl_k_poll+0x930>)
   32e06:	f7fc fb8d 	bl	2f524 <z_spin_lock_valid>
   32e0a:	2800      	cmp	r0, #0
   32e0c:	d077      	beq.n	32efe <z_impl_k_poll+0x75e>
	z_spin_lock_set_owner(l);
   32e0e:	48b0      	ldr	r0, [pc, #704]	; (330d0 <z_impl_k_poll+0x930>)
   32e10:	f7fc fba8 	bl	2f564 <z_spin_lock_set_owner>
	while (num_events--) {
   32e14:	464f      	mov	r7, r9
   32e16:	f107 39ff 	add.w	r9, r7, #4294967295
   32e1a:	2f00      	cmp	r7, #0
   32e1c:	d07a      	beq.n	32f14 <z_impl_k_poll+0x774>
		clear_event_registration(&events[num_events]);
   32e1e:	eb09 0489 	add.w	r4, r9, r9, lsl #2
   32e22:	00a7      	lsls	r7, r4, #2
   32e24:	eb05 0484 	add.w	r4, r5, r4, lsl #2
	event->poller = NULL;
   32e28:	2300      	movs	r3, #0
   32e2a:	60a3      	str	r3, [r4, #8]
	switch (event->type) {
   32e2c:	7b63      	ldrb	r3, [r4, #13]
   32e2e:	f003 031f 	and.w	r3, r3, #31
   32e32:	2b08      	cmp	r3, #8
   32e34:	d84d      	bhi.n	32ed2 <z_impl_k_poll+0x732>
   32e36:	a201      	add	r2, pc, #4	; (adr r2, 32e3c <z_impl_k_poll+0x69c>)
   32e38:	f852 f023 	ldr.w	pc, [r2, r3, lsl #2]
   32e3c:	00032de3 	.word	0x00032de3
   32e40:	00032e97 	.word	0x00032e97
   32e44:	00032dcd 	.word	0x00032dcd
   32e48:	00032ed3 	.word	0x00032ed3
   32e4c:	00032e79 	.word	0x00032e79
   32e50:	00032ed3 	.word	0x00032ed3
   32e54:	00032ed3 	.word	0x00032ed3
   32e58:	00032ed3 	.word	0x00032ed3
   32e5c:	00032eb5 	.word	0x00032eb5
		__ASSERT(event->sem != NULL, "invalid semaphore\n");
   32e60:	f8df a274 	ldr.w	sl, [pc, #628]	; 330d8 <z_impl_k_poll+0x938>
   32e64:	22a9      	movs	r2, #169	; 0xa9
   32e66:	4651      	mov	r1, sl
   32e68:	489a      	ldr	r0, [pc, #616]	; (330d4 <z_impl_k_poll+0x934>)
   32e6a:	f000 fa9e 	bl	333aa <printk>
   32e6e:	21a9      	movs	r1, #169	; 0xa9
   32e70:	4650      	mov	r0, sl
   32e72:	f000 fe33 	bl	33adc <assert_post_action>
   32e76:	e7ac      	b.n	32dd2 <z_impl_k_poll+0x632>
		__ASSERT(event->queue != NULL, "invalid queue\n");
   32e78:	6923      	ldr	r3, [r4, #16]
   32e7a:	2b00      	cmp	r3, #0
   32e7c:	d1a9      	bne.n	32dd2 <z_impl_k_poll+0x632>
   32e7e:	f8df a258 	ldr.w	sl, [pc, #600]	; 330d8 <z_impl_k_poll+0x938>
   32e82:	22ad      	movs	r2, #173	; 0xad
   32e84:	4651      	mov	r1, sl
   32e86:	4893      	ldr	r0, [pc, #588]	; (330d4 <z_impl_k_poll+0x934>)
   32e88:	f000 fa8f 	bl	333aa <printk>
   32e8c:	21ad      	movs	r1, #173	; 0xad
   32e8e:	4650      	mov	r0, sl
   32e90:	f000 fe24 	bl	33adc <assert_post_action>
   32e94:	e79d      	b.n	32dd2 <z_impl_k_poll+0x632>
		__ASSERT(event->signal != NULL, "invalid poll signal\n");
   32e96:	6923      	ldr	r3, [r4, #16]
   32e98:	2b00      	cmp	r3, #0
   32e9a:	d19a      	bne.n	32dd2 <z_impl_k_poll+0x632>
   32e9c:	f8df a238 	ldr.w	sl, [pc, #568]	; 330d8 <z_impl_k_poll+0x938>
   32ea0:	22b1      	movs	r2, #177	; 0xb1
   32ea2:	4651      	mov	r1, sl
   32ea4:	488b      	ldr	r0, [pc, #556]	; (330d4 <z_impl_k_poll+0x934>)
   32ea6:	f000 fa80 	bl	333aa <printk>
   32eaa:	21b1      	movs	r1, #177	; 0xb1
   32eac:	4650      	mov	r0, sl
   32eae:	f000 fe15 	bl	33adc <assert_post_action>
   32eb2:	e78e      	b.n	32dd2 <z_impl_k_poll+0x632>
		__ASSERT(event->msgq != NULL, "invalid message queue\n");
   32eb4:	6923      	ldr	r3, [r4, #16]
   32eb6:	2b00      	cmp	r3, #0
   32eb8:	d18b      	bne.n	32dd2 <z_impl_k_poll+0x632>
   32eba:	f8df a21c 	ldr.w	sl, [pc, #540]	; 330d8 <z_impl_k_poll+0x938>
   32ebe:	22b5      	movs	r2, #181	; 0xb5
   32ec0:	4651      	mov	r1, sl
   32ec2:	4884      	ldr	r0, [pc, #528]	; (330d4 <z_impl_k_poll+0x934>)
   32ec4:	f000 fa71 	bl	333aa <printk>
   32ec8:	21b5      	movs	r1, #181	; 0xb5
   32eca:	4650      	mov	r0, sl
   32ecc:	f000 fe06 	bl	33adc <assert_post_action>
   32ed0:	e77f      	b.n	32dd2 <z_impl_k_poll+0x632>
		__ASSERT(false, "invalid event type\n");
   32ed2:	4c81      	ldr	r4, [pc, #516]	; (330d8 <z_impl_k_poll+0x938>)
   32ed4:	22bc      	movs	r2, #188	; 0xbc
   32ed6:	4621      	mov	r1, r4
   32ed8:	487e      	ldr	r0, [pc, #504]	; (330d4 <z_impl_k_poll+0x934>)
   32eda:	f000 fa66 	bl	333aa <printk>
   32ede:	21bc      	movs	r1, #188	; 0xbc
   32ee0:	4620      	mov	r0, r4
   32ee2:	f000 fdfb 	bl	33adc <assert_post_action>
	if (remove_event && sys_dnode_is_linked(&event->_node)) {
   32ee6:	e77c      	b.n	32de2 <z_impl_k_poll+0x642>
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   32ee8:	4c7c      	ldr	r4, [pc, #496]	; (330dc <z_impl_k_poll+0x93c>)
   32eea:	22ac      	movs	r2, #172	; 0xac
   32eec:	4621      	mov	r1, r4
   32eee:	4879      	ldr	r0, [pc, #484]	; (330d4 <z_impl_k_poll+0x934>)
   32ef0:	f000 fa5b 	bl	333aa <printk>
   32ef4:	21ac      	movs	r1, #172	; 0xac
   32ef6:	4620      	mov	r0, r4
   32ef8:	f000 fdf0 	bl	33adc <assert_post_action>
   32efc:	e776      	b.n	32dec <z_impl_k_poll+0x64c>
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   32efe:	4c77      	ldr	r4, [pc, #476]	; (330dc <z_impl_k_poll+0x93c>)
   32f00:	2281      	movs	r2, #129	; 0x81
   32f02:	4621      	mov	r1, r4
   32f04:	4873      	ldr	r0, [pc, #460]	; (330d4 <z_impl_k_poll+0x934>)
   32f06:	f000 fa50 	bl	333aa <printk>
   32f0a:	2181      	movs	r1, #129	; 0x81
   32f0c:	4620      	mov	r0, r4
   32f0e:	f000 fde5 	bl	33adc <assert_post_action>
   32f12:	e77c      	b.n	32e0e <z_impl_k_poll+0x66e>
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   32f14:	486e      	ldr	r0, [pc, #440]	; (330d0 <z_impl_k_poll+0x930>)
   32f16:	f7fc fb15 	bl	2f544 <z_spin_unlock_valid>
   32f1a:	b120      	cbz	r0, 32f26 <z_impl_k_poll+0x786>
	__asm__ volatile(
   32f1c:	f386 8811 	msr	BASEPRI, r6
   32f20:	f3bf 8f6f 	isb	sy
		return 0;
   32f24:	e0e4      	b.n	330f0 <z_impl_k_poll+0x950>
   32f26:	4c6d      	ldr	r4, [pc, #436]	; (330dc <z_impl_k_poll+0x93c>)
   32f28:	22ac      	movs	r2, #172	; 0xac
   32f2a:	4621      	mov	r1, r4
   32f2c:	4869      	ldr	r0, [pc, #420]	; (330d4 <z_impl_k_poll+0x934>)
   32f2e:	f000 fa3c 	bl	333aa <printk>
   32f32:	21ac      	movs	r1, #172	; 0xac
   32f34:	4620      	mov	r0, r4
   32f36:	f000 fdd1 	bl	33adc <assert_post_action>
   32f3a:	e7ef      	b.n	32f1c <z_impl_k_poll+0x77c>
   32f3c:	4864      	ldr	r0, [pc, #400]	; (330d0 <z_impl_k_poll+0x930>)
   32f3e:	f7fc fb01 	bl	2f544 <z_spin_unlock_valid>
   32f42:	b130      	cbz	r0, 32f52 <z_impl_k_poll+0x7b2>
   32f44:	f386 8811 	msr	BASEPRI, r6
   32f48:	f3bf 8f6f 	isb	sy
		return -EAGAIN;
   32f4c:	f06f 070a 	mvn.w	r7, #10
   32f50:	e0ce      	b.n	330f0 <z_impl_k_poll+0x950>
   32f52:	4c62      	ldr	r4, [pc, #392]	; (330dc <z_impl_k_poll+0x93c>)
   32f54:	22ac      	movs	r2, #172	; 0xac
   32f56:	4621      	mov	r1, r4
   32f58:	485e      	ldr	r0, [pc, #376]	; (330d4 <z_impl_k_poll+0x934>)
   32f5a:	f000 fa26 	bl	333aa <printk>
   32f5e:	21ac      	movs	r1, #172	; 0xac
   32f60:	4620      	mov	r0, r4
   32f62:	f000 fdbb 	bl	33adc <assert_post_action>
   32f66:	e7ed      	b.n	32f44 <z_impl_k_poll+0x7a4>
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   32f68:	4c5c      	ldr	r4, [pc, #368]	; (330dc <z_impl_k_poll+0x93c>)
   32f6a:	2281      	movs	r2, #129	; 0x81
   32f6c:	4621      	mov	r1, r4
   32f6e:	4859      	ldr	r0, [pc, #356]	; (330d4 <z_impl_k_poll+0x934>)
   32f70:	f000 fa1b 	bl	333aa <printk>
   32f74:	2181      	movs	r1, #129	; 0x81
   32f76:	4620      	mov	r0, r4
   32f78:	f000 fdb0 	bl	33adc <assert_post_action>
   32f7c:	e708      	b.n	32d90 <z_impl_k_poll+0x5f0>
		__ASSERT(event->sem != NULL, "invalid semaphore\n");
   32f7e:	6923      	ldr	r3, [r4, #16]
   32f80:	2b00      	cmp	r3, #0
   32f82:	d04b      	beq.n	3301c <z_impl_k_poll+0x87c>
	return node->next != NULL;
   32f84:	f855 300a 	ldr.w	r3, [r5, sl]
	if (remove_event && sys_dnode_is_linked(&event->_node)) {
   32f88:	b133      	cbz	r3, 32f98 <z_impl_k_poll+0x7f8>
	sys_dnode_t *const prev = node->prev;
   32f8a:	6862      	ldr	r2, [r4, #4]
	prev->next = next;
   32f8c:	6013      	str	r3, [r2, #0]
	next->prev = prev;
   32f8e:	605a      	str	r2, [r3, #4]
	node->next = NULL;
   32f90:	2300      	movs	r3, #0
   32f92:	f845 300a 	str.w	r3, [r5, sl]
	node->prev = NULL;
   32f96:	6063      	str	r3, [r4, #4]
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   32f98:	484d      	ldr	r0, [pc, #308]	; (330d0 <z_impl_k_poll+0x930>)
   32f9a:	f7fc fad3 	bl	2f544 <z_spin_unlock_valid>
   32f9e:	2800      	cmp	r0, #0
   32fa0:	f000 8080 	beq.w	330a4 <z_impl_k_poll+0x904>
   32fa4:	f386 8811 	msr	BASEPRI, r6
   32fa8:	f3bf 8f6f 	isb	sy
	__asm__ volatile(
   32fac:	f04f 0340 	mov.w	r3, #64	; 0x40
   32fb0:	f3ef 8611 	mrs	r6, BASEPRI
   32fb4:	f383 8812 	msr	BASEPRI_MAX, r3
   32fb8:	f3bf 8f6f 	isb	sy
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   32fbc:	4844      	ldr	r0, [pc, #272]	; (330d0 <z_impl_k_poll+0x930>)
   32fbe:	f7fc fab1 	bl	2f524 <z_spin_lock_valid>
   32fc2:	2800      	cmp	r0, #0
   32fc4:	d079      	beq.n	330ba <z_impl_k_poll+0x91a>
	z_spin_lock_set_owner(l);
   32fc6:	4842      	ldr	r0, [pc, #264]	; (330d0 <z_impl_k_poll+0x930>)
   32fc8:	f7fc facc 	bl	2f564 <z_spin_lock_set_owner>
	while (num_events--) {
   32fcc:	4643      	mov	r3, r8
   32fce:	f103 38ff 	add.w	r8, r3, #4294967295
   32fd2:	2b00      	cmp	r3, #0
   32fd4:	f000 8084 	beq.w	330e0 <z_impl_k_poll+0x940>
		clear_event_registration(&events[num_events]);
   32fd8:	eb08 0488 	add.w	r4, r8, r8, lsl #2
   32fdc:	ea4f 0a84 	mov.w	sl, r4, lsl #2
   32fe0:	eb05 0484 	add.w	r4, r5, r4, lsl #2
	event->poller = NULL;
   32fe4:	2300      	movs	r3, #0
   32fe6:	60a3      	str	r3, [r4, #8]
	switch (event->type) {
   32fe8:	7b63      	ldrb	r3, [r4, #13]
   32fea:	f003 031f 	and.w	r3, r3, #31
   32fee:	2b08      	cmp	r3, #8
   32ff0:	d84d      	bhi.n	3308e <z_impl_k_poll+0x8ee>
   32ff2:	a201      	add	r2, pc, #4	; (adr r2, 32ff8 <z_impl_k_poll+0x858>)
   32ff4:	f852 f023 	ldr.w	pc, [r2, r3, lsl #2]
   32ff8:	00032f99 	.word	0x00032f99
   32ffc:	00033053 	.word	0x00033053
   33000:	00032f7f 	.word	0x00032f7f
   33004:	0003308f 	.word	0x0003308f
   33008:	00033035 	.word	0x00033035
   3300c:	0003308f 	.word	0x0003308f
   33010:	0003308f 	.word	0x0003308f
   33014:	0003308f 	.word	0x0003308f
   33018:	00033071 	.word	0x00033071
		__ASSERT(event->sem != NULL, "invalid semaphore\n");
   3301c:	f8df b0b8 	ldr.w	fp, [pc, #184]	; 330d8 <z_impl_k_poll+0x938>
   33020:	22a9      	movs	r2, #169	; 0xa9
   33022:	4659      	mov	r1, fp
   33024:	482b      	ldr	r0, [pc, #172]	; (330d4 <z_impl_k_poll+0x934>)
   33026:	f000 f9c0 	bl	333aa <printk>
   3302a:	21a9      	movs	r1, #169	; 0xa9
   3302c:	4658      	mov	r0, fp
   3302e:	f000 fd55 	bl	33adc <assert_post_action>
   33032:	e7a7      	b.n	32f84 <z_impl_k_poll+0x7e4>
		__ASSERT(event->queue != NULL, "invalid queue\n");
   33034:	6923      	ldr	r3, [r4, #16]
   33036:	2b00      	cmp	r3, #0
   33038:	d1a4      	bne.n	32f84 <z_impl_k_poll+0x7e4>
   3303a:	f8df b09c 	ldr.w	fp, [pc, #156]	; 330d8 <z_impl_k_poll+0x938>
   3303e:	22ad      	movs	r2, #173	; 0xad
   33040:	4659      	mov	r1, fp
   33042:	4824      	ldr	r0, [pc, #144]	; (330d4 <z_impl_k_poll+0x934>)
   33044:	f000 f9b1 	bl	333aa <printk>
   33048:	21ad      	movs	r1, #173	; 0xad
   3304a:	4658      	mov	r0, fp
   3304c:	f000 fd46 	bl	33adc <assert_post_action>
   33050:	e798      	b.n	32f84 <z_impl_k_poll+0x7e4>
		__ASSERT(event->signal != NULL, "invalid poll signal\n");
   33052:	6923      	ldr	r3, [r4, #16]
   33054:	2b00      	cmp	r3, #0
   33056:	d195      	bne.n	32f84 <z_impl_k_poll+0x7e4>
   33058:	f8df b07c 	ldr.w	fp, [pc, #124]	; 330d8 <z_impl_k_poll+0x938>
   3305c:	22b1      	movs	r2, #177	; 0xb1
   3305e:	4659      	mov	r1, fp
   33060:	481c      	ldr	r0, [pc, #112]	; (330d4 <z_impl_k_poll+0x934>)
   33062:	f000 f9a2 	bl	333aa <printk>
   33066:	21b1      	movs	r1, #177	; 0xb1
   33068:	4658      	mov	r0, fp
   3306a:	f000 fd37 	bl	33adc <assert_post_action>
   3306e:	e789      	b.n	32f84 <z_impl_k_poll+0x7e4>
		__ASSERT(event->msgq != NULL, "invalid message queue\n");
   33070:	6923      	ldr	r3, [r4, #16]
   33072:	2b00      	cmp	r3, #0
   33074:	d186      	bne.n	32f84 <z_impl_k_poll+0x7e4>
   33076:	f8df b060 	ldr.w	fp, [pc, #96]	; 330d8 <z_impl_k_poll+0x938>
   3307a:	22b5      	movs	r2, #181	; 0xb5
   3307c:	4659      	mov	r1, fp
   3307e:	4815      	ldr	r0, [pc, #84]	; (330d4 <z_impl_k_poll+0x934>)
   33080:	f000 f993 	bl	333aa <printk>
   33084:	21b5      	movs	r1, #181	; 0xb5
   33086:	4658      	mov	r0, fp
   33088:	f000 fd28 	bl	33adc <assert_post_action>
   3308c:	e77a      	b.n	32f84 <z_impl_k_poll+0x7e4>
		__ASSERT(false, "invalid event type\n");
   3308e:	4c12      	ldr	r4, [pc, #72]	; (330d8 <z_impl_k_poll+0x938>)
   33090:	22bc      	movs	r2, #188	; 0xbc
   33092:	4621      	mov	r1, r4
   33094:	480f      	ldr	r0, [pc, #60]	; (330d4 <z_impl_k_poll+0x934>)
   33096:	f000 f988 	bl	333aa <printk>
   3309a:	21bc      	movs	r1, #188	; 0xbc
   3309c:	4620      	mov	r0, r4
   3309e:	f000 fd1d 	bl	33adc <assert_post_action>
	if (remove_event && sys_dnode_is_linked(&event->_node)) {
   330a2:	e779      	b.n	32f98 <z_impl_k_poll+0x7f8>
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   330a4:	4c0d      	ldr	r4, [pc, #52]	; (330dc <z_impl_k_poll+0x93c>)
   330a6:	22ac      	movs	r2, #172	; 0xac
   330a8:	4621      	mov	r1, r4
   330aa:	480a      	ldr	r0, [pc, #40]	; (330d4 <z_impl_k_poll+0x934>)
   330ac:	f000 f97d 	bl	333aa <printk>
   330b0:	21ac      	movs	r1, #172	; 0xac
   330b2:	4620      	mov	r0, r4
   330b4:	f000 fd12 	bl	33adc <assert_post_action>
   330b8:	e774      	b.n	32fa4 <z_impl_k_poll+0x804>
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   330ba:	4c08      	ldr	r4, [pc, #32]	; (330dc <z_impl_k_poll+0x93c>)
   330bc:	2281      	movs	r2, #129	; 0x81
   330be:	4621      	mov	r1, r4
   330c0:	4804      	ldr	r0, [pc, #16]	; (330d4 <z_impl_k_poll+0x934>)
   330c2:	f000 f972 	bl	333aa <printk>
   330c6:	2181      	movs	r1, #129	; 0x81
   330c8:	4620      	mov	r0, r4
   330ca:	f000 fd07 	bl	33adc <assert_post_action>
   330ce:	e77a      	b.n	32fc6 <z_impl_k_poll+0x826>
   330d0:	200034e0 	.word	0x200034e0
   330d4:	0003bdac 	.word	0x0003bdac
   330d8:	0003faa0 	.word	0x0003faa0
   330dc:	0003bde8 	.word	0x0003bde8
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   330e0:	480b      	ldr	r0, [pc, #44]	; (33110 <z_impl_k_poll+0x970>)
   330e2:	f7fc fa2f 	bl	2f544 <z_spin_unlock_valid>
   330e6:	b138      	cbz	r0, 330f8 <z_impl_k_poll+0x958>
	__asm__ volatile(
   330e8:	f389 8811 	msr	BASEPRI, r9
   330ec:	f3bf 8f6f 	isb	sy
	k_spin_unlock(&lock, key);

	SYS_PORT_TRACING_FUNC_EXIT(k_poll_api, poll, events, swap_rc);

	return swap_rc;
}
   330f0:	4638      	mov	r0, r7
   330f2:	b00d      	add	sp, #52	; 0x34
   330f4:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
   330f8:	4c06      	ldr	r4, [pc, #24]	; (33114 <z_impl_k_poll+0x974>)
   330fa:	22ac      	movs	r2, #172	; 0xac
   330fc:	4621      	mov	r1, r4
   330fe:	4806      	ldr	r0, [pc, #24]	; (33118 <z_impl_k_poll+0x978>)
   33100:	f000 f953 	bl	333aa <printk>
   33104:	21ac      	movs	r1, #172	; 0xac
   33106:	4620      	mov	r0, r4
   33108:	f000 fce8 	bl	33adc <assert_post_action>
   3310c:	e7ec      	b.n	330e8 <z_impl_k_poll+0x948>
   3310e:	bf00      	nop
   33110:	200034e0 	.word	0x200034e0
   33114:	0003bde8 	.word	0x0003bde8
   33118:	0003bdac 	.word	0x0003bdac

0003311c <z_impl_k_poll_signal_raise>:
}
#include <syscalls/k_poll_signal_check_mrsh.c>
#endif

int z_impl_k_poll_signal_raise(struct k_poll_signal *sig, int result)
{
   3311c:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
   3311e:	4604      	mov	r4, r0
   33120:	460d      	mov	r5, r1
	__asm__ volatile(
   33122:	f04f 0340 	mov.w	r3, #64	; 0x40
   33126:	f3ef 8611 	mrs	r6, BASEPRI
   3312a:	f383 8812 	msr	BASEPRI_MAX, r3
   3312e:	f3bf 8f6f 	isb	sy
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   33132:	481f      	ldr	r0, [pc, #124]	; (331b0 <z_impl_k_poll_signal_raise+0x94>)
   33134:	f7fc f9f6 	bl	2f524 <z_spin_lock_valid>
   33138:	b1d0      	cbz	r0, 33170 <z_impl_k_poll_signal_raise+0x54>
	z_spin_lock_set_owner(l);
   3313a:	481d      	ldr	r0, [pc, #116]	; (331b0 <z_impl_k_poll_signal_raise+0x94>)
   3313c:	f7fc fa12 	bl	2f564 <z_spin_lock_set_owner>
	k_spinlock_key_t key = k_spin_lock(&lock);
	struct k_poll_event *poll_event;

	sig->result = result;
   33140:	60e5      	str	r5, [r4, #12]
	sig->signaled = 1U;
   33142:	2301      	movs	r3, #1
   33144:	60a3      	str	r3, [r4, #8]
	return list->head == list;
   33146:	6820      	ldr	r0, [r4, #0]

static inline sys_dnode_t *sys_dlist_get(sys_dlist_t *list)
{
	sys_dnode_t *node = NULL;

	if (!sys_dlist_is_empty(list)) {
   33148:	4284      	cmp	r4, r0
   3314a:	d01c      	beq.n	33186 <z_impl_k_poll_signal_raise+0x6a>
	sys_dnode_t *const prev = node->prev;
   3314c:	6842      	ldr	r2, [r0, #4]
	sys_dnode_t *const next = node->next;
   3314e:	6803      	ldr	r3, [r0, #0]
	prev->next = next;
   33150:	6013      	str	r3, [r2, #0]
	next->prev = prev;
   33152:	605a      	str	r2, [r3, #4]
	node->next = NULL;
   33154:	2300      	movs	r3, #0
   33156:	6003      	str	r3, [r0, #0]
	node->prev = NULL;
   33158:	6043      	str	r3, [r0, #4]

	poll_event = (struct k_poll_event *)sys_dlist_get(&sig->poll_events);
	if (poll_event == NULL) {
   3315a:	b1a0      	cbz	r0, 33186 <z_impl_k_poll_signal_raise+0x6a>
		SYS_PORT_TRACING_FUNC(k_poll_api, signal_raise, sig, 0);

		return 0;
	}

	int rc = signal_poll_event(poll_event, K_POLL_STATE_SIGNALED);
   3315c:	2101      	movs	r1, #1
   3315e:	f008 f966 	bl	3b42e <signal_poll_event>
   33162:	4604      	mov	r4, r0

	SYS_PORT_TRACING_FUNC(k_poll_api, signal_raise, sig, rc);

	z_reschedule(&lock, key);
   33164:	4631      	mov	r1, r6
   33166:	4812      	ldr	r0, [pc, #72]	; (331b0 <z_impl_k_poll_signal_raise+0x94>)
   33168:	f7fd fdc8 	bl	30cfc <z_reschedule>
	return rc;
}
   3316c:	4620      	mov	r0, r4
   3316e:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
	__ASSERT(z_spin_lock_valid(l), "Recursive spinlock %p", l);
   33170:	4f10      	ldr	r7, [pc, #64]	; (331b4 <z_impl_k_poll_signal_raise+0x98>)
   33172:	2281      	movs	r2, #129	; 0x81
   33174:	4639      	mov	r1, r7
   33176:	4810      	ldr	r0, [pc, #64]	; (331b8 <z_impl_k_poll_signal_raise+0x9c>)
   33178:	f000 f917 	bl	333aa <printk>
   3317c:	2181      	movs	r1, #129	; 0x81
   3317e:	4638      	mov	r0, r7
   33180:	f000 fcac 	bl	33adc <assert_post_action>
   33184:	e7d9      	b.n	3313a <z_impl_k_poll_signal_raise+0x1e>
	__ASSERT(z_spin_unlock_valid(l), "Not my spinlock %p", l);
   33186:	480a      	ldr	r0, [pc, #40]	; (331b0 <z_impl_k_poll_signal_raise+0x94>)
   33188:	f7fc f9dc 	bl	2f544 <z_spin_unlock_valid>
   3318c:	b128      	cbz	r0, 3319a <z_impl_k_poll_signal_raise+0x7e>
	__asm__ volatile(
   3318e:	f386 8811 	msr	BASEPRI, r6
   33192:	f3bf 8f6f 	isb	sy
		return 0;
   33196:	2400      	movs	r4, #0
   33198:	e7e8      	b.n	3316c <z_impl_k_poll_signal_raise+0x50>
   3319a:	4c06      	ldr	r4, [pc, #24]	; (331b4 <z_impl_k_poll_signal_raise+0x98>)
   3319c:	22ac      	movs	r2, #172	; 0xac
   3319e:	4621      	mov	r1, r4
   331a0:	4805      	ldr	r0, [pc, #20]	; (331b8 <z_impl_k_poll_signal_raise+0x9c>)
   331a2:	f000 f902 	bl	333aa <printk>
   331a6:	21ac      	movs	r1, #172	; 0xac
   331a8:	4620      	mov	r0, r4
   331aa:	f000 fc97 	bl	33adc <assert_post_action>
   331ae:	e7ee      	b.n	3318e <z_impl_k_poll_signal_raise+0x72>
   331b0:	200034e0 	.word	0x200034e0
   331b4:	0003bde8 	.word	0x0003bde8
   331b8:	0003bdac 	.word	0x0003bdac

000331bc <z_heap_aligned_alloc>:
#include <string.h>
#include <sys/math_extras.h>
#include <sys/util.h>

static void *z_heap_aligned_alloc(struct k_heap *heap, size_t align, size_t size)
{
   331bc:	b570      	push	{r4, r5, r6, lr}
   331be:	b082      	sub	sp, #8
   331c0:	4606      	mov	r6, r0
   331c2:	460c      	mov	r4, r1
	return __builtin_add_overflow(a, b, result);
}

static inline bool size_add_overflow(size_t a, size_t b, size_t *result)
{
	return __builtin_add_overflow(a, b, result);
   331c4:	2100      	movs	r1, #0
   331c6:	2304      	movs	r3, #4
   331c8:	18d2      	adds	r2, r2, r3
   331ca:	d21c      	bcs.n	33206 <z_heap_aligned_alloc+0x4a>
	 * Adjust the size to make room for our heap reference.
	 * Merge a rewind bit with align value (see sys_heap_aligned_alloc()).
	 * This allows for storing the heap pointer right below the aligned
	 * boundary without wasting any memory.
	 */
	if (size_add_overflow(size, sizeof(heap_ref), &size)) {
   331cc:	b9e9      	cbnz	r1, 3320a <z_heap_aligned_alloc+0x4e>
		return NULL;
	}
	__align = align | sizeof(heap_ref);

	mem = k_heap_aligned_alloc(heap, __align, size, K_NO_WAIT);
   331ce:	2000      	movs	r0, #0
   331d0:	2100      	movs	r1, #0
   331d2:	e9cd 0100 	strd	r0, r1, [sp]
   331d6:	f044 0104 	orr.w	r1, r4, #4
   331da:	4630      	mov	r0, r6
   331dc:	f7fb ffc2 	bl	2f164 <k_heap_aligned_alloc>
	if (mem == NULL) {
   331e0:	4605      	mov	r5, r0
   331e2:	b198      	cbz	r0, 3320c <z_heap_aligned_alloc+0x50>
		return NULL;
	}

	heap_ref = mem;
	*heap_ref = heap;
   331e4:	f845 6b04 	str.w	r6, [r5], #4
	mem = ++heap_ref;
	__ASSERT(align == 0 || ((uintptr_t)mem & (align - 1)) == 0,
   331e8:	b184      	cbz	r4, 3320c <z_heap_aligned_alloc+0x50>
   331ea:	3c01      	subs	r4, #1
   331ec:	4225      	tst	r5, r4
   331ee:	d00d      	beq.n	3320c <z_heap_aligned_alloc+0x50>
   331f0:	4c08      	ldr	r4, [pc, #32]	; (33214 <z_heap_aligned_alloc+0x58>)
   331f2:	2225      	movs	r2, #37	; 0x25
   331f4:	4621      	mov	r1, r4
   331f6:	4808      	ldr	r0, [pc, #32]	; (33218 <z_heap_aligned_alloc+0x5c>)
   331f8:	f000 f8d7 	bl	333aa <printk>
   331fc:	2125      	movs	r1, #37	; 0x25
   331fe:	4620      	mov	r0, r4
   33200:	f000 fc6c 	bl	33adc <assert_post_action>
   33204:	e002      	b.n	3320c <z_heap_aligned_alloc+0x50>
   33206:	2101      	movs	r1, #1
   33208:	e7e0      	b.n	331cc <z_heap_aligned_alloc+0x10>
		return NULL;
   3320a:	2500      	movs	r5, #0
		 "misaligned memory at %p (align = %zu)", mem, align);

	return mem;
}
   3320c:	4628      	mov	r0, r5
   3320e:	b002      	add	sp, #8
   33210:	bd70      	pop	{r4, r5, r6, pc}
   33212:	bf00      	nop
   33214:	0003fac4 	.word	0x0003fac4
   33218:	0003bdac 	.word	0x0003bdac

0003321c <z_thread_aligned_alloc>:
#else
#define _SYSTEM_HEAP	NULL
#endif

void *z_thread_aligned_alloc(size_t align, size_t size)
{
   3321c:	b538      	push	{r3, r4, r5, lr}
   3321e:	4604      	mov	r4, r0
   33220:	460d      	mov	r5, r1
	void *ret;
	struct k_heap *heap;

	if (k_is_in_isr()) {
   33222:	f007 ff86 	bl	3b132 <k_is_in_isr>
   33226:	b948      	cbnz	r0, 3323c <z_thread_aligned_alloc+0x20>
		heap = _SYSTEM_HEAP;
	} else {
		heap = _current->resource_pool;
   33228:	4b05      	ldr	r3, [pc, #20]	; (33240 <z_thread_aligned_alloc+0x24>)
   3322a:	689b      	ldr	r3, [r3, #8]
   3322c:	f8d3 00a8 	ldr.w	r0, [r3, #168]	; 0xa8
	}

	if (heap != NULL) {
   33230:	b118      	cbz	r0, 3323a <z_thread_aligned_alloc+0x1e>
		ret = z_heap_aligned_alloc(heap, align, size);
   33232:	462a      	mov	r2, r5
   33234:	4621      	mov	r1, r4
   33236:	f7ff ffc1 	bl	331bc <z_heap_aligned_alloc>
	} else {
		ret = NULL;
	}

	return ret;
}
   3323a:	bd38      	pop	{r3, r4, r5, pc}
		ret = NULL;
   3323c:	2000      	movs	r0, #0
	return ret;
   3323e:	e7fc      	b.n	3323a <z_thread_aligned_alloc+0x1e>
   33240:	20003480 	.word	0x20003480

00033244 <boot_banner>:
#define BOOT_DELAY_BANNER ""
#endif

#if defined(CONFIG_BOOT_DELAY) || CONFIG_BOOT_DELAY > 0
void boot_banner(void)
{
   33244:	b508      	push	{r3, lr}
		k_busy_wait(CONFIG_BOOT_DELAY * USEC_PER_MSEC);
	}

#if defined(CONFIG_BOOT_BANNER)
#ifdef BUILD_VERSION
	printk("*** Booting Zephyr OS build %s %s ***\n",
   33246:	4a03      	ldr	r2, [pc, #12]	; (33254 <boot_banner+0x10>)
   33248:	4903      	ldr	r1, [pc, #12]	; (33258 <boot_banner+0x14>)
   3324a:	4804      	ldr	r0, [pc, #16]	; (3325c <boot_banner+0x18>)
   3324c:	f000 f8ad 	bl	333aa <printk>
#else
	printk("*** Booting Zephyr OS version %s %s ***\n",
	       KERNEL_VERSION_STRING, BOOT_DELAY_BANNER);
#endif
#endif
}
   33250:	bd08      	pop	{r3, pc}
   33252:	bf00      	nop
   33254:	0003c938 	.word	0x0003c938
   33258:	0003fae8 	.word	0x0003fae8
   3325c:	0003faf4 	.word	0x0003faf4

00033260 <app_led_cb>:
{
   33260:	b508      	push	{r3, lr}
   33262:	4601      	mov	r1, r0
	dk_set_led(USER_LED, led_state);
   33264:	2002      	movs	r0, #2
   33266:	f7f8 fe5b 	bl	2bf20 <dk_set_led>
}
   3326a:	bd08      	pop	{r3, pc}

0003326c <char2hex>:
#include <errno.h>
#include <sys/util.h>

int char2hex(char c, uint8_t *x)
{
	if (c >= '0' && c <= '9') {
   3326c:	f1a0 0330 	sub.w	r3, r0, #48	; 0x30
   33270:	b2db      	uxtb	r3, r3
   33272:	2b09      	cmp	r3, #9
   33274:	d802      	bhi.n	3327c <char2hex+0x10>
		*x = c - '0';
   33276:	700b      	strb	r3, [r1, #0]
		*x = c - 'A' + 10;
	} else {
		return -EINVAL;
	}

	return 0;
   33278:	2000      	movs	r0, #0
   3327a:	4770      	bx	lr
	} else if (c >= 'a' && c <= 'f') {
   3327c:	f1a0 0361 	sub.w	r3, r0, #97	; 0x61
   33280:	b2db      	uxtb	r3, r3
   33282:	2b05      	cmp	r3, #5
   33284:	d803      	bhi.n	3328e <char2hex+0x22>
		*x = c - 'a' + 10;
   33286:	3857      	subs	r0, #87	; 0x57
   33288:	7008      	strb	r0, [r1, #0]
	return 0;
   3328a:	2000      	movs	r0, #0
   3328c:	4770      	bx	lr
	} else if (c >= 'A' && c <= 'F') {
   3328e:	f1a0 0341 	sub.w	r3, r0, #65	; 0x41
   33292:	b2db      	uxtb	r3, r3
   33294:	2b05      	cmp	r3, #5
   33296:	d803      	bhi.n	332a0 <char2hex+0x34>
		*x = c - 'A' + 10;
   33298:	3837      	subs	r0, #55	; 0x37
   3329a:	7008      	strb	r0, [r1, #0]
	return 0;
   3329c:	2000      	movs	r0, #0
   3329e:	4770      	bx	lr
		return -EINVAL;
   332a0:	f06f 0015 	mvn.w	r0, #21
}
   332a4:	4770      	bx	lr

000332a6 <hex2bin>:
	hex[2 * buflen] = '\0';
	return 2 * buflen;
}

size_t hex2bin(const char *hex, size_t hexlen, uint8_t *buf, size_t buflen)
{
   332a6:	e92d 43f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, lr}
   332aa:	b083      	sub	sp, #12
   332ac:	4616      	mov	r6, r2
	uint8_t dec;

	if (buflen < hexlen / 2 + hexlen % 2) {
   332ae:	f001 0201 	and.w	r2, r1, #1
   332b2:	eb02 0851 	add.w	r8, r2, r1, lsr #1
   332b6:	4598      	cmp	r8, r3
   332b8:	d832      	bhi.n	33320 <hex2bin+0x7a>
   332ba:	4607      	mov	r7, r0
   332bc:	ea4f 0951 	mov.w	r9, r1, lsr #1
		return 0;
	}

	/* if hexlen is uneven, insert leading zero nibble */
	if (hexlen % 2) {
   332c0:	b90a      	cbnz	r2, 332c6 <hex2bin+0x20>
		hex++;
		buf++;
	}

	/* regular hex conversion */
	for (size_t i = 0; i < hexlen / 2; i++) {
   332c2:	2400      	movs	r4, #0
   332c4:	e012      	b.n	332ec <hex2bin+0x46>
		if (char2hex(hex[0], &dec) < 0) {
   332c6:	f10d 0107 	add.w	r1, sp, #7
   332ca:	7800      	ldrb	r0, [r0, #0]
   332cc:	f7ff ffce 	bl	3326c <char2hex>
   332d0:	2800      	cmp	r0, #0
   332d2:	db2b      	blt.n	3332c <hex2bin+0x86>
		buf[0] = dec;
   332d4:	f89d 3007 	ldrb.w	r3, [sp, #7]
   332d8:	f806 3b01 	strb.w	r3, [r6], #1
		hex++;
   332dc:	3701      	adds	r7, #1
		buf++;
   332de:	e7f0      	b.n	332c2 <hex2bin+0x1c>
		buf[i] = dec << 4;

		if (char2hex(hex[2 * i + 1], &dec) < 0) {
			return 0;
		}
		buf[i] += dec;
   332e0:	5d33      	ldrb	r3, [r6, r4]
   332e2:	f89d 2007 	ldrb.w	r2, [sp, #7]
   332e6:	4413      	add	r3, r2
   332e8:	5533      	strb	r3, [r6, r4]
	for (size_t i = 0; i < hexlen / 2; i++) {
   332ea:	3401      	adds	r4, #1
   332ec:	45a1      	cmp	r9, r4
   332ee:	d919      	bls.n	33324 <hex2bin+0x7e>
		if (char2hex(hex[2 * i], &dec) < 0) {
   332f0:	0065      	lsls	r5, r4, #1
   332f2:	f10d 0107 	add.w	r1, sp, #7
   332f6:	f817 0014 	ldrb.w	r0, [r7, r4, lsl #1]
   332fa:	f7ff ffb7 	bl	3326c <char2hex>
   332fe:	2800      	cmp	r0, #0
   33300:	db17      	blt.n	33332 <hex2bin+0x8c>
		buf[i] = dec << 4;
   33302:	f89d 3007 	ldrb.w	r3, [sp, #7]
   33306:	011b      	lsls	r3, r3, #4
   33308:	5533      	strb	r3, [r6, r4]
		if (char2hex(hex[2 * i + 1], &dec) < 0) {
   3330a:	3501      	adds	r5, #1
   3330c:	f10d 0107 	add.w	r1, sp, #7
   33310:	5d78      	ldrb	r0, [r7, r5]
   33312:	f7ff ffab 	bl	3326c <char2hex>
   33316:	2800      	cmp	r0, #0
   33318:	dae2      	bge.n	332e0 <hex2bin+0x3a>
			return 0;
   3331a:	f04f 0800 	mov.w	r8, #0
   3331e:	e001      	b.n	33324 <hex2bin+0x7e>
		return 0;
   33320:	f04f 0800 	mov.w	r8, #0
	}

	return hexlen / 2 + hexlen % 2;
}
   33324:	4640      	mov	r0, r8
   33326:	b003      	add	sp, #12
   33328:	e8bd 83f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, pc}
			return 0;
   3332c:	f04f 0800 	mov.w	r8, #0
   33330:	e7f8      	b.n	33324 <hex2bin+0x7e>
			return 0;
   33332:	f04f 0800 	mov.w	r8, #0
   33336:	e7f5      	b.n	33324 <hex2bin+0x7e>

00033338 <sys_notify_validate>:
	if (notify == NULL) {
   33338:	4602      	mov	r2, r0
   3333a:	b1b0      	cbz	r0, 3336a <sys_notify_validate+0x32>
	uint32_t method = notify->flags >> SYS_NOTIFY_METHOD_POS;
   3333c:	6843      	ldr	r3, [r0, #4]
	return method & SYS_NOTIFY_METHOD_MASK;
   3333e:	f003 0303 	and.w	r3, r3, #3
	switch (sys_notify_get_method(notify)) {
   33342:	2b02      	cmp	r3, #2
   33344:	d00b      	beq.n	3335e <sys_notify_validate+0x26>
   33346:	2b03      	cmp	r3, #3
   33348:	d004      	beq.n	33354 <sys_notify_validate+0x1c>
   3334a:	2b01      	cmp	r3, #1
   3334c:	d004      	beq.n	33358 <sys_notify_validate+0x20>
   3334e:	f06f 0015 	mvn.w	r0, #21
   33352:	4770      	bx	lr
		if (notify->method.callback == NULL) {
   33354:	6803      	ldr	r3, [r0, #0]
   33356:	b15b      	cbz	r3, 33370 <sys_notify_validate+0x38>
		notify->result = 0;
   33358:	2000      	movs	r0, #0
   3335a:	6090      	str	r0, [r2, #8]
   3335c:	4770      	bx	lr
		if (notify->method.signal == NULL) {
   3335e:	6803      	ldr	r3, [r0, #0]
   33360:	2b00      	cmp	r3, #0
   33362:	d1f9      	bne.n	33358 <sys_notify_validate+0x20>
			rv = -EINVAL;
   33364:	f06f 0015 	mvn.w	r0, #21
}
   33368:	4770      	bx	lr
		return -EINVAL;
   3336a:	f06f 0015 	mvn.w	r0, #21
   3336e:	4770      	bx	lr
			rv = -EINVAL;
   33370:	f06f 0015 	mvn.w	r0, #21
   33374:	4770      	bx	lr

00033376 <arch_printk_char_out>:
}
   33376:	2000      	movs	r0, #0
   33378:	4770      	bx	lr

0003337a <str_out>:
{
   3337a:	b410      	push	{r4}
	if (ctx->str == NULL || ctx->count >= ctx->max) {
   3337c:	680c      	ldr	r4, [r1, #0]
   3337e:	b154      	cbz	r4, 33396 <str_out+0x1c>
   33380:	688a      	ldr	r2, [r1, #8]
   33382:	684b      	ldr	r3, [r1, #4]
   33384:	429a      	cmp	r2, r3
   33386:	da06      	bge.n	33396 <str_out+0x1c>
	if (ctx->count == ctx->max - 1) {
   33388:	3b01      	subs	r3, #1
   3338a:	429a      	cmp	r2, r3
   3338c:	d008      	beq.n	333a0 <str_out+0x26>
		ctx->str[ctx->count++] = c;
   3338e:	1c53      	adds	r3, r2, #1
   33390:	608b      	str	r3, [r1, #8]
   33392:	54a0      	strb	r0, [r4, r2]
   33394:	e002      	b.n	3339c <str_out+0x22>
		ctx->count++;
   33396:	688b      	ldr	r3, [r1, #8]
   33398:	3301      	adds	r3, #1
   3339a:	608b      	str	r3, [r1, #8]
}
   3339c:	bc10      	pop	{r4}
   3339e:	4770      	bx	lr
		ctx->str[ctx->count++] = '\0';
   333a0:	1c53      	adds	r3, r2, #1
   333a2:	608b      	str	r3, [r1, #8]
   333a4:	2300      	movs	r3, #0
   333a6:	54a3      	strb	r3, [r4, r2]
   333a8:	e7f8      	b.n	3339c <str_out+0x22>

000333aa <printk>:
{
   333aa:	b40f      	push	{r0, r1, r2, r3}
   333ac:	b500      	push	{lr}
   333ae:	b083      	sub	sp, #12
   333b0:	a904      	add	r1, sp, #16
   333b2:	f851 0b04 	ldr.w	r0, [r1], #4
	va_start(ap, fmt);
   333b6:	9101      	str	r1, [sp, #4]
		vprintk(fmt, ap);
   333b8:	f7e9 f86e 	bl	1c498 <vprintk>
}
   333bc:	b003      	add	sp, #12
   333be:	f85d eb04 	ldr.w	lr, [sp], #4
   333c2:	b004      	add	sp, #16
   333c4:	4770      	bx	lr

000333c6 <snprintk>:
{
   333c6:	b40c      	push	{r2, r3}
   333c8:	b500      	push	{lr}
   333ca:	b083      	sub	sp, #12
   333cc:	ab04      	add	r3, sp, #16
   333ce:	f853 2b04 	ldr.w	r2, [r3], #4
	va_start(ap, fmt);
   333d2:	9301      	str	r3, [sp, #4]
	ret = vsnprintk(str, size, fmt, ap);
   333d4:	f7e9 f870 	bl	1c4b8 <vsnprintk>
}
   333d8:	b003      	add	sp, #12
   333da:	f85d eb04 	ldr.w	lr, [sp], #4
   333de:	b002      	add	sp, #8
   333e0:	4770      	bx	lr

000333e2 <set_state>:
	mgr->flags = (state & ONOFF_STATE_MASK)
   333e2:	f001 0307 	and.w	r3, r1, #7
		     | (mgr->flags & ~ONOFF_STATE_MASK);
   333e6:	8b81      	ldrh	r1, [r0, #28]
   333e8:	f021 0107 	bic.w	r1, r1, #7
   333ec:	4319      	orrs	r1, r3
	mgr->flags = (state & ONOFF_STATE_MASK)
   333ee:	8381      	strh	r1, [r0, #28]
}
   333f0:	4770      	bx	lr

000333f2 <notify_monitors>:
{
   333f2:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   333f6:	4606      	mov	r6, r0
   333f8:	460f      	mov	r7, r1
   333fa:	4690      	mov	r8, r2
	return list->head;
   333fc:	6881      	ldr	r1, [r0, #8]
	SYS_SLIST_FOR_EACH_CONTAINER_SAFE(mlist, mon, tmp, node) {
   333fe:	b119      	cbz	r1, 33408 <notify_monitors+0x16>
   33400:	460c      	mov	r4, r1
Z_GENLIST_PEEK_NEXT(slist, snode)
   33402:	b131      	cbz	r1, 33412 <notify_monitors+0x20>
	return node->next;
   33404:	680c      	ldr	r4, [r1, #0]
   33406:	e004      	b.n	33412 <notify_monitors+0x20>
   33408:	460c      	mov	r4, r1
   3340a:	e002      	b.n	33412 <notify_monitors+0x20>
   3340c:	4623      	mov	r3, r4
   3340e:	4621      	mov	r1, r4
   33410:	461c      	mov	r4, r3
   33412:	b159      	cbz	r1, 3342c <notify_monitors+0x3a>
		mon->callback(mgr, mon, state, res);
   33414:	684d      	ldr	r5, [r1, #4]
   33416:	4643      	mov	r3, r8
   33418:	463a      	mov	r2, r7
   3341a:	4630      	mov	r0, r6
   3341c:	47a8      	blx	r5
	SYS_SLIST_FOR_EACH_CONTAINER_SAFE(mlist, mon, tmp, node) {
   3341e:	2c00      	cmp	r4, #0
   33420:	d0f4      	beq.n	3340c <notify_monitors+0x1a>
   33422:	4623      	mov	r3, r4
Z_GENLIST_PEEK_NEXT(slist, snode)
   33424:	2c00      	cmp	r4, #0
   33426:	d0f2      	beq.n	3340e <notify_monitors+0x1c>
	return node->next;
   33428:	6823      	ldr	r3, [r4, #0]
   3342a:	e7f0      	b.n	3340e <notify_monitors+0x1c>
}
   3342c:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}

00033430 <process_recheck>:
	uint32_t state = mgr->flags & ONOFF_STATE_MASK;
   33430:	8b83      	ldrh	r3, [r0, #28]
	if ((state == ONOFF_STATE_OFF)
   33432:	f013 0307 	ands.w	r3, r3, #7
   33436:	d103      	bne.n	33440 <process_recheck+0x10>
	return list->head;
   33438:	6802      	ldr	r2, [r0, #0]
	    && !sys_slist_is_empty(&mgr->clients)) {
   3343a:	b10a      	cbz	r2, 33440 <process_recheck+0x10>
		evt = EVT_START;
   3343c:	2003      	movs	r0, #3
   3343e:	4770      	bx	lr
	} else if ((state == ONOFF_STATE_ON)
   33440:	2b02      	cmp	r3, #2
   33442:	d003      	beq.n	3344c <process_recheck+0x1c>
	} else if ((state == ONOFF_STATE_ERROR)
   33444:	2b01      	cmp	r3, #1
   33446:	d006      	beq.n	33456 <process_recheck+0x26>
	int evt = EVT_NOP;
   33448:	2000      	movs	r0, #0
   3344a:	4770      	bx	lr
		   && (mgr->refs == 0U)) {
   3344c:	8bc2      	ldrh	r2, [r0, #30]
   3344e:	2a00      	cmp	r2, #0
   33450:	d1f8      	bne.n	33444 <process_recheck+0x14>
		evt = EVT_STOP;
   33452:	2004      	movs	r0, #4
   33454:	4770      	bx	lr
   33456:	6803      	ldr	r3, [r0, #0]
		   && !sys_slist_is_empty(&mgr->clients)) {
   33458:	b10b      	cbz	r3, 3345e <process_recheck+0x2e>
		evt = EVT_RESET;
   3345a:	2005      	movs	r0, #5
}
   3345c:	4770      	bx	lr
	int evt = EVT_NOP;
   3345e:	2000      	movs	r0, #0
   33460:	4770      	bx	lr

00033462 <validate_args>:
	if ((mgr == NULL) || (cli == NULL)) {
   33462:	b158      	cbz	r0, 3347c <validate_args+0x1a>
{
   33464:	b510      	push	{r4, lr}
   33466:	460c      	mov	r4, r1
	if ((mgr == NULL) || (cli == NULL)) {
   33468:	b159      	cbz	r1, 33482 <validate_args+0x20>
	int rv = sys_notify_validate(&cli->notify);
   3346a:	1d08      	adds	r0, r1, #4
   3346c:	f7ff ff64 	bl	33338 <sys_notify_validate>
	if ((rv == 0)
   33470:	b918      	cbnz	r0, 3347a <validate_args+0x18>
	    && ((cli->notify.flags
   33472:	68a3      	ldr	r3, [r4, #8]
   33474:	f033 0303 	bics.w	r3, r3, #3
   33478:	d106      	bne.n	33488 <validate_args+0x26>
}
   3347a:	bd10      	pop	{r4, pc}
		return -EINVAL;
   3347c:	f06f 0015 	mvn.w	r0, #21
}
   33480:	4770      	bx	lr
		return -EINVAL;
   33482:	f06f 0015 	mvn.w	r0, #21
   33486:	e7f8      	b.n	3347a <validate_args+0x18>
		rv = -EINVAL;
   33488:	f06f 0015 	mvn.w	r0, #21
   3348c:	e7f5      	b.n	3347a <validate_args+0x18>

0003348e <notify_one>:
{
   3348e:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   33492:	4607      	mov	r7, r0
   33494:	460c      	mov	r4, r1
   33496:	4616      	mov	r6, r2
   33498:	461d      	mov	r5, r3
		(onoff_client_callback)sys_notify_finalize(&cli->notify, res);
   3349a:	4619      	mov	r1, r3
   3349c:	1d20      	adds	r0, r4, #4
   3349e:	f7e8 ffbd 	bl	1c41c <sys_notify_finalize>
	if (cb) {
   334a2:	b128      	cbz	r0, 334b0 <notify_one+0x22>
   334a4:	4680      	mov	r8, r0
		cb(mgr, cli, state, res);
   334a6:	462b      	mov	r3, r5
   334a8:	4632      	mov	r2, r6
   334aa:	4621      	mov	r1, r4
   334ac:	4638      	mov	r0, r7
   334ae:	47c0      	blx	r8
}
   334b0:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}

000334b4 <notify_all>:
{
   334b4:	e92d 43f8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
   334b8:	4681      	mov	r9, r0
   334ba:	460c      	mov	r4, r1
   334bc:	4690      	mov	r8, r2
   334be:	461f      	mov	r7, r3
	while (!sys_slist_is_empty(list)) {
   334c0:	e005      	b.n	334ce <notify_all+0x1a>
	list->tail = node;
   334c2:	6065      	str	r5, [r4, #4]
		notify_one(mgr, cli, state, res);
   334c4:	463b      	mov	r3, r7
   334c6:	4642      	mov	r2, r8
   334c8:	4648      	mov	r0, r9
   334ca:	f7ff ffe0 	bl	3348e <notify_one>
	return list->head;
   334ce:	6821      	ldr	r1, [r4, #0]
	while (!sys_slist_is_empty(list)) {
   334d0:	b129      	cbz	r1, 334de <notify_all+0x2a>
	return node->next;
   334d2:	680d      	ldr	r5, [r1, #0]
	list->head = node;
   334d4:	6025      	str	r5, [r4, #0]
	return list->tail;
   334d6:	6866      	ldr	r6, [r4, #4]
Z_GENLIST_GET_NOT_EMPTY(slist, snode)
   334d8:	428e      	cmp	r6, r1
   334da:	d1f3      	bne.n	334c4 <notify_all+0x10>
   334dc:	e7f1      	b.n	334c2 <notify_all+0xe>
}
   334de:	e8bd 83f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, pc}

000334e2 <onoff_manager_init>:
	if ((mgr == NULL)
   334e2:	b170      	cbz	r0, 33502 <onoff_manager_init+0x20>
{
   334e4:	b538      	push	{r3, r4, r5, lr}
   334e6:	460c      	mov	r4, r1
   334e8:	4605      	mov	r5, r0
	    || (transitions == NULL)
   334ea:	b169      	cbz	r1, 33508 <onoff_manager_init+0x26>
	    || (transitions->start == NULL)
   334ec:	680b      	ldr	r3, [r1, #0]
   334ee:	b173      	cbz	r3, 3350e <onoff_manager_init+0x2c>
	    || (transitions->stop == NULL)) {
   334f0:	684b      	ldr	r3, [r1, #4]
   334f2:	b17b      	cbz	r3, 33514 <onoff_manager_init+0x32>
	*mgr = (struct onoff_manager)ONOFF_MANAGER_INITIALIZER(transitions);
   334f4:	2220      	movs	r2, #32
   334f6:	2100      	movs	r1, #0
   334f8:	f002 fb24 	bl	35b44 <memset>
   334fc:	612c      	str	r4, [r5, #16]
	return 0;
   334fe:	2000      	movs	r0, #0
}
   33500:	bd38      	pop	{r3, r4, r5, pc}
		return -EINVAL;
   33502:	f06f 0015 	mvn.w	r0, #21
}
   33506:	4770      	bx	lr
		return -EINVAL;
   33508:	f06f 0015 	mvn.w	r0, #21
   3350c:	e7f8      	b.n	33500 <onoff_manager_init+0x1e>
   3350e:	f06f 0015 	mvn.w	r0, #21
   33512:	e7f5      	b.n	33500 <onoff_manager_init+0x1e>
   33514:	f06f 0015 	mvn.w	r0, #21
   33518:	e7f2      	b.n	33500 <onoff_manager_init+0x1e>

0003351a <z_thread_entry>:
 * This routine does not return, and is marked as such so the compiler won't
 * generate preamble code that is only used by functions that actually return.
 */
FUNC_NORETURN void z_thread_entry(k_thread_entry_t entry,
				 void *p1, void *p2, void *p3)
{
   3351a:	b508      	push	{r3, lr}
   3351c:	4604      	mov	r4, r0
   3351e:	4608      	mov	r0, r1
   33520:	4611      	mov	r1, r2
#ifdef CONFIG_THREAD_LOCAL_STORAGE
	z_tls_current = z_current_get();
#endif
	entry(p1, p2, p3);
   33522:	461a      	mov	r2, r3
   33524:	47a0      	blx	r4
	return z_impl_z_current_get();
   33526:	f7fe fbab 	bl	31c80 <z_impl_z_current_get>
	z_impl_k_thread_abort(thread);
   3352a:	f7ec fba7 	bl	1fc7c <z_impl_k_thread_abort>

0003352e <chunk_mem>:
	uint8_t *ret = ((uint8_t *)&buf[c]) + chunk_header_bytes(h);
   3352e:	00c9      	lsls	r1, r1, #3
	return big_heap_chunks(h->end_chunk);
   33530:	6883      	ldr	r3, [r0, #8]
	return big_heap(h) ? 8 : 4;
   33532:	f5b3 4f00 	cmp.w	r3, #32768	; 0x8000
   33536:	d303      	bcc.n	33540 <chunk_mem+0x12>
   33538:	2308      	movs	r3, #8
   3353a:	4419      	add	r1, r3
}
   3353c:	4408      	add	r0, r1
   3353e:	4770      	bx	lr
   33540:	2304      	movs	r3, #4
   33542:	e7fa      	b.n	3353a <chunk_mem+0xc>

00033544 <free_list_remove_bidx>:
{
   33544:	b430      	push	{r4, r5}
	void *cmem = &buf[c];
   33546:	eb00 05c1 	add.w	r5, r0, r1, lsl #3
	return big_heap_chunks(h->end_chunk);
   3354a:	6884      	ldr	r4, [r0, #8]
	if (big_heap(h)) {
   3354c:	f5b4 4f00 	cmp.w	r4, #32768	; 0x8000
   33550:	d317      	bcc.n	33582 <free_list_remove_bidx+0x3e>
		return ((uint32_t *)cmem)[f];
   33552:	68eb      	ldr	r3, [r5, #12]
	if (next_free_chunk(h, c) == c) {
   33554:	4299      	cmp	r1, r3
   33556:	d016      	beq.n	33586 <free_list_remove_bidx+0x42>
	if (big_heap(h)) {
   33558:	f5b4 4f00 	cmp.w	r4, #32768	; 0x8000
   3355c:	d320      	bcc.n	335a0 <free_list_remove_bidx+0x5c>
		return ((uint32_t *)cmem)[f];
   3355e:	68a9      	ldr	r1, [r5, #8]
		b->next = second;
   33560:	3204      	adds	r2, #4
   33562:	f840 3022 	str.w	r3, [r0, r2, lsl #2]
	void *cmem = &buf[c];
   33566:	eb00 02c1 	add.w	r2, r0, r1, lsl #3
	if (big_heap(h)) {
   3356a:	f5b4 4f00 	cmp.w	r4, #32768	; 0x8000
   3356e:	d319      	bcc.n	335a4 <free_list_remove_bidx+0x60>
		((uint32_t *)cmem)[f] = val;
   33570:	60d3      	str	r3, [r2, #12]
	void *cmem = &buf[c];
   33572:	eb00 03c3 	add.w	r3, r0, r3, lsl #3
	return big_heap_chunks(h->end_chunk);
   33576:	6882      	ldr	r2, [r0, #8]
	if (big_heap(h)) {
   33578:	f5b2 4f00 	cmp.w	r2, #32768	; 0x8000
   3357c:	d314      	bcc.n	335a8 <free_list_remove_bidx+0x64>
		((uint32_t *)cmem)[f] = val;
   3357e:	6099      	str	r1, [r3, #8]
   33580:	e00c      	b.n	3359c <free_list_remove_bidx+0x58>
		return ((uint16_t *)cmem)[f];
   33582:	88eb      	ldrh	r3, [r5, #6]
   33584:	e7e6      	b.n	33554 <free_list_remove_bidx+0x10>
		h->avail_buckets &= ~(1 << bidx);
   33586:	2301      	movs	r3, #1
   33588:	fa03 f102 	lsl.w	r1, r3, r2
   3358c:	68c3      	ldr	r3, [r0, #12]
   3358e:	ea23 0301 	bic.w	r3, r3, r1
   33592:	60c3      	str	r3, [r0, #12]
		b->next = 0;
   33594:	3204      	adds	r2, #4
   33596:	2300      	movs	r3, #0
   33598:	f840 3022 	str.w	r3, [r0, r2, lsl #2]
}
   3359c:	bc30      	pop	{r4, r5}
   3359e:	4770      	bx	lr
   335a0:	88a9      	ldrh	r1, [r5, #4]
   335a2:	e7dd      	b.n	33560 <free_list_remove_bidx+0x1c>
		((uint16_t *)cmem)[f] = val;
   335a4:	80d3      	strh	r3, [r2, #6]
   335a6:	e7e4      	b.n	33572 <free_list_remove_bidx+0x2e>
   335a8:	8099      	strh	r1, [r3, #4]
   335aa:	e7f7      	b.n	3359c <free_list_remove_bidx+0x58>

000335ac <free_list_add_bidx>:
{
   335ac:	b470      	push	{r4, r5, r6}
	if (b->next == 0U) {
   335ae:	1d13      	adds	r3, r2, #4
   335b0:	f850 3023 	ldr.w	r3, [r0, r3, lsl #2]
   335b4:	b9d3      	cbnz	r3, 335ec <free_list_add_bidx+0x40>
		h->avail_buckets |= (1 << bidx);
   335b6:	2301      	movs	r3, #1
   335b8:	fa03 f402 	lsl.w	r4, r3, r2
   335bc:	68c3      	ldr	r3, [r0, #12]
   335be:	4323      	orrs	r3, r4
   335c0:	60c3      	str	r3, [r0, #12]
		b->next = c;
   335c2:	3204      	adds	r2, #4
   335c4:	f840 1022 	str.w	r1, [r0, r2, lsl #2]
	void *cmem = &buf[c];
   335c8:	eb00 03c1 	add.w	r3, r0, r1, lsl #3
	return big_heap_chunks(h->end_chunk);
   335cc:	6882      	ldr	r2, [r0, #8]
	if (big_heap(h)) {
   335ce:	f5b2 4f00 	cmp.w	r2, #32768	; 0x8000
   335d2:	d307      	bcc.n	335e4 <free_list_add_bidx+0x38>
		((uint32_t *)cmem)[f] = val;
   335d4:	6099      	str	r1, [r3, #8]
	return big_heap_chunks(h->end_chunk);
   335d6:	6882      	ldr	r2, [r0, #8]
	if (big_heap(h)) {
   335d8:	f5b2 4f00 	cmp.w	r2, #32768	; 0x8000
   335dc:	d304      	bcc.n	335e8 <free_list_add_bidx+0x3c>
		((uint32_t *)cmem)[f] = val;
   335de:	60d9      	str	r1, [r3, #12]
}
   335e0:	bc70      	pop	{r4, r5, r6}
   335e2:	4770      	bx	lr
		((uint16_t *)cmem)[f] = val;
   335e4:	8099      	strh	r1, [r3, #4]
   335e6:	e7f6      	b.n	335d6 <free_list_add_bidx+0x2a>
   335e8:	80d9      	strh	r1, [r3, #6]
   335ea:	e7f9      	b.n	335e0 <free_list_add_bidx+0x34>
	void *cmem = &buf[c];
   335ec:	eb00 04c3 	add.w	r4, r0, r3, lsl #3
	return big_heap_chunks(h->end_chunk);
   335f0:	6886      	ldr	r6, [r0, #8]
	if (big_heap(h)) {
   335f2:	f5b6 4f00 	cmp.w	r6, #32768	; 0x8000
   335f6:	d318      	bcc.n	3362a <free_list_add_bidx+0x7e>
		return ((uint32_t *)cmem)[f];
   335f8:	68a2      	ldr	r2, [r4, #8]
	void *cmem = &buf[c];
   335fa:	eb00 05c1 	add.w	r5, r0, r1, lsl #3
	if (big_heap(h)) {
   335fe:	f5b6 4f00 	cmp.w	r6, #32768	; 0x8000
   33602:	d314      	bcc.n	3362e <free_list_add_bidx+0x82>
		((uint32_t *)cmem)[f] = val;
   33604:	60aa      	str	r2, [r5, #8]
	return big_heap_chunks(h->end_chunk);
   33606:	6886      	ldr	r6, [r0, #8]
	if (big_heap(h)) {
   33608:	f5b6 4f00 	cmp.w	r6, #32768	; 0x8000
   3360c:	d311      	bcc.n	33632 <free_list_add_bidx+0x86>
		((uint32_t *)cmem)[f] = val;
   3360e:	60eb      	str	r3, [r5, #12]
	void *cmem = &buf[c];
   33610:	eb00 02c2 	add.w	r2, r0, r2, lsl #3
	return big_heap_chunks(h->end_chunk);
   33614:	6883      	ldr	r3, [r0, #8]
	if (big_heap(h)) {
   33616:	f5b3 4f00 	cmp.w	r3, #32768	; 0x8000
   3361a:	d30c      	bcc.n	33636 <free_list_add_bidx+0x8a>
		((uint32_t *)cmem)[f] = val;
   3361c:	60d1      	str	r1, [r2, #12]
	return big_heap_chunks(h->end_chunk);
   3361e:	6883      	ldr	r3, [r0, #8]
	if (big_heap(h)) {
   33620:	f5b3 4f00 	cmp.w	r3, #32768	; 0x8000
   33624:	d309      	bcc.n	3363a <free_list_add_bidx+0x8e>
		((uint32_t *)cmem)[f] = val;
   33626:	60a1      	str	r1, [r4, #8]
   33628:	e7da      	b.n	335e0 <free_list_add_bidx+0x34>
		return ((uint16_t *)cmem)[f];
   3362a:	88a2      	ldrh	r2, [r4, #4]
   3362c:	e7e5      	b.n	335fa <free_list_add_bidx+0x4e>
		((uint16_t *)cmem)[f] = val;
   3362e:	80aa      	strh	r2, [r5, #4]
   33630:	e7e9      	b.n	33606 <free_list_add_bidx+0x5a>
   33632:	80eb      	strh	r3, [r5, #6]
   33634:	e7ec      	b.n	33610 <free_list_add_bidx+0x64>
   33636:	80d1      	strh	r1, [r2, #6]
   33638:	e7f1      	b.n	3361e <free_list_add_bidx+0x72>
   3363a:	80a1      	strh	r1, [r4, #4]
   3363c:	e7d0      	b.n	335e0 <free_list_add_bidx+0x34>

0003363e <split_chunks>:
{
   3363e:	b470      	push	{r4, r5, r6}
	void *cmem = &buf[c];
   33640:	eb00 04c1 	add.w	r4, r0, r1, lsl #3
	return big_heap_chunks(h->end_chunk);
   33644:	6885      	ldr	r5, [r0, #8]
	if (big_heap(h)) {
   33646:	f5b5 4f00 	cmp.w	r5, #32768	; 0x8000
   3364a:	d325      	bcc.n	33698 <split_chunks+0x5a>
		return ((uint32_t *)cmem)[f];
   3364c:	6866      	ldr	r6, [r4, #4]
	chunksz_t lsz = rc - lc;
   3364e:	1a53      	subs	r3, r2, r1
	chunksz_t rsz = sz0 - lsz;
   33650:	1a89      	subs	r1, r1, r2
   33652:	eb01 0156 	add.w	r1, r1, r6, lsr #1
	chunk_set(h, c, SIZE_AND_USED, size << 1);
   33656:	005e      	lsls	r6, r3, #1
	if (big_heap(h)) {
   33658:	f5b5 4f00 	cmp.w	r5, #32768	; 0x8000
   3365c:	d31e      	bcc.n	3369c <split_chunks+0x5e>
		((uint32_t *)cmem)[f] = val;
   3365e:	6066      	str	r6, [r4, #4]
	chunk_set(h, c, SIZE_AND_USED, size << 1);
   33660:	004d      	lsls	r5, r1, #1
	void *cmem = &buf[c];
   33662:	eb00 04c2 	add.w	r4, r0, r2, lsl #3
	return big_heap_chunks(h->end_chunk);
   33666:	6886      	ldr	r6, [r0, #8]
	if (big_heap(h)) {
   33668:	f5b6 4f00 	cmp.w	r6, #32768	; 0x8000
   3366c:	d318      	bcc.n	336a0 <split_chunks+0x62>
		((uint32_t *)cmem)[f] = val;
   3366e:	6065      	str	r5, [r4, #4]
	return big_heap_chunks(h->end_chunk);
   33670:	6885      	ldr	r5, [r0, #8]
	if (big_heap(h)) {
   33672:	f5b5 4f00 	cmp.w	r5, #32768	; 0x8000
   33676:	d315      	bcc.n	336a4 <split_chunks+0x66>
		((uint32_t *)cmem)[f] = val;
   33678:	f840 3032 	str.w	r3, [r0, r2, lsl #3]
	return big_heap_chunks(h->end_chunk);
   3367c:	6883      	ldr	r3, [r0, #8]
	if (big_heap(h)) {
   3367e:	f5b3 4f00 	cmp.w	r3, #32768	; 0x8000
   33682:	d312      	bcc.n	336aa <split_chunks+0x6c>
		return ((uint32_t *)cmem)[f];
   33684:	6864      	ldr	r4, [r4, #4]
	return c + chunk_size(h, c);
   33686:	eb02 0254 	add.w	r2, r2, r4, lsr #1
	if (big_heap(h)) {
   3368a:	f5b3 4f00 	cmp.w	r3, #32768	; 0x8000
   3368e:	d30e      	bcc.n	336ae <split_chunks+0x70>
		((uint32_t *)cmem)[f] = val;
   33690:	f840 1032 	str.w	r1, [r0, r2, lsl #3]
}
   33694:	bc70      	pop	{r4, r5, r6}
   33696:	4770      	bx	lr
		return ((uint16_t *)cmem)[f];
   33698:	8866      	ldrh	r6, [r4, #2]
   3369a:	e7d8      	b.n	3364e <split_chunks+0x10>
		((uint16_t *)cmem)[f] = val;
   3369c:	8066      	strh	r6, [r4, #2]
   3369e:	e7df      	b.n	33660 <split_chunks+0x22>
   336a0:	8065      	strh	r5, [r4, #2]
   336a2:	e7e5      	b.n	33670 <split_chunks+0x32>
   336a4:	f820 3032 	strh.w	r3, [r0, r2, lsl #3]
   336a8:	e7e8      	b.n	3367c <split_chunks+0x3e>
		return ((uint16_t *)cmem)[f];
   336aa:	8864      	ldrh	r4, [r4, #2]
   336ac:	e7eb      	b.n	33686 <split_chunks+0x48>
		((uint16_t *)cmem)[f] = val;
   336ae:	f820 1032 	strh.w	r1, [r0, r2, lsl #3]
   336b2:	e7ef      	b.n	33694 <split_chunks+0x56>

000336b4 <merge_chunks>:
{
   336b4:	b470      	push	{r4, r5, r6}
	void *cmem = &buf[c];
   336b6:	eb00 01c1 	add.w	r1, r0, r1, lsl #3
	return big_heap_chunks(h->end_chunk);
   336ba:	6884      	ldr	r4, [r0, #8]
	if (big_heap(h)) {
   336bc:	f5b4 4f00 	cmp.w	r4, #32768	; 0x8000
   336c0:	d31c      	bcc.n	336fc <merge_chunks+0x48>
		return ((uint32_t *)cmem)[f];
   336c2:	684b      	ldr	r3, [r1, #4]
	return chunk_field(h, c, SIZE_AND_USED) >> 1;
   336c4:	085b      	lsrs	r3, r3, #1
	void *cmem = &buf[c];
   336c6:	eb00 05c2 	add.w	r5, r0, r2, lsl #3
	if (big_heap(h)) {
   336ca:	f5b4 4f00 	cmp.w	r4, #32768	; 0x8000
   336ce:	d317      	bcc.n	33700 <merge_chunks+0x4c>
		return ((uint32_t *)cmem)[f];
   336d0:	686e      	ldr	r6, [r5, #4]
	chunksz_t newsz = chunk_size(h, lc) + chunk_size(h, rc);
   336d2:	eb03 0356 	add.w	r3, r3, r6, lsr #1
	chunk_set(h, c, SIZE_AND_USED, size << 1);
   336d6:	005e      	lsls	r6, r3, #1
	if (big_heap(h)) {
   336d8:	f5b4 4f00 	cmp.w	r4, #32768	; 0x8000
   336dc:	d312      	bcc.n	33704 <merge_chunks+0x50>
		((uint32_t *)cmem)[f] = val;
   336de:	604e      	str	r6, [r1, #4]
	return big_heap_chunks(h->end_chunk);
   336e0:	6881      	ldr	r1, [r0, #8]
	if (big_heap(h)) {
   336e2:	f5b1 4f00 	cmp.w	r1, #32768	; 0x8000
   336e6:	d30f      	bcc.n	33708 <merge_chunks+0x54>
		return ((uint32_t *)cmem)[f];
   336e8:	686c      	ldr	r4, [r5, #4]
	return c + chunk_size(h, c);
   336ea:	eb02 0254 	add.w	r2, r2, r4, lsr #1
	if (big_heap(h)) {
   336ee:	f5b1 4f00 	cmp.w	r1, #32768	; 0x8000
   336f2:	d30b      	bcc.n	3370c <merge_chunks+0x58>
		((uint32_t *)cmem)[f] = val;
   336f4:	f840 3032 	str.w	r3, [r0, r2, lsl #3]
}
   336f8:	bc70      	pop	{r4, r5, r6}
   336fa:	4770      	bx	lr
		return ((uint16_t *)cmem)[f];
   336fc:	884b      	ldrh	r3, [r1, #2]
   336fe:	e7e1      	b.n	336c4 <merge_chunks+0x10>
   33700:	886e      	ldrh	r6, [r5, #2]
   33702:	e7e6      	b.n	336d2 <merge_chunks+0x1e>
		((uint16_t *)cmem)[f] = val;
   33704:	804e      	strh	r6, [r1, #2]
   33706:	e7eb      	b.n	336e0 <merge_chunks+0x2c>
		return ((uint16_t *)cmem)[f];
   33708:	886c      	ldrh	r4, [r5, #2]
   3370a:	e7ee      	b.n	336ea <merge_chunks+0x36>
		((uint16_t *)cmem)[f] = val;
   3370c:	f820 3032 	strh.w	r3, [r0, r2, lsl #3]
   33710:	e7f2      	b.n	336f8 <merge_chunks+0x44>

00033712 <mem_to_chunkid>:
	return big_heap_chunks(h->end_chunk);
   33712:	6883      	ldr	r3, [r0, #8]
	return big_heap(h) ? 8 : 4;
   33714:	f5b3 4f00 	cmp.w	r3, #32768	; 0x8000
   33718:	d304      	bcc.n	33724 <mem_to_chunkid+0x12>
   3371a:	2308      	movs	r3, #8
	return (mem - chunk_header_bytes(h) - base) / CHUNK_UNIT;
   3371c:	1ac9      	subs	r1, r1, r3
   3371e:	1a08      	subs	r0, r1, r0
}
   33720:	08c0      	lsrs	r0, r0, #3
   33722:	4770      	bx	lr
   33724:	2304      	movs	r3, #4
   33726:	e7f9      	b.n	3371c <mem_to_chunkid+0xa>

00033728 <free_list_remove>:
{
   33728:	b508      	push	{r3, lr}
	return big_heap_chunks(h->end_chunk);
   3372a:	6883      	ldr	r3, [r0, #8]
	return big_heap(h) && chunk_size(h, c) == 1U;
   3372c:	f5b3 4f00 	cmp.w	r3, #32768	; 0x8000
   33730:	d307      	bcc.n	33742 <free_list_remove+0x1a>
	void *cmem = &buf[c];
   33732:	eb00 02c1 	add.w	r2, r0, r1, lsl #3
		return ((uint32_t *)cmem)[f];
   33736:	6852      	ldr	r2, [r2, #4]
	return chunk_field(h, c, SIZE_AND_USED) >> 1;
   33738:	0852      	lsrs	r2, r2, #1
	return big_heap(h) && chunk_size(h, c) == 1U;
   3373a:	2a01      	cmp	r2, #1
   3373c:	d002      	beq.n	33744 <free_list_remove+0x1c>
   3373e:	2200      	movs	r2, #0
   33740:	e000      	b.n	33744 <free_list_remove+0x1c>
   33742:	2200      	movs	r2, #0
	if (!solo_free_header(h, c)) {
   33744:	b9a2      	cbnz	r2, 33770 <free_list_remove+0x48>
	void *cmem = &buf[c];
   33746:	eb00 02c1 	add.w	r2, r0, r1, lsl #3
	if (big_heap(h)) {
   3374a:	f5b3 4f00 	cmp.w	r3, #32768	; 0x8000
   3374e:	d310      	bcc.n	33772 <free_list_remove+0x4a>
		return ((uint32_t *)cmem)[f];
   33750:	6852      	ldr	r2, [r2, #4]
	return chunk_field(h, c, SIZE_AND_USED) >> 1;
   33752:	0852      	lsrs	r2, r2, #1
	return big_heap(h) ? 8 : 4;
   33754:	f5b3 4f00 	cmp.w	r3, #32768	; 0x8000
   33758:	d30d      	bcc.n	33776 <free_list_remove+0x4e>
   3375a:	2308      	movs	r3, #8
	return (bytes + CHUNK_UNIT - 1U) / CHUNK_UNIT;
   3375c:	3308      	adds	r3, #8
	unsigned int usable_sz = sz - min_chunk_size(h) + 1;
   3375e:	eba2 02d3 	sub.w	r2, r2, r3, lsr #3
   33762:	3201      	adds	r2, #1
	return 31 - __builtin_clz(usable_sz);
   33764:	fab2 f282 	clz	r2, r2
		free_list_remove_bidx(h, c, bidx);
   33768:	f1c2 021f 	rsb	r2, r2, #31
   3376c:	f7ff feea 	bl	33544 <free_list_remove_bidx>
}
   33770:	bd08      	pop	{r3, pc}
		return ((uint16_t *)cmem)[f];
   33772:	8852      	ldrh	r2, [r2, #2]
   33774:	e7ed      	b.n	33752 <free_list_remove+0x2a>
	return big_heap(h) ? 8 : 4;
   33776:	2304      	movs	r3, #4
   33778:	e7f0      	b.n	3375c <free_list_remove+0x34>

0003377a <free_list_add>:
{
   3377a:	b508      	push	{r3, lr}
	return big_heap_chunks(h->end_chunk);
   3377c:	6883      	ldr	r3, [r0, #8]
	return big_heap(h) && chunk_size(h, c) == 1U;
   3377e:	f5b3 4f00 	cmp.w	r3, #32768	; 0x8000
   33782:	d307      	bcc.n	33794 <free_list_add+0x1a>
	void *cmem = &buf[c];
   33784:	eb00 02c1 	add.w	r2, r0, r1, lsl #3
		return ((uint32_t *)cmem)[f];
   33788:	6852      	ldr	r2, [r2, #4]
	return chunk_field(h, c, SIZE_AND_USED) >> 1;
   3378a:	0852      	lsrs	r2, r2, #1
	return big_heap(h) && chunk_size(h, c) == 1U;
   3378c:	2a01      	cmp	r2, #1
   3378e:	d002      	beq.n	33796 <free_list_add+0x1c>
   33790:	2200      	movs	r2, #0
   33792:	e000      	b.n	33796 <free_list_add+0x1c>
   33794:	2200      	movs	r2, #0
	if (!solo_free_header(h, c)) {
   33796:	b9a2      	cbnz	r2, 337c2 <free_list_add+0x48>
	void *cmem = &buf[c];
   33798:	eb00 02c1 	add.w	r2, r0, r1, lsl #3
	if (big_heap(h)) {
   3379c:	f5b3 4f00 	cmp.w	r3, #32768	; 0x8000
   337a0:	d310      	bcc.n	337c4 <free_list_add+0x4a>
		return ((uint32_t *)cmem)[f];
   337a2:	6852      	ldr	r2, [r2, #4]
	return chunk_field(h, c, SIZE_AND_USED) >> 1;
   337a4:	0852      	lsrs	r2, r2, #1
	return big_heap(h) ? 8 : 4;
   337a6:	f5b3 4f00 	cmp.w	r3, #32768	; 0x8000
   337aa:	d30d      	bcc.n	337c8 <free_list_add+0x4e>
   337ac:	2308      	movs	r3, #8
	return (bytes + CHUNK_UNIT - 1U) / CHUNK_UNIT;
   337ae:	3308      	adds	r3, #8
	unsigned int usable_sz = sz - min_chunk_size(h) + 1;
   337b0:	eba2 02d3 	sub.w	r2, r2, r3, lsr #3
   337b4:	3201      	adds	r2, #1
	return 31 - __builtin_clz(usable_sz);
   337b6:	fab2 f282 	clz	r2, r2
		free_list_add_bidx(h, c, bidx);
   337ba:	f1c2 021f 	rsb	r2, r2, #31
   337be:	f7ff fef5 	bl	335ac <free_list_add_bidx>
}
   337c2:	bd08      	pop	{r3, pc}
		return ((uint16_t *)cmem)[f];
   337c4:	8852      	ldrh	r2, [r2, #2]
   337c6:	e7ed      	b.n	337a4 <free_list_add+0x2a>
	return big_heap(h) ? 8 : 4;
   337c8:	2304      	movs	r3, #4
   337ca:	e7f0      	b.n	337ae <free_list_add+0x34>

000337cc <free_chunk>:
{
   337cc:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
   337ce:	4604      	mov	r4, r0
   337d0:	460d      	mov	r5, r1
	void *cmem = &buf[c];
   337d2:	00ce      	lsls	r6, r1, #3
   337d4:	eb00 07c1 	add.w	r7, r0, r1, lsl #3
	return big_heap_chunks(h->end_chunk);
   337d8:	6883      	ldr	r3, [r0, #8]
	if (big_heap(h)) {
   337da:	f5b3 4f00 	cmp.w	r3, #32768	; 0x8000
   337de:	d31f      	bcc.n	33820 <free_chunk+0x54>
		return ((uint32_t *)cmem)[f];
   337e0:	6879      	ldr	r1, [r7, #4]
	return c + chunk_size(h, c);
   337e2:	eb05 0151 	add.w	r1, r5, r1, lsr #1
	void *cmem = &buf[c];
   337e6:	eb04 02c1 	add.w	r2, r4, r1, lsl #3
	if (big_heap(h)) {
   337ea:	f5b3 4f00 	cmp.w	r3, #32768	; 0x8000
   337ee:	d319      	bcc.n	33824 <free_chunk+0x58>
		return ((uint32_t *)cmem)[f];
   337f0:	6853      	ldr	r3, [r2, #4]
	if (!chunk_used(h, right_chunk(h, c))) {
   337f2:	f013 0f01 	tst.w	r3, #1
   337f6:	d017      	beq.n	33828 <free_chunk+0x5c>
	return big_heap_chunks(h->end_chunk);
   337f8:	68a3      	ldr	r3, [r4, #8]
	if (big_heap(h)) {
   337fa:	f5b3 4f00 	cmp.w	r3, #32768	; 0x8000
   337fe:	d324      	bcc.n	3384a <free_chunk+0x7e>
		return ((uint32_t *)cmem)[f];
   33800:	59a1      	ldr	r1, [r4, r6]
	return c - chunk_field(h, c, LEFT_SIZE);
   33802:	1a69      	subs	r1, r5, r1
	void *cmem = &buf[c];
   33804:	eb04 02c1 	add.w	r2, r4, r1, lsl #3
	if (big_heap(h)) {
   33808:	f5b3 4f00 	cmp.w	r3, #32768	; 0x8000
   3380c:	d31f      	bcc.n	3384e <free_chunk+0x82>
		return ((uint32_t *)cmem)[f];
   3380e:	6853      	ldr	r3, [r2, #4]
	if (!chunk_used(h, left_chunk(h, c))) {
   33810:	f013 0f01 	tst.w	r3, #1
   33814:	d01d      	beq.n	33852 <free_chunk+0x86>
	free_list_add(h, c);
   33816:	4629      	mov	r1, r5
   33818:	4620      	mov	r0, r4
   3381a:	f7ff ffae 	bl	3377a <free_list_add>
}
   3381e:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
		return ((uint16_t *)cmem)[f];
   33820:	8879      	ldrh	r1, [r7, #2]
   33822:	e7de      	b.n	337e2 <free_chunk+0x16>
   33824:	8853      	ldrh	r3, [r2, #2]
   33826:	e7e4      	b.n	337f2 <free_chunk+0x26>
		free_list_remove(h, right_chunk(h, c));
   33828:	4620      	mov	r0, r4
   3382a:	f7ff ff7d 	bl	33728 <free_list_remove>
	return big_heap_chunks(h->end_chunk);
   3382e:	68a3      	ldr	r3, [r4, #8]
	if (big_heap(h)) {
   33830:	f5b3 4f00 	cmp.w	r3, #32768	; 0x8000
   33834:	d307      	bcc.n	33846 <free_chunk+0x7a>
		return ((uint32_t *)cmem)[f];
   33836:	687a      	ldr	r2, [r7, #4]
		merge_chunks(h, c, right_chunk(h, c));
   33838:	eb05 0252 	add.w	r2, r5, r2, lsr #1
   3383c:	4629      	mov	r1, r5
   3383e:	4620      	mov	r0, r4
   33840:	f7ff ff38 	bl	336b4 <merge_chunks>
   33844:	e7d8      	b.n	337f8 <free_chunk+0x2c>
		return ((uint16_t *)cmem)[f];
   33846:	887a      	ldrh	r2, [r7, #2]
   33848:	e7f6      	b.n	33838 <free_chunk+0x6c>
   3384a:	5ba1      	ldrh	r1, [r4, r6]
   3384c:	e7d9      	b.n	33802 <free_chunk+0x36>
   3384e:	8853      	ldrh	r3, [r2, #2]
   33850:	e7de      	b.n	33810 <free_chunk+0x44>
		free_list_remove(h, left_chunk(h, c));
   33852:	4620      	mov	r0, r4
   33854:	f7ff ff68 	bl	33728 <free_list_remove>
	return big_heap_chunks(h->end_chunk);
   33858:	68a3      	ldr	r3, [r4, #8]
	if (big_heap(h)) {
   3385a:	f5b3 4f00 	cmp.w	r3, #32768	; 0x8000
   3385e:	d30c      	bcc.n	3387a <free_chunk+0xae>
		return ((uint32_t *)cmem)[f];
   33860:	59a1      	ldr	r1, [r4, r6]
		merge_chunks(h, left_chunk(h, c), c);
   33862:	462a      	mov	r2, r5
   33864:	1a69      	subs	r1, r5, r1
   33866:	4620      	mov	r0, r4
   33868:	f7ff ff24 	bl	336b4 <merge_chunks>
	return big_heap_chunks(h->end_chunk);
   3386c:	68a3      	ldr	r3, [r4, #8]
	if (big_heap(h)) {
   3386e:	f5b3 4f00 	cmp.w	r3, #32768	; 0x8000
   33872:	d304      	bcc.n	3387e <free_chunk+0xb2>
		return ((uint32_t *)cmem)[f];
   33874:	59a3      	ldr	r3, [r4, r6]
	return c - chunk_field(h, c, LEFT_SIZE);
   33876:	1aed      	subs	r5, r5, r3
   33878:	e7cd      	b.n	33816 <free_chunk+0x4a>
		return ((uint16_t *)cmem)[f];
   3387a:	5ba1      	ldrh	r1, [r4, r6]
   3387c:	e7f1      	b.n	33862 <free_chunk+0x96>
   3387e:	5ba3      	ldrh	r3, [r4, r6]
   33880:	e7f9      	b.n	33876 <free_chunk+0xaa>

00033882 <alloc_chunk>:
{
   33882:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
	return big_heap_chunks(h->end_chunk);
   33884:	6885      	ldr	r5, [r0, #8]
	return big_heap(h) ? 8 : 4;
   33886:	f5b5 4f00 	cmp.w	r5, #32768	; 0x8000
   3388a:	d311      	bcc.n	338b0 <alloc_chunk+0x2e>
   3388c:	2308      	movs	r3, #8
	return (bytes + CHUNK_UNIT - 1U) / CHUNK_UNIT;
   3388e:	3308      	adds	r3, #8
	unsigned int usable_sz = sz - min_chunk_size(h) + 1;
   33890:	eba1 03d3 	sub.w	r3, r1, r3, lsr #3
   33894:	3301      	adds	r3, #1
	return 31 - __builtin_clz(usable_sz);
   33896:	fab3 f383 	clz	r3, r3
   3389a:	f1c3 021f 	rsb	r2, r3, #31
	if (b->next) {
   3389e:	f1c3 0423 	rsb	r4, r3, #35	; 0x23
   338a2:	f850 c024 	ldr.w	ip, [r0, r4, lsl #2]
   338a6:	f1bc 0f00 	cmp.w	ip, #0
   338aa:	d024      	beq.n	338f6 <alloc_chunk+0x74>
		int i = CONFIG_SYS_HEAP_ALLOC_LOOPS;
   338ac:	2603      	movs	r6, #3
   338ae:	e010      	b.n	338d2 <alloc_chunk+0x50>
	return big_heap(h) ? 8 : 4;
   338b0:	2304      	movs	r3, #4
   338b2:	e7ec      	b.n	3388e <alloc_chunk+0xc>
		return ((uint16_t *)cmem)[f];
   338b4:	f8b7 e002 	ldrh.w	lr, [r7, #2]
   338b8:	e015      	b.n	338e6 <alloc_chunk+0x64>
				free_list_remove_bidx(h, c, bi);
   338ba:	4621      	mov	r1, r4
   338bc:	f7ff fe42 	bl	33544 <free_list_remove_bidx>
				return c;
   338c0:	e021      	b.n	33906 <alloc_chunk+0x84>
   338c2:	88fc      	ldrh	r4, [r7, #6]
			b->next = next_free_chunk(h, c);
   338c4:	1d17      	adds	r7, r2, #4
   338c6:	f840 4027 	str.w	r4, [r0, r7, lsl #2]
		} while (--i && b->next != first);
   338ca:	3e01      	subs	r6, #1
   338cc:	d013      	beq.n	338f6 <alloc_chunk+0x74>
   338ce:	45a4      	cmp	ip, r4
   338d0:	d011      	beq.n	338f6 <alloc_chunk+0x74>
			chunkid_t c = b->next;
   338d2:	1d14      	adds	r4, r2, #4
   338d4:	f850 4024 	ldr.w	r4, [r0, r4, lsl #2]
	void *cmem = &buf[c];
   338d8:	eb00 07c4 	add.w	r7, r0, r4, lsl #3
	if (big_heap(h)) {
   338dc:	f5b5 4f00 	cmp.w	r5, #32768	; 0x8000
   338e0:	d3e8      	bcc.n	338b4 <alloc_chunk+0x32>
		return ((uint32_t *)cmem)[f];
   338e2:	f8d7 e004 	ldr.w	lr, [r7, #4]
			if (chunk_size(h, c) >= sz) {
   338e6:	ebb1 0f5e 	cmp.w	r1, lr, lsr #1
   338ea:	d9e6      	bls.n	338ba <alloc_chunk+0x38>
	if (big_heap(h)) {
   338ec:	f5b5 4f00 	cmp.w	r5, #32768	; 0x8000
   338f0:	d3e7      	bcc.n	338c2 <alloc_chunk+0x40>
		return ((uint32_t *)cmem)[f];
   338f2:	68fc      	ldr	r4, [r7, #12]
   338f4:	e7e6      	b.n	338c4 <alloc_chunk+0x42>
	uint32_t bmask = h->avail_buckets & ~((1 << (bi + 1)) - 1);
   338f6:	68c4      	ldr	r4, [r0, #12]
   338f8:	f1c3 0220 	rsb	r2, r3, #32
   338fc:	2301      	movs	r3, #1
   338fe:	4093      	lsls	r3, r2
   33900:	425b      	negs	r3, r3
	if (bmask != 0U) {
   33902:	401c      	ands	r4, r3
   33904:	d101      	bne.n	3390a <alloc_chunk+0x88>
}
   33906:	4620      	mov	r0, r4
   33908:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
		int minbucket = __builtin_ctz(bmask);
   3390a:	fa94 f2a4 	rbit	r2, r4
   3390e:	fab2 f282 	clz	r2, r2
		chunkid_t c = h->buckets[minbucket].next;
   33912:	1d13      	adds	r3, r2, #4
   33914:	f850 4023 	ldr.w	r4, [r0, r3, lsl #2]
		free_list_remove_bidx(h, c, minbucket);
   33918:	4621      	mov	r1, r4
   3391a:	f7ff fe13 	bl	33544 <free_list_remove_bidx>
		return c;
   3391e:	e7f2      	b.n	33906 <alloc_chunk+0x84>

00033920 <sys_heap_alloc>:
{
   33920:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
	struct z_heap *h = heap->heap;
   33922:	6805      	ldr	r5, [r0, #0]
	if (bytes == 0U || size_too_big(h, bytes)) {
   33924:	2900      	cmp	r1, #0
   33926:	d03c      	beq.n	339a2 <sys_heap_alloc+0x82>
   33928:	460b      	mov	r3, r1
	return (bytes / CHUNK_UNIT) >= h->end_chunk;
   3392a:	68aa      	ldr	r2, [r5, #8]
   3392c:	ebb2 0fd1 	cmp.w	r2, r1, lsr #3
   33930:	d939      	bls.n	339a6 <sys_heap_alloc+0x86>
	return big_heap(h) ? 8 : 4;
   33932:	f5b2 4f00 	cmp.w	r2, #32768	; 0x8000
   33936:	d320      	bcc.n	3397a <sys_heap_alloc+0x5a>
   33938:	2408      	movs	r4, #8
	return chunksz(chunk_header_bytes(h) + bytes);
   3393a:	441c      	add	r4, r3
	return (bytes + CHUNK_UNIT - 1U) / CHUNK_UNIT;
   3393c:	3407      	adds	r4, #7
   3393e:	08e4      	lsrs	r4, r4, #3
	chunkid_t c = alloc_chunk(h, chunk_sz);
   33940:	4621      	mov	r1, r4
   33942:	4628      	mov	r0, r5
   33944:	f7ff ff9d 	bl	33882 <alloc_chunk>
	if (c == 0U) {
   33948:	4607      	mov	r7, r0
   3394a:	b370      	cbz	r0, 339aa <sys_heap_alloc+0x8a>
	void *cmem = &buf[c];
   3394c:	eb05 06c0 	add.w	r6, r5, r0, lsl #3
	return big_heap_chunks(h->end_chunk);
   33950:	68ab      	ldr	r3, [r5, #8]
	if (big_heap(h)) {
   33952:	f5b3 4f00 	cmp.w	r3, #32768	; 0x8000
   33956:	d312      	bcc.n	3397e <sys_heap_alloc+0x5e>
		return ((uint32_t *)cmem)[f];
   33958:	6873      	ldr	r3, [r6, #4]
	if (chunk_size(h, c) > chunk_sz) {
   3395a:	ebb4 0f53 	cmp.w	r4, r3, lsr #1
   3395e:	d310      	bcc.n	33982 <sys_heap_alloc+0x62>
	return big_heap_chunks(h->end_chunk);
   33960:	68ab      	ldr	r3, [r5, #8]
	if (big_heap(h)) {
   33962:	f5b3 4f00 	cmp.w	r3, #32768	; 0x8000
   33966:	d317      	bcc.n	33998 <sys_heap_alloc+0x78>
			((uint32_t *)cmem)[SIZE_AND_USED] |= 1U;
   33968:	6873      	ldr	r3, [r6, #4]
   3396a:	f043 0301 	orr.w	r3, r3, #1
   3396e:	6073      	str	r3, [r6, #4]
	return chunk_mem(h, c);
   33970:	4639      	mov	r1, r7
   33972:	4628      	mov	r0, r5
   33974:	f7ff fddb 	bl	3352e <chunk_mem>
}
   33978:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
	return big_heap(h) ? 8 : 4;
   3397a:	2404      	movs	r4, #4
   3397c:	e7dd      	b.n	3393a <sys_heap_alloc+0x1a>
		return ((uint16_t *)cmem)[f];
   3397e:	8873      	ldrh	r3, [r6, #2]
   33980:	e7eb      	b.n	3395a <sys_heap_alloc+0x3a>
		split_chunks(h, c, c + chunk_sz);
   33982:	443c      	add	r4, r7
   33984:	4622      	mov	r2, r4
   33986:	4639      	mov	r1, r7
   33988:	4628      	mov	r0, r5
   3398a:	f7ff fe58 	bl	3363e <split_chunks>
		free_list_add(h, c + chunk_sz);
   3398e:	4621      	mov	r1, r4
   33990:	4628      	mov	r0, r5
   33992:	f7ff fef2 	bl	3377a <free_list_add>
   33996:	e7e3      	b.n	33960 <sys_heap_alloc+0x40>
			((uint16_t *)cmem)[SIZE_AND_USED] |= 1U;
   33998:	8873      	ldrh	r3, [r6, #2]
   3399a:	f043 0301 	orr.w	r3, r3, #1
   3399e:	8073      	strh	r3, [r6, #2]
   339a0:	e7e6      	b.n	33970 <sys_heap_alloc+0x50>
		return NULL;
   339a2:	2000      	movs	r0, #0
   339a4:	e7e8      	b.n	33978 <sys_heap_alloc+0x58>
   339a6:	2000      	movs	r0, #0
   339a8:	e7e6      	b.n	33978 <sys_heap_alloc+0x58>
		return NULL;
   339aa:	2000      	movs	r0, #0
   339ac:	e7e4      	b.n	33978 <sys_heap_alloc+0x58>

000339ae <extract_decimal>:
{
   339ae:	b410      	push	{r4}
   339b0:	4604      	mov	r4, r0
	const char *sp = *str;
   339b2:	6802      	ldr	r2, [r0, #0]
	size_t val = 0;
   339b4:	2000      	movs	r0, #0
	while (isdigit((int)(unsigned char)*sp)) {
   339b6:	7813      	ldrb	r3, [r2, #0]
			(((unsigned)c) <= (unsigned)'~'));
}

static inline int isdigit(int a)
{
	return (int)(((unsigned)(a)-(unsigned)'0') < 10U);
   339b8:	f1a3 0130 	sub.w	r1, r3, #48	; 0x30
   339bc:	2909      	cmp	r1, #9
   339be:	d806      	bhi.n	339ce <extract_decimal+0x20>
		val = 10U * val + *sp++ - '0';
   339c0:	eb00 0080 	add.w	r0, r0, r0, lsl #2
   339c4:	3201      	adds	r2, #1
   339c6:	eb03 0040 	add.w	r0, r3, r0, lsl #1
   339ca:	3830      	subs	r0, #48	; 0x30
   339cc:	e7f3      	b.n	339b6 <extract_decimal+0x8>
	*str = sp;
   339ce:	6022      	str	r2, [r4, #0]
}
   339d0:	bc10      	pop	{r4}
   339d2:	4770      	bx	lr

000339d4 <encode_uint>:
{
   339d4:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
   339d8:	b083      	sub	sp, #12
   339da:	4604      	mov	r4, r0
   339dc:	460d      	mov	r5, r1
   339de:	9201      	str	r2, [sp, #4]
   339e0:	469a      	mov	sl, r3
   339e2:	f8dd 8030 	ldr.w	r8, [sp, #48]	; 0x30
	bool upcase = isupper((int)conv->specifier);
   339e6:	78d3      	ldrb	r3, [r2, #3]
	return (int)(((unsigned)(a)-(unsigned)'A') < 26U);
   339e8:	f1a3 0b41 	sub.w	fp, r3, #65	; 0x41
	switch (specifier) {
   339ec:	2b6f      	cmp	r3, #111	; 0x6f
   339ee:	d00f      	beq.n	33a10 <encode_uint+0x3c>
   339f0:	d906      	bls.n	33a00 <encode_uint+0x2c>
   339f2:	2b70      	cmp	r3, #112	; 0x70
   339f4:	d00f      	beq.n	33a16 <encode_uint+0x42>
   339f6:	2b78      	cmp	r3, #120	; 0x78
   339f8:	d110      	bne.n	33a1c <encode_uint+0x48>
		return 16;
   339fa:	f04f 0910 	mov.w	r9, #16
   339fe:	e026      	b.n	33a4e <encode_uint+0x7a>
	switch (specifier) {
   33a00:	2b58      	cmp	r3, #88	; 0x58
   33a02:	d002      	beq.n	33a0a <encode_uint+0x36>
   33a04:	f04f 090a 	mov.w	r9, #10
   33a08:	e021      	b.n	33a4e <encode_uint+0x7a>
		return 16;
   33a0a:	f04f 0910 	mov.w	r9, #16
   33a0e:	e01e      	b.n	33a4e <encode_uint+0x7a>
		return 8;
   33a10:	f04f 0908 	mov.w	r9, #8
   33a14:	e01b      	b.n	33a4e <encode_uint+0x7a>
		return 16;
   33a16:	f04f 0910 	mov.w	r9, #16
   33a1a:	e018      	b.n	33a4e <encode_uint+0x7a>
	switch (specifier) {
   33a1c:	f04f 090a 	mov.w	r9, #10
	char *bp = bps + (bpe - bps);
   33a20:	e015      	b.n	33a4e <encode_uint+0x7a>
		*--bp = (lsv <= 9) ? ('0' + lsv)
   33a22:	f1bb 0f19 	cmp.w	fp, #25
   33a26:	d820      	bhi.n	33a6a <encode_uint+0x96>
			: upcase ? ('A' + lsv - 10) : ('a' + lsv - 10);
   33a28:	b2d2      	uxtb	r2, r2
		*--bp = (lsv <= 9) ? ('0' + lsv)
   33a2a:	3237      	adds	r2, #55	; 0x37
   33a2c:	b2d2      	uxtb	r2, r2
   33a2e:	f808 2d01 	strb.w	r2, [r8, #-1]!
		value /= radix;
   33a32:	4632      	mov	r2, r6
   33a34:	463b      	mov	r3, r7
   33a36:	4620      	mov	r0, r4
   33a38:	4629      	mov	r1, r5
   33a3a:	f7d8 fc61 	bl	c300 <__aeabi_uldivmod>
	} while ((value != 0) && (bps < bp));
   33a3e:	42bd      	cmp	r5, r7
   33a40:	bf08      	it	eq
   33a42:	42b4      	cmpeq	r4, r6
   33a44:	d315      	bcc.n	33a72 <encode_uint+0x9e>
   33a46:	45d0      	cmp	r8, sl
   33a48:	d913      	bls.n	33a72 <encode_uint+0x9e>
		value /= radix;
   33a4a:	4604      	mov	r4, r0
   33a4c:	460d      	mov	r5, r1
		unsigned int lsv = (unsigned int)(value % radix);
   33a4e:	464e      	mov	r6, r9
   33a50:	2700      	movs	r7, #0
   33a52:	464a      	mov	r2, r9
   33a54:	463b      	mov	r3, r7
   33a56:	4620      	mov	r0, r4
   33a58:	4629      	mov	r1, r5
   33a5a:	f7d8 fc51 	bl	c300 <__aeabi_uldivmod>
		*--bp = (lsv <= 9) ? ('0' + lsv)
   33a5e:	2a09      	cmp	r2, #9
   33a60:	d8df      	bhi.n	33a22 <encode_uint+0x4e>
   33a62:	b2d2      	uxtb	r2, r2
   33a64:	3230      	adds	r2, #48	; 0x30
   33a66:	b2d2      	uxtb	r2, r2
   33a68:	e7e1      	b.n	33a2e <encode_uint+0x5a>
			: upcase ? ('A' + lsv - 10) : ('a' + lsv - 10);
   33a6a:	b2d2      	uxtb	r2, r2
		*--bp = (lsv <= 9) ? ('0' + lsv)
   33a6c:	3257      	adds	r2, #87	; 0x57
   33a6e:	b2d2      	uxtb	r2, r2
   33a70:	e7dd      	b.n	33a2e <encode_uint+0x5a>
	if (conv->flag_hash) {
   33a72:	9b01      	ldr	r3, [sp, #4]
   33a74:	781b      	ldrb	r3, [r3, #0]
   33a76:	f013 0f20 	tst.w	r3, #32
   33a7a:	d005      	beq.n	33a88 <encode_uint+0xb4>
		if (radix == 8) {
   33a7c:	f1b9 0f08 	cmp.w	r9, #8
   33a80:	d006      	beq.n	33a90 <encode_uint+0xbc>
		} else if (radix == 16) {
   33a82:	f1b9 0f10 	cmp.w	r9, #16
   33a86:	d009      	beq.n	33a9c <encode_uint+0xc8>
}
   33a88:	4640      	mov	r0, r8
   33a8a:	b003      	add	sp, #12
   33a8c:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
			conv->altform_0 = true;
   33a90:	9a01      	ldr	r2, [sp, #4]
   33a92:	7893      	ldrb	r3, [r2, #2]
   33a94:	f043 0308 	orr.w	r3, r3, #8
   33a98:	7093      	strb	r3, [r2, #2]
   33a9a:	e7f5      	b.n	33a88 <encode_uint+0xb4>
			conv->altform_0c = true;
   33a9c:	9a01      	ldr	r2, [sp, #4]
   33a9e:	7893      	ldrb	r3, [r2, #2]
   33aa0:	f043 0310 	orr.w	r3, r3, #16
   33aa4:	7093      	strb	r3, [r2, #2]
   33aa6:	e7ef      	b.n	33a88 <encode_uint+0xb4>

00033aa8 <outs>:
{
   33aa8:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   33aac:	4607      	mov	r7, r0
   33aae:	460e      	mov	r6, r1
   33ab0:	4614      	mov	r4, r2
   33ab2:	4698      	mov	r8, r3
	size_t count = 0;
   33ab4:	2500      	movs	r5, #0
	while ((sp < ep) || ((ep == NULL) && *sp)) {
   33ab6:	e006      	b.n	33ac6 <outs+0x1e>
		int rc = out((int)*sp++, ctx);
   33ab8:	4631      	mov	r1, r6
   33aba:	f814 0b01 	ldrb.w	r0, [r4], #1
   33abe:	47b8      	blx	r7
		if (rc < 0) {
   33ac0:	2800      	cmp	r0, #0
   33ac2:	db09      	blt.n	33ad8 <outs+0x30>
		++count;
   33ac4:	3501      	adds	r5, #1
	while ((sp < ep) || ((ep == NULL) && *sp)) {
   33ac6:	4544      	cmp	r4, r8
   33ac8:	d3f6      	bcc.n	33ab8 <outs+0x10>
   33aca:	f1b8 0f00 	cmp.w	r8, #0
   33ace:	d102      	bne.n	33ad6 <outs+0x2e>
   33ad0:	7823      	ldrb	r3, [r4, #0]
   33ad2:	2b00      	cmp	r3, #0
   33ad4:	d1f0      	bne.n	33ab8 <outs+0x10>
	return (int)count;
   33ad6:	4628      	mov	r0, r5
}
   33ad8:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}

00033adc <assert_post_action>:
	if (k_is_user_context()) {
		k_oops();
	}
#endif

	k_panic();
   33adc:	4040      	eors	r0, r0
   33ade:	f380 8811 	msr	BASEPRI, r0
   33ae2:	f04f 0004 	mov.w	r0, #4
   33ae6:	df02      	svc	2
}
   33ae8:	4770      	bx	lr

00033aea <_ConfigAbsSyms>:
GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_MCUBOOT_SIGNATURE_KEY_FILE, 1);
GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_MCUBOOT_EXTRA_IMGTOOL_ARGS, 1);
GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_COMPAT_INCLUDES, 1);
GEN_ABSOLUTE_SYM_KCONFIG(CONFIG_BT_LBS_SECURITY_ENABLED, 1);

GEN_ABS_SYM_END
   33aea:	4770      	bx	lr

00033aec <z_log_minimal_printk>:
{
   33aec:	b40f      	push	{r0, r1, r2, r3}
   33aee:	b500      	push	{lr}
   33af0:	b083      	sub	sp, #12
   33af2:	a904      	add	r1, sp, #16
   33af4:	f851 0b04 	ldr.w	r0, [r1], #4
	va_start(ap, fmt);
   33af8:	9101      	str	r1, [sp, #4]
	vprintk(fmt, ap);
   33afa:	f7e8 fccd 	bl	1c498 <vprintk>
}
   33afe:	b003      	add	sp, #12
   33b00:	f85d eb04 	ldr.w	lr, [sp], #4
   33b04:	b004      	add	sp, #16
   33b06:	4770      	bx	lr

00033b08 <nvs_flash_rd>:
{
   33b08:	b570      	push	{r4, r5, r6, lr}
	offset = fs->offset;
   33b0a:	6805      	ldr	r5, [r0, #0]
	offset += fs->sector_size * (addr >> ADDR_SECT_SHIFT);
   33b0c:	8984      	ldrh	r4, [r0, #12]
   33b0e:	0c0e      	lsrs	r6, r1, #16
   33b10:	fb06 5404 	mla	r4, r6, r4, r5
	offset += addr & ADDR_OFFS_MASK;
   33b14:	fa14 f181 	uxtah	r1, r4, r1
	rc = flash_read(fs->flash_device, offset, data, len);
   33b18:	6a80      	ldr	r0, [r0, #40]	; 0x28
	const struct flash_driver_api *api =
   33b1a:	6884      	ldr	r4, [r0, #8]
	return api->read(dev, offset, data, len);
   33b1c:	6824      	ldr	r4, [r4, #0]
   33b1e:	47a0      	blx	r4
}
   33b20:	bd70      	pop	{r4, r5, r6, pc}

00033b22 <nvs_flash_ate_rd>:
{
   33b22:	b508      	push	{r3, lr}
	return nvs_flash_rd(fs, addr, entry, sizeof(struct nvs_ate));
   33b24:	2308      	movs	r3, #8
   33b26:	f7ff ffef 	bl	33b08 <nvs_flash_rd>
}
   33b2a:	bd08      	pop	{r3, pc}

00033b2c <nvs_ate_cmp_const>:
	for (i = 0; i < sizeof(struct nvs_ate); i++) {
   33b2c:	2300      	movs	r3, #0
   33b2e:	e000      	b.n	33b32 <nvs_ate_cmp_const+0x6>
   33b30:	3301      	adds	r3, #1
   33b32:	2b07      	cmp	r3, #7
   33b34:	d804      	bhi.n	33b40 <nvs_ate_cmp_const+0x14>
		if (data8[i] != value) {
   33b36:	5cc2      	ldrb	r2, [r0, r3]
   33b38:	428a      	cmp	r2, r1
   33b3a:	d0f9      	beq.n	33b30 <nvs_ate_cmp_const+0x4>
			return 1;
   33b3c:	2001      	movs	r0, #1
}
   33b3e:	4770      	bx	lr
	return 0;
   33b40:	2000      	movs	r0, #0
   33b42:	4770      	bx	lr

00033b44 <nvs_sector_advance>:
	*addr += (1 << ADDR_SECT_SHIFT);
   33b44:	680b      	ldr	r3, [r1, #0]
   33b46:	f503 3380 	add.w	r3, r3, #65536	; 0x10000
   33b4a:	600b      	str	r3, [r1, #0]
	if ((*addr >> ADDR_SECT_SHIFT) == fs->sector_count) {
   33b4c:	89c2      	ldrh	r2, [r0, #14]
   33b4e:	ebb2 4f13 	cmp.w	r2, r3, lsr #16
   33b52:	d000      	beq.n	33b56 <nvs_sector_advance+0x12>
}
   33b54:	4770      	bx	lr
		*addr -= (fs->sector_count << ADDR_SECT_SHIFT);
   33b56:	eba3 4302 	sub.w	r3, r3, r2, lsl #16
   33b5a:	600b      	str	r3, [r1, #0]
}
   33b5c:	e7fa      	b.n	33b54 <nvs_sector_advance+0x10>

00033b5e <nvs_flash_block_cmp>:
{
   33b5e:	e92d 43f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, lr}
   33b62:	b089      	sub	sp, #36	; 0x24
   33b64:	4681      	mov	r9, r0
   33b66:	460e      	mov	r6, r1
   33b68:	4617      	mov	r7, r2
   33b6a:	461d      	mov	r5, r3
		NVS_BLOCK_SIZE & ~(fs->flash_parameters->write_block_size - 1U);
   33b6c:	6ac3      	ldr	r3, [r0, #44]	; 0x2c
   33b6e:	681b      	ldr	r3, [r3, #0]
   33b70:	f1c3 0800 	rsb	r8, r3, #0
	block_size =
   33b74:	f008 0820 	and.w	r8, r8, #32
	while (len) {
   33b78:	e002      	b.n	33b80 <nvs_flash_block_cmp+0x22>
		len -= bytes_to_cmp;
   33b7a:	1b2d      	subs	r5, r5, r4
		addr += bytes_to_cmp;
   33b7c:	4426      	add	r6, r4
		data8 += bytes_to_cmp;
   33b7e:	4427      	add	r7, r4
	while (len) {
   33b80:	b1a5      	cbz	r5, 33bac <nvs_flash_block_cmp+0x4e>
		bytes_to_cmp = MIN(block_size, len);
   33b82:	462c      	mov	r4, r5
   33b84:	4545      	cmp	r5, r8
   33b86:	bf28      	it	cs
   33b88:	4644      	movcs	r4, r8
		rc = nvs_flash_rd(fs, addr, buf, bytes_to_cmp);
   33b8a:	4623      	mov	r3, r4
   33b8c:	466a      	mov	r2, sp
   33b8e:	4631      	mov	r1, r6
   33b90:	4648      	mov	r0, r9
   33b92:	f7ff ffb9 	bl	33b08 <nvs_flash_rd>
		if (rc) {
   33b96:	4603      	mov	r3, r0
   33b98:	b948      	cbnz	r0, 33bae <nvs_flash_block_cmp+0x50>
		rc = memcmp(data8, buf, bytes_to_cmp);
   33b9a:	4622      	mov	r2, r4
   33b9c:	4669      	mov	r1, sp
   33b9e:	4638      	mov	r0, r7
   33ba0:	f001 ff95 	bl	35ace <memcmp>
		if (rc) {
   33ba4:	2800      	cmp	r0, #0
   33ba6:	d0e8      	beq.n	33b7a <nvs_flash_block_cmp+0x1c>
			return 1;
   33ba8:	2301      	movs	r3, #1
   33baa:	e000      	b.n	33bae <nvs_flash_block_cmp+0x50>
	return 0;
   33bac:	2300      	movs	r3, #0
}
   33bae:	4618      	mov	r0, r3
   33bb0:	b009      	add	sp, #36	; 0x24
   33bb2:	e8bd 83f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, pc}

00033bb6 <nvs_flash_cmp_const>:
{
   33bb6:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   33bba:	b088      	sub	sp, #32
   33bbc:	4680      	mov	r8, r0
   33bbe:	460e      	mov	r6, r1
   33bc0:	4611      	mov	r1, r2
   33bc2:	461c      	mov	r4, r3
		NVS_BLOCK_SIZE & ~(fs->flash_parameters->write_block_size - 1U);
   33bc4:	6ac3      	ldr	r3, [r0, #44]	; 0x2c
   33bc6:	681f      	ldr	r7, [r3, #0]
   33bc8:	427f      	negs	r7, r7
	block_size =
   33bca:	f007 0720 	and.w	r7, r7, #32
	(void)memset(cmp, value, block_size);
   33bce:	463a      	mov	r2, r7
   33bd0:	4668      	mov	r0, sp
   33bd2:	f001 ffb7 	bl	35b44 <memset>
	while (len) {
   33bd6:	b174      	cbz	r4, 33bf6 <nvs_flash_cmp_const+0x40>
		bytes_to_cmp = MIN(block_size, len);
   33bd8:	4625      	mov	r5, r4
   33bda:	42bc      	cmp	r4, r7
   33bdc:	bf28      	it	cs
   33bde:	463d      	movcs	r5, r7
		rc = nvs_flash_block_cmp(fs, addr, cmp, bytes_to_cmp);
   33be0:	462b      	mov	r3, r5
   33be2:	466a      	mov	r2, sp
   33be4:	4631      	mov	r1, r6
   33be6:	4640      	mov	r0, r8
   33be8:	f7ff ffb9 	bl	33b5e <nvs_flash_block_cmp>
		if (rc) {
   33bec:	4603      	mov	r3, r0
   33bee:	b918      	cbnz	r0, 33bf8 <nvs_flash_cmp_const+0x42>
		len -= bytes_to_cmp;
   33bf0:	1b64      	subs	r4, r4, r5
		addr += bytes_to_cmp;
   33bf2:	442e      	add	r6, r5
   33bf4:	e7ef      	b.n	33bd6 <nvs_flash_cmp_const+0x20>
	return 0;
   33bf6:	2300      	movs	r3, #0
}
   33bf8:	4618      	mov	r0, r3
   33bfa:	b008      	add	sp, #32
   33bfc:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}

00033c00 <nvs_flash_erase_sector>:
{
   33c00:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
   33c04:	4604      	mov	r4, r0
	addr &= ADDR_SECT_MASK;
   33c06:	ea4f 4811 	mov.w	r8, r1, lsr #16
   33c0a:	ea4f 4808 	mov.w	r8, r8, lsl #16
	offset = fs->offset;
   33c0e:	6805      	ldr	r5, [r0, #0]
	offset += fs->sector_size * (addr >> ADDR_SECT_SHIFT);
   33c10:	f8b0 900c 	ldrh.w	r9, [r0, #12]
   33c14:	0c09      	lsrs	r1, r1, #16
   33c16:	fb01 5509 	mla	r5, r1, r9, r5
	rc = flash_erase(fs->flash_device, offset, fs->sector_size);
   33c1a:	6a87      	ldr	r7, [r0, #40]	; 0x28
	const struct flash_driver_api *api =
   33c1c:	f8d7 a008 	ldr.w	sl, [r7, #8]
	if (api->write_protection != NULL) {
   33c20:	f8da 300c 	ldr.w	r3, [sl, #12]
   33c24:	b123      	cbz	r3, 33c30 <nvs_flash_erase_sector+0x30>
		rc = api->write_protection(dev, false);
   33c26:	2100      	movs	r1, #0
   33c28:	4638      	mov	r0, r7
   33c2a:	4798      	blx	r3
		if (rc) {
   33c2c:	4606      	mov	r6, r0
   33c2e:	b960      	cbnz	r0, 33c4a <nvs_flash_erase_sector+0x4a>
	rc = api->erase(dev, offset, size);
   33c30:	f8da 3008 	ldr.w	r3, [sl, #8]
   33c34:	464a      	mov	r2, r9
   33c36:	4629      	mov	r1, r5
   33c38:	4638      	mov	r0, r7
   33c3a:	4798      	blx	r3
   33c3c:	4606      	mov	r6, r0
	if (api->write_protection != NULL) {
   33c3e:	f8da 300c 	ldr.w	r3, [sl, #12]
   33c42:	b113      	cbz	r3, 33c4a <nvs_flash_erase_sector+0x4a>
		(void) api->write_protection(dev, true);
   33c44:	2101      	movs	r1, #1
   33c46:	4638      	mov	r0, r7
   33c48:	4798      	blx	r3
	if (rc) {
   33c4a:	b116      	cbz	r6, 33c52 <nvs_flash_erase_sector+0x52>
}
   33c4c:	4630      	mov	r0, r6
   33c4e:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
	if (nvs_flash_cmp_const(fs, addr, fs->flash_parameters->erase_value,
   33c52:	6ae2      	ldr	r2, [r4, #44]	; 0x2c
   33c54:	89a3      	ldrh	r3, [r4, #12]
   33c56:	7912      	ldrb	r2, [r2, #4]
   33c58:	4641      	mov	r1, r8
   33c5a:	4620      	mov	r0, r4
   33c5c:	f7ff ffab 	bl	33bb6 <nvs_flash_cmp_const>
   33c60:	2800      	cmp	r0, #0
   33c62:	d0f3      	beq.n	33c4c <nvs_flash_erase_sector+0x4c>
		rc = -ENXIO;
   33c64:	f06f 0605 	mvn.w	r6, #5
   33c68:	e7f0      	b.n	33c4c <nvs_flash_erase_sector+0x4c>

00033c6a <nvs_ate_crc8_check>:
{
   33c6a:	b510      	push	{r4, lr}
   33c6c:	4604      	mov	r4, r0
	crc8 = crc8_ccitt(0xff, entry, offsetof(struct nvs_ate, crc8));
   33c6e:	2207      	movs	r2, #7
   33c70:	4601      	mov	r1, r0
   33c72:	20ff      	movs	r0, #255	; 0xff
   33c74:	f7e8 fb92 	bl	1c39c <crc8_ccitt>
	if (crc8 == entry->crc8) {
   33c78:	79e3      	ldrb	r3, [r4, #7]
   33c7a:	4283      	cmp	r3, r0
   33c7c:	d001      	beq.n	33c82 <nvs_ate_crc8_check+0x18>
	return 1;
   33c7e:	2001      	movs	r0, #1
}
   33c80:	bd10      	pop	{r4, pc}
		return 0;
   33c82:	2000      	movs	r0, #0
   33c84:	e7fc      	b.n	33c80 <nvs_ate_crc8_check+0x16>

00033c86 <nvs_ate_valid>:
{
   33c86:	b570      	push	{r4, r5, r6, lr}
   33c88:	4604      	mov	r4, r0
   33c8a:	460d      	mov	r5, r1
	uint8_t write_block_size = fs->flash_parameters->write_block_size;
   33c8c:	6ac3      	ldr	r3, [r0, #44]	; 0x2c
   33c8e:	681b      	ldr	r3, [r3, #0]
   33c90:	b2da      	uxtb	r2, r3
	if (write_block_size <= 1U) {
   33c92:	2a01      	cmp	r2, #1
   33c94:	d90d      	bls.n	33cb2 <nvs_ate_valid+0x2c>
	return (len + (write_block_size - 1U)) & ~(write_block_size - 1U);
   33c96:	1dd6      	adds	r6, r2, #7
   33c98:	4253      	negs	r3, r2
   33c9a:	401e      	ands	r6, r3
	if ((nvs_ate_crc8_check(entry)) ||
   33c9c:	4628      	mov	r0, r5
   33c9e:	f7ff ffe4 	bl	33c6a <nvs_ate_crc8_check>
   33ca2:	b940      	cbnz	r0, 33cb6 <nvs_ate_valid+0x30>
	    (entry->offset >= (fs->sector_size - ate_size))) {
   33ca4:	886a      	ldrh	r2, [r5, #2]
   33ca6:	89a3      	ldrh	r3, [r4, #12]
   33ca8:	1b9b      	subs	r3, r3, r6
	if ((nvs_ate_crc8_check(entry)) ||
   33caa:	429a      	cmp	r2, r3
   33cac:	d205      	bcs.n	33cba <nvs_ate_valid+0x34>
	return 1;
   33cae:	2001      	movs	r0, #1
}
   33cb0:	bd70      	pop	{r4, r5, r6, pc}
		return len;
   33cb2:	2608      	movs	r6, #8
   33cb4:	e7f2      	b.n	33c9c <nvs_ate_valid+0x16>
		return 0;
   33cb6:	2000      	movs	r0, #0
   33cb8:	e7fa      	b.n	33cb0 <nvs_ate_valid+0x2a>
   33cba:	2000      	movs	r0, #0
   33cbc:	e7f8      	b.n	33cb0 <nvs_ate_valid+0x2a>

00033cbe <nvs_recover_last_ate>:
{
   33cbe:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   33cc2:	b082      	sub	sp, #8
   33cc4:	4606      	mov	r6, r0
   33cc6:	4688      	mov	r8, r1
	uint8_t write_block_size = fs->flash_parameters->write_block_size;
   33cc8:	6ac3      	ldr	r3, [r0, #44]	; 0x2c
   33cca:	681f      	ldr	r7, [r3, #0]
   33ccc:	b2fb      	uxtb	r3, r7
	if (write_block_size <= 1U) {
   33cce:	2b01      	cmp	r3, #1
   33cd0:	d90b      	bls.n	33cea <nvs_recover_last_ate+0x2c>
	return (len + (write_block_size - 1U)) & ~(write_block_size - 1U);
   33cd2:	461f      	mov	r7, r3
   33cd4:	3307      	adds	r3, #7
   33cd6:	427f      	negs	r7, r7
   33cd8:	401f      	ands	r7, r3
	*addr -= ate_size;
   33cda:	f8d8 4000 	ldr.w	r4, [r8]
   33cde:	1be4      	subs	r4, r4, r7
   33ce0:	f8c8 4000 	str.w	r4, [r8]
	data_end_addr = *addr & ADDR_SECT_MASK;
   33ce4:	0c25      	lsrs	r5, r4, #16
   33ce6:	042d      	lsls	r5, r5, #16
	while (ate_end_addr > data_end_addr) {
   33ce8:	e002      	b.n	33cf0 <nvs_recover_last_ate+0x32>
		return len;
   33cea:	2708      	movs	r7, #8
   33cec:	e7f5      	b.n	33cda <nvs_recover_last_ate+0x1c>
		ate_end_addr -= ate_size;
   33cee:	1be4      	subs	r4, r4, r7
	while (ate_end_addr > data_end_addr) {
   33cf0:	42ac      	cmp	r4, r5
   33cf2:	d917      	bls.n	33d24 <nvs_recover_last_ate+0x66>
		rc = nvs_flash_ate_rd(fs, ate_end_addr, &end_ate);
   33cf4:	466a      	mov	r2, sp
   33cf6:	4621      	mov	r1, r4
   33cf8:	4630      	mov	r0, r6
   33cfa:	f7ff ff12 	bl	33b22 <nvs_flash_ate_rd>
		if (rc) {
   33cfe:	4603      	mov	r3, r0
   33d00:	b988      	cbnz	r0, 33d26 <nvs_recover_last_ate+0x68>
		if (nvs_ate_valid(fs, &end_ate)) {
   33d02:	4669      	mov	r1, sp
   33d04:	4630      	mov	r0, r6
   33d06:	f7ff ffbe 	bl	33c86 <nvs_ate_valid>
   33d0a:	2800      	cmp	r0, #0
   33d0c:	d0ef      	beq.n	33cee <nvs_recover_last_ate+0x30>
			data_end_addr &= ADDR_SECT_MASK;
   33d0e:	0c2d      	lsrs	r5, r5, #16
   33d10:	042d      	lsls	r5, r5, #16
			data_end_addr += end_ate.offset + end_ate.len;
   33d12:	f8bd 3002 	ldrh.w	r3, [sp, #2]
   33d16:	f8bd 2004 	ldrh.w	r2, [sp, #4]
   33d1a:	4413      	add	r3, r2
   33d1c:	441d      	add	r5, r3
			*addr = ate_end_addr;
   33d1e:	f8c8 4000 	str.w	r4, [r8]
   33d22:	e7e4      	b.n	33cee <nvs_recover_last_ate+0x30>
	return 0;
   33d24:	2300      	movs	r3, #0
}
   33d26:	4618      	mov	r0, r3
   33d28:	b002      	add	sp, #8
   33d2a:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}

00033d2e <nvs_close_ate_valid>:
{
   33d2e:	b538      	push	{r3, r4, r5, lr}
   33d30:	4605      	mov	r5, r0
   33d32:	460c      	mov	r4, r1
	if ((!nvs_ate_valid(fs, entry)) || (entry->len != 0U) ||
   33d34:	f7ff ffa7 	bl	33c86 <nvs_ate_valid>
   33d38:	b1e0      	cbz	r0, 33d74 <nvs_close_ate_valid+0x46>
   33d3a:	88a3      	ldrh	r3, [r4, #4]
   33d3c:	b9cb      	cbnz	r3, 33d72 <nvs_close_ate_valid+0x44>
	    (entry->id != 0xFFFF)) {
   33d3e:	8822      	ldrh	r2, [r4, #0]
	if ((!nvs_ate_valid(fs, entry)) || (entry->len != 0U) ||
   33d40:	f64f 73ff 	movw	r3, #65535	; 0xffff
   33d44:	429a      	cmp	r2, r3
   33d46:	d116      	bne.n	33d76 <nvs_close_ate_valid+0x48>
	uint8_t write_block_size = fs->flash_parameters->write_block_size;
   33d48:	6aeb      	ldr	r3, [r5, #44]	; 0x2c
   33d4a:	681b      	ldr	r3, [r3, #0]
   33d4c:	b2da      	uxtb	r2, r3
	if (write_block_size <= 1U) {
   33d4e:	2a01      	cmp	r2, #1
   33d50:	d90d      	bls.n	33d6e <nvs_close_ate_valid+0x40>
	return (len + (write_block_size - 1U)) & ~(write_block_size - 1U);
   33d52:	4613      	mov	r3, r2
   33d54:	3207      	adds	r2, #7
   33d56:	425b      	negs	r3, r3
   33d58:	4013      	ands	r3, r2
	if ((fs->sector_size - entry->offset) % ate_size) {
   33d5a:	89aa      	ldrh	r2, [r5, #12]
   33d5c:	8861      	ldrh	r1, [r4, #2]
   33d5e:	1a52      	subs	r2, r2, r1
   33d60:	fbb2 f1f3 	udiv	r1, r2, r3
   33d64:	fb03 2311 	mls	r3, r3, r1, r2
   33d68:	b93b      	cbnz	r3, 33d7a <nvs_close_ate_valid+0x4c>
	return 1;
   33d6a:	2001      	movs	r0, #1
   33d6c:	e002      	b.n	33d74 <nvs_close_ate_valid+0x46>
		return len;
   33d6e:	2308      	movs	r3, #8
   33d70:	e7f3      	b.n	33d5a <nvs_close_ate_valid+0x2c>
		return 0;
   33d72:	2000      	movs	r0, #0
}
   33d74:	bd38      	pop	{r3, r4, r5, pc}
		return 0;
   33d76:	2000      	movs	r0, #0
   33d78:	e7fc      	b.n	33d74 <nvs_close_ate_valid+0x46>
		return 0;
   33d7a:	2000      	movs	r0, #0
   33d7c:	e7fa      	b.n	33d74 <nvs_close_ate_valid+0x46>

00033d7e <nvs_prev_ate>:
{
   33d7e:	b5f0      	push	{r4, r5, r6, r7, lr}
   33d80:	b083      	sub	sp, #12
   33d82:	4604      	mov	r4, r0
   33d84:	460d      	mov	r5, r1
	uint8_t write_block_size = fs->flash_parameters->write_block_size;
   33d86:	6ac3      	ldr	r3, [r0, #44]	; 0x2c
   33d88:	681b      	ldr	r3, [r3, #0]
   33d8a:	b2d9      	uxtb	r1, r3
	if (write_block_size <= 1U) {
   33d8c:	2901      	cmp	r1, #1
   33d8e:	d92a      	bls.n	33de6 <nvs_prev_ate+0x68>
	return (len + (write_block_size - 1U)) & ~(write_block_size - 1U);
   33d90:	1dce      	adds	r6, r1, #7
   33d92:	424b      	negs	r3, r1
   33d94:	401e      	ands	r6, r3
	rc = nvs_flash_ate_rd(fs, *addr, ate);
   33d96:	6829      	ldr	r1, [r5, #0]
   33d98:	4620      	mov	r0, r4
   33d9a:	f7ff fec2 	bl	33b22 <nvs_flash_ate_rd>
	if (rc) {
   33d9e:	4607      	mov	r7, r0
   33da0:	b9f0      	cbnz	r0, 33de0 <nvs_prev_ate+0x62>
	*addr += ate_size;
   33da2:	682a      	ldr	r2, [r5, #0]
   33da4:	4432      	add	r2, r6
   33da6:	602a      	str	r2, [r5, #0]
	if (((*addr) & ADDR_OFFS_MASK) != (fs->sector_size - ate_size)) {
   33da8:	b291      	uxth	r1, r2
   33daa:	89a3      	ldrh	r3, [r4, #12]
   33dac:	1b9b      	subs	r3, r3, r6
   33dae:	4299      	cmp	r1, r3
   33db0:	d116      	bne.n	33de0 <nvs_prev_ate+0x62>
	if (((*addr) >> ADDR_SECT_SHIFT) == 0U) {
   33db2:	0c13      	lsrs	r3, r2, #16
   33db4:	d119      	bne.n	33dea <nvs_prev_ate+0x6c>
		*addr += ((fs->sector_count - 1) << ADDR_SECT_SHIFT);
   33db6:	89e3      	ldrh	r3, [r4, #14]
   33db8:	3b01      	subs	r3, #1
   33dba:	eb02 4203 	add.w	r2, r2, r3, lsl #16
   33dbe:	602a      	str	r2, [r5, #0]
	rc = nvs_flash_ate_rd(fs, *addr, &close_ate);
   33dc0:	466a      	mov	r2, sp
   33dc2:	6829      	ldr	r1, [r5, #0]
   33dc4:	4620      	mov	r0, r4
   33dc6:	f7ff feac 	bl	33b22 <nvs_flash_ate_rd>
	if (rc) {
   33dca:	4607      	mov	r7, r0
   33dcc:	b940      	cbnz	r0, 33de0 <nvs_prev_ate+0x62>
	rc = nvs_ate_cmp_const(&close_ate, fs->flash_parameters->erase_value);
   33dce:	6ae3      	ldr	r3, [r4, #44]	; 0x2c
   33dd0:	7919      	ldrb	r1, [r3, #4]
   33dd2:	4668      	mov	r0, sp
   33dd4:	f7ff feaa 	bl	33b2c <nvs_ate_cmp_const>
	if (!rc) {
   33dd8:	b958      	cbnz	r0, 33df2 <nvs_prev_ate+0x74>
		*addr = fs->ate_wra;
   33dda:	6862      	ldr	r2, [r4, #4]
   33ddc:	602a      	str	r2, [r5, #0]
		return 0;
   33dde:	4607      	mov	r7, r0
}
   33de0:	4638      	mov	r0, r7
   33de2:	b003      	add	sp, #12
   33de4:	bdf0      	pop	{r4, r5, r6, r7, pc}
		return len;
   33de6:	2608      	movs	r6, #8
   33de8:	e7d5      	b.n	33d96 <nvs_prev_ate+0x18>
		*addr -= (1 << ADDR_SECT_SHIFT);
   33dea:	f5a2 3280 	sub.w	r2, r2, #65536	; 0x10000
   33dee:	602a      	str	r2, [r5, #0]
   33df0:	e7e6      	b.n	33dc0 <nvs_prev_ate+0x42>
	if (nvs_close_ate_valid(fs, &close_ate)) {
   33df2:	4669      	mov	r1, sp
   33df4:	4620      	mov	r0, r4
   33df6:	f7ff ff9a 	bl	33d2e <nvs_close_ate_valid>
   33dfa:	b130      	cbz	r0, 33e0a <nvs_prev_ate+0x8c>
		(*addr) &= ADDR_SECT_MASK;
   33dfc:	886a      	ldrh	r2, [r5, #2]
		(*addr) += close_ate.offset;
   33dfe:	f8bd 3002 	ldrh.w	r3, [sp, #2]
   33e02:	eb03 4302 	add.w	r3, r3, r2, lsl #16
   33e06:	602b      	str	r3, [r5, #0]
		return 0;
   33e08:	e7ea      	b.n	33de0 <nvs_prev_ate+0x62>
	return nvs_recover_last_ate(fs, addr);
   33e0a:	4629      	mov	r1, r5
   33e0c:	4620      	mov	r0, r4
   33e0e:	f7ff ff56 	bl	33cbe <nvs_recover_last_ate>
   33e12:	4607      	mov	r7, r0
   33e14:	e7e4      	b.n	33de0 <nvs_prev_ate+0x62>

00033e16 <nvs_ate_crc8_update>:
{
   33e16:	b510      	push	{r4, lr}
   33e18:	4604      	mov	r4, r0
	crc8 = crc8_ccitt(0xff, entry, offsetof(struct nvs_ate, crc8));
   33e1a:	2207      	movs	r2, #7
   33e1c:	4601      	mov	r1, r0
   33e1e:	20ff      	movs	r0, #255	; 0xff
   33e20:	f7e8 fabc 	bl	1c39c <crc8_ccitt>
	entry->crc8 = crc8;
   33e24:	71e0      	strb	r0, [r4, #7]
}
   33e26:	bd10      	pop	{r4, pc}

00033e28 <nvs_flash_al_wrt>:
{
   33e28:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
   33e2c:	b089      	sub	sp, #36	; 0x24
	if (!len) {
   33e2e:	2b00      	cmp	r3, #0
   33e30:	d062      	beq.n	33ef8 <nvs_flash_al_wrt+0xd0>
   33e32:	4605      	mov	r5, r0
   33e34:	4691      	mov	r9, r2
   33e36:	4698      	mov	r8, r3
	offset = fs->offset;
   33e38:	6803      	ldr	r3, [r0, #0]
	offset += fs->sector_size * (addr >> ADDR_SECT_SHIFT);
   33e3a:	8984      	ldrh	r4, [r0, #12]
   33e3c:	0c0a      	lsrs	r2, r1, #16
   33e3e:	fb02 3404 	mla	r4, r2, r4, r3
	offset += addr & ADDR_OFFS_MASK;
   33e42:	fa14 f481 	uxtah	r4, r4, r1
   33e46:	46a2      	mov	sl, r4
	blen = len & ~(fs->flash_parameters->write_block_size - 1U);
   33e48:	6ac3      	ldr	r3, [r0, #44]	; 0x2c
   33e4a:	681b      	ldr	r3, [r3, #0]
   33e4c:	425b      	negs	r3, r3
	if (blen > 0) {
   33e4e:	ea13 0608 	ands.w	r6, r3, r8
   33e52:	d107      	bne.n	33e64 <nvs_flash_al_wrt+0x3c>
	int rc = 0;
   33e54:	2700      	movs	r7, #0
	if (len) {
   33e56:	f1b8 0f00 	cmp.w	r8, #0
   33e5a:	d125      	bne.n	33ea8 <nvs_flash_al_wrt+0x80>
}
   33e5c:	4638      	mov	r0, r7
   33e5e:	b009      	add	sp, #36	; 0x24
   33e60:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
		rc = flash_write(fs->flash_device, offset, data8, blen);
   33e64:	f8d0 a028 	ldr.w	sl, [r0, #40]	; 0x28
	const struct flash_driver_api *api =
   33e68:	f8da b008 	ldr.w	fp, [sl, #8]
	if (api->write_protection != NULL) {
   33e6c:	f8db 300c 	ldr.w	r3, [fp, #12]
   33e70:	b123      	cbz	r3, 33e7c <nvs_flash_al_wrt+0x54>
		rc = api->write_protection(dev, false);
   33e72:	2100      	movs	r1, #0
   33e74:	4650      	mov	r0, sl
   33e76:	4798      	blx	r3
		if (rc) {
   33e78:	4607      	mov	r7, r0
   33e7a:	b968      	cbnz	r0, 33e98 <nvs_flash_al_wrt+0x70>
	rc = api->write(dev, offset, data, len);
   33e7c:	f8db 7004 	ldr.w	r7, [fp, #4]
   33e80:	4633      	mov	r3, r6
   33e82:	464a      	mov	r2, r9
   33e84:	4621      	mov	r1, r4
   33e86:	4650      	mov	r0, sl
   33e88:	47b8      	blx	r7
   33e8a:	4607      	mov	r7, r0
	if (api->write_protection != NULL) {
   33e8c:	f8db 300c 	ldr.w	r3, [fp, #12]
   33e90:	b113      	cbz	r3, 33e98 <nvs_flash_al_wrt+0x70>
		(void) api->write_protection(dev, true);
   33e92:	2101      	movs	r1, #1
   33e94:	4650      	mov	r0, sl
   33e96:	4798      	blx	r3
		if (rc) {
   33e98:	2f00      	cmp	r7, #0
   33e9a:	d1df      	bne.n	33e5c <nvs_flash_al_wrt+0x34>
		len -= blen;
   33e9c:	eba8 0806 	sub.w	r8, r8, r6
		offset += blen;
   33ea0:	eb04 0a06 	add.w	sl, r4, r6
		data8 += blen;
   33ea4:	44b1      	add	r9, r6
   33ea6:	e7d6      	b.n	33e56 <nvs_flash_al_wrt+0x2e>
		memcpy(buf, data8, len);
   33ea8:	4642      	mov	r2, r8
   33eaa:	4649      	mov	r1, r9
   33eac:	4668      	mov	r0, sp
   33eae:	f001 fe25 	bl	35afc <memcpy>
		(void)memset(buf + len, fs->flash_parameters->erase_value,
   33eb2:	6aeb      	ldr	r3, [r5, #44]	; 0x2c
			fs->flash_parameters->write_block_size - len);
   33eb4:	681a      	ldr	r2, [r3, #0]
		(void)memset(buf + len, fs->flash_parameters->erase_value,
   33eb6:	eba2 0208 	sub.w	r2, r2, r8
   33eba:	7919      	ldrb	r1, [r3, #4]
   33ebc:	eb0d 0008 	add.w	r0, sp, r8
   33ec0:	f001 fe40 	bl	35b44 <memset>
		rc = flash_write(fs->flash_device, offset, buf,
   33ec4:	6aac      	ldr	r4, [r5, #40]	; 0x28
				 fs->flash_parameters->write_block_size);
   33ec6:	6aeb      	ldr	r3, [r5, #44]	; 0x2c
		rc = flash_write(fs->flash_device, offset, buf,
   33ec8:	681e      	ldr	r6, [r3, #0]
	const struct flash_driver_api *api =
   33eca:	68a5      	ldr	r5, [r4, #8]
	if (api->write_protection != NULL) {
   33ecc:	68eb      	ldr	r3, [r5, #12]
   33ece:	b12b      	cbz	r3, 33edc <nvs_flash_al_wrt+0xb4>
		rc = api->write_protection(dev, false);
   33ed0:	2100      	movs	r1, #0
   33ed2:	4620      	mov	r0, r4
   33ed4:	4798      	blx	r3
		if (rc) {
   33ed6:	4607      	mov	r7, r0
   33ed8:	2800      	cmp	r0, #0
   33eda:	d1bf      	bne.n	33e5c <nvs_flash_al_wrt+0x34>
	rc = api->write(dev, offset, data, len);
   33edc:	686f      	ldr	r7, [r5, #4]
   33ede:	4633      	mov	r3, r6
   33ee0:	466a      	mov	r2, sp
   33ee2:	4651      	mov	r1, sl
   33ee4:	4620      	mov	r0, r4
   33ee6:	47b8      	blx	r7
   33ee8:	4607      	mov	r7, r0
	if (api->write_protection != NULL) {
   33eea:	68eb      	ldr	r3, [r5, #12]
   33eec:	2b00      	cmp	r3, #0
   33eee:	d0b5      	beq.n	33e5c <nvs_flash_al_wrt+0x34>
		(void) api->write_protection(dev, true);
   33ef0:	2101      	movs	r1, #1
   33ef2:	4620      	mov	r0, r4
   33ef4:	4798      	blx	r3
   33ef6:	e7b1      	b.n	33e5c <nvs_flash_al_wrt+0x34>
		return 0;
   33ef8:	2700      	movs	r7, #0
   33efa:	e7af      	b.n	33e5c <nvs_flash_al_wrt+0x34>

00033efc <nvs_flash_data_wrt>:
{
   33efc:	b538      	push	{r3, r4, r5, lr}
   33efe:	4605      	mov	r5, r0
   33f00:	4614      	mov	r4, r2
	rc = nvs_flash_al_wrt(fs, fs->data_wra, data, len);
   33f02:	4613      	mov	r3, r2
   33f04:	460a      	mov	r2, r1
   33f06:	6881      	ldr	r1, [r0, #8]
   33f08:	f7ff ff8e 	bl	33e28 <nvs_flash_al_wrt>
	uint8_t write_block_size = fs->flash_parameters->write_block_size;
   33f0c:	6aeb      	ldr	r3, [r5, #44]	; 0x2c
   33f0e:	681a      	ldr	r2, [r3, #0]
   33f10:	b2d3      	uxtb	r3, r2
	if (write_block_size <= 1U) {
   33f12:	2b01      	cmp	r3, #1
   33f14:	d903      	bls.n	33f1e <nvs_flash_data_wrt+0x22>
	return (len + (write_block_size - 1U)) & ~(write_block_size - 1U);
   33f16:	441c      	add	r4, r3
   33f18:	3c01      	subs	r4, #1
   33f1a:	425a      	negs	r2, r3
   33f1c:	4014      	ands	r4, r2
	fs->data_wra += nvs_al_size(fs, len);
   33f1e:	68aa      	ldr	r2, [r5, #8]
   33f20:	4422      	add	r2, r4
   33f22:	60aa      	str	r2, [r5, #8]
}
   33f24:	bd38      	pop	{r3, r4, r5, pc}

00033f26 <nvs_flash_block_move>:
{
   33f26:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   33f2a:	b088      	sub	sp, #32
   33f2c:	4607      	mov	r7, r0
   33f2e:	460e      	mov	r6, r1
   33f30:	4615      	mov	r5, r2
		NVS_BLOCK_SIZE & ~(fs->flash_parameters->write_block_size - 1U);
   33f32:	6ac3      	ldr	r3, [r0, #44]	; 0x2c
   33f34:	681b      	ldr	r3, [r3, #0]
   33f36:	f1c3 0800 	rsb	r8, r3, #0
	block_size =
   33f3a:	f008 0820 	and.w	r8, r8, #32
	while (len) {
   33f3e:	e001      	b.n	33f44 <nvs_flash_block_move+0x1e>
		len -= bytes_to_copy;
   33f40:	1b2d      	subs	r5, r5, r4
		addr += bytes_to_copy;
   33f42:	4426      	add	r6, r4
	while (len) {
   33f44:	b1a5      	cbz	r5, 33f70 <nvs_flash_block_move+0x4a>
		bytes_to_copy = MIN(block_size, len);
   33f46:	462c      	mov	r4, r5
   33f48:	4545      	cmp	r5, r8
   33f4a:	bf28      	it	cs
   33f4c:	4644      	movcs	r4, r8
		rc = nvs_flash_rd(fs, addr, buf, bytes_to_copy);
   33f4e:	4623      	mov	r3, r4
   33f50:	466a      	mov	r2, sp
   33f52:	4631      	mov	r1, r6
   33f54:	4638      	mov	r0, r7
   33f56:	f7ff fdd7 	bl	33b08 <nvs_flash_rd>
		if (rc) {
   33f5a:	4603      	mov	r3, r0
   33f5c:	b948      	cbnz	r0, 33f72 <nvs_flash_block_move+0x4c>
		rc = nvs_flash_data_wrt(fs, buf, bytes_to_copy);
   33f5e:	4622      	mov	r2, r4
   33f60:	4669      	mov	r1, sp
   33f62:	4638      	mov	r0, r7
   33f64:	f7ff ffca 	bl	33efc <nvs_flash_data_wrt>
		if (rc) {
   33f68:	4603      	mov	r3, r0
   33f6a:	2800      	cmp	r0, #0
   33f6c:	d0e8      	beq.n	33f40 <nvs_flash_block_move+0x1a>
   33f6e:	e000      	b.n	33f72 <nvs_flash_block_move+0x4c>
	return 0;
   33f70:	2300      	movs	r3, #0
}
   33f72:	4618      	mov	r0, r3
   33f74:	b008      	add	sp, #32
   33f76:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}

00033f7a <nvs_flash_ate_wrt>:
{
   33f7a:	b510      	push	{r4, lr}
   33f7c:	4604      	mov	r4, r0
   33f7e:	460a      	mov	r2, r1
	rc = nvs_flash_al_wrt(fs, fs->ate_wra, entry,
   33f80:	2308      	movs	r3, #8
   33f82:	6841      	ldr	r1, [r0, #4]
   33f84:	f7ff ff50 	bl	33e28 <nvs_flash_al_wrt>
	uint8_t write_block_size = fs->flash_parameters->write_block_size;
   33f88:	6ae3      	ldr	r3, [r4, #44]	; 0x2c
   33f8a:	681b      	ldr	r3, [r3, #0]
   33f8c:	b2da      	uxtb	r2, r3
	if (write_block_size <= 1U) {
   33f8e:	2a01      	cmp	r2, #1
   33f90:	d907      	bls.n	33fa2 <nvs_flash_ate_wrt+0x28>
	return (len + (write_block_size - 1U)) & ~(write_block_size - 1U);
   33f92:	4613      	mov	r3, r2
   33f94:	3207      	adds	r2, #7
   33f96:	425b      	negs	r3, r3
   33f98:	4013      	ands	r3, r2
	fs->ate_wra -= nvs_al_size(fs, sizeof(struct nvs_ate));
   33f9a:	6862      	ldr	r2, [r4, #4]
   33f9c:	1ad2      	subs	r2, r2, r3
   33f9e:	6062      	str	r2, [r4, #4]
}
   33fa0:	bd10      	pop	{r4, pc}
		return len;
   33fa2:	2308      	movs	r3, #8
   33fa4:	e7f9      	b.n	33f9a <nvs_flash_ate_wrt+0x20>

00033fa6 <nvs_add_gc_done_ate>:
{
   33fa6:	b510      	push	{r4, lr}
   33fa8:	b082      	sub	sp, #8
   33faa:	4604      	mov	r4, r0
	gc_done_ate.id = 0xffff;
   33fac:	f64f 73ff 	movw	r3, #65535	; 0xffff
   33fb0:	f8ad 3000 	strh.w	r3, [sp]
	gc_done_ate.len = 0U;
   33fb4:	2300      	movs	r3, #0
   33fb6:	f8ad 3004 	strh.w	r3, [sp, #4]
	gc_done_ate.offset = (uint16_t)(fs->data_wra & ADDR_OFFS_MASK);
   33fba:	8903      	ldrh	r3, [r0, #8]
   33fbc:	f8ad 3002 	strh.w	r3, [sp, #2]
	nvs_ate_crc8_update(&gc_done_ate);
   33fc0:	4668      	mov	r0, sp
   33fc2:	f7ff ff28 	bl	33e16 <nvs_ate_crc8_update>
	return nvs_flash_ate_wrt(fs, &gc_done_ate);
   33fc6:	4669      	mov	r1, sp
   33fc8:	4620      	mov	r0, r4
   33fca:	f7ff ffd6 	bl	33f7a <nvs_flash_ate_wrt>
}
   33fce:	b002      	add	sp, #8
   33fd0:	bd10      	pop	{r4, pc}

00033fd2 <nvs_gc>:
{
   33fd2:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   33fd6:	b08a      	sub	sp, #40	; 0x28
   33fd8:	4604      	mov	r4, r0
	uint8_t write_block_size = fs->flash_parameters->write_block_size;
   33fda:	6ac3      	ldr	r3, [r0, #44]	; 0x2c
   33fdc:	681e      	ldr	r6, [r3, #0]
   33fde:	b2f3      	uxtb	r3, r6
	if (write_block_size <= 1U) {
   33fe0:	2b01      	cmp	r3, #1
   33fe2:	d92e      	bls.n	34042 <nvs_gc+0x70>
	return (len + (write_block_size - 1U)) & ~(write_block_size - 1U);
   33fe4:	461e      	mov	r6, r3
   33fe6:	3307      	adds	r3, #7
   33fe8:	4276      	negs	r6, r6
   33fea:	401e      	ands	r6, r3
	sec_addr = (fs->ate_wra & ADDR_SECT_MASK);
   33fec:	88e3      	ldrh	r3, [r4, #6]
   33fee:	041b      	lsls	r3, r3, #16
   33ff0:	9303      	str	r3, [sp, #12]
	nvs_sector_advance(fs, &sec_addr);
   33ff2:	a903      	add	r1, sp, #12
   33ff4:	4620      	mov	r0, r4
   33ff6:	f7ff fda5 	bl	33b44 <nvs_sector_advance>
	gc_addr = sec_addr + fs->sector_size - ate_size;
   33ffa:	89a1      	ldrh	r1, [r4, #12]
   33ffc:	9b03      	ldr	r3, [sp, #12]
   33ffe:	4419      	add	r1, r3
   34000:	1b89      	subs	r1, r1, r6
   34002:	9102      	str	r1, [sp, #8]
	rc = nvs_flash_ate_rd(fs, gc_addr, &close_ate);
   34004:	aa08      	add	r2, sp, #32
   34006:	4620      	mov	r0, r4
   34008:	f7ff fd8b 	bl	33b22 <nvs_flash_ate_rd>
	if (rc < 0) {
   3400c:	1e03      	subs	r3, r0, #0
   3400e:	db14      	blt.n	3403a <nvs_gc+0x68>
	rc = nvs_ate_cmp_const(&close_ate, fs->flash_parameters->erase_value);
   34010:	6ae3      	ldr	r3, [r4, #44]	; 0x2c
   34012:	7919      	ldrb	r1, [r3, #4]
   34014:	a808      	add	r0, sp, #32
   34016:	f7ff fd89 	bl	33b2c <nvs_ate_cmp_const>
	if (!rc) {
   3401a:	b9a0      	cbnz	r0, 34046 <nvs_gc+0x74>
	if (fs->ate_wra >= (fs->data_wra + ate_size)) {
   3401c:	6863      	ldr	r3, [r4, #4]
   3401e:	68a2      	ldr	r2, [r4, #8]
   34020:	4416      	add	r6, r2
   34022:	42b3      	cmp	r3, r6
   34024:	d304      	bcc.n	34030 <nvs_gc+0x5e>
		rc = nvs_add_gc_done_ate(fs);
   34026:	4620      	mov	r0, r4
   34028:	f7ff ffbd 	bl	33fa6 <nvs_add_gc_done_ate>
		if (rc) {
   3402c:	4603      	mov	r3, r0
   3402e:	b920      	cbnz	r0, 3403a <nvs_gc+0x68>
	rc = nvs_flash_erase_sector(fs, sec_addr);
   34030:	9903      	ldr	r1, [sp, #12]
   34032:	4620      	mov	r0, r4
   34034:	f7ff fde4 	bl	33c00 <nvs_flash_erase_sector>
   34038:	4603      	mov	r3, r0
}
   3403a:	4618      	mov	r0, r3
   3403c:	b00a      	add	sp, #40	; 0x28
   3403e:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
		return len;
   34042:	2608      	movs	r6, #8
   34044:	e7d2      	b.n	33fec <nvs_gc+0x1a>
	stop_addr = gc_addr - ate_size;
   34046:	9b02      	ldr	r3, [sp, #8]
   34048:	eba3 0806 	sub.w	r8, r3, r6
	if (nvs_close_ate_valid(fs, &close_ate)) {
   3404c:	a908      	add	r1, sp, #32
   3404e:	4620      	mov	r0, r4
   34050:	f7ff fe6d 	bl	33d2e <nvs_close_ate_valid>
   34054:	b138      	cbz	r0, 34066 <nvs_gc+0x94>
		gc_addr &= ADDR_SECT_MASK;
   34056:	f8bd 200a 	ldrh.w	r2, [sp, #10]
		gc_addr += close_ate.offset;
   3405a:	f8bd 3022 	ldrh.w	r3, [sp, #34]	; 0x22
   3405e:	eb03 4302 	add.w	r3, r3, r2, lsl #16
   34062:	9302      	str	r3, [sp, #8]
   34064:	e023      	b.n	340ae <nvs_gc+0xdc>
		rc = nvs_recover_last_ate(fs, &gc_addr);
   34066:	a902      	add	r1, sp, #8
   34068:	4620      	mov	r0, r4
   3406a:	f7ff fe28 	bl	33cbe <nvs_recover_last_ate>
		if (rc) {
   3406e:	4603      	mov	r3, r0
   34070:	b1e8      	cbz	r0, 340ae <nvs_gc+0xdc>
   34072:	e7e2      	b.n	3403a <nvs_gc+0x68>
		} while (wlk_addr != fs->ate_wra);
   34074:	6862      	ldr	r2, [r4, #4]
   34076:	9b01      	ldr	r3, [sp, #4]
   34078:	429a      	cmp	r2, r3
   3407a:	d014      	beq.n	340a6 <nvs_gc+0xd4>
			wlk_prev_addr = wlk_addr;
   3407c:	9d01      	ldr	r5, [sp, #4]
			rc = nvs_prev_ate(fs, &wlk_addr, &wlk_ate);
   3407e:	aa04      	add	r2, sp, #16
   34080:	a901      	add	r1, sp, #4
   34082:	4620      	mov	r0, r4
   34084:	f7ff fe7b 	bl	33d7e <nvs_prev_ate>
			if (rc) {
   34088:	4603      	mov	r3, r0
   3408a:	2800      	cmp	r0, #0
   3408c:	d1d5      	bne.n	3403a <nvs_gc+0x68>
			if ((wlk_ate.id == gc_ate.id) &&
   3408e:	f8bd 2010 	ldrh.w	r2, [sp, #16]
   34092:	f8bd 3018 	ldrh.w	r3, [sp, #24]
   34096:	429a      	cmp	r2, r3
   34098:	d1ec      	bne.n	34074 <nvs_gc+0xa2>
			    (nvs_ate_valid(fs, &wlk_ate))) {
   3409a:	a904      	add	r1, sp, #16
   3409c:	4620      	mov	r0, r4
   3409e:	f7ff fdf2 	bl	33c86 <nvs_ate_valid>
			if ((wlk_ate.id == gc_ate.id) &&
   340a2:	2800      	cmp	r0, #0
   340a4:	d0e6      	beq.n	34074 <nvs_gc+0xa2>
		if ((wlk_prev_addr == gc_prev_addr) && gc_ate.len) {
   340a6:	42bd      	cmp	r5, r7
   340a8:	d013      	beq.n	340d2 <nvs_gc+0x100>
	} while (gc_prev_addr != stop_addr);
   340aa:	4547      	cmp	r7, r8
   340ac:	d0b6      	beq.n	3401c <nvs_gc+0x4a>
		gc_prev_addr = gc_addr;
   340ae:	9f02      	ldr	r7, [sp, #8]
		rc = nvs_prev_ate(fs, &gc_addr, &gc_ate);
   340b0:	aa06      	add	r2, sp, #24
   340b2:	a902      	add	r1, sp, #8
   340b4:	4620      	mov	r0, r4
   340b6:	f7ff fe62 	bl	33d7e <nvs_prev_ate>
		if (rc) {
   340ba:	4603      	mov	r3, r0
   340bc:	2800      	cmp	r0, #0
   340be:	d1bc      	bne.n	3403a <nvs_gc+0x68>
		if (!nvs_ate_valid(fs, &gc_ate)) {
   340c0:	a906      	add	r1, sp, #24
   340c2:	4620      	mov	r0, r4
   340c4:	f7ff fddf 	bl	33c86 <nvs_ate_valid>
   340c8:	2800      	cmp	r0, #0
   340ca:	d0ee      	beq.n	340aa <nvs_gc+0xd8>
		wlk_addr = fs->ate_wra;
   340cc:	6863      	ldr	r3, [r4, #4]
   340ce:	9301      	str	r3, [sp, #4]
   340d0:	e7d4      	b.n	3407c <nvs_gc+0xaa>
		if ((wlk_prev_addr == gc_prev_addr) && gc_ate.len) {
   340d2:	f8bd 301c 	ldrh.w	r3, [sp, #28]
   340d6:	2b00      	cmp	r3, #0
   340d8:	d0e7      	beq.n	340aa <nvs_gc+0xd8>
			data_addr = (gc_prev_addr & ADDR_SECT_MASK);
   340da:	0c3b      	lsrs	r3, r7, #16
   340dc:	041b      	lsls	r3, r3, #16
			data_addr += gc_ate.offset;
   340de:	f8bd 501a 	ldrh.w	r5, [sp, #26]
   340e2:	441d      	add	r5, r3
			gc_ate.offset = (uint16_t)(fs->data_wra & ADDR_OFFS_MASK);
   340e4:	8923      	ldrh	r3, [r4, #8]
   340e6:	f8ad 301a 	strh.w	r3, [sp, #26]
			nvs_ate_crc8_update(&gc_ate);
   340ea:	a806      	add	r0, sp, #24
   340ec:	f7ff fe93 	bl	33e16 <nvs_ate_crc8_update>
			rc = nvs_flash_block_move(fs, data_addr, gc_ate.len);
   340f0:	f8bd 201c 	ldrh.w	r2, [sp, #28]
   340f4:	4629      	mov	r1, r5
   340f6:	4620      	mov	r0, r4
   340f8:	f7ff ff15 	bl	33f26 <nvs_flash_block_move>
			if (rc) {
   340fc:	4603      	mov	r3, r0
   340fe:	2800      	cmp	r0, #0
   34100:	d19b      	bne.n	3403a <nvs_gc+0x68>
			rc = nvs_flash_ate_wrt(fs, &gc_ate);
   34102:	a906      	add	r1, sp, #24
   34104:	4620      	mov	r0, r4
   34106:	f7ff ff38 	bl	33f7a <nvs_flash_ate_wrt>
			if (rc) {
   3410a:	4603      	mov	r3, r0
   3410c:	2800      	cmp	r0, #0
   3410e:	d0cc      	beq.n	340aa <nvs_gc+0xd8>
   34110:	e793      	b.n	3403a <nvs_gc+0x68>

00034112 <nvs_flash_wrt_entry>:
{
   34112:	b570      	push	{r4, r5, r6, lr}
   34114:	b082      	sub	sp, #8
   34116:	4604      	mov	r4, r0
   34118:	4616      	mov	r6, r2
   3411a:	461d      	mov	r5, r3
	entry.id = id;
   3411c:	f8ad 1000 	strh.w	r1, [sp]
	entry.offset = (uint16_t)(fs->data_wra & ADDR_OFFS_MASK);
   34120:	8903      	ldrh	r3, [r0, #8]
   34122:	f8ad 3002 	strh.w	r3, [sp, #2]
	entry.len = (uint16_t)len;
   34126:	f8ad 5004 	strh.w	r5, [sp, #4]
	entry.part = 0xff;
   3412a:	23ff      	movs	r3, #255	; 0xff
   3412c:	f88d 3006 	strb.w	r3, [sp, #6]
	nvs_ate_crc8_update(&entry);
   34130:	4668      	mov	r0, sp
   34132:	f7ff fe70 	bl	33e16 <nvs_ate_crc8_update>
	rc = nvs_flash_data_wrt(fs, data, len);
   34136:	462a      	mov	r2, r5
   34138:	4631      	mov	r1, r6
   3413a:	4620      	mov	r0, r4
   3413c:	f7ff fede 	bl	33efc <nvs_flash_data_wrt>
	if (rc) {
   34140:	b108      	cbz	r0, 34146 <nvs_flash_wrt_entry+0x34>
}
   34142:	b002      	add	sp, #8
   34144:	bd70      	pop	{r4, r5, r6, pc}
	rc = nvs_flash_ate_wrt(fs, &entry);
   34146:	4669      	mov	r1, sp
   34148:	4620      	mov	r0, r4
   3414a:	f7ff ff16 	bl	33f7a <nvs_flash_ate_wrt>
	if (rc) {
   3414e:	e7f8      	b.n	34142 <nvs_flash_wrt_entry+0x30>

00034150 <nvs_sector_close>:
{
   34150:	b530      	push	{r4, r5, lr}
   34152:	b083      	sub	sp, #12
   34154:	4604      	mov	r4, r0
	uint8_t write_block_size = fs->flash_parameters->write_block_size;
   34156:	6ac3      	ldr	r3, [r0, #44]	; 0x2c
   34158:	681b      	ldr	r3, [r3, #0]
   3415a:	b2da      	uxtb	r2, r3
	if (write_block_size <= 1U) {
   3415c:	2a01      	cmp	r2, #1
   3415e:	d925      	bls.n	341ac <nvs_sector_close+0x5c>
	return (len + (write_block_size - 1U)) & ~(write_block_size - 1U);
   34160:	4613      	mov	r3, r2
   34162:	3207      	adds	r2, #7
   34164:	425b      	negs	r3, r3
   34166:	401a      	ands	r2, r3
	close_ate.id = 0xFFFF;
   34168:	f64f 73ff 	movw	r3, #65535	; 0xffff
   3416c:	f8ad 3000 	strh.w	r3, [sp]
	close_ate.len = 0U;
   34170:	2500      	movs	r5, #0
   34172:	f8ad 5004 	strh.w	r5, [sp, #4]
	close_ate.offset = (uint16_t)((fs->ate_wra + ate_size) & ADDR_OFFS_MASK);
   34176:	6863      	ldr	r3, [r4, #4]
   34178:	1899      	adds	r1, r3, r2
   3417a:	f8ad 1002 	strh.w	r1, [sp, #2]
	fs->ate_wra &= ADDR_SECT_MASK;
   3417e:	0c1b      	lsrs	r3, r3, #16
   34180:	041b      	lsls	r3, r3, #16
	fs->ate_wra += (fs->sector_size - ate_size);
   34182:	89a1      	ldrh	r1, [r4, #12]
   34184:	1a8a      	subs	r2, r1, r2
   34186:	4413      	add	r3, r2
   34188:	6063      	str	r3, [r4, #4]
	nvs_ate_crc8_update(&close_ate);
   3418a:	4668      	mov	r0, sp
   3418c:	f7ff fe43 	bl	33e16 <nvs_ate_crc8_update>
	rc = nvs_flash_ate_wrt(fs, &close_ate);
   34190:	4669      	mov	r1, sp
   34192:	4620      	mov	r0, r4
   34194:	f7ff fef1 	bl	33f7a <nvs_flash_ate_wrt>
	nvs_sector_advance(fs, &fs->ate_wra);
   34198:	1d21      	adds	r1, r4, #4
   3419a:	4620      	mov	r0, r4
   3419c:	f7ff fcd2 	bl	33b44 <nvs_sector_advance>
	fs->data_wra = fs->ate_wra & ADDR_SECT_MASK;
   341a0:	88e3      	ldrh	r3, [r4, #6]
   341a2:	041b      	lsls	r3, r3, #16
   341a4:	60a3      	str	r3, [r4, #8]
}
   341a6:	4628      	mov	r0, r5
   341a8:	b003      	add	sp, #12
   341aa:	bd30      	pop	{r4, r5, pc}
		return len;
   341ac:	2208      	movs	r2, #8
   341ae:	e7db      	b.n	34168 <nvs_sector_close+0x18>

000341b0 <nvs_delete>:
{
   341b0:	b508      	push	{r3, lr}
	return nvs_write(fs, id, NULL, 0);
   341b2:	2300      	movs	r3, #0
   341b4:	461a      	mov	r2, r3
   341b6:	f7e9 fd79 	bl	1dcac <nvs_write>
}
   341ba:	bd08      	pop	{r3, pc}

000341bc <nvs_read>:

ssize_t nvs_read(struct nvs_fs *fs, uint16_t id, void *data, size_t len)
{
   341bc:	b510      	push	{r4, lr}
   341be:	b082      	sub	sp, #8
	int rc;

	rc = nvs_read_hist(fs, id, data, len, 0);
   341c0:	2400      	movs	r4, #0
   341c2:	9400      	str	r4, [sp, #0]
   341c4:	f7e9 fe2a 	bl	1de1c <nvs_read_hist>
	return rc;
}
   341c8:	b002      	add	sp, #8
   341ca:	bd10      	pop	{r4, pc}

000341cc <flash_img_buffered_write>:
	     "CONFIG_IMG_BLOCK_BUF_SIZE is not a multiple of "
	     "FLASH_WRITE_BLOCK_SIZE");

int flash_img_buffered_write(struct flash_img_context *ctx, const uint8_t *data,
			     size_t len, bool flush)
{
   341cc:	b570      	push	{r4, r5, r6, lr}
   341ce:	4604      	mov	r4, r0
   341d0:	461e      	mov	r6, r3
	int rc;

	rc = stream_flash_buffered_write(&ctx->stream, data, len, flush);
   341d2:	f500 7001 	add.w	r0, r0, #516	; 0x204
   341d6:	f000 f928 	bl	3442a <stream_flash_buffered_write>
   341da:	4605      	mov	r5, r0
	if (!flush) {
   341dc:	b90e      	cbnz	r6, 341e2 <flash_img_buffered_write+0x16>

	flash_area_close(ctx->flash_area);
	ctx->flash_area = NULL;

	return rc;
}
   341de:	4628      	mov	r0, r5
   341e0:	bd70      	pop	{r4, r5, r6, pc}
	flash_area_close(ctx->flash_area);
   341e2:	f8d4 0200 	ldr.w	r0, [r4, #512]	; 0x200
   341e6:	f000 f887 	bl	342f8 <flash_area_close>
	ctx->flash_area = NULL;
   341ea:	2300      	movs	r3, #0
   341ec:	f8c4 3200 	str.w	r3, [r4, #512]	; 0x200
	return rc;
   341f0:	e7f5      	b.n	341de <flash_img_buffered_write+0x12>

000341f2 <flash_img_init_id>:
{
	return stream_flash_bytes_written(&ctx->stream);
}

int flash_img_init_id(struct flash_img_context *ctx, uint8_t area_id)
{
   341f2:	b510      	push	{r4, lr}
   341f4:	b084      	sub	sp, #16
   341f6:	4604      	mov	r4, r0
   341f8:	4608      	mov	r0, r1
	int rc;
	const struct device *flash_dev;

	rc = flash_area_open(area_id,
   341fa:	f504 7100 	add.w	r1, r4, #512	; 0x200
   341fe:	f7e9 fe95 	bl	1df2c <flash_area_open>
			       (const struct flash_area **)&(ctx->flash_area));
	if (rc) {
   34202:	b108      	cbz	r0, 34208 <flash_img_init_id+0x16>
	flash_dev = flash_area_get_device(ctx->flash_area);

	return stream_flash_init(&ctx->stream, flash_dev, ctx->buf,
			CONFIG_IMG_BLOCK_BUF_SIZE, ctx->flash_area->fa_off,
			ctx->flash_area->fa_size, NULL);
}
   34204:	b004      	add	sp, #16
   34206:	bd10      	pop	{r4, pc}
	flash_dev = flash_area_get_device(ctx->flash_area);
   34208:	f8d4 0200 	ldr.w	r0, [r4, #512]	; 0x200
   3420c:	f000 f8ff 	bl	3440e <flash_area_get_device>
   34210:	4601      	mov	r1, r0
			CONFIG_IMG_BLOCK_BUF_SIZE, ctx->flash_area->fa_off,
   34212:	f8d4 3200 	ldr.w	r3, [r4, #512]	; 0x200
   34216:	685a      	ldr	r2, [r3, #4]
	return stream_flash_init(&ctx->stream, flash_dev, ctx->buf,
   34218:	2000      	movs	r0, #0
   3421a:	9002      	str	r0, [sp, #8]
   3421c:	689b      	ldr	r3, [r3, #8]
   3421e:	9301      	str	r3, [sp, #4]
   34220:	9200      	str	r2, [sp, #0]
   34222:	f44f 7300 	mov.w	r3, #512	; 0x200
   34226:	4622      	mov	r2, r4
   34228:	f504 7001 	add.w	r0, r4, #516	; 0x204
   3422c:	f7e9 ff30 	bl	1e090 <stream_flash_init>
   34230:	e7e8      	b.n	34204 <flash_img_init_id+0x12>

00034232 <should_bail>:
	if (info->start_offset < data->area_off) {
   34232:	6800      	ldr	r0, [r0, #0]
   34234:	684b      	ldr	r3, [r1, #4]
   34236:	4298      	cmp	r0, r3
   34238:	d30b      	bcc.n	34252 <should_bail+0x20>
{
   3423a:	b410      	push	{r4}
	} else if (info->start_offset >= data->area_off + data->area_len) {
   3423c:	688c      	ldr	r4, [r1, #8]
   3423e:	4423      	add	r3, r4
   34240:	4298      	cmp	r0, r3
   34242:	d209      	bcs.n	34258 <should_bail+0x26>
	} else if (data->ret_idx >= data->ret_len) {
   34244:	6908      	ldr	r0, [r1, #16]
   34246:	694b      	ldr	r3, [r1, #20]
   34248:	4298      	cmp	r0, r3
   3424a:	d209      	bcs.n	34260 <should_bail+0x2e>
	return false;
   3424c:	2000      	movs	r0, #0
}
   3424e:	bc10      	pop	{r4}
   34250:	4770      	bx	lr
		*bail_value = true;
   34252:	2001      	movs	r0, #1
   34254:	7010      	strb	r0, [r2, #0]
}
   34256:	4770      	bx	lr
		*bail_value = false;
   34258:	2300      	movs	r3, #0
   3425a:	7013      	strb	r3, [r2, #0]
		return true;
   3425c:	2001      	movs	r0, #1
   3425e:	e7f6      	b.n	3424e <should_bail+0x1c>
		data->status = -ENOMEM;
   34260:	f06f 030b 	mvn.w	r3, #11
   34264:	618b      	str	r3, [r1, #24]
		*bail_value = false;
   34266:	2300      	movs	r3, #0
   34268:	7013      	strb	r3, [r2, #0]
		return true;
   3426a:	2001      	movs	r0, #1
   3426c:	e7ef      	b.n	3424e <should_bail+0x1c>

0003426e <get_sectors_cb>:
{
   3426e:	b570      	push	{r4, r5, r6, lr}
   34270:	b082      	sub	sp, #8
   34272:	4605      	mov	r5, r0
   34274:	460c      	mov	r4, r1
	struct flash_sector *ret = data->ret;
   34276:	68ce      	ldr	r6, [r1, #12]
	if (should_bail(info, data, &bail)) {
   34278:	f10d 0207 	add.w	r2, sp, #7
   3427c:	f7ff ffd9 	bl	34232 <should_bail>
   34280:	b980      	cbnz	r0, 342a4 <get_sectors_cb+0x36>
	ret[data->ret_idx].fs_off = info->start_offset - data->area_off;
   34282:	682b      	ldr	r3, [r5, #0]
   34284:	6861      	ldr	r1, [r4, #4]
   34286:	6922      	ldr	r2, [r4, #16]
   34288:	1a5b      	subs	r3, r3, r1
   3428a:	f846 3032 	str.w	r3, [r6, r2, lsl #3]
	ret[data->ret_idx].fs_size = info->size;
   3428e:	6923      	ldr	r3, [r4, #16]
   34290:	eb06 06c3 	add.w	r6, r6, r3, lsl #3
   34294:	686b      	ldr	r3, [r5, #4]
   34296:	6073      	str	r3, [r6, #4]
	data->ret_idx++;
   34298:	6923      	ldr	r3, [r4, #16]
   3429a:	3301      	adds	r3, #1
   3429c:	6123      	str	r3, [r4, #16]
	return true;
   3429e:	2001      	movs	r0, #1
}
   342a0:	b002      	add	sp, #8
   342a2:	bd70      	pop	{r4, r5, r6, pc}
		return bail;
   342a4:	f89d 0007 	ldrb.w	r0, [sp, #7]
   342a8:	e7fa      	b.n	342a0 <get_sectors_cb+0x32>

000342aa <flash_area_layout>:
{
   342aa:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
   342ac:	460d      	mov	r5, r1
   342ae:	4617      	mov	r7, r2
   342b0:	461e      	mov	r6, r3
   342b2:	9c06      	ldr	r4, [sp, #24]
	cb_data->area_idx = idx;
   342b4:	6020      	str	r0, [r4, #0]
	fa = get_flash_area_from_id(idx);
   342b6:	f7e9 fe21 	bl	1defc <get_flash_area_from_id>
	if (fa == NULL) {
   342ba:	b1b8      	cbz	r0, 342ec <flash_area_layout+0x42>
	cb_data->area_off = fa->fa_off;
   342bc:	6843      	ldr	r3, [r0, #4]
   342be:	6063      	str	r3, [r4, #4]
	cb_data->area_len = fa->fa_size;
   342c0:	6883      	ldr	r3, [r0, #8]
   342c2:	60a3      	str	r3, [r4, #8]
	cb_data->ret = ret;
   342c4:	60e7      	str	r7, [r4, #12]
	cb_data->ret_idx = 0U;
   342c6:	2200      	movs	r2, #0
   342c8:	6122      	str	r2, [r4, #16]
	cb_data->ret_len = *cnt;
   342ca:	682b      	ldr	r3, [r5, #0]
   342cc:	6163      	str	r3, [r4, #20]
	cb_data->status = 0;
   342ce:	61a2      	str	r2, [r4, #24]
	flash_dev = device_get_binding(fa->fa_dev_name);
   342d0:	68c0      	ldr	r0, [r0, #12]
   342d2:	f7fa fd73 	bl	2edbc <z_impl_device_get_binding>
	if (flash_dev == NULL) {
   342d6:	b160      	cbz	r0, 342f2 <flash_area_layout+0x48>
	flash_page_foreach(flash_dev, cb, cb_data);
   342d8:	4622      	mov	r2, r4
   342da:	4631      	mov	r1, r6
   342dc:	f005 f8ce 	bl	3947c <flash_page_foreach>
	if (cb_data->status == 0) {
   342e0:	69a3      	ldr	r3, [r4, #24]
   342e2:	b90b      	cbnz	r3, 342e8 <flash_area_layout+0x3e>
		*cnt = cb_data->ret_idx;
   342e4:	6923      	ldr	r3, [r4, #16]
   342e6:	602b      	str	r3, [r5, #0]
	return cb_data->status;
   342e8:	69a0      	ldr	r0, [r4, #24]
}
   342ea:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
		return -EINVAL;
   342ec:	f06f 0015 	mvn.w	r0, #21
   342f0:	e7fb      	b.n	342ea <flash_area_layout+0x40>
		return -ENODEV;
   342f2:	f06f 0012 	mvn.w	r0, #18
   342f6:	e7f8      	b.n	342ea <flash_area_layout+0x40>

000342f8 <flash_area_close>:
}
   342f8:	4770      	bx	lr

000342fa <flash_area_read>:
#endif /* CONFIG_FLASH_PAGE_LAYOUT */

int flash_area_read(const struct flash_area *fa, off_t off, void *dst,
		    size_t len)
{
   342fa:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   342fe:	4680      	mov	r8, r0
   34300:	4617      	mov	r7, r2
   34302:	461e      	mov	r6, r3
	return (off >= 0) && ((off + len) <= fa->fa_size);
   34304:	1e0d      	subs	r5, r1, #0
   34306:	db05      	blt.n	34314 <flash_area_read+0x1a>
   34308:	18eb      	adds	r3, r5, r3
   3430a:	6882      	ldr	r2, [r0, #8]
   3430c:	4293      	cmp	r3, r2
   3430e:	d911      	bls.n	34334 <_flash_used+0x8>
   34310:	2300      	movs	r3, #0
   34312:	e000      	b.n	34316 <flash_area_read+0x1c>
   34314:	2300      	movs	r3, #0
	const struct device *dev;

	if (!is_in_flash_area_bounds(fa, off, len)) {
   34316:	b17b      	cbz	r3, 34338 <_flash_used+0xc>
		return -EINVAL;
	}

	dev = device_get_binding(fa->fa_dev_name);
   34318:	f8d8 000c 	ldr.w	r0, [r8, #12]
   3431c:	f7fa fd4e 	bl	2edbc <z_impl_device_get_binding>

	return flash_read(dev, fa->fa_off + off, dst, len);
   34320:	f8d8 1004 	ldr.w	r1, [r8, #4]
   34324:	4429      	add	r1, r5
	const struct flash_driver_api *api =
   34326:	6883      	ldr	r3, [r0, #8]
	return api->read(dev, offset, data, len);
   34328:	681c      	ldr	r4, [r3, #0]
   3432a:	4633      	mov	r3, r6
   3432c:	463a      	mov	r2, r7
   3432e:	47a0      	blx	r4
}
   34330:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
	return (off >= 0) && ((off + len) <= fa->fa_size);
   34334:	2301      	movs	r3, #1
   34336:	e7ee      	b.n	34316 <flash_area_read+0x1c>
		return -EINVAL;
   34338:	f06f 0015 	mvn.w	r0, #21
   3433c:	e7f8      	b.n	34330 <_flash_used+0x4>

0003433e <flash_area_write>:

int flash_area_write(const struct flash_area *fa, off_t off, const void *src,
		     size_t len)
{
   3433e:	e92d 43f8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
   34342:	4606      	mov	r6, r0
   34344:	4690      	mov	r8, r2
   34346:	461f      	mov	r7, r3
	return (off >= 0) && ((off + len) <= fa->fa_size);
   34348:	f1b1 0900 	subs.w	r9, r1, #0
   3434c:	db05      	blt.n	3435a <flash_area_write+0x1c>
   3434e:	444b      	add	r3, r9
   34350:	6882      	ldr	r2, [r0, #8]
   34352:	4293      	cmp	r3, r2
   34354:	d91f      	bls.n	34396 <flash_area_write+0x58>
   34356:	2300      	movs	r3, #0
   34358:	e000      	b.n	3435c <flash_area_write+0x1e>
   3435a:	2300      	movs	r3, #0
	const struct device *flash_dev;
	int rc;

	if (!is_in_flash_area_bounds(fa, off, len)) {
   3435c:	b1eb      	cbz	r3, 3439a <flash_area_write+0x5c>
		return -EINVAL;
	}

	flash_dev = device_get_binding(fa->fa_dev_name);
   3435e:	68f0      	ldr	r0, [r6, #12]
   34360:	f7fa fd2c 	bl	2edbc <z_impl_device_get_binding>
   34364:	4604      	mov	r4, r0

	rc = flash_write(flash_dev, fa->fa_off + off, (void *)src, len);
   34366:	6871      	ldr	r1, [r6, #4]
   34368:	4489      	add	r9, r1
	const struct flash_driver_api *api =
   3436a:	6886      	ldr	r6, [r0, #8]
	if (api->write_protection != NULL) {
   3436c:	68f3      	ldr	r3, [r6, #12]
   3436e:	b11b      	cbz	r3, 34378 <flash_area_write+0x3a>
		rc = api->write_protection(dev, false);
   34370:	2100      	movs	r1, #0
   34372:	4798      	blx	r3
		if (rc) {
   34374:	4605      	mov	r5, r0
   34376:	b958      	cbnz	r0, 34390 <flash_area_write+0x52>
	rc = api->write(dev, offset, data, len);
   34378:	6875      	ldr	r5, [r6, #4]
   3437a:	463b      	mov	r3, r7
   3437c:	4642      	mov	r2, r8
   3437e:	4649      	mov	r1, r9
   34380:	4620      	mov	r0, r4
   34382:	47a8      	blx	r5
   34384:	4605      	mov	r5, r0
	if (api->write_protection != NULL) {
   34386:	68f3      	ldr	r3, [r6, #12]
   34388:	b113      	cbz	r3, 34390 <flash_area_write+0x52>
		(void) api->write_protection(dev, true);
   3438a:	2101      	movs	r1, #1
   3438c:	4620      	mov	r0, r4
   3438e:	4798      	blx	r3

	return rc;
}
   34390:	4628      	mov	r0, r5
   34392:	e8bd 83f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
	return (off >= 0) && ((off + len) <= fa->fa_size);
   34396:	2301      	movs	r3, #1
   34398:	e7e0      	b.n	3435c <flash_area_write+0x1e>
		return -EINVAL;
   3439a:	f06f 0515 	mvn.w	r5, #21
   3439e:	e7f7      	b.n	34390 <flash_area_write+0x52>

000343a0 <flash_area_erase>:

int flash_area_erase(const struct flash_area *fa, off_t off, size_t len)
{
   343a0:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   343a4:	4605      	mov	r5, r0
   343a6:	4690      	mov	r8, r2
	return (off >= 0) && ((off + len) <= fa->fa_size);
   343a8:	1e0e      	subs	r6, r1, #0
   343aa:	db05      	blt.n	343b8 <flash_area_erase+0x18>
   343ac:	18b3      	adds	r3, r6, r2
   343ae:	6882      	ldr	r2, [r0, #8]
   343b0:	4293      	cmp	r3, r2
   343b2:	d91e      	bls.n	343f2 <flash_area_erase+0x52>
   343b4:	2300      	movs	r3, #0
   343b6:	e000      	b.n	343ba <flash_area_erase+0x1a>
   343b8:	2300      	movs	r3, #0
	const struct device *flash_dev;
	int rc;

	if (!is_in_flash_area_bounds(fa, off, len)) {
   343ba:	b1e3      	cbz	r3, 343f6 <flash_area_erase+0x56>
		return -EINVAL;
	}

	flash_dev = device_get_binding(fa->fa_dev_name);
   343bc:	68e8      	ldr	r0, [r5, #12]
   343be:	f7fa fcfd 	bl	2edbc <z_impl_device_get_binding>
   343c2:	4604      	mov	r4, r0

	rc = flash_erase(flash_dev, fa->fa_off + off, len);
   343c4:	686b      	ldr	r3, [r5, #4]
   343c6:	441e      	add	r6, r3
	const struct flash_driver_api *api =
   343c8:	6887      	ldr	r7, [r0, #8]
	if (api->write_protection != NULL) {
   343ca:	68fb      	ldr	r3, [r7, #12]
   343cc:	b11b      	cbz	r3, 343d6 <flash_area_erase+0x36>
		rc = api->write_protection(dev, false);
   343ce:	2100      	movs	r1, #0
   343d0:	4798      	blx	r3
		if (rc) {
   343d2:	4605      	mov	r5, r0
   343d4:	b950      	cbnz	r0, 343ec <flash_area_erase+0x4c>
	rc = api->erase(dev, offset, size);
   343d6:	68bb      	ldr	r3, [r7, #8]
   343d8:	4642      	mov	r2, r8
   343da:	4631      	mov	r1, r6
   343dc:	4620      	mov	r0, r4
   343de:	4798      	blx	r3
   343e0:	4605      	mov	r5, r0
	if (api->write_protection != NULL) {
   343e2:	68fb      	ldr	r3, [r7, #12]
   343e4:	b113      	cbz	r3, 343ec <flash_area_erase+0x4c>
		(void) api->write_protection(dev, true);
   343e6:	2101      	movs	r1, #1
   343e8:	4620      	mov	r0, r4
   343ea:	4798      	blx	r3

	return rc;
}
   343ec:	4628      	mov	r0, r5
   343ee:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
	return (off >= 0) && ((off + len) <= fa->fa_size);
   343f2:	2301      	movs	r3, #1
   343f4:	e7e1      	b.n	343ba <flash_area_erase+0x1a>
		return -EINVAL;
   343f6:	f06f 0515 	mvn.w	r5, #21
   343fa:	e7f7      	b.n	343ec <flash_area_erase+0x4c>

000343fc <flash_area_align>:

uint8_t flash_area_align(const struct flash_area *fa)
{
   343fc:	b508      	push	{r3, lr}
	const struct device *dev;

	dev = device_get_binding(fa->fa_dev_name);
   343fe:	68c0      	ldr	r0, [r0, #12]
   34400:	f7fa fcdc 	bl	2edbc <z_impl_device_get_binding>
	const struct flash_driver_api *api =
   34404:	6883      	ldr	r3, [r0, #8]
	return api->get_parameters(dev)->write_block_size;
   34406:	691b      	ldr	r3, [r3, #16]
   34408:	4798      	blx	r3

	return flash_get_write_block_size(dev);
}
   3440a:	7800      	ldrb	r0, [r0, #0]
   3440c:	bd08      	pop	{r3, pc}

0003440e <flash_area_get_device>:

	return 1;
}

const struct device *flash_area_get_device(const struct flash_area *fa)
{
   3440e:	b508      	push	{r3, lr}
	return device_get_binding(fa->fa_dev_name);
   34410:	68c0      	ldr	r0, [r0, #12]
   34412:	f7fa fcd3 	bl	2edbc <z_impl_device_get_binding>
}
   34416:	bd08      	pop	{r3, pc}

00034418 <flash_area_erased_val>:

uint8_t flash_area_erased_val(const struct flash_area *fa)
{
   34418:	b508      	push	{r3, lr}
	const struct flash_parameters *param;

	param = flash_get_parameters(device_get_binding(fa->fa_dev_name));
   3441a:	68c0      	ldr	r0, [r0, #12]
   3441c:	f7fa fcce 	bl	2edbc <z_impl_device_get_binding>
	const struct flash_driver_api *api =
   34420:	6883      	ldr	r3, [r0, #8]
	return api->get_parameters(dev);
   34422:	691b      	ldr	r3, [r3, #16]
   34424:	4798      	blx	r3

	return param->erase_value;
}
   34426:	7900      	ldrb	r0, [r0, #4]
   34428:	bd08      	pop	{r3, pc}

0003442a <stream_flash_buffered_write>:
{
   3442a:	e92d 4ff8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
	if (!ctx) {
   3442e:	2800      	cmp	r0, #0
   34430:	d03e      	beq.n	344b0 <stream_flash_buffered_write+0x86>
   34432:	468a      	mov	sl, r1
   34434:	4690      	mov	r8, r2
   34436:	469b      	mov	fp, r3
   34438:	4604      	mov	r4, r0
	if (ctx->bytes_written + ctx->buf_bytes + len > ctx->available) {
   3443a:	6903      	ldr	r3, [r0, #16]
   3443c:	6882      	ldr	r2, [r0, #8]
   3443e:	4413      	add	r3, r2
   34440:	4443      	add	r3, r8
   34442:	6982      	ldr	r2, [r0, #24]
   34444:	4293      	cmp	r3, r2
   34446:	d836      	bhi.n	344b6 <stream_flash_buffered_write+0x8c>
	int rc = 0;
   34448:	f04f 0900 	mov.w	r9, #0
	int processed = 0;
   3444c:	464e      	mov	r6, r9
	while ((len - processed) >=
   3444e:	4631      	mov	r1, r6
   34450:	eba8 0706 	sub.w	r7, r8, r6
	       (buf_empty_bytes = ctx->buf_len - ctx->buf_bytes)) {
   34454:	6865      	ldr	r5, [r4, #4]
   34456:	68a3      	ldr	r3, [r4, #8]
   34458:	1aed      	subs	r5, r5, r3
	while ((len - processed) >=
   3445a:	42af      	cmp	r7, r5
   3445c:	d30f      	bcc.n	3447e <stream_flash_buffered_write+0x54>
		memcpy(ctx->buf + ctx->buf_bytes, data + processed,
   3445e:	6820      	ldr	r0, [r4, #0]
   34460:	462a      	mov	r2, r5
   34462:	eb0a 0106 	add.w	r1, sl, r6
   34466:	4418      	add	r0, r3
   34468:	f001 fb48 	bl	35afc <memcpy>
		ctx->buf_bytes = ctx->buf_len;
   3446c:	6863      	ldr	r3, [r4, #4]
   3446e:	60a3      	str	r3, [r4, #8]
		rc = flash_sync(ctx);
   34470:	4620      	mov	r0, r4
   34472:	f7e9 fd7b 	bl	1df6c <flash_sync>
		if (rc != 0) {
   34476:	4681      	mov	r9, r0
   34478:	b940      	cbnz	r0, 3448c <stream_flash_buffered_write+0x62>
		processed += buf_empty_bytes;
   3447a:	442e      	add	r6, r5
   3447c:	e7e7      	b.n	3444e <stream_flash_buffered_write+0x24>
	if (processed < len) {
   3447e:	4546      	cmp	r6, r8
   34480:	d307      	bcc.n	34492 <stream_flash_buffered_write+0x68>
	if (flush && ctx->buf_bytes > 0) {
   34482:	f1bb 0f00 	cmp.w	fp, #0
   34486:	d001      	beq.n	3448c <stream_flash_buffered_write+0x62>
   34488:	68a3      	ldr	r3, [r4, #8]
   3448a:	b963      	cbnz	r3, 344a6 <stream_flash_buffered_write+0x7c>
}
   3448c:	4648      	mov	r0, r9
   3448e:	e8bd 8ff8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
		memcpy(ctx->buf + ctx->buf_bytes,
   34492:	6820      	ldr	r0, [r4, #0]
   34494:	463a      	mov	r2, r7
   34496:	4451      	add	r1, sl
   34498:	4418      	add	r0, r3
   3449a:	f001 fb2f 	bl	35afc <memcpy>
		ctx->buf_bytes += len - processed;
   3449e:	68a3      	ldr	r3, [r4, #8]
   344a0:	441f      	add	r7, r3
   344a2:	60a7      	str	r7, [r4, #8]
   344a4:	e7ed      	b.n	34482 <stream_flash_buffered_write+0x58>
		rc = flash_sync(ctx);
   344a6:	4620      	mov	r0, r4
   344a8:	f7e9 fd60 	bl	1df6c <flash_sync>
   344ac:	4681      	mov	r9, r0
   344ae:	e7ed      	b.n	3448c <stream_flash_buffered_write+0x62>
		return -EFAULT;
   344b0:	f06f 090d 	mvn.w	r9, #13
   344b4:	e7ea      	b.n	3448c <stream_flash_buffered_write+0x62>
		return -ENOMEM;
   344b6:	f06f 090b 	mvn.w	r9, #11
   344ba:	e7e7      	b.n	3448c <stream_flash_buffered_write+0x62>

000344bc <settings_load>:
{
   344bc:	b508      	push	{r3, lr}
	return settings_load_subtree(NULL);
   344be:	2000      	movs	r0, #0
   344c0:	f7e9 fe8c 	bl	1e1dc <settings_load_subtree>
}
   344c4:	bd08      	pop	{r3, pc}

000344c6 <settings_delete>:
{
   344c6:	b508      	push	{r3, lr}
	return settings_save_one(name, NULL, 0);
   344c8:	2200      	movs	r2, #0
   344ca:	4611      	mov	r1, r2
   344cc:	f7e9 fe4a 	bl	1e164 <settings_save_one>
}
   344d0:	bd08      	pop	{r3, pc}

000344d2 <settings_name_steq>:
{
   344d2:	b410      	push	{r4}
	if (next) {
   344d4:	4614      	mov	r4, r2
   344d6:	b10a      	cbz	r2, 344dc <settings_name_steq+0xa>
		*next = NULL;
   344d8:	2300      	movs	r3, #0
   344da:	6013      	str	r3, [r2, #0]
	if ((!name) || (!key)) {
   344dc:	b1d0      	cbz	r0, 34514 <settings_name_steq+0x42>
   344de:	b919      	cbnz	r1, 344e8 <settings_name_steq+0x16>
		return 0;
   344e0:	2000      	movs	r0, #0
   344e2:	e01a      	b.n	3451a <settings_name_steq+0x48>
		key++;
   344e4:	3101      	adds	r1, #1
		name++;
   344e6:	3001      	adds	r0, #1
	while ((*key != '\0') && (*key == *name) &&
   344e8:	780a      	ldrb	r2, [r1, #0]
   344ea:	b12a      	cbz	r2, 344f8 <settings_name_steq+0x26>
   344ec:	7803      	ldrb	r3, [r0, #0]
   344ee:	429a      	cmp	r2, r3
   344f0:	d102      	bne.n	344f8 <settings_name_steq+0x26>
   344f2:	b10b      	cbz	r3, 344f8 <settings_name_steq+0x26>
	       (*name != '\0') && (*name != SETTINGS_NAME_END)) {
   344f4:	2b3d      	cmp	r3, #61	; 0x3d
   344f6:	d1f5      	bne.n	344e4 <settings_name_steq+0x12>
	if (*key != '\0') {
   344f8:	b972      	cbnz	r2, 34518 <settings_name_steq+0x46>
	if (*name == SETTINGS_NAME_SEPARATOR) {
   344fa:	7803      	ldrb	r3, [r0, #0]
   344fc:	2b2f      	cmp	r3, #47	; 0x2f
   344fe:	d004      	beq.n	3450a <settings_name_steq+0x38>
	if ((*name == SETTINGS_NAME_END) || (*name == '\0')) {
   34500:	2b3d      	cmp	r3, #61	; 0x3d
   34502:	d00c      	beq.n	3451e <settings_name_steq+0x4c>
   34504:	b16b      	cbz	r3, 34522 <settings_name_steq+0x50>
	return 0;
   34506:	2000      	movs	r0, #0
   34508:	e007      	b.n	3451a <settings_name_steq+0x48>
		if (next) {
   3450a:	b10c      	cbz	r4, 34510 <settings_name_steq+0x3e>
			*next = name + 1;
   3450c:	3001      	adds	r0, #1
   3450e:	6020      	str	r0, [r4, #0]
		return 1;
   34510:	2001      	movs	r0, #1
   34512:	e002      	b.n	3451a <settings_name_steq+0x48>
		return 0;
   34514:	2000      	movs	r0, #0
   34516:	e000      	b.n	3451a <settings_name_steq+0x48>
		return 0;
   34518:	2000      	movs	r0, #0
}
   3451a:	bc10      	pop	{r4}
   3451c:	4770      	bx	lr
		return 1;
   3451e:	2001      	movs	r0, #1
   34520:	e7fb      	b.n	3451a <settings_name_steq+0x48>
   34522:	2001      	movs	r0, #1
   34524:	e7f9      	b.n	3451a <settings_name_steq+0x48>

00034526 <settings_name_next>:
{
   34526:	b410      	push	{r4}
   34528:	4602      	mov	r2, r0
	if (next) {
   3452a:	460c      	mov	r4, r1
   3452c:	b109      	cbz	r1, 34532 <settings_name_next+0xc>
		*next = NULL;
   3452e:	2300      	movs	r3, #0
   34530:	600b      	str	r3, [r1, #0]
	if (!name) {
   34532:	b192      	cbz	r2, 3455a <settings_name_next+0x34>
	int rc = 0;
   34534:	2000      	movs	r0, #0
   34536:	e001      	b.n	3453c <settings_name_next+0x16>
		rc++;
   34538:	3001      	adds	r0, #1
		name++;
   3453a:	3201      	adds	r2, #1
	while ((*name != '\0') && (*name != SETTINGS_NAME_END) &&
   3453c:	7813      	ldrb	r3, [r2, #0]
   3453e:	b11b      	cbz	r3, 34548 <settings_name_next+0x22>
   34540:	2b3d      	cmp	r3, #61	; 0x3d
   34542:	d001      	beq.n	34548 <settings_name_next+0x22>
   34544:	2b2f      	cmp	r3, #47	; 0x2f
   34546:	d1f7      	bne.n	34538 <settings_name_next+0x12>
	if (*name == SETTINGS_NAME_SEPARATOR) {
   34548:	2b2f      	cmp	r3, #47	; 0x2f
   3454a:	d001      	beq.n	34550 <settings_name_next+0x2a>
}
   3454c:	bc10      	pop	{r4}
   3454e:	4770      	bx	lr
		if (next) {
   34550:	2c00      	cmp	r4, #0
   34552:	d0fb      	beq.n	3454c <settings_name_next+0x26>
			*next = name + 1;
   34554:	3201      	adds	r2, #1
   34556:	6022      	str	r2, [r4, #0]
		return rc;
   34558:	e7f8      	b.n	3454c <settings_name_next+0x26>
		return 0;
   3455a:	2000      	movs	r0, #0
   3455c:	e7f6      	b.n	3454c <settings_name_next+0x26>

0003455e <settings_nvs_read_fn>:
{
   3455e:	b510      	push	{r4, lr}
   34560:	4614      	mov	r4, r2
	rc = nvs_read(rd_fn_arg->fs, rd_fn_arg->id, data, len);
   34562:	4613      	mov	r3, r2
   34564:	460a      	mov	r2, r1
   34566:	8881      	ldrh	r1, [r0, #4]
   34568:	6800      	ldr	r0, [r0, #0]
   3456a:	f7ff fe27 	bl	341bc <nvs_read>
   3456e:	4603      	mov	r3, r0
	if (rc > (ssize_t)len) {
   34570:	4620      	mov	r0, r4
   34572:	429c      	cmp	r4, r3
   34574:	db00      	blt.n	34578 <settings_nvs_read_fn+0x1a>
	rc = nvs_read(rd_fn_arg->fs, rd_fn_arg->id, data, len);
   34576:	4618      	mov	r0, r3
}
   34578:	bd10      	pop	{r4, pc}

0003457a <settings_nvs_save>:
{
   3457a:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
   3457e:	b097      	sub	sp, #92	; 0x5c
   34580:	9300      	str	r3, [sp, #0]
	if (!name) {
   34582:	2900      	cmp	r1, #0
   34584:	f000 808e 	beq.w	346a4 <settings_nvs_save+0x12a>
   34588:	4606      	mov	r6, r0
   3458a:	4692      	mov	sl, r2
   3458c:	468b      	mov	fp, r1
	delete = ((value == NULL) || (val_len == 0));
   3458e:	b13a      	cbz	r2, 345a0 <settings_nvs_save+0x26>
   34590:	b943      	cbnz	r3, 345a4 <settings_nvs_save+0x2a>
   34592:	2701      	movs	r7, #1
	name_id = cf->last_name_id + 1;
   34594:	f9b6 5038 	ldrsh.w	r5, [r6, #56]	; 0x38
   34598:	3501      	adds	r5, #1
   3459a:	b2ad      	uxth	r5, r5
	write_name_id = cf->last_name_id + 1;
   3459c:	9501      	str	r5, [sp, #4]
   3459e:	e007      	b.n	345b0 <settings_nvs_save+0x36>
	delete = ((value == NULL) || (val_len == 0));
   345a0:	2701      	movs	r7, #1
   345a2:	e7f7      	b.n	34594 <settings_nvs_save+0x1a>
   345a4:	2700      	movs	r7, #0
   345a6:	e7f5      	b.n	34594 <settings_nvs_save+0x1a>
			if (rc == -ENOENT) {
   345a8:	f110 0f02 	cmn.w	r0, #2
   345ac:	d03d      	beq.n	3462a <settings_nvs_save+0xb0>
	delete = ((value == NULL) || (val_len == 0));
   345ae:	4625      	mov	r5, r4
		name_id--;
   345b0:	1e6c      	subs	r4, r5, #1
   345b2:	b2a4      	uxth	r4, r4
		if (name_id == NVS_NAMECNT_ID) {
   345b4:	f5b4 4f00 	cmp.w	r4, #32768	; 0x8000
   345b8:	d059      	beq.n	3466e <settings_nvs_save+0xf4>
		rc = nvs_read(&cf->cf_nvs, name_id, &rdname, sizeof(rdname));
   345ba:	f106 0908 	add.w	r9, r6, #8
   345be:	234a      	movs	r3, #74	; 0x4a
   345c0:	aa03      	add	r2, sp, #12
   345c2:	4621      	mov	r1, r4
   345c4:	4648      	mov	r0, r9
   345c6:	f7ff fdf9 	bl	341bc <nvs_read>
		if (rc < 0) {
   345ca:	2800      	cmp	r0, #0
   345cc:	dbec      	blt.n	345a8 <settings_nvs_save+0x2e>
		rdname[rc] = '\0';
   345ce:	ab16      	add	r3, sp, #88	; 0x58
   345d0:	4418      	add	r0, r3
   345d2:	2300      	movs	r3, #0
   345d4:	f800 3c4c 	strb.w	r3, [r0, #-76]
		if (strcmp(name, rdname)) {
   345d8:	a903      	add	r1, sp, #12
   345da:	4658      	mov	r0, fp
   345dc:	f001 fa52 	bl	35a84 <strcmp>
   345e0:	4680      	mov	r8, r0
   345e2:	2800      	cmp	r0, #0
   345e4:	d1e3      	bne.n	345ae <settings_nvs_save+0x34>
		if ((delete) && (name_id == cf->last_name_id)) {
   345e6:	b117      	cbz	r7, 345ee <settings_nvs_save+0x74>
   345e8:	8f33      	ldrh	r3, [r6, #56]	; 0x38
   345ea:	42a3      	cmp	r3, r4
   345ec:	d01f      	beq.n	3462e <settings_nvs_save+0xb4>
		if (delete) {
   345ee:	bb67      	cbnz	r7, 3464a <settings_nvs_save+0xd0>
		write_name = false;
   345f0:	463d      	mov	r5, r7
	if (delete) {
   345f2:	2f00      	cmp	r7, #0
   345f4:	d159      	bne.n	346aa <settings_nvs_save+0x130>
	if (write_name_id == NVS_NAMECNT_ID + NVS_NAME_ID_OFFSET) {
   345f6:	f5b4 4f40 	cmp.w	r4, #49152	; 0xc000
   345fa:	d05c      	beq.n	346b6 <settings_nvs_save+0x13c>
	rc = nvs_write(&cf->cf_nvs, write_name_id + NVS_NAME_ID_OFFSET,
   345fc:	f106 0708 	add.w	r7, r6, #8
   34600:	f504 4180 	add.w	r1, r4, #16384	; 0x4000
   34604:	9b00      	ldr	r3, [sp, #0]
   34606:	4652      	mov	r2, sl
   34608:	b289      	uxth	r1, r1
   3460a:	4638      	mov	r0, r7
   3460c:	f7e9 fb4e 	bl	1dcac <nvs_write>
	if (rc < 0) {
   34610:	f1b0 0800 	subs.w	r8, r0, #0
   34614:	db4b      	blt.n	346ae <settings_nvs_save+0x134>
	if (write_name) {
   34616:	bb6d      	cbnz	r5, 34674 <settings_nvs_save+0xfa>
	if (write_name_id > cf->last_name_id) {
   34618:	8f33      	ldrh	r3, [r6, #56]	; 0x38
   3461a:	42a3      	cmp	r3, r4
   3461c:	d337      	bcc.n	3468e <settings_nvs_save+0x114>
	if (rc < 0) {
   3461e:	f1b8 0f00 	cmp.w	r8, #0
   34622:	db44      	blt.n	346ae <settings_nvs_save+0x134>
	return 0;
   34624:	f04f 0800 	mov.w	r8, #0
   34628:	e041      	b.n	346ae <settings_nvs_save+0x134>
				write_name_id = name_id;
   3462a:	9401      	str	r4, [sp, #4]
			continue;
   3462c:	e7bf      	b.n	345ae <settings_nvs_save+0x34>
			cf->last_name_id--;
   3462e:	3b01      	subs	r3, #1
   34630:	4632      	mov	r2, r6
   34632:	f822 3f38 	strh.w	r3, [r2, #56]!
			rc = nvs_write(&cf->cf_nvs, NVS_NAMECNT_ID,
   34636:	2302      	movs	r3, #2
   34638:	f44f 4100 	mov.w	r1, #32768	; 0x8000
   3463c:	4648      	mov	r0, r9
   3463e:	f7e9 fb35 	bl	1dcac <nvs_write>
			if (rc < 0) {
   34642:	2800      	cmp	r0, #0
   34644:	dad3      	bge.n	345ee <settings_nvs_save+0x74>
				return rc;
   34646:	4680      	mov	r8, r0
   34648:	e031      	b.n	346ae <settings_nvs_save+0x134>
			rc = nvs_delete(&cf->cf_nvs, name_id);
   3464a:	4621      	mov	r1, r4
   3464c:	4648      	mov	r0, r9
   3464e:	f7ff fdaf 	bl	341b0 <nvs_delete>
			if (rc >= 0) {
   34652:	2800      	cmp	r0, #0
   34654:	da03      	bge.n	3465e <settings_nvs_save+0xe4>
			if (rc < 0) {
   34656:	2800      	cmp	r0, #0
   34658:	da29      	bge.n	346ae <settings_nvs_save+0x134>
				return rc;
   3465a:	4680      	mov	r8, r0
   3465c:	e027      	b.n	346ae <settings_nvs_save+0x134>
				rc = nvs_delete(&cf->cf_nvs, name_id +
   3465e:	f505 517f 	add.w	r1, r5, #16320	; 0x3fc0
   34662:	313f      	adds	r1, #63	; 0x3f
   34664:	b289      	uxth	r1, r1
   34666:	4648      	mov	r0, r9
   34668:	f7ff fda2 	bl	341b0 <nvs_delete>
   3466c:	e7f3      	b.n	34656 <settings_nvs_save+0xdc>
   3466e:	9c01      	ldr	r4, [sp, #4]
	write_name = true;
   34670:	2501      	movs	r5, #1
   34672:	e7be      	b.n	345f2 <settings_nvs_save+0x78>
		rc = nvs_write(&cf->cf_nvs, write_name_id, name, strlen(name));
   34674:	4658      	mov	r0, fp
   34676:	f001 f9f3 	bl	35a60 <strlen>
   3467a:	4603      	mov	r3, r0
   3467c:	465a      	mov	r2, fp
   3467e:	4621      	mov	r1, r4
   34680:	4638      	mov	r0, r7
   34682:	f7e9 fb13 	bl	1dcac <nvs_write>
		if (rc < 0) {
   34686:	f1b0 0800 	subs.w	r8, r0, #0
   3468a:	dac5      	bge.n	34618 <settings_nvs_save+0x9e>
   3468c:	e00f      	b.n	346ae <settings_nvs_save+0x134>
		cf->last_name_id = write_name_id;
   3468e:	4632      	mov	r2, r6
   34690:	f822 4f38 	strh.w	r4, [r2, #56]!
		rc = nvs_write(&cf->cf_nvs, NVS_NAMECNT_ID, &cf->last_name_id,
   34694:	2302      	movs	r3, #2
   34696:	f44f 4100 	mov.w	r1, #32768	; 0x8000
   3469a:	4638      	mov	r0, r7
   3469c:	f7e9 fb06 	bl	1dcac <nvs_write>
   346a0:	4680      	mov	r8, r0
   346a2:	e7bc      	b.n	3461e <settings_nvs_save+0xa4>
		return -EINVAL;
   346a4:	f06f 0815 	mvn.w	r8, #21
   346a8:	e001      	b.n	346ae <settings_nvs_save+0x134>
		return 0;
   346aa:	f04f 0800 	mov.w	r8, #0
}
   346ae:	4640      	mov	r0, r8
   346b0:	b017      	add	sp, #92	; 0x5c
   346b2:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
		return -ENOMEM;
   346b6:	f06f 080b 	mvn.w	r8, #11
   346ba:	e7f8      	b.n	346ae <settings_nvs_save+0x134>

000346bc <settings_nvs_backend_init>:
{
   346bc:	b570      	push	{r4, r5, r6, lr}
   346be:	b082      	sub	sp, #8
   346c0:	4604      	mov	r4, r0
	rc = nvs_init(&cf->cf_nvs, cf->flash_dev_name);
   346c2:	f100 0508 	add.w	r5, r0, #8
   346c6:	6bc1      	ldr	r1, [r0, #60]	; 0x3c
   346c8:	4628      	mov	r0, r5
   346ca:	f7e9 fa69 	bl	1dba0 <nvs_init>
	if (rc) {
   346ce:	4606      	mov	r6, r0
   346d0:	b110      	cbz	r0, 346d8 <settings_nvs_backend_init+0x1c>
}
   346d2:	4630      	mov	r0, r6
   346d4:	b002      	add	sp, #8
   346d6:	bd70      	pop	{r4, r5, r6, pc}
	rc = nvs_read(&cf->cf_nvs, NVS_NAMECNT_ID, &last_name_id,
   346d8:	2302      	movs	r3, #2
   346da:	f10d 0206 	add.w	r2, sp, #6
   346de:	f44f 4100 	mov.w	r1, #32768	; 0x8000
   346e2:	4628      	mov	r0, r5
   346e4:	f7ff fd6a 	bl	341bc <nvs_read>
	if (rc < 0) {
   346e8:	2800      	cmp	r0, #0
   346ea:	db03      	blt.n	346f4 <settings_nvs_backend_init+0x38>
		cf->last_name_id = last_name_id;
   346ec:	f8bd 3006 	ldrh.w	r3, [sp, #6]
   346f0:	8723      	strh	r3, [r4, #56]	; 0x38
   346f2:	e7ee      	b.n	346d2 <settings_nvs_backend_init+0x16>
		cf->last_name_id = NVS_NAMECNT_ID;
   346f4:	f44f 4300 	mov.w	r3, #32768	; 0x8000
   346f8:	8723      	strh	r3, [r4, #56]	; 0x38
   346fa:	e7ea      	b.n	346d2 <settings_nvs_backend_init+0x16>

000346fc <pm_policy_next_state>:
			return pm_min_residency[i];
		}
	}

	LOG_DBG("No suitable power state found!");
	return (struct pm_state_info){PM_STATE_ACTIVE, 0, 0};
   346fc:	2200      	movs	r2, #0
   346fe:	6002      	str	r2, [r0, #0]
   34700:	6042      	str	r2, [r0, #4]
   34702:	6082      	str	r2, [r0, #8]
}
   34704:	4770      	bx	lr

00034706 <_copy>:
#define MASK_TWENTY_SEVEN 0x1b

unsigned int _copy(uint8_t *to, unsigned int to_len,
		   const uint8_t *from, unsigned int from_len)
{
	if (from_len <= to_len) {
   34706:	428b      	cmp	r3, r1
   34708:	d901      	bls.n	3470e <_copy+0x8>
		(void)memcpy(to, from, from_len);
		return from_len;
	} else {
		return TC_CRYPTO_FAIL;
   3470a:	2000      	movs	r0, #0
	}
}
   3470c:	4770      	bx	lr
{
   3470e:	b538      	push	{r3, r4, r5, lr}
   34710:	4615      	mov	r5, r2
   34712:	461c      	mov	r4, r3
		(void)memcpy(to, from, from_len);
   34714:	461a      	mov	r2, r3
   34716:	4629      	mov	r1, r5
   34718:	f001 f9f0 	bl	35afc <memcpy>
		return from_len;
   3471c:	4620      	mov	r0, r4
}
   3471e:	bd38      	pop	{r3, r4, r5, pc}

00034720 <_set>:

void _set(void *to, uint8_t val, unsigned int len)
{
   34720:	b508      	push	{r3, lr}
	(void)memset(to, val, len);
   34722:	f001 fa0f 	bl	35b44 <memset>
}
   34726:	bd08      	pop	{r3, pc}

00034728 <_double_byte>:
/*
 * Doubles the value of a byte for values up to 127.
 */
uint8_t _double_byte(uint8_t a)
{
	return ((a<<1) ^ ((a>>7) * MASK_TWENTY_SEVEN));
   34728:	09c3      	lsrs	r3, r0, #7
   3472a:	005a      	lsls	r2, r3, #1
   3472c:	4413      	add	r3, r2
   3472e:	eb03 03c3 	add.w	r3, r3, r3, lsl #3
   34732:	ea83 0040 	eor.w	r0, r3, r0, lsl #1
}
   34736:	b2c0      	uxtb	r0, r0
   34738:	4770      	bx	lr

0003473a <uECC_make_key>:
	}
	return 0;
}

int uECC_make_key(uint8_t *public_key, uint8_t *private_key, uECC_Curve curve)
{
   3473a:	b5f0      	push	{r4, r5, r6, r7, lr}
   3473c:	b0a9      	sub	sp, #164	; 0xa4
   3473e:	4606      	mov	r6, r0
   34740:	460f      	mov	r7, r1
   34742:	4614      	mov	r4, r2
	uECC_word_t _random[NUM_ECC_WORDS * 2];
	uECC_word_t _private[NUM_ECC_WORDS];
	uECC_word_t _public[NUM_ECC_WORDS * 2];
	uECC_word_t tries;

	for (tries = 0; tries < uECC_RNG_MAX_TRIES; ++tries) {
   34744:	2500      	movs	r5, #0
   34746:	e00f      	b.n	34768 <uECC_make_key+0x2e>
		/* Generating _private uniformly at random: */
		uECC_RNG_Function rng_function = uECC_get_rng();
		if (!rng_function ||
			!rng_function((uint8_t *)_random, 2 * NUM_ECC_WORDS*uECC_WORD_SIZE)) {
        		return 0;
   34748:	2000      	movs	r0, #0

      			return 1;
    		}
  	}
	return 0;
}
   3474a:	b029      	add	sp, #164	; 0xa4
   3474c:	bdf0      	pop	{r4, r5, r6, r7, pc}
		uECC_vli_mmod(_private, _random, curve->n, BITS_TO_WORDS(curve->num_n_bits));
   3474e:	f343 1347 	sbfx	r3, r3, #5, #8
   34752:	a918      	add	r1, sp, #96	; 0x60
   34754:	a810      	add	r0, sp, #64	; 0x40
   34756:	f000 fa44 	bl	34be2 <uECC_vli_mmod>
		if (EccPoint_compute_public_key(_public, _private, curve)) {
   3475a:	4622      	mov	r2, r4
   3475c:	a910      	add	r1, sp, #64	; 0x40
   3475e:	4668      	mov	r0, sp
   34760:	f000 fe9f 	bl	354a2 <EccPoint_compute_public_key>
   34764:	b9a0      	cbnz	r0, 34790 <uECC_make_key+0x56>
	for (tries = 0; tries < uECC_RNG_MAX_TRIES; ++tries) {
   34766:	3501      	adds	r5, #1
   34768:	2d3f      	cmp	r5, #63	; 0x3f
   3476a:	d835      	bhi.n	347d8 <uECC_make_key+0x9e>
		uECC_RNG_Function rng_function = uECC_get_rng();
   3476c:	f7ea f8e4 	bl	1e938 <uECC_get_rng>
		if (!rng_function ||
   34770:	4603      	mov	r3, r0
   34772:	2800      	cmp	r0, #0
   34774:	d0e8      	beq.n	34748 <uECC_make_key+0xe>
			!rng_function((uint8_t *)_random, 2 * NUM_ECC_WORDS*uECC_WORD_SIZE)) {
   34776:	2140      	movs	r1, #64	; 0x40
   34778:	a818      	add	r0, sp, #96	; 0x60
   3477a:	4798      	blx	r3
		if (!rng_function ||
   3477c:	2800      	cmp	r0, #0
   3477e:	d0e3      	beq.n	34748 <uECC_make_key+0xe>
		uECC_vli_mmod(_private, _random, curve->n, BITS_TO_WORDS(curve->num_n_bits));
   34780:	f104 0224 	add.w	r2, r4, #36	; 0x24
   34784:	f9b4 3002 	ldrsh.w	r3, [r4, #2]
   34788:	331f      	adds	r3, #31
   3478a:	d5e0      	bpl.n	3474e <uECC_make_key+0x14>
   3478c:	331f      	adds	r3, #31
   3478e:	e7de      	b.n	3474e <uECC_make_key+0x14>
					       BITS_TO_BYTES(curve->num_n_bits),
   34790:	f9b4 3002 	ldrsh.w	r3, [r4, #2]
   34794:	3307      	adds	r3, #7
			uECC_vli_nativeToBytes(private_key,
   34796:	4619      	mov	r1, r3
   34798:	2b00      	cmp	r3, #0
   3479a:	db1b      	blt.n	347d4 <uECC_make_key+0x9a>
   3479c:	aa10      	add	r2, sp, #64	; 0x40
   3479e:	10c9      	asrs	r1, r1, #3
   347a0:	4638      	mov	r0, r7
   347a2:	f000 fea8 	bl	354f6 <uECC_vli_nativeToBytes>
			uECC_vli_nativeToBytes(public_key,
   347a6:	466a      	mov	r2, sp
   347a8:	f994 1001 	ldrsb.w	r1, [r4, #1]
   347ac:	4630      	mov	r0, r6
   347ae:	f000 fea2 	bl	354f6 <uECC_vli_nativeToBytes>
			uECC_vli_nativeToBytes(public_key + curve->num_bytes,
   347b2:	f994 1001 	ldrsb.w	r1, [r4, #1]
					       _public + curve->num_words);
   347b6:	f994 2000 	ldrsb.w	r2, [r4]
			uECC_vli_nativeToBytes(public_key + curve->num_bytes,
   347ba:	eb0d 0282 	add.w	r2, sp, r2, lsl #2
   347be:	1870      	adds	r0, r6, r1
   347c0:	f000 fe99 	bl	354f6 <uECC_vli_nativeToBytes>
#ifdef TINYCRYPT_ARCH_HAS_SET_SECURE
extern void _set_secure(void *to, uint8_t val, unsigned int len);
#else /* ! TINYCRYPT_ARCH_HAS_SET_SECURE */
static inline void _set_secure(void *to, uint8_t val, unsigned int len)
{
  (void) memset(to, val, len);
   347c4:	ac10      	add	r4, sp, #64	; 0x40
   347c6:	2220      	movs	r2, #32
   347c8:	2100      	movs	r1, #0
   347ca:	4620      	mov	r0, r4
   347cc:	f001 f9ba 	bl	35b44 <memset>
      			return 1;
   347d0:	2001      	movs	r0, #1
   347d2:	e7ba      	b.n	3474a <uECC_make_key+0x10>
			uECC_vli_nativeToBytes(private_key,
   347d4:	1dd9      	adds	r1, r3, #7
   347d6:	e7e1      	b.n	3479c <uECC_make_key+0x62>
	return 0;
   347d8:	2000      	movs	r0, #0
   347da:	e7b6      	b.n	3474a <uECC_make_key+0x10>

000347dc <uECC_shared_secret>:

int uECC_shared_secret(const uint8_t *public_key, const uint8_t *private_key,
		       uint8_t *secret, uECC_Curve curve)
{
   347dc:	e92d 43f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, lr}
   347e0:	b0a5      	sub	sp, #148	; 0x94
   347e2:	4606      	mov	r6, r0
   347e4:	4690      	mov	r8, r2
   347e6:	461c      	mov	r4, r3

	uECC_word_t _public[NUM_ECC_WORDS * 2];
	uECC_word_t _private[NUM_ECC_WORDS];

	uECC_word_t tmp[NUM_ECC_WORDS];
	uECC_word_t *p2[2] = {_private, tmp};
   347e8:	ab0c      	add	r3, sp, #48	; 0x30
   347ea:	9302      	str	r3, [sp, #8]
   347ec:	ab04      	add	r3, sp, #16
   347ee:	9303      	str	r3, [sp, #12]
	uECC_word_t *initial_Z = 0;
	uECC_word_t carry;
	wordcount_t num_words = curve->num_words;
   347f0:	f994 9000 	ldrsb.w	r9, [r4]
	wordcount_t num_bytes = curve->num_bytes;
   347f4:	f994 7001 	ldrsb.w	r7, [r4, #1]
	int r;

	/* Converting buffers to correct bit order: */
	uECC_vli_bytesToNative(_private,
      			       private_key,
			       BITS_TO_BYTES(curve->num_n_bits));
   347f8:	f9b4 2002 	ldrsh.w	r2, [r4, #2]
	uECC_vli_bytesToNative(_private,
   347fc:	3207      	adds	r2, #7
   347fe:	d44a      	bmi.n	34896 <uECC_shared_secret+0xba>
   34800:	ad0c      	add	r5, sp, #48	; 0x30
   34802:	10d2      	asrs	r2, r2, #3
   34804:	4628      	mov	r0, r5
   34806:	f000 fe8a 	bl	3551e <uECC_vli_bytesToNative>
	uECC_vli_bytesToNative(_public,
   3480a:	463a      	mov	r2, r7
   3480c:	4631      	mov	r1, r6
   3480e:	a814      	add	r0, sp, #80	; 0x50
   34810:	f000 fe85 	bl	3551e <uECC_vli_bytesToNative>
      			       public_key,
			       num_bytes);
	uECC_vli_bytesToNative(_public + num_words,
   34814:	463a      	mov	r2, r7
   34816:	19f1      	adds	r1, r6, r7
   34818:	ab14      	add	r3, sp, #80	; 0x50
   3481a:	eb03 0089 	add.w	r0, r3, r9, lsl #2
   3481e:	f000 fe7e 	bl	3551e <uECC_vli_bytesToNative>
			       public_key + num_bytes,
			       num_bytes);

	/* Regularize the bitcount for the private key so that attackers cannot use a
	 * side channel attack to learn the number of leading zeros. */
	carry = regularize_k(_private, _private, tmp, curve);
   34822:	ae04      	add	r6, sp, #16
   34824:	4623      	mov	r3, r4
   34826:	4632      	mov	r2, r6
   34828:	4629      	mov	r1, r5
   3482a:	4628      	mov	r0, r5
   3482c:	f000 fe07 	bl	3543e <regularize_k>
			goto clear_and_out;
    		}
    		initial_Z = p2[carry];
  	}

	EccPoint_mult(_public, _public, p2[!carry], initial_Z, curve->num_n_bits + 1,
   34830:	fab0 f080 	clz	r0, r0
   34834:	0940      	lsrs	r0, r0, #5
   34836:	ab24      	add	r3, sp, #144	; 0x90
   34838:	eb03 0080 	add.w	r0, r3, r0, lsl #2
   3483c:	f9b4 3002 	ldrsh.w	r3, [r4, #2]
   34840:	9401      	str	r4, [sp, #4]
   34842:	3301      	adds	r3, #1
   34844:	b21b      	sxth	r3, r3
   34846:	9300      	str	r3, [sp, #0]
   34848:	2300      	movs	r3, #0
   3484a:	f850 2c88 	ldr.w	r2, [r0, #-136]
   3484e:	a914      	add	r1, sp, #80	; 0x50
   34850:	4608      	mov	r0, r1
   34852:	f000 fd3e 	bl	352d2 <EccPoint_mult>
		      curve);

	uECC_vli_nativeToBytes(secret, num_bytes, _public);
   34856:	aa14      	add	r2, sp, #80	; 0x50
   34858:	4639      	mov	r1, r7
   3485a:	4640      	mov	r0, r8
   3485c:	f000 fe4b 	bl	354f6 <uECC_vli_nativeToBytes>
	r = !EccPoint_isZero(_public, curve);
   34860:	4621      	mov	r1, r4
   34862:	a814      	add	r0, sp, #80	; 0x50
   34864:	f000 fc70 	bl	35148 <EccPoint_isZero>
   34868:	fab0 f480 	clz	r4, r0
   3486c:	0964      	lsrs	r4, r4, #5
   3486e:	af02      	add	r7, sp, #8
   34870:	2208      	movs	r2, #8
   34872:	2100      	movs	r1, #0
   34874:	4638      	mov	r0, r7
   34876:	f001 f965 	bl	35b44 <memset>
   3487a:	2220      	movs	r2, #32
   3487c:	2100      	movs	r1, #0
   3487e:	4630      	mov	r0, r6
   34880:	f001 f960 	bl	35b44 <memset>
   34884:	2220      	movs	r2, #32
   34886:	2100      	movs	r1, #0
   34888:	4628      	mov	r0, r5
   3488a:	f001 f95b 	bl	35b44 <memset>
	_set_secure(p2, 0, sizeof(p2));
	_set_secure(tmp, 0, sizeof(tmp));
	_set_secure(_private, 0, sizeof(_private));

	return r;
}
   3488e:	4620      	mov	r0, r4
   34890:	b025      	add	sp, #148	; 0x94
   34892:	e8bd 83f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, pc}
	uECC_vli_bytesToNative(_private,
   34896:	3207      	adds	r2, #7
   34898:	e7b2      	b.n	34800 <uECC_shared_secret+0x24>

0003489a <vli_numDigits>:
	for (i = max_words - 1; i >= 0 && vli[i] == 0; --i) {
   3489a:	3901      	subs	r1, #1
   3489c:	b249      	sxtb	r1, r1
   3489e:	2900      	cmp	r1, #0
   348a0:	db05      	blt.n	348ae <vli_numDigits+0x14>
   348a2:	f850 3021 	ldr.w	r3, [r0, r1, lsl #2]
   348a6:	b913      	cbnz	r3, 348ae <vli_numDigits+0x14>
   348a8:	3901      	subs	r1, #1
   348aa:	b249      	sxtb	r1, r1
   348ac:	e7f7      	b.n	3489e <vli_numDigits+0x4>
	return (i + 1);
   348ae:	1c48      	adds	r0, r1, #1
}
   348b0:	b240      	sxtb	r0, r0
   348b2:	4770      	bx	lr

000348b4 <uECC_vli_rshift1>:
{
   348b4:	b410      	push	{r4}
	vli += num_words;
   348b6:	eb00 0181 	add.w	r1, r0, r1, lsl #2
	uECC_word_t carry = 0;
   348ba:	2300      	movs	r3, #0
	while (vli-- > end) {
   348bc:	1f0c      	subs	r4, r1, #4
   348be:	4281      	cmp	r1, r0
   348c0:	d908      	bls.n	348d4 <uECC_vli_rshift1+0x20>
		uECC_word_t temp = *vli;
   348c2:	f851 2c04 	ldr.w	r2, [r1, #-4]
		*vli = (temp >> 1) | carry;
   348c6:	ea43 0352 	orr.w	r3, r3, r2, lsr #1
   348ca:	f841 3c04 	str.w	r3, [r1, #-4]
		carry = temp << (uECC_WORD_BITS - 1);
   348ce:	07d3      	lsls	r3, r2, #31
	while (vli-- > end) {
   348d0:	4621      	mov	r1, r4
   348d2:	e7f3      	b.n	348bc <uECC_vli_rshift1+0x8>
}
   348d4:	bc10      	pop	{r4}
   348d6:	4770      	bx	lr

000348d8 <muladd>:
{
   348d8:	b4f0      	push	{r4, r5, r6, r7}
   348da:	9f04      	ldr	r7, [sp, #16]
	uECC_dword_t p = (uECC_dword_t)a * b;
   348dc:	fba0 0101 	umull	r0, r1, r0, r1
	uECC_dword_t r01 = ((uECC_dword_t)(*r1) << uECC_WORD_BITS) | *r0;
   348e0:	6816      	ldr	r6, [r2, #0]
   348e2:	f8d3 c000 	ldr.w	ip, [r3]
	r01 += p;
   348e6:	1984      	adds	r4, r0, r6
   348e8:	eb41 050c 	adc.w	r5, r1, ip
	*r2 += (r01 < p);
   348ec:	428d      	cmp	r5, r1
   348ee:	bf08      	it	eq
   348f0:	4284      	cmpeq	r4, r0
   348f2:	bf34      	ite	cc
   348f4:	2001      	movcc	r0, #1
   348f6:	2000      	movcs	r0, #0
   348f8:	6839      	ldr	r1, [r7, #0]
   348fa:	4401      	add	r1, r0
   348fc:	6039      	str	r1, [r7, #0]
	*r1 = r01 >> uECC_WORD_BITS;
   348fe:	601d      	str	r5, [r3, #0]
	*r0 = (uECC_word_t)r01;
   34900:	6014      	str	r4, [r2, #0]
}
   34902:	bcf0      	pop	{r4, r5, r6, r7}
   34904:	4770      	bx	lr

00034906 <uECC_vli_mult>:
{
   34906:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
   3490a:	b086      	sub	sp, #24
   3490c:	4681      	mov	r9, r0
   3490e:	460e      	mov	r6, r1
   34910:	4617      	mov	r7, r2
   34912:	4698      	mov	r8, r3
	uECC_word_t r0 = 0;
   34914:	2500      	movs	r5, #0
   34916:	9505      	str	r5, [sp, #20]
	uECC_word_t r1 = 0;
   34918:	9504      	str	r5, [sp, #16]
	uECC_word_t r2 = 0;
   3491a:	9503      	str	r5, [sp, #12]
	for (k = 0; k < num_words; ++k) {
   3491c:	e00a      	b.n	34934 <uECC_vli_mult+0x2e>
		result[k] = r0;
   3491e:	9b05      	ldr	r3, [sp, #20]
   34920:	f849 3025 	str.w	r3, [r9, r5, lsl #2]
		r0 = r1;
   34924:	9b04      	ldr	r3, [sp, #16]
   34926:	9305      	str	r3, [sp, #20]
		r1 = r2;
   34928:	9b03      	ldr	r3, [sp, #12]
   3492a:	9304      	str	r3, [sp, #16]
		r2 = 0;
   3492c:	2300      	movs	r3, #0
   3492e:	9303      	str	r3, [sp, #12]
	for (k = 0; k < num_words; ++k) {
   34930:	3501      	adds	r5, #1
   34932:	b26d      	sxtb	r5, r5
   34934:	4545      	cmp	r5, r8
   34936:	da10      	bge.n	3495a <uECC_vli_mult+0x54>
		for (i = 0; i <= k; ++i) {
   34938:	2400      	movs	r4, #0
   3493a:	42ac      	cmp	r4, r5
   3493c:	dcef      	bgt.n	3491e <uECC_vli_mult+0x18>
			muladd(left[i], right[k - i], &r0, &r1, &r2);
   3493e:	1b29      	subs	r1, r5, r4
   34940:	ab03      	add	r3, sp, #12
   34942:	9300      	str	r3, [sp, #0]
   34944:	ab04      	add	r3, sp, #16
   34946:	aa05      	add	r2, sp, #20
   34948:	f857 1021 	ldr.w	r1, [r7, r1, lsl #2]
   3494c:	f856 0024 	ldr.w	r0, [r6, r4, lsl #2]
   34950:	f7ff ffc2 	bl	348d8 <muladd>
		for (i = 0; i <= k; ++i) {
   34954:	3401      	adds	r4, #1
   34956:	b264      	sxtb	r4, r4
   34958:	e7ef      	b.n	3493a <uECC_vli_mult+0x34>
	for (k = num_words; k < num_words * 2 - 1; ++k) {
   3495a:	46c2      	mov	sl, r8
   3495c:	e01b      	b.n	34996 <uECC_vli_mult+0x90>
			muladd(left[i], right[k - i], &r0, &r1, &r2);
   3495e:	1b29      	subs	r1, r5, r4
   34960:	ab03      	add	r3, sp, #12
   34962:	9300      	str	r3, [sp, #0]
   34964:	ab04      	add	r3, sp, #16
   34966:	aa05      	add	r2, sp, #20
   34968:	f857 1021 	ldr.w	r1, [r7, r1, lsl #2]
   3496c:	f856 0024 	ldr.w	r0, [r6, r4, lsl #2]
   34970:	f7ff ffb2 	bl	348d8 <muladd>
		for (i = (k + 1) - num_words; i < num_words; ++i) {
   34974:	3401      	adds	r4, #1
   34976:	b264      	sxtb	r4, r4
   34978:	4544      	cmp	r4, r8
   3497a:	dbf0      	blt.n	3495e <uECC_vli_mult+0x58>
		result[k] = r0;
   3497c:	9b05      	ldr	r3, [sp, #20]
   3497e:	f849 302a 	str.w	r3, [r9, sl, lsl #2]
		r0 = r1;
   34982:	9b04      	ldr	r3, [sp, #16]
   34984:	9305      	str	r3, [sp, #20]
		r1 = r2;
   34986:	9b03      	ldr	r3, [sp, #12]
   34988:	9304      	str	r3, [sp, #16]
		r2 = 0;
   3498a:	2300      	movs	r3, #0
   3498c:	9303      	str	r3, [sp, #12]
	for (k = num_words; k < num_words * 2 - 1; ++k) {
   3498e:	f10a 0a01 	add.w	sl, sl, #1
   34992:	fa4f fa8a 	sxtb.w	sl, sl
   34996:	4655      	mov	r5, sl
   34998:	4642      	mov	r2, r8
   3499a:	ea4f 0348 	mov.w	r3, r8, lsl #1
   3499e:	3b01      	subs	r3, #1
   349a0:	459a      	cmp	sl, r3
   349a2:	da05      	bge.n	349b0 <uECC_vli_mult+0xaa>
		for (i = (k + 1) - num_words; i < num_words; ++i) {
   349a4:	ebaa 0408 	sub.w	r4, sl, r8
   349a8:	b264      	sxtb	r4, r4
   349aa:	3401      	adds	r4, #1
   349ac:	b264      	sxtb	r4, r4
   349ae:	e7e3      	b.n	34978 <uECC_vli_mult+0x72>
	result[num_words * 2 - 1] = r0;
   349b0:	00d3      	lsls	r3, r2, #3
   349b2:	3b04      	subs	r3, #4
   349b4:	9a05      	ldr	r2, [sp, #20]
   349b6:	f849 2003 	str.w	r2, [r9, r3]
}
   349ba:	b006      	add	sp, #24
   349bc:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}

000349c0 <uECC_vli_clear>:
	for (i = 0; i < num_words; ++i) {
   349c0:	2300      	movs	r3, #0
   349c2:	428b      	cmp	r3, r1
   349c4:	da05      	bge.n	349d2 <uECC_vli_clear+0x12>
		 vli[i] = 0;
   349c6:	2200      	movs	r2, #0
   349c8:	f840 2023 	str.w	r2, [r0, r3, lsl #2]
	for (i = 0; i < num_words; ++i) {
   349cc:	3301      	adds	r3, #1
   349ce:	b25b      	sxtb	r3, r3
   349d0:	e7f7      	b.n	349c2 <uECC_vli_clear+0x2>
}
   349d2:	4770      	bx	lr

000349d4 <uECC_vli_isZero>:
	for (i = 0; i < num_words; ++i) {
   349d4:	2300      	movs	r3, #0
	uECC_word_t bits = 0;
   349d6:	461a      	mov	r2, r3
	for (i = 0; i < num_words; ++i) {
   349d8:	428b      	cmp	r3, r1
   349da:	da0c      	bge.n	349f6 <uECC_vli_isZero+0x22>
{
   349dc:	b410      	push	{r4}
		bits |= vli[i];
   349de:	f850 4023 	ldr.w	r4, [r0, r3, lsl #2]
   349e2:	4322      	orrs	r2, r4
	for (i = 0; i < num_words; ++i) {
   349e4:	3301      	adds	r3, #1
   349e6:	b25b      	sxtb	r3, r3
   349e8:	428b      	cmp	r3, r1
   349ea:	dbf8      	blt.n	349de <uECC_vli_isZero+0xa>
}
   349ec:	fab2 f082 	clz	r0, r2
   349f0:	0940      	lsrs	r0, r0, #5
   349f2:	bc10      	pop	{r4}
   349f4:	4770      	bx	lr
   349f6:	fab3 f083 	clz	r0, r3
   349fa:	0940      	lsrs	r0, r0, #5
   349fc:	4770      	bx	lr

000349fe <uECC_vli_testBit>:
	return (vli[bit >> uECC_WORD_BITS_SHIFT] &
   349fe:	114b      	asrs	r3, r1, #5
   34a00:	f850 0023 	ldr.w	r0, [r0, r3, lsl #2]
		((uECC_word_t)1 << (bit & uECC_WORD_BITS_MASK)));
   34a04:	f001 011f 	and.w	r1, r1, #31
   34a08:	2301      	movs	r3, #1
   34a0a:	fa03 f101 	lsl.w	r1, r3, r1
}
   34a0e:	4008      	ands	r0, r1
   34a10:	4770      	bx	lr

00034a12 <uECC_vli_numBits>:
{
   34a12:	b510      	push	{r4, lr}
   34a14:	4604      	mov	r4, r0
	wordcount_t num_digits = vli_numDigits(vli, max_words);
   34a16:	f7ff ff40 	bl	3489a <vli_numDigits>
	if (num_digits == 0) {
   34a1a:	b188      	cbz	r0, 34a40 <uECC_vli_numBits+0x2e>
   34a1c:	4602      	mov	r2, r0
	digit = vli[num_digits - 1];
   34a1e:	f100 4380 	add.w	r3, r0, #1073741824	; 0x40000000
   34a22:	3b01      	subs	r3, #1
   34a24:	f854 3023 	ldr.w	r3, [r4, r3, lsl #2]
	for (i = 0; digit; ++i) {
   34a28:	2000      	movs	r0, #0
   34a2a:	b113      	cbz	r3, 34a32 <uECC_vli_numBits+0x20>
		digit >>= 1;
   34a2c:	085b      	lsrs	r3, r3, #1
	for (i = 0; digit; ++i) {
   34a2e:	3001      	adds	r0, #1
   34a30:	e7fb      	b.n	34a2a <uECC_vli_numBits+0x18>
	return (((bitcount_t)(num_digits - 1) << uECC_WORD_BITS_SHIFT) + i);
   34a32:	1e53      	subs	r3, r2, #1
   34a34:	b29b      	uxth	r3, r3
   34a36:	015b      	lsls	r3, r3, #5
   34a38:	b29b      	uxth	r3, r3
   34a3a:	4418      	add	r0, r3
   34a3c:	b200      	sxth	r0, r0
}
   34a3e:	bd10      	pop	{r4, pc}
		return 0;
   34a40:	2000      	movs	r0, #0
   34a42:	e7fc      	b.n	34a3e <uECC_vli_numBits+0x2c>

00034a44 <uECC_vli_set>:
	for (i = 0; i < num_words; ++i) {
   34a44:	2300      	movs	r3, #0
   34a46:	4293      	cmp	r3, r2
   34a48:	da0a      	bge.n	34a60 <uECC_vli_set+0x1c>
{
   34a4a:	b410      	push	{r4}
		dest[i] = src[i];
   34a4c:	f851 4023 	ldr.w	r4, [r1, r3, lsl #2]
   34a50:	f840 4023 	str.w	r4, [r0, r3, lsl #2]
	for (i = 0; i < num_words; ++i) {
   34a54:	3301      	adds	r3, #1
   34a56:	b25b      	sxtb	r3, r3
   34a58:	4293      	cmp	r3, r2
   34a5a:	dbf7      	blt.n	34a4c <uECC_vli_set+0x8>
}
   34a5c:	bc10      	pop	{r4}
   34a5e:	4770      	bx	lr
   34a60:	4770      	bx	lr

00034a62 <uECC_vli_cmp_unsafe>:
	for (i = num_words - 1; i >= 0; --i) {
   34a62:	3a01      	subs	r2, #1
   34a64:	b252      	sxtb	r2, r2
   34a66:	2a00      	cmp	r2, #0
   34a68:	db13      	blt.n	34a92 <uECC_vli_cmp_unsafe+0x30>
{
   34a6a:	b410      	push	{r4}
		if (left[i] > right[i]) {
   34a6c:	f850 4022 	ldr.w	r4, [r0, r2, lsl #2]
   34a70:	f851 3022 	ldr.w	r3, [r1, r2, lsl #2]
   34a74:	429c      	cmp	r4, r3
   34a76:	d807      	bhi.n	34a88 <uECC_vli_cmp_unsafe+0x26>
		} else if (left[i] < right[i]) {
   34a78:	d308      	bcc.n	34a8c <uECC_vli_cmp_unsafe+0x2a>
	for (i = num_words - 1; i >= 0; --i) {
   34a7a:	3a01      	subs	r2, #1
   34a7c:	b252      	sxtb	r2, r2
   34a7e:	2a00      	cmp	r2, #0
   34a80:	daf4      	bge.n	34a6c <uECC_vli_cmp_unsafe+0xa>
	return 0;
   34a82:	2000      	movs	r0, #0
}
   34a84:	bc10      	pop	{r4}
   34a86:	4770      	bx	lr
			return 1;
   34a88:	2001      	movs	r0, #1
   34a8a:	e7fb      	b.n	34a84 <uECC_vli_cmp_unsafe+0x22>
			return -1;
   34a8c:	f04f 30ff 	mov.w	r0, #4294967295
   34a90:	e7f8      	b.n	34a84 <uECC_vli_cmp_unsafe+0x22>
	return 0;
   34a92:	2000      	movs	r0, #0
}
   34a94:	4770      	bx	lr

00034a96 <uECC_vli_equal>:
{
   34a96:	b430      	push	{r4, r5}
	for (i = num_words - 1; i >= 0; --i) {
   34a98:	3a01      	subs	r2, #1
   34a9a:	b252      	sxtb	r2, r2
	uECC_word_t diff = 0;
   34a9c:	2400      	movs	r4, #0
	for (i = num_words - 1; i >= 0; --i) {
   34a9e:	2a00      	cmp	r2, #0
   34aa0:	db08      	blt.n	34ab4 <uECC_vli_equal+0x1e>
		diff |= (left[i] ^ right[i]);
   34aa2:	f850 3022 	ldr.w	r3, [r0, r2, lsl #2]
   34aa6:	f851 5022 	ldr.w	r5, [r1, r2, lsl #2]
   34aaa:	406b      	eors	r3, r5
   34aac:	431c      	orrs	r4, r3
	for (i = num_words - 1; i >= 0; --i) {
   34aae:	3a01      	subs	r2, #1
   34ab0:	b252      	sxtb	r2, r2
   34ab2:	e7f4      	b.n	34a9e <uECC_vli_equal+0x8>
}
   34ab4:	1e20      	subs	r0, r4, #0
   34ab6:	bf18      	it	ne
   34ab8:	2001      	movne	r0, #1
   34aba:	bc30      	pop	{r4, r5}
   34abc:	4770      	bx	lr

00034abe <cond_set>:
	return (p_true*(cond)) | (p_false*(!cond));
   34abe:	fb02 f000 	mul.w	r0, r2, r0
   34ac2:	2a00      	cmp	r2, #0
   34ac4:	bf0c      	ite	eq
   34ac6:	460a      	moveq	r2, r1
   34ac8:	2200      	movne	r2, #0
}
   34aca:	4310      	orrs	r0, r2
   34acc:	4770      	bx	lr

00034ace <uECC_vli_add>:
{
   34ace:	e92d 43f8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
   34ad2:	4681      	mov	r9, r0
   34ad4:	4688      	mov	r8, r1
   34ad6:	4617      	mov	r7, r2
   34ad8:	461e      	mov	r6, r3
	for (i = 0; i < num_words; ++i) {
   34ada:	2400      	movs	r4, #0
	uECC_word_t carry = 0;
   34adc:	4621      	mov	r1, r4
	for (i = 0; i < num_words; ++i) {
   34ade:	42b4      	cmp	r4, r6
   34ae0:	da14      	bge.n	34b0c <uECC_vli_add+0x3e>
		uECC_word_t sum = left[i] + right[i] + carry;
   34ae2:	f858 3024 	ldr.w	r3, [r8, r4, lsl #2]
   34ae6:	f857 5024 	ldr.w	r5, [r7, r4, lsl #2]
   34aea:	441d      	add	r5, r3
   34aec:	440d      	add	r5, r1
		uECC_word_t val = (sum < left[i]);
   34aee:	42ab      	cmp	r3, r5
		carry = cond_set(val, carry, (sum != left[i]));
   34af0:	bf14      	ite	ne
   34af2:	2201      	movne	r2, #1
   34af4:	2200      	moveq	r2, #0
   34af6:	bf8c      	ite	hi
   34af8:	2001      	movhi	r0, #1
   34afa:	2000      	movls	r0, #0
   34afc:	f7ff ffdf 	bl	34abe <cond_set>
   34b00:	4601      	mov	r1, r0
		result[i] = sum;
   34b02:	f849 5024 	str.w	r5, [r9, r4, lsl #2]
	for (i = 0; i < num_words; ++i) {
   34b06:	3401      	adds	r4, #1
   34b08:	b264      	sxtb	r4, r4
   34b0a:	e7e8      	b.n	34ade <uECC_vli_add+0x10>
}
   34b0c:	4608      	mov	r0, r1
   34b0e:	e8bd 83f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, pc}

00034b12 <vli_modInv_update>:
{
   34b12:	b570      	push	{r4, r5, r6, lr}
   34b14:	4605      	mov	r5, r0
   34b16:	4614      	mov	r4, r2
	if (!EVEN(uv)) {
   34b18:	6800      	ldr	r0, [r0, #0]
   34b1a:	f010 0601 	ands.w	r6, r0, #1
   34b1e:	d10e      	bne.n	34b3e <vli_modInv_update+0x2c>
	uECC_vli_rshift1(uv, num_words);
   34b20:	4621      	mov	r1, r4
   34b22:	4628      	mov	r0, r5
   34b24:	f7ff fec6 	bl	348b4 <uECC_vli_rshift1>
	if (carry) {
   34b28:	b146      	cbz	r6, 34b3c <vli_modInv_update+0x2a>
		uv[num_words - 1] |= HIGH_BIT_SET;
   34b2a:	f104 4480 	add.w	r4, r4, #1073741824	; 0x40000000
   34b2e:	3c01      	subs	r4, #1
   34b30:	f855 3024 	ldr.w	r3, [r5, r4, lsl #2]
   34b34:	f043 4300 	orr.w	r3, r3, #2147483648	; 0x80000000
   34b38:	f845 3024 	str.w	r3, [r5, r4, lsl #2]
}
   34b3c:	bd70      	pop	{r4, r5, r6, pc}
		carry = uECC_vli_add(uv, uv, mod, num_words);
   34b3e:	4613      	mov	r3, r2
   34b40:	460a      	mov	r2, r1
   34b42:	4629      	mov	r1, r5
   34b44:	4628      	mov	r0, r5
   34b46:	f7ff ffc2 	bl	34ace <uECC_vli_add>
   34b4a:	4606      	mov	r6, r0
   34b4c:	e7e8      	b.n	34b20 <vli_modInv_update+0xe>

00034b4e <uECC_vli_sub>:
{
   34b4e:	e92d 43f8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
   34b52:	4681      	mov	r9, r0
   34b54:	4688      	mov	r8, r1
   34b56:	4617      	mov	r7, r2
   34b58:	461e      	mov	r6, r3
	for (i = 0; i < num_words; ++i) {
   34b5a:	2400      	movs	r4, #0
	uECC_word_t borrow = 0;
   34b5c:	4621      	mov	r1, r4
	for (i = 0; i < num_words; ++i) {
   34b5e:	42b4      	cmp	r4, r6
   34b60:	da14      	bge.n	34b8c <uECC_vli_sub+0x3e>
		uECC_word_t diff = left[i] - right[i] - borrow;
   34b62:	f858 3024 	ldr.w	r3, [r8, r4, lsl #2]
   34b66:	f857 5024 	ldr.w	r5, [r7, r4, lsl #2]
   34b6a:	1b5d      	subs	r5, r3, r5
   34b6c:	1a6d      	subs	r5, r5, r1
		uECC_word_t val = (diff > left[i]);
   34b6e:	42ab      	cmp	r3, r5
		borrow = cond_set(val, borrow, (diff != left[i]));
   34b70:	bf14      	ite	ne
   34b72:	2201      	movne	r2, #1
   34b74:	2200      	moveq	r2, #0
   34b76:	bf34      	ite	cc
   34b78:	2001      	movcc	r0, #1
   34b7a:	2000      	movcs	r0, #0
   34b7c:	f7ff ff9f 	bl	34abe <cond_set>
   34b80:	4601      	mov	r1, r0
		result[i] = diff;
   34b82:	f849 5024 	str.w	r5, [r9, r4, lsl #2]
	for (i = 0; i < num_words; ++i) {
   34b86:	3401      	adds	r4, #1
   34b88:	b264      	sxtb	r4, r4
   34b8a:	e7e8      	b.n	34b5e <uECC_vli_sub+0x10>
}
   34b8c:	4608      	mov	r0, r1
   34b8e:	e8bd 83f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, pc}

00034b92 <uECC_vli_modAdd>:
{
   34b92:	b570      	push	{r4, r5, r6, lr}
   34b94:	4604      	mov	r4, r0
   34b96:	461d      	mov	r5, r3
   34b98:	f99d 6010 	ldrsb.w	r6, [sp, #16]
	uECC_word_t carry = uECC_vli_add(result, left, right, num_words);
   34b9c:	4633      	mov	r3, r6
   34b9e:	f7ff ff96 	bl	34ace <uECC_vli_add>
	if (carry || uECC_vli_cmp_unsafe(mod, result, num_words) != 1) {
   34ba2:	b930      	cbnz	r0, 34bb2 <uECC_vli_modAdd+0x20>
   34ba4:	4632      	mov	r2, r6
   34ba6:	4621      	mov	r1, r4
   34ba8:	4628      	mov	r0, r5
   34baa:	f7ff ff5a 	bl	34a62 <uECC_vli_cmp_unsafe>
   34bae:	2801      	cmp	r0, #1
   34bb0:	d005      	beq.n	34bbe <uECC_vli_modAdd+0x2c>
		uECC_vli_sub(result, result, mod, num_words);
   34bb2:	4633      	mov	r3, r6
   34bb4:	462a      	mov	r2, r5
   34bb6:	4621      	mov	r1, r4
   34bb8:	4620      	mov	r0, r4
   34bba:	f7ff ffc8 	bl	34b4e <uECC_vli_sub>
}
   34bbe:	bd70      	pop	{r4, r5, r6, pc}

00034bc0 <uECC_vli_modSub>:
{
   34bc0:	b570      	push	{r4, r5, r6, lr}
   34bc2:	4604      	mov	r4, r0
   34bc4:	461d      	mov	r5, r3
   34bc6:	f99d 6010 	ldrsb.w	r6, [sp, #16]
	uECC_word_t l_borrow = uECC_vli_sub(result, left, right, num_words);
   34bca:	4633      	mov	r3, r6
   34bcc:	f7ff ffbf 	bl	34b4e <uECC_vli_sub>
	if (l_borrow) {
   34bd0:	b900      	cbnz	r0, 34bd4 <uECC_vli_modSub+0x14>
}
   34bd2:	bd70      	pop	{r4, r5, r6, pc}
		uECC_vli_add(result, result, mod, num_words);
   34bd4:	4633      	mov	r3, r6
   34bd6:	462a      	mov	r2, r5
   34bd8:	4621      	mov	r1, r4
   34bda:	4620      	mov	r0, r4
   34bdc:	f7ff ff77 	bl	34ace <uECC_vli_add>
}
   34be0:	e7f7      	b.n	34bd2 <uECC_vli_modSub+0x12>

00034be2 <uECC_vli_mmod>:
{
   34be2:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
   34be6:	b0a2      	sub	sp, #136	; 0x88
   34be8:	4682      	mov	sl, r0
   34bea:	4691      	mov	r9, r2
   34bec:	461c      	mov	r4, r3
	uECC_word_t *v[2] = {tmp, product};
   34bee:	ab02      	add	r3, sp, #8
   34bf0:	9300      	str	r3, [sp, #0]
   34bf2:	9101      	str	r1, [sp, #4]
	bitcount_t shift = (num_words * 2 * uECC_WORD_BITS) -
   34bf4:	01a5      	lsls	r5, r4, #6
			   uECC_vli_numBits(mod, num_words);
   34bf6:	4621      	mov	r1, r4
   34bf8:	4610      	mov	r0, r2
   34bfa:	f7ff ff0a 	bl	34a12 <uECC_vli_numBits>
	bitcount_t shift = (num_words * 2 * uECC_WORD_BITS) -
   34bfe:	1a2d      	subs	r5, r5, r0
   34c00:	b22e      	sxth	r6, r5
	wordcount_t word_shift = shift / uECC_WORD_BITS;
   34c02:	46b0      	mov	r8, r6
   34c04:	2e00      	cmp	r6, #0
   34c06:	db11      	blt.n	34c2c <uECC_vli_mmod+0x4a>
   34c08:	f348 1847 	sbfx	r8, r8, #5, #8
	wordcount_t bit_shift = shift % uECC_WORD_BITS;
   34c0c:	4273      	negs	r3, r6
   34c0e:	f006 051f 	and.w	r5, r6, #31
   34c12:	f003 031f 	and.w	r3, r3, #31
   34c16:	bf58      	it	pl
   34c18:	425d      	negpl	r5, r3
	uECC_vli_clear(mod_multiple, word_shift);
   34c1a:	4641      	mov	r1, r8
   34c1c:	a812      	add	r0, sp, #72	; 0x48
   34c1e:	f7ff fecf 	bl	349c0 <uECC_vli_clear>
	if (bit_shift > 0) {
   34c22:	2d00      	cmp	r5, #0
   34c24:	dd1a      	ble.n	34c5c <uECC_vli_mmod+0x7a>
	uECC_word_t carry = 0;
   34c26:	2100      	movs	r1, #0
		for(index = 0; index < (uECC_word_t)num_words; ++index) {
   34c28:	460b      	mov	r3, r1
   34c2a:	e013      	b.n	34c54 <uECC_vli_mmod+0x72>
	wordcount_t word_shift = shift / uECC_WORD_BITS;
   34c2c:	f106 081f 	add.w	r8, r6, #31
   34c30:	e7ea      	b.n	34c08 <uECC_vli_mmod+0x26>
			mod_multiple[word_shift + index] = (mod[index] << bit_shift) | carry;
   34c32:	f859 7023 	ldr.w	r7, [r9, r3, lsl #2]
   34c36:	fa07 f005 	lsl.w	r0, r7, r5
   34c3a:	eb08 0203 	add.w	r2, r8, r3
   34c3e:	4301      	orrs	r1, r0
   34c40:	a822      	add	r0, sp, #136	; 0x88
   34c42:	eb00 0282 	add.w	r2, r0, r2, lsl #2
   34c46:	f842 1c40 	str.w	r1, [r2, #-64]
			carry = mod[index] >> (uECC_WORD_BITS - bit_shift);
   34c4a:	f1c5 0120 	rsb	r1, r5, #32
   34c4e:	fa27 f101 	lsr.w	r1, r7, r1
		for(index = 0; index < (uECC_word_t)num_words; ++index) {
   34c52:	3301      	adds	r3, #1
   34c54:	429c      	cmp	r4, r3
   34c56:	d8ec      	bhi.n	34c32 <uECC_vli_mmod+0x50>
		uECC_word_t borrow = 0;
   34c58:	2501      	movs	r5, #1
   34c5a:	e04b      	b.n	34cf4 <uECC_vli_mmod+0x112>
		uECC_vli_set(mod_multiple + word_shift, mod, num_words);
   34c5c:	4622      	mov	r2, r4
   34c5e:	4649      	mov	r1, r9
   34c60:	ab12      	add	r3, sp, #72	; 0x48
   34c62:	eb03 0088 	add.w	r0, r3, r8, lsl #2
   34c66:	f7ff feed 	bl	34a44 <uECC_vli_set>
   34c6a:	e7f5      	b.n	34c58 <uECC_vli_mmod+0x76>
				borrow = (diff > v[index][i]);
   34c6c:	428b      	cmp	r3, r1
   34c6e:	bf2c      	ite	cs
   34c70:	f04f 0c00 	movcs.w	ip, #0
   34c74:	f04f 0c01 	movcc.w	ip, #1
			v[1 - index][i] = diff;
   34c78:	f1c5 0301 	rsb	r3, r5, #1
   34c7c:	af22      	add	r7, sp, #136	; 0x88
   34c7e:	eb07 0383 	add.w	r3, r7, r3, lsl #2
   34c82:	f853 3c88 	ldr.w	r3, [r3, #-136]
   34c86:	5019      	str	r1, [r3, r0]
		for (i = 0; i < num_words * 2; ++i) {
   34c88:	3201      	adds	r2, #1
   34c8a:	b252      	sxtb	r2, r2
   34c8c:	ebb2 0f44 	cmp.w	r2, r4, lsl #1
   34c90:	da12      	bge.n	34cb8 <uECC_vli_mmod+0xd6>
			uECC_word_t diff = v[index][i] - mod_multiple[i] - borrow;
   34c92:	ab22      	add	r3, sp, #136	; 0x88
   34c94:	eb03 0385 	add.w	r3, r3, r5, lsl #2
   34c98:	f853 3c88 	ldr.w	r3, [r3, #-136]
   34c9c:	0090      	lsls	r0, r2, #2
   34c9e:	f853 3022 	ldr.w	r3, [r3, r2, lsl #2]
   34ca2:	a922      	add	r1, sp, #136	; 0x88
   34ca4:	eb01 0182 	add.w	r1, r1, r2, lsl #2
   34ca8:	f851 1c40 	ldr.w	r1, [r1, #-64]
   34cac:	1a59      	subs	r1, r3, r1
   34cae:	eba1 010c 	sub.w	r1, r1, ip
			if (diff != v[index][i]) {
   34cb2:	428b      	cmp	r3, r1
   34cb4:	d1da      	bne.n	34c6c <uECC_vli_mmod+0x8a>
   34cb6:	e7df      	b.n	34c78 <uECC_vli_mmod+0x96>
		index = !(index ^ borrow);
   34cb8:	4565      	cmp	r5, ip
   34cba:	bf14      	ite	ne
   34cbc:	2500      	movne	r5, #0
   34cbe:	2501      	moveq	r5, #1
		uECC_vli_rshift1(mod_multiple, num_words);
   34cc0:	4621      	mov	r1, r4
   34cc2:	a812      	add	r0, sp, #72	; 0x48
   34cc4:	f7ff fdf6 	bl	348b4 <uECC_vli_rshift1>
		mod_multiple[num_words - 1] |= mod_multiple[num_words] <<
   34cc8:	1e63      	subs	r3, r4, #1
   34cca:	aa22      	add	r2, sp, #136	; 0x88
   34ccc:	eb02 0884 	add.w	r8, r2, r4, lsl #2
   34cd0:	f858 1c40 	ldr.w	r1, [r8, #-64]
   34cd4:	eb02 0383 	add.w	r3, r2, r3, lsl #2
   34cd8:	f853 2c40 	ldr.w	r2, [r3, #-64]
   34cdc:	ea42 72c1 	orr.w	r2, r2, r1, lsl #31
   34ce0:	f843 2c40 	str.w	r2, [r3, #-64]
		uECC_vli_rshift1(mod_multiple + num_words, num_words);
   34ce4:	4621      	mov	r1, r4
   34ce6:	ab12      	add	r3, sp, #72	; 0x48
   34ce8:	eb03 0084 	add.w	r0, r3, r4, lsl #2
   34cec:	f7ff fde2 	bl	348b4 <uECC_vli_rshift1>
	for (index = 1; shift >= 0; --shift) {
   34cf0:	3e01      	subs	r6, #1
   34cf2:	b236      	sxth	r6, r6
   34cf4:	2e00      	cmp	r6, #0
   34cf6:	db02      	blt.n	34cfe <uECC_vli_mmod+0x11c>
		for (i = 0; i < num_words * 2; ++i) {
   34cf8:	2200      	movs	r2, #0
		uECC_word_t borrow = 0;
   34cfa:	4694      	mov	ip, r2
   34cfc:	e7c6      	b.n	34c8c <uECC_vli_mmod+0xaa>
	uECC_vli_set(result, v[index], num_words);
   34cfe:	ab22      	add	r3, sp, #136	; 0x88
   34d00:	eb03 0585 	add.w	r5, r3, r5, lsl #2
   34d04:	4622      	mov	r2, r4
   34d06:	f855 1c88 	ldr.w	r1, [r5, #-136]
   34d0a:	4650      	mov	r0, sl
   34d0c:	f7ff fe9a 	bl	34a44 <uECC_vli_set>
}
   34d10:	b022      	add	sp, #136	; 0x88
   34d12:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}

00034d16 <uECC_vli_modMult_fast>:
{
   34d16:	b530      	push	{r4, r5, lr}
   34d18:	b091      	sub	sp, #68	; 0x44
   34d1a:	4605      	mov	r5, r0
   34d1c:	461c      	mov	r4, r3
	uECC_vli_mult(product, left, right, curve->num_words);
   34d1e:	f993 3000 	ldrsb.w	r3, [r3]
   34d22:	4668      	mov	r0, sp
   34d24:	f7ff fdef 	bl	34906 <uECC_vli_mult>
	curve->mmod_fast(result, product);
   34d28:	f8d4 30ac 	ldr.w	r3, [r4, #172]	; 0xac
   34d2c:	4669      	mov	r1, sp
   34d2e:	4628      	mov	r0, r5
   34d30:	4798      	blx	r3
}
   34d32:	b011      	add	sp, #68	; 0x44
   34d34:	bd30      	pop	{r4, r5, pc}

00034d36 <uECC_vli_modSquare_fast>:
{
   34d36:	b508      	push	{r3, lr}
   34d38:	4613      	mov	r3, r2
	uECC_vli_modMult_fast(result, left, left, curve);
   34d3a:	460a      	mov	r2, r1
   34d3c:	f7ff ffeb 	bl	34d16 <uECC_vli_modMult_fast>
}
   34d40:	bd08      	pop	{r3, pc}

00034d42 <double_jacobian_default>:
{
   34d42:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
   34d46:	b092      	sub	sp, #72	; 0x48
   34d48:	4605      	mov	r5, r0
   34d4a:	4689      	mov	r9, r1
   34d4c:	4614      	mov	r4, r2
   34d4e:	461f      	mov	r7, r3
	wordcount_t num_words = curve->num_words;
   34d50:	f993 6000 	ldrsb.w	r6, [r3]
	if (uECC_vli_isZero(Z1, num_words)) {
   34d54:	4631      	mov	r1, r6
   34d56:	4610      	mov	r0, r2
   34d58:	f7ff fe3c 	bl	349d4 <uECC_vli_isZero>
   34d5c:	b110      	cbz	r0, 34d64 <double_jacobian_default+0x22>
}
   34d5e:	b012      	add	sp, #72	; 0x48
   34d60:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
	uECC_vli_modSquare_fast(t4, Y1, curve);   /* t4 = y1^2 */
   34d64:	463a      	mov	r2, r7
   34d66:	4649      	mov	r1, r9
   34d68:	a80a      	add	r0, sp, #40	; 0x28
   34d6a:	f7ff ffe4 	bl	34d36 <uECC_vli_modSquare_fast>
	uECC_vli_modMult_fast(t5, X1, t4, curve); /* t5 = x1*y1^2 = A */
   34d6e:	463b      	mov	r3, r7
   34d70:	aa0a      	add	r2, sp, #40	; 0x28
   34d72:	4629      	mov	r1, r5
   34d74:	a802      	add	r0, sp, #8
   34d76:	f7ff ffce 	bl	34d16 <uECC_vli_modMult_fast>
	uECC_vli_modSquare_fast(t4, t4, curve);   /* t4 = y1^4 */
   34d7a:	463a      	mov	r2, r7
   34d7c:	a90a      	add	r1, sp, #40	; 0x28
   34d7e:	4608      	mov	r0, r1
   34d80:	f7ff ffd9 	bl	34d36 <uECC_vli_modSquare_fast>
	uECC_vli_modMult_fast(Y1, Y1, Z1, curve); /* t2 = y1*z1 = z3 */
   34d84:	463b      	mov	r3, r7
   34d86:	4622      	mov	r2, r4
   34d88:	4649      	mov	r1, r9
   34d8a:	4648      	mov	r0, r9
   34d8c:	f7ff ffc3 	bl	34d16 <uECC_vli_modMult_fast>
	uECC_vli_modSquare_fast(Z1, Z1, curve);   /* t3 = z1^2 */
   34d90:	463a      	mov	r2, r7
   34d92:	4621      	mov	r1, r4
   34d94:	4620      	mov	r0, r4
   34d96:	f7ff ffce 	bl	34d36 <uECC_vli_modSquare_fast>
	uECC_vli_modAdd(X1, X1, Z1, curve->p, num_words); /* t1 = x1 + z1^2 */
   34d9a:	f107 0804 	add.w	r8, r7, #4
   34d9e:	9600      	str	r6, [sp, #0]
   34da0:	4643      	mov	r3, r8
   34da2:	4622      	mov	r2, r4
   34da4:	4629      	mov	r1, r5
   34da6:	4628      	mov	r0, r5
   34da8:	f7ff fef3 	bl	34b92 <uECC_vli_modAdd>
	uECC_vli_modAdd(Z1, Z1, Z1, curve->p, num_words); /* t3 = 2*z1^2 */
   34dac:	9600      	str	r6, [sp, #0]
   34dae:	4643      	mov	r3, r8
   34db0:	4622      	mov	r2, r4
   34db2:	4621      	mov	r1, r4
   34db4:	4620      	mov	r0, r4
   34db6:	f7ff feec 	bl	34b92 <uECC_vli_modAdd>
	uECC_vli_modSub(Z1, X1, Z1, curve->p, num_words); /* t3 = x1 - z1^2 */
   34dba:	9600      	str	r6, [sp, #0]
   34dbc:	4643      	mov	r3, r8
   34dbe:	4622      	mov	r2, r4
   34dc0:	4629      	mov	r1, r5
   34dc2:	4620      	mov	r0, r4
   34dc4:	f7ff fefc 	bl	34bc0 <uECC_vli_modSub>
	uECC_vli_modMult_fast(X1, X1, Z1, curve); /* t1 = x1^2 - z1^4 */
   34dc8:	463b      	mov	r3, r7
   34dca:	4622      	mov	r2, r4
   34dcc:	4629      	mov	r1, r5
   34dce:	4628      	mov	r0, r5
   34dd0:	f7ff ffa1 	bl	34d16 <uECC_vli_modMult_fast>
	uECC_vli_modAdd(Z1, X1, X1, curve->p, num_words); /* t3 = 2*(x1^2 - z1^4) */
   34dd4:	9600      	str	r6, [sp, #0]
   34dd6:	4643      	mov	r3, r8
   34dd8:	462a      	mov	r2, r5
   34dda:	4629      	mov	r1, r5
   34ddc:	4620      	mov	r0, r4
   34dde:	f7ff fed8 	bl	34b92 <uECC_vli_modAdd>
	uECC_vli_modAdd(X1, X1, Z1, curve->p, num_words); /* t1 = 3*(x1^2 - z1^4) */
   34de2:	9600      	str	r6, [sp, #0]
   34de4:	4643      	mov	r3, r8
   34de6:	4622      	mov	r2, r4
   34de8:	4629      	mov	r1, r5
   34dea:	4628      	mov	r0, r5
   34dec:	f7ff fed1 	bl	34b92 <uECC_vli_modAdd>
	if (uECC_vli_testBit(X1, 0)) {
   34df0:	2100      	movs	r1, #0
   34df2:	4628      	mov	r0, r5
   34df4:	f7ff fe03 	bl	349fe <uECC_vli_testBit>
   34df8:	2800      	cmp	r0, #0
   34dfa:	d04a      	beq.n	34e92 <double_jacobian_default+0x150>
		uECC_word_t l_carry = uECC_vli_add(X1, X1, curve->p, num_words);
   34dfc:	4633      	mov	r3, r6
   34dfe:	4642      	mov	r2, r8
   34e00:	4629      	mov	r1, r5
   34e02:	4628      	mov	r0, r5
   34e04:	f7ff fe63 	bl	34ace <uECC_vli_add>
   34e08:	4682      	mov	sl, r0
		uECC_vli_rshift1(X1, num_words);
   34e0a:	4631      	mov	r1, r6
   34e0c:	4628      	mov	r0, r5
   34e0e:	f7ff fd51 	bl	348b4 <uECC_vli_rshift1>
		X1[num_words - 1] |= l_carry << (uECC_WORD_BITS - 1);
   34e12:	f106 4380 	add.w	r3, r6, #1073741824	; 0x40000000
   34e16:	3b01      	subs	r3, #1
   34e18:	f855 0023 	ldr.w	r0, [r5, r3, lsl #2]
   34e1c:	ea40 70ca 	orr.w	r0, r0, sl, lsl #31
   34e20:	f845 0023 	str.w	r0, [r5, r3, lsl #2]
	uECC_vli_modSquare_fast(Z1, X1, curve); /* t3 = B^2 */
   34e24:	463a      	mov	r2, r7
   34e26:	4629      	mov	r1, r5
   34e28:	4620      	mov	r0, r4
   34e2a:	f7ff ff84 	bl	34d36 <uECC_vli_modSquare_fast>
	uECC_vli_modSub(Z1, Z1, t5, curve->p, num_words); /* t3 = B^2 - A */
   34e2e:	9600      	str	r6, [sp, #0]
   34e30:	4643      	mov	r3, r8
   34e32:	aa02      	add	r2, sp, #8
   34e34:	4621      	mov	r1, r4
   34e36:	4620      	mov	r0, r4
   34e38:	f7ff fec2 	bl	34bc0 <uECC_vli_modSub>
	uECC_vli_modSub(Z1, Z1, t5, curve->p, num_words); /* t3 = B^2 - 2A = x3 */
   34e3c:	9600      	str	r6, [sp, #0]
   34e3e:	4643      	mov	r3, r8
   34e40:	aa02      	add	r2, sp, #8
   34e42:	4621      	mov	r1, r4
   34e44:	4620      	mov	r0, r4
   34e46:	f7ff febb 	bl	34bc0 <uECC_vli_modSub>
	uECC_vli_modSub(t5, t5, Z1, curve->p, num_words); /* t5 = A - x3 */
   34e4a:	9600      	str	r6, [sp, #0]
   34e4c:	4643      	mov	r3, r8
   34e4e:	4622      	mov	r2, r4
   34e50:	a902      	add	r1, sp, #8
   34e52:	4608      	mov	r0, r1
   34e54:	f7ff feb4 	bl	34bc0 <uECC_vli_modSub>
	uECC_vli_modMult_fast(X1, X1, t5, curve); /* t1 = B * (A - x3) */
   34e58:	463b      	mov	r3, r7
   34e5a:	aa02      	add	r2, sp, #8
   34e5c:	4629      	mov	r1, r5
   34e5e:	4628      	mov	r0, r5
   34e60:	f7ff ff59 	bl	34d16 <uECC_vli_modMult_fast>
	uECC_vli_modSub(t4, X1, t4, curve->p, num_words);
   34e64:	9600      	str	r6, [sp, #0]
   34e66:	4643      	mov	r3, r8
   34e68:	aa0a      	add	r2, sp, #40	; 0x28
   34e6a:	4629      	mov	r1, r5
   34e6c:	4610      	mov	r0, r2
   34e6e:	f7ff fea7 	bl	34bc0 <uECC_vli_modSub>
	uECC_vli_set(X1, Z1, num_words);
   34e72:	4632      	mov	r2, r6
   34e74:	4621      	mov	r1, r4
   34e76:	4628      	mov	r0, r5
   34e78:	f7ff fde4 	bl	34a44 <uECC_vli_set>
	uECC_vli_set(Z1, Y1, num_words);
   34e7c:	4632      	mov	r2, r6
   34e7e:	4649      	mov	r1, r9
   34e80:	4620      	mov	r0, r4
   34e82:	f7ff fddf 	bl	34a44 <uECC_vli_set>
	uECC_vli_set(Y1, t4, num_words);
   34e86:	4632      	mov	r2, r6
   34e88:	a90a      	add	r1, sp, #40	; 0x28
   34e8a:	4648      	mov	r0, r9
   34e8c:	f7ff fdda 	bl	34a44 <uECC_vli_set>
   34e90:	e765      	b.n	34d5e <double_jacobian_default+0x1c>
		uECC_vli_rshift1(X1, num_words);
   34e92:	4631      	mov	r1, r6
   34e94:	4628      	mov	r0, r5
   34e96:	f7ff fd0d 	bl	348b4 <uECC_vli_rshift1>
   34e9a:	e7c3      	b.n	34e24 <double_jacobian_default+0xe2>

00034e9c <x_side_default>:
{
   34e9c:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   34ea0:	b08a      	sub	sp, #40	; 0x28
   34ea2:	4604      	mov	r4, r0
   34ea4:	460f      	mov	r7, r1
   34ea6:	4615      	mov	r5, r2
	uECC_word_t _3[NUM_ECC_WORDS] = {3}; /* -a = 3 */
   34ea8:	2300      	movs	r3, #0
   34eaa:	9303      	str	r3, [sp, #12]
   34eac:	9304      	str	r3, [sp, #16]
   34eae:	9305      	str	r3, [sp, #20]
   34eb0:	9306      	str	r3, [sp, #24]
   34eb2:	9307      	str	r3, [sp, #28]
   34eb4:	9308      	str	r3, [sp, #32]
   34eb6:	9309      	str	r3, [sp, #36]	; 0x24
   34eb8:	2303      	movs	r3, #3
   34eba:	9302      	str	r3, [sp, #8]
	wordcount_t num_words = curve->num_words;
   34ebc:	4616      	mov	r6, r2
   34ebe:	f916 8b04 	ldrsb.w	r8, [r6], #4
	uECC_vli_modSquare_fast(result, x, curve); /* r = x^2 */
   34ec2:	f7ff ff38 	bl	34d36 <uECC_vli_modSquare_fast>
	uECC_vli_modSub(result, result, _3, curve->p, num_words); /* r = x^2 - 3 */
   34ec6:	f8cd 8000 	str.w	r8, [sp]
   34eca:	4633      	mov	r3, r6
   34ecc:	aa02      	add	r2, sp, #8
   34ece:	4621      	mov	r1, r4
   34ed0:	4620      	mov	r0, r4
   34ed2:	f7ff fe75 	bl	34bc0 <uECC_vli_modSub>
	uECC_vli_modMult_fast(result, result, x, curve); /* r = x^3 - 3x */
   34ed6:	462b      	mov	r3, r5
   34ed8:	463a      	mov	r2, r7
   34eda:	4621      	mov	r1, r4
   34edc:	4620      	mov	r0, r4
   34ede:	f7ff ff1a 	bl	34d16 <uECC_vli_modMult_fast>
	uECC_vli_modAdd(result, result, curve->b, curve->p, num_words);
   34ee2:	f8cd 8000 	str.w	r8, [sp]
   34ee6:	4633      	mov	r3, r6
   34ee8:	f105 0284 	add.w	r2, r5, #132	; 0x84
   34eec:	4621      	mov	r1, r4
   34eee:	4620      	mov	r0, r4
   34ef0:	f7ff fe4f 	bl	34b92 <uECC_vli_modAdd>
}
   34ef4:	b00a      	add	sp, #40	; 0x28
   34ef6:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}

00034efa <XYcZ_addC>:
   or P => P - Q, Q => P + Q
 */
static void XYcZ_addC(uECC_word_t * X1, uECC_word_t * Y1,
		      uECC_word_t * X2, uECC_word_t * Y2,
		      uECC_Curve curve)
{
   34efa:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
   34efe:	b09a      	sub	sp, #104	; 0x68
   34f00:	4607      	mov	r7, r0
   34f02:	4689      	mov	r9, r1
   34f04:	4616      	mov	r6, r2
   34f06:	4698      	mov	r8, r3
   34f08:	f8dd a088 	ldr.w	sl, [sp, #136]	; 0x88
	/* t1 = X1, t2 = Y1, t3 = X2, t4 = Y2 */
	uECC_word_t t5[NUM_ECC_WORDS];
	uECC_word_t t6[NUM_ECC_WORDS];
	uECC_word_t t7[NUM_ECC_WORDS];
	wordcount_t num_words = curve->num_words;
   34f0c:	4654      	mov	r4, sl
   34f0e:	f914 5b04 	ldrsb.w	r5, [r4], #4

	uECC_vli_modSub(t5, X2, X1, curve->p, num_words); /* t5 = x2 - x1 */
   34f12:	9500      	str	r5, [sp, #0]
   34f14:	4623      	mov	r3, r4
   34f16:	4602      	mov	r2, r0
   34f18:	4631      	mov	r1, r6
   34f1a:	a812      	add	r0, sp, #72	; 0x48
   34f1c:	f7ff fe50 	bl	34bc0 <uECC_vli_modSub>
	uECC_vli_modSquare_fast(t5, t5, curve); /* t5 = (x2 - x1)^2 = A */
   34f20:	4652      	mov	r2, sl
   34f22:	a912      	add	r1, sp, #72	; 0x48
   34f24:	4608      	mov	r0, r1
   34f26:	f7ff ff06 	bl	34d36 <uECC_vli_modSquare_fast>
	uECC_vli_modMult_fast(X1, X1, t5, curve); /* t1 = x1*A = B */
   34f2a:	4653      	mov	r3, sl
   34f2c:	aa12      	add	r2, sp, #72	; 0x48
   34f2e:	4639      	mov	r1, r7
   34f30:	4638      	mov	r0, r7
   34f32:	f7ff fef0 	bl	34d16 <uECC_vli_modMult_fast>
	uECC_vli_modMult_fast(X2, X2, t5, curve); /* t3 = x2*A = C */
   34f36:	4653      	mov	r3, sl
   34f38:	aa12      	add	r2, sp, #72	; 0x48
   34f3a:	4631      	mov	r1, r6
   34f3c:	4630      	mov	r0, r6
   34f3e:	f7ff feea 	bl	34d16 <uECC_vli_modMult_fast>
	uECC_vli_modAdd(t5, Y2, Y1, curve->p, num_words); /* t5 = y2 + y1 */
   34f42:	9500      	str	r5, [sp, #0]
   34f44:	4623      	mov	r3, r4
   34f46:	464a      	mov	r2, r9
   34f48:	4641      	mov	r1, r8
   34f4a:	a812      	add	r0, sp, #72	; 0x48
   34f4c:	f7ff fe21 	bl	34b92 <uECC_vli_modAdd>
	uECC_vli_modSub(Y2, Y2, Y1, curve->p, num_words); /* t4 = y2 - y1 */
   34f50:	9500      	str	r5, [sp, #0]
   34f52:	4623      	mov	r3, r4
   34f54:	464a      	mov	r2, r9
   34f56:	4641      	mov	r1, r8
   34f58:	4640      	mov	r0, r8
   34f5a:	f7ff fe31 	bl	34bc0 <uECC_vli_modSub>

	uECC_vli_modSub(t6, X2, X1, curve->p, num_words); /* t6 = C - B */
   34f5e:	9500      	str	r5, [sp, #0]
   34f60:	4623      	mov	r3, r4
   34f62:	463a      	mov	r2, r7
   34f64:	4631      	mov	r1, r6
   34f66:	a80a      	add	r0, sp, #40	; 0x28
   34f68:	f7ff fe2a 	bl	34bc0 <uECC_vli_modSub>
	uECC_vli_modMult_fast(Y1, Y1, t6, curve); /* t2 = y1 * (C - B) = E */
   34f6c:	4653      	mov	r3, sl
   34f6e:	aa0a      	add	r2, sp, #40	; 0x28
   34f70:	4649      	mov	r1, r9
   34f72:	4648      	mov	r0, r9
   34f74:	f7ff fecf 	bl	34d16 <uECC_vli_modMult_fast>
	uECC_vli_modAdd(t6, X1, X2, curve->p, num_words); /* t6 = B + C */
   34f78:	9500      	str	r5, [sp, #0]
   34f7a:	4623      	mov	r3, r4
   34f7c:	4632      	mov	r2, r6
   34f7e:	4639      	mov	r1, r7
   34f80:	a80a      	add	r0, sp, #40	; 0x28
   34f82:	f7ff fe06 	bl	34b92 <uECC_vli_modAdd>
	uECC_vli_modSquare_fast(X2, Y2, curve); /* t3 = (y2 - y1)^2 = D */
   34f86:	4652      	mov	r2, sl
   34f88:	4641      	mov	r1, r8
   34f8a:	4630      	mov	r0, r6
   34f8c:	f7ff fed3 	bl	34d36 <uECC_vli_modSquare_fast>
	uECC_vli_modSub(X2, X2, t6, curve->p, num_words); /* t3 = D - (B + C) = x3 */
   34f90:	9500      	str	r5, [sp, #0]
   34f92:	4623      	mov	r3, r4
   34f94:	aa0a      	add	r2, sp, #40	; 0x28
   34f96:	4631      	mov	r1, r6
   34f98:	4630      	mov	r0, r6
   34f9a:	f7ff fe11 	bl	34bc0 <uECC_vli_modSub>

	uECC_vli_modSub(t7, X1, X2, curve->p, num_words); /* t7 = B - x3 */
   34f9e:	9500      	str	r5, [sp, #0]
   34fa0:	4623      	mov	r3, r4
   34fa2:	4632      	mov	r2, r6
   34fa4:	4639      	mov	r1, r7
   34fa6:	a802      	add	r0, sp, #8
   34fa8:	f7ff fe0a 	bl	34bc0 <uECC_vli_modSub>
	uECC_vli_modMult_fast(Y2, Y2, t7, curve); /* t4 = (y2 - y1)*(B - x3) */
   34fac:	4653      	mov	r3, sl
   34fae:	aa02      	add	r2, sp, #8
   34fb0:	4641      	mov	r1, r8
   34fb2:	4640      	mov	r0, r8
   34fb4:	f7ff feaf 	bl	34d16 <uECC_vli_modMult_fast>
	/* t4 = (y2 - y1)*(B - x3) - E = y3: */
	uECC_vli_modSub(Y2, Y2, Y1, curve->p, num_words);
   34fb8:	9500      	str	r5, [sp, #0]
   34fba:	4623      	mov	r3, r4
   34fbc:	464a      	mov	r2, r9
   34fbe:	4641      	mov	r1, r8
   34fc0:	4640      	mov	r0, r8
   34fc2:	f7ff fdfd 	bl	34bc0 <uECC_vli_modSub>

	uECC_vli_modSquare_fast(t7, t5, curve); /* t7 = (y2 + y1)^2 = F */
   34fc6:	4652      	mov	r2, sl
   34fc8:	a912      	add	r1, sp, #72	; 0x48
   34fca:	a802      	add	r0, sp, #8
   34fcc:	f7ff feb3 	bl	34d36 <uECC_vli_modSquare_fast>
	uECC_vli_modSub(t7, t7, t6, curve->p, num_words); /* t7 = F - (B + C) = x3' */
   34fd0:	9500      	str	r5, [sp, #0]
   34fd2:	4623      	mov	r3, r4
   34fd4:	aa0a      	add	r2, sp, #40	; 0x28
   34fd6:	a902      	add	r1, sp, #8
   34fd8:	4608      	mov	r0, r1
   34fda:	f7ff fdf1 	bl	34bc0 <uECC_vli_modSub>
	uECC_vli_modSub(t6, t7, X1, curve->p, num_words); /* t6 = x3' - B */
   34fde:	9500      	str	r5, [sp, #0]
   34fe0:	4623      	mov	r3, r4
   34fe2:	463a      	mov	r2, r7
   34fe4:	a902      	add	r1, sp, #8
   34fe6:	a80a      	add	r0, sp, #40	; 0x28
   34fe8:	f7ff fdea 	bl	34bc0 <uECC_vli_modSub>
	uECC_vli_modMult_fast(t6, t6, t5, curve); /* t6 = (y2+y1)*(x3' - B) */
   34fec:	4653      	mov	r3, sl
   34fee:	aa12      	add	r2, sp, #72	; 0x48
   34ff0:	a90a      	add	r1, sp, #40	; 0x28
   34ff2:	4608      	mov	r0, r1
   34ff4:	f7ff fe8f 	bl	34d16 <uECC_vli_modMult_fast>
	/* t2 = (y2+y1)*(x3' - B) - E = y3': */
	uECC_vli_modSub(Y1, t6, Y1, curve->p, num_words);
   34ff8:	9500      	str	r5, [sp, #0]
   34ffa:	4623      	mov	r3, r4
   34ffc:	464a      	mov	r2, r9
   34ffe:	a90a      	add	r1, sp, #40	; 0x28
   35000:	4648      	mov	r0, r9
   35002:	f7ff fddd 	bl	34bc0 <uECC_vli_modSub>

	uECC_vli_set(X1, t7, num_words);
   35006:	462a      	mov	r2, r5
   35008:	a902      	add	r1, sp, #8
   3500a:	4638      	mov	r0, r7
   3500c:	f7ff fd1a 	bl	34a44 <uECC_vli_set>
}
   35010:	b01a      	add	sp, #104	; 0x68
   35012:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}

00035016 <uECC_vli_modInv>:
{
   35016:	b5f0      	push	{r4, r5, r6, r7, lr}
   35018:	b0a1      	sub	sp, #132	; 0x84
   3501a:	4607      	mov	r7, r0
   3501c:	460e      	mov	r6, r1
   3501e:	4615      	mov	r5, r2
   35020:	461c      	mov	r4, r3
	if (uECC_vli_isZero(input, num_words)) {
   35022:	4619      	mov	r1, r3
   35024:	4630      	mov	r0, r6
   35026:	f7ff fcd5 	bl	349d4 <uECC_vli_isZero>
   3502a:	b9a0      	cbnz	r0, 35056 <uECC_vli_modInv+0x40>
	uECC_vli_set(a, input, num_words);
   3502c:	4622      	mov	r2, r4
   3502e:	4631      	mov	r1, r6
   35030:	a818      	add	r0, sp, #96	; 0x60
   35032:	f7ff fd07 	bl	34a44 <uECC_vli_set>
	uECC_vli_set(b, mod, num_words);
   35036:	4622      	mov	r2, r4
   35038:	4629      	mov	r1, r5
   3503a:	a810      	add	r0, sp, #64	; 0x40
   3503c:	f7ff fd02 	bl	34a44 <uECC_vli_set>
	uECC_vli_clear(u, num_words);
   35040:	4621      	mov	r1, r4
   35042:	a808      	add	r0, sp, #32
   35044:	f7ff fcbc 	bl	349c0 <uECC_vli_clear>
	u[0] = 1;
   35048:	2301      	movs	r3, #1
   3504a:	9308      	str	r3, [sp, #32]
	uECC_vli_clear(v, num_words);
   3504c:	4621      	mov	r1, r4
   3504e:	4668      	mov	r0, sp
   35050:	f7ff fcb6 	bl	349c0 <uECC_vli_clear>
	while ((cmpResult = uECC_vli_cmp_unsafe(a, b, num_words)) != 0) {
   35054:	e00d      	b.n	35072 <uECC_vli_modInv+0x5c>
		uECC_vli_clear(result, num_words);
   35056:	4621      	mov	r1, r4
   35058:	4638      	mov	r0, r7
   3505a:	f7ff fcb1 	bl	349c0 <uECC_vli_clear>
		return;
   3505e:	e071      	b.n	35144 <uECC_vli_modInv+0x12e>
			uECC_vli_rshift1(a, num_words);
   35060:	4621      	mov	r1, r4
   35062:	a818      	add	r0, sp, #96	; 0x60
   35064:	f7ff fc26 	bl	348b4 <uECC_vli_rshift1>
      			vli_modInv_update(u, mod, num_words);
   35068:	4622      	mov	r2, r4
   3506a:	4629      	mov	r1, r5
   3506c:	a808      	add	r0, sp, #32
   3506e:	f7ff fd50 	bl	34b12 <vli_modInv_update>
	while ((cmpResult = uECC_vli_cmp_unsafe(a, b, num_words)) != 0) {
   35072:	4622      	mov	r2, r4
   35074:	a910      	add	r1, sp, #64	; 0x40
   35076:	a818      	add	r0, sp, #96	; 0x60
   35078:	f7ff fcf3 	bl	34a62 <uECC_vli_cmp_unsafe>
   3507c:	4602      	mov	r2, r0
   3507e:	2800      	cmp	r0, #0
   35080:	d05b      	beq.n	3513a <uECC_vli_modInv+0x124>
		if (EVEN(a)) {
   35082:	9b18      	ldr	r3, [sp, #96]	; 0x60
   35084:	f013 0f01 	tst.w	r3, #1
   35088:	d0ea      	beq.n	35060 <uECC_vli_modInv+0x4a>
    		} else if (EVEN(b)) {
   3508a:	9b10      	ldr	r3, [sp, #64]	; 0x40
   3508c:	f013 0f01 	tst.w	r3, #1
   35090:	d01e      	beq.n	350d0 <uECC_vli_modInv+0xba>
		} else if (cmpResult > 0) {
   35092:	2a00      	cmp	r2, #0
   35094:	dd2d      	ble.n	350f2 <uECC_vli_modInv+0xdc>
			uECC_vli_sub(a, a, b, num_words);
   35096:	4623      	mov	r3, r4
   35098:	aa10      	add	r2, sp, #64	; 0x40
   3509a:	a918      	add	r1, sp, #96	; 0x60
   3509c:	4608      	mov	r0, r1
   3509e:	f7ff fd56 	bl	34b4e <uECC_vli_sub>
			uECC_vli_rshift1(a, num_words);
   350a2:	4621      	mov	r1, r4
   350a4:	a818      	add	r0, sp, #96	; 0x60
   350a6:	f7ff fc05 	bl	348b4 <uECC_vli_rshift1>
			if (uECC_vli_cmp_unsafe(u, v, num_words) < 0) {
   350aa:	4622      	mov	r2, r4
   350ac:	4669      	mov	r1, sp
   350ae:	a808      	add	r0, sp, #32
   350b0:	f7ff fcd7 	bl	34a62 <uECC_vli_cmp_unsafe>
   350b4:	2800      	cmp	r0, #0
   350b6:	db15      	blt.n	350e4 <uECC_vli_modInv+0xce>
      			uECC_vli_sub(u, u, v, num_words);
   350b8:	4623      	mov	r3, r4
   350ba:	466a      	mov	r2, sp
   350bc:	a908      	add	r1, sp, #32
   350be:	4608      	mov	r0, r1
   350c0:	f7ff fd45 	bl	34b4e <uECC_vli_sub>
      			vli_modInv_update(u, mod, num_words);
   350c4:	4622      	mov	r2, r4
   350c6:	4629      	mov	r1, r5
   350c8:	a808      	add	r0, sp, #32
   350ca:	f7ff fd22 	bl	34b12 <vli_modInv_update>
   350ce:	e7d0      	b.n	35072 <uECC_vli_modInv+0x5c>
			uECC_vli_rshift1(b, num_words);
   350d0:	4621      	mov	r1, r4
   350d2:	a810      	add	r0, sp, #64	; 0x40
   350d4:	f7ff fbee 	bl	348b4 <uECC_vli_rshift1>
			vli_modInv_update(v, mod, num_words);
   350d8:	4622      	mov	r2, r4
   350da:	4629      	mov	r1, r5
   350dc:	4668      	mov	r0, sp
   350de:	f7ff fd18 	bl	34b12 <vli_modInv_update>
   350e2:	e7c6      	b.n	35072 <uECC_vli_modInv+0x5c>
        			uECC_vli_add(u, u, mod, num_words);
   350e4:	4623      	mov	r3, r4
   350e6:	462a      	mov	r2, r5
   350e8:	a908      	add	r1, sp, #32
   350ea:	4608      	mov	r0, r1
   350ec:	f7ff fcef 	bl	34ace <uECC_vli_add>
   350f0:	e7e2      	b.n	350b8 <uECC_vli_modInv+0xa2>
      			uECC_vli_sub(b, b, a, num_words);
   350f2:	4623      	mov	r3, r4
   350f4:	aa18      	add	r2, sp, #96	; 0x60
   350f6:	a910      	add	r1, sp, #64	; 0x40
   350f8:	4608      	mov	r0, r1
   350fa:	f7ff fd28 	bl	34b4e <uECC_vli_sub>
      			uECC_vli_rshift1(b, num_words);
   350fe:	4621      	mov	r1, r4
   35100:	a810      	add	r0, sp, #64	; 0x40
   35102:	f7ff fbd7 	bl	348b4 <uECC_vli_rshift1>
      			if (uECC_vli_cmp_unsafe(v, u, num_words) < 0) {
   35106:	4622      	mov	r2, r4
   35108:	a908      	add	r1, sp, #32
   3510a:	4668      	mov	r0, sp
   3510c:	f7ff fca9 	bl	34a62 <uECC_vli_cmp_unsafe>
   35110:	2800      	cmp	r0, #0
   35112:	db0b      	blt.n	3512c <uECC_vli_modInv+0x116>
      			uECC_vli_sub(v, v, u, num_words);
   35114:	4623      	mov	r3, r4
   35116:	aa08      	add	r2, sp, #32
   35118:	4669      	mov	r1, sp
   3511a:	4668      	mov	r0, sp
   3511c:	f7ff fd17 	bl	34b4e <uECC_vli_sub>
      			vli_modInv_update(v, mod, num_words);
   35120:	4622      	mov	r2, r4
   35122:	4629      	mov	r1, r5
   35124:	4668      	mov	r0, sp
   35126:	f7ff fcf4 	bl	34b12 <vli_modInv_update>
   3512a:	e7a2      	b.n	35072 <uECC_vli_modInv+0x5c>
        			uECC_vli_add(v, v, mod, num_words);
   3512c:	4623      	mov	r3, r4
   3512e:	462a      	mov	r2, r5
   35130:	4669      	mov	r1, sp
   35132:	4668      	mov	r0, sp
   35134:	f7ff fccb 	bl	34ace <uECC_vli_add>
   35138:	e7ec      	b.n	35114 <uECC_vli_modInv+0xfe>
  	uECC_vli_set(result, u, num_words);
   3513a:	4622      	mov	r2, r4
   3513c:	a908      	add	r1, sp, #32
   3513e:	4638      	mov	r0, r7
   35140:	f7ff fc80 	bl	34a44 <uECC_vli_set>
}
   35144:	b021      	add	sp, #132	; 0x84
   35146:	bdf0      	pop	{r4, r5, r6, r7, pc}

00035148 <EccPoint_isZero>:
{
   35148:	b508      	push	{r3, lr}
	return uECC_vli_isZero(point, curve->num_words * 2);
   3514a:	f991 1000 	ldrsb.w	r1, [r1]
   3514e:	0049      	lsls	r1, r1, #1
   35150:	b249      	sxtb	r1, r1
   35152:	f7ff fc3f 	bl	349d4 <uECC_vli_isZero>
}
   35156:	bd08      	pop	{r3, pc}

00035158 <apply_z>:
{
   35158:	b5f0      	push	{r4, r5, r6, r7, lr}
   3515a:	b089      	sub	sp, #36	; 0x24
   3515c:	4607      	mov	r7, r0
   3515e:	460d      	mov	r5, r1
   35160:	4616      	mov	r6, r2
   35162:	461c      	mov	r4, r3
	uECC_vli_modSquare_fast(t1, Z, curve);    /* z^2 */
   35164:	461a      	mov	r2, r3
   35166:	4631      	mov	r1, r6
   35168:	4668      	mov	r0, sp
   3516a:	f7ff fde4 	bl	34d36 <uECC_vli_modSquare_fast>
	uECC_vli_modMult_fast(X1, X1, t1, curve); /* x1 * z^2 */
   3516e:	4623      	mov	r3, r4
   35170:	466a      	mov	r2, sp
   35172:	4639      	mov	r1, r7
   35174:	4638      	mov	r0, r7
   35176:	f7ff fdce 	bl	34d16 <uECC_vli_modMult_fast>
	uECC_vli_modMult_fast(t1, t1, Z, curve);  /* z^3 */
   3517a:	4623      	mov	r3, r4
   3517c:	4632      	mov	r2, r6
   3517e:	4669      	mov	r1, sp
   35180:	4668      	mov	r0, sp
   35182:	f7ff fdc8 	bl	34d16 <uECC_vli_modMult_fast>
	uECC_vli_modMult_fast(Y1, Y1, t1, curve); /* y1 * z^3 */
   35186:	4623      	mov	r3, r4
   35188:	466a      	mov	r2, sp
   3518a:	4629      	mov	r1, r5
   3518c:	4628      	mov	r0, r5
   3518e:	f7ff fdc2 	bl	34d16 <uECC_vli_modMult_fast>
}
   35192:	b009      	add	sp, #36	; 0x24
   35194:	bdf0      	pop	{r4, r5, r6, r7, pc}

00035196 <XYcZ_initial_double>:
{
   35196:	e92d 43f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, lr}
   3519a:	b089      	sub	sp, #36	; 0x24
   3519c:	4605      	mov	r5, r0
   3519e:	460e      	mov	r6, r1
   351a0:	4690      	mov	r8, r2
   351a2:	4699      	mov	r9, r3
   351a4:	9910      	ldr	r1, [sp, #64]	; 0x40
   351a6:	9c11      	ldr	r4, [sp, #68]	; 0x44
	wordcount_t num_words = curve->num_words;
   351a8:	f994 7000 	ldrsb.w	r7, [r4]
	if (initial_Z) {
   351ac:	b319      	cbz	r1, 351f6 <XYcZ_initial_double+0x60>
		uECC_vli_set(z, initial_Z, num_words);
   351ae:	463a      	mov	r2, r7
   351b0:	4668      	mov	r0, sp
   351b2:	f7ff fc47 	bl	34a44 <uECC_vli_set>
	uECC_vli_set(X2, X1, num_words);
   351b6:	463a      	mov	r2, r7
   351b8:	4629      	mov	r1, r5
   351ba:	4640      	mov	r0, r8
   351bc:	f7ff fc42 	bl	34a44 <uECC_vli_set>
	uECC_vli_set(Y2, Y1, num_words);
   351c0:	463a      	mov	r2, r7
   351c2:	4631      	mov	r1, r6
   351c4:	4648      	mov	r0, r9
   351c6:	f7ff fc3d 	bl	34a44 <uECC_vli_set>
	apply_z(X1, Y1, z, curve);
   351ca:	4623      	mov	r3, r4
   351cc:	466a      	mov	r2, sp
   351ce:	4631      	mov	r1, r6
   351d0:	4628      	mov	r0, r5
   351d2:	f7ff ffc1 	bl	35158 <apply_z>
	curve->double_jacobian(X1, Y1, z, curve);
   351d6:	f8d4 70a4 	ldr.w	r7, [r4, #164]	; 0xa4
   351da:	4623      	mov	r3, r4
   351dc:	466a      	mov	r2, sp
   351de:	4631      	mov	r1, r6
   351e0:	4628      	mov	r0, r5
   351e2:	47b8      	blx	r7
	apply_z(X2, Y2, z, curve);
   351e4:	4623      	mov	r3, r4
   351e6:	466a      	mov	r2, sp
   351e8:	4649      	mov	r1, r9
   351ea:	4640      	mov	r0, r8
   351ec:	f7ff ffb4 	bl	35158 <apply_z>
}
   351f0:	b009      	add	sp, #36	; 0x24
   351f2:	e8bd 83f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, pc}
		uECC_vli_clear(z, num_words);
   351f6:	4639      	mov	r1, r7
   351f8:	4668      	mov	r0, sp
   351fa:	f7ff fbe1 	bl	349c0 <uECC_vli_clear>
		z[0] = 1;
   351fe:	2301      	movs	r3, #1
   35200:	9300      	str	r3, [sp, #0]
   35202:	e7d8      	b.n	351b6 <XYcZ_initial_double+0x20>

00035204 <XYcZ_add>:
{
   35204:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
   35208:	b08a      	sub	sp, #40	; 0x28
   3520a:	4680      	mov	r8, r0
   3520c:	4689      	mov	r9, r1
   3520e:	4614      	mov	r4, r2
   35210:	461d      	mov	r5, r3
   35212:	f8dd a048 	ldr.w	sl, [sp, #72]	; 0x48
	wordcount_t num_words = curve->num_words;
   35216:	4656      	mov	r6, sl
   35218:	f916 7b04 	ldrsb.w	r7, [r6], #4
	uECC_vli_modSub(t5, X2, X1, curve->p, num_words); /* t5 = x2 - x1 */
   3521c:	9700      	str	r7, [sp, #0]
   3521e:	4633      	mov	r3, r6
   35220:	4602      	mov	r2, r0
   35222:	4621      	mov	r1, r4
   35224:	a802      	add	r0, sp, #8
   35226:	f7ff fccb 	bl	34bc0 <uECC_vli_modSub>
	uECC_vli_modSquare_fast(t5, t5, curve); /* t5 = (x2 - x1)^2 = A */
   3522a:	4652      	mov	r2, sl
   3522c:	a902      	add	r1, sp, #8
   3522e:	4608      	mov	r0, r1
   35230:	f7ff fd81 	bl	34d36 <uECC_vli_modSquare_fast>
	uECC_vli_modMult_fast(X1, X1, t5, curve); /* t1 = x1*A = B */
   35234:	4653      	mov	r3, sl
   35236:	aa02      	add	r2, sp, #8
   35238:	4641      	mov	r1, r8
   3523a:	4640      	mov	r0, r8
   3523c:	f7ff fd6b 	bl	34d16 <uECC_vli_modMult_fast>
	uECC_vli_modMult_fast(X2, X2, t5, curve); /* t3 = x2*A = C */
   35240:	4653      	mov	r3, sl
   35242:	aa02      	add	r2, sp, #8
   35244:	4621      	mov	r1, r4
   35246:	4620      	mov	r0, r4
   35248:	f7ff fd65 	bl	34d16 <uECC_vli_modMult_fast>
	uECC_vli_modSub(Y2, Y2, Y1, curve->p, num_words); /* t4 = y2 - y1 */
   3524c:	9700      	str	r7, [sp, #0]
   3524e:	4633      	mov	r3, r6
   35250:	464a      	mov	r2, r9
   35252:	4629      	mov	r1, r5
   35254:	4628      	mov	r0, r5
   35256:	f7ff fcb3 	bl	34bc0 <uECC_vli_modSub>
	uECC_vli_modSquare_fast(t5, Y2, curve); /* t5 = (y2 - y1)^2 = D */
   3525a:	4652      	mov	r2, sl
   3525c:	4629      	mov	r1, r5
   3525e:	a802      	add	r0, sp, #8
   35260:	f7ff fd69 	bl	34d36 <uECC_vli_modSquare_fast>
	uECC_vli_modSub(t5, t5, X1, curve->p, num_words); /* t5 = D - B */
   35264:	9700      	str	r7, [sp, #0]
   35266:	4633      	mov	r3, r6
   35268:	4642      	mov	r2, r8
   3526a:	a902      	add	r1, sp, #8
   3526c:	4608      	mov	r0, r1
   3526e:	f7ff fca7 	bl	34bc0 <uECC_vli_modSub>
	uECC_vli_modSub(t5, t5, X2, curve->p, num_words); /* t5 = D - B - C = x3 */
   35272:	9700      	str	r7, [sp, #0]
   35274:	4633      	mov	r3, r6
   35276:	4622      	mov	r2, r4
   35278:	a902      	add	r1, sp, #8
   3527a:	4608      	mov	r0, r1
   3527c:	f7ff fca0 	bl	34bc0 <uECC_vli_modSub>
	uECC_vli_modSub(X2, X2, X1, curve->p, num_words); /* t3 = C - B */
   35280:	9700      	str	r7, [sp, #0]
   35282:	4633      	mov	r3, r6
   35284:	4642      	mov	r2, r8
   35286:	4621      	mov	r1, r4
   35288:	4620      	mov	r0, r4
   3528a:	f7ff fc99 	bl	34bc0 <uECC_vli_modSub>
	uECC_vli_modMult_fast(Y1, Y1, X2, curve); /* t2 = y1*(C - B) */
   3528e:	4653      	mov	r3, sl
   35290:	4622      	mov	r2, r4
   35292:	4649      	mov	r1, r9
   35294:	4648      	mov	r0, r9
   35296:	f7ff fd3e 	bl	34d16 <uECC_vli_modMult_fast>
	uECC_vli_modSub(X2, X1, t5, curve->p, num_words); /* t3 = B - x3 */
   3529a:	9700      	str	r7, [sp, #0]
   3529c:	4633      	mov	r3, r6
   3529e:	aa02      	add	r2, sp, #8
   352a0:	4641      	mov	r1, r8
   352a2:	4620      	mov	r0, r4
   352a4:	f7ff fc8c 	bl	34bc0 <uECC_vli_modSub>
	uECC_vli_modMult_fast(Y2, Y2, X2, curve); /* t4 = (y2 - y1)*(B - x3) */
   352a8:	4653      	mov	r3, sl
   352aa:	4622      	mov	r2, r4
   352ac:	4629      	mov	r1, r5
   352ae:	4628      	mov	r0, r5
   352b0:	f7ff fd31 	bl	34d16 <uECC_vli_modMult_fast>
	uECC_vli_modSub(Y2, Y2, Y1, curve->p, num_words); /* t4 = y3 */
   352b4:	9700      	str	r7, [sp, #0]
   352b6:	4633      	mov	r3, r6
   352b8:	464a      	mov	r2, r9
   352ba:	4629      	mov	r1, r5
   352bc:	4628      	mov	r0, r5
   352be:	f7ff fc7f 	bl	34bc0 <uECC_vli_modSub>
	uECC_vli_set(X2, t5, num_words);
   352c2:	463a      	mov	r2, r7
   352c4:	a902      	add	r1, sp, #8
   352c6:	4620      	mov	r0, r4
   352c8:	f7ff fbbc 	bl	34a44 <uECC_vli_set>
}
   352cc:	b00a      	add	sp, #40	; 0x28
   352ce:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}

000352d2 <EccPoint_mult>:

void EccPoint_mult(uECC_word_t * result, const uECC_word_t * point,
		   const uECC_word_t * scalar,
		   const uECC_word_t * initial_Z,
		   bitcount_t num_bits, uECC_Curve curve) 
{
   352d2:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
   352d6:	b0af      	sub	sp, #188	; 0xbc
   352d8:	9004      	str	r0, [sp, #16]
   352da:	460d      	mov	r5, r1
   352dc:	9105      	str	r1, [sp, #20]
   352de:	4692      	mov	sl, r2
   352e0:	461c      	mov	r4, r3
   352e2:	f8dd 80e4 	ldr.w	r8, [sp, #228]	; 0xe4
	uECC_word_t Rx[2][NUM_ECC_WORDS];
	uECC_word_t Ry[2][NUM_ECC_WORDS];
	uECC_word_t z[NUM_ECC_WORDS];
	bitcount_t i;
	uECC_word_t nb;
	wordcount_t num_words = curve->num_words;
   352e6:	f998 b000 	ldrsb.w	fp, [r8]

	uECC_vli_set(Rx[1], point, num_words);
   352ea:	465a      	mov	r2, fp
   352ec:	a826      	add	r0, sp, #152	; 0x98
   352ee:	f7ff fba9 	bl	34a44 <uECC_vli_set>
  	uECC_vli_set(Ry[1], point + num_words, num_words);
   352f2:	ea4f 038b 	mov.w	r3, fp, lsl #2
   352f6:	9302      	str	r3, [sp, #8]
   352f8:	eb05 038b 	add.w	r3, r5, fp, lsl #2
   352fc:	9303      	str	r3, [sp, #12]
   352fe:	465a      	mov	r2, fp
   35300:	4619      	mov	r1, r3
   35302:	a816      	add	r0, sp, #88	; 0x58
   35304:	f7ff fb9e 	bl	34a44 <uECC_vli_set>

	XYcZ_initial_double(Rx[1], Ry[1], Rx[0], Ry[0], initial_Z, curve);
   35308:	f8cd 8004 	str.w	r8, [sp, #4]
   3530c:	9400      	str	r4, [sp, #0]
   3530e:	ab0e      	add	r3, sp, #56	; 0x38
   35310:	aa1e      	add	r2, sp, #120	; 0x78
   35312:	a916      	add	r1, sp, #88	; 0x58
   35314:	a826      	add	r0, sp, #152	; 0x98
   35316:	f7ff ff3e 	bl	35196 <XYcZ_initial_double>

	for (i = num_bits - 2; i > 0; --i) {
   3531a:	f9bd 40e0 	ldrsh.w	r4, [sp, #224]	; 0xe0
   3531e:	3c02      	subs	r4, #2
   35320:	b224      	sxth	r4, r4
   35322:	4647      	mov	r7, r8
   35324:	2c00      	cmp	r4, #0
   35326:	dd25      	ble.n	35374 <EccPoint_mult+0xa2>
		nb = !uECC_vli_testBit(scalar, i);
   35328:	4621      	mov	r1, r4
   3532a:	4650      	mov	r0, sl
   3532c:	f7ff fb67 	bl	349fe <uECC_vli_testBit>
   35330:	fab0 f080 	clz	r0, r0
   35334:	0940      	lsrs	r0, r0, #5
		XYcZ_addC(Rx[1 - nb], Ry[1 - nb], Rx[nb], Ry[nb], curve);
   35336:	f1c0 0601 	rsb	r6, r0, #1
   3533a:	ab1e      	add	r3, sp, #120	; 0x78
   3533c:	eb03 1846 	add.w	r8, r3, r6, lsl #5
   35340:	ab0e      	add	r3, sp, #56	; 0x38
   35342:	eb03 1646 	add.w	r6, r3, r6, lsl #5
   35346:	ab1e      	add	r3, sp, #120	; 0x78
   35348:	eb03 1540 	add.w	r5, r3, r0, lsl #5
   3534c:	ab0e      	add	r3, sp, #56	; 0x38
   3534e:	eb03 1940 	add.w	r9, r3, r0, lsl #5
   35352:	9700      	str	r7, [sp, #0]
   35354:	464b      	mov	r3, r9
   35356:	462a      	mov	r2, r5
   35358:	4631      	mov	r1, r6
   3535a:	4640      	mov	r0, r8
   3535c:	f7ff fdcd 	bl	34efa <XYcZ_addC>
		XYcZ_add(Rx[nb], Ry[nb], Rx[1 - nb], Ry[1 - nb], curve);
   35360:	9700      	str	r7, [sp, #0]
   35362:	4633      	mov	r3, r6
   35364:	4642      	mov	r2, r8
   35366:	4649      	mov	r1, r9
   35368:	4628      	mov	r0, r5
   3536a:	f7ff ff4b 	bl	35204 <XYcZ_add>
	for (i = num_bits - 2; i > 0; --i) {
   3536e:	3c01      	subs	r4, #1
   35370:	b224      	sxth	r4, r4
   35372:	e7d7      	b.n	35324 <EccPoint_mult+0x52>
   35374:	46b8      	mov	r8, r7
	}

	nb = !uECC_vli_testBit(scalar, 0);
   35376:	2100      	movs	r1, #0
   35378:	4650      	mov	r0, sl
   3537a:	f7ff fb40 	bl	349fe <uECC_vli_testBit>
   3537e:	fab0 f480 	clz	r4, r0
   35382:	0964      	lsrs	r4, r4, #5
	XYcZ_addC(Rx[1 - nb], Ry[1 - nb], Rx[nb], Ry[nb], curve);
   35384:	f1c4 0501 	rsb	r5, r4, #1
   35388:	ab1e      	add	r3, sp, #120	; 0x78
   3538a:	eb03 1645 	add.w	r6, r3, r5, lsl #5
   3538e:	ab0e      	add	r3, sp, #56	; 0x38
   35390:	eb03 1545 	add.w	r5, r3, r5, lsl #5
   35394:	ab1e      	add	r3, sp, #120	; 0x78
   35396:	eb03 1744 	add.w	r7, r3, r4, lsl #5
   3539a:	ab0e      	add	r3, sp, #56	; 0x38
   3539c:	eb03 1444 	add.w	r4, r3, r4, lsl #5
   353a0:	f8cd 8000 	str.w	r8, [sp]
   353a4:	4623      	mov	r3, r4
   353a6:	463a      	mov	r2, r7
   353a8:	4629      	mov	r1, r5
   353aa:	4630      	mov	r0, r6
   353ac:	f7ff fda5 	bl	34efa <XYcZ_addC>

	/* Find final 1/Z value. */
	uECC_vli_modSub(z, Rx[1], Rx[0], curve->p, num_words); /* X1 - X0 */
   353b0:	f108 0904 	add.w	r9, r8, #4
   353b4:	f8cd b000 	str.w	fp, [sp]
   353b8:	464b      	mov	r3, r9
   353ba:	aa1e      	add	r2, sp, #120	; 0x78
   353bc:	a926      	add	r1, sp, #152	; 0x98
   353be:	a806      	add	r0, sp, #24
   353c0:	f7ff fbfe 	bl	34bc0 <uECC_vli_modSub>
	uECC_vli_modMult_fast(z, z, Ry[1 - nb], curve); /* Yb * (X1 - X0) */
   353c4:	4643      	mov	r3, r8
   353c6:	462a      	mov	r2, r5
   353c8:	a906      	add	r1, sp, #24
   353ca:	4608      	mov	r0, r1
   353cc:	f7ff fca3 	bl	34d16 <uECC_vli_modMult_fast>
	uECC_vli_modMult_fast(z, z, point, curve); /* xP * Yb * (X1 - X0) */
   353d0:	4643      	mov	r3, r8
   353d2:	9a05      	ldr	r2, [sp, #20]
   353d4:	a906      	add	r1, sp, #24
   353d6:	4608      	mov	r0, r1
   353d8:	f7ff fc9d 	bl	34d16 <uECC_vli_modMult_fast>
	uECC_vli_modInv(z, z, curve->p, num_words); /* 1 / (xP * Yb * (X1 - X0))*/
   353dc:	465b      	mov	r3, fp
   353de:	464a      	mov	r2, r9
   353e0:	a906      	add	r1, sp, #24
   353e2:	4608      	mov	r0, r1
   353e4:	f7ff fe17 	bl	35016 <uECC_vli_modInv>
	/* yP / (xP * Yb * (X1 - X0)) */
	uECC_vli_modMult_fast(z, z, point + num_words, curve);
   353e8:	4643      	mov	r3, r8
   353ea:	9a03      	ldr	r2, [sp, #12]
   353ec:	a906      	add	r1, sp, #24
   353ee:	4608      	mov	r0, r1
   353f0:	f7ff fc91 	bl	34d16 <uECC_vli_modMult_fast>
	/* Xb * yP / (xP * Yb * (X1 - X0)) */
	uECC_vli_modMult_fast(z, z, Rx[1 - nb], curve);
   353f4:	4643      	mov	r3, r8
   353f6:	4632      	mov	r2, r6
   353f8:	a906      	add	r1, sp, #24
   353fa:	4608      	mov	r0, r1
   353fc:	f7ff fc8b 	bl	34d16 <uECC_vli_modMult_fast>
	/* End 1/Z calculation */

	XYcZ_add(Rx[nb], Ry[nb], Rx[1 - nb], Ry[1 - nb], curve);
   35400:	f8cd 8000 	str.w	r8, [sp]
   35404:	462b      	mov	r3, r5
   35406:	4632      	mov	r2, r6
   35408:	4621      	mov	r1, r4
   3540a:	4638      	mov	r0, r7
   3540c:	f7ff fefa 	bl	35204 <XYcZ_add>
	apply_z(Rx[0], Ry[0], z, curve);
   35410:	4643      	mov	r3, r8
   35412:	aa06      	add	r2, sp, #24
   35414:	a90e      	add	r1, sp, #56	; 0x38
   35416:	a81e      	add	r0, sp, #120	; 0x78
   35418:	f7ff fe9e 	bl	35158 <apply_z>

	uECC_vli_set(result, Rx[0], num_words);
   3541c:	465a      	mov	r2, fp
   3541e:	a91e      	add	r1, sp, #120	; 0x78
   35420:	9c04      	ldr	r4, [sp, #16]
   35422:	4620      	mov	r0, r4
   35424:	f7ff fb0e 	bl	34a44 <uECC_vli_set>
	uECC_vli_set(result + num_words, Ry[0], num_words);
   35428:	465a      	mov	r2, fp
   3542a:	a90e      	add	r1, sp, #56	; 0x38
   3542c:	4623      	mov	r3, r4
   3542e:	9c02      	ldr	r4, [sp, #8]
   35430:	4423      	add	r3, r4
   35432:	4618      	mov	r0, r3
   35434:	f7ff fb06 	bl	34a44 <uECC_vli_set>
}
   35438:	b02f      	add	sp, #188	; 0xbc
   3543a:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}

0003543e <regularize_k>:

uECC_word_t regularize_k(const uECC_word_t * const k, uECC_word_t *k0,
			 uECC_word_t *k1, uECC_Curve curve)
{
   3543e:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   35442:	460e      	mov	r6, r1
   35444:	4617      	mov	r7, r2

	wordcount_t num_n_words = BITS_TO_WORDS(curve->num_n_bits);
   35446:	f9b3 8002 	ldrsh.w	r8, [r3, #2]
   3544a:	f118 051f 	adds.w	r5, r8, #31
   3544e:	d415      	bmi.n	3547c <regularize_k+0x3e>
   35450:	f345 1547 	sbfx	r5, r5, #5, #8

	bitcount_t num_n_bits = curve->num_n_bits;

	uECC_word_t carry = uECC_vli_add(k0, k, curve->n, num_n_words) ||
   35454:	f103 0424 	add.w	r4, r3, #36	; 0x24
   35458:	462b      	mov	r3, r5
   3545a:	4622      	mov	r2, r4
   3545c:	4601      	mov	r1, r0
   3545e:	4630      	mov	r0, r6
   35460:	f7ff fb35 	bl	34ace <uECC_vli_add>
   35464:	b960      	cbnz	r0, 35480 <regularize_k+0x42>
   35466:	ebb8 1f45 	cmp.w	r8, r5, lsl #5
   3546a:	da14      	bge.n	35496 <regularize_k+0x58>
			     (num_n_bits < ((bitcount_t)num_n_words * uECC_WORD_SIZE * 8) &&
			     uECC_vli_testBit(k0, num_n_bits));
   3546c:	4641      	mov	r1, r8
   3546e:	4630      	mov	r0, r6
   35470:	f7ff fac5 	bl	349fe <uECC_vli_testBit>
			     (num_n_bits < ((bitcount_t)num_n_words * uECC_WORD_SIZE * 8) &&
   35474:	b990      	cbnz	r0, 3549c <regularize_k+0x5e>
	uECC_word_t carry = uECC_vli_add(k0, k, curve->n, num_n_words) ||
   35476:	f04f 0800 	mov.w	r8, #0
   3547a:	e003      	b.n	35484 <regularize_k+0x46>
	wordcount_t num_n_words = BITS_TO_WORDS(curve->num_n_bits);
   3547c:	351f      	adds	r5, #31
   3547e:	e7e7      	b.n	35450 <regularize_k+0x12>
	uECC_word_t carry = uECC_vli_add(k0, k, curve->n, num_n_words) ||
   35480:	f04f 0801 	mov.w	r8, #1

	uECC_vli_add(k1, k0, curve->n, num_n_words);
   35484:	462b      	mov	r3, r5
   35486:	4622      	mov	r2, r4
   35488:	4631      	mov	r1, r6
   3548a:	4638      	mov	r0, r7
   3548c:	f7ff fb1f 	bl	34ace <uECC_vli_add>

	return carry;
}
   35490:	4640      	mov	r0, r8
   35492:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
	uECC_word_t carry = uECC_vli_add(k0, k, curve->n, num_n_words) ||
   35496:	f04f 0800 	mov.w	r8, #0
   3549a:	e7f3      	b.n	35484 <regularize_k+0x46>
   3549c:	f04f 0801 	mov.w	r8, #1
   354a0:	e7f0      	b.n	35484 <regularize_k+0x46>

000354a2 <EccPoint_compute_public_key>:

uECC_word_t EccPoint_compute_public_key(uECC_word_t *result,
					uECC_word_t *private_key,
					uECC_Curve curve)
{
   354a2:	b530      	push	{r4, r5, lr}
   354a4:	b095      	sub	sp, #84	; 0x54
   354a6:	4605      	mov	r5, r0
   354a8:	4608      	mov	r0, r1
   354aa:	4614      	mov	r4, r2

	uECC_word_t tmp1[NUM_ECC_WORDS];
 	uECC_word_t tmp2[NUM_ECC_WORDS];
	uECC_word_t *p2[2] = {tmp1, tmp2};
   354ac:	a90c      	add	r1, sp, #48	; 0x30
   354ae:	9102      	str	r1, [sp, #8]
   354b0:	aa04      	add	r2, sp, #16
   354b2:	9203      	str	r2, [sp, #12]
	uECC_word_t carry;

	/* Regularize the bitcount for the private key so that attackers cannot
	 * use a side channel attack to learn the number of leading zeros. */
	carry = regularize_k(private_key, tmp1, tmp2, curve);
   354b4:	4623      	mov	r3, r4
   354b6:	f7ff ffc2 	bl	3543e <regularize_k>

	EccPoint_mult(result, curve->G, p2[!carry], 0, curve->num_n_bits + 1, curve);
   354ba:	fab0 f380 	clz	r3, r0
   354be:	095b      	lsrs	r3, r3, #5
   354c0:	aa14      	add	r2, sp, #80	; 0x50
   354c2:	eb02 0283 	add.w	r2, r2, r3, lsl #2
   354c6:	f9b4 3002 	ldrsh.w	r3, [r4, #2]
   354ca:	9401      	str	r4, [sp, #4]
   354cc:	3301      	adds	r3, #1
   354ce:	b21b      	sxth	r3, r3
   354d0:	9300      	str	r3, [sp, #0]
   354d2:	2300      	movs	r3, #0
   354d4:	f852 2c48 	ldr.w	r2, [r2, #-72]
   354d8:	f104 0144 	add.w	r1, r4, #68	; 0x44
   354dc:	4628      	mov	r0, r5
   354de:	f7ff fef8 	bl	352d2 <EccPoint_mult>

	if (EccPoint_isZero(result, curve)) {
   354e2:	4621      	mov	r1, r4
   354e4:	4628      	mov	r0, r5
   354e6:	f7ff fe2f 	bl	35148 <EccPoint_isZero>
   354ea:	b910      	cbnz	r0, 354f2 <EccPoint_compute_public_key+0x50>
		return 0;
	}
	return 1;
   354ec:	2001      	movs	r0, #1
}
   354ee:	b015      	add	sp, #84	; 0x54
   354f0:	bd30      	pop	{r4, r5, pc}
		return 0;
   354f2:	2000      	movs	r0, #0
   354f4:	e7fb      	b.n	354ee <EccPoint_compute_public_key+0x4c>

000354f6 <uECC_vli_nativeToBytes>:

/* Converts an integer in uECC native format to big-endian bytes. */
void uECC_vli_nativeToBytes(uint8_t *bytes, int num_bytes,
			    const unsigned int *native)
{
   354f6:	b430      	push	{r4, r5}
	wordcount_t i;
	for (i = 0; i < num_bytes; ++i) {
   354f8:	2400      	movs	r4, #0
   354fa:	428c      	cmp	r4, r1
   354fc:	da0d      	bge.n	3551a <uECC_vli_nativeToBytes+0x24>
		unsigned b = num_bytes - 1 - i;
   354fe:	1b0b      	subs	r3, r1, r4
   35500:	3b01      	subs	r3, #1
		bytes[i] = native[b / uECC_WORD_SIZE] >> (8 * (b % uECC_WORD_SIZE));
   35502:	f023 0503 	bic.w	r5, r3, #3
   35506:	5955      	ldr	r5, [r2, r5]
   35508:	f003 0303 	and.w	r3, r3, #3
   3550c:	00db      	lsls	r3, r3, #3
   3550e:	fa25 f303 	lsr.w	r3, r5, r3
   35512:	5503      	strb	r3, [r0, r4]
	for (i = 0; i < num_bytes; ++i) {
   35514:	3401      	adds	r4, #1
   35516:	b264      	sxtb	r4, r4
   35518:	e7ef      	b.n	354fa <uECC_vli_nativeToBytes+0x4>
	}
}
   3551a:	bc30      	pop	{r4, r5}
   3551c:	4770      	bx	lr

0003551e <uECC_vli_bytesToNative>:

/* Converts big-endian bytes to an integer in uECC native format. */
void uECC_vli_bytesToNative(unsigned int *native, const uint8_t *bytes,
			    int num_bytes)
{
   3551e:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
   35520:	4606      	mov	r6, r0
   35522:	460f      	mov	r7, r1
   35524:	4615      	mov	r5, r2
	wordcount_t i;
	uECC_vli_clear(native, (num_bytes + (uECC_WORD_SIZE - 1)) / uECC_WORD_SIZE);
   35526:	1cd1      	adds	r1, r2, #3
   35528:	d417      	bmi.n	3555a <uECC_vli_bytesToNative+0x3c>
   3552a:	f341 0187 	sbfx	r1, r1, #2, #8
   3552e:	4630      	mov	r0, r6
   35530:	f7ff fa46 	bl	349c0 <uECC_vli_clear>
	for (i = 0; i < num_bytes; ++i) {
   35534:	2400      	movs	r4, #0
   35536:	42ac      	cmp	r4, r5
   35538:	da11      	bge.n	3555e <uECC_vli_bytesToNative+0x40>
		unsigned b = num_bytes - 1 - i;
   3553a:	1b2b      	subs	r3, r5, r4
   3553c:	3b01      	subs	r3, #1
		native[b / uECC_WORD_SIZE] |=
   3553e:	f023 0103 	bic.w	r1, r3, #3
			(uECC_word_t)bytes[i] << (8 * (b % uECC_WORD_SIZE));
   35542:	5d3a      	ldrb	r2, [r7, r4]
   35544:	f003 0303 	and.w	r3, r3, #3
   35548:	00db      	lsls	r3, r3, #3
   3554a:	fa02 f303 	lsl.w	r3, r2, r3
		native[b / uECC_WORD_SIZE] |=
   3554e:	5872      	ldr	r2, [r6, r1]
   35550:	431a      	orrs	r2, r3
   35552:	5072      	str	r2, [r6, r1]
	for (i = 0; i < num_bytes; ++i) {
   35554:	3401      	adds	r4, #1
   35556:	b264      	sxtb	r4, r4
   35558:	e7ed      	b.n	35536 <uECC_vli_bytesToNative+0x18>
	uECC_vli_clear(native, (num_bytes + (uECC_WORD_SIZE - 1)) / uECC_WORD_SIZE);
   3555a:	3103      	adds	r1, #3
   3555c:	e7e5      	b.n	3552a <uECC_vli_bytesToNative+0xc>
  	}
}
   3555e:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}

00035560 <uECC_valid_point>:
	return 0;
}


int uECC_valid_point(const uECC_word_t *point, uECC_Curve curve)
{
   35560:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   35564:	b090      	sub	sp, #64	; 0x40
   35566:	4680      	mov	r8, r0
   35568:	460c      	mov	r4, r1
	uECC_word_t tmp1[NUM_ECC_WORDS];
	uECC_word_t tmp2[NUM_ECC_WORDS];
	wordcount_t num_words = curve->num_words;
   3556a:	f991 5000 	ldrsb.w	r5, [r1]

	/* The point at infinity is invalid. */
	if (EccPoint_isZero(point, curve)) {
   3556e:	f7ff fdeb 	bl	35148 <EccPoint_isZero>
   35572:	bb20      	cbnz	r0, 355be <uECC_valid_point+0x5e>
		return -1;
	}

	/* x and y must be smaller than p. */
	if (uECC_vli_cmp_unsafe(curve->p, point, num_words) != 1 ||
   35574:	1d26      	adds	r6, r4, #4
   35576:	462a      	mov	r2, r5
   35578:	4641      	mov	r1, r8
   3557a:	4630      	mov	r0, r6
   3557c:	f7ff fa71 	bl	34a62 <uECC_vli_cmp_unsafe>
   35580:	2801      	cmp	r0, #1
   35582:	d11f      	bne.n	355c4 <uECC_valid_point+0x64>
		uECC_vli_cmp_unsafe(curve->p, point + num_words, num_words) != 1) {
   35584:	eb08 0785 	add.w	r7, r8, r5, lsl #2
   35588:	462a      	mov	r2, r5
   3558a:	4639      	mov	r1, r7
   3558c:	4630      	mov	r0, r6
   3558e:	f7ff fa68 	bl	34a62 <uECC_vli_cmp_unsafe>
	if (uECC_vli_cmp_unsafe(curve->p, point, num_words) != 1 ||
   35592:	2801      	cmp	r0, #1
   35594:	d119      	bne.n	355ca <uECC_valid_point+0x6a>
		return -2;
	}

	uECC_vli_modSquare_fast(tmp1, point + num_words, curve);
   35596:	4622      	mov	r2, r4
   35598:	4639      	mov	r1, r7
   3559a:	a808      	add	r0, sp, #32
   3559c:	f7ff fbcb 	bl	34d36 <uECC_vli_modSquare_fast>
	curve->x_side(tmp2, point, curve); /* tmp2 = x^3 + ax + b */
   355a0:	f8d4 30a8 	ldr.w	r3, [r4, #168]	; 0xa8
   355a4:	4622      	mov	r2, r4
   355a6:	4641      	mov	r1, r8
   355a8:	4668      	mov	r0, sp
   355aa:	4798      	blx	r3

	/* Make sure that y^2 == x^3 + ax + b */
	if (uECC_vli_equal(tmp1, tmp2, num_words) != 0)
   355ac:	462a      	mov	r2, r5
   355ae:	4669      	mov	r1, sp
   355b0:	a808      	add	r0, sp, #32
   355b2:	f7ff fa70 	bl	34a96 <uECC_vli_equal>
   355b6:	b958      	cbnz	r0, 355d0 <uECC_valid_point+0x70>
		return -3;

	return 0;
}
   355b8:	b010      	add	sp, #64	; 0x40
   355ba:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
		return -1;
   355be:	f04f 30ff 	mov.w	r0, #4294967295
   355c2:	e7f9      	b.n	355b8 <uECC_valid_point+0x58>
		return -2;
   355c4:	f06f 0001 	mvn.w	r0, #1
   355c8:	e7f6      	b.n	355b8 <uECC_valid_point+0x58>
   355ca:	f06f 0001 	mvn.w	r0, #1
   355ce:	e7f3      	b.n	355b8 <uECC_valid_point+0x58>
		return -3;
   355d0:	f06f 0002 	mvn.w	r0, #2
   355d4:	e7f0      	b.n	355b8 <uECC_valid_point+0x58>

000355d6 <uECC_valid_public_key>:

int uECC_valid_public_key(const uint8_t *public_key, uECC_Curve curve)
{
   355d6:	b530      	push	{r4, r5, lr}
   355d8:	b091      	sub	sp, #68	; 0x44
   355da:	4605      	mov	r5, r0
   355dc:	460c      	mov	r4, r1

	uECC_word_t _public[NUM_ECC_WORDS * 2];

	uECC_vli_bytesToNative(_public, public_key, curve->num_bytes);
   355de:	f991 2001 	ldrsb.w	r2, [r1, #1]
   355e2:	4601      	mov	r1, r0
   355e4:	4668      	mov	r0, sp
   355e6:	f7ff ff9a 	bl	3551e <uECC_vli_bytesToNative>
	uECC_vli_bytesToNative(
	_public + curve->num_words,
   355ea:	f994 0000 	ldrsb.w	r0, [r4]
	public_key + curve->num_bytes,
   355ee:	f994 2001 	ldrsb.w	r2, [r4, #1]
	uECC_vli_bytesToNative(
   355f2:	18a9      	adds	r1, r5, r2
   355f4:	eb0d 0080 	add.w	r0, sp, r0, lsl #2
   355f8:	f7ff ff91 	bl	3551e <uECC_vli_bytesToNative>
	curve->num_bytes);

	if (uECC_vli_cmp_unsafe(_public, curve->G, NUM_ECC_WORDS * 2) == 0) {
   355fc:	2210      	movs	r2, #16
   355fe:	f104 0144 	add.w	r1, r4, #68	; 0x44
   35602:	4668      	mov	r0, sp
   35604:	f7ff fa2d 	bl	34a62 <uECC_vli_cmp_unsafe>
   35608:	b128      	cbz	r0, 35616 <uECC_valid_public_key+0x40>
		return -4;
	}

	return uECC_valid_point(_public, curve);
   3560a:	4621      	mov	r1, r4
   3560c:	4668      	mov	r0, sp
   3560e:	f7ff ffa7 	bl	35560 <uECC_valid_point>
}
   35612:	b011      	add	sp, #68	; 0x44
   35614:	bd30      	pop	{r4, r5, pc}
		return -4;
   35616:	f06f 0003 	mvn.w	r0, #3
   3561a:	e7fa      	b.n	35612 <uECC_valid_public_key+0x3c>

0003561c <gf_double>:
 *           the in and out buffers do not overlap.
 *  effects: doubles the GF(2^n) value pointed to by "in" and places
 *           the result in the GF(2^n) value pointed to by "out."
 */
void gf_double(uint8_t *out, uint8_t *in)
{
   3561c:	b410      	push	{r4}

	/* start with low order byte */
	uint8_t *x = in + (TC_AES_BLOCK_SIZE - 1);
   3561e:	460b      	mov	r3, r1

	/* if msb == 1, we need to add the gf_wrap value, otherwise add 0 */
	uint8_t carry = (in[0] >> 7) ? gf_wrap : 0;
   35620:	f913 2b0f 	ldrsb.w	r2, [r3], #15
   35624:	2a00      	cmp	r2, #0
   35626:	db03      	blt.n	35630 <gf_double+0x14>
   35628:	2400      	movs	r4, #0

	out += (TC_AES_BLOCK_SIZE - 1);
   3562a:	f100 020f 	add.w	r2, r0, #15
   3562e:	e004      	b.n	3563a <gf_double+0x1e>
	uint8_t carry = (in[0] >> 7) ? gf_wrap : 0;
   35630:	2487      	movs	r4, #135	; 0x87
   35632:	e7fa      	b.n	3562a <gf_double+0xe>
	for (;;) {
		*out-- = (*x << 1) ^ carry;
		if (x == in) {
			break;
		}
		carry = *x-- >> 7;
   35634:	f813 0901 	ldrb.w	r0, [r3], #-1
   35638:	09c4      	lsrs	r4, r0, #7
		*out-- = (*x << 1) ^ carry;
   3563a:	7818      	ldrb	r0, [r3, #0]
   3563c:	ea84 0040 	eor.w	r0, r4, r0, lsl #1
   35640:	f802 0901 	strb.w	r0, [r2], #-1
		if (x == in) {
   35644:	428b      	cmp	r3, r1
   35646:	d1f5      	bne.n	35634 <gf_double+0x18>
	}
}
   35648:	bc10      	pop	{r4}
   3564a:	4770      	bx	lr

0003564c <tc_cmac_erase>:
	return TC_CRYPTO_SUCCESS;
}

int tc_cmac_erase(TCCmacState_t s)
{
	if (s == (TCCmacState_t) 0) {
   3564c:	b130      	cbz	r0, 3565c <tc_cmac_erase+0x10>
{
   3564e:	b508      	push	{r3, lr}
		return TC_CRYPTO_FAIL;
	}

	/* destroy the current state */
	_set(s, 0, sizeof(*s));
   35650:	2258      	movs	r2, #88	; 0x58
   35652:	2100      	movs	r1, #0
   35654:	f7ff f864 	bl	34720 <_set>

	return TC_CRYPTO_SUCCESS;
   35658:	2001      	movs	r0, #1
}
   3565a:	bd08      	pop	{r3, pc}
		return TC_CRYPTO_FAIL;
   3565c:	2000      	movs	r0, #0
}
   3565e:	4770      	bx	lr

00035660 <tc_cmac_init>:

int tc_cmac_init(TCCmacState_t s)
{
	/* input sanity check: */
	if (s == (TCCmacState_t) 0) {
   35660:	b1a0      	cbz	r0, 3568c <tc_cmac_init+0x2c>
{
   35662:	b510      	push	{r4, lr}
   35664:	4604      	mov	r4, r0
		return TC_CRYPTO_FAIL;
	}

	/* CMAC starts with an all zero initialization vector */
	_set(s->iv, 0, TC_AES_BLOCK_SIZE);
   35666:	2210      	movs	r2, #16
   35668:	2100      	movs	r1, #0
   3566a:	f7ff f859 	bl	34720 <_set>

	/* and the leftover buffer is empty */
	_set(s->leftover, 0, TC_AES_BLOCK_SIZE);
   3566e:	2210      	movs	r2, #16
   35670:	2100      	movs	r1, #0
   35672:	f104 0030 	add.w	r0, r4, #48	; 0x30
   35676:	f7ff f853 	bl	34720 <_set>
	s->leftover_offset = 0;
   3567a:	2300      	movs	r3, #0
   3567c:	6463      	str	r3, [r4, #68]	; 0x44

	/* Set countdown to max number of calls allowed before re-keying: */
	s->countdown = MAX_CALLS;
   3567e:	2200      	movs	r2, #0
   35680:	f44f 3380 	mov.w	r3, #65536	; 0x10000
   35684:	e9c4 2314 	strd	r2, r3, [r4, #80]	; 0x50

	return TC_CRYPTO_SUCCESS;
   35688:	2001      	movs	r0, #1
}
   3568a:	bd10      	pop	{r4, pc}
		return TC_CRYPTO_FAIL;
   3568c:	2000      	movs	r0, #0
}
   3568e:	4770      	bx	lr

00035690 <tc_cmac_setup>:
	if (s == (TCCmacState_t) 0 ||
   35690:	b338      	cbz	r0, 356e2 <tc_cmac_setup+0x52>
{
   35692:	b570      	push	{r4, r5, r6, lr}
   35694:	460d      	mov	r5, r1
   35696:	4616      	mov	r6, r2
   35698:	4604      	mov	r4, r0
	if (s == (TCCmacState_t) 0 ||
   3569a:	b321      	cbz	r1, 356e6 <tc_cmac_setup+0x56>
	_set(s, 0, sizeof(*s));
   3569c:	2258      	movs	r2, #88	; 0x58
   3569e:	2100      	movs	r1, #0
   356a0:	f7ff f83e 	bl	34720 <_set>
	s->sched = sched;
   356a4:	64a6      	str	r6, [r4, #72]	; 0x48
	tc_aes128_set_encrypt_key(s->sched, key);
   356a6:	4629      	mov	r1, r5
   356a8:	4630      	mov	r0, r6
   356aa:	f7e9 fa21 	bl	1eaf0 <tc_aes128_set_encrypt_key>
	_set(s->iv, 0, TC_AES_BLOCK_SIZE);
   356ae:	2210      	movs	r2, #16
   356b0:	2100      	movs	r1, #0
   356b2:	4620      	mov	r0, r4
   356b4:	f7ff f834 	bl	34720 <_set>
	tc_aes_encrypt(s->iv, s->iv, s->sched);
   356b8:	6ca2      	ldr	r2, [r4, #72]	; 0x48
   356ba:	4621      	mov	r1, r4
   356bc:	4620      	mov	r0, r4
   356be:	f7e9 fa75 	bl	1ebac <tc_aes_encrypt>
	gf_double (s->K1, s->iv);
   356c2:	f104 0510 	add.w	r5, r4, #16
   356c6:	4621      	mov	r1, r4
   356c8:	4628      	mov	r0, r5
   356ca:	f7ff ffa7 	bl	3561c <gf_double>
	gf_double (s->K2, s->K1);
   356ce:	4629      	mov	r1, r5
   356d0:	f104 0020 	add.w	r0, r4, #32
   356d4:	f7ff ffa2 	bl	3561c <gf_double>
	tc_cmac_init(s);
   356d8:	4620      	mov	r0, r4
   356da:	f7ff ffc1 	bl	35660 <tc_cmac_init>
	return TC_CRYPTO_SUCCESS;
   356de:	2001      	movs	r0, #1
}
   356e0:	bd70      	pop	{r4, r5, r6, pc}
		return TC_CRYPTO_FAIL;
   356e2:	2000      	movs	r0, #0
}
   356e4:	4770      	bx	lr
		return TC_CRYPTO_FAIL;
   356e6:	2000      	movs	r0, #0
   356e8:	e7fa      	b.n	356e0 <tc_cmac_setup+0x50>

000356ea <tc_cmac_update>:
int tc_cmac_update(TCCmacState_t s, const uint8_t *data, size_t data_length)
{
	unsigned int i;

	/* input sanity check: */
	if (s == (TCCmacState_t) 0) {
   356ea:	2800      	cmp	r0, #0
   356ec:	d062      	beq.n	357b4 <tc_cmac_update+0xca>
{
   356ee:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   356f2:	460e      	mov	r6, r1
   356f4:	4617      	mov	r7, r2
   356f6:	4604      	mov	r4, r0
		return TC_CRYPTO_FAIL;
	}
	if (data_length == 0) {
   356f8:	2a00      	cmp	r2, #0
   356fa:	d05d      	beq.n	357b8 <tc_cmac_update+0xce>
		return  TC_CRYPTO_SUCCESS;
	}
	if (data == (const uint8_t *) 0) {
   356fc:	2900      	cmp	r1, #0
   356fe:	d05e      	beq.n	357be <tc_cmac_update+0xd4>
		return TC_CRYPTO_FAIL;
	}

	if (s->countdown == 0) {
   35700:	e9d0 0114 	ldrd	r0, r1, [r0, #80]	; 0x50
   35704:	ea50 0301 	orrs.w	r3, r0, r1
   35708:	d05b      	beq.n	357c2 <tc_cmac_update+0xd8>
		return TC_CRYPTO_FAIL;
	}

	s->countdown--;
   3570a:	f110 32ff 	adds.w	r2, r0, #4294967295
   3570e:	f141 33ff 	adc.w	r3, r1, #4294967295
   35712:	6522      	str	r2, [r4, #80]	; 0x50
   35714:	6563      	str	r3, [r4, #84]	; 0x54

	if (s->leftover_offset > 0) {
   35716:	6c65      	ldr	r5, [r4, #68]	; 0x44
   35718:	b3a5      	cbz	r5, 35784 <tc_cmac_update+0x9a>
		/* last data added to s didn't end on a TC_AES_BLOCK_SIZE byte boundary */
		size_t remaining_space = TC_AES_BLOCK_SIZE - s->leftover_offset;
   3571a:	f1c5 0810 	rsb	r8, r5, #16

		if (data_length < remaining_space) {
   3571e:	4547      	cmp	r7, r8
   35720:	d30d      	bcc.n	3573e <tc_cmac_update+0x54>
			_copy(&s->leftover[s->leftover_offset], data_length, data, data_length);
			s->leftover_offset += data_length;
			return TC_CRYPTO_SUCCESS;
		}
		/* leftover block is now full; encrypt it first */
		_copy(&s->leftover[s->leftover_offset],
   35722:	f105 0030 	add.w	r0, r5, #48	; 0x30
   35726:	4643      	mov	r3, r8
   35728:	4632      	mov	r2, r6
   3572a:	4641      	mov	r1, r8
   3572c:	4420      	add	r0, r4
   3572e:	f7fe ffea 	bl	34706 <_copy>
		      remaining_space,
		      data,
		      remaining_space);
		data_length -= remaining_space;
   35732:	3d10      	subs	r5, #16
   35734:	442f      	add	r7, r5
		data += remaining_space;
   35736:	4446      	add	r6, r8
		s->leftover_offset = 0;
   35738:	2300      	movs	r3, #0
   3573a:	6463      	str	r3, [r4, #68]	; 0x44

		for (i = 0; i < TC_AES_BLOCK_SIZE; ++i) {
   3573c:	e013      	b.n	35766 <tc_cmac_update+0x7c>
			_copy(&s->leftover[s->leftover_offset], data_length, data, data_length);
   3573e:	f105 0030 	add.w	r0, r5, #48	; 0x30
   35742:	463b      	mov	r3, r7
   35744:	4632      	mov	r2, r6
   35746:	4639      	mov	r1, r7
   35748:	4420      	add	r0, r4
   3574a:	f7fe ffdc 	bl	34706 <_copy>
			s->leftover_offset += data_length;
   3574e:	6c63      	ldr	r3, [r4, #68]	; 0x44
   35750:	443b      	add	r3, r7
   35752:	6463      	str	r3, [r4, #68]	; 0x44
			return TC_CRYPTO_SUCCESS;
   35754:	2001      	movs	r0, #1
   35756:	e030      	b.n	357ba <tc_cmac_update+0xd0>
			s->iv[i] ^= s->leftover[i];
   35758:	18e2      	adds	r2, r4, r3
   3575a:	f892 2030 	ldrb.w	r2, [r2, #48]	; 0x30
   3575e:	5ce1      	ldrb	r1, [r4, r3]
   35760:	404a      	eors	r2, r1
   35762:	54e2      	strb	r2, [r4, r3]
		for (i = 0; i < TC_AES_BLOCK_SIZE; ++i) {
   35764:	3301      	adds	r3, #1
   35766:	2b0f      	cmp	r3, #15
   35768:	d9f6      	bls.n	35758 <tc_cmac_update+0x6e>
		}
		tc_aes_encrypt(s->iv, s->iv, s->sched);
   3576a:	6ca2      	ldr	r2, [r4, #72]	; 0x48
   3576c:	4621      	mov	r1, r4
   3576e:	4620      	mov	r0, r4
   35770:	f7e9 fa1c 	bl	1ebac <tc_aes_encrypt>
   35774:	e006      	b.n	35784 <tc_cmac_update+0x9a>
	/* CBC encrypt each (except the last) of the data blocks */
	while (data_length > TC_AES_BLOCK_SIZE) {
		for (i = 0; i < TC_AES_BLOCK_SIZE; ++i) {
			s->iv[i] ^= data[i];
		}
		tc_aes_encrypt(s->iv, s->iv, s->sched);
   35776:	6ca2      	ldr	r2, [r4, #72]	; 0x48
   35778:	4621      	mov	r1, r4
   3577a:	4620      	mov	r0, r4
   3577c:	f7e9 fa16 	bl	1ebac <tc_aes_encrypt>
		data += TC_AES_BLOCK_SIZE;
   35780:	3610      	adds	r6, #16
		data_length  -= TC_AES_BLOCK_SIZE;
   35782:	3f10      	subs	r7, #16
	while (data_length > TC_AES_BLOCK_SIZE) {
   35784:	2f10      	cmp	r7, #16
   35786:	d908      	bls.n	3579a <tc_cmac_update+0xb0>
		for (i = 0; i < TC_AES_BLOCK_SIZE; ++i) {
   35788:	2300      	movs	r3, #0
   3578a:	2b0f      	cmp	r3, #15
   3578c:	d8f3      	bhi.n	35776 <tc_cmac_update+0x8c>
			s->iv[i] ^= data[i];
   3578e:	5cf0      	ldrb	r0, [r6, r3]
   35790:	5ce5      	ldrb	r5, [r4, r3]
   35792:	4068      	eors	r0, r5
   35794:	54e0      	strb	r0, [r4, r3]
		for (i = 0; i < TC_AES_BLOCK_SIZE; ++i) {
   35796:	3301      	adds	r3, #1
   35798:	e7f7      	b.n	3578a <tc_cmac_update+0xa0>
	}

	if (data_length > 0) {
   3579a:	b90f      	cbnz	r7, 357a0 <tc_cmac_update+0xb6>
		/* save leftover data for next time */
		_copy(s->leftover, data_length, data, data_length);
		s->leftover_offset = data_length;
	}

	return TC_CRYPTO_SUCCESS;
   3579c:	2001      	movs	r0, #1
   3579e:	e00c      	b.n	357ba <tc_cmac_update+0xd0>
		_copy(s->leftover, data_length, data, data_length);
   357a0:	463b      	mov	r3, r7
   357a2:	4632      	mov	r2, r6
   357a4:	4639      	mov	r1, r7
   357a6:	f104 0030 	add.w	r0, r4, #48	; 0x30
   357aa:	f7fe ffac 	bl	34706 <_copy>
		s->leftover_offset = data_length;
   357ae:	6467      	str	r7, [r4, #68]	; 0x44
	return TC_CRYPTO_SUCCESS;
   357b0:	2001      	movs	r0, #1
   357b2:	e002      	b.n	357ba <tc_cmac_update+0xd0>
		return TC_CRYPTO_FAIL;
   357b4:	2000      	movs	r0, #0
}
   357b6:	4770      	bx	lr
		return  TC_CRYPTO_SUCCESS;
   357b8:	2001      	movs	r0, #1
}
   357ba:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
		return TC_CRYPTO_FAIL;
   357be:	2000      	movs	r0, #0
   357c0:	e7fb      	b.n	357ba <tc_cmac_update+0xd0>
		return TC_CRYPTO_FAIL;
   357c2:	2000      	movs	r0, #0
   357c4:	e7f9      	b.n	357ba <tc_cmac_update+0xd0>

000357c6 <tc_cmac_final>:
{
	uint8_t *k;
	unsigned int i;

	/* input sanity check: */
	if (tag == (uint8_t *) 0 ||
   357c6:	b370      	cbz	r0, 35826 <tc_cmac_final+0x60>
{
   357c8:	b538      	push	{r3, r4, r5, lr}
   357ca:	460c      	mov	r4, r1
   357cc:	4605      	mov	r5, r0
	if (tag == (uint8_t *) 0 ||
   357ce:	b361      	cbz	r1, 3582a <tc_cmac_final+0x64>
	    s == (TCCmacState_t) 0) {
		return TC_CRYPTO_FAIL;
	}

	if (s->leftover_offset == TC_AES_BLOCK_SIZE) {
   357d0:	6c4a      	ldr	r2, [r1, #68]	; 0x44
   357d2:	2a10      	cmp	r2, #16
   357d4:	d10d      	bne.n	357f2 <tc_cmac_final+0x2c>
		/* the last message block is a full-sized block */
		k = (uint8_t *) s->K1;
   357d6:	3110      	adds	r1, #16

		_set(&s->leftover[s->leftover_offset], 0, remaining);
		s->leftover[s->leftover_offset] = TC_CMAC_PADDING;
		k = (uint8_t *) s->K2;
	}
	for (i = 0; i < TC_AES_BLOCK_SIZE; ++i) {
   357d8:	2300      	movs	r3, #0
   357da:	2b0f      	cmp	r3, #15
   357dc:	d819      	bhi.n	35812 <tc_cmac_final+0x4c>
		s->iv[i] ^= s->leftover[i] ^ k[i];
   357de:	18e2      	adds	r2, r4, r3
   357e0:	f892 2030 	ldrb.w	r2, [r2, #48]	; 0x30
   357e4:	5cc8      	ldrb	r0, [r1, r3]
   357e6:	4050      	eors	r0, r2
   357e8:	5ce2      	ldrb	r2, [r4, r3]
   357ea:	4042      	eors	r2, r0
   357ec:	54e2      	strb	r2, [r4, r3]
	for (i = 0; i < TC_AES_BLOCK_SIZE; ++i) {
   357ee:	3301      	adds	r3, #1
   357f0:	e7f3      	b.n	357da <tc_cmac_final+0x14>
		_set(&s->leftover[s->leftover_offset], 0, remaining);
   357f2:	f102 0030 	add.w	r0, r2, #48	; 0x30
   357f6:	f1c2 0210 	rsb	r2, r2, #16
   357fa:	2100      	movs	r1, #0
   357fc:	4420      	add	r0, r4
   357fe:	f7fe ff8f 	bl	34720 <_set>
		s->leftover[s->leftover_offset] = TC_CMAC_PADDING;
   35802:	6c63      	ldr	r3, [r4, #68]	; 0x44
   35804:	4423      	add	r3, r4
   35806:	2280      	movs	r2, #128	; 0x80
   35808:	f883 2030 	strb.w	r2, [r3, #48]	; 0x30
		k = (uint8_t *) s->K2;
   3580c:	f104 0120 	add.w	r1, r4, #32
   35810:	e7e2      	b.n	357d8 <tc_cmac_final+0x12>
	}

	tc_aes_encrypt(tag, s->iv, s->sched);
   35812:	6ca2      	ldr	r2, [r4, #72]	; 0x48
   35814:	4621      	mov	r1, r4
   35816:	4628      	mov	r0, r5
   35818:	f7e9 f9c8 	bl	1ebac <tc_aes_encrypt>

	/* erasing state: */
	tc_cmac_erase(s);
   3581c:	4620      	mov	r0, r4
   3581e:	f7ff ff15 	bl	3564c <tc_cmac_erase>

	return TC_CRYPTO_SUCCESS;
   35822:	2001      	movs	r0, #1
}
   35824:	bd38      	pop	{r3, r4, r5, pc}
		return TC_CRYPTO_FAIL;
   35826:	2000      	movs	r0, #0
}
   35828:	4770      	bx	lr
		return TC_CRYPTO_FAIL;
   3582a:	2000      	movs	r0, #0
   3582c:	e7fa      	b.n	35824 <tc_cmac_final+0x5e>

0003582e <z_arm_fatal_error>:

void z_arm_fatal_error(unsigned int reason, const z_arch_esf_t *esf)
{
   3582e:	b538      	push	{r3, r4, r5, lr}
   35830:	4604      	mov	r4, r0

	if (esf != NULL) {
   35832:	460d      	mov	r5, r1
   35834:	b111      	cbz	r1, 3583c <z_arm_fatal_error+0xe>
		esf_dump(esf);
   35836:	4608      	mov	r0, r1
   35838:	f7e9 fd7c 	bl	1f334 <esf_dump>
	}
	z_fatal_error(reason, esf);
   3583c:	4629      	mov	r1, r5
   3583e:	4620      	mov	r0, r4
   35840:	f7f9 fb24 	bl	2ee8c <z_fatal_error>
}
   35844:	bd38      	pop	{r3, r4, r5, pc}

00035846 <z_do_kernel_oops>:
 *   fault handler will executed insted of the SVC.
 *
 * @param esf exception frame
 */
void z_do_kernel_oops(const z_arch_esf_t *esf)
{
   35846:	b508      	push	{r3, lr}
   35848:	4601      	mov	r1, r0
	}

#endif /* CONFIG_USERSPACE */

#if !defined(CONFIG_EXTRA_EXCEPTION_INFO)
	z_arm_fatal_error(reason, esf);
   3584a:	6800      	ldr	r0, [r0, #0]
   3584c:	f7ff ffef 	bl	3582e <z_arm_fatal_error>

	memcpy(&esf_copy, esf, offsetof(z_arch_esf_t, extra_info));
	esf_copy.extra_info = (struct __extra_esf_info) { 0 };
	z_arm_fatal_error(reason, &esf_copy);
#endif /* CONFIG_EXTRA_EXCEPTION_INFO */
}
   35850:	bd08      	pop	{r3, pc}

00035852 <z_irq_spurious>:
{
   35852:	b508      	push	{r3, lr}
	z_arm_fatal_error(K_ERR_SPURIOUS_IRQ, NULL);
   35854:	2100      	movs	r1, #0
   35856:	2001      	movs	r0, #1
   35858:	f7ff ffe9 	bl	3582e <z_arm_fatal_error>
}
   3585c:	bd08      	pop	{r3, pc}

0003585e <z_arm_nmi>:
 *
 * @return N/A
 */

void z_arm_nmi(void)
{
   3585e:	b508      	push	{r3, lr}
	handler();
   35860:	f7e9 fdfe 	bl	1f460 <z_SysNmiOnReset>
	z_arm_int_exit();
   35864:	f7e9 fefa 	bl	1f65c <z_arm_exc_exit>
}
   35868:	bd08      	pop	{r3, pc}

0003586a <memory_fault_recoverable>:
}
   3586a:	2000      	movs	r0, #0
   3586c:	4770      	bx	lr

0003586e <fault_handle>:
{
   3586e:	b508      	push	{r3, lr}
	*recoverable = false;
   35870:	2300      	movs	r3, #0
   35872:	7013      	strb	r3, [r2, #0]
	switch (fault) {
   35874:	1ecb      	subs	r3, r1, #3
   35876:	2b09      	cmp	r3, #9
   35878:	d81a      	bhi.n	358b0 <fault_handle+0x42>
   3587a:	e8df f003 	tbb	[pc, r3]
   3587e:	0905      	.short	0x0905
   35880:	1919110d 	.word	0x1919110d
   35884:	14191919 	.word	0x14191919
		reason = hard_fault(esf, recoverable);
   35888:	4611      	mov	r1, r2
   3588a:	f7ea f87f 	bl	1f98c <hard_fault>
}
   3588e:	bd08      	pop	{r3, pc}
		reason = mem_manage_fault(esf, 0, recoverable);
   35890:	2100      	movs	r1, #0
   35892:	f7e9 ffdd 	bl	1f850 <mem_manage_fault>
		break;
   35896:	e7fa      	b.n	3588e <fault_handle+0x20>
		reason = bus_fault(esf, 0, recoverable);
   35898:	2100      	movs	r1, #0
   3589a:	f7e9 feed 	bl	1f678 <bus_fault>
		break;
   3589e:	e7f6      	b.n	3588e <fault_handle+0x20>
		reason = usage_fault(esf);
   358a0:	f7e9 ff5e 	bl	1f760 <usage_fault>
		break;
   358a4:	e7f3      	b.n	3588e <fault_handle+0x20>
		debug_monitor(esf, recoverable);
   358a6:	4611      	mov	r1, r2
   358a8:	f7e9 ffb4 	bl	1f814 <debug_monitor>
	uint32_t reason = K_ERR_CPU_EXCEPTION;
   358ac:	2000      	movs	r0, #0
		break;
   358ae:	e7ee      	b.n	3588e <fault_handle+0x20>
		reserved_exception(esf, fault);
   358b0:	f7e9 ffba 	bl	1f828 <reserved_exception>
	uint32_t reason = K_ERR_CPU_EXCEPTION;
   358b4:	2000      	movs	r0, #0
	return reason;
   358b6:	e7ea      	b.n	3588e <fault_handle+0x20>

000358b8 <mpu_partition_is_valid>:
		((part->size & (part->size - 1U)) == 0U)
   358b8:	6843      	ldr	r3, [r0, #4]
   358ba:	1e5a      	subs	r2, r3, #1
		&&
   358bc:	4213      	tst	r3, r2
   358be:	d106      	bne.n	358ce <mpu_partition_is_valid+0x16>
		&&
   358c0:	2b1f      	cmp	r3, #31
   358c2:	d906      	bls.n	358d2 <mpu_partition_is_valid+0x1a>
		((part->start & (part->size - 1U)) == 0U);
   358c4:	6803      	ldr	r3, [r0, #0]
		&&
   358c6:	421a      	tst	r2, r3
   358c8:	d005      	beq.n	358d6 <mpu_partition_is_valid+0x1e>
   358ca:	2000      	movs	r0, #0
   358cc:	4770      	bx	lr
   358ce:	2000      	movs	r0, #0
   358d0:	4770      	bx	lr
   358d2:	2000      	movs	r0, #0
   358d4:	4770      	bx	lr
   358d6:	2001      	movs	r0, #1
}
   358d8:	4770      	bx	lr

000358da <mpu_configure_region>:
{
   358da:	b500      	push	{lr}
   358dc:	b085      	sub	sp, #20
	region_conf.base = new_region->start;
   358de:	680b      	ldr	r3, [r1, #0]
   358e0:	9301      	str	r3, [sp, #4]
	get_region_attr_from_mpu_partition_info(&region_conf.attr,
   358e2:	684b      	ldr	r3, [r1, #4]
	p_attr->rasr = attr->rasr_attr | size_to_mpu_rasr_size(size);
   358e4:	688a      	ldr	r2, [r1, #8]
	if (size <= 32U) {
   358e6:	2b20      	cmp	r3, #32
   358e8:	d912      	bls.n	35910 <mpu_configure_region+0x36>
	if (size > (1UL << 31)) {
   358ea:	f1b3 4f00 	cmp.w	r3, #2147483648	; 0x80000000
   358ee:	d811      	bhi.n	35914 <mpu_configure_region+0x3a>
	return ((32 - __builtin_clz(size - 1U) - 2 + 1) << MPU_RASR_SIZE_Pos) &
   358f0:	3b01      	subs	r3, #1
   358f2:	fab3 f383 	clz	r3, r3
   358f6:	f1c3 031f 	rsb	r3, r3, #31
   358fa:	005b      	lsls	r3, r3, #1
   358fc:	f003 033e 	and.w	r3, r3, #62	; 0x3e
	p_attr->rasr = attr->rasr_attr | size_to_mpu_rasr_size(size);
   35900:	4313      	orrs	r3, r2
   35902:	9303      	str	r3, [sp, #12]
	return region_allocate_and_init(index,
   35904:	a901      	add	r1, sp, #4
   35906:	f7ea f9ff 	bl	1fd08 <region_allocate_and_init>
}
   3590a:	b005      	add	sp, #20
   3590c:	f85d fb04 	ldr.w	pc, [sp], #4
		return REGION_32B;
   35910:	2308      	movs	r3, #8
   35912:	e7f5      	b.n	35900 <mpu_configure_region+0x26>
		return REGION_4G;
   35914:	233e      	movs	r3, #62	; 0x3e
   35916:	e7f3      	b.n	35900 <mpu_configure_region+0x26>

00035918 <strtoul>:
 *
 * Ignores `locale' stuff.  Assumes that the upper and lower case
 * alphabets and digits are each contiguous.
 */
unsigned long strtoul(const char *nptr, char **endptr, register int base)
{
   35918:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
   3591c:	4607      	mov	r7, r0
   3591e:	4688      	mov	r8, r1
	register const char *s = nptr;
   35920:	4604      	mov	r4, r0

	/*
	 * See strtol for comments as to the logic used.
	 */
	do {
		c = *s++;
   35922:	4620      	mov	r0, r4
   35924:	3401      	adds	r4, #1
   35926:	7801      	ldrb	r1, [r0, #0]
   35928:	460b      	mov	r3, r1
	return (int)(c == (int)' ' || ((unsigned)c-(unsigned)'\t') < 5U);
   3592a:	2920      	cmp	r1, #32
   3592c:	d0f9      	beq.n	35922 <strtoul+0xa>
   3592e:	3909      	subs	r1, #9
   35930:	2904      	cmp	r1, #4
   35932:	d9f6      	bls.n	35922 <strtoul+0xa>
	} while (isspace(c));
	if (c == '-') {
   35934:	2b2d      	cmp	r3, #45	; 0x2d
   35936:	d018      	beq.n	3596a <strtoul+0x52>
		neg = 1;
		c = *s++;
	} else if (c == '+') {
   35938:	2b2b      	cmp	r3, #43	; 0x2b
   3593a:	d01b      	beq.n	35974 <strtoul+0x5c>
	register int neg = 0, any, cutlim;
   3593c:	f04f 0900 	mov.w	r9, #0
		c = *s++;
	}

	if ((base == 0 || base == 16) &&
   35940:	b10a      	cbz	r2, 35946 <strtoul+0x2e>
   35942:	2a10      	cmp	r2, #16
   35944:	d101      	bne.n	3594a <strtoul+0x32>
   35946:	2b30      	cmp	r3, #48	; 0x30
   35948:	d019      	beq.n	3597e <strtoul+0x66>
		c = s[1];
		s += 2;
		base = 16;
	}

	if (base == 0) {
   3594a:	b912      	cbnz	r2, 35952 <strtoul+0x3a>
		base = c == '0' ? 8 : 10;
   3594c:	2b30      	cmp	r3, #48	; 0x30
   3594e:	d01f      	beq.n	35990 <strtoul+0x78>
   35950:	220a      	movs	r2, #10
	}

	cutoff = (unsigned long)ULONG_MAX / (unsigned long)base;
   35952:	4696      	mov	lr, r2
   35954:	f04f 31ff 	mov.w	r1, #4294967295
   35958:	fbb1 f1f2 	udiv	r1, r1, r2
	cutlim = (unsigned long)ULONG_MAX % (unsigned long)base;
   3595c:	fb02 fc01 	mul.w	ip, r2, r1
   35960:	ea6f 0c0c 	mvn.w	ip, ip
	for (acc = 0, any = 0;; c = *s++) {
   35964:	2600      	movs	r6, #0
   35966:	4630      	mov	r0, r6
   35968:	e02d      	b.n	359c6 <strtoul+0xae>
		c = *s++;
   3596a:	7823      	ldrb	r3, [r4, #0]
   3596c:	1c84      	adds	r4, r0, #2
		neg = 1;
   3596e:	f04f 0901 	mov.w	r9, #1
   35972:	e7e5      	b.n	35940 <strtoul+0x28>
		c = *s++;
   35974:	7823      	ldrb	r3, [r4, #0]
   35976:	1c84      	adds	r4, r0, #2
	register int neg = 0, any, cutlim;
   35978:	f04f 0900 	mov.w	r9, #0
   3597c:	e7e0      	b.n	35940 <strtoul+0x28>
	    c == '0' && (*s == 'x' || *s == 'X')) {
   3597e:	7821      	ldrb	r1, [r4, #0]
   35980:	2978      	cmp	r1, #120	; 0x78
   35982:	d001      	beq.n	35988 <strtoul+0x70>
   35984:	2958      	cmp	r1, #88	; 0x58
   35986:	d1e0      	bne.n	3594a <strtoul+0x32>
		c = s[1];
   35988:	7863      	ldrb	r3, [r4, #1]
		s += 2;
   3598a:	3402      	adds	r4, #2
		base = 16;
   3598c:	2210      	movs	r2, #16
   3598e:	e7dc      	b.n	3594a <strtoul+0x32>
		base = c == '0' ? 8 : 10;
   35990:	2208      	movs	r2, #8
   35992:	e7de      	b.n	35952 <strtoul+0x3a>
	return (int)((((unsigned)c|32u)-(unsigned)'a') < 26U);
   35994:	f043 0a20 	orr.w	sl, r3, #32
   35998:	f1aa 0a61 	sub.w	sl, sl, #97	; 0x61
		if (isdigit(c)) {
			c -= '0';
		} else if (isalpha(c)) {
   3599c:	f1ba 0f19 	cmp.w	sl, #25
   359a0:	d825      	bhi.n	359ee <strtoul+0xd6>
	return (int)(((unsigned)(a)-(unsigned)'A') < 26U);
   359a2:	f1a3 0541 	sub.w	r5, r3, #65	; 0x41
			c -= isupper(c) ? 'A' - 10 : 'a' - 10;
   359a6:	2d19      	cmp	r5, #25
   359a8:	d802      	bhi.n	359b0 <strtoul+0x98>
   359aa:	2537      	movs	r5, #55	; 0x37
   359ac:	1b5b      	subs	r3, r3, r5
   359ae:	e010      	b.n	359d2 <strtoul+0xba>
   359b0:	2557      	movs	r5, #87	; 0x57
   359b2:	e7fb      	b.n	359ac <strtoul+0x94>
			break;
		}
		if (c >= base) {
			break;
		}
		if (any < 0 || acc > cutoff || (acc == cutoff && c > cutlim)) {
   359b4:	4563      	cmp	r3, ip
   359b6:	dd13      	ble.n	359e0 <strtoul+0xc8>
			any = -1;
   359b8:	f04f 36ff 	mov.w	r6, #4294967295
   359bc:	e001      	b.n	359c2 <strtoul+0xaa>
   359be:	f04f 36ff 	mov.w	r6, #4294967295
	for (acc = 0, any = 0;; c = *s++) {
   359c2:	f814 3b01 	ldrb.w	r3, [r4], #1
	return (int)(((unsigned)(a)-(unsigned)'0') < 10U);
   359c6:	f1a3 0a30 	sub.w	sl, r3, #48	; 0x30
		if (isdigit(c)) {
   359ca:	f1ba 0f09 	cmp.w	sl, #9
   359ce:	d8e1      	bhi.n	35994 <strtoul+0x7c>
			c -= '0';
   359d0:	4653      	mov	r3, sl
		if (c >= base) {
   359d2:	429a      	cmp	r2, r3
   359d4:	dd0b      	ble.n	359ee <strtoul+0xd6>
		if (any < 0 || acc > cutoff || (acc == cutoff && c > cutlim)) {
   359d6:	2e00      	cmp	r6, #0
   359d8:	dbf1      	blt.n	359be <strtoul+0xa6>
   359da:	4288      	cmp	r0, r1
   359dc:	d804      	bhi.n	359e8 <strtoul+0xd0>
   359de:	d0e9      	beq.n	359b4 <strtoul+0x9c>
		} else {
			any = 1;
			acc *= base;
			acc += c;
   359e0:	fb00 300e 	mla	r0, r0, lr, r3
			any = 1;
   359e4:	2601      	movs	r6, #1
   359e6:	e7ec      	b.n	359c2 <strtoul+0xaa>
			any = -1;
   359e8:	f04f 36ff 	mov.w	r6, #4294967295
   359ec:	e7e9      	b.n	359c2 <strtoul+0xaa>
		}
	}
	if (any < 0) {
   359ee:	2e00      	cmp	r6, #0
   359f0:	db0c      	blt.n	35a0c <strtoul+0xf4>
		acc = ULONG_MAX;
		errno = ERANGE;
	} else if (neg) {
   359f2:	f1b9 0f00 	cmp.w	r9, #0
   359f6:	d000      	beq.n	359fa <strtoul+0xe2>
		acc = -acc;
   359f8:	4240      	negs	r0, r0
	}
	if (endptr != NULL) {
   359fa:	f1b8 0f00 	cmp.w	r8, #0
   359fe:	d003      	beq.n	35a08 <strtoul+0xf0>
		*endptr = (char *)(any ? s - 1 : nptr);
   35a00:	b106      	cbz	r6, 35a04 <strtoul+0xec>
   35a02:	1e67      	subs	r7, r4, #1
   35a04:	f8c8 7000 	str.w	r7, [r8]
	}
	return acc;
}
   35a08:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
		/* coverity[OVERRUN] */
		return (int *) arch_syscall_invoke0(K_SYSCALL_Z_ERRNO);
	}
#endif
	compiler_barrier();
	return z_impl_z_errno();
   35a0c:	f7f9 fa08 	bl	2ee20 <z_impl_z_errno>
		errno = ERANGE;
   35a10:	2322      	movs	r3, #34	; 0x22
   35a12:	6003      	str	r3, [r0, #0]
		acc = ULONG_MAX;
   35a14:	f04f 30ff 	mov.w	r0, #4294967295
   35a18:	e7ef      	b.n	359fa <strtoul+0xe2>

00035a1a <strcpy>:

char *strcpy(char *_MLIBC_RESTRICT d, const char *_MLIBC_RESTRICT s)
{
	char *dest = d;

	while (*s != '\0') {
   35a1a:	4602      	mov	r2, r0
   35a1c:	780b      	ldrb	r3, [r1, #0]
   35a1e:	b11b      	cbz	r3, 35a28 <strcpy+0xe>
		*d = *s;
   35a20:	f802 3b01 	strb.w	r3, [r2], #1
		d++;
		s++;
   35a24:	3101      	adds	r1, #1
   35a26:	e7f9      	b.n	35a1c <strcpy+0x2>
	}

	*d = '\0';
   35a28:	7013      	strb	r3, [r2, #0]

	return dest;
}
   35a2a:	4770      	bx	lr

00035a2c <strncpy>:

char *strncpy(char *_MLIBC_RESTRICT d, const char *_MLIBC_RESTRICT s, size_t n)
{
	char *dest = d;

	while ((n > 0) && *s != '\0') {
   35a2c:	4603      	mov	r3, r0
   35a2e:	b1a2      	cbz	r2, 35a5a <strncpy+0x2e>
{
   35a30:	b410      	push	{r4}
	while ((n > 0) && *s != '\0') {
   35a32:	780c      	ldrb	r4, [r1, #0]
   35a34:	b12c      	cbz	r4, 35a42 <strncpy+0x16>
		*d = *s;
   35a36:	f803 4b01 	strb.w	r4, [r3], #1
		s++;
   35a3a:	3101      	adds	r1, #1
		d++;
		n--;
   35a3c:	3a01      	subs	r2, #1
	while ((n > 0) && *s != '\0') {
   35a3e:	2a00      	cmp	r2, #0
   35a40:	d1f7      	bne.n	35a32 <strncpy+0x6>
	}

	while (n > 0) {
   35a42:	b122      	cbz	r2, 35a4e <strncpy+0x22>
		*d = '\0';
   35a44:	2100      	movs	r1, #0
   35a46:	f803 1b01 	strb.w	r1, [r3], #1
		d++;
		n--;
   35a4a:	3a01      	subs	r2, #1
   35a4c:	e7f9      	b.n	35a42 <strncpy+0x16>
	}

	return dest;
}
   35a4e:	bc10      	pop	{r4}
   35a50:	4770      	bx	lr
		*d = '\0';
   35a52:	2100      	movs	r1, #0
   35a54:	f803 1b01 	strb.w	r1, [r3], #1
		n--;
   35a58:	3a01      	subs	r2, #1
	while (n > 0) {
   35a5a:	2a00      	cmp	r2, #0
   35a5c:	d1f9      	bne.n	35a52 <strncpy+0x26>
   35a5e:	4770      	bx	lr

00035a60 <strlen>:
 *
 * @return number of bytes in string <s>
 */

size_t strlen(const char *s)
{
   35a60:	4603      	mov	r3, r0
	size_t n = 0;
   35a62:	2000      	movs	r0, #0

	while (*s != '\0') {
   35a64:	781a      	ldrb	r2, [r3, #0]
   35a66:	b112      	cbz	r2, 35a6e <strlen+0xe>
		s++;
   35a68:	3301      	adds	r3, #1
		n++;
   35a6a:	3001      	adds	r0, #1
   35a6c:	e7fa      	b.n	35a64 <strlen+0x4>
	}

	return n;
}
   35a6e:	4770      	bx	lr

00035a70 <strnlen>:
 *
 * @return number of bytes in fixed-size string <s>
 */

size_t strnlen(const char *s, size_t maxlen)
{
   35a70:	4603      	mov	r3, r0
	size_t n = 0;
   35a72:	2000      	movs	r0, #0

	while (*s != '\0' && n < maxlen) {
   35a74:	781a      	ldrb	r2, [r3, #0]
   35a76:	b122      	cbz	r2, 35a82 <strnlen+0x12>
   35a78:	4288      	cmp	r0, r1
   35a7a:	d202      	bcs.n	35a82 <strnlen+0x12>
		s++;
   35a7c:	3301      	adds	r3, #1
		n++;
   35a7e:	3001      	adds	r0, #1
   35a80:	e7f8      	b.n	35a74 <strnlen+0x4>
	}

	return n;
}
   35a82:	4770      	bx	lr

00035a84 <strcmp>:
 * @return negative # if <s1> < <s2>, 0 if <s1> == <s2>, else positive #
 */

int strcmp(const char *s1, const char *s2)
{
	while ((*s1 == *s2) && (*s1 != '\0')) {
   35a84:	7803      	ldrb	r3, [r0, #0]
   35a86:	780a      	ldrb	r2, [r1, #0]
   35a88:	4293      	cmp	r3, r2
   35a8a:	d103      	bne.n	35a94 <strcmp+0x10>
   35a8c:	b113      	cbz	r3, 35a94 <strcmp+0x10>
		s1++;
   35a8e:	3001      	adds	r0, #1
		s2++;
   35a90:	3101      	adds	r1, #1
   35a92:	e7f7      	b.n	35a84 <strcmp>
	}

	return *s1 - *s2;
}
   35a94:	1a98      	subs	r0, r3, r2
   35a96:	4770      	bx	lr

00035a98 <strncmp>:
 * @return negative # if <s1> < <s2>, 0 if <s1> == <s2>, else positive #
 */

int strncmp(const char *s1, const char *s2, size_t n)
{
	while ((n > 0) && (*s1 == *s2) && (*s1 != '\0')) {
   35a98:	b192      	cbz	r2, 35ac0 <strncmp+0x28>
{
   35a9a:	b410      	push	{r4}
	while ((n > 0) && (*s1 == *s2) && (*s1 != '\0')) {
   35a9c:	7803      	ldrb	r3, [r0, #0]
   35a9e:	780c      	ldrb	r4, [r1, #0]
   35aa0:	42a3      	cmp	r3, r4
   35aa2:	d105      	bne.n	35ab0 <strncmp+0x18>
   35aa4:	b123      	cbz	r3, 35ab0 <strncmp+0x18>
		s1++;
   35aa6:	3001      	adds	r0, #1
		s2++;
   35aa8:	3101      	adds	r1, #1
		n--;
   35aaa:	3a01      	subs	r2, #1
	while ((n > 0) && (*s1 == *s2) && (*s1 != '\0')) {
   35aac:	2a00      	cmp	r2, #0
   35aae:	d1f5      	bne.n	35a9c <strncmp+0x4>
	}

	return (n == 0) ? 0 : (*s1 - *s2);
   35ab0:	b122      	cbz	r2, 35abc <strncmp+0x24>
   35ab2:	7800      	ldrb	r0, [r0, #0]
   35ab4:	780b      	ldrb	r3, [r1, #0]
   35ab6:	1ac0      	subs	r0, r0, r3
}
   35ab8:	bc10      	pop	{r4}
   35aba:	4770      	bx	lr
	return (n == 0) ? 0 : (*s1 - *s2);
   35abc:	2000      	movs	r0, #0
   35abe:	e7fb      	b.n	35ab8 <strncmp+0x20>
   35ac0:	b11a      	cbz	r2, 35aca <strncmp+0x32>
   35ac2:	7800      	ldrb	r0, [r0, #0]
   35ac4:	780b      	ldrb	r3, [r1, #0]
   35ac6:	1ac0      	subs	r0, r0, r3
   35ac8:	4770      	bx	lr
   35aca:	2000      	movs	r0, #0
}
   35acc:	4770      	bx	lr

00035ace <memcmp>:
int memcmp(const void *m1, const void *m2, size_t n)
{
	const char *c1 = m1;
	const char *c2 = m2;

	if (!n) {
   35ace:	b17a      	cbz	r2, 35af0 <memcmp+0x22>
		return 0;
	}

	while ((--n > 0) && (*c1 == *c2)) {
   35ad0:	1e53      	subs	r3, r2, #1
   35ad2:	d00f      	beq.n	35af4 <memcmp+0x26>
{
   35ad4:	b410      	push	{r4}
	while ((--n > 0) && (*c1 == *c2)) {
   35ad6:	7804      	ldrb	r4, [r0, #0]
   35ad8:	780a      	ldrb	r2, [r1, #0]
   35ada:	4294      	cmp	r4, r2
   35adc:	d103      	bne.n	35ae6 <memcmp+0x18>
		c1++;
   35ade:	3001      	adds	r0, #1
		c2++;
   35ae0:	3101      	adds	r1, #1
	while ((--n > 0) && (*c1 == *c2)) {
   35ae2:	3b01      	subs	r3, #1
   35ae4:	d1f7      	bne.n	35ad6 <memcmp+0x8>
	}

	return *c1 - *c2;
   35ae6:	7800      	ldrb	r0, [r0, #0]
   35ae8:	780b      	ldrb	r3, [r1, #0]
   35aea:	1ac0      	subs	r0, r0, r3
}
   35aec:	bc10      	pop	{r4}
   35aee:	4770      	bx	lr
		return 0;
   35af0:	2000      	movs	r0, #0
   35af2:	4770      	bx	lr
	return *c1 - *c2;
   35af4:	7800      	ldrb	r0, [r0, #0]
   35af6:	780b      	ldrb	r3, [r1, #0]
   35af8:	1ac0      	subs	r0, r0, r3
}
   35afa:	4770      	bx	lr

00035afc <memcpy>:
 *
 * @return pointer to start of destination buffer
 */

void *memcpy(void *_MLIBC_RESTRICT d, const void *_MLIBC_RESTRICT s, size_t n)
{
   35afc:	b410      	push	{r4}
	const unsigned char *s_byte = (const unsigned char *)s;

#if !defined(CONFIG_MINIMAL_LIBC_OPTIMIZE_STRING_FOR_SIZE)
	const uintptr_t mask = sizeof(mem_word_t) - 1;

	if ((((uintptr_t)d ^ (uintptr_t)s_byte) & mask) == 0) {
   35afe:	ea80 0301 	eor.w	r3, r0, r1
   35b02:	f013 0f03 	tst.w	r3, #3
   35b06:	d001      	beq.n	35b0c <memcpy+0x10>
	unsigned char *d_byte = (unsigned char *)d;
   35b08:	4603      	mov	r3, r0
   35b0a:	e017      	b.n	35b3c <memcpy+0x40>
   35b0c:	4603      	mov	r3, r0

		/* do byte-sized copying until word-aligned or finished */

		while (((uintptr_t)d_byte) & mask) {
   35b0e:	f013 0f03 	tst.w	r3, #3
   35b12:	d00b      	beq.n	35b2c <memcpy+0x30>
			if (n == 0) {
   35b14:	b1a2      	cbz	r2, 35b40 <memcpy+0x44>
				return d;
			}
			*(d_byte++) = *(s_byte++);
   35b16:	f811 4b01 	ldrb.w	r4, [r1], #1
   35b1a:	f803 4b01 	strb.w	r4, [r3], #1
			n--;
   35b1e:	3a01      	subs	r2, #1
   35b20:	e7f5      	b.n	35b0e <memcpy+0x12>

		mem_word_t *d_word = (mem_word_t *)d_byte;
		const mem_word_t *s_word = (const mem_word_t *)s_byte;

		while (n >= sizeof(mem_word_t)) {
			*(d_word++) = *(s_word++);
   35b22:	f851 4b04 	ldr.w	r4, [r1], #4
   35b26:	f843 4b04 	str.w	r4, [r3], #4
			n -= sizeof(mem_word_t);
   35b2a:	3a04      	subs	r2, #4
		while (n >= sizeof(mem_word_t)) {
   35b2c:	2a03      	cmp	r2, #3
   35b2e:	d8f8      	bhi.n	35b22 <memcpy+0x26>
   35b30:	e004      	b.n	35b3c <memcpy+0x40>
#endif

	/* do byte-sized copying until finished */

	while (n > 0) {
		*(d_byte++) = *(s_byte++);
   35b32:	f811 4b01 	ldrb.w	r4, [r1], #1
   35b36:	f803 4b01 	strb.w	r4, [r3], #1
		n--;
   35b3a:	3a01      	subs	r2, #1
	while (n > 0) {
   35b3c:	2a00      	cmp	r2, #0
   35b3e:	d1f8      	bne.n	35b32 <memcpy+0x36>
	}

	return d;
}
   35b40:	bc10      	pop	{r4}
   35b42:	4770      	bx	lr

00035b44 <memset>:
 *
 * @return pointer to start of buffer
 */

void *memset(void *buf, int c, size_t n)
{
   35b44:	b410      	push	{r4}
	/* do byte-sized initialization until word-aligned or finished */

	unsigned char *d_byte = (unsigned char *)buf;
	unsigned char c_byte = (unsigned char)c;
   35b46:	b2cc      	uxtb	r4, r1
	unsigned char *d_byte = (unsigned char *)buf;
   35b48:	4603      	mov	r3, r0

#if !defined(CONFIG_MINIMAL_LIBC_OPTIMIZE_STRING_FOR_SIZE)
	while (((uintptr_t)d_byte) & (sizeof(mem_word_t) - 1)) {
   35b4a:	f013 0f03 	tst.w	r3, #3
   35b4e:	d004      	beq.n	35b5a <memset+0x16>
		if (n == 0) {
   35b50:	b19a      	cbz	r2, 35b7a <memset+0x36>
			return buf;
		}
		*(d_byte++) = c_byte;
   35b52:	f803 4b01 	strb.w	r4, [r3], #1
		n--;
   35b56:	3a01      	subs	r2, #1
   35b58:	e7f7      	b.n	35b4a <memset+0x6>
	}

	/* do word-sized initialization as long as possible */

	mem_word_t *d_word = (mem_word_t *)d_byte;
	mem_word_t c_word = (mem_word_t)c_byte;
   35b5a:	b2c9      	uxtb	r1, r1

	c_word |= c_word << 8;
   35b5c:	ea41 2101 	orr.w	r1, r1, r1, lsl #8
	c_word |= c_word << 16;
   35b60:	ea41 4101 	orr.w	r1, r1, r1, lsl #16
#if Z_MEM_WORD_T_WIDTH > 32
	c_word |= c_word << 32;
#endif

	while (n >= sizeof(mem_word_t)) {
   35b64:	2a03      	cmp	r2, #3
   35b66:	d906      	bls.n	35b76 <memset+0x32>
		*(d_word++) = c_word;
   35b68:	f843 1b04 	str.w	r1, [r3], #4
		n -= sizeof(mem_word_t);
   35b6c:	3a04      	subs	r2, #4
   35b6e:	e7f9      	b.n	35b64 <memset+0x20>

	d_byte = (unsigned char *)d_word;
#endif

	while (n > 0) {
		*(d_byte++) = c_byte;
   35b70:	f803 4b01 	strb.w	r4, [r3], #1
		n--;
   35b74:	3a01      	subs	r2, #1
	while (n > 0) {
   35b76:	2a00      	cmp	r2, #0
   35b78:	d1fa      	bne.n	35b70 <memset+0x2c>
	}

	return buf;
}
   35b7a:	bc10      	pop	{r4}
   35b7c:	4770      	bx	lr

00035b7e <_stdout_hook_default>:
}
   35b7e:	f04f 30ff 	mov.w	r0, #4294967295
   35b82:	4770      	bx	lr

00035b84 <pm_power_state_set>:
#include <logging/log.h>
LOG_MODULE_DECLARE(soc, CONFIG_SOC_LOG_LEVEL);

/* Invoke Low Power/System Off specific Tasks */
__weak void pm_power_state_set(struct pm_state_info info)
{
   35b84:	b084      	sub	sp, #16
   35b86:	ab04      	add	r3, sp, #16
   35b88:	e903 0007 	stmdb	r3, {r0, r1, r2}
	switch (info.state) {
   35b8c:	f89d 3004 	ldrb.w	r3, [sp, #4]
   35b90:	2b06      	cmp	r3, #6
   35b92:	d001      	beq.n	35b98 <pm_power_state_set+0x14>
		break;
	default:
		LOG_DBG("Unsupported power state %u", info.state);
		break;
	}
}
   35b94:	b004      	add	sp, #16
   35b96:	4770      	bx	lr
    p_reg->SYSTEMOFF = POWER_SYSTEMOFF_SYSTEMOFF_Enter;
   35b98:	f04f 4380 	mov.w	r3, #1073741824	; 0x40000000
   35b9c:	2201      	movs	r2, #1
   35b9e:	f8c3 2500 	str.w	r2, [r3, #1280]	; 0x500
  __ASM volatile ("dsb 0xF":::"memory");
   35ba2:	f3bf 8f4f 	dsb	sy
        __WFE();
   35ba6:	bf20      	wfe
    while (true)
   35ba8:	e7fd      	b.n	35ba6 <pm_power_state_set+0x22>

00035baa <pm_power_state_exit_post_ops>:

/* Handle SOC specific activity after Low Power Mode Exit */
__weak void pm_power_state_exit_post_ops(struct pm_state_info info)
{
   35baa:	b084      	sub	sp, #16
   35bac:	ab04      	add	r3, sp, #16
   35bae:	e903 0007 	stmdb	r3, {r0, r1, r2}
   35bb2:	2300      	movs	r3, #0
   35bb4:	f383 8811 	msr	BASEPRI, r3
   35bb8:	f3bf 8f6f 	isb	sy
	/*
	 * System is now in active mode. Reenable interrupts which were disabled
	 * when OS started idling code.
	 */
	irq_unlock(0);
}
   35bbc:	b004      	add	sp, #16
   35bbe:	4770      	bx	lr

00035bc0 <internal_encrypt_le>:
}
#endif /* defined(CONFIG_BT_PRIVACY) || defined(CONFIG_BT_CTLR_PRIVACY) */

static int internal_encrypt_le(const uint8_t key[16], const uint8_t plaintext[16],
			       uint8_t enc_data[16])
{
   35bc0:	b508      	push	{r3, lr}
#if defined(CONFIG_BT_CTLR) && defined(CONFIG_BT_HOST_CRYPTO) && \
    defined(CONFIG_BT_CTLR_LE_ENC)
	ecb_encrypt(key, plaintext, enc_data, NULL);
	return 0;
#else
	return bt_encrypt_le(key, plaintext, enc_data);
   35bc2:	f7f6 fc89 	bl	2c4d8 <bt_encrypt_le>
#endif
}
   35bc6:	bd08      	pop	{r3, pc}

00035bc8 <ah>:

static int ah(const uint8_t irk[16], const uint8_t r[3], uint8_t out[3])
{
   35bc8:	b530      	push	{r4, r5, lr}
   35bca:	b085      	sub	sp, #20
   35bcc:	4604      	mov	r4, r0
   35bce:	4615      	mov	r5, r2

	BT_DBG("irk %s", bt_hex(irk, 16));
	BT_DBG("r %s", bt_hex(r, 3));

	/* r' = padding || r */
	memcpy(res, r, 3);
   35bd0:	2203      	movs	r2, #3
   35bd2:	4668      	mov	r0, sp
   35bd4:	f7ff ff92 	bl	35afc <memcpy>
	(void)memset(res + 3, 0, 13);
   35bd8:	220d      	movs	r2, #13
   35bda:	2100      	movs	r1, #0
   35bdc:	f10d 0003 	add.w	r0, sp, #3
   35be0:	f7ff ffb0 	bl	35b44 <memset>

	err = internal_encrypt_le(irk, res, res);
   35be4:	466a      	mov	r2, sp
   35be6:	4669      	mov	r1, sp
   35be8:	4620      	mov	r0, r4
   35bea:	f7ff ffe9 	bl	35bc0 <internal_encrypt_le>
	if (err) {
   35bee:	4604      	mov	r4, r0
   35bf0:	b110      	cbz	r0, 35bf8 <ah+0x30>
	 * result of ah.
	 */
	memcpy(out, res, 3);

	return 0;
}
   35bf2:	4620      	mov	r0, r4
   35bf4:	b005      	add	sp, #20
   35bf6:	bd30      	pop	{r4, r5, pc}
	memcpy(out, res, 3);
   35bf8:	2203      	movs	r2, #3
   35bfa:	4669      	mov	r1, sp
   35bfc:	4628      	mov	r0, r5
   35bfe:	f7ff ff7d 	bl	35afc <memcpy>
	return 0;
   35c02:	e7f6      	b.n	35bf2 <ah+0x2a>

00035c04 <bt_rpa_irk_matches>:

#if defined(CONFIG_BT_SMP) || defined(CONFIG_BT_CTLR_PRIVACY)
bool bt_rpa_irk_matches(const uint8_t irk[16], const bt_addr_t *addr)
{
   35c04:	b510      	push	{r4, lr}
   35c06:	b082      	sub	sp, #8
   35c08:	460c      	mov	r4, r1
	uint8_t hash[3];
	int err;

	BT_DBG("IRK %s bdaddr %s", bt_hex(irk, 16), bt_addr_str(addr));

	err = ah(irk, addr->val + 3, hash);
   35c0a:	aa01      	add	r2, sp, #4
   35c0c:	3103      	adds	r1, #3
   35c0e:	f7ff ffdb 	bl	35bc8 <ah>
	if (err) {
   35c12:	b110      	cbz	r0, 35c1a <bt_rpa_irk_matches+0x16>
		return false;
   35c14:	2000      	movs	r0, #0
	}

	return !memcmp(addr->val, hash, 3);
}
   35c16:	b002      	add	sp, #8
   35c18:	bd10      	pop	{r4, pc}
	return !memcmp(addr->val, hash, 3);
   35c1a:	2203      	movs	r2, #3
   35c1c:	a901      	add	r1, sp, #4
   35c1e:	4620      	mov	r0, r4
   35c20:	f7ff ff55 	bl	35ace <memcmp>
   35c24:	fab0 f080 	clz	r0, r0
   35c28:	0940      	lsrs	r0, r0, #5
   35c2a:	e7f4      	b.n	35c16 <bt_rpa_irk_matches+0x12>

00035c2c <clear_ecc_events>:
	cmd = (void *)(buf->data + sizeof(struct bt_hci_cmd_hdr));
   35c2c:	6883      	ldr	r3, [r0, #8]
	cmd->events[0] &= ~0x80; /* LE Read Local P-256 PKey Compl */
   35c2e:	78da      	ldrb	r2, [r3, #3]
   35c30:	f002 027f 	and.w	r2, r2, #127	; 0x7f
   35c34:	70da      	strb	r2, [r3, #3]
	cmd->events[1] &= ~0x01; /* LE Generate DHKey Compl Event */
   35c36:	791a      	ldrb	r2, [r3, #4]
   35c38:	f022 0201 	bic.w	r2, r2, #1
   35c3c:	711a      	strb	r2, [r3, #4]
}
   35c3e:	4770      	bx	lr

00035c40 <send_cmd_status>:
{
   35c40:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   35c44:	4606      	mov	r6, r0
   35c46:	460d      	mov	r5, r1
	buf = bt_buf_get_evt(BT_HCI_EVT_CMD_STATUS, false, K_FOREVER);
   35c48:	f04f 32ff 	mov.w	r2, #4294967295
   35c4c:	f04f 33ff 	mov.w	r3, #4294967295
   35c50:	2100      	movs	r1, #0
   35c52:	200f      	movs	r0, #15
   35c54:	f7ea fe2c 	bl	208b0 <bt_buf_get_evt>
   35c58:	4604      	mov	r4, r0
	((struct bt_buf_data *)net_buf_user_data(buf))->type = type;
   35c5a:	2701      	movs	r7, #1
   35c5c:	7507      	strb	r7, [r0, #20]
	return net_buf_simple_add(&buf->b, len);
   35c5e:	f100 0808 	add.w	r8, r0, #8
   35c62:	2102      	movs	r1, #2
   35c64:	4640      	mov	r0, r8
   35c66:	f7f3 fe93 	bl	29990 <net_buf_simple_add>
	hdr->evt = BT_HCI_EVT_CMD_STATUS;
   35c6a:	230f      	movs	r3, #15
   35c6c:	7003      	strb	r3, [r0, #0]
	hdr->len = sizeof(*evt);
   35c6e:	2104      	movs	r1, #4
   35c70:	7041      	strb	r1, [r0, #1]
   35c72:	4640      	mov	r0, r8
   35c74:	f7f3 fe8c 	bl	29990 <net_buf_simple_add>
	evt->ncmd = 1U;
   35c78:	7047      	strb	r7, [r0, #1]
	evt->opcode = sys_cpu_to_le16(opcode);
   35c7a:	8046      	strh	r6, [r0, #2]
	evt->status = status;
   35c7c:	7005      	strb	r5, [r0, #0]
		bt_recv(buf);
   35c7e:	4620      	mov	r0, r4
   35c80:	f7ec f9ba 	bl	21ff8 <bt_recv>
}
   35c84:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}

00035c88 <le_gen_dhkey_v1>:
{
   35c88:	b538      	push	{r3, r4, r5, lr}
   35c8a:	4604      	mov	r4, r0
	status = le_gen_dhkey(cmd->key, BT_HCI_LE_KEY_TYPE_GENERATED);
   35c8c:	2100      	movs	r1, #0
   35c8e:	6880      	ldr	r0, [r0, #8]
   35c90:	f7ea fb7c 	bl	2038c <le_gen_dhkey>
   35c94:	4605      	mov	r5, r0
	net_buf_unref(buf);
   35c96:	4620      	mov	r0, r4
   35c98:	f7f3 fd62 	bl	29760 <net_buf_unref>
	send_cmd_status(BT_HCI_OP_LE_GENERATE_DHKEY, status);
   35c9c:	4629      	mov	r1, r5
   35c9e:	f242 0026 	movw	r0, #8230	; 0x2026
   35ca2:	f7ff ffcd 	bl	35c40 <send_cmd_status>
}
   35ca6:	bd38      	pop	{r3, r4, r5, pc}

00035ca8 <le_gen_dhkey_v2>:
{
   35ca8:	b538      	push	{r3, r4, r5, lr}
   35caa:	4604      	mov	r4, r0
	cmd = (void *)buf->data;
   35cac:	6880      	ldr	r0, [r0, #8]
	status = le_gen_dhkey(cmd->key, cmd->key_type);
   35cae:	f890 1040 	ldrb.w	r1, [r0, #64]	; 0x40
   35cb2:	f7ea fb6b 	bl	2038c <le_gen_dhkey>
   35cb6:	4605      	mov	r5, r0
	net_buf_unref(buf);
   35cb8:	4620      	mov	r0, r4
   35cba:	f7f3 fd51 	bl	29760 <net_buf_unref>
	send_cmd_status(BT_HCI_OP_LE_GENERATE_DHKEY_V2, status);
   35cbe:	4629      	mov	r1, r5
   35cc0:	f242 005e 	movw	r0, #8286	; 0x205e
   35cc4:	f7ff ffbc 	bl	35c40 <send_cmd_status>
}
   35cc8:	bd38      	pop	{r3, r4, r5, pc}

00035cca <bt_hci_ecc_supported_commands>:
	supported_commands[34] |= BIT(1);
   35cca:	f890 3022 	ldrb.w	r3, [r0, #34]	; 0x22
	supported_commands[34] |= BIT(2);
   35cce:	f043 0306 	orr.w	r3, r3, #6
   35cd2:	f880 3022 	strb.w	r3, [r0, #34]	; 0x22
	supported_commands[41] |= BIT(2);
   35cd6:	f890 3029 	ldrb.w	r3, [r0, #41]	; 0x29
   35cda:	f043 0304 	orr.w	r3, r3, #4
   35cde:	f880 3029 	strb.w	r3, [r0, #41]	; 0x29
}
   35ce2:	4770      	bx	lr

00035ce4 <default_CSPRNG>:
{
   35ce4:	b508      	push	{r3, lr}
	return !bt_rand(dst, len);
   35ce6:	f7f6 fbc5 	bl	2c474 <bt_rand>
}
   35cea:	fab0 f080 	clz	r0, r0
   35cee:	0940      	lsrs	r0, r0, #5
   35cf0:	bd08      	pop	{r3, pc}

00035cf2 <bt_settings_decode_key>:
{
   35cf2:	b570      	push	{r4, r5, r6, lr}
   35cf4:	4605      	mov	r5, r0
   35cf6:	460e      	mov	r6, r1
	if (settings_name_next(key, NULL) != 13) {
   35cf8:	2100      	movs	r1, #0
   35cfa:	f7fe fc14 	bl	34526 <settings_name_next>
   35cfe:	280d      	cmp	r0, #13
   35d00:	d11b      	bne.n	35d3a <bt_settings_decode_key+0x48>
	if (key[12] == '0') {
   35d02:	7b2b      	ldrb	r3, [r5, #12]
   35d04:	2b30      	cmp	r3, #48	; 0x30
   35d06:	d013      	beq.n	35d30 <bt_settings_decode_key+0x3e>
	} else if (key[12] == '1') {
   35d08:	2b31      	cmp	r3, #49	; 0x31
   35d0a:	d119      	bne.n	35d40 <bt_settings_decode_key+0x4e>
		addr->type = BT_ADDR_LE_RANDOM;
   35d0c:	2301      	movs	r3, #1
   35d0e:	7033      	strb	r3, [r6, #0]
{
   35d10:	2400      	movs	r4, #0
	for (uint8_t i = 0; i < 6; i++) {
   35d12:	2c05      	cmp	r4, #5
   35d14:	d80f      	bhi.n	35d36 <bt_settings_decode_key+0x44>
		hex2bin(&key[i * 2], 2, &addr->a.val[5 - i], 1);
   35d16:	f1c4 0205 	rsb	r2, r4, #5
   35d1a:	4432      	add	r2, r6
   35d1c:	2301      	movs	r3, #1
   35d1e:	441a      	add	r2, r3
   35d20:	2102      	movs	r1, #2
   35d22:	eb05 0044 	add.w	r0, r5, r4, lsl #1
   35d26:	f7fd fabe 	bl	332a6 <hex2bin>
	for (uint8_t i = 0; i < 6; i++) {
   35d2a:	3401      	adds	r4, #1
   35d2c:	b2e4      	uxtb	r4, r4
   35d2e:	e7f0      	b.n	35d12 <bt_settings_decode_key+0x20>
		addr->type = BT_ADDR_LE_PUBLIC;
   35d30:	2300      	movs	r3, #0
   35d32:	7033      	strb	r3, [r6, #0]
   35d34:	e7ec      	b.n	35d10 <bt_settings_decode_key+0x1e>
	return 0;
   35d36:	2000      	movs	r0, #0
}
   35d38:	bd70      	pop	{r4, r5, r6, pc}
		return -EINVAL;
   35d3a:	f06f 0015 	mvn.w	r0, #21
   35d3e:	e7fb      	b.n	35d38 <bt_settings_decode_key+0x46>
		return -EINVAL;
   35d40:	f06f 0015 	mvn.w	r0, #21
   35d44:	e7f8      	b.n	35d38 <bt_settings_decode_key+0x46>

00035d46 <uuid128_cmp>:

static int uuid128_cmp(const struct bt_uuid *u1, const struct bt_uuid *u2)
{
   35d46:	b510      	push	{r4, lr}
   35d48:	b08a      	sub	sp, #40	; 0x28
   35d4a:	460c      	mov	r4, r1
	struct bt_uuid_128 uuid1, uuid2;

	uuid_to_uuid128(u1, &uuid1);
   35d4c:	a905      	add	r1, sp, #20
   35d4e:	f7ea fd39 	bl	207c4 <uuid_to_uuid128>
	uuid_to_uuid128(u2, &uuid2);
   35d52:	4669      	mov	r1, sp
   35d54:	4620      	mov	r0, r4
   35d56:	f7ea fd35 	bl	207c4 <uuid_to_uuid128>

	return memcmp(uuid1.val, uuid2.val, 16);
   35d5a:	2210      	movs	r2, #16
   35d5c:	f10d 0101 	add.w	r1, sp, #1
   35d60:	f10d 0015 	add.w	r0, sp, #21
   35d64:	f7ff feb3 	bl	35ace <memcmp>
}
   35d68:	b00a      	add	sp, #40	; 0x28
   35d6a:	bd10      	pop	{r4, pc}

00035d6c <bt_uuid_cmp>:

int bt_uuid_cmp(const struct bt_uuid *u1, const struct bt_uuid *u2)
{
   35d6c:	b508      	push	{r3, lr}
	/* Convert to 128 bit if types don't match */
	if (u1->type != u2->type) {
   35d6e:	7803      	ldrb	r3, [r0, #0]
   35d70:	780a      	ldrb	r2, [r1, #0]
   35d72:	4293      	cmp	r3, r2
   35d74:	d107      	bne.n	35d86 <bt_uuid_cmp+0x1a>
		return uuid128_cmp(u1, u2);
	}

	switch (u1->type) {
   35d76:	2b01      	cmp	r3, #1
   35d78:	d00c      	beq.n	35d94 <bt_uuid_cmp+0x28>
   35d7a:	2b02      	cmp	r3, #2
   35d7c:	d00e      	beq.n	35d9c <bt_uuid_cmp+0x30>
   35d7e:	b12b      	cbz	r3, 35d8c <bt_uuid_cmp+0x20>
   35d80:	f06f 0015 	mvn.w	r0, #21
	case BT_UUID_TYPE_128:
		return memcmp(BT_UUID_128(u1)->val, BT_UUID_128(u2)->val, 16);
	}

	return -EINVAL;
}
   35d84:	bd08      	pop	{r3, pc}
		return uuid128_cmp(u1, u2);
   35d86:	f7ff ffde 	bl	35d46 <uuid128_cmp>
   35d8a:	e7fb      	b.n	35d84 <bt_uuid_cmp+0x18>
		return (int)BT_UUID_16(u1)->val - (int)BT_UUID_16(u2)->val;
   35d8c:	8840      	ldrh	r0, [r0, #2]
   35d8e:	884b      	ldrh	r3, [r1, #2]
   35d90:	1ac0      	subs	r0, r0, r3
   35d92:	e7f7      	b.n	35d84 <bt_uuid_cmp+0x18>
		return (int)BT_UUID_32(u1)->val - (int)BT_UUID_32(u2)->val;
   35d94:	6840      	ldr	r0, [r0, #4]
   35d96:	684b      	ldr	r3, [r1, #4]
   35d98:	1ac0      	subs	r0, r0, r3
   35d9a:	e7f3      	b.n	35d84 <bt_uuid_cmp+0x18>
		return memcmp(BT_UUID_128(u1)->val, BT_UUID_128(u2)->val, 16);
   35d9c:	2210      	movs	r2, #16
   35d9e:	3101      	adds	r1, #1
   35da0:	3001      	adds	r0, #1
   35da2:	f7ff fe94 	bl	35ace <memcmp>
   35da6:	e7ed      	b.n	35d84 <bt_uuid_cmp+0x18>

00035da8 <bt_uuid_create>:

bool bt_uuid_create(struct bt_uuid *uuid, const uint8_t *data, uint8_t data_len)
{
   35da8:	b538      	push	{r3, r4, r5, lr}
	/* Copy UUID from packet data/internal variable to internal bt_uuid */
	switch (data_len) {
   35daa:	2a04      	cmp	r2, #4
   35dac:	d00e      	beq.n	35dcc <bt_uuid_create+0x24>
   35dae:	2a10      	cmp	r2, #16
   35db0:	d01b      	beq.n	35dea <bt_uuid_create+0x42>
   35db2:	2a02      	cmp	r2, #2
   35db4:	d001      	beq.n	35dba <bt_uuid_create+0x12>
   35db6:	2000      	movs	r0, #0
		break;
	default:
		return false;
	}
	return true;
}
   35db8:	bd38      	pop	{r3, r4, r5, pc}
		uuid->type = BT_UUID_TYPE_16;
   35dba:	2300      	movs	r3, #0
   35dbc:	7003      	strb	r3, [r0, #0]
	return ((uint16_t)src[1] << 8) | src[0];
   35dbe:	784a      	ldrb	r2, [r1, #1]
   35dc0:	780b      	ldrb	r3, [r1, #0]
   35dc2:	ea43 2302 	orr.w	r3, r3, r2, lsl #8
		BT_UUID_16(uuid)->val = sys_get_le16(data);
   35dc6:	8043      	strh	r3, [r0, #2]
	return true;
   35dc8:	2001      	movs	r0, #1
		break;
   35dca:	e7f5      	b.n	35db8 <bt_uuid_create+0x10>
		uuid->type = BT_UUID_TYPE_32;
   35dcc:	2301      	movs	r3, #1
   35dce:	7003      	strb	r3, [r0, #0]
   35dd0:	78cc      	ldrb	r4, [r1, #3]
   35dd2:	788a      	ldrb	r2, [r1, #2]
   35dd4:	ea42 2404 	orr.w	r4, r2, r4, lsl #8
   35dd8:	784d      	ldrb	r5, [r1, #1]
   35dda:	780a      	ldrb	r2, [r1, #0]
   35ddc:	ea42 2205 	orr.w	r2, r2, r5, lsl #8
	return ((uint32_t)sys_get_le16(&src[2]) << 16) | sys_get_le16(&src[0]);
   35de0:	ea42 4204 	orr.w	r2, r2, r4, lsl #16
		BT_UUID_32(uuid)->val = sys_get_le32(data);
   35de4:	6042      	str	r2, [r0, #4]
	return true;
   35de6:	4618      	mov	r0, r3
		break;
   35de8:	e7e6      	b.n	35db8 <bt_uuid_create+0x10>
		uuid->type = BT_UUID_TYPE_128;
   35dea:	2302      	movs	r3, #2
   35dec:	f800 3b01 	strb.w	r3, [r0], #1
		memcpy(&BT_UUID_128(uuid)->val, data, 16);
   35df0:	2210      	movs	r2, #16
   35df2:	f7ff fe83 	bl	35afc <memcpy>
	return true;
   35df6:	2001      	movs	r0, #1
		break;
   35df8:	e7de      	b.n	35db8 <bt_uuid_create+0x10>

00035dfa <bt_addr_le_create_static>:

	return 0;
}

int bt_addr_le_create_static(bt_addr_le_t *addr)
{
   35dfa:	b510      	push	{r4, lr}
   35dfc:	4604      	mov	r4, r0
	addr->type = BT_ADDR_LE_RANDOM;
   35dfe:	2301      	movs	r3, #1
   35e00:	f800 3b01 	strb.w	r3, [r0], #1
	return bt_rand(addr->a.val, 6);
   35e04:	2106      	movs	r1, #6
   35e06:	f7f6 fb35 	bl	2c474 <bt_rand>
	int err;

	err = create_random_addr(addr);
	if (err) {
   35e0a:	b918      	cbnz	r0, 35e14 <bt_addr_le_create_static+0x1a>
		return err;
	}

	BT_ADDR_SET_STATIC(&addr->a);
   35e0c:	79a3      	ldrb	r3, [r4, #6]
   35e0e:	f063 033f 	orn	r3, r3, #63	; 0x3f
   35e12:	71a3      	strb	r3, [r4, #6]

	return 0;
}
   35e14:	bd10      	pop	{r4, pc}

00035e16 <update_sec_level>:
	if (conn->le.keys && (conn->le.keys->flags & BT_KEYS_AUTHENTICATED)) {
   35e16:	f8d0 30bc 	ldr.w	r3, [r0, #188]	; 0xbc
   35e1a:	b17b      	cbz	r3, 35e3c <update_sec_level+0x26>
   35e1c:	7b5a      	ldrb	r2, [r3, #13]
   35e1e:	f012 0f01 	tst.w	r2, #1
   35e22:	d00b      	beq.n	35e3c <update_sec_level+0x26>
		if (conn->le.keys->flags & BT_KEYS_SC &&
   35e24:	f012 0f10 	tst.w	r2, #16
   35e28:	d002      	beq.n	35e30 <update_sec_level+0x1a>
		    conn->le.keys->enc_size == BT_SMP_MAX_ENC_KEY_SIZE) {
   35e2a:	7b1b      	ldrb	r3, [r3, #12]
		if (conn->le.keys->flags & BT_KEYS_SC &&
   35e2c:	2b10      	cmp	r3, #16
   35e2e:	d002      	beq.n	35e36 <update_sec_level+0x20>
			conn->sec_level = BT_SECURITY_L3;
   35e30:	2303      	movs	r3, #3
   35e32:	7243      	strb	r3, [r0, #9]
   35e34:	e004      	b.n	35e40 <update_sec_level+0x2a>
			conn->sec_level = BT_SECURITY_L4;
   35e36:	2304      	movs	r3, #4
   35e38:	7243      	strb	r3, [r0, #9]
   35e3a:	e001      	b.n	35e40 <update_sec_level+0x2a>
		conn->sec_level = BT_SECURITY_L2;
   35e3c:	2302      	movs	r3, #2
   35e3e:	7243      	strb	r3, [r0, #9]
	return !(conn->required_sec_level > conn->sec_level);
   35e40:	7a82      	ldrb	r2, [r0, #10]
   35e42:	7a40      	ldrb	r0, [r0, #9]
}
   35e44:	4282      	cmp	r2, r0
   35e46:	bf8c      	ite	hi
   35e48:	2000      	movhi	r0, #0
   35e4a:	2001      	movls	r0, #1
   35e4c:	4770      	bx	lr

00035e4e <hci_disconn_complete_prio>:
{
   35e4e:	b538      	push	{r3, r4, r5, lr}
	struct bt_hci_evt_disconn_complete *evt = (void *)buf->data;
   35e50:	6883      	ldr	r3, [r0, #8]
	uint16_t handle = sys_le16_to_cpu(evt->handle);
   35e52:	f8b3 4001 	ldrh.w	r4, [r3, #1]
	if (evt->status) {
   35e56:	781b      	ldrb	r3, [r3, #0]
   35e58:	b103      	cbz	r3, 35e5c <hci_disconn_complete_prio+0xe>
}
   35e5a:	bd38      	pop	{r3, r4, r5, pc}
	conn = bt_conn_lookup_handle(handle);
   35e5c:	4620      	mov	r0, r4
   35e5e:	f7ed fcdf 	bl	23820 <bt_conn_lookup_handle>
	if (!conn) {
   35e62:	4605      	mov	r5, r0
   35e64:	b130      	cbz	r0, 35e74 <hci_disconn_complete_prio+0x26>
	bt_conn_set_state(conn, BT_CONN_DISCONNECT_COMPLETE);
   35e66:	2101      	movs	r1, #1
   35e68:	f7ed fce4 	bl	23834 <bt_conn_set_state>
	bt_conn_unref(conn);
   35e6c:	4628      	mov	r0, r5
   35e6e:	f7ed fca5 	bl	237bc <bt_conn_unref>
   35e72:	e7f2      	b.n	35e5a <hci_disconn_complete_prio+0xc>
		conn_handle_disconnected(handle);
   35e74:	4620      	mov	r0, r4
   35e76:	f7ea fd4d 	bl	20914 <conn_handle_disconnected>
		return;
   35e7a:	e7ee      	b.n	35e5a <hci_disconn_complete_prio+0xc>

00035e7c <bt_hci_disconnect>:
{
   35e7c:	b570      	push	{r4, r5, r6, lr}
   35e7e:	4605      	mov	r5, r0
   35e80:	460c      	mov	r4, r1
	buf = bt_hci_cmd_create(BT_HCI_OP_DISCONNECT, sizeof(*disconn));
   35e82:	2103      	movs	r1, #3
   35e84:	f240 4006 	movw	r0, #1030	; 0x406
   35e88:	f7eb f978 	bl	2117c <bt_hci_cmd_create>
	if (!buf) {
   35e8c:	b168      	cbz	r0, 35eaa <bt_hci_disconnect+0x2e>
   35e8e:	4606      	mov	r6, r0
   35e90:	2103      	movs	r1, #3
   35e92:	3008      	adds	r0, #8
   35e94:	f7f3 fd7c 	bl	29990 <net_buf_simple_add>
	disconn->handle = sys_cpu_to_le16(handle);
   35e98:	8005      	strh	r5, [r0, #0]
	disconn->reason = reason;
   35e9a:	7084      	strb	r4, [r0, #2]
	return bt_hci_cmd_send_sync(BT_HCI_OP_DISCONNECT, buf, NULL);
   35e9c:	2200      	movs	r2, #0
   35e9e:	4631      	mov	r1, r6
   35ea0:	f240 4006 	movw	r0, #1030	; 0x406
   35ea4:	f7eb f9b6 	bl	21214 <bt_hci_cmd_send_sync>
}
   35ea8:	bd70      	pop	{r4, r5, r6, pc}
		return -ENOBUFS;
   35eaa:	f06f 0068 	mvn.w	r0, #104	; 0x68
   35eae:	e7fb      	b.n	35ea8 <bt_hci_disconnect+0x2c>

00035eb0 <bt_le_conn_params_valid>:
	if (param->interval_min > param->interval_max ||
   35eb0:	8802      	ldrh	r2, [r0, #0]
   35eb2:	8843      	ldrh	r3, [r0, #2]
   35eb4:	429a      	cmp	r2, r3
   35eb6:	d819      	bhi.n	35eec <bt_le_conn_params_valid+0x3c>
   35eb8:	2a05      	cmp	r2, #5
   35eba:	d919      	bls.n	35ef0 <bt_le_conn_params_valid+0x40>
	    param->interval_min < 6 || param->interval_max > 3200) {
   35ebc:	f5b3 6f48 	cmp.w	r3, #3200	; 0xc80
   35ec0:	d818      	bhi.n	35ef4 <bt_le_conn_params_valid+0x44>
	if (param->latency > 499) {
   35ec2:	8881      	ldrh	r1, [r0, #4]
   35ec4:	f5b1 7ffa 	cmp.w	r1, #500	; 0x1f4
   35ec8:	d216      	bcs.n	35ef8 <bt_le_conn_params_valid+0x48>
{
   35eca:	b410      	push	{r4}
	if (param->timeout < 10 || param->timeout > 3200 ||
   35ecc:	88c0      	ldrh	r0, [r0, #6]
   35ece:	f1a0 020a 	sub.w	r2, r0, #10
   35ed2:	b292      	uxth	r2, r2
   35ed4:	f640 4476 	movw	r4, #3190	; 0xc76
   35ed8:	42a2      	cmp	r2, r4
   35eda:	d80f      	bhi.n	35efc <bt_le_conn_params_valid+0x4c>
	     ((1U + param->latency) * param->interval_max))) {
   35edc:	fb01 3303 	mla	r3, r1, r3, r3
	if (param->timeout < 10 || param->timeout > 3200 ||
   35ee0:	ebb3 0f80 	cmp.w	r3, r0, lsl #2
   35ee4:	d20c      	bcs.n	35f00 <bt_le_conn_params_valid+0x50>
	return true;
   35ee6:	2001      	movs	r0, #1
}
   35ee8:	bc10      	pop	{r4}
   35eea:	4770      	bx	lr
		return false;
   35eec:	2000      	movs	r0, #0
   35eee:	4770      	bx	lr
   35ef0:	2000      	movs	r0, #0
   35ef2:	4770      	bx	lr
   35ef4:	2000      	movs	r0, #0
   35ef6:	4770      	bx	lr
		return false;
   35ef8:	2000      	movs	r0, #0
}
   35efa:	4770      	bx	lr
		return false;
   35efc:	2000      	movs	r0, #0
   35efe:	e7f3      	b.n	35ee8 <bt_le_conn_params_valid+0x38>
   35f00:	2000      	movs	r0, #0
   35f02:	e7f1      	b.n	35ee8 <bt_le_conn_params_valid+0x38>

00035f04 <bt_security_err_get>:
	switch (hci_err) {
   35f04:	2829      	cmp	r0, #41	; 0x29
   35f06:	d81e      	bhi.n	35f46 <bt_security_err_get+0x42>
   35f08:	e8df f000 	tbb	[pc, r0]
   35f0c:	1d1d1d20 	.word	0x1d1d1d20
   35f10:	1d151f1d 	.word	0x1d151f1d
   35f14:	1d1d1d1d 	.word	0x1d1d1d1d
   35f18:	1d1d1d1d 	.word	0x1d1d1d1d
   35f1c:	1d1b1d1d 	.word	0x1d1b1d1d
   35f20:	1d1d1d1d 	.word	0x1d1d1d1d
   35f24:	1d1d1d19 	.word	0x1d1d1d19
   35f28:	1d1d1d1d 	.word	0x1d1d1d1d
   35f2c:	1d1d1d1d 	.word	0x1d1d1d1d
   35f30:	1d1d1d1d 	.word	0x1d1d1d1d
   35f34:	171d      	.short	0x171d
		return BT_SECURITY_ERR_PIN_OR_KEY_MISSING;
   35f36:	2002      	movs	r0, #2
   35f38:	4770      	bx	lr
		return BT_SECURITY_ERR_PAIR_NOT_SUPPORTED;
   35f3a:	2005      	movs	r0, #5
   35f3c:	4770      	bx	lr
		return BT_SECURITY_ERR_PAIR_NOT_ALLOWED;
   35f3e:	2006      	movs	r0, #6
   35f40:	4770      	bx	lr
		return BT_SECURITY_ERR_INVALID_PARAM;
   35f42:	2007      	movs	r0, #7
   35f44:	4770      	bx	lr
		return BT_SECURITY_ERR_UNSPECIFIED;
   35f46:	2009      	movs	r0, #9
   35f48:	4770      	bx	lr
		return BT_SECURITY_ERR_AUTH_FAIL;
   35f4a:	2001      	movs	r0, #1
}
   35f4c:	4770      	bx	lr

00035f4e <bt_send>:
{
   35f4e:	b508      	push	{r3, lr}
		return bt_hci_ecc_send(buf);
   35f50:	f7ea fabc 	bl	204cc <bt_hci_ecc_send>
}
   35f54:	bd08      	pop	{r3, pc}

00035f56 <bt_le_set_data_len>:
{
   35f56:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
   35f58:	4606      	mov	r6, r0
   35f5a:	460f      	mov	r7, r1
   35f5c:	4614      	mov	r4, r2
	buf = bt_hci_cmd_create(BT_HCI_OP_LE_SET_DATA_LEN, sizeof(*cp));
   35f5e:	2106      	movs	r1, #6
   35f60:	f242 0022 	movw	r0, #8226	; 0x2022
   35f64:	f7eb f90a 	bl	2117c <bt_hci_cmd_create>
	if (!buf) {
   35f68:	b170      	cbz	r0, 35f88 <bt_le_set_data_len+0x32>
   35f6a:	4605      	mov	r5, r0
   35f6c:	2106      	movs	r1, #6
   35f6e:	3008      	adds	r0, #8
   35f70:	f7f3 fd0e 	bl	29990 <net_buf_simple_add>
	cp->handle = sys_cpu_to_le16(conn->handle);
   35f74:	8833      	ldrh	r3, [r6, #0]
   35f76:	8003      	strh	r3, [r0, #0]
	cp->tx_octets = sys_cpu_to_le16(tx_octets);
   35f78:	8047      	strh	r7, [r0, #2]
	cp->tx_time = sys_cpu_to_le16(tx_time);
   35f7a:	8084      	strh	r4, [r0, #4]
	return bt_hci_cmd_send(BT_HCI_OP_LE_SET_DATA_LEN, buf);
   35f7c:	4629      	mov	r1, r5
   35f7e:	f242 0022 	movw	r0, #8226	; 0x2022
   35f82:	f7eb fc77 	bl	21874 <bt_hci_cmd_send>
}
   35f86:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
		return -ENOBUFS;
   35f88:	f06f 0068 	mvn.w	r0, #104	; 0x68
   35f8c:	e7fb      	b.n	35f86 <bt_le_set_data_len+0x30>

00035f8e <bt_le_set_phy>:
{
   35f8e:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   35f92:	4607      	mov	r7, r0
   35f94:	460e      	mov	r6, r1
   35f96:	4615      	mov	r5, r2
   35f98:	461c      	mov	r4, r3
	buf = bt_hci_cmd_create(BT_HCI_OP_LE_SET_PHY, sizeof(*cp));
   35f9a:	2107      	movs	r1, #7
   35f9c:	f242 0032 	movw	r0, #8242	; 0x2032
   35fa0:	f7eb f8ec 	bl	2117c <bt_hci_cmd_create>
	if (!buf) {
   35fa4:	b1a0      	cbz	r0, 35fd0 <bt_le_set_phy+0x42>
   35fa6:	4680      	mov	r8, r0
   35fa8:	2107      	movs	r1, #7
   35faa:	3008      	adds	r0, #8
   35fac:	f7f3 fcf0 	bl	29990 <net_buf_simple_add>
	cp->handle = sys_cpu_to_le16(conn->handle);
   35fb0:	883b      	ldrh	r3, [r7, #0]
   35fb2:	8003      	strh	r3, [r0, #0]
	cp->all_phys = all_phys;
   35fb4:	7086      	strb	r6, [r0, #2]
	cp->tx_phys = pref_tx_phy;
   35fb6:	70c5      	strb	r5, [r0, #3]
	cp->rx_phys = pref_rx_phy;
   35fb8:	7104      	strb	r4, [r0, #4]
	cp->phy_opts = phy_opts;
   35fba:	f89d 3018 	ldrb.w	r3, [sp, #24]
   35fbe:	f8a0 3005 	strh.w	r3, [r0, #5]
	return bt_hci_cmd_send(BT_HCI_OP_LE_SET_PHY, buf);
   35fc2:	4641      	mov	r1, r8
   35fc4:	f242 0032 	movw	r0, #8242	; 0x2032
   35fc8:	f7eb fc54 	bl	21874 <bt_hci_cmd_send>
}
   35fcc:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
		return -ENOBUFS;
   35fd0:	f06f 0068 	mvn.w	r0, #104	; 0x68
   35fd4:	e7fa      	b.n	35fcc <bt_le_set_phy+0x3e>

00035fd6 <hci_le_read_remote_features>:
{
   35fd6:	b538      	push	{r3, r4, r5, lr}
   35fd8:	4604      	mov	r4, r0
	buf = bt_hci_cmd_create(BT_HCI_OP_LE_READ_REMOTE_FEATURES,
   35fda:	2102      	movs	r1, #2
   35fdc:	f242 0016 	movw	r0, #8214	; 0x2016
   35fe0:	f7eb f8cc 	bl	2117c <bt_hci_cmd_create>
	if (!buf) {
   35fe4:	b168      	cbz	r0, 36002 <hci_le_read_remote_features+0x2c>
   35fe6:	4605      	mov	r5, r0
   35fe8:	2102      	movs	r1, #2
   35fea:	3008      	adds	r0, #8
   35fec:	f7f3 fcd0 	bl	29990 <net_buf_simple_add>
	cp->handle = sys_cpu_to_le16(conn->handle);
   35ff0:	8823      	ldrh	r3, [r4, #0]
   35ff2:	8003      	strh	r3, [r0, #0]
	bt_hci_cmd_send(BT_HCI_OP_LE_READ_REMOTE_FEATURES, buf);
   35ff4:	4629      	mov	r1, r5
   35ff6:	f242 0016 	movw	r0, #8214	; 0x2016
   35ffa:	f7eb fc3b 	bl	21874 <bt_hci_cmd_send>
	return 0;
   35ffe:	2000      	movs	r0, #0
}
   36000:	bd38      	pop	{r3, r4, r5, pc}
		return -ENOBUFS;
   36002:	f06f 0068 	mvn.w	r0, #104	; 0x68
   36006:	e7fb      	b.n	36000 <hci_le_read_remote_features+0x2a>

00036008 <enh_conn_complete>:
{
   36008:	b508      	push	{r3, lr}
	bt_hci_le_enh_conn_complete(evt);
   3600a:	f7eb fccd 	bl	219a8 <bt_hci_le_enh_conn_complete>
}
   3600e:	bd08      	pop	{r3, pc}

00036010 <le_enh_conn_complete>:
{
   36010:	b508      	push	{r3, lr}
	enh_conn_complete((void *)buf->data);
   36012:	6880      	ldr	r0, [r0, #8]
   36014:	f7ff fff8 	bl	36008 <enh_conn_complete>
}
   36018:	bd08      	pop	{r3, pc}

0003601a <le_legacy_conn_complete>:
{
   3601a:	b510      	push	{r4, lr}
   3601c:	b08c      	sub	sp, #48	; 0x30
	struct bt_hci_evt_le_conn_complete *evt = (void *)buf->data;
   3601e:	6881      	ldr	r1, [r0, #8]
	enh.status         = evt->status;
   36020:	780b      	ldrb	r3, [r1, #0]
   36022:	f88d 3000 	strb.w	r3, [sp]
	enh.handle         = evt->handle;
   36026:	f8b1 3001 	ldrh.w	r3, [r1, #1]
   3602a:	f8ad 3001 	strh.w	r3, [sp, #1]
	enh.role           = evt->role;
   3602e:	78cb      	ldrb	r3, [r1, #3]
   36030:	f88d 3003 	strb.w	r3, [sp, #3]
	enh.interval       = evt->interval;
   36034:	f8b1 300b 	ldrh.w	r3, [r1, #11]
   36038:	f8ad 3017 	strh.w	r3, [sp, #23]
	enh.latency        = evt->latency;
   3603c:	f8b1 300d 	ldrh.w	r3, [r1, #13]
   36040:	f8ad 3019 	strh.w	r3, [sp, #25]
	enh.supv_timeout   = evt->supv_timeout;
   36044:	f8b1 300f 	ldrh.w	r3, [r1, #15]
   36048:	f8ad 301b 	strh.w	r3, [sp, #27]
	enh.clock_accuracy = evt->clock_accuracy;
   3604c:	7c4b      	ldrb	r3, [r1, #17]
   3604e:	f88d 301d 	strb.w	r3, [sp, #29]
	memcpy(dst, src, sizeof(*dst));
   36052:	2207      	movs	r2, #7
   36054:	3104      	adds	r1, #4
   36056:	a801      	add	r0, sp, #4
   36058:	f7ff fd50 	bl	35afc <memcpy>
		bt_addr_copy(&enh.local_rpa, BT_ADDR_ANY);
   3605c:	2400      	movs	r4, #0
   3605e:	940a      	str	r4, [sp, #40]	; 0x28
   36060:	f8ad 402c 	strh.w	r4, [sp, #44]	; 0x2c
	memcpy(dst, src, sizeof(*dst));
   36064:	2206      	movs	r2, #6
   36066:	a90a      	add	r1, sp, #40	; 0x28
   36068:	f10d 000b 	add.w	r0, sp, #11
   3606c:	f7ff fd46 	bl	35afc <memcpy>
	bt_addr_copy(&enh.peer_rpa, BT_ADDR_ANY);
   36070:	9408      	str	r4, [sp, #32]
   36072:	f8ad 4024 	strh.w	r4, [sp, #36]	; 0x24
   36076:	2206      	movs	r2, #6
   36078:	a908      	add	r1, sp, #32
   3607a:	f10d 0011 	add.w	r0, sp, #17
   3607e:	f7ff fd3d 	bl	35afc <memcpy>
	enh_conn_complete(&enh);
   36082:	4668      	mov	r0, sp
   36084:	f7ff ffc0 	bl	36008 <enh_conn_complete>
}
   36088:	b00c      	add	sp, #48	; 0x30
   3608a:	bd10      	pop	{r4, pc}

0003608c <le_conn_param_req_reply>:
{
   3608c:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
   3608e:	4606      	mov	r6, r0
   36090:	460d      	mov	r5, r1
	buf = bt_hci_cmd_create(BT_HCI_OP_LE_CONN_PARAM_REQ_REPLY, sizeof(*cp));
   36092:	210e      	movs	r1, #14
   36094:	f242 0020 	movw	r0, #8224	; 0x2020
   36098:	f7eb f870 	bl	2117c <bt_hci_cmd_create>
	if (!buf) {
   3609c:	b1c0      	cbz	r0, 360d0 <le_conn_param_req_reply+0x44>
   3609e:	4607      	mov	r7, r0
   360a0:	210e      	movs	r1, #14
   360a2:	3008      	adds	r0, #8
   360a4:	f7f3 fc74 	bl	29990 <net_buf_simple_add>
   360a8:	4604      	mov	r4, r0
	(void)memset(cp, 0, sizeof(*cp));
   360aa:	220e      	movs	r2, #14
   360ac:	2100      	movs	r1, #0
   360ae:	f7ff fd49 	bl	35b44 <memset>
	cp->handle = sys_cpu_to_le16(handle);
   360b2:	8026      	strh	r6, [r4, #0]
	cp->interval_min = sys_cpu_to_le16(param->interval_min);
   360b4:	882b      	ldrh	r3, [r5, #0]
   360b6:	8063      	strh	r3, [r4, #2]
	cp->interval_max = sys_cpu_to_le16(param->interval_max);
   360b8:	886b      	ldrh	r3, [r5, #2]
   360ba:	80a3      	strh	r3, [r4, #4]
	cp->latency = sys_cpu_to_le16(param->latency);
   360bc:	88ab      	ldrh	r3, [r5, #4]
   360be:	80e3      	strh	r3, [r4, #6]
	cp->timeout = sys_cpu_to_le16(param->timeout);
   360c0:	88eb      	ldrh	r3, [r5, #6]
   360c2:	8123      	strh	r3, [r4, #8]
	return bt_hci_cmd_send(BT_HCI_OP_LE_CONN_PARAM_REQ_REPLY, buf);
   360c4:	4639      	mov	r1, r7
   360c6:	f242 0020 	movw	r0, #8224	; 0x2020
   360ca:	f7eb fbd3 	bl	21874 <bt_hci_cmd_send>
}
   360ce:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
		return -ENOBUFS;
   360d0:	f06f 0068 	mvn.w	r0, #104	; 0x68
   360d4:	e7fb      	b.n	360ce <le_conn_param_req_reply+0x42>

000360d6 <bt_addr_le_is_bonded>:

bool bt_addr_le_is_bonded(uint8_t id, const bt_addr_le_t *addr)
{
   360d6:	b508      	push	{r3, lr}
	if (IS_ENABLED(CONFIG_BT_SMP)) {
		struct bt_keys *keys = bt_keys_find_addr(id, addr);
   360d8:	f7f3 f810 	bl	290fc <bt_keys_find_addr>

		/* if there are any keys stored then device is bonded */
		return keys && keys->keys;
   360dc:	b118      	cbz	r0, 360e6 <bt_addr_le_is_bonded+0x10>
   360de:	89c3      	ldrh	r3, [r0, #14]
   360e0:	b91b      	cbnz	r3, 360ea <bt_addr_le_is_bonded+0x14>
   360e2:	2000      	movs	r0, #0
	} else {
		return false;
	}
}
   360e4:	bd08      	pop	{r3, pc}
		return keys && keys->keys;
   360e6:	2000      	movs	r0, #0
   360e8:	e7fc      	b.n	360e4 <bt_addr_le_is_bonded+0xe>
   360ea:	2001      	movs	r0, #1
   360ec:	e7fa      	b.n	360e4 <bt_addr_le_is_bonded+0xe>

000360ee <adv_unpause_enabled>:
{
   360ee:	b508      	push	{r3, lr}
	if (atomic_test_and_clear_bit(adv->flags, BT_ADV_PAUSED)) {
   360f0:	f100 0310 	add.w	r3, r0, #16
	return __atomic_fetch_and(target, value, __ATOMIC_SEQ_CST);
   360f4:	f3bf 8f5b 	dmb	ish
   360f8:	e853 2f00 	ldrex	r2, [r3]
   360fc:	f422 4180 	bic.w	r1, r2, #16384	; 0x4000
   36100:	e843 1c00 	strex	ip, r1, [r3]
   36104:	f1bc 0f00 	cmp.w	ip, #0
   36108:	d1f6      	bne.n	360f8 <adv_unpause_enabled+0xa>
   3610a:	f3bf 8f5b 	dmb	ish
   3610e:	f412 4f80 	tst.w	r2, #16384	; 0x4000
   36112:	d100      	bne.n	36116 <adv_unpause_enabled+0x28>
}
   36114:	bd08      	pop	{r3, pc}
		bt_le_adv_set_enable(adv, true);
   36116:	2101      	movs	r1, #1
   36118:	f000 fa04 	bl	36524 <bt_le_adv_set_enable>
}
   3611c:	e7fa      	b.n	36114 <adv_unpause_enabled+0x26>

0003611e <adv_pause_enabled>:
{
   3611e:	b508      	push	{r3, lr}
	return __atomic_load_n(target, __ATOMIC_SEQ_CST);
   36120:	f3bf 8f5b 	dmb	ish
   36124:	6903      	ldr	r3, [r0, #16]
   36126:	f3bf 8f5b 	dmb	ish
	if (atomic_test_bit(adv->flags, BT_ADV_ENABLED)) {
   3612a:	f013 0f40 	tst.w	r3, #64	; 0x40
   3612e:	d010      	beq.n	36152 <adv_pause_enabled+0x34>
   36130:	f100 0210 	add.w	r2, r0, #16
	return __atomic_fetch_or(target, value, __ATOMIC_SEQ_CST);
   36134:	f3bf 8f5b 	dmb	ish
   36138:	e852 3f00 	ldrex	r3, [r2]
   3613c:	f443 4380 	orr.w	r3, r3, #16384	; 0x4000
   36140:	e842 3100 	strex	r1, r3, [r2]
   36144:	2900      	cmp	r1, #0
   36146:	d1f7      	bne.n	36138 <adv_pause_enabled+0x1a>
   36148:	f3bf 8f5b 	dmb	ish
		bt_le_adv_set_enable(adv, false);
   3614c:	2100      	movs	r1, #0
   3614e:	f000 f9e9 	bl	36524 <bt_le_adv_set_enable>
}
   36152:	bd08      	pop	{r3, pc}

00036154 <hci_id_add>:
{
   36154:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
   36156:	460e      	mov	r6, r1
   36158:	4615      	mov	r5, r2
	buf = bt_hci_cmd_create(BT_HCI_OP_LE_ADD_DEV_TO_RL, sizeof(*cp));
   3615a:	2127      	movs	r1, #39	; 0x27
   3615c:	f242 0027 	movw	r0, #8231	; 0x2027
   36160:	f7eb f80c 	bl	2117c <bt_hci_cmd_create>
	if (!buf) {
   36164:	b1d8      	cbz	r0, 3619e <hci_id_add+0x4a>
   36166:	4607      	mov	r7, r0
   36168:	2127      	movs	r1, #39	; 0x27
   3616a:	3008      	adds	r0, #8
   3616c:	f7f3 fc10 	bl	29990 <net_buf_simple_add>
   36170:	4604      	mov	r4, r0
	memcpy(dst, src, sizeof(*dst));
   36172:	2207      	movs	r2, #7
   36174:	4631      	mov	r1, r6
   36176:	f7ff fcc1 	bl	35afc <memcpy>
	memcpy(cp->peer_irk, peer_irk, 16);
   3617a:	2210      	movs	r2, #16
   3617c:	4629      	mov	r1, r5
   3617e:	1de0      	adds	r0, r4, #7
   36180:	f7ff fcbc 	bl	35afc <memcpy>
	(void)memset(cp->local_irk, 0, 16);
   36184:	2210      	movs	r2, #16
   36186:	2100      	movs	r1, #0
   36188:	f104 0017 	add.w	r0, r4, #23
   3618c:	f7ff fcda 	bl	35b44 <memset>
	return bt_hci_cmd_send_sync(BT_HCI_OP_LE_ADD_DEV_TO_RL, buf, NULL);
   36190:	2200      	movs	r2, #0
   36192:	4639      	mov	r1, r7
   36194:	f242 0027 	movw	r0, #8231	; 0x2027
   36198:	f7eb f83c 	bl	21214 <bt_hci_cmd_send_sync>
}
   3619c:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
		return -ENOBUFS;
   3619e:	f06f 0068 	mvn.w	r0, #104	; 0x68
   361a2:	e7fb      	b.n	3619c <hci_id_add+0x48>

000361a4 <keys_add_id>:
{
   361a4:	b508      	push	{r3, lr}
	if (keys->state & BT_KEYS_ID_ADDED) {
   361a6:	7a03      	ldrb	r3, [r0, #8]
   361a8:	f013 0f04 	tst.w	r3, #4
   361ac:	d100      	bne.n	361b0 <keys_add_id+0xc>
}
   361ae:	bd08      	pop	{r3, pc}
   361b0:	4601      	mov	r1, r0
		hci_id_add(keys->id, &keys->addr, keys->irk.val);
   361b2:	4602      	mov	r2, r0
   361b4:	f812 0b2a 	ldrb.w	r0, [r2], #42
   361b8:	3101      	adds	r1, #1
   361ba:	f7ff ffcb 	bl	36154 <hci_id_add>
}
   361be:	e7f6      	b.n	361ae <keys_add_id+0xa>

000361c0 <hci_id_del>:
{
   361c0:	b538      	push	{r3, r4, r5, lr}
   361c2:	4604      	mov	r4, r0
	buf = bt_hci_cmd_create(BT_HCI_OP_LE_REM_DEV_FROM_RL, sizeof(*cp));
   361c4:	2107      	movs	r1, #7
   361c6:	f242 0028 	movw	r0, #8232	; 0x2028
   361ca:	f7ea ffd7 	bl	2117c <bt_hci_cmd_create>
	if (!buf) {
   361ce:	b178      	cbz	r0, 361f0 <hci_id_del+0x30>
   361d0:	4605      	mov	r5, r0
   361d2:	2107      	movs	r1, #7
   361d4:	3008      	adds	r0, #8
   361d6:	f7f3 fbdb 	bl	29990 <net_buf_simple_add>
   361da:	2207      	movs	r2, #7
   361dc:	4621      	mov	r1, r4
   361de:	f7ff fc8d 	bl	35afc <memcpy>
	return bt_hci_cmd_send_sync(BT_HCI_OP_LE_REM_DEV_FROM_RL, buf, NULL);
   361e2:	2200      	movs	r2, #0
   361e4:	4629      	mov	r1, r5
   361e6:	f242 0028 	movw	r0, #8232	; 0x2028
   361ea:	f7eb f813 	bl	21214 <bt_hci_cmd_send_sync>
}
   361ee:	bd38      	pop	{r3, r4, r5, pc}
		return -ENOBUFS;
   361f0:	f06f 0068 	mvn.w	r0, #104	; 0x68
   361f4:	e7fb      	b.n	361ee <hci_id_del+0x2e>

000361f6 <addr_res_enable>:
{
   361f6:	b538      	push	{r3, r4, r5, lr}
   361f8:	4604      	mov	r4, r0
	buf = bt_hci_cmd_create(BT_HCI_OP_LE_SET_ADDR_RES_ENABLE, 1);
   361fa:	2101      	movs	r1, #1
   361fc:	f242 002d 	movw	r0, #8237	; 0x202d
   36200:	f7ea ffbc 	bl	2117c <bt_hci_cmd_create>
	if (!buf) {
   36204:	b158      	cbz	r0, 3621e <addr_res_enable+0x28>
   36206:	4605      	mov	r5, r0
	return net_buf_simple_add_u8(&buf->b, val);
   36208:	4621      	mov	r1, r4
   3620a:	3008      	adds	r0, #8
   3620c:	f002 ffa5 	bl	3915a <net_buf_simple_add_u8>
	return bt_hci_cmd_send_sync(BT_HCI_OP_LE_SET_ADDR_RES_ENABLE,
   36210:	2200      	movs	r2, #0
   36212:	4629      	mov	r1, r5
   36214:	f242 002d 	movw	r0, #8237	; 0x202d
   36218:	f7ea fffc 	bl	21214 <bt_hci_cmd_send_sync>
}
   3621c:	bd38      	pop	{r3, r4, r5, pc}
		return -ENOBUFS;
   3621e:	f06f 0068 	mvn.w	r0, #104	; 0x68
   36222:	e7fb      	b.n	3621c <addr_res_enable+0x26>

00036224 <bt_lookup_id_addr>:
{
   36224:	b510      	push	{r4, lr}
   36226:	460c      	mov	r4, r1
		keys = bt_keys_find_irk(id, addr);
   36228:	f7f2 ff00 	bl	2902c <bt_keys_find_irk>
		if (keys) {
   3622c:	b108      	cbz	r0, 36232 <bt_lookup_id_addr+0xe>
			return &keys->addr;
   3622e:	3001      	adds	r0, #1
}
   36230:	bd10      	pop	{r4, pc}
	return addr;
   36232:	4620      	mov	r0, r4
   36234:	e7fc      	b.n	36230 <bt_lookup_id_addr+0xc>

00036236 <bt_id_set_adv_random_addr>:
{
   36236:	b508      	push	{r3, lr}
		return set_random_address(addr);
   36238:	4608      	mov	r0, r1
   3623a:	f7ec f829 	bl	22290 <set_random_address>
}
   3623e:	bd08      	pop	{r3, pc}

00036240 <bt_id_set_adv_private_addr>:
{
   36240:	b510      	push	{r4, lr}
   36242:	b082      	sub	sp, #8
   36244:	4604      	mov	r4, r0
	err = bt_rand(nrpa.val, sizeof(nrpa.val));
   36246:	2106      	movs	r1, #6
   36248:	4668      	mov	r0, sp
   3624a:	f7f6 f913 	bl	2c474 <bt_rand>
	if (err) {
   3624e:	b108      	cbz	r0, 36254 <bt_id_set_adv_private_addr+0x14>
}
   36250:	b002      	add	sp, #8
   36252:	bd10      	pop	{r4, pc}
	BT_ADDR_SET_NRPA(&nrpa);
   36254:	f89d 3005 	ldrb.w	r3, [sp, #5]
   36258:	f003 033f 	and.w	r3, r3, #63	; 0x3f
   3625c:	f88d 3005 	strb.w	r3, [sp, #5]
	err = bt_id_set_adv_random_addr(adv, &nrpa);
   36260:	4669      	mov	r1, sp
   36262:	4620      	mov	r0, r4
   36264:	f7ff ffe7 	bl	36236 <bt_id_set_adv_random_addr>
	if (err) {
   36268:	e7f2      	b.n	36250 <bt_id_set_adv_private_addr+0x10>

0003626a <bt_id_adv_random_addr_check>:
}
   3626a:	2001      	movs	r0, #1
   3626c:	4770      	bx	lr

0003626e <pending_id_update>:
{
   3626e:	b508      	push	{r3, lr}
	if (keys->state & BT_KEYS_ID_PENDING_ADD) {
   36270:	7a03      	ldrb	r3, [r0, #8]
   36272:	f013 0f01 	tst.w	r3, #1
   36276:	d103      	bne.n	36280 <pending_id_update+0x12>
	if (keys->state & BT_KEYS_ID_PENDING_DEL) {
   36278:	f013 0f02 	tst.w	r3, #2
   3627c:	d106      	bne.n	3628c <pending_id_update+0x1e>
}
   3627e:	bd08      	pop	{r3, pc}
		keys->state &= ~BT_KEYS_ID_PENDING_ADD;
   36280:	f023 0301 	bic.w	r3, r3, #1
   36284:	7203      	strb	r3, [r0, #8]
		bt_id_add(keys);
   36286:	f7ec f8db 	bl	22440 <bt_id_add>
		return;
   3628a:	e7f8      	b.n	3627e <pending_id_update+0x10>
		keys->state &= ~BT_KEYS_ID_PENDING_DEL;
   3628c:	f023 0302 	bic.w	r3, r3, #2
   36290:	7203      	strb	r3, [r0, #8]
		bt_id_del(keys);
   36292:	f7ec f969 	bl	22568 <bt_id_del>
		return;
   36296:	e7f2      	b.n	3627e <pending_id_update+0x10>

00036298 <bt_id_init>:
#if defined(CONFIG_BT_PRIVACY)
	k_work_init_delayable(&bt_dev.rpa_update, rpa_timeout);
#endif

	return 0;
}
   36298:	2000      	movs	r0, #0
   3629a:	4770      	bx	lr

0003629c <ad_is_limited>:
	for (i = 0; i < ad_len; i++) {
   3629c:	2300      	movs	r3, #0
   3629e:	428b      	cmp	r3, r1
   362a0:	d218      	bcs.n	362d4 <ad_is_limited+0x38>
{
   362a2:	b430      	push	{r4, r5}
   362a4:	e002      	b.n	362ac <ad_is_limited+0x10>
	for (i = 0; i < ad_len; i++) {
   362a6:	3301      	adds	r3, #1
   362a8:	428b      	cmp	r3, r1
   362aa:	d210      	bcs.n	362ce <ad_is_limited+0x32>
		if (ad[i].type == BT_DATA_FLAGS &&
   362ac:	eb00 05c3 	add.w	r5, r0, r3, lsl #3
   362b0:	f830 4033 	ldrh.w	r4, [r0, r3, lsl #3]
   362b4:	f240 1201 	movw	r2, #257	; 0x101
   362b8:	4294      	cmp	r4, r2
   362ba:	d1f4      	bne.n	362a6 <ad_is_limited+0xa>
		    ad[i].data != NULL) {
   362bc:	686a      	ldr	r2, [r5, #4]
		    ad[i].data_len == sizeof(uint8_t) &&
   362be:	2a00      	cmp	r2, #0
   362c0:	d0f1      	beq.n	362a6 <ad_is_limited+0xa>
			if (ad[i].data[0] & BT_LE_AD_LIMITED) {
   362c2:	7812      	ldrb	r2, [r2, #0]
   362c4:	f012 0f01 	tst.w	r2, #1
   362c8:	d0ed      	beq.n	362a6 <ad_is_limited+0xa>
				return true;
   362ca:	2001      	movs	r0, #1
   362cc:	e000      	b.n	362d0 <ad_is_limited+0x34>
	return false;
   362ce:	2000      	movs	r0, #0
}
   362d0:	bc30      	pop	{r4, r5}
   362d2:	4770      	bx	lr
	return false;
   362d4:	2000      	movs	r0, #0
}
   362d6:	4770      	bx	lr

000362d8 <get_filter_policy>:
}
   362d8:	2000      	movs	r0, #0
   362da:	4770      	bx	lr

000362dc <get_adv_channel_map>:
{
   362dc:	4603      	mov	r3, r0
	if (options & BT_LE_ADV_OPT_DISABLE_CHAN_37) {
   362de:	f410 4f00 	tst.w	r0, #32768	; 0x8000
   362e2:	d10b      	bne.n	362fc <get_adv_channel_map+0x20>
	uint8_t channel_map = 0x07;
   362e4:	2007      	movs	r0, #7
	if (options & BT_LE_ADV_OPT_DISABLE_CHAN_38) {
   362e6:	f413 3f80 	tst.w	r3, #65536	; 0x10000
   362ea:	d001      	beq.n	362f0 <get_adv_channel_map+0x14>
		channel_map &= ~0x02;
   362ec:	f000 00fd 	and.w	r0, r0, #253	; 0xfd
	if (options & BT_LE_ADV_OPT_DISABLE_CHAN_39) {
   362f0:	f413 3f00 	tst.w	r3, #131072	; 0x20000
   362f4:	d001      	beq.n	362fa <get_adv_channel_map+0x1e>
		channel_map &= ~0x04;
   362f6:	f000 00fb 	and.w	r0, r0, #251	; 0xfb
}
   362fa:	4770      	bx	lr
		channel_map &= ~0x01;
   362fc:	2006      	movs	r0, #6
   362fe:	e7f2      	b.n	362e6 <get_adv_channel_map+0xa>

00036300 <hci_set_ad>:
{
   36300:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   36304:	b082      	sub	sp, #8
   36306:	4607      	mov	r7, r0
   36308:	460d      	mov	r5, r1
   3630a:	4616      	mov	r6, r2
	buf = bt_hci_cmd_create(hci_op, sizeof(*set_data));
   3630c:	2120      	movs	r1, #32
   3630e:	f7ea ff35 	bl	2117c <bt_hci_cmd_create>
	if (!buf) {
   36312:	b300      	cbz	r0, 36356 <hci_set_ad+0x56>
   36314:	4680      	mov	r8, r0
	return net_buf_simple_add(&buf->b, len);
   36316:	2120      	movs	r1, #32
   36318:	3008      	adds	r0, #8
   3631a:	f7f3 fb39 	bl	29990 <net_buf_simple_add>
   3631e:	4604      	mov	r4, r0
	(void)memset(set_data, 0, sizeof(*set_data));
   36320:	2220      	movs	r2, #32
   36322:	2100      	movs	r1, #0
   36324:	f7ff fc0e 	bl	35b44 <memset>
	err = set_data_add_complete(set_data->data, BT_GAP_ADV_MAX_ADV_DATA_LEN,
   36328:	9400      	str	r4, [sp, #0]
   3632a:	4633      	mov	r3, r6
   3632c:	462a      	mov	r2, r5
   3632e:	211f      	movs	r1, #31
   36330:	1c60      	adds	r0, r4, #1
   36332:	f7ec fb0d 	bl	22950 <set_data_add_complete>
	if (err) {
   36336:	4604      	mov	r4, r0
   36338:	b948      	cbnz	r0, 3634e <hci_set_ad+0x4e>
	return bt_hci_cmd_send_sync(hci_op, buf, NULL);
   3633a:	2200      	movs	r2, #0
   3633c:	4641      	mov	r1, r8
   3633e:	4638      	mov	r0, r7
   36340:	f7ea ff68 	bl	21214 <bt_hci_cmd_send_sync>
   36344:	4604      	mov	r4, r0
}
   36346:	4620      	mov	r0, r4
   36348:	b002      	add	sp, #8
   3634a:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
		net_buf_unref(buf);
   3634e:	4640      	mov	r0, r8
   36350:	f7f3 fa06 	bl	29760 <net_buf_unref>
		return err;
   36354:	e7f7      	b.n	36346 <hci_set_ad+0x46>
		return -ENOBUFS;
   36356:	f06f 0468 	mvn.w	r4, #104	; 0x68
   3635a:	e7f4      	b.n	36346 <hci_set_ad+0x46>

0003635c <set_ad>:
{
   3635c:	b508      	push	{r3, lr}
	return hci_set_ad(BT_HCI_OP_LE_SET_ADV_DATA, ad, ad_len);
   3635e:	f242 0008 	movw	r0, #8200	; 0x2008
   36362:	f7ff ffcd 	bl	36300 <hci_set_ad>
}
   36366:	bd08      	pop	{r3, pc}

00036368 <set_sd>:
{
   36368:	b508      	push	{r3, lr}
	return hci_set_ad(BT_HCI_OP_LE_SET_SCAN_RSP_DATA, sd, sd_len);
   3636a:	f242 0009 	movw	r0, #8201	; 0x2009
   3636e:	f7ff ffc7 	bl	36300 <hci_set_ad>
}
   36372:	bd08      	pop	{r3, pc}

00036374 <le_adv_update>:
{
   36374:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
   36378:	b089      	sub	sp, #36	; 0x24
   3637a:	4604      	mov	r4, r0
   3637c:	460e      	mov	r6, r1
   3637e:	4617      	mov	r7, r2
   36380:	461d      	mov	r5, r3
   36382:	f8dd 8048 	ldr.w	r8, [sp, #72]	; 0x48
   36386:	f89d b04c 	ldrb.w	fp, [sp, #76]	; 0x4c
   3638a:	f89d a050 	ldrb.w	sl, [sp, #80]	; 0x50
   3638e:	f89d 9054 	ldrb.w	r9, [sp, #84]	; 0x54
	struct bt_ad d[2] = {};
   36392:	2300      	movs	r3, #0
   36394:	9304      	str	r3, [sp, #16]
   36396:	9305      	str	r3, [sp, #20]
   36398:	9306      	str	r3, [sp, #24]
   3639a:	9307      	str	r3, [sp, #28]
	if (name_type != ADV_NAME_TYPE_NONE) {
   3639c:	f1b9 0f00 	cmp.w	r9, #0
   363a0:	d133      	bne.n	3640a <le_adv_update+0x96>
	if (!(ext_adv && scannable)) {
   363a2:	f1bb 0f00 	cmp.w	fp, #0
   363a6:	d002      	beq.n	363ae <le_adv_update+0x3a>
   363a8:	f1ba 0f00 	cmp.w	sl, #0
   363ac:	d10b      	bne.n	363c6 <le_adv_update+0x52>
		d[0].data = ad;
   363ae:	9604      	str	r6, [sp, #16]
		d[0].len = ad_len;
   363b0:	9705      	str	r7, [sp, #20]
		if (name_type == ADV_NAME_TYPE_AD) {
   363b2:	f1b9 0f01 	cmp.w	r9, #1
   363b6:	d056      	beq.n	36466 <le_adv_update+0xf2>
		d_len = 1;
   363b8:	2201      	movs	r2, #1
		err = set_ad(adv, d, d_len);
   363ba:	a904      	add	r1, sp, #16
   363bc:	4620      	mov	r0, r4
   363be:	f7ff ffcd 	bl	3635c <set_ad>
		if (err) {
   363c2:	4603      	mov	r3, r0
   363c4:	b9e8      	cbnz	r0, 36402 <le_adv_update+0x8e>
	if (scannable) {
   363c6:	f1ba 0f00 	cmp.w	sl, #0
   363ca:	d00c      	beq.n	363e6 <le_adv_update+0x72>
		d[0].data = sd;
   363cc:	9504      	str	r5, [sp, #16]
		d[0].len = sd_len;
   363ce:	f8cd 8014 	str.w	r8, [sp, #20]
		if (name_type == ADV_NAME_TYPE_SD) {
   363d2:	f1b9 0f02 	cmp.w	r9, #2
   363d6:	d04c      	beq.n	36472 <le_adv_update+0xfe>
		d_len = 1;
   363d8:	2201      	movs	r2, #1
		err = set_sd(adv, d, d_len);
   363da:	a904      	add	r1, sp, #16
   363dc:	4620      	mov	r0, r4
   363de:	f7ff ffc3 	bl	36368 <set_sd>
		if (err) {
   363e2:	4603      	mov	r3, r0
   363e4:	b968      	cbnz	r0, 36402 <le_adv_update+0x8e>
	atomic_set_bit(adv->flags, BT_ADV_DATA_SET);
   363e6:	3410      	adds	r4, #16
   363e8:	f3bf 8f5b 	dmb	ish
   363ec:	e854 3f00 	ldrex	r3, [r4]
   363f0:	f043 0304 	orr.w	r3, r3, #4
   363f4:	e844 3200 	strex	r2, r3, [r4]
   363f8:	2a00      	cmp	r2, #0
   363fa:	d1f7      	bne.n	363ec <le_adv_update+0x78>
   363fc:	f3bf 8f5b 	dmb	ish
	return 0;
   36400:	2300      	movs	r3, #0
}
   36402:	4618      	mov	r0, r3
   36404:	b009      	add	sp, #36	; 0x24
   36406:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
		const char *name = bt_get_name();
   3640a:	f7eb ff23 	bl	22254 <bt_get_name>
   3640e:	9001      	str	r0, [sp, #4]
		if ((ad && ad_has_name(ad, ad_len)) ||
   36410:	b166      	cbz	r6, 3642c <le_adv_update+0xb8>
	for (i = 0; i < ad_len; i++) {
   36412:	2200      	movs	r2, #0
   36414:	4297      	cmp	r7, r2
   36416:	d907      	bls.n	36428 <le_adv_update+0xb4>
		if (ad[i].type == BT_DATA_NAME_COMPLETE ||
   36418:	f816 3032 	ldrb.w	r3, [r6, r2, lsl #3]
   3641c:	3b08      	subs	r3, #8
   3641e:	b2db      	uxtb	r3, r3
   36420:	2b01      	cmp	r3, #1
   36422:	d90f      	bls.n	36444 <le_adv_update+0xd0>
	for (i = 0; i < ad_len; i++) {
   36424:	3201      	adds	r2, #1
   36426:	e7f5      	b.n	36414 <le_adv_update+0xa0>
	return false;
   36428:	2300      	movs	r3, #0
		if ((ad && ad_has_name(ad, ad_len)) ||
   3642a:	bb43      	cbnz	r3, 3647e <le_adv_update+0x10a>
   3642c:	b175      	cbz	r5, 3644c <le_adv_update+0xd8>
	for (i = 0; i < ad_len; i++) {
   3642e:	2200      	movs	r2, #0
   36430:	4590      	cmp	r8, r2
   36432:	d909      	bls.n	36448 <le_adv_update+0xd4>
		if (ad[i].type == BT_DATA_NAME_COMPLETE ||
   36434:	f815 3032 	ldrb.w	r3, [r5, r2, lsl #3]
   36438:	3b08      	subs	r3, #8
   3643a:	b2db      	uxtb	r3, r3
   3643c:	2b01      	cmp	r3, #1
   3643e:	d910      	bls.n	36462 <le_adv_update+0xee>
	for (i = 0; i < ad_len; i++) {
   36440:	3201      	adds	r2, #1
   36442:	e7f5      	b.n	36430 <le_adv_update+0xbc>
			return true;
   36444:	2301      	movs	r3, #1
   36446:	e7f0      	b.n	3642a <le_adv_update+0xb6>
	return false;
   36448:	2300      	movs	r3, #0
		    (sd && ad_has_name(sd, sd_len))) {
   3644a:	b9db      	cbnz	r3, 36484 <le_adv_update+0x110>
		data = (struct bt_data)BT_DATA(
   3644c:	9801      	ldr	r0, [sp, #4]
   3644e:	f7ff fb07 	bl	35a60 <strlen>
   36452:	2309      	movs	r3, #9
   36454:	f88d 3008 	strb.w	r3, [sp, #8]
   36458:	f88d 0009 	strb.w	r0, [sp, #9]
   3645c:	9b01      	ldr	r3, [sp, #4]
   3645e:	9303      	str	r3, [sp, #12]
   36460:	e79f      	b.n	363a2 <le_adv_update+0x2e>
			return true;
   36462:	2301      	movs	r3, #1
   36464:	e7f1      	b.n	3644a <le_adv_update+0xd6>
			d[1].data = &data;
   36466:	ab02      	add	r3, sp, #8
   36468:	9306      	str	r3, [sp, #24]
			d[1].len = 1;
   3646a:	2301      	movs	r3, #1
   3646c:	9307      	str	r3, [sp, #28]
			d_len = 2;
   3646e:	2202      	movs	r2, #2
   36470:	e7a3      	b.n	363ba <le_adv_update+0x46>
			d[1].data = &data;
   36472:	ab02      	add	r3, sp, #8
   36474:	9306      	str	r3, [sp, #24]
			d[1].len = 1;
   36476:	2301      	movs	r3, #1
   36478:	9307      	str	r3, [sp, #28]
			d_len = 2;
   3647a:	2202      	movs	r2, #2
   3647c:	e7ad      	b.n	363da <le_adv_update+0x66>
			return -EINVAL;
   3647e:	f06f 0315 	mvn.w	r3, #21
   36482:	e7be      	b.n	36402 <le_adv_update+0x8e>
   36484:	f06f 0315 	mvn.w	r3, #21
   36488:	e7bb      	b.n	36402 <le_adv_update+0x8e>

0003648a <valid_adv_param>:
{
   3648a:	b508      	push	{r3, lr}
	if (param->options & BT_LE_ADV_OPT_EXT_ADV) {
   3648c:	6843      	ldr	r3, [r0, #4]
   3648e:	f413 6f80 	tst.w	r3, #1024	; 0x400
   36492:	d107      	bne.n	364a4 <valid_adv_param+0x1a>
	if (param->peer && !(param->options & BT_LE_ADV_OPT_CONNECTABLE)) {
   36494:	6902      	ldr	r2, [r0, #16]
   36496:	b112      	cbz	r2, 3649e <valid_adv_param+0x14>
   36498:	f013 0f01 	tst.w	r3, #1
   3649c:	d004      	beq.n	364a8 <valid_adv_param+0x1e>
	return valid_adv_ext_param(param);
   3649e:	f7ec faab 	bl	229f8 <valid_adv_ext_param>
}
   364a2:	bd08      	pop	{r3, pc}
		return false;
   364a4:	2000      	movs	r0, #0
   364a6:	e7fc      	b.n	364a2 <valid_adv_param+0x18>
		return false;
   364a8:	2000      	movs	r0, #0
   364aa:	e7fa      	b.n	364a2 <valid_adv_param+0x18>

000364ac <get_adv_name_type_param>:
	if (param->options & BT_LE_ADV_OPT_USE_NAME) {
   364ac:	6843      	ldr	r3, [r0, #4]
   364ae:	f013 0f08 	tst.w	r3, #8
   364b2:	d00b      	beq.n	364cc <get_adv_name_type_param+0x20>
		if (param->options & BT_LE_ADV_OPT_FORCE_NAME_IN_AD) {
   364b4:	f413 2f80 	tst.w	r3, #262144	; 0x40000
   364b8:	d10a      	bne.n	364d0 <get_adv_name_type_param+0x24>
		if ((param->options & BT_LE_ADV_OPT_EXT_ADV) &&
   364ba:	f403 63c0 	and.w	r3, r3, #1536	; 0x600
   364be:	f5b3 6f80 	cmp.w	r3, #1024	; 0x400
   364c2:	d001      	beq.n	364c8 <get_adv_name_type_param+0x1c>
		return ADV_NAME_TYPE_SD;
   364c4:	2002      	movs	r0, #2
}
   364c6:	4770      	bx	lr
			return ADV_NAME_TYPE_AD;
   364c8:	2001      	movs	r0, #1
   364ca:	4770      	bx	lr
	return ADV_NAME_TYPE_NONE;
   364cc:	2000      	movs	r0, #0
   364ce:	4770      	bx	lr
			return ADV_NAME_TYPE_AD;
   364d0:	2001      	movs	r0, #1
   364d2:	4770      	bx	lr

000364d4 <bt_le_adv_set_enable_legacy>:
{
   364d4:	b570      	push	{r4, r5, r6, lr}
   364d6:	b086      	sub	sp, #24
   364d8:	4605      	mov	r5, r0
   364da:	460c      	mov	r4, r1
	buf = bt_hci_cmd_create(BT_HCI_OP_LE_SET_ADV_ENABLE, 1);
   364dc:	2101      	movs	r1, #1
   364de:	f242 000a 	movw	r0, #8202	; 0x200a
   364e2:	f7ea fe4b 	bl	2117c <bt_hci_cmd_create>
	if (!buf) {
   364e6:	b1d0      	cbz	r0, 3651e <bt_le_adv_set_enable_legacy+0x4a>
   364e8:	4606      	mov	r6, r0
	if (enable) {
   364ea:	b19c      	cbz	r4, 36514 <bt_le_adv_set_enable_legacy+0x40>
	return net_buf_simple_add_u8(&buf->b, val);
   364ec:	2101      	movs	r1, #1
   364ee:	3008      	adds	r0, #8
   364f0:	f002 fe33 	bl	3915a <net_buf_simple_add_u8>
	bt_hci_cmd_state_set_init(buf, &state, adv->flags, BT_ADV_ENABLED, enable);
   364f4:	9400      	str	r4, [sp, #0]
   364f6:	2306      	movs	r3, #6
   364f8:	f105 0210 	add.w	r2, r5, #16
   364fc:	a903      	add	r1, sp, #12
   364fe:	4630      	mov	r0, r6
   36500:	f7ea fe2a 	bl	21158 <bt_hci_cmd_state_set_init>
	err = bt_hci_cmd_send_sync(BT_HCI_OP_LE_SET_ADV_ENABLE, buf, NULL);
   36504:	2200      	movs	r2, #0
   36506:	4631      	mov	r1, r6
   36508:	f242 000a 	movw	r0, #8202	; 0x200a
   3650c:	f7ea fe82 	bl	21214 <bt_hci_cmd_send_sync>
}
   36510:	b006      	add	sp, #24
   36512:	bd70      	pop	{r4, r5, r6, pc}
   36514:	2100      	movs	r1, #0
   36516:	3008      	adds	r0, #8
   36518:	f002 fe1f 	bl	3915a <net_buf_simple_add_u8>
   3651c:	e7ea      	b.n	364f4 <bt_le_adv_set_enable_legacy+0x20>
		return -ENOBUFS;
   3651e:	f06f 0068 	mvn.w	r0, #104	; 0x68
   36522:	e7f5      	b.n	36510 <bt_le_adv_set_enable_legacy+0x3c>

00036524 <bt_le_adv_set_enable>:
{
   36524:	b508      	push	{r3, lr}
	return bt_le_adv_set_enable_legacy(adv, enable);
   36526:	f7ff ffd5 	bl	364d4 <bt_le_adv_set_enable_legacy>
}
   3652a:	bd08      	pop	{r3, pc}

0003652c <bt_le_lim_adv_cancel_timeout>:
{
   3652c:	b508      	push	{r3, lr}
	return k_work_cancel_delayable(&adv->lim_adv_timeout_work);
   3652e:	3018      	adds	r0, #24
   36530:	f7fa fa20 	bl	30974 <k_work_cancel_delayable>
}
   36534:	bd08      	pop	{r3, pc}

00036536 <bt_le_adv_resume>:
{
   36536:	b530      	push	{r4, r5, lr}
   36538:	b083      	sub	sp, #12
	struct bt_le_ext_adv *adv = bt_le_adv_lookup_legacy();
   3653a:	f7ec fb31 	bl	22ba0 <bt_le_adv_lookup_legacy>
	if (!adv) {
   3653e:	b150      	cbz	r0, 36556 <bt_le_adv_resume+0x20>
   36540:	4604      	mov	r4, r0
	if (!(atomic_test_bit(adv->flags, BT_ADV_PERSIST) &&
   36542:	f100 0510 	add.w	r5, r0, #16
	return __atomic_load_n(target, __ATOMIC_SEQ_CST);
   36546:	f3bf 8f5b 	dmb	ish
   3654a:	6903      	ldr	r3, [r0, #16]
   3654c:	f3bf 8f5b 	dmb	ish
   36550:	f413 5f00 	tst.w	r3, #8192	; 0x2000
   36554:	d101      	bne.n	3655a <bt_le_adv_resume+0x24>
}
   36556:	b003      	add	sp, #12
   36558:	bd30      	pop	{r4, r5, pc}
   3655a:	f3bf 8f5b 	dmb	ish
   3655e:	6903      	ldr	r3, [r0, #16]
   36560:	f3bf 8f5b 	dmb	ish
	if (!(atomic_test_bit(adv->flags, BT_ADV_PERSIST) &&
   36564:	f013 0f40 	tst.w	r3, #64	; 0x40
   36568:	d1f5      	bne.n	36556 <bt_le_adv_resume+0x20>
   3656a:	f3bf 8f5b 	dmb	ish
   3656e:	6903      	ldr	r3, [r0, #16]
   36570:	f3bf 8f5b 	dmb	ish
	if (!atomic_test_bit(adv->flags, BT_ADV_CONNECTABLE)) {
   36574:	f413 7f00 	tst.w	r3, #512	; 0x200
   36578:	d0ed      	beq.n	36556 <bt_le_adv_resume+0x20>
	err = le_adv_start_add_conn(adv, &conn);
   3657a:	a901      	add	r1, sp, #4
   3657c:	f7ec fa8a 	bl	22a94 <le_adv_start_add_conn>
	if (err) {
   36580:	2800      	cmp	r0, #0
   36582:	d1e8      	bne.n	36556 <bt_le_adv_resume+0x20>
	err = bt_le_adv_set_enable(adv, true);
   36584:	2101      	movs	r1, #1
   36586:	4620      	mov	r0, r4
   36588:	f7ff ffcc 	bl	36524 <bt_le_adv_set_enable>
	if (err) {
   3658c:	b908      	cbnz	r0, 36592 <bt_le_adv_resume+0x5c>
	bool persist_paused = false;
   3658e:	2400      	movs	r4, #0
   36590:	e011      	b.n	365b6 <bt_le_adv_resume+0x80>
		bt_conn_set_state(conn, BT_CONN_DISCONNECTED);
   36592:	2100      	movs	r1, #0
   36594:	9801      	ldr	r0, [sp, #4]
   36596:	f7ed f94d 	bl	23834 <bt_conn_set_state>
	return __atomic_fetch_and(target, value, __ATOMIC_SEQ_CST);
   3659a:	f3bf 8f5b 	dmb	ish
   3659e:	e855 4f00 	ldrex	r4, [r5]
   365a2:	f424 5300 	bic.w	r3, r4, #8192	; 0x2000
   365a6:	e845 3200 	strex	r2, r3, [r5]
   365aa:	2a00      	cmp	r2, #0
   365ac:	d1f7      	bne.n	3659e <bt_le_adv_resume+0x68>
   365ae:	f3bf 8f5b 	dmb	ish
	return (old & mask) != 0;
   365b2:	f3c4 3440 	ubfx	r4, r4, #13, #1
	bt_conn_unref(conn);
   365b6:	9801      	ldr	r0, [sp, #4]
   365b8:	f7ed f900 	bl	237bc <bt_conn_unref>
	if (persist_paused) {
   365bc:	2c00      	cmp	r4, #0
   365be:	d0ca      	beq.n	36556 <bt_le_adv_resume+0x20>
	return __atomic_fetch_or(target, value, __ATOMIC_SEQ_CST);
   365c0:	f3bf 8f5b 	dmb	ish
   365c4:	e855 3f00 	ldrex	r3, [r5]
   365c8:	f443 5300 	orr.w	r3, r3, #8192	; 0x2000
   365cc:	e845 3200 	strex	r2, r3, [r5]
   365d0:	2a00      	cmp	r2, #0
   365d2:	d1f7      	bne.n	365c4 <bt_le_adv_resume+0x8e>
   365d4:	f3bf 8f5b 	dmb	ish
}
   365d8:	e7bd      	b.n	36556 <bt_le_adv_resume+0x20>

000365da <hci_generate_dhkey_v1>:
{
   365da:	b538      	push	{r3, r4, r5, lr}
   365dc:	4604      	mov	r4, r0
	buf = bt_hci_cmd_create(BT_HCI_OP_LE_GENERATE_DHKEY, sizeof(*cp));
   365de:	2140      	movs	r1, #64	; 0x40
   365e0:	f242 0026 	movw	r0, #8230	; 0x2026
   365e4:	f7ea fdca 	bl	2117c <bt_hci_cmd_create>
	if (!buf) {
   365e8:	b178      	cbz	r0, 3660a <hci_generate_dhkey_v1+0x30>
   365ea:	4605      	mov	r5, r0
	return net_buf_simple_add(&buf->b, len);
   365ec:	2140      	movs	r1, #64	; 0x40
   365ee:	3008      	adds	r0, #8
   365f0:	f7f3 f9ce 	bl	29990 <net_buf_simple_add>
	memcpy(cp->key, remote_pk, sizeof(cp->key));
   365f4:	2240      	movs	r2, #64	; 0x40
   365f6:	4621      	mov	r1, r4
   365f8:	f7ff fa80 	bl	35afc <memcpy>
	return bt_hci_cmd_send_sync(BT_HCI_OP_LE_GENERATE_DHKEY, buf, NULL);
   365fc:	2200      	movs	r2, #0
   365fe:	4629      	mov	r1, r5
   36600:	f242 0026 	movw	r0, #8230	; 0x2026
   36604:	f7ea fe06 	bl	21214 <bt_hci_cmd_send_sync>
}
   36608:	bd38      	pop	{r3, r4, r5, pc}
		return -ENOBUFS;
   3660a:	f06f 0068 	mvn.w	r0, #104	; 0x68
   3660e:	e7fb      	b.n	36608 <hci_generate_dhkey_v1+0x2e>

00036610 <reset_pairing>:
	conn->required_sec_level = conn->sec_level;
   36610:	7a43      	ldrb	r3, [r0, #9]
   36612:	7283      	strb	r3, [r0, #10]
}
   36614:	4770      	bx	lr

00036616 <tx_notify>:
{
   36616:	b570      	push	{r4, r5, r6, lr}
   36618:	4604      	mov	r4, r0
	BT_DBG("conn %p", conn);
   3661a:	e010      	b.n	3663e <tx_notify+0x28>
   3661c:	f383 8811 	msr	BASEPRI, r3
   36620:	f3bf 8f6f 	isb	sy
}
   36624:	bd70      	pop	{r4, r5, r6, pc}
	list->tail = node;
   36626:	6262      	str	r2, [r4, #36]	; 0x24
   36628:	f383 8811 	msr	BASEPRI, r3
   3662c:	f3bf 8f6f 	isb	sy
		cb = tx->cb;
   36630:	6845      	ldr	r5, [r0, #4]
		user_data = tx->user_data;
   36632:	6886      	ldr	r6, [r0, #8]
		tx_free(tx);
   36634:	f7ec fe44 	bl	232c0 <tx_free>
		cb(conn, user_data);
   36638:	4631      	mov	r1, r6
   3663a:	4620      	mov	r0, r4
   3663c:	47a8      	blx	r5
	__asm__ volatile(
   3663e:	f04f 0240 	mov.w	r2, #64	; 0x40
   36642:	f3ef 8311 	mrs	r3, BASEPRI
   36646:	f382 8812 	msr	BASEPRI_MAX, r2
   3664a:	f3bf 8f6f 	isb	sy
	return list->head;
   3664e:	6a20      	ldr	r0, [r4, #32]
		if (sys_slist_is_empty(&conn->tx_complete)) {
   36650:	2800      	cmp	r0, #0
   36652:	d0e3      	beq.n	3661c <tx_notify+0x6>
	return node->next;
   36654:	6802      	ldr	r2, [r0, #0]
	list->head = node;
   36656:	6222      	str	r2, [r4, #32]
	return list->tail;
   36658:	6a61      	ldr	r1, [r4, #36]	; 0x24
Z_GENLIST_GET_NOT_EMPTY(slist, snode)
   3665a:	4281      	cmp	r1, r0
   3665c:	d1e4      	bne.n	36628 <tx_notify+0x12>
   3665e:	e7e2      	b.n	36626 <tx_notify+0x10>

00036660 <tx_complete_work>:
{
   36660:	b508      	push	{r3, lr}
	tx_notify(conn);
   36662:	3828      	subs	r0, #40	; 0x28
   36664:	f7ff ffd7 	bl	36616 <tx_notify>
}
   36668:	bd08      	pop	{r3, pc}

0003666a <send_acl>:
{
   3666a:	b570      	push	{r4, r5, r6, lr}
   3666c:	4605      	mov	r5, r0
   3666e:	460c      	mov	r4, r1
	switch (flags) {
   36670:	2a03      	cmp	r2, #3
   36672:	d819      	bhi.n	366a8 <send_acl+0x3e>
   36674:	e8df f002 	tbb	[pc, r2]
   36678:	16021602 	.word	0x16021602
		flags = BT_ACL_CONT;
   3667c:	2600      	movs	r6, #0
	return net_buf_simple_push(&buf->b, len);
   3667e:	2104      	movs	r1, #4
   36680:	f104 0008 	add.w	r0, r4, #8
   36684:	f7f3 f964 	bl	29950 <net_buf_simple_push>
	hdr->handle = sys_cpu_to_le16(bt_acl_handle_pack(conn->handle, flags));
   36688:	f9b5 3000 	ldrsh.w	r3, [r5]
   3668c:	ea43 3306 	orr.w	r3, r3, r6, lsl #12
   36690:	8003      	strh	r3, [r0, #0]
	hdr->len = sys_cpu_to_le16(buf->len - sizeof(*hdr));
   36692:	89a3      	ldrh	r3, [r4, #12]
   36694:	3b04      	subs	r3, #4
   36696:	8043      	strh	r3, [r0, #2]
   36698:	2302      	movs	r3, #2
   3669a:	7523      	strb	r3, [r4, #20]
	return bt_send(buf);
   3669c:	4620      	mov	r0, r4
   3669e:	f7ff fc56 	bl	35f4e <bt_send>
}
   366a2:	bd70      	pop	{r4, r5, r6, pc}
		flags = BT_ACL_CONT;
   366a4:	2601      	movs	r6, #1
   366a6:	e7ea      	b.n	3667e <send_acl+0x14>
   366a8:	f06f 0015 	mvn.w	r0, #21
   366ac:	e7f9      	b.n	366a2 <send_acl+0x38>

000366ae <start_security>:
{
   366ae:	b508      	push	{r3, lr}
		return bt_smp_start_security(conn);
   366b0:	f002 f97a 	bl	389a8 <bt_smp_start_security>
}
   366b4:	bd08      	pop	{r3, pc}

000366b6 <process_unack_tx>:
{
   366b6:	b510      	push	{r4, lr}
   366b8:	4604      	mov	r4, r0
   366ba:	e028      	b.n	3670e <process_unack_tx+0x58>
			conn->pending_no_cb--;
   366bc:	3b01      	subs	r3, #1
   366be:	61e3      	str	r3, [r4, #28]
	__asm__ volatile(
   366c0:	f382 8811 	msr	BASEPRI, r2
   366c4:	f3bf 8f6f 	isb	sy
			k_sem_give(bt_conn_get_pkts(conn));
   366c8:	4620      	mov	r0, r4
   366ca:	f7ec fe8f 	bl	233ec <bt_conn_get_pkts>
	z_impl_k_sem_give(sem);
   366ce:	f7f9 fc29 	bl	2ff24 <z_impl_k_sem_give>
			continue;
   366d2:	e01c      	b.n	3670e <process_unack_tx+0x58>
	list->tail = node;
   366d4:	61a3      	str	r3, [r4, #24]
   366d6:	f382 8811 	msr	BASEPRI, r2
   366da:	f3bf 8f6f 	isb	sy
		if (!node) {
   366de:	b350      	cbz	r0, 36736 <process_unack_tx+0x80>
	__asm__ volatile(
   366e0:	f04f 0240 	mov.w	r2, #64	; 0x40
   366e4:	f3ef 8311 	mrs	r3, BASEPRI
   366e8:	f382 8812 	msr	BASEPRI_MAX, r2
   366ec:	f3bf 8f6f 	isb	sy
		conn->pending_no_cb = tx->pending_no_cb;
   366f0:	68c2      	ldr	r2, [r0, #12]
   366f2:	61e2      	str	r2, [r4, #28]
		tx->pending_no_cb = 0U;
   366f4:	2200      	movs	r2, #0
   366f6:	60c2      	str	r2, [r0, #12]
	__asm__ volatile(
   366f8:	f383 8811 	msr	BASEPRI, r3
   366fc:	f3bf 8f6f 	isb	sy
		tx_free(tx);
   36700:	f7ec fdde 	bl	232c0 <tx_free>
		k_sem_give(bt_conn_get_pkts(conn));
   36704:	4620      	mov	r0, r4
   36706:	f7ec fe71 	bl	233ec <bt_conn_get_pkts>
   3670a:	f7f9 fc0b 	bl	2ff24 <z_impl_k_sem_give>
	__asm__ volatile(
   3670e:	f04f 0340 	mov.w	r3, #64	; 0x40
   36712:	f3ef 8211 	mrs	r2, BASEPRI
   36716:	f383 8812 	msr	BASEPRI_MAX, r3
   3671a:	f3bf 8f6f 	isb	sy
		if (conn->pending_no_cb) {
   3671e:	69e3      	ldr	r3, [r4, #28]
   36720:	2b00      	cmp	r3, #0
   36722:	d1cb      	bne.n	366bc <process_unack_tx+0x6>
	return list->head;
   36724:	6960      	ldr	r0, [r4, #20]
Z_GENLIST_GET(slist, snode)
   36726:	2800      	cmp	r0, #0
   36728:	d0d5      	beq.n	366d6 <process_unack_tx+0x20>
	return node->next;
   3672a:	6803      	ldr	r3, [r0, #0]
	list->head = node;
   3672c:	6163      	str	r3, [r4, #20]
	return list->tail;
   3672e:	69a1      	ldr	r1, [r4, #24]
Z_GENLIST_GET_NOT_EMPTY(slist, snode)
   36730:	4288      	cmp	r0, r1
   36732:	d1d0      	bne.n	366d6 <process_unack_tx+0x20>
   36734:	e7ce      	b.n	366d4 <process_unack_tx+0x1e>
}
   36736:	bd10      	pop	{r4, pc}

00036738 <bt_conn_reset_rx_state>:
{
   36738:	b510      	push	{r4, lr}
   3673a:	4604      	mov	r4, r0
	if (!conn->rx) {
   3673c:	6900      	ldr	r0, [r0, #16]
   3673e:	b118      	cbz	r0, 36748 <bt_conn_reset_rx_state+0x10>
	net_buf_unref(conn->rx);
   36740:	f7f3 f80e 	bl	29760 <net_buf_unref>
	conn->rx = NULL;
   36744:	2300      	movs	r3, #0
   36746:	6123      	str	r3, [r4, #16]
}
   36748:	bd10      	pop	{r4, pc}

0003674a <conn_prepare_events>:
	return __atomic_load_n(target, __ATOMIC_SEQ_CST);
   3674a:	f3bf 8f5b 	dmb	ish
   3674e:	f8d0 30c0 	ldr.w	r3, [r0, #192]	; 0xc0
   36752:	f3bf 8f5b 	dmb	ish
	if (!atomic_get(&conn->ref)) {
   36756:	b33b      	cbz	r3, 367a8 <conn_prepare_events+0x5e>
{
   36758:	b510      	push	{r4, lr}
   3675a:	460c      	mov	r4, r1
	if (conn->state == BT_CONN_DISCONNECTED &&
   3675c:	7b43      	ldrb	r3, [r0, #13]
   3675e:	b983      	cbnz	r3, 36782 <conn_prepare_events+0x38>
	    atomic_test_and_clear_bit(conn->flags, BT_CONN_CLEANUP)) {
   36760:	1d03      	adds	r3, r0, #4
	return __atomic_fetch_and(target, value, __ATOMIC_SEQ_CST);
   36762:	f3bf 8f5b 	dmb	ish
   36766:	e853 2f00 	ldrex	r2, [r3]
   3676a:	f022 0140 	bic.w	r1, r2, #64	; 0x40
   3676e:	e843 1c00 	strex	ip, r1, [r3]
   36772:	f1bc 0f00 	cmp.w	ip, #0
   36776:	d1f6      	bne.n	36766 <conn_prepare_events+0x1c>
   36778:	f3bf 8f5b 	dmb	ish
	if (conn->state == BT_CONN_DISCONNECTED &&
   3677c:	f012 0f40 	tst.w	r2, #64	; 0x40
   36780:	d10d      	bne.n	3679e <conn_prepare_events+0x54>
	if (conn->state != BT_CONN_CONNECTED) {
   36782:	7b43      	ldrb	r3, [r0, #13]
   36784:	2b07      	cmp	r3, #7
   36786:	d112      	bne.n	367ae <conn_prepare_events+0x64>
	k_poll_event_init(&events[0],
   36788:	f100 0338 	add.w	r3, r0, #56	; 0x38
   3678c:	2200      	movs	r2, #0
   3678e:	2104      	movs	r1, #4
   36790:	4620      	mov	r0, r4
   36792:	f7fb ffbd 	bl	32710 <k_poll_event_init>
	events[0].tag = BT_EVENT_CONN_TX_QUEUE;
   36796:	2301      	movs	r3, #1
   36798:	7323      	strb	r3, [r4, #12]
	return 0;
   3679a:	2000      	movs	r0, #0
}
   3679c:	bd10      	pop	{r4, pc}
		conn_cleanup(conn);
   3679e:	f7ec ff6d 	bl	2367c <conn_cleanup>
		return -ENOTCONN;
   367a2:	f06f 007f 	mvn.w	r0, #127	; 0x7f
   367a6:	e7f9      	b.n	3679c <conn_prepare_events+0x52>
		return -ENOTCONN;
   367a8:	f06f 007f 	mvn.w	r0, #127	; 0x7f
}
   367ac:	4770      	bx	lr
		return -ENOTCONN;
   367ae:	f06f 007f 	mvn.w	r0, #127	; 0x7f
   367b2:	e7f3      	b.n	3679c <conn_prepare_events+0x52>

000367b4 <bt_conn_recv>:
{
   367b4:	b570      	push	{r4, r5, r6, lr}
   367b6:	4604      	mov	r4, r0
   367b8:	460d      	mov	r5, r1
   367ba:	4616      	mov	r6, r2
	tx_notify(conn);
   367bc:	f7ff ff2b 	bl	36616 <tx_notify>
		bt_acl_recv(conn, buf, flags);
   367c0:	4632      	mov	r2, r6
   367c2:	4629      	mov	r1, r5
   367c4:	4620      	mov	r0, r4
   367c6:	f7ec fee5 	bl	23594 <bt_acl_recv>
}
   367ca:	bd70      	pop	{r4, r5, r6, pc}

000367cc <bt_conn_ref>:
	return __atomic_load_n(target, __ATOMIC_SEQ_CST);
   367cc:	f3bf 8f5b 	dmb	ish
   367d0:	f8d0 30c0 	ldr.w	r3, [r0, #192]	; 0xc0
   367d4:	f3bf 8f5b 	dmb	ish
		if (!old) {
   367d8:	b1eb      	cbz	r3, 36816 <bt_conn_ref+0x4a>
{
   367da:	b410      	push	{r4}
   367dc:	e006      	b.n	367ec <bt_conn_ref+0x20>
   367de:	f3bf 8f5b 	dmb	ish
   367e2:	f8d0 30c0 	ldr.w	r3, [r0, #192]	; 0xc0
   367e6:	f3bf 8f5b 	dmb	ish
		if (!old) {
   367ea:	b193      	cbz	r3, 36812 <bt_conn_ref+0x46>
   367ec:	f100 02c0 	add.w	r2, r0, #192	; 0xc0
	} while (!atomic_cas(&conn->ref, old, old + 1));
   367f0:	1c59      	adds	r1, r3, #1
	return __atomic_compare_exchange_n(target, &old_value, new_value,
   367f2:	f3bf 8f5b 	dmb	ish
   367f6:	e852 4f00 	ldrex	r4, [r2]
   367fa:	429c      	cmp	r4, r3
   367fc:	d104      	bne.n	36808 <bt_conn_ref+0x3c>
   367fe:	e842 1c00 	strex	ip, r1, [r2]
   36802:	f1bc 0f00 	cmp.w	ip, #0
   36806:	d1f6      	bne.n	367f6 <bt_conn_ref+0x2a>
   36808:	f3bf 8f5b 	dmb	ish
   3680c:	d1e7      	bne.n	367de <bt_conn_ref+0x12>
}
   3680e:	bc10      	pop	{r4}
   36810:	4770      	bx	lr
			return NULL;
   36812:	2000      	movs	r0, #0
   36814:	e7fb      	b.n	3680e <bt_conn_ref+0x42>
   36816:	2000      	movs	r0, #0
}
   36818:	4770      	bx	lr

0003681a <conn_lookup_handle>:
{
   3681a:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   3681e:	4607      	mov	r7, r0
   36820:	460e      	mov	r6, r1
   36822:	4690      	mov	r8, r2
	for (i = 0; i < size; i++) {
   36824:	2400      	movs	r4, #0
   36826:	e003      	b.n	36830 <conn_lookup_handle+0x16>
			bt_conn_unref(conn);
   36828:	4628      	mov	r0, r5
   3682a:	f7ec ffc7 	bl	237bc <bt_conn_unref>
	for (i = 0; i < size; i++) {
   3682e:	3401      	adds	r4, #1
   36830:	42b4      	cmp	r4, r6
   36832:	d21b      	bcs.n	3686c <conn_lookup_handle+0x52>
		struct bt_conn *conn = bt_conn_ref(&conns[i]);
   36834:	20c8      	movs	r0, #200	; 0xc8
   36836:	fb00 7004 	mla	r0, r0, r4, r7
   3683a:	f7ff ffc7 	bl	367cc <bt_conn_ref>
		if (!conn) {
   3683e:	4605      	mov	r5, r0
   36840:	2800      	cmp	r0, #0
   36842:	d0f4      	beq.n	3682e <conn_lookup_handle+0x14>
/* Look up an existing connection */
struct bt_conn *bt_conn_lookup_handle(uint16_t handle);

static inline bool bt_conn_is_handle_valid(struct bt_conn *conn)
{
	switch (conn->state) {
   36844:	7b43      	ldrb	r3, [r0, #13]
   36846:	2b01      	cmp	r3, #1
   36848:	d006      	beq.n	36858 <conn_lookup_handle+0x3e>
   3684a:	b25a      	sxtb	r2, r3
   3684c:	2a00      	cmp	r2, #0
   3684e:	d0eb      	beq.n	36828 <conn_lookup_handle+0xe>
   36850:	3b07      	subs	r3, #7
   36852:	b2db      	uxtb	r3, r3
   36854:	2b01      	cmp	r3, #1
   36856:	d8e7      	bhi.n	36828 <conn_lookup_handle+0xe>
		if (conn->handle != handle) {
   36858:	882b      	ldrh	r3, [r5, #0]
   3685a:	4543      	cmp	r3, r8
   3685c:	d102      	bne.n	36864 <conn_lookup_handle+0x4a>
}
   3685e:	4628      	mov	r0, r5
   36860:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
			bt_conn_unref(conn);
   36864:	4628      	mov	r0, r5
   36866:	f7ec ffa9 	bl	237bc <bt_conn_unref>
			continue;
   3686a:	e7e0      	b.n	3682e <conn_lookup_handle+0x14>
	return NULL;
   3686c:	2500      	movs	r5, #0
   3686e:	e7f6      	b.n	3685e <conn_lookup_handle+0x44>

00036870 <conn_disconnect>:
{
   36870:	b538      	push	{r3, r4, r5, lr}
   36872:	4604      	mov	r4, r0
	err = bt_hci_disconnect(conn->handle, reason);
   36874:	8800      	ldrh	r0, [r0, #0]
   36876:	f7ff fb01 	bl	35e7c <bt_hci_disconnect>
	if (err) {
   3687a:	4605      	mov	r5, r0
   3687c:	b910      	cbnz	r0, 36884 <conn_disconnect+0x14>
	if (conn->state == BT_CONN_CONNECTED) {
   3687e:	7b63      	ldrb	r3, [r4, #13]
   36880:	2b07      	cmp	r3, #7
   36882:	d001      	beq.n	36888 <conn_disconnect+0x18>
}
   36884:	4628      	mov	r0, r5
   36886:	bd38      	pop	{r3, r4, r5, pc}
		bt_conn_set_state(conn, BT_CONN_DISCONNECT);
   36888:	2108      	movs	r1, #8
   3688a:	4620      	mov	r0, r4
   3688c:	f7ec ffd2 	bl	23834 <bt_conn_set_state>
   36890:	e7f8      	b.n	36884 <conn_disconnect+0x14>

00036892 <bt_conn_connected>:
{
   36892:	b510      	push	{r4, lr}
   36894:	4604      	mov	r4, r0
	bt_l2cap_connected(conn);
   36896:	f7ed fcd3 	bl	24240 <bt_l2cap_connected>
	notify_connected(conn);
   3689a:	4620      	mov	r0, r4
   3689c:	f7ec fd6a 	bl	23374 <notify_connected>
}
   368a0:	bd10      	pop	{r4, pc}

000368a2 <bt_conn_disconnect>:
{
   368a2:	b508      	push	{r3, lr}
	switch (conn->state) {
   368a4:	7b43      	ldrb	r3, [r0, #13]
   368a6:	3b02      	subs	r3, #2
   368a8:	2b06      	cmp	r3, #6
   368aa:	d810      	bhi.n	368ce <bt_conn_disconnect+0x2c>
   368ac:	e8df f003 	tbb	[pc, r3]
   368b0:	0f0f0f06 	.word	0x0f0f0f06
   368b4:	0c04      	.short	0x0c04
   368b6:	04          	.byte	0x04
   368b7:	00          	.byte	0x00
   368b8:	2000      	movs	r0, #0
}
   368ba:	bd08      	pop	{r3, pc}
		conn->err = reason;
   368bc:	7301      	strb	r1, [r0, #12]
		bt_conn_set_state(conn, BT_CONN_DISCONNECTED);
   368be:	2100      	movs	r1, #0
   368c0:	f7ec ffb8 	bl	23834 <bt_conn_set_state>
		return 0;
   368c4:	2000      	movs	r0, #0
   368c6:	e7f8      	b.n	368ba <bt_conn_disconnect+0x18>
		return conn_disconnect(conn, reason);
   368c8:	f7ff ffd2 	bl	36870 <conn_disconnect>
   368cc:	e7f5      	b.n	368ba <bt_conn_disconnect+0x18>
		return -ENOTCONN;
   368ce:	f06f 007f 	mvn.w	r0, #127	; 0x7f
   368d2:	e7f2      	b.n	368ba <bt_conn_disconnect+0x18>

000368d4 <bt_conn_set_security>:
	if (conn->state != BT_CONN_CONNECTED) {
   368d4:	7b43      	ldrb	r3, [r0, #13]
   368d6:	2b07      	cmp	r3, #7
   368d8:	d12f      	bne.n	3693a <bt_conn_set_security+0x66>
{
   368da:	b510      	push	{r4, lr}
   368dc:	4604      	mov	r4, r0
	if (conn->sec_level >= sec || conn->required_sec_level >= sec) {
   368de:	7a43      	ldrb	r3, [r0, #9]
   368e0:	428b      	cmp	r3, r1
   368e2:	d22d      	bcs.n	36940 <bt_conn_set_security+0x6c>
   368e4:	7a83      	ldrb	r3, [r0, #10]
   368e6:	428b      	cmp	r3, r1
   368e8:	d301      	bcc.n	368ee <bt_conn_set_security+0x1a>
		return 0;
   368ea:	2000      	movs	r0, #0
   368ec:	e029      	b.n	36942 <bt_conn_set_security+0x6e>
	atomic_set_bit_to(conn->flags, BT_CONN_FORCE_PAIR,
   368ee:	1d03      	adds	r3, r0, #4
	if (val) {
   368f0:	09ca      	lsrs	r2, r1, #7
   368f2:	d015      	beq.n	36920 <bt_conn_set_security+0x4c>
	return __atomic_fetch_or(target, value, __ATOMIC_SEQ_CST);
   368f4:	f3bf 8f5b 	dmb	ish
   368f8:	e853 2f00 	ldrex	r2, [r3]
   368fc:	f442 6200 	orr.w	r2, r2, #2048	; 0x800
   36900:	e843 2000 	strex	r0, r2, [r3]
   36904:	2800      	cmp	r0, #0
   36906:	d1f7      	bne.n	368f8 <bt_conn_set_security+0x24>
   36908:	f3bf 8f5b 	dmb	ish
	conn->required_sec_level = sec & ~BT_SECURITY_FORCE_PAIR;
   3690c:	f001 017f 	and.w	r1, r1, #127	; 0x7f
   36910:	72a1      	strb	r1, [r4, #10]
	err = start_security(conn);
   36912:	4620      	mov	r0, r4
   36914:	f7ff fecb 	bl	366ae <start_security>
	if (err) {
   36918:	b198      	cbz	r0, 36942 <bt_conn_set_security+0x6e>
		conn->required_sec_level = conn->sec_level;
   3691a:	7a63      	ldrb	r3, [r4, #9]
   3691c:	72a3      	strb	r3, [r4, #10]
   3691e:	e010      	b.n	36942 <bt_conn_set_security+0x6e>
	return __atomic_fetch_and(target, value, __ATOMIC_SEQ_CST);
   36920:	f3bf 8f5b 	dmb	ish
   36924:	e853 2f00 	ldrex	r2, [r3]
   36928:	f422 6200 	bic.w	r2, r2, #2048	; 0x800
   3692c:	e843 2000 	strex	r0, r2, [r3]
   36930:	2800      	cmp	r0, #0
   36932:	d1f7      	bne.n	36924 <bt_conn_set_security+0x50>
   36934:	f3bf 8f5b 	dmb	ish
   36938:	e7e8      	b.n	3690c <bt_conn_set_security+0x38>
		return -ENOTCONN;
   3693a:	f06f 007f 	mvn.w	r0, #127	; 0x7f
}
   3693e:	4770      	bx	lr
		return 0;
   36940:	2000      	movs	r0, #0
}
   36942:	bd10      	pop	{r4, pc}

00036944 <bt_conn_get_security>:
}
   36944:	7a40      	ldrb	r0, [r0, #9]
   36946:	4770      	bx	lr

00036948 <bt_conn_add_le>:
{
   36948:	b570      	push	{r4, r5, r6, lr}
   3694a:	4606      	mov	r6, r0
   3694c:	460d      	mov	r5, r1
	struct bt_conn *conn = acl_conn_new();
   3694e:	f7ec fe19 	bl	23584 <acl_conn_new>
	if (!conn) {
   36952:	4604      	mov	r4, r0
   36954:	b178      	cbz	r0, 36976 <bt_conn_add_le+0x2e>
	conn->id = id;
   36956:	7206      	strb	r6, [r0, #8]
   36958:	2207      	movs	r2, #7
   3695a:	4629      	mov	r1, r5
   3695c:	3090      	adds	r0, #144	; 0x90
   3695e:	f7ff f8cd 	bl	35afc <memcpy>
	conn->sec_level = BT_SECURITY_L1;
   36962:	2301      	movs	r3, #1
   36964:	7263      	strb	r3, [r4, #9]
	conn->required_sec_level = BT_SECURITY_L1;
   36966:	72a3      	strb	r3, [r4, #10]
	conn->type = BT_CONN_TYPE_LE;
   36968:	70a3      	strb	r3, [r4, #2]
	conn->le.interval_min = BT_GAP_INIT_CONN_INT_MIN;
   3696a:	2318      	movs	r3, #24
   3696c:	f8a4 30a8 	strh.w	r3, [r4, #168]	; 0xa8
	conn->le.interval_max = BT_GAP_INIT_CONN_INT_MAX;
   36970:	2328      	movs	r3, #40	; 0x28
   36972:	f8a4 30aa 	strh.w	r3, [r4, #170]	; 0xaa
}
   36976:	4620      	mov	r0, r4
   36978:	bd70      	pop	{r4, r5, r6, pc}

0003697a <bt_conn_is_peer_addr_le>:
{
   3697a:	b538      	push	{r3, r4, r5, lr}
	if (id != conn->id) {
   3697c:	7a03      	ldrb	r3, [r0, #8]
   3697e:	428b      	cmp	r3, r1
   36980:	d001      	beq.n	36986 <bt_conn_is_peer_addr_le+0xc>
		return false;
   36982:	2000      	movs	r0, #0
}
   36984:	bd38      	pop	{r3, r4, r5, pc}
   36986:	4604      	mov	r4, r0
   36988:	4615      	mov	r5, r2
	return memcmp(a, b, sizeof(*a));
   3698a:	2207      	movs	r2, #7
   3698c:	f100 0190 	add.w	r1, r0, #144	; 0x90
   36990:	4628      	mov	r0, r5
   36992:	f7ff f89c 	bl	35ace <memcmp>
	if (!bt_addr_le_cmp(peer, &conn->le.dst)) {
   36996:	b1a8      	cbz	r0, 369c4 <bt_conn_is_peer_addr_le+0x4a>
	if (conn->role == BT_HCI_ROLE_CENTRAL) {
   36998:	78e3      	ldrb	r3, [r4, #3]
   3699a:	b14b      	cbz	r3, 369b0 <bt_conn_is_peer_addr_le+0x36>
   3699c:	2207      	movs	r2, #7
   3699e:	f104 0197 	add.w	r1, r4, #151	; 0x97
   369a2:	4628      	mov	r0, r5
   369a4:	f7ff f893 	bl	35ace <memcmp>
	return bt_addr_le_cmp(peer, &conn->le.init_addr) == 0;
   369a8:	fab0 f080 	clz	r0, r0
   369ac:	0940      	lsrs	r0, r0, #5
   369ae:	e7e9      	b.n	36984 <bt_conn_is_peer_addr_le+0xa>
   369b0:	2207      	movs	r2, #7
   369b2:	f104 019e 	add.w	r1, r4, #158	; 0x9e
   369b6:	4628      	mov	r0, r5
   369b8:	f7ff f889 	bl	35ace <memcmp>
		return bt_addr_le_cmp(peer, &conn->le.resp_addr) == 0;
   369bc:	fab0 f080 	clz	r0, r0
   369c0:	0940      	lsrs	r0, r0, #5
   369c2:	e7df      	b.n	36984 <bt_conn_is_peer_addr_le+0xa>
		return true;
   369c4:	2001      	movs	r0, #1
   369c6:	e7dd      	b.n	36984 <bt_conn_is_peer_addr_le+0xa>

000369c8 <bt_conn_get_dst>:
}
   369c8:	3090      	adds	r0, #144	; 0x90
   369ca:	4770      	bx	lr

000369cc <bt_conn_le_conn_update>:
{
   369cc:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
   369ce:	4606      	mov	r6, r0
   369d0:	460d      	mov	r5, r1
	buf = bt_hci_cmd_create(BT_HCI_OP_LE_CONN_UPDATE,
   369d2:	210e      	movs	r1, #14
   369d4:	f242 0013 	movw	r0, #8211	; 0x2013
   369d8:	f7ea fbd0 	bl	2117c <bt_hci_cmd_create>
	if (!buf) {
   369dc:	b1d0      	cbz	r0, 36a14 <bt_conn_le_conn_update+0x48>
   369de:	4607      	mov	r7, r0
	return net_buf_simple_add(&buf->b, len);
   369e0:	210e      	movs	r1, #14
   369e2:	3008      	adds	r0, #8
   369e4:	f7f2 ffd4 	bl	29990 <net_buf_simple_add>
   369e8:	4604      	mov	r4, r0
	(void)memset(conn_update, 0, sizeof(*conn_update));
   369ea:	220e      	movs	r2, #14
   369ec:	2100      	movs	r1, #0
   369ee:	f7ff f8a9 	bl	35b44 <memset>
	conn_update->handle = sys_cpu_to_le16(conn->handle);
   369f2:	8833      	ldrh	r3, [r6, #0]
   369f4:	8023      	strh	r3, [r4, #0]
	conn_update->conn_interval_min = sys_cpu_to_le16(param->interval_min);
   369f6:	882b      	ldrh	r3, [r5, #0]
   369f8:	8063      	strh	r3, [r4, #2]
	conn_update->conn_interval_max = sys_cpu_to_le16(param->interval_max);
   369fa:	886b      	ldrh	r3, [r5, #2]
   369fc:	80a3      	strh	r3, [r4, #4]
	conn_update->conn_latency = sys_cpu_to_le16(param->latency);
   369fe:	88ab      	ldrh	r3, [r5, #4]
   36a00:	80e3      	strh	r3, [r4, #6]
	conn_update->supervision_timeout = sys_cpu_to_le16(param->timeout);
   36a02:	88eb      	ldrh	r3, [r5, #6]
   36a04:	8123      	strh	r3, [r4, #8]
	return bt_hci_cmd_send_sync(BT_HCI_OP_LE_CONN_UPDATE, buf, NULL);
   36a06:	2200      	movs	r2, #0
   36a08:	4639      	mov	r1, r7
   36a0a:	f242 0013 	movw	r0, #8211	; 0x2013
   36a0e:	f7ea fc01 	bl	21214 <bt_hci_cmd_send_sync>
}
   36a12:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
		return -ENOBUFS;
   36a14:	f06f 0068 	mvn.w	r0, #104	; 0x68
   36a18:	e7fb      	b.n	36a12 <bt_conn_le_conn_update+0x46>

00036a1a <l2cap_connected>:
}
   36a1a:	4770      	bx	lr

00036a1c <l2cap_chan_recv>:
{
   36a1c:	b510      	push	{r4, lr}
   36a1e:	460c      	mov	r4, r1
	chan->ops->recv(chan, buf);
   36a20:	6843      	ldr	r3, [r0, #4]
   36a22:	691b      	ldr	r3, [r3, #16]
   36a24:	4798      	blx	r3
	net_buf_unref(buf);
   36a26:	4620      	mov	r0, r4
   36a28:	f7f2 fe9a 	bl	29760 <net_buf_unref>
}
   36a2c:	bd10      	pop	{r4, pc}

00036a2e <l2cap_disconnected>:
{
   36a2e:	b508      	push	{r3, lr}
	(void)k_work_cancel_delayable(&chan->rtx_work);
   36a30:	3010      	adds	r0, #16
   36a32:	f7f9 ff9f 	bl	30974 <k_work_cancel_delayable>
}
   36a36:	bd08      	pop	{r3, pc}

00036a38 <bt_l2cap_chan_remove>:
	return list->head;
   36a38:	6d43      	ldr	r3, [r0, #84]	; 0x54
	SYS_SLIST_FOR_EACH_CONTAINER(&conn->channels, chan, node) {
   36a3a:	b103      	cbz	r3, 36a3e <bt_l2cap_chan_remove+0x6>
   36a3c:	3b08      	subs	r3, #8
   36a3e:	2200      	movs	r2, #0
   36a40:	e016      	b.n	36a70 <bt_l2cap_chan_remove+0x38>
{
   36a42:	b410      	push	{r4}
			sys_slist_remove(&conn->channels, prev, &chan->node);
   36a44:	f103 0108 	add.w	r1, r3, #8
Z_GENLIST_REMOVE(slist, snode)
   36a48:	b142      	cbz	r2, 36a5c <bt_l2cap_chan_remove+0x24>
	return node->next;
   36a4a:	689c      	ldr	r4, [r3, #8]
	parent->next = child;
   36a4c:	6014      	str	r4, [r2, #0]
	return list->tail;
   36a4e:	6d84      	ldr	r4, [r0, #88]	; 0x58
Z_GENLIST_REMOVE(slist, snode)
   36a50:	42a1      	cmp	r1, r4
   36a52:	d00a      	beq.n	36a6a <bt_l2cap_chan_remove+0x32>
	parent->next = child;
   36a54:	2200      	movs	r2, #0
   36a56:	609a      	str	r2, [r3, #8]
}
   36a58:	bc10      	pop	{r4}
   36a5a:	4770      	bx	lr
	return node->next;
   36a5c:	689a      	ldr	r2, [r3, #8]
	list->head = node;
   36a5e:	6542      	str	r2, [r0, #84]	; 0x54
	return list->tail;
   36a60:	6d84      	ldr	r4, [r0, #88]	; 0x58
Z_GENLIST_REMOVE(slist, snode)
   36a62:	42a1      	cmp	r1, r4
   36a64:	d1f6      	bne.n	36a54 <bt_l2cap_chan_remove+0x1c>
	list->tail = node;
   36a66:	6582      	str	r2, [r0, #88]	; 0x58
}
   36a68:	e7f4      	b.n	36a54 <bt_l2cap_chan_remove+0x1c>
	list->tail = node;
   36a6a:	6582      	str	r2, [r0, #88]	; 0x58
}
   36a6c:	e7f2      	b.n	36a54 <bt_l2cap_chan_remove+0x1c>
	SYS_SLIST_FOR_EACH_CONTAINER(&conn->channels, chan, node) {
   36a6e:	4613      	mov	r3, r2
   36a70:	b14b      	cbz	r3, 36a86 <bt_l2cap_chan_remove+0x4e>
		if (chan == ch) {
   36a72:	428b      	cmp	r3, r1
   36a74:	d0e5      	beq.n	36a42 <bt_l2cap_chan_remove+0xa>
Z_GENLIST_PEEK_NEXT(slist, snode)
   36a76:	f113 0208 	adds.w	r2, r3, #8
   36a7a:	d0f8      	beq.n	36a6e <bt_l2cap_chan_remove+0x36>
	return node->next;
   36a7c:	689b      	ldr	r3, [r3, #8]
	SYS_SLIST_FOR_EACH_CONTAINER(&conn->channels, chan, node) {
   36a7e:	2b00      	cmp	r3, #0
   36a80:	d0f6      	beq.n	36a70 <bt_l2cap_chan_remove+0x38>
   36a82:	3b08      	subs	r3, #8
   36a84:	e7f4      	b.n	36a70 <bt_l2cap_chan_remove+0x38>
   36a86:	4770      	bx	lr

00036a88 <bt_l2cap_chan_del>:
{
   36a88:	b538      	push	{r3, r4, r5, lr}
   36a8a:	4604      	mov	r4, r0
	const struct bt_l2cap_chan_ops *ops = chan->ops;
   36a8c:	6845      	ldr	r5, [r0, #4]
	if (!chan->conn) {
   36a8e:	6803      	ldr	r3, [r0, #0]
   36a90:	b123      	cbz	r3, 36a9c <bt_l2cap_chan_del+0x14>
	if (ops->disconnected) {
   36a92:	686b      	ldr	r3, [r5, #4]
   36a94:	b103      	cbz	r3, 36a98 <bt_l2cap_chan_del+0x10>
		ops->disconnected(chan);
   36a96:	4798      	blx	r3
	chan->conn = NULL;
   36a98:	2300      	movs	r3, #0
   36a9a:	6023      	str	r3, [r4, #0]
	if (chan->destroy) {
   36a9c:	68e3      	ldr	r3, [r4, #12]
   36a9e:	b10b      	cbz	r3, 36aa4 <bt_l2cap_chan_del+0x1c>
		chan->destroy(chan);
   36aa0:	4620      	mov	r0, r4
   36aa2:	4798      	blx	r3
	if (ops->released) {
   36aa4:	69eb      	ldr	r3, [r5, #28]
   36aa6:	b10b      	cbz	r3, 36aac <bt_l2cap_chan_del+0x24>
		ops->released(chan);
   36aa8:	4620      	mov	r0, r4
   36aaa:	4798      	blx	r3
}
   36aac:	bd38      	pop	{r3, r4, r5, pc}

00036aae <bt_l2cap_chan_add>:
{
   36aae:	b410      	push	{r4}
	sys_slist_append(&conn->channels, &chan->node);
   36ab0:	f101 0308 	add.w	r3, r1, #8
	parent->next = child;
   36ab4:	2400      	movs	r4, #0
   36ab6:	608c      	str	r4, [r1, #8]
	return list->tail;
   36ab8:	6d84      	ldr	r4, [r0, #88]	; 0x58
Z_GENLIST_APPEND(slist, snode)
   36aba:	b12c      	cbz	r4, 36ac8 <bt_l2cap_chan_add+0x1a>
	parent->next = child;
   36abc:	6023      	str	r3, [r4, #0]
	list->tail = node;
   36abe:	6583      	str	r3, [r0, #88]	; 0x58
	chan->conn = conn;
   36ac0:	6008      	str	r0, [r1, #0]
	chan->destroy = destroy;
   36ac2:	60ca      	str	r2, [r1, #12]
}
   36ac4:	bc10      	pop	{r4}
   36ac6:	4770      	bx	lr
   36ac8:	6583      	str	r3, [r0, #88]	; 0x58
	list->head = node;
   36aca:	6543      	str	r3, [r0, #84]	; 0x54
}
   36acc:	e7f8      	b.n	36ac0 <bt_l2cap_chan_add+0x12>

00036ace <bt_l2cap_disconnected>:
{
   36ace:	b510      	push	{r4, lr}
	return list->head;
   36ad0:	6d40      	ldr	r0, [r0, #84]	; 0x54
	SYS_SLIST_FOR_EACH_CONTAINER_SAFE(&conn->channels, chan, next, node) {
   36ad2:	b140      	cbz	r0, 36ae6 <bt_l2cap_disconnected+0x18>
   36ad4:	3808      	subs	r0, #8
   36ad6:	d008      	beq.n	36aea <bt_l2cap_disconnected+0x1c>
Z_GENLIST_PEEK_NEXT(slist, snode)
   36ad8:	f110 0408 	adds.w	r4, r0, #8
   36adc:	d00a      	beq.n	36af4 <bt_l2cap_disconnected+0x26>
	return node->next;
   36ade:	6884      	ldr	r4, [r0, #8]
   36ae0:	b144      	cbz	r4, 36af4 <bt_l2cap_disconnected+0x26>
   36ae2:	3c08      	subs	r4, #8
   36ae4:	e006      	b.n	36af4 <bt_l2cap_disconnected+0x26>
   36ae6:	4604      	mov	r4, r0
   36ae8:	e004      	b.n	36af4 <bt_l2cap_disconnected+0x26>
   36aea:	4604      	mov	r4, r0
   36aec:	e002      	b.n	36af4 <bt_l2cap_disconnected+0x26>
   36aee:	4623      	mov	r3, r4
   36af0:	4620      	mov	r0, r4
   36af2:	461c      	mov	r4, r3
   36af4:	b158      	cbz	r0, 36b0e <bt_l2cap_disconnected+0x40>
		bt_l2cap_chan_del(chan);
   36af6:	f7ff ffc7 	bl	36a88 <bt_l2cap_chan_del>
	SYS_SLIST_FOR_EACH_CONTAINER_SAFE(&conn->channels, chan, next, node) {
   36afa:	2c00      	cmp	r4, #0
   36afc:	d0f7      	beq.n	36aee <bt_l2cap_disconnected+0x20>
Z_GENLIST_PEEK_NEXT(slist, snode)
   36afe:	f114 0308 	adds.w	r3, r4, #8
   36b02:	d0f5      	beq.n	36af0 <bt_l2cap_disconnected+0x22>
	return node->next;
   36b04:	68a3      	ldr	r3, [r4, #8]
   36b06:	2b00      	cmp	r3, #0
   36b08:	d0f2      	beq.n	36af0 <bt_l2cap_disconnected+0x22>
   36b0a:	3b08      	subs	r3, #8
   36b0c:	e7f0      	b.n	36af0 <bt_l2cap_disconnected+0x22>
}
   36b0e:	bd10      	pop	{r4, pc}

00036b10 <bt_l2cap_security_changed>:
{
   36b10:	b538      	push	{r3, r4, r5, lr}
   36b12:	460d      	mov	r5, r1
	return list->head;
   36b14:	6d40      	ldr	r0, [r0, #84]	; 0x54
	SYS_SLIST_FOR_EACH_CONTAINER_SAFE(&conn->channels, chan, next, node) {
   36b16:	b140      	cbz	r0, 36b2a <bt_l2cap_security_changed+0x1a>
   36b18:	3808      	subs	r0, #8
   36b1a:	d008      	beq.n	36b2e <bt_l2cap_security_changed+0x1e>
Z_GENLIST_PEEK_NEXT(slist, snode)
   36b1c:	f110 0408 	adds.w	r4, r0, #8
   36b20:	d00a      	beq.n	36b38 <bt_l2cap_security_changed+0x28>
	return node->next;
   36b22:	6884      	ldr	r4, [r0, #8]
   36b24:	b144      	cbz	r4, 36b38 <bt_l2cap_security_changed+0x28>
   36b26:	3c08      	subs	r4, #8
   36b28:	e006      	b.n	36b38 <bt_l2cap_security_changed+0x28>
   36b2a:	4604      	mov	r4, r0
   36b2c:	e004      	b.n	36b38 <bt_l2cap_security_changed+0x28>
   36b2e:	4604      	mov	r4, r0
   36b30:	e002      	b.n	36b38 <bt_l2cap_security_changed+0x28>
   36b32:	4623      	mov	r3, r4
   36b34:	4620      	mov	r0, r4
   36b36:	461c      	mov	r4, r3
   36b38:	b170      	cbz	r0, 36b58 <bt_l2cap_security_changed+0x48>
		if (chan->ops->encrypt_change) {
   36b3a:	6843      	ldr	r3, [r0, #4]
   36b3c:	689b      	ldr	r3, [r3, #8]
   36b3e:	b10b      	cbz	r3, 36b44 <bt_l2cap_security_changed+0x34>
			chan->ops->encrypt_change(chan, hci_status);
   36b40:	4629      	mov	r1, r5
   36b42:	4798      	blx	r3
	SYS_SLIST_FOR_EACH_CONTAINER_SAFE(&conn->channels, chan, next, node) {
   36b44:	2c00      	cmp	r4, #0
   36b46:	d0f4      	beq.n	36b32 <bt_l2cap_security_changed+0x22>
Z_GENLIST_PEEK_NEXT(slist, snode)
   36b48:	f114 0308 	adds.w	r3, r4, #8
   36b4c:	d0f2      	beq.n	36b34 <bt_l2cap_security_changed+0x24>
	return node->next;
   36b4e:	68a3      	ldr	r3, [r4, #8]
   36b50:	2b00      	cmp	r3, #0
   36b52:	d0ef      	beq.n	36b34 <bt_l2cap_security_changed+0x24>
   36b54:	3b08      	subs	r3, #8
   36b56:	e7ed      	b.n	36b34 <bt_l2cap_security_changed+0x24>
}
   36b58:	bd38      	pop	{r3, r4, r5, pc}

00036b5a <bt_l2cap_create_pdu_timeout>:
{
   36b5a:	b508      	push	{r3, lr}
	return bt_conn_create_pdu_timeout(pool,
   36b5c:	3104      	adds	r1, #4
   36b5e:	f7ec ff5b 	bl	23a18 <bt_conn_create_pdu_timeout>
}
   36b62:	bd08      	pop	{r3, pc}

00036b64 <bt_l2cap_send_cb>:
{
   36b64:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
   36b66:	4605      	mov	r5, r0
   36b68:	460f      	mov	r7, r1
   36b6a:	4614      	mov	r4, r2
   36b6c:	461e      	mov	r6, r3
	return net_buf_simple_push(&buf->b, len);
   36b6e:	2104      	movs	r1, #4
   36b70:	f102 0008 	add.w	r0, r2, #8
   36b74:	f7f2 feec 	bl	29950 <net_buf_simple_push>
	hdr->len = sys_cpu_to_le16(buf->len - sizeof(*hdr));
   36b78:	89a3      	ldrh	r3, [r4, #12]
   36b7a:	3b04      	subs	r3, #4
   36b7c:	8003      	strh	r3, [r0, #0]
	hdr->cid = sys_cpu_to_le16(cid);
   36b7e:	8047      	strh	r7, [r0, #2]
	return bt_conn_send_cb(conn, buf, cb, user_data);
   36b80:	9b06      	ldr	r3, [sp, #24]
   36b82:	4632      	mov	r2, r6
   36b84:	4621      	mov	r1, r4
   36b86:	4628      	mov	r0, r5
   36b88:	f7ec fdb8 	bl	236fc <bt_conn_send_cb>
}
   36b8c:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}

00036b8e <l2cap_send_reject>:
{
   36b8e:	e92d 43f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, lr}
   36b92:	b083      	sub	sp, #12
   36b94:	4605      	mov	r5, r0
   36b96:	4690      	mov	r8, r2
   36b98:	461c      	mov	r4, r3
   36b9a:	f89d 7028 	ldrb.w	r7, [sp, #40]	; 0x28
	buf = l2cap_create_le_sig_pdu(NULL, BT_L2CAP_CMD_REJECT, ident,
   36b9e:	1cbb      	adds	r3, r7, #2
   36ba0:	460a      	mov	r2, r1
   36ba2:	2101      	movs	r1, #1
   36ba4:	2000      	movs	r0, #0
   36ba6:	f7ed fb9b 	bl	242e0 <l2cap_create_le_sig_pdu>
	if (!buf) {
   36baa:	b1b0      	cbz	r0, 36bda <l2cap_send_reject+0x4c>
   36bac:	4606      	mov	r6, r0
	return net_buf_simple_add(&buf->b, len);
   36bae:	f100 0908 	add.w	r9, r0, #8
   36bb2:	2102      	movs	r1, #2
   36bb4:	4648      	mov	r0, r9
   36bb6:	f7f2 feeb 	bl	29990 <net_buf_simple_add>
	rej->reason = sys_cpu_to_le16(reason);
   36bba:	f8a0 8000 	strh.w	r8, [r0]
	if (data) {
   36bbe:	b124      	cbz	r4, 36bca <l2cap_send_reject+0x3c>
	return net_buf_simple_add_mem(&buf->b, mem, len);
   36bc0:	463a      	mov	r2, r7
   36bc2:	4621      	mov	r1, r4
   36bc4:	4648      	mov	r0, r9
   36bc6:	f002 fabd 	bl	39144 <net_buf_simple_add_mem>
		     bt_conn_tx_cb_t cb, void *user_data);

static inline int bt_l2cap_send(struct bt_conn *conn, uint16_t cid,
				struct net_buf *buf)
{
	return bt_l2cap_send_cb(conn, cid, buf, NULL, NULL);
   36bca:	2300      	movs	r3, #0
   36bcc:	9300      	str	r3, [sp, #0]
   36bce:	4632      	mov	r2, r6
   36bd0:	2105      	movs	r1, #5
   36bd2:	4628      	mov	r0, r5
   36bd4:	f7ff ffc6 	bl	36b64 <bt_l2cap_send_cb>
	if (bt_l2cap_send(conn, cid, buf)) {
   36bd8:	b910      	cbnz	r0, 36be0 <l2cap_send_reject+0x52>
}
   36bda:	b003      	add	sp, #12
   36bdc:	e8bd 83f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, pc}
		net_buf_unref(buf);
   36be0:	4630      	mov	r0, r6
   36be2:	f7f2 fdbd 	bl	29760 <net_buf_unref>
}
   36be6:	e7f8      	b.n	36bda <l2cap_send_reject+0x4c>

00036be8 <bt_l2cap_le_lookup_tx_cid>:
	return list->head;
   36be8:	6d40      	ldr	r0, [r0, #84]	; 0x54
	SYS_SLIST_FOR_EACH_CONTAINER(&conn->channels, chan, node) {
   36bea:	b110      	cbz	r0, 36bf2 <bt_l2cap_le_lookup_tx_cid+0xa>
   36bec:	3808      	subs	r0, #8
   36bee:	e000      	b.n	36bf2 <bt_l2cap_le_lookup_tx_cid+0xa>
   36bf0:	3808      	subs	r0, #8
   36bf2:	b148      	cbz	r0, 36c08 <bt_l2cap_le_lookup_tx_cid+0x20>
		if (BT_L2CAP_LE_CHAN(chan)->tx.cid == cid) {
   36bf4:	f8b0 3080 	ldrh.w	r3, [r0, #128]	; 0x80
   36bf8:	428b      	cmp	r3, r1
   36bfa:	d005      	beq.n	36c08 <bt_l2cap_le_lookup_tx_cid+0x20>
Z_GENLIST_PEEK_NEXT(slist, snode)
   36bfc:	f110 0308 	adds.w	r3, r0, #8
   36c00:	d003      	beq.n	36c0a <bt_l2cap_le_lookup_tx_cid+0x22>
	return node->next;
   36c02:	6880      	ldr	r0, [r0, #8]
	SYS_SLIST_FOR_EACH_CONTAINER(&conn->channels, chan, node) {
   36c04:	2800      	cmp	r0, #0
   36c06:	d1f3      	bne.n	36bf0 <bt_l2cap_le_lookup_tx_cid+0x8>
}
   36c08:	4770      	bx	lr
	SYS_SLIST_FOR_EACH_CONTAINER(&conn->channels, chan, node) {
   36c0a:	4618      	mov	r0, r3
   36c0c:	e7f1      	b.n	36bf2 <bt_l2cap_le_lookup_tx_cid+0xa>

00036c0e <bt_l2cap_le_lookup_rx_cid>:
	return list->head;
   36c0e:	6d40      	ldr	r0, [r0, #84]	; 0x54
	SYS_SLIST_FOR_EACH_CONTAINER(&conn->channels, chan, node) {
   36c10:	b110      	cbz	r0, 36c18 <bt_l2cap_le_lookup_rx_cid+0xa>
   36c12:	3808      	subs	r0, #8
   36c14:	e000      	b.n	36c18 <bt_l2cap_le_lookup_rx_cid+0xa>
   36c16:	3808      	subs	r0, #8
   36c18:	b148      	cbz	r0, 36c2e <bt_l2cap_le_lookup_rx_cid+0x20>
		if (BT_L2CAP_LE_CHAN(chan)->rx.cid == cid) {
   36c1a:	f8b0 3070 	ldrh.w	r3, [r0, #112]	; 0x70
   36c1e:	428b      	cmp	r3, r1
   36c20:	d005      	beq.n	36c2e <bt_l2cap_le_lookup_rx_cid+0x20>
Z_GENLIST_PEEK_NEXT(slist, snode)
   36c22:	f110 0308 	adds.w	r3, r0, #8
   36c26:	d003      	beq.n	36c30 <bt_l2cap_le_lookup_rx_cid+0x22>
	return node->next;
   36c28:	6880      	ldr	r0, [r0, #8]
	SYS_SLIST_FOR_EACH_CONTAINER(&conn->channels, chan, node) {
   36c2a:	2800      	cmp	r0, #0
   36c2c:	d1f3      	bne.n	36c16 <bt_l2cap_le_lookup_rx_cid+0x8>
}
   36c2e:	4770      	bx	lr
	SYS_SLIST_FOR_EACH_CONTAINER(&conn->channels, chan, node) {
   36c30:	4618      	mov	r0, r3
   36c32:	e7f1      	b.n	36c18 <bt_l2cap_le_lookup_rx_cid+0xa>

00036c34 <bt_l2cap_update_conn_param>:
{
   36c34:	b570      	push	{r4, r5, r6, lr}
   36c36:	b082      	sub	sp, #8
   36c38:	4605      	mov	r5, r0
   36c3a:	460c      	mov	r4, r1
	buf = l2cap_create_le_sig_pdu(NULL, BT_L2CAP_CONN_PARAM_REQ,
   36c3c:	f7ed fa86 	bl	2414c <get_ident>
   36c40:	4602      	mov	r2, r0
   36c42:	2308      	movs	r3, #8
   36c44:	2112      	movs	r1, #18
   36c46:	2000      	movs	r0, #0
   36c48:	f7ed fb4a 	bl	242e0 <l2cap_create_le_sig_pdu>
	if (!buf) {
   36c4c:	b1e0      	cbz	r0, 36c88 <bt_l2cap_update_conn_param+0x54>
   36c4e:	4606      	mov	r6, r0
	return net_buf_simple_add(&buf->b, len);
   36c50:	2108      	movs	r1, #8
   36c52:	4408      	add	r0, r1
   36c54:	f7f2 fe9c 	bl	29990 <net_buf_simple_add>
	req->min_interval = sys_cpu_to_le16(param->interval_min);
   36c58:	8823      	ldrh	r3, [r4, #0]
   36c5a:	8003      	strh	r3, [r0, #0]
	req->max_interval = sys_cpu_to_le16(param->interval_max);
   36c5c:	8863      	ldrh	r3, [r4, #2]
   36c5e:	8043      	strh	r3, [r0, #2]
	req->latency = sys_cpu_to_le16(param->latency);
   36c60:	88a3      	ldrh	r3, [r4, #4]
   36c62:	8083      	strh	r3, [r0, #4]
	req->timeout = sys_cpu_to_le16(param->timeout);
   36c64:	88e3      	ldrh	r3, [r4, #6]
   36c66:	80c3      	strh	r3, [r0, #6]
   36c68:	2300      	movs	r3, #0
   36c6a:	9300      	str	r3, [sp, #0]
   36c6c:	4632      	mov	r2, r6
   36c6e:	2105      	movs	r1, #5
   36c70:	4628      	mov	r0, r5
   36c72:	f7ff ff77 	bl	36b64 <bt_l2cap_send_cb>
	if (err) {
   36c76:	4604      	mov	r4, r0
   36c78:	b910      	cbnz	r0, 36c80 <bt_l2cap_update_conn_param+0x4c>
}
   36c7a:	4620      	mov	r0, r4
   36c7c:	b002      	add	sp, #8
   36c7e:	bd70      	pop	{r4, r5, r6, pc}
		net_buf_unref(buf);
   36c80:	4630      	mov	r0, r6
   36c82:	f7f2 fd6d 	bl	29760 <net_buf_unref>
		return err;
   36c86:	e7f8      	b.n	36c7a <bt_l2cap_update_conn_param+0x46>
		return -ENOMEM;
   36c88:	f06f 040b 	mvn.w	r4, #11
   36c8c:	e7f5      	b.n	36c7a <bt_l2cap_update_conn_param+0x46>

00036c8e <bt_l2cap_init>:
void bt_l2cap_init(void)
{
	if (IS_ENABLED(CONFIG_BT_BREDR)) {
		bt_l2cap_br_init();
	}
}
   36c8e:	4770      	bx	lr

00036c90 <att_sent>:
{
   36c90:	b508      	push	{r3, lr}
	if (chan->ops->sent) {
   36c92:	684b      	ldr	r3, [r1, #4]
   36c94:	695b      	ldr	r3, [r3, #20]
   36c96:	b10b      	cbz	r3, 36c9c <att_sent+0xc>
   36c98:	4608      	mov	r0, r1
		chan->ops->sent(chan);
   36c9a:	4798      	blx	r3
}
   36c9c:	bd08      	pop	{r3, pc}

00036c9e <range_is_valid>:
	if (!start || !end) {
   36c9e:	b120      	cbz	r0, 36caa <range_is_valid+0xc>
   36ca0:	b119      	cbz	r1, 36caa <range_is_valid+0xc>
	if (start > end) {
   36ca2:	4288      	cmp	r0, r1
   36ca4:	d806      	bhi.n	36cb4 <range_is_valid+0x16>
	return true;
   36ca6:	2001      	movs	r0, #1
}
   36ca8:	4770      	bx	lr
		if (err) {
   36caa:	b10a      	cbz	r2, 36cb0 <range_is_valid+0x12>
			*err = 0U;
   36cac:	2300      	movs	r3, #0
   36cae:	8013      	strh	r3, [r2, #0]
		return false;
   36cb0:	2000      	movs	r0, #0
   36cb2:	4770      	bx	lr
		if (err) {
   36cb4:	b102      	cbz	r2, 36cb8 <range_is_valid+0x1a>
			*err = start;
   36cb6:	8010      	strh	r0, [r2, #0]
		return false;
   36cb8:	2000      	movs	r0, #0
   36cba:	4770      	bx	lr

00036cbc <err_to_att>:
	if (err < 0 && err >= -0xff) {
   36cbc:	f110 0fff 	cmn.w	r0, #255	; 0xff
   36cc0:	d201      	bcs.n	36cc6 <err_to_att+0xa>
	return BT_ATT_ERR_UNLIKELY;
   36cc2:	200e      	movs	r0, #14
}
   36cc4:	4770      	bx	lr
		return -err;
   36cc6:	4240      	negs	r0, r0
   36cc8:	b2c0      	uxtb	r0, r0
   36cca:	4770      	bx	lr

00036ccc <attr_read_type_cb>:
{
   36ccc:	b410      	push	{r4}
	if (!data->rsp->len) {
   36cce:	68d4      	ldr	r4, [r2, #12]
   36cd0:	7823      	ldrb	r3, [r4, #0]
   36cd2:	b923      	cbnz	r3, 36cde <attr_read_type_cb+0x12>
		data->rsp->len = read + sizeof(*data->item);
   36cd4:	3102      	adds	r1, #2
   36cd6:	7021      	strb	r1, [r4, #0]
	return true;
   36cd8:	2001      	movs	r0, #1
}
   36cda:	bc10      	pop	{r4}
   36cdc:	4770      	bx	lr
	} else if (data->rsp->len != read + sizeof(*data->item)) {
   36cde:	3102      	adds	r1, #2
   36ce0:	428b      	cmp	r3, r1
   36ce2:	d005      	beq.n	36cf0 <attr_read_type_cb+0x24>
		frag->len -= sizeof(*data->item);
   36ce4:	8983      	ldrh	r3, [r0, #12]
   36ce6:	3b02      	subs	r3, #2
   36ce8:	8183      	strh	r3, [r0, #12]
		data->item = NULL;
   36cea:	2000      	movs	r0, #0
   36cec:	6110      	str	r0, [r2, #16]
		return false;
   36cee:	e7f4      	b.n	36cda <attr_read_type_cb+0xe>
	return true;
   36cf0:	2001      	movs	r0, #1
   36cf2:	e7f2      	b.n	36cda <attr_read_type_cb+0xe>

00036cf4 <attr_read_group_cb>:
	if (!data->rsp->len) {
   36cf4:	68d0      	ldr	r0, [r2, #12]
   36cf6:	7803      	ldrb	r3, [r0, #0]
   36cf8:	b91b      	cbnz	r3, 36d02 <attr_read_group_cb+0xe>
		data->rsp->len = read + sizeof(*data->group);
   36cfa:	3104      	adds	r1, #4
   36cfc:	7001      	strb	r1, [r0, #0]
	return true;
   36cfe:	2001      	movs	r0, #1
   36d00:	4770      	bx	lr
	} else if (data->rsp->len != read + sizeof(*data->group)) {
   36d02:	3104      	adds	r1, #4
   36d04:	428b      	cmp	r3, r1
   36d06:	d006      	beq.n	36d16 <attr_read_group_cb+0x22>
		data->buf->len -= sizeof(*data->group);
   36d08:	6891      	ldr	r1, [r2, #8]
   36d0a:	898b      	ldrh	r3, [r1, #12]
   36d0c:	3b04      	subs	r3, #4
   36d0e:	818b      	strh	r3, [r1, #12]
		data->group = NULL;
   36d10:	2000      	movs	r0, #0
   36d12:	6110      	str	r0, [r2, #16]
		return false;
   36d14:	4770      	bx	lr
	return true;
   36d16:	2001      	movs	r0, #1
}
   36d18:	4770      	bx	lr

00036d1a <att_prepare_write_req>:
}
   36d1a:	2006      	movs	r0, #6
   36d1c:	4770      	bx	lr

00036d1e <att_exec_write_req>:
}
   36d1e:	2006      	movs	r0, #6
   36d20:	4770      	bx	lr

00036d22 <att_op_get_type>:
	switch (op) {
   36d22:	1e43      	subs	r3, r0, #1
   36d24:	2bd1      	cmp	r3, #209	; 0xd1
   36d26:	d874      	bhi.n	36e12 <att_op_get_type+0xf0>
   36d28:	e8df f003 	tbb	[pc, r3]
   36d2c:	696d696d 	.word	0x696d696d
   36d30:	696d696d 	.word	0x696d696d
   36d34:	696d696d 	.word	0x696d696d
   36d38:	696d696d 	.word	0x696d696d
   36d3c:	736d696d 	.word	0x736d696d
   36d40:	696d6973 	.word	0x696d6973
   36d44:	736f736d 	.word	0x736f736d
   36d48:	73737871 	.word	0x73737871
   36d4c:	73737373 	.word	0x73737373
   36d50:	73737373 	.word	0x73737373
   36d54:	73737373 	.word	0x73737373
   36d58:	73737373 	.word	0x73737373
   36d5c:	73737373 	.word	0x73737373
   36d60:	73737373 	.word	0x73737373
   36d64:	73737373 	.word	0x73737373
   36d68:	73737373 	.word	0x73737373
   36d6c:	73737373 	.word	0x73737373
   36d70:	73737373 	.word	0x73737373
   36d74:	73737373 	.word	0x73737373
   36d78:	73737373 	.word	0x73737373
   36d7c:	73736b73 	.word	0x73736b73
   36d80:	73737373 	.word	0x73737373
   36d84:	73737373 	.word	0x73737373
   36d88:	73737373 	.word	0x73737373
   36d8c:	73737373 	.word	0x73737373
   36d90:	73737373 	.word	0x73737373
   36d94:	73737373 	.word	0x73737373
   36d98:	73737373 	.word	0x73737373
   36d9c:	73737373 	.word	0x73737373
   36da0:	73737373 	.word	0x73737373
   36da4:	73737373 	.word	0x73737373
   36da8:	73737373 	.word	0x73737373
   36dac:	73737373 	.word	0x73737373
   36db0:	73737373 	.word	0x73737373
   36db4:	73737373 	.word	0x73737373
   36db8:	73737373 	.word	0x73737373
   36dbc:	73737373 	.word	0x73737373
   36dc0:	73737373 	.word	0x73737373
   36dc4:	73737373 	.word	0x73737373
   36dc8:	73737373 	.word	0x73737373
   36dcc:	73737373 	.word	0x73737373
   36dd0:	73737373 	.word	0x73737373
   36dd4:	73737373 	.word	0x73737373
   36dd8:	73737373 	.word	0x73737373
   36ddc:	73737373 	.word	0x73737373
   36de0:	73737373 	.word	0x73737373
   36de4:	73737373 	.word	0x73737373
   36de8:	73737373 	.word	0x73737373
   36dec:	73737373 	.word	0x73737373
   36df0:	73737373 	.word	0x73737373
   36df4:	73737373 	.word	0x73737373
   36df8:	73737373 	.word	0x73737373
   36dfc:	6b73      	.short	0x6b73
{
   36dfe:	2001      	movs	r0, #1
   36e00:	4770      	bx	lr
		return ATT_COMMAND;
   36e02:	2000      	movs	r0, #0
   36e04:	4770      	bx	lr
		return ATT_RESPONSE;
   36e06:	2002      	movs	r0, #2
   36e08:	4770      	bx	lr
		return ATT_NOTIFICATION;
   36e0a:	2003      	movs	r0, #3
   36e0c:	4770      	bx	lr
		return ATT_INDICATION;
   36e0e:	2005      	movs	r0, #5
   36e10:	4770      	bx	lr
	if (op & ATT_CMD_MASK) {
   36e12:	f010 0f40 	tst.w	r0, #64	; 0x40
   36e16:	d103      	bne.n	36e20 <att_op_get_type+0xfe>
	return ATT_UNKNOWN;
   36e18:	2006      	movs	r0, #6
   36e1a:	4770      	bx	lr
		return ATT_CONFIRMATION;
   36e1c:	2004      	movs	r0, #4
   36e1e:	4770      	bx	lr
		return ATT_COMMAND;
   36e20:	2000      	movs	r0, #0
}
   36e22:	4770      	bx	lr

00036e24 <att_chan_attach>:
{
   36e24:	b538      	push	{r3, r4, r5, lr}
   36e26:	4604      	mov	r4, r0
   36e28:	460d      	mov	r5, r1
	return list->head;
   36e2a:	6a83      	ldr	r3, [r0, #40]	; 0x28
	if (sys_slist_is_empty(&att->chans)) {
   36e2c:	b143      	cbz	r3, 36e40 <att_chan_attach+0x1c>
	sys_slist_prepend(&att->chans, &chan->node);
   36e2e:	f505 73aa 	add.w	r3, r5, #340	; 0x154
   36e32:	6aa2      	ldr	r2, [r4, #40]	; 0x28
	parent->next = child;
   36e34:	f8c5 2154 	str.w	r2, [r5, #340]	; 0x154
	list->head = node;
   36e38:	62a3      	str	r3, [r4, #40]	; 0x28
	return list->tail;
   36e3a:	6ae2      	ldr	r2, [r4, #44]	; 0x2c
Z_GENLIST_PREPEND(slist, snode)
   36e3c:	b122      	cbz	r2, 36e48 <att_chan_attach+0x24>
}
   36e3e:	bd38      	pop	{r3, r4, r5, pc}
		k_fifo_init(&att->tx_queue);
   36e40:	300c      	adds	r0, #12
	z_impl_k_queue_init(queue);
   36e42:	f004 f9c7 	bl	3b1d4 <z_impl_k_queue_init>
}
   36e46:	e7f2      	b.n	36e2e <att_chan_attach+0xa>
	list->tail = node;
   36e48:	62e3      	str	r3, [r4, #44]	; 0x2c
}
   36e4a:	e7f8      	b.n	36e3e <att_chan_attach+0x1a>

00036e4c <chan_req_send>:
{
   36e4c:	b538      	push	{r3, r4, r5, lr}
   36e4e:	460d      	mov	r5, r1
	if (chan->chan.tx.mtu < net_buf_frags_len(req->buf)) {
   36e50:	f8b0 108a 	ldrh.w	r1, [r0, #138]	; 0x8a
   36e54:	68ab      	ldr	r3, [r5, #8]
	size_t bytes = 0;
   36e56:	2200      	movs	r2, #0
	while (buf) {
   36e58:	b11b      	cbz	r3, 36e62 <chan_req_send+0x16>
		bytes += buf->len;
   36e5a:	899c      	ldrh	r4, [r3, #12]
   36e5c:	4422      	add	r2, r4
		buf = buf->frags;
   36e5e:	681b      	ldr	r3, [r3, #0]
   36e60:	e7fa      	b.n	36e58 <chan_req_send+0xc>
   36e62:	4291      	cmp	r1, r2
   36e64:	d30a      	bcc.n	36e7c <chan_req_send+0x30>
	chan->req = req;
   36e66:	f8c0 50fc 	str.w	r5, [r0, #252]	; 0xfc
	buf = req->buf;
   36e6a:	68ac      	ldr	r4, [r5, #8]
	req->buf = NULL;
   36e6c:	2200      	movs	r2, #0
   36e6e:	60aa      	str	r2, [r5, #8]
	err = chan_send(chan, buf, NULL);
   36e70:	4621      	mov	r1, r4
   36e72:	f7ed fbe3 	bl	2463c <chan_send>
	if (err) {
   36e76:	b100      	cbz	r0, 36e7a <chan_req_send+0x2e>
		req->buf = buf;
   36e78:	60ac      	str	r4, [r5, #8]
}
   36e7a:	bd38      	pop	{r3, r4, r5, pc}
		return -EMSGSIZE;
   36e7c:	f06f 0079 	mvn.w	r0, #121	; 0x79
   36e80:	e7fb      	b.n	36e7a <chan_req_send+0x2e>

00036e82 <bt_att_status>:
{
   36e82:	b538      	push	{r3, r4, r5, lr}
	return __atomic_load_n(target, __ATOMIC_SEQ_CST);
   36e84:	f3bf 8f5b 	dmb	ish
   36e88:	680b      	ldr	r3, [r1, #0]
   36e8a:	f3bf 8f5b 	dmb	ish
	if (!atomic_test_bit(status, BT_L2CAP_STATUS_OUT)) {
   36e8e:	f013 0f01 	tst.w	r3, #1
   36e92:	d007      	beq.n	36ea4 <bt_att_status+0x22>
   36e94:	4604      	mov	r4, r0
   36e96:	3808      	subs	r0, #8
	if (!chan->att) {
   36e98:	f854 3c08 	ldr.w	r3, [r4, #-8]
   36e9c:	b113      	cbz	r3, 36ea4 <bt_att_status+0x22>
	if (chan->req) {
   36e9e:	f8d4 20f4 	ldr.w	r2, [r4, #244]	; 0xf4
   36ea2:	b102      	cbz	r2, 36ea6 <bt_att_status+0x24>
}
   36ea4:	bd38      	pop	{r3, r4, r5, pc}
	return list->head;
   36ea6:	685d      	ldr	r5, [r3, #4]
Z_GENLIST_GET(slist, snode)
   36ea8:	2d00      	cmp	r5, #0
   36eaa:	d0fb      	beq.n	36ea4 <bt_att_status+0x22>
	return node->next;
   36eac:	682a      	ldr	r2, [r5, #0]
	list->head = node;
   36eae:	605a      	str	r2, [r3, #4]
	return list->tail;
   36eb0:	6899      	ldr	r1, [r3, #8]
Z_GENLIST_GET_NOT_EMPTY(slist, snode)
   36eb2:	42a9      	cmp	r1, r5
   36eb4:	d00e      	beq.n	36ed4 <bt_att_status+0x52>
	if (bt_att_chan_req_send(chan, ATT_REQ(node)) >= 0) {
   36eb6:	4629      	mov	r1, r5
   36eb8:	f7ed fc02 	bl	246c0 <bt_att_chan_req_send>
   36ebc:	2800      	cmp	r0, #0
   36ebe:	daf1      	bge.n	36ea4 <bt_att_status+0x22>
	sys_slist_prepend(&chan->att->reqs, node);
   36ec0:	f854 3c08 	ldr.w	r3, [r4, #-8]
	return list->head;
   36ec4:	685a      	ldr	r2, [r3, #4]
	parent->next = child;
   36ec6:	602a      	str	r2, [r5, #0]
	list->head = node;
   36ec8:	605d      	str	r5, [r3, #4]
	return list->tail;
   36eca:	689a      	ldr	r2, [r3, #8]
Z_GENLIST_PREPEND(slist, snode)
   36ecc:	2a00      	cmp	r2, #0
   36ece:	d1e9      	bne.n	36ea4 <bt_att_status+0x22>
	list->tail = node;
   36ed0:	609d      	str	r5, [r3, #8]
}
   36ed2:	e7e7      	b.n	36ea4 <bt_att_status+0x22>
	list->tail = node;
   36ed4:	609a      	str	r2, [r3, #8]
}
   36ed6:	e7ee      	b.n	36eb6 <bt_att_status+0x34>

00036ed8 <att_req_send_process>:
{
   36ed8:	b570      	push	{r4, r5, r6, lr}
	return list->head;
   36eda:	6846      	ldr	r6, [r0, #4]
Z_GENLIST_GET(slist, snode)
   36edc:	2e00      	cmp	r6, #0
   36ede:	d038      	beq.n	36f52 <att_req_send_process+0x7a>
   36ee0:	4605      	mov	r5, r0
	return node->next;
   36ee2:	6833      	ldr	r3, [r6, #0]
	list->head = node;
   36ee4:	6043      	str	r3, [r0, #4]
	return list->tail;
   36ee6:	6882      	ldr	r2, [r0, #8]
Z_GENLIST_GET_NOT_EMPTY(slist, snode)
   36ee8:	4296      	cmp	r6, r2
   36eea:	d00d      	beq.n	36f08 <att_req_send_process+0x30>
	return list->head;
   36eec:	6aa8      	ldr	r0, [r5, #40]	; 0x28
	SYS_SLIST_FOR_EACH_CONTAINER_SAFE(&att->chans, chan, tmp, node) {
   36eee:	b198      	cbz	r0, 36f18 <att_req_send_process+0x40>
   36ef0:	f5b0 70aa 	subs.w	r0, r0, #340	; 0x154
   36ef4:	d012      	beq.n	36f1c <att_req_send_process+0x44>
Z_GENLIST_PEEK_NEXT(slist, snode)
   36ef6:	f510 74aa 	adds.w	r4, r0, #340	; 0x154
   36efa:	d014      	beq.n	36f26 <att_req_send_process+0x4e>
	return node->next;
   36efc:	f8d0 4154 	ldr.w	r4, [r0, #340]	; 0x154
   36f00:	b18c      	cbz	r4, 36f26 <att_req_send_process+0x4e>
   36f02:	f5a4 74aa 	sub.w	r4, r4, #340	; 0x154
   36f06:	e00e      	b.n	36f26 <att_req_send_process+0x4e>
	list->tail = node;
   36f08:	6083      	str	r3, [r0, #8]
}
   36f0a:	e7ef      	b.n	36eec <att_req_send_process+0x14>
			if (bt_att_chan_req_send(chan, ATT_REQ(node)) >= 0) {
   36f0c:	4631      	mov	r1, r6
   36f0e:	f7ed fbd7 	bl	246c0 <bt_att_chan_req_send>
   36f12:	2800      	cmp	r0, #0
   36f14:	db0c      	blt.n	36f30 <att_req_send_process+0x58>
   36f16:	e01c      	b.n	36f52 <att_req_send_process+0x7a>
	SYS_SLIST_FOR_EACH_CONTAINER_SAFE(&att->chans, chan, tmp, node) {
   36f18:	4604      	mov	r4, r0
   36f1a:	e004      	b.n	36f26 <att_req_send_process+0x4e>
   36f1c:	4604      	mov	r4, r0
   36f1e:	e002      	b.n	36f26 <att_req_send_process+0x4e>
   36f20:	4623      	mov	r3, r4
   36f22:	4620      	mov	r0, r4
   36f24:	461c      	mov	r4, r3
   36f26:	b178      	cbz	r0, 36f48 <att_req_send_process+0x70>
		if (!chan->req) {
   36f28:	f8d0 30fc 	ldr.w	r3, [r0, #252]	; 0xfc
   36f2c:	2b00      	cmp	r3, #0
   36f2e:	d0ed      	beq.n	36f0c <att_req_send_process+0x34>
	SYS_SLIST_FOR_EACH_CONTAINER_SAFE(&att->chans, chan, tmp, node) {
   36f30:	2c00      	cmp	r4, #0
   36f32:	d0f5      	beq.n	36f20 <att_req_send_process+0x48>
Z_GENLIST_PEEK_NEXT(slist, snode)
   36f34:	f514 73aa 	adds.w	r3, r4, #340	; 0x154
   36f38:	d0f3      	beq.n	36f22 <att_req_send_process+0x4a>
	return node->next;
   36f3a:	f8d4 3154 	ldr.w	r3, [r4, #340]	; 0x154
   36f3e:	2b00      	cmp	r3, #0
   36f40:	d0ef      	beq.n	36f22 <att_req_send_process+0x4a>
   36f42:	f5a3 73aa 	sub.w	r3, r3, #340	; 0x154
   36f46:	e7ec      	b.n	36f22 <att_req_send_process+0x4a>
	return list->head;
   36f48:	686b      	ldr	r3, [r5, #4]
	parent->next = child;
   36f4a:	6033      	str	r3, [r6, #0]
	list->head = node;
   36f4c:	606e      	str	r6, [r5, #4]
	return list->tail;
   36f4e:	68ab      	ldr	r3, [r5, #8]
Z_GENLIST_PREPEND(slist, snode)
   36f50:	b103      	cbz	r3, 36f54 <att_req_send_process+0x7c>
}
   36f52:	bd70      	pop	{r4, r5, r6, pc}
	list->tail = node;
   36f54:	60ae      	str	r6, [r5, #8]
}
   36f56:	e7fc      	b.n	36f52 <att_req_send_process+0x7a>

00036f58 <bt_att_chan_send>:
{
   36f58:	b508      	push	{r3, lr}
	return chan_send(chan, buf, cb);
   36f5a:	f7ed fb6f 	bl	2463c <chan_send>
}
   36f5e:	bd08      	pop	{r3, pc}

00036f60 <chan_req_sent>:
{
   36f60:	b508      	push	{r3, lr}
	if (chan->req) {
   36f62:	f8d0 30fc 	ldr.w	r3, [r0, #252]	; 0xfc
   36f66:	b133      	cbz	r3, 36f76 <chan_req_sent+0x16>
		k_work_reschedule(&chan->timeout_work, BT_ATT_TIMEOUT);
   36f68:	f44f 2270 	mov.w	r2, #983040	; 0xf0000
   36f6c:	2300      	movs	r3, #0
   36f6e:	f500 7090 	add.w	r0, r0, #288	; 0x120
   36f72:	f7f9 fcf7 	bl	30964 <k_work_reschedule>
}
   36f76:	bd08      	pop	{r3, pc}

00036f78 <chan_cfm_sent>:
		atomic_clear_bit(chan->flags, ATT_PENDING_CFM);
   36f78:	30f8      	adds	r0, #248	; 0xf8
	return __atomic_fetch_and(target, value, __ATOMIC_SEQ_CST);
   36f7a:	f3bf 8f5b 	dmb	ish
   36f7e:	e850 3f00 	ldrex	r3, [r0]
   36f82:	f023 0302 	bic.w	r3, r3, #2
   36f86:	e840 3200 	strex	r2, r3, [r0]
   36f8a:	2a00      	cmp	r2, #0
   36f8c:	d1f7      	bne.n	36f7e <chan_cfm_sent+0x6>
   36f8e:	f3bf 8f5b 	dmb	ish
}
   36f92:	4770      	bx	lr

00036f94 <chan_rsp_sent>:
		atomic_clear_bit(chan->flags, ATT_PENDING_RSP);
   36f94:	30f8      	adds	r0, #248	; 0xf8
   36f96:	f3bf 8f5b 	dmb	ish
   36f9a:	e850 3f00 	ldrex	r3, [r0]
   36f9e:	f023 0301 	bic.w	r3, r3, #1
   36fa2:	e840 3200 	strex	r2, r3, [r0]
   36fa6:	2a00      	cmp	r2, #0
   36fa8:	d1f7      	bne.n	36f9a <chan_rsp_sent+0x6>
   36faa:	f3bf 8f5b 	dmb	ish
}
   36fae:	4770      	bx	lr

00036fb0 <process_queue>:
{
   36fb0:	b570      	push	{r4, r5, r6, lr}
   36fb2:	4605      	mov	r5, r0
   36fb4:	460c      	mov	r4, r1
	buf = net_buf_get(queue, K_NO_WAIT);
   36fb6:	2200      	movs	r2, #0
   36fb8:	2300      	movs	r3, #0
   36fba:	4608      	mov	r0, r1
   36fbc:	f7f2 fb48 	bl	29650 <net_buf_get>
	if (buf) {
   36fc0:	b170      	cbz	r0, 36fe0 <process_queue+0x30>
   36fc2:	4606      	mov	r6, r0
		err = chan_send(chan, buf, NULL);
   36fc4:	2200      	movs	r2, #0
   36fc6:	4601      	mov	r1, r0
   36fc8:	4628      	mov	r0, r5
   36fca:	f7ed fb37 	bl	2463c <chan_send>
		if (err) {
   36fce:	4605      	mov	r5, r0
   36fd0:	b908      	cbnz	r0, 36fd6 <process_queue+0x26>
}
   36fd2:	4628      	mov	r0, r5
   36fd4:	bd70      	pop	{r4, r5, r6, pc}
			k_queue_prepend(&queue->_queue, buf);
   36fd6:	4631      	mov	r1, r6
   36fd8:	4620      	mov	r0, r4
   36fda:	f004 f914 	bl	3b206 <k_queue_prepend>
			return err;
   36fde:	e7f8      	b.n	36fd2 <process_queue+0x22>
	return -ENOENT;
   36fe0:	f06f 0501 	mvn.w	r5, #1
   36fe4:	e7f5      	b.n	36fd2 <process_queue+0x22>

00036fe6 <bt_att_sent>:
{
   36fe6:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
   36fe8:	4604      	mov	r4, r0
	struct bt_att_chan *chan = ATT_CHAN(ch);
   36fea:	f1a0 0608 	sub.w	r6, r0, #8
	struct bt_att *att = chan->att;
   36fee:	f850 5c08 	ldr.w	r5, [r0, #-8]
	if (chan->sent) {
   36ff2:	f8d0 3148 	ldr.w	r3, [r0, #328]	; 0x148
   36ff6:	b10b      	cbz	r3, 36ffc <bt_att_sent+0x16>
		chan->sent(chan);
   36ff8:	4630      	mov	r0, r6
   36ffa:	4798      	blx	r3
	atomic_clear_bit(chan->flags, ATT_PENDING_SENT);
   36ffc:	f104 03f0 	add.w	r3, r4, #240	; 0xf0
   37000:	f3bf 8f5b 	dmb	ish
   37004:	e853 2f00 	ldrex	r2, [r3]
   37008:	f022 0210 	bic.w	r2, r2, #16
   3700c:	e843 2100 	strex	r1, r2, [r3]
   37010:	2900      	cmp	r1, #0
   37012:	d1f7      	bne.n	37004 <bt_att_sent+0x1e>
   37014:	f3bf 8f5b 	dmb	ish
	if (!att) {
   37018:	b145      	cbz	r5, 3702c <bt_att_sent+0x46>
	if (!chan->req && !sys_slist_is_empty(&att->reqs)) {
   3701a:	f8d4 30f4 	ldr.w	r3, [r4, #244]	; 0xf4
   3701e:	b133      	cbz	r3, 3702e <bt_att_sent+0x48>
	err = process_queue(chan, &chan->tx_queue);
   37020:	f104 01f8 	add.w	r1, r4, #248	; 0xf8
   37024:	4630      	mov	r0, r6
   37026:	f7ff ffc3 	bl	36fb0 <process_queue>
	if (!err) {
   3702a:	b9c0      	cbnz	r0, 3705e <bt_att_sent+0x78>
}
   3702c:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
	return list->head;
   3702e:	686f      	ldr	r7, [r5, #4]
	if (!chan->req && !sys_slist_is_empty(&att->reqs)) {
   37030:	2f00      	cmp	r7, #0
   37032:	d0f5      	beq.n	37020 <bt_att_sent+0x3a>
	return node->next;
   37034:	683b      	ldr	r3, [r7, #0]
	list->head = node;
   37036:	606b      	str	r3, [r5, #4]
	return list->tail;
   37038:	68aa      	ldr	r2, [r5, #8]
Z_GENLIST_GET_NOT_EMPTY(slist, snode)
   3703a:	4297      	cmp	r7, r2
   3703c:	d00d      	beq.n	3705a <bt_att_sent+0x74>
		if (chan_req_send(chan, ATT_REQ(node)) >= 0) {
   3703e:	4639      	mov	r1, r7
   37040:	4630      	mov	r0, r6
   37042:	f7ff ff03 	bl	36e4c <chan_req_send>
   37046:	2800      	cmp	r0, #0
   37048:	daf0      	bge.n	3702c <bt_att_sent+0x46>
	return list->head;
   3704a:	686b      	ldr	r3, [r5, #4]
	parent->next = child;
   3704c:	603b      	str	r3, [r7, #0]
	list->head = node;
   3704e:	606f      	str	r7, [r5, #4]
	return list->tail;
   37050:	68ab      	ldr	r3, [r5, #8]
Z_GENLIST_PREPEND(slist, snode)
   37052:	2b00      	cmp	r3, #0
   37054:	d1e4      	bne.n	37020 <bt_att_sent+0x3a>
	list->tail = node;
   37056:	60af      	str	r7, [r5, #8]
}
   37058:	e7e2      	b.n	37020 <bt_att_sent+0x3a>
	list->tail = node;
   3705a:	60ab      	str	r3, [r5, #8]
}
   3705c:	e7ef      	b.n	3703e <bt_att_sent+0x58>
	(void)process_queue(chan, &att->tx_queue);
   3705e:	f105 010c 	add.w	r1, r5, #12
   37062:	4630      	mov	r0, r6
   37064:	f7ff ffa4 	bl	36fb0 <process_queue>
   37068:	e7e0      	b.n	3702c <bt_att_sent+0x46>

0003706a <att_send_process>:
{
   3706a:	b570      	push	{r4, r5, r6, lr}
   3706c:	4606      	mov	r6, r0
	buf = net_buf_get(&att->tx_queue, K_NO_WAIT);
   3706e:	2200      	movs	r2, #0
   37070:	2300      	movs	r3, #0
   37072:	300c      	adds	r0, #12
   37074:	f7f2 faec 	bl	29650 <net_buf_get>
	if (!buf) {
   37078:	b360      	cbz	r0, 370d4 <att_send_process+0x6a>
   3707a:	4605      	mov	r5, r0
	return list->head;
   3707c:	6ab0      	ldr	r0, [r6, #40]	; 0x28
	SYS_SLIST_FOR_EACH_CONTAINER_SAFE(&att->chans, chan, tmp, node) {
   3707e:	b158      	cbz	r0, 37098 <att_send_process+0x2e>
   37080:	f5b0 70aa 	subs.w	r0, r0, #340	; 0x154
   37084:	d00c      	beq.n	370a0 <att_send_process+0x36>
Z_GENLIST_PEEK_NEXT(slist, snode)
   37086:	f510 74aa 	adds.w	r4, r0, #340	; 0x154
   3708a:	d006      	beq.n	3709a <att_send_process+0x30>
	return node->next;
   3708c:	f8d0 4154 	ldr.w	r4, [r0, #340]	; 0x154
   37090:	b11c      	cbz	r4, 3709a <att_send_process+0x30>
   37092:	f5a4 74aa 	sub.w	r4, r4, #340	; 0x154
   37096:	e000      	b.n	3709a <att_send_process+0x30>
   37098:	4604      	mov	r4, r0
   3709a:	f06f 0301 	mvn.w	r3, #1
   3709e:	e004      	b.n	370aa <att_send_process+0x40>
   370a0:	4604      	mov	r4, r0
   370a2:	e7fa      	b.n	3709a <att_send_process+0x30>
   370a4:	4622      	mov	r2, r4
   370a6:	4620      	mov	r0, r4
   370a8:	4614      	mov	r4, r2
   370aa:	b188      	cbz	r0, 370d0 <att_send_process+0x66>
		err = bt_att_chan_send(chan, buf, NULL);
   370ac:	2200      	movs	r2, #0
   370ae:	4629      	mov	r1, r5
   370b0:	f7ff ff52 	bl	36f58 <bt_att_chan_send>
		if (err >= 0) {
   370b4:	1e03      	subs	r3, r0, #0
   370b6:	da0b      	bge.n	370d0 <att_send_process+0x66>
	SYS_SLIST_FOR_EACH_CONTAINER_SAFE(&att->chans, chan, tmp, node) {
   370b8:	2c00      	cmp	r4, #0
   370ba:	d0f3      	beq.n	370a4 <att_send_process+0x3a>
Z_GENLIST_PEEK_NEXT(slist, snode)
   370bc:	f514 72aa 	adds.w	r2, r4, #340	; 0x154
   370c0:	d0f1      	beq.n	370a6 <att_send_process+0x3c>
	return node->next;
   370c2:	f8d4 2154 	ldr.w	r2, [r4, #340]	; 0x154
   370c6:	2a00      	cmp	r2, #0
   370c8:	d0ed      	beq.n	370a6 <att_send_process+0x3c>
   370ca:	f5a2 72aa 	sub.w	r2, r2, #340	; 0x154
   370ce:	e7ea      	b.n	370a6 <att_send_process+0x3c>
	if (err < 0) {
   370d0:	2b00      	cmp	r3, #0
   370d2:	db00      	blt.n	370d6 <att_send_process+0x6c>
}
   370d4:	bd70      	pop	{r4, r5, r6, pc}
		k_queue_prepend(&att->tx_queue._queue, buf);
   370d6:	4629      	mov	r1, r5
   370d8:	f106 000c 	add.w	r0, r6, #12
   370dc:	f004 f893 	bl	3b206 <k_queue_prepend>
   370e0:	e7f8      	b.n	370d4 <att_send_process+0x6a>

000370e2 <write_cb>:
{
   370e2:	b5f0      	push	{r4, r5, r6, r7, lr}
   370e4:	b083      	sub	sp, #12
   370e6:	4606      	mov	r6, r0
   370e8:	4614      	mov	r4, r2
	data->err = bt_gatt_check_perm(data->conn, attr,
   370ea:	222a      	movs	r2, #42	; 0x2a
   370ec:	4601      	mov	r1, r0
   370ee:	6820      	ldr	r0, [r4, #0]
   370f0:	f000 febe 	bl	37e70 <bt_gatt_check_perm>
   370f4:	7520      	strb	r0, [r4, #20]
	if (data->err) {
   370f6:	b9e8      	cbnz	r0, 37134 <write_cb+0x52>
   370f8:	4605      	mov	r5, r0
	if (!data->req) {
   370fa:	7a23      	ldrb	r3, [r4, #8]
   370fc:	b1a3      	cbz	r3, 37128 <write_cb+0x46>
	uint8_t flags = 0U;
   370fe:	4603      	mov	r3, r0
	write = attr->write(data->conn, attr, data->value, data->len,
   37100:	68b7      	ldr	r7, [r6, #8]
   37102:	9301      	str	r3, [sp, #4]
   37104:	8a63      	ldrh	r3, [r4, #18]
   37106:	9300      	str	r3, [sp, #0]
   37108:	8a23      	ldrh	r3, [r4, #16]
   3710a:	68e2      	ldr	r2, [r4, #12]
   3710c:	4631      	mov	r1, r6
   3710e:	6820      	ldr	r0, [r4, #0]
   37110:	47b8      	blx	r7
	if (write < 0 || write != data->len) {
   37112:	2800      	cmp	r0, #0
   37114:	db02      	blt.n	3711c <write_cb+0x3a>
   37116:	8a23      	ldrh	r3, [r4, #16]
   37118:	4298      	cmp	r0, r3
   3711a:	d007      	beq.n	3712c <write_cb+0x4a>
		data->err = err_to_att(write);
   3711c:	f7ff fdce 	bl	36cbc <err_to_att>
   37120:	7520      	strb	r0, [r4, #20]
}
   37122:	4628      	mov	r0, r5
   37124:	b003      	add	sp, #12
   37126:	bdf0      	pop	{r4, r5, r6, r7, pc}
		flags |= BT_GATT_WRITE_FLAG_CMD;
   37128:	2302      	movs	r3, #2
   3712a:	e7e9      	b.n	37100 <write_cb+0x1e>
	data->err = 0U;
   3712c:	2300      	movs	r3, #0
   3712e:	7523      	strb	r3, [r4, #20]
	return BT_GATT_ITER_CONTINUE;
   37130:	2501      	movs	r5, #1
   37132:	e7f6      	b.n	37122 <write_cb+0x40>
		return BT_GATT_ITER_STOP;
   37134:	2500      	movs	r5, #0
   37136:	e7f4      	b.n	37122 <write_cb+0x40>

00037138 <bt_att_chan_send_rsp>:
{
   37138:	b538      	push	{r3, r4, r5, lr}
   3713a:	4604      	mov	r4, r0
   3713c:	460d      	mov	r5, r1
	err = bt_att_chan_send(chan, buf, cb);
   3713e:	f7ff ff0b 	bl	36f58 <bt_att_chan_send>
	if (err) {
   37142:	b900      	cbnz	r0, 37146 <bt_att_chan_send_rsp+0xe>
}
   37144:	bd38      	pop	{r3, r4, r5, pc}
		net_buf_put(&chan->tx_queue, buf);
   37146:	4629      	mov	r1, r5
   37148:	f504 7080 	add.w	r0, r4, #256	; 0x100
   3714c:	f7f2 fad6 	bl	296fc <net_buf_put>
}
   37150:	e7f8      	b.n	37144 <bt_att_chan_send_rsp+0xc>

00037152 <att_chan_read>:
{
   37152:	e92d 4ff0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
   37156:	b085      	sub	sp, #20
   37158:	4680      	mov	r8, r0
   3715a:	4689      	mov	r9, r1
   3715c:	9202      	str	r2, [sp, #8]
   3715e:	461d      	mov	r5, r3
	struct bt_conn *conn = chan->chan.chan.conn;
   37160:	6881      	ldr	r1, [r0, #8]
   37162:	9103      	str	r1, [sp, #12]
	if (chan->chan.tx.mtu <= net_buf_frags_len(buf)) {
   37164:	f8b0 008a 	ldrh.w	r0, [r0, #138]	; 0x8a
	while (buf) {
   37168:	4613      	mov	r3, r2
	size_t bytes = 0;
   3716a:	2200      	movs	r2, #0
	while (buf) {
   3716c:	b11b      	cbz	r3, 37176 <att_chan_read+0x24>
		bytes += buf->len;
   3716e:	8999      	ldrh	r1, [r3, #12]
   37170:	440a      	add	r2, r1
		buf = buf->frags;
   37172:	681b      	ldr	r3, [r3, #0]
   37174:	e7fa      	b.n	3716c <att_chan_read+0x1a>
   37176:	4290      	cmp	r0, r2
   37178:	d804      	bhi.n	37184 <att_chan_read+0x32>
		return 0;
   3717a:	2400      	movs	r4, #0
}
   3717c:	4620      	mov	r0, r4
   3717e:	b005      	add	sp, #20
   37180:	e8bd 8ff0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
	frag = net_buf_frag_last(buf);
   37184:	9802      	ldr	r0, [sp, #8]
   37186:	f7f2 fb3d 	bl	29804 <net_buf_frag_last>
   3718a:	4607      	mov	r7, r0
	size_t len, total = 0;
   3718c:	f04f 0a00 	mov.w	sl, #0
   37190:	e083      	b.n	3729a <att_chan_read+0x148>
		bytes += buf->len;
   37192:	8999      	ldrh	r1, [r3, #12]
   37194:	440a      	add	r2, r1
		buf = buf->frags;
   37196:	681b      	ldr	r3, [r3, #0]
	while (buf) {
   37198:	2b00      	cmp	r3, #0
   3719a:	d1fa      	bne.n	37192 <att_chan_read+0x40>
		len = MIN(chan->chan.tx.mtu - net_buf_frags_len(buf),
   3719c:	1aa4      	subs	r4, r4, r2
	return net_buf_simple_tailroom(&buf->b);
   3719e:	f107 0608 	add.w	r6, r7, #8
   371a2:	4630      	mov	r0, r6
   371a4:	f001 ffc5 	bl	39132 <net_buf_simple_tailroom>
   371a8:	4284      	cmp	r4, r0
   371aa:	d32c      	bcc.n	37206 <att_chan_read+0xb4>
   371ac:	4630      	mov	r0, r6
   371ae:	f001 ffc0 	bl	39132 <net_buf_simple_tailroom>
   371b2:	4606      	mov	r6, r0
		if (!len) {
   371b4:	2e00      	cmp	r6, #0
   371b6:	d032      	beq.n	3721e <att_chan_read+0xcc>
		read = attr->read(conn, attr, frag->data + frag->len, len,
   371b8:	f8d9 4004 	ldr.w	r4, [r9, #4]
   371bc:	68b9      	ldr	r1, [r7, #8]
   371be:	89ba      	ldrh	r2, [r7, #12]
   371c0:	9500      	str	r5, [sp, #0]
   371c2:	b2b3      	uxth	r3, r6
   371c4:	440a      	add	r2, r1
   371c6:	4649      	mov	r1, r9
   371c8:	9803      	ldr	r0, [sp, #12]
   371ca:	47a0      	blx	r4
		if (read < 0) {
   371cc:	1e04      	subs	r4, r0, #0
   371ce:	db5a      	blt.n	37286 <att_chan_read+0x134>
		if (cb && !cb(frag, read, user_data)) {
   371d0:	9b0e      	ldr	r3, [sp, #56]	; 0x38
   371d2:	b12b      	cbz	r3, 371e0 <att_chan_read+0x8e>
   371d4:	9a0f      	ldr	r2, [sp, #60]	; 0x3c
   371d6:	4621      	mov	r1, r4
   371d8:	4638      	mov	r0, r7
   371da:	4798      	blx	r3
   371dc:	2800      	cmp	r0, #0
   371de:	d061      	beq.n	372a4 <att_chan_read+0x152>
		net_buf_add(frag, read);
   371e0:	46a3      	mov	fp, r4
	return net_buf_simple_add(&buf->b, len);
   371e2:	4621      	mov	r1, r4
   371e4:	f107 0008 	add.w	r0, r7, #8
   371e8:	f7f2 fbd2 	bl	29990 <net_buf_simple_add>
		total += read;
   371ec:	44a2      	add	sl, r4
		offset += read;
   371ee:	4425      	add	r5, r4
   371f0:	b2ad      	uxth	r5, r5
	} while (chan->chan.tx.mtu > net_buf_frags_len(buf) && read == len);
   371f2:	f8b8 008a 	ldrh.w	r0, [r8, #138]	; 0x8a
   371f6:	9b02      	ldr	r3, [sp, #8]
	size_t bytes = 0;
   371f8:	2200      	movs	r2, #0
	while (buf) {
   371fa:	2b00      	cmp	r3, #0
   371fc:	d049      	beq.n	37292 <att_chan_read+0x140>
		bytes += buf->len;
   371fe:	8999      	ldrh	r1, [r3, #12]
   37200:	440a      	add	r2, r1
		buf = buf->frags;
   37202:	681b      	ldr	r3, [r3, #0]
   37204:	e7f9      	b.n	371fa <att_chan_read+0xa8>
		len = MIN(chan->chan.tx.mtu - net_buf_frags_len(buf),
   37206:	f8b8 608a 	ldrh.w	r6, [r8, #138]	; 0x8a
	while (buf) {
   3720a:	9b02      	ldr	r3, [sp, #8]
	size_t bytes = 0;
   3720c:	2200      	movs	r2, #0
	while (buf) {
   3720e:	e002      	b.n	37216 <att_chan_read+0xc4>
		bytes += buf->len;
   37210:	8999      	ldrh	r1, [r3, #12]
   37212:	440a      	add	r2, r1
		buf = buf->frags;
   37214:	681b      	ldr	r3, [r3, #0]
	while (buf) {
   37216:	2b00      	cmp	r3, #0
   37218:	d1fa      	bne.n	37210 <att_chan_read+0xbe>
   3721a:	1ab6      	subs	r6, r6, r2
   3721c:	e7ca      	b.n	371b4 <att_chan_read+0x62>
			frag = net_buf_alloc(net_buf_pool_get(buf->pool_id),
   3721e:	9b02      	ldr	r3, [sp, #8]
   37220:	7998      	ldrb	r0, [r3, #6]
   37222:	f7f2 f933 	bl	2948c <net_buf_pool_get>
	return net_buf_alloc_fixed(pool, timeout);
   37226:	2200      	movs	r2, #0
   37228:	2300      	movs	r3, #0
   3722a:	f001 ff6f 	bl	3910c <net_buf_alloc_fixed>
			if (!frag) {
   3722e:	4607      	mov	r7, r0
   37230:	b150      	cbz	r0, 37248 <att_chan_read+0xf6>
			net_buf_frag_add(buf, frag);
   37232:	4601      	mov	r1, r0
   37234:	f8dd b008 	ldr.w	fp, [sp, #8]
   37238:	4658      	mov	r0, fp
   3723a:	f7f2 fb29 	bl	29890 <net_buf_frag_add>
			len = MIN(chan->chan.tx.mtu - net_buf_frags_len(buf),
   3723e:	f8b8 408a 	ldrh.w	r4, [r8, #138]	; 0x8a
	size_t bytes = 0;
   37242:	4632      	mov	r2, r6
	while (buf) {
   37244:	465b      	mov	r3, fp
   37246:	e004      	b.n	37252 <att_chan_read+0x100>
				return total;
   37248:	4654      	mov	r4, sl
   3724a:	e797      	b.n	3717c <att_chan_read+0x2a>
		bytes += buf->len;
   3724c:	8999      	ldrh	r1, [r3, #12]
   3724e:	440a      	add	r2, r1
		buf = buf->frags;
   37250:	681b      	ldr	r3, [r3, #0]
	while (buf) {
   37252:	2b00      	cmp	r3, #0
   37254:	d1fa      	bne.n	3724c <att_chan_read+0xfa>
			len = MIN(chan->chan.tx.mtu - net_buf_frags_len(buf),
   37256:	1aa4      	subs	r4, r4, r2
	return net_buf_simple_tailroom(&buf->b);
   37258:	f107 0b08 	add.w	fp, r7, #8
   3725c:	4658      	mov	r0, fp
   3725e:	f001 ff68 	bl	39132 <net_buf_simple_tailroom>
   37262:	4284      	cmp	r4, r0
   37264:	d304      	bcc.n	37270 <att_chan_read+0x11e>
   37266:	4658      	mov	r0, fp
   37268:	f001 ff63 	bl	39132 <net_buf_simple_tailroom>
   3726c:	4606      	mov	r6, r0
   3726e:	e7a3      	b.n	371b8 <att_chan_read+0x66>
   37270:	f8b8 108a 	ldrh.w	r1, [r8, #138]	; 0x8a
	while (buf) {
   37274:	9b02      	ldr	r3, [sp, #8]
   37276:	e002      	b.n	3727e <att_chan_read+0x12c>
		bytes += buf->len;
   37278:	899a      	ldrh	r2, [r3, #12]
   3727a:	4416      	add	r6, r2
		buf = buf->frags;
   3727c:	681b      	ldr	r3, [r3, #0]
	while (buf) {
   3727e:	2b00      	cmp	r3, #0
   37280:	d1fa      	bne.n	37278 <att_chan_read+0x126>
   37282:	1b8e      	subs	r6, r1, r6
   37284:	e798      	b.n	371b8 <att_chan_read+0x66>
			if (total) {
   37286:	f1ba 0f00 	cmp.w	sl, #0
   3728a:	f43f af77 	beq.w	3717c <att_chan_read+0x2a>
				return total;
   3728e:	4654      	mov	r4, sl
   37290:	e774      	b.n	3717c <att_chan_read+0x2a>
	} while (chan->chan.tx.mtu > net_buf_frags_len(buf) && read == len);
   37292:	4290      	cmp	r0, r2
   37294:	d906      	bls.n	372a4 <att_chan_read+0x152>
   37296:	45b3      	cmp	fp, r6
   37298:	d104      	bne.n	372a4 <att_chan_read+0x152>
		len = MIN(chan->chan.tx.mtu - net_buf_frags_len(buf),
   3729a:	f8b8 408a 	ldrh.w	r4, [r8, #138]	; 0x8a
   3729e:	9b02      	ldr	r3, [sp, #8]
	size_t bytes = 0;
   372a0:	2200      	movs	r2, #0
	while (buf) {
   372a2:	e779      	b.n	37198 <att_chan_read+0x46>
	return total;
   372a4:	4654      	mov	r4, sl
   372a6:	e769      	b.n	3717c <att_chan_read+0x2a>

000372a8 <read_cb>:
{
   372a8:	b5f0      	push	{r4, r5, r6, r7, lr}
   372aa:	b083      	sub	sp, #12
   372ac:	4606      	mov	r6, r0
   372ae:	4614      	mov	r4, r2
	struct bt_att_chan *chan = data->chan;
   372b0:	6817      	ldr	r7, [r2, #0]
	struct bt_conn *conn = chan->chan.chan.conn;
   372b2:	68b8      	ldr	r0, [r7, #8]
	data->err = 0x00;
   372b4:	2300      	movs	r3, #0
   372b6:	7313      	strb	r3, [r2, #12]
	data->err = bt_gatt_check_perm(conn, attr, BT_GATT_PERM_READ_MASK);
   372b8:	2215      	movs	r2, #21
   372ba:	4631      	mov	r1, r6
   372bc:	f000 fdd8 	bl	37e70 <bt_gatt_check_perm>
   372c0:	7320      	strb	r0, [r4, #12]
	if (data->err) {
   372c2:	b118      	cbz	r0, 372cc <read_cb+0x24>
		return BT_GATT_ITER_STOP;
   372c4:	2500      	movs	r5, #0
}
   372c6:	4628      	mov	r0, r5
   372c8:	b003      	add	sp, #12
   372ca:	bdf0      	pop	{r4, r5, r6, r7, pc}
   372cc:	4605      	mov	r5, r0
	ret = att_chan_read(chan, attr, data->buf, data->offset, NULL, NULL);
   372ce:	2300      	movs	r3, #0
   372d0:	9301      	str	r3, [sp, #4]
   372d2:	9300      	str	r3, [sp, #0]
   372d4:	88a3      	ldrh	r3, [r4, #4]
   372d6:	68a2      	ldr	r2, [r4, #8]
   372d8:	4631      	mov	r1, r6
   372da:	4638      	mov	r0, r7
   372dc:	f7ff ff39 	bl	37152 <att_chan_read>
	if (ret < 0) {
   372e0:	2800      	cmp	r0, #0
   372e2:	db01      	blt.n	372e8 <read_cb+0x40>
	return BT_GATT_ITER_CONTINUE;
   372e4:	2501      	movs	r5, #1
   372e6:	e7ee      	b.n	372c6 <read_cb+0x1e>
		data->err = err_to_att(ret);
   372e8:	f7ff fce8 	bl	36cbc <err_to_att>
   372ec:	7320      	strb	r0, [r4, #12]
		return BT_GATT_ITER_STOP;
   372ee:	e7ea      	b.n	372c6 <read_cb+0x1e>

000372f0 <find_info_cb>:
{
   372f0:	e92d 43f8 	stmdb	sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
   372f4:	4606      	mov	r6, r0
   372f6:	460f      	mov	r7, r1
   372f8:	4614      	mov	r4, r2
	struct bt_att_chan *chan = data->chan;
   372fa:	f8d2 8000 	ldr.w	r8, [r2]
	if (!data->rsp) {
   372fe:	6893      	ldr	r3, [r2, #8]
   37300:	b14b      	cbz	r3, 37316 <find_info_cb+0x26>
	switch (data->rsp->format) {
   37302:	68a3      	ldr	r3, [r4, #8]
   37304:	781d      	ldrb	r5, [r3, #0]
   37306:	2d01      	cmp	r5, #1
   37308:	d013      	beq.n	37332 <find_info_cb+0x42>
   3730a:	2d02      	cmp	r5, #2
   3730c:	d02d      	beq.n	3736a <find_info_cb+0x7a>
   3730e:	2500      	movs	r5, #0
}
   37310:	4628      	mov	r0, r5
   37312:	e8bd 83f8 	ldmia.w	sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
		data->rsp = net_buf_add(data->buf, sizeof(*data->rsp));
   37316:	6850      	ldr	r0, [r2, #4]
	return net_buf_simple_add(&buf->b, len);
   37318:	2101      	movs	r1, #1
   3731a:	3008      	adds	r0, #8
   3731c:	f7f2 fb38 	bl	29990 <net_buf_simple_add>
   37320:	60a0      	str	r0, [r4, #8]
		data->rsp->format = (attr->uuid->type == BT_UUID_TYPE_16) ?
   37322:	6833      	ldr	r3, [r6, #0]
   37324:	781b      	ldrb	r3, [r3, #0]
   37326:	b913      	cbnz	r3, 3732e <find_info_cb+0x3e>
   37328:	2301      	movs	r3, #1
   3732a:	7003      	strb	r3, [r0, #0]
   3732c:	e7e9      	b.n	37302 <find_info_cb+0x12>
   3732e:	2302      	movs	r3, #2
   37330:	e7fb      	b.n	3732a <find_info_cb+0x3a>
		if (attr->uuid->type != BT_UUID_TYPE_16) {
   37332:	6833      	ldr	r3, [r6, #0]
   37334:	f893 9000 	ldrb.w	r9, [r3]
   37338:	f1b9 0f00 	cmp.w	r9, #0
   3733c:	d001      	beq.n	37342 <find_info_cb+0x52>
			return BT_GATT_ITER_STOP;
   3733e:	2500      	movs	r5, #0
   37340:	e7e6      	b.n	37310 <find_info_cb+0x20>
		data->info16 = net_buf_add(data->buf, sizeof(*data->info16));
   37342:	6860      	ldr	r0, [r4, #4]
   37344:	2104      	movs	r1, #4
   37346:	3008      	adds	r0, #8
   37348:	f7f2 fb22 	bl	29990 <net_buf_simple_add>
   3734c:	60e0      	str	r0, [r4, #12]
		data->info16->handle = sys_cpu_to_le16(handle);
   3734e:	8007      	strh	r7, [r0, #0]
		data->info16->uuid = sys_cpu_to_le16(BT_UUID_16(attr->uuid)->val);
   37350:	6832      	ldr	r2, [r6, #0]
   37352:	68e3      	ldr	r3, [r4, #12]
   37354:	8852      	ldrh	r2, [r2, #2]
   37356:	805a      	strh	r2, [r3, #2]
		if (chan->chan.tx.mtu - data->buf->len >
   37358:	f8b8 308a 	ldrh.w	r3, [r8, #138]	; 0x8a
   3735c:	6862      	ldr	r2, [r4, #4]
   3735e:	8992      	ldrh	r2, [r2, #12]
   37360:	1a9b      	subs	r3, r3, r2
   37362:	2b04      	cmp	r3, #4
   37364:	d8d4      	bhi.n	37310 <find_info_cb+0x20>
	return BT_GATT_ITER_STOP;
   37366:	464d      	mov	r5, r9
   37368:	e7d2      	b.n	37310 <find_info_cb+0x20>
		if (attr->uuid->type != BT_UUID_TYPE_128) {
   3736a:	6833      	ldr	r3, [r6, #0]
   3736c:	781b      	ldrb	r3, [r3, #0]
   3736e:	2b02      	cmp	r3, #2
   37370:	d001      	beq.n	37376 <find_info_cb+0x86>
			return BT_GATT_ITER_STOP;
   37372:	2500      	movs	r5, #0
   37374:	e7cc      	b.n	37310 <find_info_cb+0x20>
		data->info128 = net_buf_add(data->buf, sizeof(*data->info128));
   37376:	6860      	ldr	r0, [r4, #4]
   37378:	2112      	movs	r1, #18
   3737a:	3008      	adds	r0, #8
   3737c:	f7f2 fb08 	bl	29990 <net_buf_simple_add>
   37380:	60e0      	str	r0, [r4, #12]
		data->info128->handle = sys_cpu_to_le16(handle);
   37382:	8007      	strh	r7, [r0, #0]
		memcpy(data->info128->uuid, BT_UUID_128(attr->uuid)->val,
   37384:	68e0      	ldr	r0, [r4, #12]
   37386:	6831      	ldr	r1, [r6, #0]
   37388:	2210      	movs	r2, #16
   3738a:	3101      	adds	r1, #1
   3738c:	3002      	adds	r0, #2
   3738e:	f7fe fbb5 	bl	35afc <memcpy>
		if (chan->chan.tx.mtu - data->buf->len >
   37392:	f8b8 308a 	ldrh.w	r3, [r8, #138]	; 0x8a
   37396:	6862      	ldr	r2, [r4, #4]
   37398:	8992      	ldrh	r2, [r2, #12]
   3739a:	1a9b      	subs	r3, r3, r2
   3739c:	2b12      	cmp	r3, #18
   3739e:	d801      	bhi.n	373a4 <find_info_cb+0xb4>
	return BT_GATT_ITER_STOP;
   373a0:	2500      	movs	r5, #0
   373a2:	e7b5      	b.n	37310 <find_info_cb+0x20>
			return BT_GATT_ITER_CONTINUE;
   373a4:	2501      	movs	r5, #1
   373a6:	e7b3      	b.n	37310 <find_info_cb+0x20>

000373a8 <att_chan_mtu_updated>:
{
   373a8:	b570      	push	{r4, r5, r6, lr}
	struct bt_att *att = updated_chan->att;
   373aa:	6806      	ldr	r6, [r0, #0]
	return list->head;
   373ac:	6ab4      	ldr	r4, [r6, #40]	; 0x28
	SYS_SLIST_FOR_EACH_CONTAINER_SAFE(&att->chans, chan, tmp, node) {
   373ae:	b15c      	cbz	r4, 373c8 <att_chan_mtu_updated+0x20>
   373b0:	f5b4 74aa 	subs.w	r4, r4, #340	; 0x154
   373b4:	d00c      	beq.n	373d0 <att_chan_mtu_updated+0x28>
Z_GENLIST_PEEK_NEXT(slist, snode)
   373b6:	f514 73aa 	adds.w	r3, r4, #340	; 0x154
   373ba:	d006      	beq.n	373ca <att_chan_mtu_updated+0x22>
	return node->next;
   373bc:	f8d4 3154 	ldr.w	r3, [r4, #340]	; 0x154
   373c0:	b11b      	cbz	r3, 373ca <att_chan_mtu_updated+0x22>
   373c2:	f5a3 73aa 	sub.w	r3, r3, #340	; 0x154
   373c6:	e000      	b.n	373ca <att_chan_mtu_updated+0x22>
   373c8:	4623      	mov	r3, r4
   373ca:	2200      	movs	r2, #0
   373cc:	4611      	mov	r1, r2
   373ce:	e004      	b.n	373da <att_chan_mtu_updated+0x32>
   373d0:	4623      	mov	r3, r4
   373d2:	e7fa      	b.n	373ca <att_chan_mtu_updated+0x22>
   373d4:	461d      	mov	r5, r3
   373d6:	461c      	mov	r4, r3
   373d8:	462b      	mov	r3, r5
   373da:	b1bc      	cbz	r4, 3740c <att_chan_mtu_updated+0x64>
		if (chan == updated_chan) {
   373dc:	4284      	cmp	r4, r0
   373de:	d009      	beq.n	373f4 <att_chan_mtu_updated+0x4c>
		max_tx = MAX(max_tx, chan->chan.tx.mtu);
   373e0:	f8b4 508a 	ldrh.w	r5, [r4, #138]	; 0x8a
   373e4:	42a9      	cmp	r1, r5
   373e6:	bf38      	it	cc
   373e8:	4629      	movcc	r1, r5
		max_rx = MAX(max_rx, chan->chan.rx.mtu);
   373ea:	f8b4 407a 	ldrh.w	r4, [r4, #122]	; 0x7a
   373ee:	42a2      	cmp	r2, r4
   373f0:	bf38      	it	cc
   373f2:	4622      	movcc	r2, r4
	SYS_SLIST_FOR_EACH_CONTAINER_SAFE(&att->chans, chan, tmp, node) {
   373f4:	2b00      	cmp	r3, #0
   373f6:	d0ed      	beq.n	373d4 <att_chan_mtu_updated+0x2c>
Z_GENLIST_PEEK_NEXT(slist, snode)
   373f8:	f513 75aa 	adds.w	r5, r3, #340	; 0x154
   373fc:	d0eb      	beq.n	373d6 <att_chan_mtu_updated+0x2e>
	return node->next;
   373fe:	f8d3 5154 	ldr.w	r5, [r3, #340]	; 0x154
   37402:	2d00      	cmp	r5, #0
   37404:	d0e7      	beq.n	373d6 <att_chan_mtu_updated+0x2e>
   37406:	f5a5 75aa 	sub.w	r5, r5, #340	; 0x154
   3740a:	e7e4      	b.n	373d6 <att_chan_mtu_updated+0x2e>
	if ((updated_chan->chan.tx.mtu > max_tx) ||
   3740c:	f8b0 308a 	ldrh.w	r3, [r0, #138]	; 0x8a
   37410:	428b      	cmp	r3, r1
   37412:	d803      	bhi.n	3741c <att_chan_mtu_updated+0x74>
	    (updated_chan->chan.rx.mtu > max_rx)) {
   37414:	f8b0 407a 	ldrh.w	r4, [r0, #122]	; 0x7a
	if ((updated_chan->chan.tx.mtu > max_tx) ||
   37418:	4294      	cmp	r4, r2
   3741a:	d90a      	bls.n	37432 <att_chan_mtu_updated+0x8a>
		max_rx = MAX(max_rx, updated_chan->chan.rx.mtu);
   3741c:	f8b0 007a 	ldrh.w	r0, [r0, #122]	; 0x7a
		bt_gatt_att_max_mtu_changed(att->conn, max_tx, max_rx);
   37420:	4282      	cmp	r2, r0
   37422:	bf38      	it	cc
   37424:	4602      	movcc	r2, r0
   37426:	4299      	cmp	r1, r3
   37428:	bf38      	it	cc
   3742a:	4619      	movcc	r1, r3
   3742c:	6830      	ldr	r0, [r6, #0]
   3742e:	f7ef fc83 	bl	26d38 <bt_gatt_att_max_mtu_changed>
}
   37432:	bd70      	pop	{r4, r5, r6, pc}

00037434 <att_write_cmd>:
{
   37434:	b530      	push	{r4, r5, lr}
   37436:	b085      	sub	sp, #20
   37438:	4605      	mov	r5, r0
   3743a:	460c      	mov	r4, r1
	return net_buf_simple_pull_le16(&buf->b);
   3743c:	f101 0008 	add.w	r0, r1, #8
   37440:	f001 fe6b 	bl	3911a <net_buf_simple_pull_le16>
   37444:	4603      	mov	r3, r0
	return att_write_rsp(chan, 0, 0, handle, 0, buf->data, buf->len);
   37446:	68a2      	ldr	r2, [r4, #8]
   37448:	89a1      	ldrh	r1, [r4, #12]
   3744a:	9102      	str	r1, [sp, #8]
   3744c:	9201      	str	r2, [sp, #4]
   3744e:	2100      	movs	r1, #0
   37450:	9100      	str	r1, [sp, #0]
   37452:	460a      	mov	r2, r1
   37454:	4628      	mov	r0, r5
   37456:	f7ed fc0f 	bl	24c78 <att_write_rsp>
}
   3745a:	b005      	add	sp, #20
   3745c:	bd30      	pop	{r4, r5, pc}

0003745e <att_write_req>:
{
   3745e:	b530      	push	{r4, r5, lr}
   37460:	b085      	sub	sp, #20
   37462:	4605      	mov	r5, r0
   37464:	460c      	mov	r4, r1
   37466:	f101 0008 	add.w	r0, r1, #8
   3746a:	f001 fe56 	bl	3911a <net_buf_simple_pull_le16>
   3746e:	4603      	mov	r3, r0
			     handle, 0, buf->data, buf->len);
   37470:	68a2      	ldr	r2, [r4, #8]
	return att_write_rsp(chan, BT_ATT_OP_WRITE_REQ, BT_ATT_OP_WRITE_RSP,
   37472:	89a1      	ldrh	r1, [r4, #12]
   37474:	9102      	str	r1, [sp, #8]
   37476:	9201      	str	r2, [sp, #4]
   37478:	2200      	movs	r2, #0
   3747a:	9200      	str	r2, [sp, #0]
   3747c:	2213      	movs	r2, #19
   3747e:	2112      	movs	r1, #18
   37480:	4628      	mov	r0, r5
   37482:	f7ed fbf9 	bl	24c78 <att_write_rsp>
}
   37486:	b005      	add	sp, #20
   37488:	bd30      	pop	{r4, r5, pc}

0003748a <att_req_retry>:
{
   3748a:	b570      	push	{r4, r5, r6, lr}
	struct bt_att_req *req = att_chan->req;
   3748c:	f8d0 40fc 	ldr.w	r4, [r0, #252]	; 0xfc
	if (!req->encode) {
   37490:	68e3      	ldr	r3, [r4, #12]
   37492:	b1eb      	cbz	r3, 374d0 <att_req_retry+0x46>
   37494:	4605      	mov	r5, r0
	buf = bt_att_chan_create_pdu(att_chan, req->att_op, req->len);
   37496:	6962      	ldr	r2, [r4, #20]
   37498:	7c61      	ldrb	r1, [r4, #17]
   3749a:	f7ed faff 	bl	24a9c <bt_att_chan_create_pdu>
	if (!buf) {
   3749e:	4606      	mov	r6, r0
   374a0:	b1c0      	cbz	r0, 374d4 <att_req_retry+0x4a>
	if (req->encode(buf, req->len, req->user_data)) {
   374a2:	68e3      	ldr	r3, [r4, #12]
   374a4:	69a2      	ldr	r2, [r4, #24]
   374a6:	6961      	ldr	r1, [r4, #20]
   374a8:	4798      	blx	r3
   374aa:	b938      	cbnz	r0, 374bc <att_req_retry+0x32>
	if (chan_send(att_chan, buf, NULL)) {
   374ac:	2200      	movs	r2, #0
   374ae:	4631      	mov	r1, r6
   374b0:	4628      	mov	r0, r5
   374b2:	f7ed f8c3 	bl	2463c <chan_send>
   374b6:	b930      	cbnz	r0, 374c6 <att_req_retry+0x3c>
	return BT_ATT_ERR_SUCCESS;
   374b8:	2000      	movs	r0, #0
}
   374ba:	bd70      	pop	{r4, r5, r6, pc}
		net_buf_unref(buf);
   374bc:	4630      	mov	r0, r6
   374be:	f7f2 f94f 	bl	29760 <net_buf_unref>
		return BT_ATT_ERR_UNLIKELY;
   374c2:	200e      	movs	r0, #14
   374c4:	e7f9      	b.n	374ba <att_req_retry+0x30>
		net_buf_unref(buf);
   374c6:	4630      	mov	r0, r6
   374c8:	f7f2 f94a 	bl	29760 <net_buf_unref>
		return BT_ATT_ERR_UNLIKELY;
   374cc:	200e      	movs	r0, #14
   374ce:	e7f4      	b.n	374ba <att_req_retry+0x30>
		return BT_ATT_ERR_AUTHENTICATION;
   374d0:	2005      	movs	r0, #5
   374d2:	e7f2      	b.n	374ba <att_req_retry+0x30>
		return BT_ATT_ERR_UNLIKELY;
   374d4:	200e      	movs	r0, #14
   374d6:	e7f0      	b.n	374ba <att_req_retry+0x30>

000374d8 <att_read_group_req>:
{
   374d8:	b5f0      	push	{r4, r5, r6, r7, lr}
   374da:	b089      	sub	sp, #36	; 0x24
   374dc:	4605      	mov	r5, r0
   374de:	4608      	mov	r0, r1
	uint8_t uuid_len = buf->len - sizeof(*req);
   374e0:	7b0c      	ldrb	r4, [r1, #12]
   374e2:	3c04      	subs	r4, #4
   374e4:	b2e4      	uxtb	r4, r4
	if (uuid_len != 2 && uuid_len != 16) {
   374e6:	2c02      	cmp	r4, #2
   374e8:	d001      	beq.n	374ee <att_read_group_req+0x16>
   374ea:	2c10      	cmp	r4, #16
   374ec:	d142      	bne.n	37574 <att_read_group_req+0x9c>
	return net_buf_simple_pull_mem(&buf->b, len);
   374ee:	2104      	movs	r1, #4
   374f0:	3008      	adds	r0, #8
   374f2:	f7f2 fa0d 	bl	29910 <net_buf_simple_pull_mem>
	start_handle = sys_le16_to_cpu(req->start_handle);
   374f6:	8806      	ldrh	r6, [r0, #0]
	end_handle = sys_le16_to_cpu(req->end_handle);
   374f8:	8847      	ldrh	r7, [r0, #2]
	if (!bt_uuid_create(&u.uuid, req->uuid, uuid_len)) {
   374fa:	4622      	mov	r2, r4
   374fc:	1d01      	adds	r1, r0, #4
   374fe:	a801      	add	r0, sp, #4
   37500:	f7fe fc52 	bl	35da8 <bt_uuid_create>
   37504:	b3c8      	cbz	r0, 3757a <att_read_group_req+0xa2>
	if (!range_is_valid(start_handle, end_handle, &err_handle)) {
   37506:	f10d 0216 	add.w	r2, sp, #22
   3750a:	4639      	mov	r1, r7
   3750c:	4630      	mov	r0, r6
   3750e:	f7ff fbc6 	bl	36c9e <range_is_valid>
   37512:	b1f0      	cbz	r0, 37552 <att_read_group_req+0x7a>
	if (bt_uuid_cmp(&u.uuid, BT_UUID_GATT_PRIMARY) &&
   37514:	2300      	movs	r3, #0
   37516:	f88d 3018 	strb.w	r3, [sp, #24]
   3751a:	f44f 5320 	mov.w	r3, #10240	; 0x2800
   3751e:	f8ad 301a 	strh.w	r3, [sp, #26]
   37522:	a906      	add	r1, sp, #24
   37524:	a801      	add	r0, sp, #4
   37526:	f7fe fc21 	bl	35d6c <bt_uuid_cmp>
   3752a:	b158      	cbz	r0, 37544 <att_read_group_req+0x6c>
	    bt_uuid_cmp(&u.uuid, BT_UUID_GATT_SECONDARY)) {
   3752c:	2300      	movs	r3, #0
   3752e:	f88d 301c 	strb.w	r3, [sp, #28]
   37532:	f642 0301 	movw	r3, #10241	; 0x2801
   37536:	f8ad 301e 	strh.w	r3, [sp, #30]
   3753a:	a907      	add	r1, sp, #28
   3753c:	a801      	add	r0, sp, #4
   3753e:	f7fe fc15 	bl	35d6c <bt_uuid_cmp>
	if (bt_uuid_cmp(&u.uuid, BT_UUID_GATT_PRIMARY) &&
   37542:	b978      	cbnz	r0, 37564 <att_read_group_req+0x8c>
	return att_read_group_rsp(chan, &u.uuid, start_handle, end_handle);
   37544:	463b      	mov	r3, r7
   37546:	4632      	mov	r2, r6
   37548:	a901      	add	r1, sp, #4
   3754a:	4628      	mov	r0, r5
   3754c:	f7ed fc3a 	bl	24dc4 <att_read_group_rsp>
   37550:	e011      	b.n	37576 <att_read_group_req+0x9e>
		send_err_rsp(chan, BT_ATT_OP_READ_GROUP_REQ, err_handle,
   37552:	2301      	movs	r3, #1
   37554:	f8bd 2016 	ldrh.w	r2, [sp, #22]
   37558:	2110      	movs	r1, #16
   3755a:	4628      	mov	r0, r5
   3755c:	f7ed fad8 	bl	24b10 <send_err_rsp>
		return 0;
   37560:	2000      	movs	r0, #0
   37562:	e008      	b.n	37576 <att_read_group_req+0x9e>
		send_err_rsp(chan, BT_ATT_OP_READ_GROUP_REQ, start_handle,
   37564:	2310      	movs	r3, #16
   37566:	4632      	mov	r2, r6
   37568:	4619      	mov	r1, r3
   3756a:	4628      	mov	r0, r5
   3756c:	f7ed fad0 	bl	24b10 <send_err_rsp>
		return 0;
   37570:	2000      	movs	r0, #0
   37572:	e000      	b.n	37576 <att_read_group_req+0x9e>
		return BT_ATT_ERR_INVALID_PDU;
   37574:	2004      	movs	r0, #4
}
   37576:	b009      	add	sp, #36	; 0x24
   37578:	bdf0      	pop	{r4, r5, r6, r7, pc}
		return BT_ATT_ERR_UNLIKELY;
   3757a:	200e      	movs	r0, #14
   3757c:	e7fb      	b.n	37576 <att_read_group_req+0x9e>

0003757e <att_read_blob_req>:
{
   3757e:	b500      	push	{lr}
   37580:	b083      	sub	sp, #12
	req = (void *)buf->data;
   37582:	688a      	ldr	r2, [r1, #8]
	handle = sys_le16_to_cpu(req->handle);
   37584:	8813      	ldrh	r3, [r2, #0]
	offset = sys_le16_to_cpu(req->offset);
   37586:	8852      	ldrh	r2, [r2, #2]
	return att_read_rsp(chan, BT_ATT_OP_READ_BLOB_REQ,
   37588:	9200      	str	r2, [sp, #0]
   3758a:	220d      	movs	r2, #13
   3758c:	210c      	movs	r1, #12
   3758e:	f7ed fcaf 	bl	24ef0 <att_read_rsp>
}
   37592:	b003      	add	sp, #12
   37594:	f85d fb04 	ldr.w	pc, [sp], #4

00037598 <att_read_req>:
{
   37598:	b500      	push	{lr}
   3759a:	b083      	sub	sp, #12
	req = (void *)buf->data;
   3759c:	688b      	ldr	r3, [r1, #8]
	handle = sys_le16_to_cpu(req->handle);
   3759e:	881b      	ldrh	r3, [r3, #0]
	return att_read_rsp(chan, BT_ATT_OP_READ_REQ, BT_ATT_OP_READ_RSP,
   375a0:	2200      	movs	r2, #0
   375a2:	9200      	str	r2, [sp, #0]
   375a4:	220b      	movs	r2, #11
   375a6:	210a      	movs	r1, #10
   375a8:	f7ed fca2 	bl	24ef0 <att_read_rsp>
}
   375ac:	b003      	add	sp, #12
   375ae:	f85d fb04 	ldr.w	pc, [sp], #4

000375b2 <att_read_type_req>:
{
   375b2:	b5f0      	push	{r4, r5, r6, r7, lr}
   375b4:	b087      	sub	sp, #28
   375b6:	4605      	mov	r5, r0
   375b8:	4608      	mov	r0, r1
	uint8_t uuid_len = buf->len - sizeof(*req);
   375ba:	7b0c      	ldrb	r4, [r1, #12]
   375bc:	3c04      	subs	r4, #4
   375be:	b2e4      	uxtb	r4, r4
	if (uuid_len != 2 && uuid_len != 16) {
   375c0:	2c02      	cmp	r4, #2
   375c2:	d001      	beq.n	375c8 <att_read_type_req+0x16>
   375c4:	2c10      	cmp	r4, #16
   375c6:	d123      	bne.n	37610 <att_read_type_req+0x5e>
   375c8:	2104      	movs	r1, #4
   375ca:	3008      	adds	r0, #8
   375cc:	f7f2 f9a0 	bl	29910 <net_buf_simple_pull_mem>
	start_handle = sys_le16_to_cpu(req->start_handle);
   375d0:	8806      	ldrh	r6, [r0, #0]
	end_handle = sys_le16_to_cpu(req->end_handle);
   375d2:	8847      	ldrh	r7, [r0, #2]
	if (!bt_uuid_create(&u.uuid, req->uuid, uuid_len)) {
   375d4:	4622      	mov	r2, r4
   375d6:	1d01      	adds	r1, r0, #4
   375d8:	a801      	add	r0, sp, #4
   375da:	f7fe fbe5 	bl	35da8 <bt_uuid_create>
   375de:	b1c8      	cbz	r0, 37614 <att_read_type_req+0x62>
	if (!range_is_valid(start_handle, end_handle, &err_handle)) {
   375e0:	f10d 0216 	add.w	r2, sp, #22
   375e4:	4639      	mov	r1, r7
   375e6:	4630      	mov	r0, r6
   375e8:	f7ff fb59 	bl	36c9e <range_is_valid>
   375ec:	b138      	cbz	r0, 375fe <att_read_type_req+0x4c>
	return att_read_type_rsp(chan, &u.uuid, start_handle, end_handle);
   375ee:	463b      	mov	r3, r7
   375f0:	4632      	mov	r2, r6
   375f2:	a901      	add	r1, sp, #4
   375f4:	4628      	mov	r0, r5
   375f6:	f7ed fccd 	bl	24f94 <att_read_type_rsp>
}
   375fa:	b007      	add	sp, #28
   375fc:	bdf0      	pop	{r4, r5, r6, r7, pc}
		send_err_rsp(chan, BT_ATT_OP_READ_TYPE_REQ, err_handle,
   375fe:	2301      	movs	r3, #1
   37600:	f8bd 2016 	ldrh.w	r2, [sp, #22]
   37604:	2108      	movs	r1, #8
   37606:	4628      	mov	r0, r5
   37608:	f7ed fa82 	bl	24b10 <send_err_rsp>
		return 0;
   3760c:	2000      	movs	r0, #0
   3760e:	e7f4      	b.n	375fa <att_read_type_req+0x48>
		return BT_ATT_ERR_INVALID_PDU;
   37610:	2004      	movs	r0, #4
   37612:	e7f2      	b.n	375fa <att_read_type_req+0x48>
		return BT_ATT_ERR_UNLIKELY;
   37614:	200e      	movs	r0, #14
   37616:	e7f0      	b.n	375fa <att_read_type_req+0x48>

00037618 <att_find_type_req>:
{
   37618:	e92d 43f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, lr}
   3761c:	b087      	sub	sp, #28
   3761e:	4607      	mov	r7, r0
   37620:	460c      	mov	r4, r1
   37622:	2106      	movs	r1, #6
   37624:	f104 0008 	add.w	r0, r4, #8
   37628:	f7f2 f972 	bl	29910 <net_buf_simple_pull_mem>
	start_handle = sys_le16_to_cpu(req->start_handle);
   3762c:	8805      	ldrh	r5, [r0, #0]
	end_handle = sys_le16_to_cpu(req->end_handle);
   3762e:	8846      	ldrh	r6, [r0, #2]
	type = sys_le16_to_cpu(req->type);
   37630:	f8b0 8004 	ldrh.w	r8, [r0, #4]
	value = buf->data;
   37634:	f8d4 9008 	ldr.w	r9, [r4, #8]
	if (!range_is_valid(start_handle, end_handle, &err_handle)) {
   37638:	f10d 020e 	add.w	r2, sp, #14
   3763c:	4631      	mov	r1, r6
   3763e:	4628      	mov	r0, r5
   37640:	f7ff fb2d 	bl	36c9e <range_is_valid>
   37644:	b1d0      	cbz	r0, 3767c <att_find_type_req+0x64>
	if (bt_uuid_cmp(BT_UUID_DECLARE_16(type), BT_UUID_GATT_PRIMARY)) {
   37646:	2300      	movs	r3, #0
   37648:	f88d 3010 	strb.w	r3, [sp, #16]
   3764c:	f8ad 8012 	strh.w	r8, [sp, #18]
   37650:	f88d 3014 	strb.w	r3, [sp, #20]
   37654:	f44f 5320 	mov.w	r3, #10240	; 0x2800
   37658:	f8ad 3016 	strh.w	r3, [sp, #22]
   3765c:	a905      	add	r1, sp, #20
   3765e:	a804      	add	r0, sp, #16
   37660:	f7fe fb84 	bl	35d6c <bt_uuid_cmp>
   37664:	b998      	cbnz	r0, 3768e <att_find_type_req+0x76>
	return att_find_type_rsp(chan, start_handle, end_handle, value,
   37666:	7b23      	ldrb	r3, [r4, #12]
   37668:	9300      	str	r3, [sp, #0]
   3766a:	464b      	mov	r3, r9
   3766c:	4632      	mov	r2, r6
   3766e:	4629      	mov	r1, r5
   37670:	4638      	mov	r0, r7
   37672:	f7ed fcd9 	bl	25028 <att_find_type_rsp>
}
   37676:	b007      	add	sp, #28
   37678:	e8bd 83f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, pc}
		send_err_rsp(chan, BT_ATT_OP_FIND_TYPE_REQ, err_handle,
   3767c:	2301      	movs	r3, #1
   3767e:	f8bd 200e 	ldrh.w	r2, [sp, #14]
   37682:	2106      	movs	r1, #6
   37684:	4638      	mov	r0, r7
   37686:	f7ed fa43 	bl	24b10 <send_err_rsp>
		return 0;
   3768a:	2000      	movs	r0, #0
   3768c:	e7f3      	b.n	37676 <att_find_type_req+0x5e>
		send_err_rsp(chan, BT_ATT_OP_FIND_TYPE_REQ, start_handle,
   3768e:	230a      	movs	r3, #10
   37690:	462a      	mov	r2, r5
   37692:	2106      	movs	r1, #6
   37694:	4638      	mov	r0, r7
   37696:	f7ed fa3b 	bl	24b10 <send_err_rsp>
		return 0;
   3769a:	2000      	movs	r0, #0
   3769c:	e7eb      	b.n	37676 <att_find_type_req+0x5e>

0003769e <att_find_info_req>:
{
   3769e:	b570      	push	{r4, r5, r6, lr}
   376a0:	b082      	sub	sp, #8
   376a2:	4604      	mov	r4, r0
	req = (void *)buf->data;
   376a4:	688b      	ldr	r3, [r1, #8]
	start_handle = sys_le16_to_cpu(req->start_handle);
   376a6:	881d      	ldrh	r5, [r3, #0]
	end_handle = sys_le16_to_cpu(req->end_handle);
   376a8:	885e      	ldrh	r6, [r3, #2]
	if (!range_is_valid(start_handle, end_handle, &err_handle)) {
   376aa:	f10d 0206 	add.w	r2, sp, #6
   376ae:	4631      	mov	r1, r6
   376b0:	4628      	mov	r0, r5
   376b2:	f7ff faf4 	bl	36c9e <range_is_valid>
   376b6:	b130      	cbz	r0, 376c6 <att_find_info_req+0x28>
	return att_find_info_rsp(chan, start_handle, end_handle);
   376b8:	4632      	mov	r2, r6
   376ba:	4629      	mov	r1, r5
   376bc:	4620      	mov	r0, r4
   376be:	f7ed fcfd 	bl	250bc <att_find_info_rsp>
}
   376c2:	b002      	add	sp, #8
   376c4:	bd70      	pop	{r4, r5, r6, pc}
		send_err_rsp(chan, BT_ATT_OP_FIND_INFO_REQ, err_handle,
   376c6:	2301      	movs	r3, #1
   376c8:	f8bd 2006 	ldrh.w	r2, [sp, #6]
   376cc:	2104      	movs	r1, #4
   376ce:	4620      	mov	r0, r4
   376d0:	f7ed fa1e 	bl	24b10 <send_err_rsp>
		return 0;
   376d4:	2000      	movs	r0, #0
   376d6:	e7f4      	b.n	376c2 <att_find_info_req+0x24>

000376d8 <bt_att_init>:
{
   376d8:	b508      	push	{r3, lr}
	bt_gatt_init();
   376da:	f7ee fc75 	bl	25fc8 <bt_gatt_init>
}
   376de:	bd08      	pop	{r3, pc}

000376e0 <bt_att_get_mtu>:
{
   376e0:	b508      	push	{r3, lr}
	att = att_get(conn);
   376e2:	f7ec fee3 	bl	244ac <att_get>
	if (!att) {
   376e6:	b338      	cbz	r0, 37738 <bt_att_get_mtu+0x58>
	return list->head;
   376e8:	6a81      	ldr	r1, [r0, #40]	; 0x28
	SYS_SLIST_FOR_EACH_CONTAINER_SAFE(&att->chans, chan, tmp, node) {
   376ea:	b159      	cbz	r1, 37704 <bt_att_get_mtu+0x24>
   376ec:	f5b1 71aa 	subs.w	r1, r1, #340	; 0x154
   376f0:	d00b      	beq.n	3770a <bt_att_get_mtu+0x2a>
Z_GENLIST_PEEK_NEXT(slist, snode)
   376f2:	f511 73aa 	adds.w	r3, r1, #340	; 0x154
   376f6:	d006      	beq.n	37706 <bt_att_get_mtu+0x26>
	return node->next;
   376f8:	f8d1 3154 	ldr.w	r3, [r1, #340]	; 0x154
   376fc:	b11b      	cbz	r3, 37706 <bt_att_get_mtu+0x26>
   376fe:	f5a3 73aa 	sub.w	r3, r3, #340	; 0x154
   37702:	e000      	b.n	37706 <bt_att_get_mtu+0x26>
   37704:	460b      	mov	r3, r1
   37706:	2000      	movs	r0, #0
   37708:	e004      	b.n	37714 <bt_att_get_mtu+0x34>
   3770a:	460b      	mov	r3, r1
   3770c:	e7fb      	b.n	37706 <bt_att_get_mtu+0x26>
   3770e:	461a      	mov	r2, r3
   37710:	4619      	mov	r1, r3
   37712:	4613      	mov	r3, r2
   37714:	b189      	cbz	r1, 3773a <bt_att_get_mtu+0x5a>
		if (chan->chan.tx.mtu > mtu) {
   37716:	f8b1 208a 	ldrh.w	r2, [r1, #138]	; 0x8a
   3771a:	4282      	cmp	r2, r0
   3771c:	d900      	bls.n	37720 <bt_att_get_mtu+0x40>
			mtu = chan->chan.tx.mtu;
   3771e:	4610      	mov	r0, r2
	SYS_SLIST_FOR_EACH_CONTAINER_SAFE(&att->chans, chan, tmp, node) {
   37720:	2b00      	cmp	r3, #0
   37722:	d0f4      	beq.n	3770e <bt_att_get_mtu+0x2e>
Z_GENLIST_PEEK_NEXT(slist, snode)
   37724:	f513 72aa 	adds.w	r2, r3, #340	; 0x154
   37728:	d0f2      	beq.n	37710 <bt_att_get_mtu+0x30>
	return node->next;
   3772a:	f8d3 2154 	ldr.w	r2, [r3, #340]	; 0x154
   3772e:	2a00      	cmp	r2, #0
   37730:	d0ee      	beq.n	37710 <bt_att_get_mtu+0x30>
   37732:	f5a2 72aa 	sub.w	r2, r2, #340	; 0x154
   37736:	e7eb      	b.n	37710 <bt_att_get_mtu+0x30>
		return 0;
   37738:	2000      	movs	r0, #0
}
   3773a:	bd08      	pop	{r3, pc}

0003773c <att_confirm>:
{
   3773c:	b508      	push	{r3, lr}
	return att_handle_rsp(chan, buf->data, buf->len, 0);
   3773e:	2300      	movs	r3, #0
   37740:	898a      	ldrh	r2, [r1, #12]
   37742:	6889      	ldr	r1, [r1, #8]
   37744:	f7ed fd5a 	bl	251fc <att_handle_rsp>
}
   37748:	bd08      	pop	{r3, pc}

0003774a <bt_att_encrypt_change>:
{
   3774a:	b570      	push	{r4, r5, r6, lr}
	struct bt_att_chan *att_chan = ATT_CHAN(chan);
   3774c:	4605      	mov	r5, r0
	struct bt_conn *conn = ch->chan.conn;
   3774e:	f855 6908 	ldr.w	r6, [r5], #-8
	if (!att_chan->att) {
   37752:	f850 3c08 	ldr.w	r3, [r0, #-8]
   37756:	b143      	cbz	r3, 3776a <bt_att_encrypt_change+0x20>
   37758:	4604      	mov	r4, r0
	if (hci_status) {
   3775a:	b171      	cbz	r1, 3777a <bt_att_encrypt_change+0x30>
		if (att_chan->req && att_chan->req->retrying) {
   3775c:	f8d0 30f4 	ldr.w	r3, [r0, #244]	; 0xf4
   37760:	b11b      	cbz	r3, 3776a <bt_att_encrypt_change+0x20>
   37762:	7c1b      	ldrb	r3, [r3, #16]
   37764:	f013 0f01 	tst.w	r3, #1
   37768:	d100      	bne.n	3776c <bt_att_encrypt_change+0x22>
}
   3776a:	bd70      	pop	{r4, r5, r6, pc}
			att_handle_rsp(att_chan, NULL, 0,
   3776c:	2305      	movs	r3, #5
   3776e:	2200      	movs	r2, #0
   37770:	4611      	mov	r1, r2
   37772:	4628      	mov	r0, r5
   37774:	f7ed fd42 	bl	251fc <att_handle_rsp>
		return;
   37778:	e7f7      	b.n	3776a <bt_att_encrypt_change+0x20>
	bt_gatt_encrypt_change(conn);
   3777a:	4630      	mov	r0, r6
   3777c:	f7ef faf8 	bl	26d70 <bt_gatt_encrypt_change>
	if (conn->sec_level == BT_SECURITY_L1) {
   37780:	7a73      	ldrb	r3, [r6, #9]
   37782:	2b01      	cmp	r3, #1
   37784:	d0f1      	beq.n	3776a <bt_att_encrypt_change+0x20>
	if (!(att_chan->req && att_chan->req->retrying)) {
   37786:	f8d4 30f4 	ldr.w	r3, [r4, #244]	; 0xf4
   3778a:	2b00      	cmp	r3, #0
   3778c:	d0ed      	beq.n	3776a <bt_att_encrypt_change+0x20>
   3778e:	7c1b      	ldrb	r3, [r3, #16]
   37790:	f013 0f01 	tst.w	r3, #1
   37794:	d0e9      	beq.n	3776a <bt_att_encrypt_change+0x20>
	err = att_req_retry(att_chan);
   37796:	4628      	mov	r0, r5
   37798:	f7ff fe77 	bl	3748a <att_req_retry>
	if (err) {
   3779c:	4603      	mov	r3, r0
   3779e:	2800      	cmp	r0, #0
   377a0:	d0e3      	beq.n	3776a <bt_att_encrypt_change+0x20>
		att_handle_rsp(att_chan, NULL, 0, err);
   377a2:	2200      	movs	r2, #0
   377a4:	4611      	mov	r1, r2
   377a6:	4628      	mov	r0, r5
   377a8:	f7ed fd28 	bl	251fc <att_handle_rsp>
   377ac:	e7dd      	b.n	3776a <bt_att_encrypt_change+0x20>

000377ae <att_chan_detach>:
{
   377ae:	b510      	push	{r4, lr}
   377b0:	4604      	mov	r4, r0
	sys_slist_find_and_remove(&chan->att->chans, &chan->node);
   377b2:	6800      	ldr	r0, [r0, #0]
   377b4:	f504 72aa 	add.w	r2, r4, #340	; 0x154
	return list->head;
   377b8:	6a83      	ldr	r3, [r0, #40]	; 0x28
Z_GENLIST_FIND_AND_REMOVE(slist, snode)
   377ba:	2100      	movs	r1, #0
   377bc:	b1e3      	cbz	r3, 377f8 <att_chan_detach+0x4a>
   377be:	4293      	cmp	r3, r2
   377c0:	d002      	beq.n	377c8 <att_chan_detach+0x1a>
   377c2:	4619      	mov	r1, r3
   377c4:	681b      	ldr	r3, [r3, #0]
   377c6:	e7f9      	b.n	377bc <att_chan_detach+0xe>
Z_GENLIST_REMOVE(slist, snode)
   377c8:	b149      	cbz	r1, 377de <att_chan_detach+0x30>
	return node->next;
   377ca:	f8d4 3154 	ldr.w	r3, [r4, #340]	; 0x154
	parent->next = child;
   377ce:	600b      	str	r3, [r1, #0]
	return list->tail;
   377d0:	6ac3      	ldr	r3, [r0, #44]	; 0x2c
Z_GENLIST_REMOVE(slist, snode)
   377d2:	4293      	cmp	r3, r2
   377d4:	d00b      	beq.n	377ee <att_chan_detach+0x40>
	parent->next = child;
   377d6:	2300      	movs	r3, #0
   377d8:	f8c4 3154 	str.w	r3, [r4, #340]	; 0x154
Z_GENLIST_FIND_AND_REMOVE(slist, snode)
   377dc:	e00c      	b.n	377f8 <att_chan_detach+0x4a>
	return node->next;
   377de:	f8d4 3154 	ldr.w	r3, [r4, #340]	; 0x154
	list->head = node;
   377e2:	6283      	str	r3, [r0, #40]	; 0x28
	return list->tail;
   377e4:	6ac1      	ldr	r1, [r0, #44]	; 0x2c
Z_GENLIST_REMOVE(slist, snode)
   377e6:	4291      	cmp	r1, r2
   377e8:	d1f5      	bne.n	377d6 <att_chan_detach+0x28>
	list->tail = node;
   377ea:	62c3      	str	r3, [r0, #44]	; 0x2c
}
   377ec:	e7f3      	b.n	377d6 <att_chan_detach+0x28>
	list->tail = node;
   377ee:	62c1      	str	r1, [r0, #44]	; 0x2c
}
   377f0:	e7f1      	b.n	377d6 <att_chan_detach+0x28>
		net_buf_unref(buf);
   377f2:	4618      	mov	r0, r3
   377f4:	f7f1 ffb4 	bl	29760 <net_buf_unref>
	while ((buf = net_buf_get(&chan->tx_queue, K_NO_WAIT))) {
   377f8:	2200      	movs	r2, #0
   377fa:	2300      	movs	r3, #0
   377fc:	f504 7080 	add.w	r0, r4, #256	; 0x100
   37800:	f7f1 ff26 	bl	29650 <net_buf_get>
   37804:	4603      	mov	r3, r0
   37806:	2800      	cmp	r0, #0
   37808:	d1f3      	bne.n	377f2 <att_chan_detach+0x44>
	if (chan->req) {
   3780a:	f8d4 30fc 	ldr.w	r3, [r4, #252]	; 0xfc
   3780e:	b12b      	cbz	r3, 3781c <att_chan_detach+0x6e>
		att_handle_rsp(chan, NULL, 0, BT_ATT_ERR_UNLIKELY);
   37810:	230e      	movs	r3, #14
   37812:	2200      	movs	r2, #0
   37814:	4611      	mov	r1, r2
   37816:	4620      	mov	r0, r4
   37818:	f7ed fcf0 	bl	251fc <att_handle_rsp>
	chan->att = NULL;
   3781c:	2300      	movs	r3, #0
   3781e:	6023      	str	r3, [r4, #0]
}
   37820:	bd10      	pop	{r4, pc}

00037822 <bt_att_disconnected>:
{
   37822:	b538      	push	{r3, r4, r5, lr}
   37824:	4604      	mov	r4, r0
	struct bt_att *att = att_chan->att;
   37826:	f850 5c08 	ldr.w	r5, [r0, #-8]
	if (!att_chan->att) {
   3782a:	b125      	cbz	r5, 37836 <bt_att_disconnected+0x14>
   3782c:	3808      	subs	r0, #8
	att_chan_detach(att_chan);
   3782e:	f7ff ffbe 	bl	377ae <att_chan_detach>
	return list->head;
   37832:	6aab      	ldr	r3, [r5, #40]	; 0x28
	if (!sys_slist_is_empty(&att->chans)) {
   37834:	b103      	cbz	r3, 37838 <bt_att_disconnected+0x16>
}
   37836:	bd38      	pop	{r3, r4, r5, pc}
	att_reset(att);
   37838:	4628      	mov	r0, r5
   3783a:	f7ed fd1b 	bl	25274 <att_reset>
	bt_gatt_disconnected(ch->chan.conn);
   3783e:	6820      	ldr	r0, [r4, #0]
   37840:	f7ef fb2a 	bl	26e98 <bt_gatt_disconnected>
   37844:	e7f7      	b.n	37836 <bt_att_disconnected+0x14>

00037846 <update_range>:
{
   37846:	b430      	push	{r4, r5}
	if (new_start >= *start && new_end <= *end) {
   37848:	8804      	ldrh	r4, [r0, #0]
   3784a:	42a2      	cmp	r2, r4
   3784c:	d302      	bcc.n	37854 <update_range+0xe>
   3784e:	880d      	ldrh	r5, [r1, #0]
   37850:	42ab      	cmp	r3, r5
   37852:	d908      	bls.n	37866 <update_range+0x20>
	if (*start > new_start) {
   37854:	42a2      	cmp	r2, r4
   37856:	d200      	bcs.n	3785a <update_range+0x14>
		*start = new_start;
   37858:	8002      	strh	r2, [r0, #0]
	if (*end < new_end) {
   3785a:	880a      	ldrh	r2, [r1, #0]
   3785c:	4293      	cmp	r3, r2
   3785e:	d904      	bls.n	3786a <update_range+0x24>
		*end = new_end;
   37860:	800b      	strh	r3, [r1, #0]
	return true;
   37862:	2001      	movs	r0, #1
   37864:	e002      	b.n	3786c <update_range+0x26>
		return false;
   37866:	2000      	movs	r0, #0
   37868:	e000      	b.n	3786c <update_range+0x26>
	return true;
   3786a:	2001      	movs	r0, #1
}
   3786c:	bc30      	pop	{r4, r5}
   3786e:	4770      	bx	lr

00037870 <cf_set_value>:
{
   37870:	b470      	push	{r4, r5, r6}
	for (i = 0U; i <= CF_BIT_LAST && (i / 8) < len; i++) {
   37872:	2300      	movs	r3, #0
   37874:	e001      	b.n	3787a <cf_set_value+0xa>
   37876:	3301      	adds	r3, #1
   37878:	b29b      	uxth	r3, r3
   3787a:	2b02      	cmp	r3, #2
   3787c:	d824      	bhi.n	378c8 <cf_set_value+0x58>
   3787e:	08dd      	lsrs	r5, r3, #3
   37880:	ebb2 0fd3 	cmp.w	r2, r3, lsr #3
   37884:	d90f      	bls.n	378a6 <cf_set_value+0x36>
		if ((cfg->data[i / 8] & BIT(i % 8)) &&
   37886:	1944      	adds	r4, r0, r5
   37888:	7a24      	ldrb	r4, [r4, #8]
   3788a:	f003 0607 	and.w	r6, r3, #7
   3788e:	40f4      	lsrs	r4, r6
   37890:	f014 0f01 	tst.w	r4, #1
   37894:	d0ef      	beq.n	37876 <cf_set_value+0x6>
		    !(value[i / 8] & BIT(i % 8))) {
   37896:	5d4c      	ldrb	r4, [r1, r5]
   37898:	fa24 f606 	lsr.w	r6, r4, r6
		if ((cfg->data[i / 8] & BIT(i % 8)) &&
   3789c:	f016 0f01 	tst.w	r6, #1
   378a0:	d1e9      	bne.n	37876 <cf_set_value+0x6>
			return false;
   378a2:	2000      	movs	r0, #0
   378a4:	e013      	b.n	378ce <cf_set_value+0x5e>
   378a6:	2300      	movs	r3, #0
   378a8:	e008      	b.n	378bc <cf_set_value+0x4c>
			cfg->data[i] |= value[i] & BIT_MASK(CF_NUM_BITS % 8);
   378aa:	5ccc      	ldrb	r4, [r1, r3]
   378ac:	f004 0407 	and.w	r4, r4, #7
   378b0:	18c5      	adds	r5, r0, r3
   378b2:	7a2e      	ldrb	r6, [r5, #8]
   378b4:	4334      	orrs	r4, r6
   378b6:	722c      	strb	r4, [r5, #8]
	for (i = 0U; i < len && i < CF_NUM_BYTES; i++) {
   378b8:	3301      	adds	r3, #1
   378ba:	b29b      	uxth	r3, r3
   378bc:	4293      	cmp	r3, r2
   378be:	d205      	bcs.n	378cc <cf_set_value+0x5c>
   378c0:	2b00      	cmp	r3, #0
   378c2:	d0f2      	beq.n	378aa <cf_set_value+0x3a>
	return true;
   378c4:	2001      	movs	r0, #1
   378c6:	e002      	b.n	378ce <cf_set_value+0x5e>
   378c8:	2300      	movs	r3, #0
   378ca:	e7f7      	b.n	378bc <cf_set_value+0x4c>
   378cc:	2001      	movs	r0, #1
}
   378ce:	bc70      	pop	{r4, r5, r6}
   378d0:	4770      	bx	lr

000378d2 <found_attr>:
	*found = attr;
   378d2:	6010      	str	r0, [r2, #0]
}
   378d4:	2000      	movs	r0, #0
   378d6:	4770      	bx	lr

000378d8 <gatt_ccc_changed>:
{
   378d8:	b510      	push	{r4, lr}
   378da:	460a      	mov	r2, r1
	uint16_t value = 0x0000;
   378dc:	2100      	movs	r1, #0
	for (i = 0; i < ARRAY_SIZE(ccc->cfg); i++) {
   378de:	460b      	mov	r3, r1
   378e0:	2b00      	cmp	r3, #0
   378e2:	dd07      	ble.n	378f4 <gatt_ccc_changed+0x1c>
	if (value != ccc->value) {
   378e4:	8953      	ldrh	r3, [r2, #10]
   378e6:	4299      	cmp	r1, r3
   378e8:	d003      	beq.n	378f2 <gatt_ccc_changed+0x1a>
		ccc->value = value;
   378ea:	8151      	strh	r1, [r2, #10]
		if (ccc->cfg_changed) {
   378ec:	68d3      	ldr	r3, [r2, #12]
   378ee:	b103      	cbz	r3, 378f2 <gatt_ccc_changed+0x1a>
			ccc->cfg_changed(attr, value);
   378f0:	4798      	blx	r3
}
   378f2:	bd10      	pop	{r4, pc}
		if (ccc->cfg[i].value > value) {
   378f4:	eb03 0483 	add.w	r4, r3, r3, lsl #2
   378f8:	eb02 0444 	add.w	r4, r2, r4, lsl #1
   378fc:	8924      	ldrh	r4, [r4, #8]
   378fe:	428c      	cmp	r4, r1
   37900:	d900      	bls.n	37904 <gatt_ccc_changed+0x2c>
			value = ccc->cfg[i].value;
   37902:	4621      	mov	r1, r4
	for (i = 0; i < ARRAY_SIZE(ccc->cfg); i++) {
   37904:	3301      	adds	r3, #1
   37906:	e7eb      	b.n	378e0 <gatt_ccc_changed+0x8>

00037908 <gatt_indicate_rsp>:
{
   37908:	b510      	push	{r4, lr}
   3790a:	9c02      	ldr	r4, [sp, #8]
	if (params->func) {
   3790c:	68a3      	ldr	r3, [r4, #8]
   3790e:	b113      	cbz	r3, 37916 <gatt_indicate_rsp+0xe>
   37910:	460a      	mov	r2, r1
		params->func(conn, params, err);
   37912:	4621      	mov	r1, r4
   37914:	4798      	blx	r3
	params->_ref--;
   37916:	7da3      	ldrb	r3, [r4, #22]
   37918:	3b01      	subs	r3, #1
   3791a:	b2db      	uxtb	r3, r3
   3791c:	75a3      	strb	r3, [r4, #22]
	if (params->destroy && (params->_ref == 0)) {
   3791e:	68e2      	ldr	r2, [r4, #12]
   37920:	b112      	cbz	r2, 37928 <gatt_indicate_rsp+0x20>
   37922:	b90b      	cbnz	r3, 37928 <gatt_indicate_rsp+0x20>
		params->destroy(params);
   37924:	4620      	mov	r0, r4
   37926:	4790      	blx	r2
}
   37928:	bd10      	pop	{r4, pc}

0003792a <match_uuid>:
	data->attr = attr;
   3792a:	6010      	str	r0, [r2, #0]
	data->handle = handle;
   3792c:	8091      	strh	r1, [r2, #4]
}
   3792e:	2000      	movs	r0, #0
   37930:	4770      	bx	lr

00037932 <ccc_set_cb>:
}
   37932:	2000      	movs	r0, #0
   37934:	4770      	bx	lr

00037936 <gen_hash_m>:
{
   37936:	b5f0      	push	{r4, r5, r6, r7, lr}
   37938:	b089      	sub	sp, #36	; 0x24
	if (attr->uuid->type != BT_UUID_TYPE_16)
   3793a:	6806      	ldr	r6, [r0, #0]
   3793c:	7835      	ldrb	r5, [r6, #0]
   3793e:	2d00      	cmp	r5, #0
   37940:	d161      	bne.n	37a06 <gen_hash_m+0xd0>
   37942:	4607      	mov	r7, r0
   37944:	4614      	mov	r4, r2
	switch (u16->val) {
   37946:	8873      	ldrh	r3, [r6, #2]
   37948:	f5b3 5f24 	cmp.w	r3, #10496	; 0x2900
   3794c:	d019      	beq.n	37982 <gen_hash_m+0x4c>
   3794e:	d913      	bls.n	37978 <gen_hash_m+0x42>
   37950:	f503 4356 	add.w	r3, r3, #54784	; 0xd600
   37954:	33ff      	adds	r3, #255	; 0xff
   37956:	b29b      	uxth	r3, r3
   37958:	2b04      	cmp	r3, #4
   3795a:	d85a      	bhi.n	37a12 <gen_hash_m+0xdc>
		value = sys_cpu_to_le16(handle);
   3795c:	f8ad 100e 	strh.w	r1, [sp, #14]
		if (tc_cmac_update(&state->state, (uint8_t *)&value,
   37960:	2202      	movs	r2, #2
   37962:	f10d 010e 	add.w	r1, sp, #14
   37966:	4620      	mov	r0, r4
   37968:	f7fd febf 	bl	356ea <tc_cmac_update>
   3796c:	2800      	cmp	r0, #0
   3796e:	d13a      	bne.n	379e6 <gen_hash_m+0xb0>
			state->err = -EINVAL;
   37970:	f06f 0315 	mvn.w	r3, #21
   37974:	65a3      	str	r3, [r4, #88]	; 0x58
			return BT_GATT_ITER_STOP;
   37976:	e047      	b.n	37a08 <gen_hash_m+0xd2>
	switch (u16->val) {
   37978:	f5a3 5320 	sub.w	r3, r3, #10240	; 0x2800
   3797c:	b29b      	uxth	r3, r3
   3797e:	2b03      	cmp	r3, #3
   37980:	d845      	bhi.n	37a0e <gen_hash_m+0xd8>
		value = sys_cpu_to_le16(handle);
   37982:	f8ad 100e 	strh.w	r1, [sp, #14]
		if (tc_cmac_update(&state->state, (uint8_t *)&value,
   37986:	2202      	movs	r2, #2
   37988:	f10d 010e 	add.w	r1, sp, #14
   3798c:	4620      	mov	r0, r4
   3798e:	f7fd feac 	bl	356ea <tc_cmac_update>
   37992:	b918      	cbnz	r0, 3799c <gen_hash_m+0x66>
			state->err = -EINVAL;
   37994:	f06f 0315 	mvn.w	r3, #21
   37998:	65a3      	str	r3, [r4, #88]	; 0x58
			return BT_GATT_ITER_STOP;
   3799a:	e035      	b.n	37a08 <gen_hash_m+0xd2>
		value = sys_cpu_to_le16(u16->val);
   3799c:	8873      	ldrh	r3, [r6, #2]
   3799e:	f8ad 300e 	strh.w	r3, [sp, #14]
		if (tc_cmac_update(&state->state, (uint8_t *)&value,
   379a2:	2202      	movs	r2, #2
   379a4:	f10d 010e 	add.w	r1, sp, #14
   379a8:	4620      	mov	r0, r4
   379aa:	f7fd fe9e 	bl	356ea <tc_cmac_update>
   379ae:	b180      	cbz	r0, 379d2 <gen_hash_m+0x9c>
		len = attr->read(NULL, attr, data, sizeof(data), 0);
   379b0:	687e      	ldr	r6, [r7, #4]
   379b2:	2000      	movs	r0, #0
   379b4:	9000      	str	r0, [sp, #0]
   379b6:	2310      	movs	r3, #16
   379b8:	eb0d 0203 	add.w	r2, sp, r3
   379bc:	4639      	mov	r1, r7
   379be:	47b0      	blx	r6
		if (len < 0) {
   379c0:	1e02      	subs	r2, r0, #0
   379c2:	db0a      	blt.n	379da <gen_hash_m+0xa4>
		if (tc_cmac_update(&state->state, data, len) ==
   379c4:	a904      	add	r1, sp, #16
   379c6:	4620      	mov	r0, r4
   379c8:	f7fd fe8f 	bl	356ea <tc_cmac_update>
   379cc:	b138      	cbz	r0, 379de <gen_hash_m+0xa8>
	return BT_GATT_ITER_CONTINUE;
   379ce:	2501      	movs	r5, #1
   379d0:	e01a      	b.n	37a08 <gen_hash_m+0xd2>
			state->err = -EINVAL;
   379d2:	f06f 0315 	mvn.w	r3, #21
   379d6:	65a3      	str	r3, [r4, #88]	; 0x58
			return BT_GATT_ITER_STOP;
   379d8:	e016      	b.n	37a08 <gen_hash_m+0xd2>
			state->err = len;
   379da:	65a2      	str	r2, [r4, #88]	; 0x58
			return BT_GATT_ITER_STOP;
   379dc:	e014      	b.n	37a08 <gen_hash_m+0xd2>
			state->err = -EINVAL;
   379de:	f06f 0315 	mvn.w	r3, #21
   379e2:	65a3      	str	r3, [r4, #88]	; 0x58
			return BT_GATT_ITER_STOP;
   379e4:	e010      	b.n	37a08 <gen_hash_m+0xd2>
		value = sys_cpu_to_le16(u16->val);
   379e6:	8873      	ldrh	r3, [r6, #2]
   379e8:	f8ad 300e 	strh.w	r3, [sp, #14]
		if (tc_cmac_update(&state->state, (uint8_t *)&value,
   379ec:	2202      	movs	r2, #2
   379ee:	f10d 010e 	add.w	r1, sp, #14
   379f2:	4620      	mov	r0, r4
   379f4:	f7fd fe79 	bl	356ea <tc_cmac_update>
   379f8:	b108      	cbz	r0, 379fe <gen_hash_m+0xc8>
	return BT_GATT_ITER_CONTINUE;
   379fa:	2501      	movs	r5, #1
   379fc:	e004      	b.n	37a08 <gen_hash_m+0xd2>
			state->err = -EINVAL;
   379fe:	f06f 0315 	mvn.w	r3, #21
   37a02:	65a3      	str	r3, [r4, #88]	; 0x58
			return BT_GATT_ITER_STOP;
   37a04:	e000      	b.n	37a08 <gen_hash_m+0xd2>
		return BT_GATT_ITER_CONTINUE;
   37a06:	2501      	movs	r5, #1
}
   37a08:	4628      	mov	r0, r5
   37a0a:	b009      	add	sp, #36	; 0x24
   37a0c:	bdf0      	pop	{r4, r5, r6, r7, pc}
	switch (u16->val) {
   37a0e:	2501      	movs	r5, #1
   37a10:	e7fa      	b.n	37a08 <gen_hash_m+0xd2>
   37a12:	2501      	movs	r5, #1
   37a14:	e7f8      	b.n	37a08 <gen_hash_m+0xd2>

00037a16 <sc_restore_rsp>:
{
   37a16:	b508      	push	{r3, lr}
	cfg = find_cf_cfg(conn);
   37a18:	f7ed fd7e 	bl	25518 <find_cf_cfg>
	if (cfg && CF_ROBUST_CACHING(cfg)) {
   37a1c:	b188      	cbz	r0, 37a42 <sc_restore_rsp+0x2c>
   37a1e:	4603      	mov	r3, r0
   37a20:	7a02      	ldrb	r2, [r0, #8]
   37a22:	f012 0f01 	tst.w	r2, #1
   37a26:	d00c      	beq.n	37a42 <sc_restore_rsp+0x2c>
		atomic_set_bit(cfg->flags, CF_CHANGE_AWARE);
   37a28:	330c      	adds	r3, #12
	return __atomic_fetch_or(target, value, __ATOMIC_SEQ_CST);
   37a2a:	f3bf 8f5b 	dmb	ish
   37a2e:	e853 2f00 	ldrex	r2, [r3]
   37a32:	f042 0201 	orr.w	r2, r2, #1
   37a36:	e843 2100 	strex	r1, r2, [r3]
   37a3a:	2900      	cmp	r1, #0
   37a3c:	d1f7      	bne.n	37a2e <sc_restore_rsp+0x18>
   37a3e:	f3bf 8f5b 	dmb	ish
}
   37a42:	bd08      	pop	{r3, pc}

00037a44 <find_ccc_cfg>:
{
   37a44:	b5f0      	push	{r4, r5, r6, r7, lr}
   37a46:	b083      	sub	sp, #12
   37a48:	4607      	mov	r7, r0
   37a4a:	460d      	mov	r5, r1
	for (size_t i = 0; i < ARRAY_SIZE(ccc->cfg); i++) {
   37a4c:	2400      	movs	r4, #0
   37a4e:	b11c      	cbz	r4, 37a58 <find_ccc_cfg+0x14>
	return NULL;
   37a50:	2600      	movs	r6, #0
}
   37a52:	4630      	mov	r0, r6
   37a54:	b003      	add	sp, #12
   37a56:	bdf0      	pop	{r4, r5, r6, r7, pc}
		struct bt_gatt_ccc_cfg *cfg = &ccc->cfg[i];
   37a58:	eb04 0684 	add.w	r6, r4, r4, lsl #2
   37a5c:	eb05 0646 	add.w	r6, r5, r6, lsl #1
		if (conn) {
   37a60:	b167      	cbz	r7, 37a7c <find_ccc_cfg+0x38>
						    &cfg->peer)) {
   37a62:	eb04 0384 	add.w	r3, r4, r4, lsl #2
   37a66:	4632      	mov	r2, r6
			if (bt_conn_is_peer_addr_le(conn, cfg->id,
   37a68:	3201      	adds	r2, #1
   37a6a:	f815 1013 	ldrb.w	r1, [r5, r3, lsl #1]
   37a6e:	4638      	mov	r0, r7
   37a70:	f7fe ff83 	bl	3697a <bt_conn_is_peer_addr_le>
   37a74:	2800      	cmp	r0, #0
   37a76:	d1ec      	bne.n	37a52 <find_ccc_cfg+0xe>
	for (size_t i = 0; i < ARRAY_SIZE(ccc->cfg); i++) {
   37a78:	3401      	adds	r4, #1
   37a7a:	e7e8      	b.n	37a4e <find_ccc_cfg+0xa>
		} else if (!bt_addr_le_cmp(&cfg->peer, BT_ADDR_LE_ANY)) {
   37a7c:	eb04 0084 	add.w	r0, r4, r4, lsl #2
   37a80:	eb05 0040 	add.w	r0, r5, r0, lsl #1
   37a84:	2300      	movs	r3, #0
   37a86:	9300      	str	r3, [sp, #0]
   37a88:	f8cd 3003 	str.w	r3, [sp, #3]
   37a8c:	2207      	movs	r2, #7
   37a8e:	4669      	mov	r1, sp
   37a90:	3001      	adds	r0, #1
   37a92:	f7fe f81c 	bl	35ace <memcmp>
   37a96:	2800      	cmp	r0, #0
   37a98:	d1ee      	bne.n	37a78 <find_ccc_cfg+0x34>
   37a9a:	e7da      	b.n	37a52 <find_ccc_cfg+0xe>

00037a9c <ccc_find_cfg>:
{
   37a9c:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
   37a9e:	4605      	mov	r5, r0
   37aa0:	460f      	mov	r7, r1
   37aa2:	4616      	mov	r6, r2
	for (size_t i = 0; i < ARRAY_SIZE(ccc->cfg); i++) {
   37aa4:	2400      	movs	r4, #0
   37aa6:	b10c      	cbz	r4, 37aac <ccc_find_cfg+0x10>
	return NULL;
   37aa8:	2000      	movs	r0, #0
}
   37aaa:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
		if (id == ccc->cfg[i].id &&
   37aac:	eb04 0384 	add.w	r3, r4, r4, lsl #2
   37ab0:	f815 3013 	ldrb.w	r3, [r5, r3, lsl #1]
   37ab4:	42b3      	cmp	r3, r6
   37ab6:	d001      	beq.n	37abc <ccc_find_cfg+0x20>
	for (size_t i = 0; i < ARRAY_SIZE(ccc->cfg); i++) {
   37ab8:	3401      	adds	r4, #1
   37aba:	e7f4      	b.n	37aa6 <ccc_find_cfg+0xa>
		    !bt_addr_le_cmp(&ccc->cfg[i].peer, addr)) {
   37abc:	eb04 0084 	add.w	r0, r4, r4, lsl #2
   37ac0:	eb05 0040 	add.w	r0, r5, r0, lsl #1
   37ac4:	2207      	movs	r2, #7
   37ac6:	4639      	mov	r1, r7
   37ac8:	3001      	adds	r0, #1
   37aca:	f7fe f800 	bl	35ace <memcmp>
		if (id == ccc->cfg[i].id &&
   37ace:	2800      	cmp	r0, #0
   37ad0:	d1f2      	bne.n	37ab8 <ccc_find_cfg+0x1c>
			return &ccc->cfg[i];
   37ad2:	eb04 0484 	add.w	r4, r4, r4, lsl #2
   37ad6:	eb05 0044 	add.w	r0, r5, r4, lsl #1
   37ada:	e7e6      	b.n	37aaa <ccc_find_cfg+0xe>

00037adc <clear_ccc_cfg>:
{
   37adc:	b530      	push	{r4, r5, lr}
   37ade:	b083      	sub	sp, #12
   37ae0:	4604      	mov	r4, r0
	bt_addr_le_copy(&cfg->peer, BT_ADDR_LE_ANY);
   37ae2:	2500      	movs	r5, #0
   37ae4:	9500      	str	r5, [sp, #0]
   37ae6:	f8cd 5003 	str.w	r5, [sp, #3]
	memcpy(dst, src, sizeof(*dst));
   37aea:	2207      	movs	r2, #7
   37aec:	4669      	mov	r1, sp
   37aee:	3001      	adds	r0, #1
   37af0:	f7fe f804 	bl	35afc <memcpy>
	cfg->id = 0U;
   37af4:	7025      	strb	r5, [r4, #0]
	cfg->value = 0U;
   37af6:	8125      	strh	r5, [r4, #8]
}
   37af8:	b003      	add	sp, #12
   37afa:	bd30      	pop	{r4, r5, pc}

00037afc <ccc_clear>:
{
   37afc:	b508      	push	{r3, lr}
	cfg = ccc_find_cfg(ccc, addr, id);
   37afe:	f7ff ffcd 	bl	37a9c <ccc_find_cfg>
	if (!cfg) {
   37b02:	b108      	cbz	r0, 37b08 <ccc_clear+0xc>
	clear_ccc_cfg(cfg);
   37b04:	f7ff ffea 	bl	37adc <clear_ccc_cfg>
}
   37b08:	bd08      	pop	{r3, pc}

00037b0a <clear_sc_cfg>:
{
   37b0a:	b508      	push	{r3, lr}
	memset(cfg, 0, sizeof(*cfg));
   37b0c:	220c      	movs	r2, #12
   37b0e:	2100      	movs	r1, #0
   37b10:	f7fe f818 	bl	35b44 <memset>
}
   37b14:	bd08      	pop	{r3, pc}

00037b16 <sc_ccc_cfg_write>:
{
   37b16:	b508      	push	{r3, lr}
	if (value == BT_GATT_CCC_INDICATE) {
   37b18:	2a02      	cmp	r2, #2
   37b1a:	d003      	beq.n	37b24 <sc_ccc_cfg_write+0xe>
		sc_clear(conn);
   37b1c:	f7ed ff52 	bl	259c4 <sc_clear>
}
   37b20:	2002      	movs	r0, #2
   37b22:	bd08      	pop	{r3, pc}
		sc_save(conn->id, &conn->le.dst, 0, 0);
   37b24:	2300      	movs	r3, #0
   37b26:	461a      	mov	r2, r3
   37b28:	f100 0190 	add.w	r1, r0, #144	; 0x90
   37b2c:	7a00      	ldrb	r0, [r0, #8]
   37b2e:	f7ed fe9b 	bl	25868 <sc_save>
   37b32:	e7f5      	b.n	37b20 <sc_ccc_cfg_write+0xa>

00037b34 <sc_reset>:
{
   37b34:	b510      	push	{r4, lr}
   37b36:	4604      	mov	r4, r0
	memset(&cfg->data, 0, sizeof(cfg->data));
   37b38:	2204      	movs	r2, #4
   37b3a:	2100      	movs	r1, #0
   37b3c:	3008      	adds	r0, #8
   37b3e:	f7fe f801 	bl	35b44 <memset>
		sc_store(cfg);
   37b42:	4620      	mov	r0, r4
   37b44:	f7ed fe62 	bl	2580c <sc_store>
}
   37b48:	bd10      	pop	{r4, pc}

00037b4a <gatt_foreach_iter>:
	if (handle > end_handle) {
   37b4a:	4299      	cmp	r1, r3
   37b4c:	d822      	bhi.n	37b94 <gatt_foreach_iter+0x4a>
{
   37b4e:	b538      	push	{r3, r4, r5, lr}
   37b50:	4605      	mov	r5, r0
   37b52:	460c      	mov	r4, r1
	if (handle < start_handle) {
   37b54:	4291      	cmp	r1, r2
   37b56:	d31f      	bcc.n	37b98 <gatt_foreach_iter+0x4e>
	if (uuid && bt_uuid_cmp(uuid, attr->uuid)) {
   37b58:	9b04      	ldr	r3, [sp, #16]
   37b5a:	b123      	cbz	r3, 37b66 <gatt_foreach_iter+0x1c>
   37b5c:	6801      	ldr	r1, [r0, #0]
   37b5e:	4618      	mov	r0, r3
   37b60:	f7fe f904 	bl	35d6c <bt_uuid_cmp>
   37b64:	b9d0      	cbnz	r0, 37b9c <gatt_foreach_iter+0x52>
	if (attr_data && attr_data != attr->user_data) {
   37b66:	9b05      	ldr	r3, [sp, #20]
   37b68:	b12b      	cbz	r3, 37b76 <gatt_foreach_iter+0x2c>
   37b6a:	68eb      	ldr	r3, [r5, #12]
   37b6c:	9a05      	ldr	r2, [sp, #20]
   37b6e:	4293      	cmp	r3, r2
   37b70:	d001      	beq.n	37b76 <gatt_foreach_iter+0x2c>
		return BT_GATT_ITER_CONTINUE;
   37b72:	2001      	movs	r0, #1
   37b74:	e011      	b.n	37b9a <gatt_foreach_iter+0x50>
	*num_matches -= 1;
   37b76:	9b06      	ldr	r3, [sp, #24]
   37b78:	881b      	ldrh	r3, [r3, #0]
   37b7a:	3b01      	subs	r3, #1
   37b7c:	9a06      	ldr	r2, [sp, #24]
   37b7e:	8013      	strh	r3, [r2, #0]
	result = func(attr, handle, user_data);
   37b80:	9a08      	ldr	r2, [sp, #32]
   37b82:	4621      	mov	r1, r4
   37b84:	4628      	mov	r0, r5
   37b86:	9b07      	ldr	r3, [sp, #28]
   37b88:	4798      	blx	r3
	if (!*num_matches) {
   37b8a:	9b06      	ldr	r3, [sp, #24]
   37b8c:	881b      	ldrh	r3, [r3, #0]
   37b8e:	b923      	cbnz	r3, 37b9a <gatt_foreach_iter+0x50>
		return BT_GATT_ITER_STOP;
   37b90:	2000      	movs	r0, #0
   37b92:	e002      	b.n	37b9a <gatt_foreach_iter+0x50>
		return BT_GATT_ITER_STOP;
   37b94:	2000      	movs	r0, #0
}
   37b96:	4770      	bx	lr
		return BT_GATT_ITER_CONTINUE;
   37b98:	2001      	movs	r0, #1
}
   37b9a:	bd38      	pop	{r3, r4, r5, pc}
		return BT_GATT_ITER_CONTINUE;
   37b9c:	2001      	movs	r0, #1
   37b9e:	e7fc      	b.n	37b9a <gatt_foreach_iter+0x50>

00037ba0 <gatt_req_alloc>:
{
   37ba0:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   37ba4:	4607      	mov	r7, r0
   37ba6:	4688      	mov	r8, r1
   37ba8:	4615      	mov	r5, r2
   37baa:	461e      	mov	r6, r3
	req = bt_att_req_alloc(BT_ATT_TIMEOUT);
   37bac:	f44f 2070 	mov.w	r0, #983040	; 0xf0000
   37bb0:	2100      	movs	r1, #0
   37bb2:	f7ed faf7 	bl	251a4 <bt_att_req_alloc>
	if (!req) {
   37bb6:	4604      	mov	r4, r0
   37bb8:	b130      	cbz	r0, 37bc8 <gatt_req_alloc+0x28>
	req->att_op = op;
   37bba:	7446      	strb	r6, [r0, #17]
	req->len = len;
   37bbc:	9b06      	ldr	r3, [sp, #24]
   37bbe:	6143      	str	r3, [r0, #20]
	req->encode = encode;
   37bc0:	60c5      	str	r5, [r0, #12]
	req->func = func;
   37bc2:	6047      	str	r7, [r0, #4]
	req->user_data = params;
   37bc4:	f8c0 8018 	str.w	r8, [r0, #24]
}
   37bc8:	4620      	mov	r0, r4
   37bca:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}

00037bce <clear_cf_cfg>:
{
   37bce:	b530      	push	{r4, r5, lr}
   37bd0:	b083      	sub	sp, #12
   37bd2:	4604      	mov	r4, r0
	bt_addr_le_copy(&cfg->peer, BT_ADDR_LE_ANY);
   37bd4:	2500      	movs	r5, #0
   37bd6:	9500      	str	r5, [sp, #0]
   37bd8:	f8cd 5003 	str.w	r5, [sp, #3]
   37bdc:	2207      	movs	r2, #7
   37bde:	4669      	mov	r1, sp
   37be0:	3001      	adds	r0, #1
   37be2:	f7fd ff8b 	bl	35afc <memcpy>
	memset(cfg->data, 0, sizeof(cfg->data));
   37be6:	2201      	movs	r2, #1
   37be8:	4629      	mov	r1, r5
   37bea:	f104 0008 	add.w	r0, r4, #8
   37bee:	f7fd ffa9 	bl	35b44 <memset>
	atomic_set(cfg->flags, 0);
   37bf2:	340c      	adds	r4, #12
	return __atomic_exchange_n(target, value, __ATOMIC_SEQ_CST);
   37bf4:	f3bf 8f5b 	dmb	ish
   37bf8:	e854 3f00 	ldrex	r3, [r4]
   37bfc:	e844 5200 	strex	r2, r5, [r4]
   37c00:	2a00      	cmp	r2, #0
   37c02:	d1f9      	bne.n	37bf8 <clear_cf_cfg+0x2a>
   37c04:	f3bf 8f5b 	dmb	ish
}
   37c08:	b003      	add	sp, #12
   37c0a:	bd30      	pop	{r4, r5, pc}

00037c0c <remove_cf_cfg>:
{
   37c0c:	b570      	push	{r4, r5, r6, lr}
   37c0e:	4604      	mov	r4, r0
	cfg = find_cf_cfg(conn);
   37c10:	f7ed fc82 	bl	25518 <find_cf_cfg>
	if (!cfg) {
   37c14:	b1e8      	cbz	r0, 37c52 <remove_cf_cfg+0x46>
   37c16:	4605      	mov	r5, r0
	if (!bt_addr_le_is_bonded(conn->id, &conn->le.dst)) {
   37c18:	f104 0690 	add.w	r6, r4, #144	; 0x90
   37c1c:	4631      	mov	r1, r6
   37c1e:	7a20      	ldrb	r0, [r4, #8]
   37c20:	f7fe fa59 	bl	360d6 <bt_addr_le_is_bonded>
   37c24:	b918      	cbnz	r0, 37c2e <remove_cf_cfg+0x22>
		clear_cf_cfg(cfg);
   37c26:	4628      	mov	r0, r5
   37c28:	f7ff ffd1 	bl	37bce <clear_cf_cfg>
   37c2c:	e011      	b.n	37c52 <remove_cf_cfg+0x46>
   37c2e:	2207      	movs	r2, #7
   37c30:	4631      	mov	r1, r6
   37c32:	1c68      	adds	r0, r5, #1
   37c34:	f7fd ff62 	bl	35afc <memcpy>
		atomic_clear_bit(cfg->flags, CF_OUT_OF_SYNC);
   37c38:	350c      	adds	r5, #12
	return __atomic_fetch_and(target, value, __ATOMIC_SEQ_CST);
   37c3a:	f3bf 8f5b 	dmb	ish
   37c3e:	e855 3f00 	ldrex	r3, [r5]
   37c42:	f023 0302 	bic.w	r3, r3, #2
   37c46:	e845 3200 	strex	r2, r3, [r5]
   37c4a:	2a00      	cmp	r2, #0
   37c4c:	d1f7      	bne.n	37c3e <remove_cf_cfg+0x32>
   37c4e:	f3bf 8f5b 	dmb	ish
}
   37c52:	bd70      	pop	{r4, r5, r6, pc}

00037c54 <bt_gatt_attr_read>:
{
   37c54:	b510      	push	{r4, lr}
   37c56:	f8bd 1008 	ldrh.w	r1, [sp, #8]
   37c5a:	f8bd 4010 	ldrh.w	r4, [sp, #16]
	if (offset > value_len) {
   37c5e:	42a1      	cmp	r1, r4
   37c60:	d80c      	bhi.n	37c7c <bt_gatt_attr_read+0x28>
   37c62:	4610      	mov	r0, r2
	len = MIN(buf_len, value_len - offset);
   37c64:	1a64      	subs	r4, r4, r1
   37c66:	42a3      	cmp	r3, r4
   37c68:	bfa8      	it	ge
   37c6a:	4623      	movge	r3, r4
	memcpy(buf, (uint8_t *)value + offset, len);
   37c6c:	b29c      	uxth	r4, r3
   37c6e:	4622      	mov	r2, r4
   37c70:	9b03      	ldr	r3, [sp, #12]
   37c72:	4419      	add	r1, r3
   37c74:	f7fd ff42 	bl	35afc <memcpy>
}
   37c78:	4620      	mov	r0, r4
   37c7a:	bd10      	pop	{r4, pc}
		return BT_GATT_ERR(BT_ATT_ERR_INVALID_OFFSET);
   37c7c:	f06f 0406 	mvn.w	r4, #6
   37c80:	e7fa      	b.n	37c78 <bt_gatt_attr_read+0x24>

00037c82 <read_ppcp>:
{
   37c82:	b510      	push	{r4, lr}
   37c84:	b086      	sub	sp, #24
	ppcp.min_int = sys_cpu_to_le16(CONFIG_BT_PERIPHERAL_PREF_MIN_INT);
   37c86:	2418      	movs	r4, #24
   37c88:	f8ad 4010 	strh.w	r4, [sp, #16]
	ppcp.max_int = sys_cpu_to_le16(CONFIG_BT_PERIPHERAL_PREF_MAX_INT);
   37c8c:	2428      	movs	r4, #40	; 0x28
   37c8e:	f8ad 4012 	strh.w	r4, [sp, #18]
	ppcp.latency = sys_cpu_to_le16(CONFIG_BT_PERIPHERAL_PREF_LATENCY);
   37c92:	2400      	movs	r4, #0
   37c94:	f8ad 4014 	strh.w	r4, [sp, #20]
	ppcp.timeout = sys_cpu_to_le16(CONFIG_BT_PERIPHERAL_PREF_TIMEOUT);
   37c98:	242a      	movs	r4, #42	; 0x2a
   37c9a:	f8ad 4016 	strh.w	r4, [sp, #22]
	return bt_gatt_attr_read(conn, attr, buf, len, offset, &ppcp,
   37c9e:	2408      	movs	r4, #8
   37ca0:	9402      	str	r4, [sp, #8]
   37ca2:	ac04      	add	r4, sp, #16
   37ca4:	9401      	str	r4, [sp, #4]
   37ca6:	f8bd 4020 	ldrh.w	r4, [sp, #32]
   37caa:	9400      	str	r4, [sp, #0]
   37cac:	f7ff ffd2 	bl	37c54 <bt_gatt_attr_read>
}
   37cb0:	b006      	add	sp, #24
   37cb2:	bd10      	pop	{r4, pc}

00037cb4 <read_appearance>:
{
   37cb4:	b510      	push	{r4, lr}
   37cb6:	b086      	sub	sp, #24
	uint16_t appearance = sys_cpu_to_le16(gap_appearance);
   37cb8:	2400      	movs	r4, #0
   37cba:	f8ad 4016 	strh.w	r4, [sp, #22]
	return bt_gatt_attr_read(conn, attr, buf, len, offset, &appearance,
   37cbe:	2402      	movs	r4, #2
   37cc0:	9402      	str	r4, [sp, #8]
   37cc2:	f10d 0416 	add.w	r4, sp, #22
   37cc6:	9401      	str	r4, [sp, #4]
   37cc8:	f8bd 4020 	ldrh.w	r4, [sp, #32]
   37ccc:	9400      	str	r4, [sp, #0]
   37cce:	f7ff ffc1 	bl	37c54 <bt_gatt_attr_read>
}
   37cd2:	b006      	add	sp, #24
   37cd4:	bd10      	pop	{r4, pc}

00037cd6 <read_name>:
{
   37cd6:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   37cda:	b084      	sub	sp, #16
   37cdc:	4604      	mov	r4, r0
   37cde:	460d      	mov	r5, r1
   37ce0:	4616      	mov	r6, r2
   37ce2:	461f      	mov	r7, r3
	const char *name = bt_get_name();
   37ce4:	f7ea fab6 	bl	22254 <bt_get_name>
   37ce8:	4680      	mov	r8, r0
				 strlen(name));
   37cea:	f7fd feb9 	bl	35a60 <strlen>
	return bt_gatt_attr_read(conn, attr, buf, len, offset, name,
   37cee:	b280      	uxth	r0, r0
   37cf0:	9002      	str	r0, [sp, #8]
   37cf2:	f8cd 8004 	str.w	r8, [sp, #4]
   37cf6:	f8bd 3028 	ldrh.w	r3, [sp, #40]	; 0x28
   37cfa:	9300      	str	r3, [sp, #0]
   37cfc:	463b      	mov	r3, r7
   37cfe:	4632      	mov	r2, r6
   37d00:	4629      	mov	r1, r5
   37d02:	4620      	mov	r0, r4
   37d04:	f7ff ffa6 	bl	37c54 <bt_gatt_attr_read>
}
   37d08:	b004      	add	sp, #16
   37d0a:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}

00037d0e <cf_read>:
{
   37d0e:	b5f0      	push	{r4, r5, r6, r7, lr}
   37d10:	b087      	sub	sp, #28
   37d12:	4604      	mov	r4, r0
   37d14:	460d      	mov	r5, r1
   37d16:	4616      	mov	r6, r2
   37d18:	461f      	mov	r7, r3
	uint8_t data[1] = {};
   37d1a:	2300      	movs	r3, #0
   37d1c:	f88d 3014 	strb.w	r3, [sp, #20]
	cfg = find_cf_cfg(conn);
   37d20:	f7ed fbfa 	bl	25518 <find_cf_cfg>
	if (cfg) {
   37d24:	b128      	cbz	r0, 37d32 <cf_read+0x24>
   37d26:	4601      	mov	r1, r0
		memcpy(data, cfg->data, sizeof(data));
   37d28:	2201      	movs	r2, #1
   37d2a:	3108      	adds	r1, #8
   37d2c:	a805      	add	r0, sp, #20
   37d2e:	f7fd fee5 	bl	35afc <memcpy>
	return bt_gatt_attr_read(conn, attr, buf, len, offset, data,
   37d32:	2301      	movs	r3, #1
   37d34:	9302      	str	r3, [sp, #8]
   37d36:	ab05      	add	r3, sp, #20
   37d38:	9301      	str	r3, [sp, #4]
   37d3a:	f8bd 3030 	ldrh.w	r3, [sp, #48]	; 0x30
   37d3e:	9300      	str	r3, [sp, #0]
   37d40:	463b      	mov	r3, r7
   37d42:	4632      	mov	r2, r6
   37d44:	4629      	mov	r1, r5
   37d46:	4620      	mov	r0, r4
   37d48:	f7ff ff84 	bl	37c54 <bt_gatt_attr_read>
}
   37d4c:	b007      	add	sp, #28
   37d4e:	bdf0      	pop	{r4, r5, r6, r7, pc}

00037d50 <bt_gatt_attr_read_service>:
{
   37d50:	b570      	push	{r4, r5, r6, lr}
   37d52:	b086      	sub	sp, #24
   37d54:	f8bd 5028 	ldrh.w	r5, [sp, #40]	; 0x28
	struct bt_uuid *uuid = attr->user_data;
   37d58:	68cc      	ldr	r4, [r1, #12]
	if (uuid->type == BT_UUID_TYPE_16) {
   37d5a:	7826      	ldrb	r6, [r4, #0]
   37d5c:	b146      	cbz	r6, 37d70 <bt_gatt_attr_read_service+0x20>
				 BT_UUID_128(uuid)->val, 16);
   37d5e:	3401      	adds	r4, #1
	return bt_gatt_attr_read(conn, attr, buf, len, offset,
   37d60:	2610      	movs	r6, #16
   37d62:	9602      	str	r6, [sp, #8]
   37d64:	9401      	str	r4, [sp, #4]
   37d66:	9500      	str	r5, [sp, #0]
   37d68:	f7ff ff74 	bl	37c54 <bt_gatt_attr_read>
}
   37d6c:	b006      	add	sp, #24
   37d6e:	bd70      	pop	{r4, r5, r6, pc}
		uint16_t uuid16 = sys_cpu_to_le16(BT_UUID_16(uuid)->val);
   37d70:	8864      	ldrh	r4, [r4, #2]
   37d72:	f8ad 4016 	strh.w	r4, [sp, #22]
		return bt_gatt_attr_read(conn, attr, buf, len, offset,
   37d76:	2402      	movs	r4, #2
   37d78:	9402      	str	r4, [sp, #8]
   37d7a:	f10d 0416 	add.w	r4, sp, #22
   37d7e:	9401      	str	r4, [sp, #4]
   37d80:	9500      	str	r5, [sp, #0]
   37d82:	f7ff ff67 	bl	37c54 <bt_gatt_attr_read>
   37d86:	e7f1      	b.n	37d6c <bt_gatt_attr_read_service+0x1c>

00037d88 <bt_gatt_attr_read_ccc>:
{
   37d88:	b5f0      	push	{r4, r5, r6, r7, lr}
   37d8a:	b087      	sub	sp, #28
   37d8c:	4605      	mov	r5, r0
   37d8e:	460c      	mov	r4, r1
   37d90:	4616      	mov	r6, r2
   37d92:	461f      	mov	r7, r3
	cfg = find_ccc_cfg(conn, ccc);
   37d94:	68c9      	ldr	r1, [r1, #12]
   37d96:	f7ff fe55 	bl	37a44 <find_ccc_cfg>
	if (cfg) {
   37d9a:	b190      	cbz	r0, 37dc2 <bt_gatt_attr_read_ccc+0x3a>
		value = sys_cpu_to_le16(cfg->value);
   37d9c:	8903      	ldrh	r3, [r0, #8]
   37d9e:	f8ad 3016 	strh.w	r3, [sp, #22]
	return bt_gatt_attr_read(conn, attr, buf, len, offset, &value,
   37da2:	2302      	movs	r3, #2
   37da4:	9302      	str	r3, [sp, #8]
   37da6:	f10d 0316 	add.w	r3, sp, #22
   37daa:	9301      	str	r3, [sp, #4]
   37dac:	f8bd 3030 	ldrh.w	r3, [sp, #48]	; 0x30
   37db0:	9300      	str	r3, [sp, #0]
   37db2:	463b      	mov	r3, r7
   37db4:	4632      	mov	r2, r6
   37db6:	4621      	mov	r1, r4
   37db8:	4628      	mov	r0, r5
   37dba:	f7ff ff4b 	bl	37c54 <bt_gatt_attr_read>
}
   37dbe:	b007      	add	sp, #28
   37dc0:	bdf0      	pop	{r4, r5, r6, r7, pc}
		value = 0x0000;
   37dc2:	2300      	movs	r3, #0
   37dc4:	f8ad 3016 	strh.w	r3, [sp, #22]
   37dc8:	e7eb      	b.n	37da2 <bt_gatt_attr_read_ccc+0x1a>

00037dca <bt_gatt_attr_value_handle>:
	if (attr != NULL && bt_uuid_cmp(attr->uuid, BT_UUID_GATT_CHRC) == 0) {
   37dca:	b1b8      	cbz	r0, 37dfc <bt_gatt_attr_value_handle+0x32>
{
   37dcc:	b510      	push	{r4, lr}
   37dce:	b082      	sub	sp, #8
   37dd0:	4604      	mov	r4, r0
	if (attr != NULL && bt_uuid_cmp(attr->uuid, BT_UUID_GATT_CHRC) == 0) {
   37dd2:	2300      	movs	r3, #0
   37dd4:	f88d 3004 	strb.w	r3, [sp, #4]
   37dd8:	f642 0303 	movw	r3, #10243	; 0x2803
   37ddc:	f8ad 3006 	strh.w	r3, [sp, #6]
   37de0:	a901      	add	r1, sp, #4
   37de2:	6800      	ldr	r0, [r0, #0]
   37de4:	f7fd ffc2 	bl	35d6c <bt_uuid_cmp>
   37de8:	b950      	cbnz	r0, 37e00 <bt_gatt_attr_value_handle+0x36>
		struct bt_gatt_chrc *chrc = attr->user_data;
   37dea:	68e3      	ldr	r3, [r4, #12]
		handle = chrc->value_handle;
   37dec:	8898      	ldrh	r0, [r3, #4]
		if (handle == 0) {
   37dee:	b940      	cbnz	r0, 37e02 <bt_gatt_attr_value_handle+0x38>
			handle = bt_gatt_attr_get_handle(attr) + 1U;
   37df0:	4620      	mov	r0, r4
   37df2:	f7ee f92b 	bl	2604c <bt_gatt_attr_get_handle>
   37df6:	3001      	adds	r0, #1
   37df8:	b280      	uxth	r0, r0
   37dfa:	e002      	b.n	37e02 <bt_gatt_attr_value_handle+0x38>
	uint16_t handle = 0;
   37dfc:	2000      	movs	r0, #0
}
   37dfe:	4770      	bx	lr
	uint16_t handle = 0;
   37e00:	2000      	movs	r0, #0
}
   37e02:	b002      	add	sp, #8
   37e04:	bd10      	pop	{r4, pc}

00037e06 <bt_gatt_attr_read_chrc>:
{
   37e06:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   37e0a:	b08a      	sub	sp, #40	; 0x28
   37e0c:	4605      	mov	r5, r0
   37e0e:	460c      	mov	r4, r1
   37e10:	4616      	mov	r6, r2
   37e12:	461f      	mov	r7, r3
	struct bt_gatt_chrc *chrc = attr->user_data;
   37e14:	f8d1 800c 	ldr.w	r8, [r1, #12]
	pdu.properties = chrc->properties;
   37e18:	f898 3006 	ldrb.w	r3, [r8, #6]
   37e1c:	f88d 3014 	strb.w	r3, [sp, #20]
	pdu.value_handle = sys_cpu_to_le16(bt_gatt_attr_value_handle(attr));
   37e20:	4608      	mov	r0, r1
   37e22:	f7ff ffd2 	bl	37dca <bt_gatt_attr_value_handle>
   37e26:	f8ad 0015 	strh.w	r0, [sp, #21]
	if (chrc->uuid->type == BT_UUID_TYPE_16) {
   37e2a:	f8d8 1000 	ldr.w	r1, [r8]
   37e2e:	780b      	ldrb	r3, [r1, #0]
   37e30:	b993      	cbnz	r3, 37e58 <bt_gatt_attr_read_chrc+0x52>
		pdu.uuid16 = sys_cpu_to_le16(BT_UUID_16(chrc->uuid)->val);
   37e32:	884b      	ldrh	r3, [r1, #2]
   37e34:	f8ad 3017 	strh.w	r3, [sp, #23]
		value_len += 2U;
   37e38:	2305      	movs	r3, #5
	return bt_gatt_attr_read(conn, attr, buf, len, offset, &pdu, value_len);
   37e3a:	9302      	str	r3, [sp, #8]
   37e3c:	ab05      	add	r3, sp, #20
   37e3e:	9301      	str	r3, [sp, #4]
   37e40:	f8bd 3040 	ldrh.w	r3, [sp, #64]	; 0x40
   37e44:	9300      	str	r3, [sp, #0]
   37e46:	463b      	mov	r3, r7
   37e48:	4632      	mov	r2, r6
   37e4a:	4621      	mov	r1, r4
   37e4c:	4628      	mov	r0, r5
   37e4e:	f7ff ff01 	bl	37c54 <bt_gatt_attr_read>
}
   37e52:	b00a      	add	sp, #40	; 0x28
   37e54:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
		memcpy(pdu.uuid, BT_UUID_128(chrc->uuid)->val, 16);
   37e58:	2210      	movs	r2, #16
   37e5a:	3101      	adds	r1, #1
   37e5c:	f10d 0017 	add.w	r0, sp, #23
   37e60:	f7fd fe4c 	bl	35afc <memcpy>
		value_len += 16U;
   37e64:	2313      	movs	r3, #19
   37e66:	e7e8      	b.n	37e3a <bt_gatt_attr_read_chrc+0x34>

00037e68 <bt_gatt_get_mtu>:
{
   37e68:	b508      	push	{r3, lr}
	return bt_att_get_mtu(conn);
   37e6a:	f7ff fc39 	bl	376e0 <bt_att_get_mtu>
}
   37e6e:	bd08      	pop	{r3, pc}

00037e70 <bt_gatt_check_perm>:
{
   37e70:	b538      	push	{r3, r4, r5, lr}
   37e72:	4605      	mov	r5, r0
	if ((mask & BT_GATT_PERM_READ) &&
   37e74:	f012 0f01 	tst.w	r2, #1
   37e78:	d005      	beq.n	37e86 <bt_gatt_check_perm+0x16>
	    (!(attr->perm & BT_GATT_PERM_READ_MASK) || !attr->read)) {
   37e7a:	7c8b      	ldrb	r3, [r1, #18]
	if ((mask & BT_GATT_PERM_READ) &&
   37e7c:	f013 0f15 	tst.w	r3, #21
   37e80:	d01d      	beq.n	37ebe <bt_gatt_check_perm+0x4e>
	    (!(attr->perm & BT_GATT_PERM_READ_MASK) || !attr->read)) {
   37e82:	684b      	ldr	r3, [r1, #4]
   37e84:	b1eb      	cbz	r3, 37ec2 <bt_gatt_check_perm+0x52>
	if ((mask & BT_GATT_PERM_WRITE) &&
   37e86:	f012 0f02 	tst.w	r2, #2
   37e8a:	d005      	beq.n	37e98 <bt_gatt_check_perm+0x28>
	    (!(attr->perm & BT_GATT_PERM_WRITE_MASK) || !attr->write)) {
   37e8c:	7c8b      	ldrb	r3, [r1, #18]
	if ((mask & BT_GATT_PERM_WRITE) &&
   37e8e:	f013 0f2a 	tst.w	r3, #42	; 0x2a
   37e92:	d018      	beq.n	37ec6 <bt_gatt_check_perm+0x56>
	    (!(attr->perm & BT_GATT_PERM_WRITE_MASK) || !attr->write)) {
   37e94:	688b      	ldr	r3, [r1, #8]
   37e96:	b1c3      	cbz	r3, 37eca <bt_gatt_check_perm+0x5a>
	mask &= attr->perm;
   37e98:	7c8c      	ldrb	r4, [r1, #18]
   37e9a:	4014      	ands	r4, r2
	if (mask & BT_GATT_PERM_AUTHEN_MASK) {
   37e9c:	f014 0f30 	tst.w	r4, #48	; 0x30
   37ea0:	d106      	bne.n	37eb0 <bt_gatt_check_perm+0x40>
	if ((mask & BT_GATT_PERM_ENCRYPT_MASK)) {
   37ea2:	f014 000c 	ands.w	r0, r4, #12
   37ea6:	d002      	beq.n	37eae <bt_gatt_check_perm+0x3e>
		if (!conn->encrypt) {
   37ea8:	7aeb      	ldrb	r3, [r5, #11]
   37eaa:	b183      	cbz	r3, 37ece <bt_gatt_check_perm+0x5e>
	return 0;
   37eac:	2000      	movs	r0, #0
}
   37eae:	bd38      	pop	{r3, r4, r5, pc}
		if (bt_conn_get_security(conn) < BT_SECURITY_L3) {
   37eb0:	4628      	mov	r0, r5
   37eb2:	f7fe fd47 	bl	36944 <bt_conn_get_security>
   37eb6:	2802      	cmp	r0, #2
   37eb8:	d8f3      	bhi.n	37ea2 <bt_gatt_check_perm+0x32>
			return BT_ATT_ERR_AUTHENTICATION;
   37eba:	2005      	movs	r0, #5
   37ebc:	e7f7      	b.n	37eae <bt_gatt_check_perm+0x3e>
		return BT_ATT_ERR_READ_NOT_PERMITTED;
   37ebe:	2002      	movs	r0, #2
   37ec0:	e7f5      	b.n	37eae <bt_gatt_check_perm+0x3e>
   37ec2:	2002      	movs	r0, #2
   37ec4:	e7f3      	b.n	37eae <bt_gatt_check_perm+0x3e>
		return BT_ATT_ERR_WRITE_NOT_PERMITTED;
   37ec6:	2003      	movs	r0, #3
   37ec8:	e7f1      	b.n	37eae <bt_gatt_check_perm+0x3e>
   37eca:	2003      	movs	r0, #3
   37ecc:	e7ef      	b.n	37eae <bt_gatt_check_perm+0x3e>
			return BT_ATT_ERR_INSUFFICIENT_ENCRYPTION;
   37ece:	200f      	movs	r0, #15
   37ed0:	e7ed      	b.n	37eae <bt_gatt_check_perm+0x3e>

00037ed2 <bt_gatt_change_aware>:
{
   37ed2:	b510      	push	{r4, lr}
   37ed4:	460c      	mov	r4, r1
	cfg = find_cf_cfg(conn);
   37ed6:	f7ed fb1f 	bl	25518 <find_cf_cfg>
	if (!cfg || !CF_ROBUST_CACHING(cfg)) {
   37eda:	2800      	cmp	r0, #0
   37edc:	d042      	beq.n	37f64 <bt_gatt_change_aware+0x92>
   37ede:	7a02      	ldrb	r2, [r0, #8]
   37ee0:	f012 0f01 	tst.w	r2, #1
   37ee4:	d101      	bne.n	37eea <bt_gatt_change_aware+0x18>
		return true;
   37ee6:	2001      	movs	r0, #1
}
   37ee8:	bd10      	pop	{r4, pc}
	if (atomic_test_bit(cfg->flags, CF_CHANGE_AWARE)) {
   37eea:	f100 010c 	add.w	r1, r0, #12
	return __atomic_load_n(target, __ATOMIC_SEQ_CST);
   37eee:	f3bf 8f5b 	dmb	ish
   37ef2:	68c2      	ldr	r2, [r0, #12]
   37ef4:	f3bf 8f5b 	dmb	ish
   37ef8:	f012 0f01 	tst.w	r2, #1
   37efc:	d134      	bne.n	37f68 <bt_gatt_change_aware+0x96>
	if (!req) {
   37efe:	b90c      	cbnz	r4, 37f04 <bt_gatt_change_aware+0x32>
		return false;
   37f00:	4620      	mov	r0, r4
   37f02:	e7f1      	b.n	37ee8 <bt_gatt_change_aware+0x16>
   37f04:	f3bf 8f5b 	dmb	ish
   37f08:	68c3      	ldr	r3, [r0, #12]
   37f0a:	f3bf 8f5b 	dmb	ish
	if (atomic_test_bit(cfg->flags, CF_OUT_OF_SYNC)) {
   37f0e:	f013 0f02 	tst.w	r3, #2
   37f12:	d10d      	bne.n	37f30 <bt_gatt_change_aware+0x5e>
	return __atomic_fetch_or(target, value, __ATOMIC_SEQ_CST);
   37f14:	f3bf 8f5b 	dmb	ish
   37f18:	e851 3f00 	ldrex	r3, [r1]
   37f1c:	f043 0302 	orr.w	r3, r3, #2
   37f20:	e841 3200 	strex	r2, r3, [r1]
   37f24:	2a00      	cmp	r2, #0
   37f26:	d1f7      	bne.n	37f18 <bt_gatt_change_aware+0x46>
   37f28:	f3bf 8f5b 	dmb	ish
	return false;
   37f2c:	2000      	movs	r0, #0
   37f2e:	e7db      	b.n	37ee8 <bt_gatt_change_aware+0x16>
	return __atomic_fetch_and(target, value, __ATOMIC_SEQ_CST);
   37f30:	f3bf 8f5b 	dmb	ish
   37f34:	e851 3f00 	ldrex	r3, [r1]
   37f38:	f023 0302 	bic.w	r3, r3, #2
   37f3c:	e841 3200 	strex	r2, r3, [r1]
   37f40:	2a00      	cmp	r2, #0
   37f42:	d1f7      	bne.n	37f34 <bt_gatt_change_aware+0x62>
   37f44:	f3bf 8f5b 	dmb	ish
	return __atomic_fetch_or(target, value, __ATOMIC_SEQ_CST);
   37f48:	f3bf 8f5b 	dmb	ish
   37f4c:	e851 3f00 	ldrex	r3, [r1]
   37f50:	f043 0301 	orr.w	r3, r3, #1
   37f54:	e841 3200 	strex	r2, r3, [r1]
   37f58:	2a00      	cmp	r2, #0
   37f5a:	d1f7      	bne.n	37f4c <bt_gatt_change_aware+0x7a>
   37f5c:	f3bf 8f5b 	dmb	ish
		return true;
   37f60:	4620      	mov	r0, r4
   37f62:	e7c1      	b.n	37ee8 <bt_gatt_change_aware+0x16>
		return true;
   37f64:	2001      	movs	r0, #1
   37f66:	e7bf      	b.n	37ee8 <bt_gatt_change_aware+0x16>
		return true;
   37f68:	2001      	movs	r0, #1
   37f6a:	e7bd      	b.n	37ee8 <bt_gatt_change_aware+0x16>

00037f6c <security_err_get>:
	switch (smp_err) {
   37f6c:	3801      	subs	r0, #1
   37f6e:	280e      	cmp	r0, #14
   37f70:	d815      	bhi.n	37f9e <security_err_get+0x32>
   37f72:	e8df f000 	tbb	[pc, r0]
   37f76:	1608      	.short	0x1608
   37f78:	0a0c080a 	.word	0x0a0c080a
   37f7c:	100e140c 	.word	0x100e140c
   37f80:	0e0e0808 	.word	0x0e0e0808
   37f84:	12          	.byte	0x12
   37f85:	00          	.byte	0x00
		return BT_SECURITY_ERR_KEY_REJECTED;
   37f86:	2001      	movs	r0, #1
   37f88:	4770      	bx	lr
		return BT_SECURITY_ERR_AUTH_REQUIREMENT;
   37f8a:	2004      	movs	r0, #4
   37f8c:	4770      	bx	lr
		return BT_SECURITY_ERR_PAIR_NOT_SUPPORTED;
   37f8e:	2005      	movs	r0, #5
   37f90:	4770      	bx	lr
		return BT_SECURITY_ERR_PAIR_NOT_ALLOWED;
   37f92:	2006      	movs	r0, #6
   37f94:	4770      	bx	lr
		return BT_SECURITY_ERR_INVALID_PARAM;
   37f96:	2007      	movs	r0, #7
   37f98:	4770      	bx	lr
		return BT_SECURITY_ERR_KEY_REJECTED;
   37f9a:	2008      	movs	r0, #8
   37f9c:	4770      	bx	lr
		return BT_SECURITY_ERR_UNSPECIFIED;
   37f9e:	2009      	movs	r0, #9
   37fa0:	4770      	bx	lr
		return BT_SECURITY_ERR_OOB_NOT_AVAILABLE;
   37fa2:	2003      	movs	r0, #3
}
   37fa4:	4770      	bx	lr

00037fa6 <smp_err_get>:
	switch (auth_err) {
   37fa6:	1e43      	subs	r3, r0, #1
   37fa8:	2b08      	cmp	r3, #8
   37faa:	d80c      	bhi.n	37fc6 <smp_err_get+0x20>
   37fac:	e8df f003 	tbb	[pc, r3]
   37fb0:	0d05090d 	.word	0x0d05090d
   37fb4:	0b07090e 	.word	0x0b07090e
   37fb8:	09          	.byte	0x09
   37fb9:	00          	.byte	0x00
		return BT_SMP_ERR_UNSPECIFIED;
   37fba:	2002      	movs	r0, #2
   37fbc:	4770      	bx	lr
		return BT_SMP_ERR_INVALID_PARAMS;
   37fbe:	200a      	movs	r0, #10
   37fc0:	4770      	bx	lr
		return BT_SMP_ERR_UNSPECIFIED;
   37fc2:	2008      	movs	r0, #8
   37fc4:	4770      	bx	lr
		return 0;
   37fc6:	2000      	movs	r0, #0
   37fc8:	4770      	bx	lr
		return BT_SMP_ERR_AUTH_REQUIREMENTS;
   37fca:	2003      	movs	r0, #3
}
   37fcc:	4770      	bx	lr

00037fce <get_encryption_key_size>:
{
   37fce:	4603      	mov	r3, r0
	return MIN(req->max_key_size, rsp->max_key_size);
   37fd0:	7d00      	ldrb	r0, [r0, #20]
   37fd2:	7b5b      	ldrb	r3, [r3, #13]
}
   37fd4:	4298      	cmp	r0, r3
   37fd6:	bf28      	it	cs
   37fd8:	4618      	movcs	r0, r3
   37fda:	4770      	bx	lr

00037fdc <hci_err_get>:
	switch (err) {
   37fdc:	2807      	cmp	r0, #7
   37fde:	d80d      	bhi.n	37ffc <hci_err_get+0x20>
   37fe0:	e8df f000 	tbb	[pc, r0]
   37fe4:	0c040e0f 	.word	0x0c040e0f
   37fe8:	0a08060c 	.word	0x0a08060c
		return BT_HCI_ERR_PIN_OR_KEY_MISSING;
   37fec:	2006      	movs	r0, #6
   37fee:	4770      	bx	lr
		return BT_HCI_ERR_PAIRING_NOT_SUPPORTED;
   37ff0:	2029      	movs	r0, #41	; 0x29
   37ff2:	4770      	bx	lr
		return BT_HCI_ERR_PAIRING_NOT_ALLOWED;
   37ff4:	2018      	movs	r0, #24
   37ff6:	4770      	bx	lr
		return BT_HCI_ERR_INVALID_PARAM;
   37ff8:	2012      	movs	r0, #18
   37ffa:	4770      	bx	lr
		return BT_HCI_ERR_UNSPECIFIED;
   37ffc:	201f      	movs	r0, #31
   37ffe:	4770      	bx	lr
		return BT_HCI_ERR_AUTH_FAIL;
   38000:	2005      	movs	r0, #5
}
   38002:	4770      	bx	lr

00038004 <xor_128>:
{
   38004:	b430      	push	{r4, r5}
	size_t len = 16;
   38006:	2310      	movs	r3, #16
	while (len--) {
   38008:	1e5c      	subs	r4, r3, #1
   3800a:	b143      	cbz	r3, 3801e <xor_128+0x1a>
		*r++ = *p++ ^ *q++;
   3800c:	f810 3b01 	ldrb.w	r3, [r0], #1
   38010:	f811 5b01 	ldrb.w	r5, [r1], #1
   38014:	406b      	eors	r3, r5
   38016:	f802 3b01 	strb.w	r3, [r2], #1
	while (len--) {
   3801a:	4623      	mov	r3, r4
   3801c:	e7f4      	b.n	38008 <xor_128+0x4>
}
   3801e:	bc30      	pop	{r4, r5}
   38020:	4770      	bx	lr

00038022 <smp_pairing_rsp>:
}
   38022:	2007      	movs	r0, #7
   38024:	4770      	bx	lr

00038026 <le_sc_oob_data_req_check>:
	return ((req->oob_flag & BT_SMP_OOB_DATA_MASK) == BT_SMP_OOB_PRESENT);
   38026:	7ac0      	ldrb	r0, [r0, #11]
}
   38028:	f000 0001 	and.w	r0, r0, #1
   3802c:	4770      	bx	lr

0003802e <le_sc_oob_data_rsp_check>:
	return ((rsp->oob_flag & BT_SMP_OOB_DATA_MASK) == BT_SMP_OOB_PRESENT);
   3802e:	7c80      	ldrb	r0, [r0, #18]
}
   38030:	f000 0001 	and.w	r0, r0, #1
   38034:	4770      	bx	lr

00038036 <le_sc_oob_config_set>:
{
   38036:	b570      	push	{r4, r5, r6, lr}
   38038:	4606      	mov	r6, r0
   3803a:	460c      	mov	r4, r1
	bool req_oob_present = le_sc_oob_data_req_check(smp);
   3803c:	f7ff fff3 	bl	38026 <le_sc_oob_data_req_check>
   38040:	4605      	mov	r5, r0
	bool rsp_oob_present = le_sc_oob_data_rsp_check(smp);
   38042:	4630      	mov	r0, r6
   38044:	f7ff fff3 	bl	3802e <le_sc_oob_data_rsp_check>
		oob_config = req_oob_present ? BT_CONN_OOB_LOCAL_ONLY :
   38048:	b12d      	cbz	r5, 38056 <le_sc_oob_config_set+0x20>
   3804a:	2300      	movs	r3, #0
		if (rsp_oob_present) {
   3804c:	b108      	cbz	r0, 38052 <le_sc_oob_config_set+0x1c>
				     BT_CONN_OOB_BOTH_PEERS :
   3804e:	b923      	cbnz	r3, 3805a <le_sc_oob_config_set+0x24>
   38050:	2302      	movs	r3, #2
	info->lesc.oob_config = oob_config;
   38052:	7063      	strb	r3, [r4, #1]
}
   38054:	bd70      	pop	{r4, r5, r6, pc}
		oob_config = req_oob_present ? BT_CONN_OOB_LOCAL_ONLY :
   38056:	2303      	movs	r3, #3
   38058:	e7f8      	b.n	3804c <le_sc_oob_config_set+0x16>
				     BT_CONN_OOB_BOTH_PEERS :
   3805a:	2301      	movs	r3, #1
   3805c:	e7f9      	b.n	38052 <le_sc_oob_config_set+0x1c>

0003805e <smp_signing_info>:
}
   3805e:	2007      	movs	r0, #7
   38060:	4770      	bx	lr

00038062 <smp_security_request>:
}
   38062:	2007      	movs	r0, #7
   38064:	4770      	bx	lr

00038066 <smp_keypress_notif>:
   38066:	f3bf 8f5b 	dmb	ish
   3806a:	e850 3f00 	ldrex	r3, [r0]
   3806e:	f443 4380 	orr.w	r3, r3, #16384	; 0x4000
   38072:	e840 3200 	strex	r2, r3, [r0]
   38076:	2a00      	cmp	r2, #0
   38078:	d1f7      	bne.n	3806a <smp_keypress_notif+0x4>
   3807a:	f3bf 8f5b 	dmb	ish
}
   3807e:	2000      	movs	r0, #0
   38080:	4770      	bx	lr

00038082 <smp_keys_check>:
{
   38082:	b538      	push	{r3, r4, r5, lr}
	return __atomic_load_n(target, __ATOMIC_SEQ_CST);
   38084:	f3bf 8f5b 	dmb	ish
   38088:	6843      	ldr	r3, [r0, #4]
   3808a:	f3bf 8f5b 	dmb	ish
	if (atomic_test_bit(conn->flags, BT_CONN_FORCE_PAIR)) {
   3808e:	f413 6f00 	tst.w	r3, #2048	; 0x800
   38092:	d132      	bne.n	380fa <smp_keys_check+0x78>
   38094:	4604      	mov	r4, r0
	if (!conn->le.keys) {
   38096:	f8d0 30bc 	ldr.w	r3, [r0, #188]	; 0xbc
   3809a:	b1db      	cbz	r3, 380d4 <smp_keys_check+0x52>
	if (!conn->le.keys ||
   3809c:	f8d4 30bc 	ldr.w	r3, [r4, #188]	; 0xbc
   380a0:	b36b      	cbz	r3, 380fe <smp_keys_check+0x7c>
	    !(conn->le.keys->keys & (BT_KEYS_LTK | BT_KEYS_LTK_P256))) {
   380a2:	89da      	ldrh	r2, [r3, #14]
	if (!conn->le.keys ||
   380a4:	f012 0f24 	tst.w	r2, #36	; 0x24
   380a8:	d02b      	beq.n	38102 <smp_keys_check+0x80>
	if (conn->required_sec_level > BT_SECURITY_L2 &&
   380aa:	7aa1      	ldrb	r1, [r4, #10]
   380ac:	2902      	cmp	r1, #2
   380ae:	d903      	bls.n	380b8 <smp_keys_check+0x36>
	    !(conn->le.keys->flags & BT_KEYS_AUTHENTICATED)) {
   380b0:	7b58      	ldrb	r0, [r3, #13]
	if (conn->required_sec_level > BT_SECURITY_L2 &&
   380b2:	f010 0f01 	tst.w	r0, #1
   380b6:	d026      	beq.n	38106 <smp_keys_check+0x84>
	if (conn->required_sec_level > BT_SECURITY_L3 &&
   380b8:	2903      	cmp	r1, #3
   380ba:	d926      	bls.n	3810a <smp_keys_check+0x88>
	    !(conn->le.keys->flags & BT_KEYS_AUTHENTICATED) &&
   380bc:	7b59      	ldrb	r1, [r3, #13]
	if (conn->required_sec_level > BT_SECURITY_L3 &&
   380be:	f011 0f01 	tst.w	r1, #1
   380c2:	d124      	bne.n	3810e <smp_keys_check+0x8c>
	    !(conn->le.keys->flags & BT_KEYS_AUTHENTICATED) &&
   380c4:	f012 0f20 	tst.w	r2, #32
   380c8:	d123      	bne.n	38112 <smp_keys_check+0x90>
	    !(conn->le.keys->enc_size == BT_SMP_MAX_ENC_KEY_SIZE)) {
   380ca:	7b1b      	ldrb	r3, [r3, #12]
	    !(conn->le.keys->keys & BT_KEYS_LTK_P256) &&
   380cc:	2b10      	cmp	r3, #16
   380ce:	d122      	bne.n	38116 <smp_keys_check+0x94>
	return true;
   380d0:	2001      	movs	r0, #1
   380d2:	e013      	b.n	380fc <smp_keys_check+0x7a>
						     conn->id, &conn->le.dst);
   380d4:	f100 0590 	add.w	r5, r0, #144	; 0x90
		conn->le.keys = bt_keys_find(BT_KEYS_LTK_P256,
   380d8:	462a      	mov	r2, r5
   380da:	7a01      	ldrb	r1, [r0, #8]
   380dc:	2020      	movs	r0, #32
   380de:	f7f0 ff7b 	bl	28fd8 <bt_keys_find>
   380e2:	f8c4 00bc 	str.w	r0, [r4, #188]	; 0xbc
		if (!conn->le.keys) {
   380e6:	2800      	cmp	r0, #0
   380e8:	d1d8      	bne.n	3809c <smp_keys_check+0x1a>
			conn->le.keys = bt_keys_find(BT_KEYS_LTK,
   380ea:	462a      	mov	r2, r5
   380ec:	7a21      	ldrb	r1, [r4, #8]
   380ee:	2004      	movs	r0, #4
   380f0:	f7f0 ff72 	bl	28fd8 <bt_keys_find>
   380f4:	f8c4 00bc 	str.w	r0, [r4, #188]	; 0xbc
   380f8:	e7d0      	b.n	3809c <smp_keys_check+0x1a>
		return false;
   380fa:	2000      	movs	r0, #0
}
   380fc:	bd38      	pop	{r3, r4, r5, pc}
		return false;
   380fe:	2000      	movs	r0, #0
   38100:	e7fc      	b.n	380fc <smp_keys_check+0x7a>
   38102:	2000      	movs	r0, #0
   38104:	e7fa      	b.n	380fc <smp_keys_check+0x7a>
		return false;
   38106:	2000      	movs	r0, #0
   38108:	e7f8      	b.n	380fc <smp_keys_check+0x7a>
	return true;
   3810a:	2001      	movs	r0, #1
   3810c:	e7f6      	b.n	380fc <smp_keys_check+0x7a>
   3810e:	2001      	movs	r0, #1
   38110:	e7f4      	b.n	380fc <smp_keys_check+0x7a>
   38112:	2001      	movs	r0, #1
   38114:	e7f2      	b.n	380fc <smp_keys_check+0x7a>
		return false;
   38116:	2000      	movs	r0, #0
   38118:	e7f0      	b.n	380fc <smp_keys_check+0x7a>

0003811a <update_keys_check>:
	if (!keys ||
   3811a:	b319      	cbz	r1, 38164 <update_keys_check+0x4a>
{
   3811c:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
   3811e:	4605      	mov	r5, r0
   38120:	460c      	mov	r4, r1
	    !(keys->keys & (BT_KEYS_LTK_P256 | BT_KEYS_LTK))) {
   38122:	89ce      	ldrh	r6, [r1, #14]
	if (!keys ||
   38124:	f016 0f24 	tst.w	r6, #36	; 0x24
   38128:	d01e      	beq.n	38168 <update_keys_check+0x4e>
	if (keys->enc_size > get_encryption_key_size(smp)) {
   3812a:	7b0f      	ldrb	r7, [r1, #12]
   3812c:	f7ff ff4f 	bl	37fce <get_encryption_key_size>
   38130:	4287      	cmp	r7, r0
   38132:	d81b      	bhi.n	3816c <update_keys_check+0x52>
	if ((keys->keys & BT_KEYS_LTK_P256) &&
   38134:	f016 0f20 	tst.w	r6, #32
   38138:	d10a      	bne.n	38150 <update_keys_check+0x36>
	if ((keys->flags & BT_KEYS_AUTHENTICATED) &&
   3813a:	7b63      	ldrb	r3, [r4, #13]
   3813c:	f013 0301 	ands.w	r3, r3, #1
   38140:	d001      	beq.n	38146 <update_keys_check+0x2c>
	     smp->method == JUST_WORKS) {
   38142:	7a2a      	ldrb	r2, [r5, #8]
	if ((keys->flags & BT_KEYS_AUTHENTICATED) &&
   38144:	b1a2      	cbz	r2, 38170 <update_keys_check+0x56>
	if (!IS_ENABLED(CONFIG_BT_SMP_ALLOW_UNAUTH_OVERWRITE) &&
   38146:	b9ab      	cbnz	r3, 38174 <update_keys_check+0x5a>
	     && smp->method == JUST_WORKS)) {
   38148:	7a2b      	ldrb	r3, [r5, #8]
	if (!IS_ENABLED(CONFIG_BT_SMP_ALLOW_UNAUTH_OVERWRITE) &&
   3814a:	b1ab      	cbz	r3, 38178 <update_keys_check+0x5e>
	return true;
   3814c:	2001      	movs	r0, #1
   3814e:	e00c      	b.n	3816a <update_keys_check+0x50>
   38150:	f3bf 8f5b 	dmb	ish
   38154:	686b      	ldr	r3, [r5, #4]
   38156:	f3bf 8f5b 	dmb	ish
	if ((keys->keys & BT_KEYS_LTK_P256) &&
   3815a:	f013 0f20 	tst.w	r3, #32
   3815e:	d1ec      	bne.n	3813a <update_keys_check+0x20>
		return false;
   38160:	2000      	movs	r0, #0
   38162:	e002      	b.n	3816a <update_keys_check+0x50>
		return true;
   38164:	2001      	movs	r0, #1
}
   38166:	4770      	bx	lr
		return true;
   38168:	2001      	movs	r0, #1
}
   3816a:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
		return false;
   3816c:	2000      	movs	r0, #0
   3816e:	e7fc      	b.n	3816a <update_keys_check+0x50>
		return false;
   38170:	2000      	movs	r0, #0
   38172:	e7fa      	b.n	3816a <update_keys_check+0x50>
	return true;
   38174:	2001      	movs	r0, #1
   38176:	e7f8      	b.n	3816a <update_keys_check+0x50>
		return false;
   38178:	2000      	movs	r0, #0
   3817a:	e7f6      	b.n	3816a <update_keys_check+0x50>

0003817c <remote_sec_level_reachable>:
{
   3817c:	b510      	push	{r4, lr}
   3817e:	4604      	mov	r4, r0
	bt_security_t sec = smp->chan.chan.conn->required_sec_level;
   38180:	f8d0 30f0 	ldr.w	r3, [r0, #240]	; 0xf0
   38184:	7a9b      	ldrb	r3, [r3, #10]
	switch (sec) {
   38186:	2b03      	cmp	r3, #3
   38188:	d018      	beq.n	381bc <remote_sec_level_reachable+0x40>
   3818a:	d807      	bhi.n	3819c <remote_sec_level_reachable+0x20>
   3818c:	3b01      	subs	r3, #1
   3818e:	b2db      	uxtb	r3, r3
   38190:	2b01      	cmp	r3, #1
   38192:	d801      	bhi.n	38198 <remote_sec_level_reachable+0x1c>
   38194:	2000      	movs	r0, #0
}
   38196:	bd10      	pop	{r4, pc}
		return BT_SMP_ERR_UNSPECIFIED;
   38198:	2008      	movs	r0, #8
   3819a:	e7fc      	b.n	38196 <remote_sec_level_reachable+0x1a>
	switch (sec) {
   3819c:	2b04      	cmp	r3, #4
   3819e:	d111      	bne.n	381c4 <remote_sec_level_reachable+0x48>
		if (get_encryption_key_size(smp) != BT_SMP_MAX_ENC_KEY_SIZE) {
   381a0:	f7ff ff15 	bl	37fce <get_encryption_key_size>
   381a4:	2810      	cmp	r0, #16
   381a6:	d001      	beq.n	381ac <remote_sec_level_reachable+0x30>
			return BT_SMP_ERR_ENC_KEY_SIZE;
   381a8:	2006      	movs	r0, #6
   381aa:	e7f4      	b.n	38196 <remote_sec_level_reachable+0x1a>
   381ac:	f3bf 8f5b 	dmb	ish
   381b0:	6863      	ldr	r3, [r4, #4]
   381b2:	f3bf 8f5b 	dmb	ish
		if (!atomic_test_bit(smp->flags, SMP_FLAG_SC)) {
   381b6:	f013 0f20 	tst.w	r3, #32
   381ba:	d005      	beq.n	381c8 <remote_sec_level_reachable+0x4c>
		if (smp->method == JUST_WORKS) {
   381bc:	7a23      	ldrb	r3, [r4, #8]
   381be:	b12b      	cbz	r3, 381cc <remote_sec_level_reachable+0x50>
		return 0;
   381c0:	2000      	movs	r0, #0
   381c2:	e7e8      	b.n	38196 <remote_sec_level_reachable+0x1a>
		return BT_SMP_ERR_UNSPECIFIED;
   381c4:	2008      	movs	r0, #8
   381c6:	e7e6      	b.n	38196 <remote_sec_level_reachable+0x1a>
			return BT_SMP_ERR_AUTH_REQUIREMENTS;
   381c8:	2003      	movs	r0, #3
   381ca:	e7e4      	b.n	38196 <remote_sec_level_reachable+0x1a>
			return BT_SMP_ERR_AUTH_REQUIREMENTS;
   381cc:	2003      	movs	r0, #3
   381ce:	e7e2      	b.n	38196 <remote_sec_level_reachable+0x1a>

000381d0 <smp_reset>:
{
   381d0:	b538      	push	{r3, r4, r5, lr}
   381d2:	4604      	mov	r4, r0
	atomic_set(smp->flags, 0);
   381d4:	1d03      	adds	r3, r0, #4
	return __atomic_exchange_n(target, value, __ATOMIC_SEQ_CST);
   381d6:	2500      	movs	r5, #0
   381d8:	f3bf 8f5b 	dmb	ish
   381dc:	e853 2f00 	ldrex	r2, [r3]
   381e0:	e843 5100 	strex	r1, r5, [r3]
   381e4:	2900      	cmp	r1, #0
   381e6:	d1f9      	bne.n	381dc <smp_reset+0xc>
   381e8:	f3bf 8f5b 	dmb	ish
	(void)k_work_cancel_delayable(&smp->work);
   381ec:	f504 70f0 	add.w	r0, r4, #480	; 0x1e0
   381f0:	f7f8 fbc0 	bl	30974 <k_work_cancel_delayable>
	smp->method = JUST_WORKS;
   381f4:	7225      	strb	r5, [r4, #8]
   381f6:	f3bf 8f5b 	dmb	ish
   381fa:	e854 3f00 	ldrex	r3, [r4]
   381fe:	e844 5200 	strex	r2, r5, [r4]
   38202:	2a00      	cmp	r2, #0
   38204:	d1f9      	bne.n	381fa <smp_reset+0x2a>
   38206:	f3bf 8f5b 	dmb	ish
	return __atomic_fetch_or(target, value, __ATOMIC_SEQ_CST);
   3820a:	f3bf 8f5b 	dmb	ish
   3820e:	e854 3f00 	ldrex	r3, [r4]
   38212:	f043 0302 	orr.w	r3, r3, #2
   38216:	e844 3200 	strex	r2, r3, [r4]
   3821a:	2a00      	cmp	r2, #0
   3821c:	d1f7      	bne.n	3820e <smp_reset+0x3e>
   3821e:	f3bf 8f5b 	dmb	ish
}
   38222:	bd38      	pop	{r3, r4, r5, pc}

00038224 <smp_c1>:
{
   38224:	e92d 43f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, lr}
   38228:	b089      	sub	sp, #36	; 0x24
   3822a:	4605      	mov	r5, r0
   3822c:	460e      	mov	r6, r1
   3822e:	4611      	mov	r1, r2
   38230:	461f      	mov	r7, r3
   38232:	f8dd 8040 	ldr.w	r8, [sp, #64]	; 0x40
   38236:	f8dd 9044 	ldr.w	r9, [sp, #68]	; 0x44
   3823a:	9c12      	ldr	r4, [sp, #72]	; 0x48
	p1[0] = ia->type;
   3823c:	f898 3000 	ldrb.w	r3, [r8]
   38240:	f88d 3010 	strb.w	r3, [sp, #16]
	p1[1] = ra->type;
   38244:	f899 3000 	ldrb.w	r3, [r9]
   38248:	f88d 3011 	strb.w	r3, [sp, #17]
	memcpy(p1 + 2, preq, 7);
   3824c:	2207      	movs	r2, #7
   3824e:	f10d 0012 	add.w	r0, sp, #18
   38252:	f7fd fc53 	bl	35afc <memcpy>
	memcpy(p1 + 9, pres, 7);
   38256:	2207      	movs	r2, #7
   38258:	4639      	mov	r1, r7
   3825a:	f10d 0019 	add.w	r0, sp, #25
   3825e:	f7fd fc4d 	bl	35afc <memcpy>
	xor_128(r, p1, enc_data);
   38262:	4622      	mov	r2, r4
   38264:	a904      	add	r1, sp, #16
   38266:	4630      	mov	r0, r6
   38268:	f7ff fecc 	bl	38004 <xor_128>
	err = bt_encrypt_le(k, enc_data, enc_data);
   3826c:	4622      	mov	r2, r4
   3826e:	4621      	mov	r1, r4
   38270:	4628      	mov	r0, r5
   38272:	f7f4 f931 	bl	2c4d8 <bt_encrypt_le>
	if (err) {
   38276:	b110      	cbz	r0, 3827e <smp_c1+0x5a>
}
   38278:	b009      	add	sp, #36	; 0x24
   3827a:	e8bd 83f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, pc}
	memcpy(p2, ra->a.val, 6);
   3827e:	2206      	movs	r2, #6
   38280:	f109 0101 	add.w	r1, r9, #1
   38284:	4668      	mov	r0, sp
   38286:	f7fd fc39 	bl	35afc <memcpy>
	memcpy(p2 + 6, ia->a.val, 6);
   3828a:	2206      	movs	r2, #6
   3828c:	f108 0101 	add.w	r1, r8, #1
   38290:	eb0d 0002 	add.w	r0, sp, r2
   38294:	f7fd fc32 	bl	35afc <memcpy>
	(void)memset(p2 + 12, 0, 4);
   38298:	2204      	movs	r2, #4
   3829a:	2100      	movs	r1, #0
   3829c:	a803      	add	r0, sp, #12
   3829e:	f7fd fc51 	bl	35b44 <memset>
	xor_128(enc_data, p2, enc_data);
   382a2:	4622      	mov	r2, r4
   382a4:	4669      	mov	r1, sp
   382a6:	4620      	mov	r0, r4
   382a8:	f7ff feac 	bl	38004 <xor_128>
	return bt_encrypt_le(k, enc_data, enc_data);
   382ac:	4622      	mov	r2, r4
   382ae:	4621      	mov	r1, r4
   382b0:	4628      	mov	r0, r5
   382b2:	f7f4 f911 	bl	2c4d8 <bt_encrypt_le>
   382b6:	e7df      	b.n	38278 <smp_c1+0x54>

000382b8 <smp_s1>:
{
   382b8:	b570      	push	{r4, r5, r6, lr}
   382ba:	4605      	mov	r5, r0
   382bc:	460e      	mov	r6, r1
   382be:	4611      	mov	r1, r2
   382c0:	461c      	mov	r4, r3
	memcpy(out, r2, 8);
   382c2:	2208      	movs	r2, #8
   382c4:	4618      	mov	r0, r3
   382c6:	f7fd fc19 	bl	35afc <memcpy>
	memcpy(out + 8, r1, 8);
   382ca:	2208      	movs	r2, #8
   382cc:	4631      	mov	r1, r6
   382ce:	18a0      	adds	r0, r4, r2
   382d0:	f7fd fc14 	bl	35afc <memcpy>
	return bt_encrypt_le(k, out, out);
   382d4:	4622      	mov	r2, r4
   382d6:	4621      	mov	r1, r4
   382d8:	4628      	mov	r0, r5
   382da:	f7f4 f8fd 	bl	2c4d8 <bt_encrypt_le>
}
   382de:	bd70      	pop	{r4, r5, r6, pc}

000382e0 <smp_create_pdu>:
{
   382e0:	b570      	push	{r4, r5, r6, lr}
   382e2:	460d      	mov	r5, r1
	if (atomic_test_bit(smp->flags, SMP_FLAG_TIMEOUT)) {
   382e4:	1d06      	adds	r6, r0, #4
	return __atomic_load_n(target, __ATOMIC_SEQ_CST);
   382e6:	f3bf 8f5b 	dmb	ish
   382ea:	6843      	ldr	r3, [r0, #4]
   382ec:	f3bf 8f5b 	dmb	ish
   382f0:	f013 0f10 	tst.w	r3, #16
   382f4:	d00e      	beq.n	38314 <smp_create_pdu+0x34>
		timeout = K_NO_WAIT;
   382f6:	2200      	movs	r2, #0
   382f8:	2300      	movs	r3, #0
	buf = bt_l2cap_create_pdu_timeout(NULL, 0, timeout);
   382fa:	2100      	movs	r1, #0
   382fc:	4608      	mov	r0, r1
   382fe:	f7fe fc2c 	bl	36b5a <bt_l2cap_create_pdu_timeout>
	if (!buf) {
   38302:	4604      	mov	r4, r0
   38304:	b150      	cbz	r0, 3831c <smp_create_pdu+0x3c>
	return net_buf_simple_add(&buf->b, len);
   38306:	2101      	movs	r1, #1
   38308:	3008      	adds	r0, #8
   3830a:	f7f1 fb41 	bl	29990 <net_buf_simple_add>
	hdr->code = op;
   3830e:	7005      	strb	r5, [r0, #0]
}
   38310:	4620      	mov	r0, r4
   38312:	bd70      	pop	{r4, r5, r6, pc}
		timeout = SMP_TIMEOUT;
   38314:	f44f 2270 	mov.w	r2, #983040	; 0xf0000
   38318:	2300      	movs	r3, #0
   3831a:	e7ee      	b.n	382fa <smp_create_pdu+0x1a>
	return __atomic_fetch_or(target, value, __ATOMIC_SEQ_CST);
   3831c:	f3bf 8f5b 	dmb	ish
   38320:	e856 3f00 	ldrex	r3, [r6]
   38324:	f043 0310 	orr.w	r3, r3, #16
   38328:	e846 3200 	strex	r2, r3, [r6]
   3832c:	2a00      	cmp	r2, #0
   3832e:	d1f7      	bne.n	38320 <smp_create_pdu+0x40>
   38330:	f3bf 8f5b 	dmb	ish
		return NULL;
   38334:	e7ec      	b.n	38310 <smp_create_pdu+0x30>

00038336 <smp_send>:
{
   38336:	b530      	push	{r4, r5, lr}
   38338:	b083      	sub	sp, #12
   3833a:	4604      	mov	r4, r0
   3833c:	460d      	mov	r5, r1
   3833e:	4613      	mov	r3, r2
	if (bt_l2cap_send_cb(smp->chan.chan.conn, BT_L2CAP_CID_SMP, buf, cb, NULL)) {
   38340:	2200      	movs	r2, #0
   38342:	9200      	str	r2, [sp, #0]
   38344:	460a      	mov	r2, r1
   38346:	2106      	movs	r1, #6
   38348:	f8d0 00f0 	ldr.w	r0, [r0, #240]	; 0xf0
   3834c:	f7fe fc0a 	bl	36b64 <bt_l2cap_send_cb>
   38350:	b940      	cbnz	r0, 38364 <smp_send+0x2e>
	k_work_reschedule(&smp->work, SMP_TIMEOUT);
   38352:	f44f 2270 	mov.w	r2, #983040	; 0xf0000
   38356:	2300      	movs	r3, #0
   38358:	f504 70f0 	add.w	r0, r4, #480	; 0x1e0
   3835c:	f7f8 fb02 	bl	30964 <k_work_reschedule>
}
   38360:	b003      	add	sp, #12
   38362:	bd30      	pop	{r4, r5, pc}
		net_buf_unref(buf);
   38364:	4628      	mov	r0, r5
   38366:	f7f1 f9fb 	bl	29760 <net_buf_unref>
		return;
   3836a:	e7f9      	b.n	38360 <smp_send+0x2a>

0003836c <legacy_send_pairing_confirm>:
{
   3836c:	b570      	push	{r4, r5, r6, lr}
   3836e:	b084      	sub	sp, #16
   38370:	4604      	mov	r4, r0
	struct bt_conn *conn = smp->chan.chan.conn;
   38372:	f8d0 50f0 	ldr.w	r5, [r0, #240]	; 0xf0
	buf = smp_create_pdu(smp, BT_SMP_CMD_PAIRING_CONFIRM, sizeof(*req));
   38376:	2210      	movs	r2, #16
   38378:	2103      	movs	r1, #3
   3837a:	f7ff ffb1 	bl	382e0 <smp_create_pdu>
	if (!buf) {
   3837e:	b380      	cbz	r0, 383e2 <legacy_send_pairing_confirm+0x76>
   38380:	4606      	mov	r6, r0
   38382:	2110      	movs	r1, #16
   38384:	3008      	adds	r0, #8
   38386:	f7f1 fb03 	bl	29990 <net_buf_simple_add>
		   &conn->le.init_addr, &conn->le.resp_addr, req->val)) {
   3838a:	f105 0397 	add.w	r3, r5, #151	; 0x97
   3838e:	359e      	adds	r5, #158	; 0x9e
	if (smp_c1(smp->tk, smp->prnd, smp->preq, smp->prsp,
   38390:	9002      	str	r0, [sp, #8]
   38392:	9501      	str	r5, [sp, #4]
   38394:	9300      	str	r3, [sp, #0]
   38396:	f104 0310 	add.w	r3, r4, #16
   3839a:	f104 0209 	add.w	r2, r4, #9
   3839e:	f104 0127 	add.w	r1, r4, #39	; 0x27
   383a2:	f104 0047 	add.w	r0, r4, #71	; 0x47
   383a6:	f7ff ff3d 	bl	38224 <smp_c1>
   383aa:	b9a8      	cbnz	r0, 383d8 <legacy_send_pairing_confirm+0x6c>
	smp_send(smp, buf, NULL, NULL);
   383ac:	2300      	movs	r3, #0
   383ae:	461a      	mov	r2, r3
   383b0:	4631      	mov	r1, r6
   383b2:	4620      	mov	r0, r4
   383b4:	f7ff ffbf 	bl	38336 <smp_send>
	atomic_clear_bit(smp->flags, SMP_FLAG_CFM_DELAYED);
   383b8:	3404      	adds	r4, #4
	return __atomic_fetch_and(target, value, __ATOMIC_SEQ_CST);
   383ba:	f3bf 8f5b 	dmb	ish
   383be:	e854 3f00 	ldrex	r3, [r4]
   383c2:	f023 0301 	bic.w	r3, r3, #1
   383c6:	e844 3200 	strex	r2, r3, [r4]
   383ca:	2a00      	cmp	r2, #0
   383cc:	d1f7      	bne.n	383be <legacy_send_pairing_confirm+0x52>
   383ce:	f3bf 8f5b 	dmb	ish
	return 0;
   383d2:	2000      	movs	r0, #0
}
   383d4:	b004      	add	sp, #16
   383d6:	bd70      	pop	{r4, r5, r6, pc}
		net_buf_unref(buf);
   383d8:	4630      	mov	r0, r6
   383da:	f7f1 f9c1 	bl	29760 <net_buf_unref>
		return BT_SMP_ERR_UNSPECIFIED;
   383de:	2008      	movs	r0, #8
   383e0:	e7f8      	b.n	383d4 <legacy_send_pairing_confirm+0x68>
		return BT_SMP_ERR_UNSPECIFIED;
   383e2:	2008      	movs	r0, #8
   383e4:	e7f6      	b.n	383d4 <legacy_send_pairing_confirm+0x68>

000383e6 <legacy_pairing_confirm>:
{
   383e6:	b508      	push	{r3, lr}
	return __atomic_load_n(target, __ATOMIC_SEQ_CST);
   383e8:	f3bf 8f5b 	dmb	ish
   383ec:	6842      	ldr	r2, [r0, #4]
   383ee:	f3bf 8f5b 	dmb	ish
		if (!atomic_test_bit(smp->flags, SMP_FLAG_USER)) {
   383f2:	f412 6f80 	tst.w	r2, #1024	; 0x400
   383f6:	d00e      	beq.n	38416 <legacy_pairing_confirm+0x30>
   383f8:	1d03      	adds	r3, r0, #4
	return __atomic_fetch_or(target, value, __ATOMIC_SEQ_CST);
   383fa:	f3bf 8f5b 	dmb	ish
   383fe:	e853 2f00 	ldrex	r2, [r3]
   38402:	f042 0201 	orr.w	r2, r2, #1
   38406:	e843 2100 	strex	r1, r2, [r3]
   3840a:	2900      	cmp	r1, #0
   3840c:	d1f7      	bne.n	383fe <legacy_pairing_confirm+0x18>
   3840e:	f3bf 8f5b 	dmb	ish
	return 0;
   38412:	2000      	movs	r0, #0
}
   38414:	bd08      	pop	{r3, pc}
   38416:	f3bf 8f5b 	dmb	ish
   3841a:	e850 3f00 	ldrex	r3, [r0]
   3841e:	f043 0310 	orr.w	r3, r3, #16
   38422:	e840 3200 	strex	r2, r3, [r0]
   38426:	2a00      	cmp	r2, #0
   38428:	d1f7      	bne.n	3841a <legacy_pairing_confirm+0x34>
   3842a:	f3bf 8f5b 	dmb	ish
			return legacy_send_pairing_confirm(smp);
   3842e:	f7ff ff9d 	bl	3836c <legacy_send_pairing_confirm>
   38432:	e7ef      	b.n	38414 <legacy_pairing_confirm+0x2e>

00038434 <sc_smp_send_dhkey_check>:
{
   38434:	b570      	push	{r4, r5, r6, lr}
   38436:	4604      	mov	r4, r0
   38438:	460d      	mov	r5, r1
	buf = smp_create_pdu(smp, BT_SMP_DHKEY_CHECK, sizeof(*req));
   3843a:	2210      	movs	r2, #16
   3843c:	210d      	movs	r1, #13
   3843e:	f7ff ff4f 	bl	382e0 <smp_create_pdu>
	if (!buf) {
   38442:	b180      	cbz	r0, 38466 <sc_smp_send_dhkey_check+0x32>
   38444:	4606      	mov	r6, r0
   38446:	2110      	movs	r1, #16
   38448:	3008      	adds	r0, #8
   3844a:	f7f1 faa1 	bl	29990 <net_buf_simple_add>
	memcpy(req->e, e, sizeof(req->e));
   3844e:	2210      	movs	r2, #16
   38450:	4629      	mov	r1, r5
   38452:	f7fd fb53 	bl	35afc <memcpy>
	smp_send(smp, buf, NULL, NULL);
   38456:	2300      	movs	r3, #0
   38458:	461a      	mov	r2, r3
   3845a:	4631      	mov	r1, r6
   3845c:	4620      	mov	r0, r4
   3845e:	f7ff ff6a 	bl	38336 <smp_send>
	return 0;
   38462:	2000      	movs	r0, #0
}
   38464:	bd70      	pop	{r4, r5, r6, pc}
		return BT_SMP_ERR_UNSPECIFIED;
   38466:	2008      	movs	r0, #8
   38468:	e7fc      	b.n	38464 <sc_smp_send_dhkey_check+0x30>

0003846a <smp_send_pairing_random>:
{
   3846a:	b538      	push	{r3, r4, r5, lr}
   3846c:	4604      	mov	r4, r0
	rsp_buf = smp_create_pdu(smp, BT_SMP_CMD_PAIRING_RANDOM, sizeof(*req));
   3846e:	2210      	movs	r2, #16
   38470:	2104      	movs	r1, #4
   38472:	f7ff ff35 	bl	382e0 <smp_create_pdu>
	if (!rsp_buf) {
   38476:	b188      	cbz	r0, 3849c <smp_send_pairing_random+0x32>
   38478:	4605      	mov	r5, r0
   3847a:	2110      	movs	r1, #16
   3847c:	3008      	adds	r0, #8
   3847e:	f7f1 fa87 	bl	29990 <net_buf_simple_add>
	memcpy(req->val, smp->prnd, sizeof(req->val));
   38482:	2210      	movs	r2, #16
   38484:	f104 0127 	add.w	r1, r4, #39	; 0x27
   38488:	f7fd fb38 	bl	35afc <memcpy>
	smp_send(smp, rsp_buf, NULL, NULL);
   3848c:	2300      	movs	r3, #0
   3848e:	461a      	mov	r2, r3
   38490:	4629      	mov	r1, r5
   38492:	4620      	mov	r0, r4
   38494:	f7ff ff4f 	bl	38336 <smp_send>
	return 0;
   38498:	2000      	movs	r0, #0
}
   3849a:	bd38      	pop	{r3, r4, r5, pc}
		return BT_SMP_ERR_UNSPECIFIED;
   3849c:	2008      	movs	r0, #8
   3849e:	e7fc      	b.n	3849a <smp_send_pairing_random+0x30>

000384a0 <send_pairing_rsp>:
{
   384a0:	b538      	push	{r3, r4, r5, lr}
   384a2:	4604      	mov	r4, r0
	rsp_buf = smp_create_pdu(smp, BT_SMP_CMD_PAIRING_RSP, sizeof(*rsp));
   384a4:	2206      	movs	r2, #6
   384a6:	2102      	movs	r1, #2
   384a8:	f7ff ff1a 	bl	382e0 <smp_create_pdu>
	if (!rsp_buf) {
   384ac:	b188      	cbz	r0, 384d2 <send_pairing_rsp+0x32>
   384ae:	4605      	mov	r5, r0
   384b0:	2106      	movs	r1, #6
   384b2:	3008      	adds	r0, #8
   384b4:	f7f1 fa6c 	bl	29990 <net_buf_simple_add>
	memcpy(rsp, smp->prsp + 1, sizeof(*rsp));
   384b8:	2206      	movs	r2, #6
   384ba:	f104 0111 	add.w	r1, r4, #17
   384be:	f7fd fb1d 	bl	35afc <memcpy>
	smp_send(smp, rsp_buf, NULL, NULL);
   384c2:	2300      	movs	r3, #0
   384c4:	461a      	mov	r2, r3
   384c6:	4629      	mov	r1, r5
   384c8:	4620      	mov	r0, r4
   384ca:	f7ff ff34 	bl	38336 <smp_send>
	return 0;
   384ce:	2000      	movs	r0, #0
}
   384d0:	bd38      	pop	{r3, r4, r5, pc}
		return BT_SMP_ERR_UNSPECIFIED;
   384d2:	2008      	movs	r0, #8
   384d4:	e7fc      	b.n	384d0 <send_pairing_rsp+0x30>

000384d6 <bt_smp_aes_cmac>:
{
   384d6:	b570      	push	{r4, r5, r6, lr}
   384d8:	b0c2      	sub	sp, #264	; 0x108
   384da:	460c      	mov	r4, r1
   384dc:	4615      	mov	r5, r2
   384de:	461e      	mov	r6, r3
	if (tc_cmac_setup(&state, key, &sched) == TC_CRYPTO_FAIL) {
   384e0:	aa16      	add	r2, sp, #88	; 0x58
   384e2:	4601      	mov	r1, r0
   384e4:	4668      	mov	r0, sp
   384e6:	f7fd f8d3 	bl	35690 <tc_cmac_setup>
   384ea:	b168      	cbz	r0, 38508 <bt_smp_aes_cmac+0x32>
	if (tc_cmac_update(&state, in, len) == TC_CRYPTO_FAIL) {
   384ec:	462a      	mov	r2, r5
   384ee:	4621      	mov	r1, r4
   384f0:	4668      	mov	r0, sp
   384f2:	f7fd f8fa 	bl	356ea <tc_cmac_update>
   384f6:	b150      	cbz	r0, 3850e <bt_smp_aes_cmac+0x38>
	if (tc_cmac_final(out, &state) == TC_CRYPTO_FAIL) {
   384f8:	4669      	mov	r1, sp
   384fa:	4630      	mov	r0, r6
   384fc:	f7fd f963 	bl	357c6 <tc_cmac_final>
   38500:	b140      	cbz	r0, 38514 <bt_smp_aes_cmac+0x3e>
	return 0;
   38502:	2000      	movs	r0, #0
}
   38504:	b042      	add	sp, #264	; 0x108
   38506:	bd70      	pop	{r4, r5, r6, pc}
		return -EIO;
   38508:	f06f 0004 	mvn.w	r0, #4
   3850c:	e7fa      	b.n	38504 <bt_smp_aes_cmac+0x2e>
		return -EIO;
   3850e:	f06f 0004 	mvn.w	r0, #4
   38512:	e7f7      	b.n	38504 <bt_smp_aes_cmac+0x2e>
		return -EIO;
   38514:	f06f 0004 	mvn.w	r0, #4
   38518:	e7f4      	b.n	38504 <bt_smp_aes_cmac+0x2e>

0003851a <update_debug_keys_check>:
{
   3851a:	b510      	push	{r4, lr}
	struct bt_conn *conn = smp->chan.chan.conn;
   3851c:	f8d0 40f0 	ldr.w	r4, [r0, #240]	; 0xf0
	if (!conn->le.keys) {
   38520:	f8d4 30bc 	ldr.w	r3, [r4, #188]	; 0xbc
   38524:	b163      	cbz	r3, 38540 <update_debug_keys_check+0x26>
	if (!conn->le.keys ||
   38526:	f8d4 30bc 	ldr.w	r3, [r4, #188]	; 0xbc
   3852a:	b18b      	cbz	r3, 38550 <update_debug_keys_check+0x36>
	    !(conn->le.keys->keys & (BT_KEYS_LTK_P256 | BT_KEYS_LTK))) {
   3852c:	89da      	ldrh	r2, [r3, #14]
	if (!conn->le.keys ||
   3852e:	f012 0f24 	tst.w	r2, #36	; 0x24
   38532:	d00f      	beq.n	38554 <update_debug_keys_check+0x3a>
	if (conn->le.keys->flags & BT_KEYS_DEBUG) {
   38534:	7b5b      	ldrb	r3, [r3, #13]
   38536:	f013 0f02 	tst.w	r3, #2
   3853a:	d10d      	bne.n	38558 <update_debug_keys_check+0x3e>
	return false;
   3853c:	2000      	movs	r0, #0
}
   3853e:	bd10      	pop	{r4, pc}
		conn->le.keys = bt_keys_get_addr(conn->id, &conn->le.dst);
   38540:	f104 0190 	add.w	r1, r4, #144	; 0x90
   38544:	7a20      	ldrb	r0, [r4, #8]
   38546:	f7f0 fcdb 	bl	28f00 <bt_keys_get_addr>
   3854a:	f8c4 00bc 	str.w	r0, [r4, #188]	; 0xbc
   3854e:	e7ea      	b.n	38526 <update_debug_keys_check+0xc>
		return true;
   38550:	2001      	movs	r0, #1
   38552:	e7f4      	b.n	3853e <update_debug_keys_check+0x24>
   38554:	2001      	movs	r0, #1
   38556:	e7f2      	b.n	3853e <update_debug_keys_check+0x24>
		return true;
   38558:	2001      	movs	r0, #1
   3855a:	e7f0      	b.n	3853e <update_debug_keys_check+0x24>

0003855c <smp_send_security_req>:
{
   3855c:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   38560:	b082      	sub	sp, #8
   38562:	4605      	mov	r5, r0
	smp = smp_chan_get(conn);
   38564:	f7ee fd8e 	bl	27084 <smp_chan_get>
	if (!smp) {
   38568:	2800      	cmp	r0, #0
   3856a:	d077      	beq.n	3865c <smp_send_security_req+0x100>
   3856c:	4604      	mov	r4, r0
	if (atomic_test_bit(smp->flags, SMP_FLAG_TIMEOUT)) {
   3856e:	f100 0804 	add.w	r8, r0, #4
	return __atomic_load_n(target, __ATOMIC_SEQ_CST);
   38572:	f3bf 8f5b 	dmb	ish
   38576:	6843      	ldr	r3, [r0, #4]
   38578:	f3bf 8f5b 	dmb	ish
   3857c:	f013 0f10 	tst.w	r3, #16
   38580:	d16f      	bne.n	38662 <smp_send_security_req+0x106>
   38582:	f3bf 8f5b 	dmb	ish
   38586:	6843      	ldr	r3, [r0, #4]
   38588:	f3bf 8f5b 	dmb	ish
	if (atomic_test_bit(smp->flags, SMP_FLAG_PAIRING)) {
   3858c:	f013 0f08 	tst.w	r3, #8
   38590:	d16a      	bne.n	38668 <smp_send_security_req+0x10c>
   38592:	f3bf 8f5b 	dmb	ish
   38596:	6843      	ldr	r3, [r0, #4]
   38598:	f3bf 8f5b 	dmb	ish
	if (atomic_test_bit(smp->flags, SMP_FLAG_ENC_PENDING)) {
   3859c:	f013 0f02 	tst.w	r3, #2
   385a0:	d165      	bne.n	3866e <smp_send_security_req+0x112>
	if (!(sec_level_reachable(conn) || smp_keys_check(conn))) {
   385a2:	4628      	mov	r0, r5
   385a4:	f7ee fd32 	bl	2700c <sec_level_reachable>
   385a8:	2800      	cmp	r0, #0
   385aa:	d03f      	beq.n	3862c <smp_send_security_req+0xd0>
	if (!conn->le.keys) {
   385ac:	f8d5 30bc 	ldr.w	r3, [r5, #188]	; 0xbc
   385b0:	2b00      	cmp	r3, #0
   385b2:	d043      	beq.n	3863c <smp_send_security_req+0xe0>
	if (smp_init(smp) != 0) {
   385b4:	4620      	mov	r0, r4
   385b6:	f7ee fea1 	bl	272fc <smp_init>
   385ba:	2800      	cmp	r0, #0
   385bc:	d15a      	bne.n	38674 <smp_send_security_req+0x118>
	req_buf = smp_create_pdu(smp, BT_SMP_CMD_SECURITY_REQUEST,
   385be:	2201      	movs	r2, #1
   385c0:	210b      	movs	r1, #11
   385c2:	4620      	mov	r0, r4
   385c4:	f7ff fe8c 	bl	382e0 <smp_create_pdu>
	if (!req_buf) {
   385c8:	4607      	mov	r7, r0
   385ca:	2800      	cmp	r0, #0
   385cc:	d055      	beq.n	3867a <smp_send_security_req+0x11e>
   385ce:	2101      	movs	r1, #1
   385d0:	3008      	adds	r0, #8
   385d2:	f7f1 f9dd 	bl	29990 <net_buf_simple_add>
   385d6:	4606      	mov	r6, r0
	req->auth_req = get_auth(conn, BT_SMP_AUTH_DEFAULT);
   385d8:	2109      	movs	r1, #9
   385da:	4628      	mov	r0, r5
   385dc:	f7ee fcf6 	bl	26fcc <get_auth>
   385e0:	7030      	strb	r0, [r6, #0]
   385e2:	2300      	movs	r3, #0
   385e4:	9300      	str	r3, [sp, #0]
   385e6:	463a      	mov	r2, r7
   385e8:	2106      	movs	r1, #6
   385ea:	4628      	mov	r0, r5
   385ec:	f7fe faba 	bl	36b64 <bt_l2cap_send_cb>
	if (err) {
   385f0:	4605      	mov	r5, r0
   385f2:	bb78      	cbnz	r0, 38654 <smp_send_security_req+0xf8>
	return __atomic_fetch_or(target, value, __ATOMIC_SEQ_CST);
   385f4:	f3bf 8f5b 	dmb	ish
   385f8:	e858 3f00 	ldrex	r3, [r8]
   385fc:	f443 4300 	orr.w	r3, r3, #32768	; 0x8000
   38600:	e848 3200 	strex	r2, r3, [r8]
   38604:	2a00      	cmp	r2, #0
   38606:	d1f7      	bne.n	385f8 <smp_send_security_req+0x9c>
   38608:	f3bf 8f5b 	dmb	ish
   3860c:	f3bf 8f5b 	dmb	ish
   38610:	e854 3f00 	ldrex	r3, [r4]
   38614:	f043 0302 	orr.w	r3, r3, #2
   38618:	e844 3200 	strex	r2, r3, [r4]
   3861c:	2a00      	cmp	r2, #0
   3861e:	d1f7      	bne.n	38610 <smp_send_security_req+0xb4>
   38620:	f3bf 8f5b 	dmb	ish
}
   38624:	4628      	mov	r0, r5
   38626:	b002      	add	sp, #8
   38628:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
	if (!(sec_level_reachable(conn) || smp_keys_check(conn))) {
   3862c:	4628      	mov	r0, r5
   3862e:	f7ff fd28 	bl	38082 <smp_keys_check>
   38632:	2800      	cmp	r0, #0
   38634:	d1ba      	bne.n	385ac <smp_send_security_req+0x50>
		return -EINVAL;
   38636:	f06f 0515 	mvn.w	r5, #21
   3863a:	e7f3      	b.n	38624 <smp_send_security_req+0xc8>
		conn->le.keys = bt_keys_get_addr(conn->id, &conn->le.dst);
   3863c:	f105 0190 	add.w	r1, r5, #144	; 0x90
   38640:	7a28      	ldrb	r0, [r5, #8]
   38642:	f7f0 fc5d 	bl	28f00 <bt_keys_get_addr>
   38646:	f8c5 00bc 	str.w	r0, [r5, #188]	; 0xbc
		if (!conn->le.keys) {
   3864a:	2800      	cmp	r0, #0
   3864c:	d1b2      	bne.n	385b4 <smp_send_security_req+0x58>
			return -ENOMEM;
   3864e:	f06f 050b 	mvn.w	r5, #11
   38652:	e7e7      	b.n	38624 <smp_send_security_req+0xc8>
		net_buf_unref(req_buf);
   38654:	4638      	mov	r0, r7
   38656:	f7f1 f883 	bl	29760 <net_buf_unref>
		return err;
   3865a:	e7e3      	b.n	38624 <smp_send_security_req+0xc8>
		return -ENOTCONN;
   3865c:	f06f 057f 	mvn.w	r5, #127	; 0x7f
   38660:	e7e0      	b.n	38624 <smp_send_security_req+0xc8>
		return -EIO;
   38662:	f06f 0504 	mvn.w	r5, #4
   38666:	e7dd      	b.n	38624 <smp_send_security_req+0xc8>
		return -EBUSY;
   38668:	f06f 050f 	mvn.w	r5, #15
   3866c:	e7da      	b.n	38624 <smp_send_security_req+0xc8>
		return -EBUSY;
   3866e:	f06f 050f 	mvn.w	r5, #15
   38672:	e7d7      	b.n	38624 <smp_send_security_req+0xc8>
		return -ENOBUFS;
   38674:	f06f 0568 	mvn.w	r5, #104	; 0x68
   38678:	e7d4      	b.n	38624 <smp_send_security_req+0xc8>
		return -ENOBUFS;
   3867a:	f06f 0568 	mvn.w	r5, #104	; 0x68
   3867e:	e7d1      	b.n	38624 <smp_send_security_req+0xc8>

00038680 <generate_dhkey>:
{
   38680:	b510      	push	{r4, lr}
   38682:	4604      	mov	r4, r0
	atomic_set_bit(smp->flags, SMP_FLAG_DHKEY_PENDING);
   38684:	1d03      	adds	r3, r0, #4
   38686:	f3bf 8f5b 	dmb	ish
   3868a:	e853 2f00 	ldrex	r2, [r3]
   3868e:	f042 0280 	orr.w	r2, r2, #128	; 0x80
   38692:	e843 2100 	strex	r1, r2, [r3]
   38696:	2900      	cmp	r1, #0
   38698:	d1f7      	bne.n	3868a <generate_dhkey+0xa>
   3869a:	f3bf 8f5b 	dmb	ish
	if (!smp_find(SMP_FLAG_DHKEY_GEN)) {
   3869e:	2008      	movs	r0, #8
   386a0:	f7ee fd2e 	bl	27100 <smp_find>
   386a4:	b108      	cbz	r0, 386aa <generate_dhkey+0x2a>
	return 0;
   386a6:	2000      	movs	r0, #0
}
   386a8:	bd10      	pop	{r4, pc}
		return smp_dhkey_generate(smp);
   386aa:	4620      	mov	r0, r4
   386ac:	f7ee fef4 	bl	27498 <smp_dhkey_generate>
   386b0:	e7fa      	b.n	386a8 <generate_dhkey+0x28>

000386b2 <smp_dhkey_check>:
{
   386b2:	b538      	push	{r3, r4, r5, lr}
	struct bt_smp_dhkey_check *req = (void *)buf->data;
   386b4:	6889      	ldr	r1, [r1, #8]
	if (smp->chan.chan.conn->role == BT_HCI_ROLE_PERIPHERAL) {
   386b6:	f8d0 30f0 	ldr.w	r3, [r0, #240]	; 0xf0
   386ba:	78db      	ldrb	r3, [r3, #3]
   386bc:	2b01      	cmp	r3, #1
   386be:	d001      	beq.n	386c4 <smp_dhkey_check+0x12>
	return 0;
   386c0:	2000      	movs	r0, #0
}
   386c2:	bd38      	pop	{r3, r4, r5, pc}
   386c4:	4604      	mov	r4, r0
		atomic_clear_bit(smp->flags, SMP_FLAG_DHCHECK_WAIT);
   386c6:	1d05      	adds	r5, r0, #4
	return __atomic_fetch_and(target, value, __ATOMIC_SEQ_CST);
   386c8:	f3bf 8f5b 	dmb	ish
   386cc:	e855 3f00 	ldrex	r3, [r5]
   386d0:	f423 3380 	bic.w	r3, r3, #65536	; 0x10000
   386d4:	e845 3200 	strex	r2, r3, [r5]
   386d8:	2a00      	cmp	r2, #0
   386da:	d1f7      	bne.n	386cc <smp_dhkey_check+0x1a>
   386dc:	f3bf 8f5b 	dmb	ish
		memcpy(smp->e, req->e, sizeof(smp->e));
   386e0:	2210      	movs	r2, #16
   386e2:	f104 00b7 	add.w	r0, r4, #183	; 0xb7
   386e6:	f7fd fa09 	bl	35afc <memcpy>
	return __atomic_load_n(target, __ATOMIC_SEQ_CST);
   386ea:	f3bf 8f5b 	dmb	ish
   386ee:	6863      	ldr	r3, [r4, #4]
   386f0:	f3bf 8f5b 	dmb	ish
		if (atomic_test_bit(smp->flags, SMP_FLAG_DHKEY_PENDING)) {
   386f4:	f013 0f80 	tst.w	r3, #128	; 0x80
   386f8:	d115      	bne.n	38726 <smp_dhkey_check+0x74>
   386fa:	f3bf 8f5b 	dmb	ish
   386fe:	6863      	ldr	r3, [r4, #4]
   38700:	f3bf 8f5b 	dmb	ish
		if (atomic_test_bit(smp->flags, SMP_FLAG_USER)) {
   38704:	f413 6f80 	tst.w	r3, #1024	; 0x400
   38708:	d01b      	beq.n	38742 <smp_dhkey_check+0x90>
	return __atomic_fetch_or(target, value, __ATOMIC_SEQ_CST);
   3870a:	f3bf 8f5b 	dmb	ish
   3870e:	e855 3f00 	ldrex	r3, [r5]
   38712:	f443 7300 	orr.w	r3, r3, #512	; 0x200
   38716:	e845 3200 	strex	r2, r3, [r5]
   3871a:	2a00      	cmp	r2, #0
   3871c:	d1f7      	bne.n	3870e <smp_dhkey_check+0x5c>
   3871e:	f3bf 8f5b 	dmb	ish
			return 0;
   38722:	2000      	movs	r0, #0
   38724:	e7cd      	b.n	386c2 <smp_dhkey_check+0x10>
   38726:	f3bf 8f5b 	dmb	ish
   3872a:	e855 3f00 	ldrex	r3, [r5]
   3872e:	f443 7300 	orr.w	r3, r3, #512	; 0x200
   38732:	e845 3200 	strex	r2, r3, [r5]
   38736:	2a00      	cmp	r2, #0
   38738:	d1f7      	bne.n	3872a <smp_dhkey_check+0x78>
   3873a:	f3bf 8f5b 	dmb	ish
			return 0;
   3873e:	2000      	movs	r0, #0
   38740:	e7bf      	b.n	386c2 <smp_dhkey_check+0x10>
		return compute_and_check_and_send_periph_dhcheck(smp);
   38742:	4620      	mov	r0, r4
   38744:	f7ef ffd8 	bl	286f8 <compute_and_check_and_send_periph_dhcheck>
   38748:	e7bb      	b.n	386c2 <smp_dhkey_check+0x10>

0003874a <smp_dhkey_ready>:
	if (!dhkey) {
   3874a:	2900      	cmp	r1, #0
   3874c:	d04f      	beq.n	387ee <smp_dhkey_ready+0xa4>
{
   3874e:	b538      	push	{r3, r4, r5, lr}
   38750:	4604      	mov	r4, r0
   38752:	460b      	mov	r3, r1
	atomic_clear_bit(smp->flags, SMP_FLAG_DHKEY_PENDING);
   38754:	1d05      	adds	r5, r0, #4
	return __atomic_fetch_and(target, value, __ATOMIC_SEQ_CST);
   38756:	f3bf 8f5b 	dmb	ish
   3875a:	e855 2f00 	ldrex	r2, [r5]
   3875e:	f022 0280 	bic.w	r2, r2, #128	; 0x80
   38762:	e845 2100 	strex	r1, r2, [r5]
   38766:	2900      	cmp	r1, #0
   38768:	d1f7      	bne.n	3875a <smp_dhkey_ready+0x10>
   3876a:	f3bf 8f5b 	dmb	ish
	memcpy(smp->dhkey, dhkey, BT_DH_KEY_LEN);
   3876e:	2220      	movs	r2, #32
   38770:	4619      	mov	r1, r3
   38772:	f104 0097 	add.w	r0, r4, #151	; 0x97
   38776:	f7fd f9c1 	bl	35afc <memcpy>
	return __atomic_load_n(target, __ATOMIC_SEQ_CST);
   3877a:	f3bf 8f5b 	dmb	ish
   3877e:	6863      	ldr	r3, [r4, #4]
   38780:	f3bf 8f5b 	dmb	ish
	if (atomic_test_bit(smp->flags, SMP_FLAG_USER)) {
   38784:	f413 6f80 	tst.w	r3, #1024	; 0x400
   38788:	d111      	bne.n	387ae <smp_dhkey_ready+0x64>
   3878a:	f3bf 8f5b 	dmb	ish
   3878e:	6863      	ldr	r3, [r4, #4]
   38790:	f3bf 8f5b 	dmb	ish
	if (atomic_test_bit(smp->flags, SMP_FLAG_DHCHECK_WAIT)) {
   38794:	f413 3f80 	tst.w	r3, #65536	; 0x10000
   38798:	d117      	bne.n	387ca <smp_dhkey_ready+0x80>
   3879a:	f3bf 8f5b 	dmb	ish
   3879e:	6863      	ldr	r3, [r4, #4]
   387a0:	f3bf 8f5b 	dmb	ish
	if (atomic_test_bit(smp->flags, SMP_FLAG_DHKEY_SEND)) {
   387a4:	f413 7f00 	tst.w	r3, #512	; 0x200
   387a8:	d11d      	bne.n	387e6 <smp_dhkey_ready+0x9c>
	return 0;
   387aa:	2000      	movs	r0, #0
   387ac:	e00c      	b.n	387c8 <smp_dhkey_ready+0x7e>
	return __atomic_fetch_or(target, value, __ATOMIC_SEQ_CST);
   387ae:	f3bf 8f5b 	dmb	ish
   387b2:	e855 3f00 	ldrex	r3, [r5]
   387b6:	f443 7300 	orr.w	r3, r3, #512	; 0x200
   387ba:	e845 3200 	strex	r2, r3, [r5]
   387be:	2a00      	cmp	r2, #0
   387c0:	d1f7      	bne.n	387b2 <smp_dhkey_ready+0x68>
   387c2:	f3bf 8f5b 	dmb	ish
		return 0;
   387c6:	2000      	movs	r0, #0
}
   387c8:	bd38      	pop	{r3, r4, r5, pc}
   387ca:	f3bf 8f5b 	dmb	ish
   387ce:	e855 3f00 	ldrex	r3, [r5]
   387d2:	f443 7300 	orr.w	r3, r3, #512	; 0x200
   387d6:	e845 3200 	strex	r2, r3, [r5]
   387da:	2a00      	cmp	r2, #0
   387dc:	d1f7      	bne.n	387ce <smp_dhkey_ready+0x84>
   387de:	f3bf 8f5b 	dmb	ish
		return 0;
   387e2:	2000      	movs	r0, #0
   387e4:	e7f0      	b.n	387c8 <smp_dhkey_ready+0x7e>
		return  compute_and_check_and_send_periph_dhcheck(smp);
   387e6:	4620      	mov	r0, r4
   387e8:	f7ef ff86 	bl	286f8 <compute_and_check_and_send_periph_dhcheck>
   387ec:	e7ec      	b.n	387c8 <smp_dhkey_ready+0x7e>
		return BT_SMP_ERR_DHKEY_CHECK_FAILED;
   387ee:	200b      	movs	r0, #11
}
   387f0:	4770      	bx	lr

000387f2 <bt_smp_request_ltk>:
{
   387f2:	b570      	push	{r4, r5, r6, lr}
   387f4:	b082      	sub	sp, #8
   387f6:	4604      	mov	r4, r0
   387f8:	e9cd 2300 	strd	r2, r3, [sp]
	smp = smp_chan_get(conn);
   387fc:	f7ee fc42 	bl	27084 <smp_chan_get>
	if (!smp) {
   38800:	2800      	cmp	r0, #0
   38802:	f000 80cc 	beq.w	3899e <bt_smp_request_ltk+0x1ac>
   38806:	4605      	mov	r5, r0
	if (ediv == 0U && rand == 0U &&
   38808:	f8bd 3018 	ldrh.w	r3, [sp, #24]
   3880c:	b91b      	cbnz	r3, 38816 <bt_smp_request_ltk+0x24>
   3880e:	e9dd 2300 	ldrd	r2, r3, [sp]
   38812:	4313      	orrs	r3, r2
   38814:	d027      	beq.n	38866 <bt_smp_request_ltk+0x74>
	if (!conn->le.keys) {
   38816:	f8d4 30bc 	ldr.w	r3, [r4, #188]	; 0xbc
   3881a:	2b00      	cmp	r3, #0
   3881c:	d055      	beq.n	388ca <bt_smp_request_ltk+0xd8>
	if (ediv == 0U && rand == 0U &&
   3881e:	f8bd 3018 	ldrh.w	r3, [sp, #24]
   38822:	b953      	cbnz	r3, 3883a <bt_smp_request_ltk+0x48>
   38824:	e9dd 2300 	ldrd	r2, r3, [sp]
   38828:	4313      	orrs	r3, r2
   3882a:	d106      	bne.n	3883a <bt_smp_request_ltk+0x48>
	    conn->le.keys && (conn->le.keys->keys & BT_KEYS_LTK_P256)) {
   3882c:	f8d4 10bc 	ldr.w	r1, [r4, #188]	; 0xbc
	if (ediv == 0U && rand == 0U &&
   38830:	b119      	cbz	r1, 3883a <bt_smp_request_ltk+0x48>
	    conn->le.keys && (conn->le.keys->keys & BT_KEYS_LTK_P256)) {
   38832:	89cb      	ldrh	r3, [r1, #14]
   38834:	f013 0f20 	tst.w	r3, #32
   38838:	d15a      	bne.n	388f0 <bt_smp_request_ltk+0xfe>
	if (conn->le.keys && (conn->le.keys->keys & BT_KEYS_PERIPH_LTK) &&
   3883a:	f8d4 00bc 	ldr.w	r0, [r4, #188]	; 0xbc
   3883e:	b118      	cbz	r0, 38848 <bt_smp_request_ltk+0x56>
   38840:	89c3      	ldrh	r3, [r0, #14]
   38842:	f013 0f01 	tst.w	r3, #1
   38846:	d172      	bne.n	3892e <bt_smp_request_ltk+0x13c>
	return __atomic_load_n(target, __ATOMIC_SEQ_CST);
   38848:	f3bf 8f5b 	dmb	ish
   3884c:	686b      	ldr	r3, [r5, #4]
   3884e:	f3bf 8f5b 	dmb	ish
	if (atomic_test_bit(smp->flags, SMP_FLAG_SEC_REQ)) {
   38852:	f413 4f00 	tst.w	r3, #32768	; 0x8000
   38856:	f040 809c 	bne.w	38992 <bt_smp_request_ltk+0x1a0>
	smp_reset(smp);
   3885a:	4628      	mov	r0, r5
   3885c:	f7ff fcb8 	bl	381d0 <smp_reset>
	return false;
   38860:	2000      	movs	r0, #0
}
   38862:	b002      	add	sp, #8
   38864:	bd70      	pop	{r4, r5, r6, pc}
	    atomic_test_bit(smp->flags, SMP_FLAG_PAIRING) &&
   38866:	1d06      	adds	r6, r0, #4
   38868:	f3bf 8f5b 	dmb	ish
   3886c:	6843      	ldr	r3, [r0, #4]
   3886e:	f3bf 8f5b 	dmb	ish
	if (ediv == 0U && rand == 0U &&
   38872:	f013 0f08 	tst.w	r3, #8
   38876:	d0ce      	beq.n	38816 <bt_smp_request_ltk+0x24>
   38878:	f3bf 8f5b 	dmb	ish
   3887c:	6843      	ldr	r3, [r0, #4]
   3887e:	f3bf 8f5b 	dmb	ish
	    atomic_test_bit(smp->flags, SMP_FLAG_PAIRING) &&
   38882:	f013 0f02 	tst.w	r3, #2
   38886:	d0c6      	beq.n	38816 <bt_smp_request_ltk+0x24>
		enc_size = get_encryption_key_size(smp);
   38888:	f7ff fba1 	bl	37fce <get_encryption_key_size>
   3888c:	4604      	mov	r4, r0
		memcpy(ltk, smp->tk, enc_size);
   3888e:	4602      	mov	r2, r0
   38890:	f105 0147 	add.w	r1, r5, #71	; 0x47
   38894:	9807      	ldr	r0, [sp, #28]
   38896:	f7fd f931 	bl	35afc <memcpy>
		if (enc_size < BT_SMP_MAX_ENC_KEY_SIZE) {
   3889a:	2c0f      	cmp	r4, #15
   3889c:	d90d      	bls.n	388ba <bt_smp_request_ltk+0xc8>
	return __atomic_fetch_or(target, value, __ATOMIC_SEQ_CST);
   3889e:	f3bf 8f5b 	dmb	ish
   388a2:	e856 3f00 	ldrex	r3, [r6]
   388a6:	f043 0302 	orr.w	r3, r3, #2
   388aa:	e846 3200 	strex	r2, r3, [r6]
   388ae:	2a00      	cmp	r2, #0
   388b0:	d1f7      	bne.n	388a2 <bt_smp_request_ltk+0xb0>
   388b2:	f3bf 8f5b 	dmb	ish
		return true;
   388b6:	2001      	movs	r0, #1
   388b8:	e7d3      	b.n	38862 <bt_smp_request_ltk+0x70>
			(void)memset(ltk + enc_size, 0,
   388ba:	f1c4 0210 	rsb	r2, r4, #16
   388be:	2100      	movs	r1, #0
   388c0:	9b07      	ldr	r3, [sp, #28]
   388c2:	1918      	adds	r0, r3, r4
   388c4:	f7fd f93e 	bl	35b44 <memset>
   388c8:	e7e9      	b.n	3889e <bt_smp_request_ltk+0xac>
					     &conn->le.dst);
   388ca:	f104 0690 	add.w	r6, r4, #144	; 0x90
		conn->le.keys = bt_keys_find(BT_KEYS_LTK_P256, conn->id,
   388ce:	4632      	mov	r2, r6
   388d0:	7a21      	ldrb	r1, [r4, #8]
   388d2:	2020      	movs	r0, #32
   388d4:	f7f0 fb80 	bl	28fd8 <bt_keys_find>
   388d8:	f8c4 00bc 	str.w	r0, [r4, #188]	; 0xbc
		if (!conn->le.keys) {
   388dc:	2800      	cmp	r0, #0
   388de:	d19e      	bne.n	3881e <bt_smp_request_ltk+0x2c>
			conn->le.keys = bt_keys_find(BT_KEYS_PERIPH_LTK,
   388e0:	4632      	mov	r2, r6
   388e2:	7a21      	ldrb	r1, [r4, #8]
   388e4:	2001      	movs	r0, #1
   388e6:	f7f0 fb77 	bl	28fd8 <bt_keys_find>
   388ea:	f8c4 00bc 	str.w	r0, [r4, #188]	; 0xbc
   388ee:	e796      	b.n	3881e <bt_smp_request_ltk+0x2c>
		enc_size = conn->le.keys->enc_size;
   388f0:	7b0c      	ldrb	r4, [r1, #12]
		memcpy(ltk, conn->le.keys->ltk.val, enc_size);
   388f2:	4622      	mov	r2, r4
   388f4:	311a      	adds	r1, #26
   388f6:	9807      	ldr	r0, [sp, #28]
   388f8:	f7fd f900 	bl	35afc <memcpy>
		if (enc_size < BT_SMP_MAX_ENC_KEY_SIZE) {
   388fc:	2c0f      	cmp	r4, #15
   388fe:	d90e      	bls.n	3891e <bt_smp_request_ltk+0x12c>
		atomic_set_bit(smp->flags, SMP_FLAG_ENC_PENDING);
   38900:	3504      	adds	r5, #4
   38902:	f3bf 8f5b 	dmb	ish
   38906:	e855 3f00 	ldrex	r3, [r5]
   3890a:	f043 0302 	orr.w	r3, r3, #2
   3890e:	e845 3200 	strex	r2, r3, [r5]
   38912:	2a00      	cmp	r2, #0
   38914:	d1f7      	bne.n	38906 <bt_smp_request_ltk+0x114>
   38916:	f3bf 8f5b 	dmb	ish
		return true;
   3891a:	2001      	movs	r0, #1
   3891c:	e7a1      	b.n	38862 <bt_smp_request_ltk+0x70>
			(void)memset(ltk + enc_size, 0,
   3891e:	f1c4 0210 	rsb	r2, r4, #16
   38922:	2100      	movs	r1, #0
   38924:	9b07      	ldr	r3, [sp, #28]
   38926:	1918      	adds	r0, r3, r4
   38928:	f7fd f90c 	bl	35b44 <memset>
   3892c:	e7e8      	b.n	38900 <bt_smp_request_ltk+0x10e>
	    !memcmp(conn->le.keys->periph_ltk.rand, &rand, 8) &&
   3892e:	2208      	movs	r2, #8
   38930:	4669      	mov	r1, sp
   38932:	3040      	adds	r0, #64	; 0x40
   38934:	f7fd f8cb 	bl	35ace <memcmp>
	if (conn->le.keys && (conn->le.keys->keys & BT_KEYS_PERIPH_LTK) &&
   38938:	2800      	cmp	r0, #0
   3893a:	d185      	bne.n	38848 <bt_smp_request_ltk+0x56>
	    !memcmp(conn->le.keys->periph_ltk.ediv, &ediv, 2)) {
   3893c:	f8d4 00bc 	ldr.w	r0, [r4, #188]	; 0xbc
   38940:	2202      	movs	r2, #2
   38942:	a906      	add	r1, sp, #24
   38944:	3048      	adds	r0, #72	; 0x48
   38946:	f7fd f8c2 	bl	35ace <memcmp>
	    !memcmp(conn->le.keys->periph_ltk.rand, &rand, 8) &&
   3894a:	2800      	cmp	r0, #0
   3894c:	f47f af7c 	bne.w	38848 <bt_smp_request_ltk+0x56>
		enc_size = conn->le.keys->enc_size;
   38950:	f8d4 10bc 	ldr.w	r1, [r4, #188]	; 0xbc
   38954:	7b0c      	ldrb	r4, [r1, #12]
		memcpy(ltk, conn->le.keys->periph_ltk.val, enc_size);
   38956:	4622      	mov	r2, r4
   38958:	314a      	adds	r1, #74	; 0x4a
   3895a:	9807      	ldr	r0, [sp, #28]
   3895c:	f7fd f8ce 	bl	35afc <memcpy>
		if (enc_size < BT_SMP_MAX_ENC_KEY_SIZE) {
   38960:	2c0f      	cmp	r4, #15
   38962:	d90e      	bls.n	38982 <bt_smp_request_ltk+0x190>
		atomic_set_bit(smp->flags, SMP_FLAG_ENC_PENDING);
   38964:	3504      	adds	r5, #4
   38966:	f3bf 8f5b 	dmb	ish
   3896a:	e855 3f00 	ldrex	r3, [r5]
   3896e:	f043 0302 	orr.w	r3, r3, #2
   38972:	e845 3200 	strex	r2, r3, [r5]
   38976:	2a00      	cmp	r2, #0
   38978:	d1f7      	bne.n	3896a <bt_smp_request_ltk+0x178>
   3897a:	f3bf 8f5b 	dmb	ish
		return true;
   3897e:	2001      	movs	r0, #1
   38980:	e76f      	b.n	38862 <bt_smp_request_ltk+0x70>
			(void)memset(ltk + enc_size, 0,
   38982:	f1c4 0210 	rsb	r2, r4, #16
   38986:	2100      	movs	r1, #0
   38988:	9b07      	ldr	r3, [sp, #28]
   3898a:	1918      	adds	r0, r3, r4
   3898c:	f7fd f8da 	bl	35b44 <memset>
   38990:	e7e8      	b.n	38964 <bt_smp_request_ltk+0x172>
		bt_conn_security_changed(conn, BT_HCI_ERR_PIN_OR_KEY_MISSING,
   38992:	2202      	movs	r2, #2
   38994:	2106      	movs	r1, #6
   38996:	4620      	mov	r0, r4
   38998:	f7eb f96c 	bl	23c74 <bt_conn_security_changed>
   3899c:	e75d      	b.n	3885a <bt_smp_request_ltk+0x68>
		return false;
   3899e:	2000      	movs	r0, #0
   389a0:	e75f      	b.n	38862 <bt_smp_request_ltk+0x70>

000389a2 <bt_smp_sign>:
}
   389a2:	f06f 0085 	mvn.w	r0, #133	; 0x85
   389a6:	4770      	bx	lr

000389a8 <bt_smp_start_security>:
{
   389a8:	b508      	push	{r3, lr}
	switch (conn->role) {
   389aa:	78c3      	ldrb	r3, [r0, #3]
   389ac:	2b01      	cmp	r3, #1
   389ae:	d102      	bne.n	389b6 <bt_smp_start_security+0xe>
		return smp_send_security_req(conn);
   389b0:	f7ff fdd4 	bl	3855c <smp_send_security_req>
}
   389b4:	bd08      	pop	{r3, pc}
		return -EINVAL;
   389b6:	f06f 0015 	mvn.w	r0, #21
   389ba:	e7fb      	b.n	389b4 <bt_smp_start_security+0xc>

000389bc <smp_error>:
{
   389bc:	b570      	push	{r4, r5, r6, lr}
   389be:	b082      	sub	sp, #8
   389c0:	4604      	mov	r4, r0
   389c2:	460d      	mov	r5, r1
	return __atomic_load_n(target, __ATOMIC_SEQ_CST);
   389c4:	f3bf 8f5b 	dmb	ish
   389c8:	6843      	ldr	r3, [r0, #4]
   389ca:	f3bf 8f5b 	dmb	ish
	if (atomic_test_bit(smp->flags, SMP_FLAG_PAIRING) ||
   389ce:	f013 0f08 	tst.w	r3, #8
   389d2:	d107      	bne.n	389e4 <smp_error+0x28>
   389d4:	f3bf 8f5b 	dmb	ish
   389d8:	6843      	ldr	r3, [r0, #4]
   389da:	f3bf 8f5b 	dmb	ish
   389de:	f013 0f02 	tst.w	r3, #2
   389e2:	d01a      	beq.n	38a1a <smp_error+0x5e>
		smp_pairing_complete(smp, reason);
   389e4:	4629      	mov	r1, r5
   389e6:	4620      	mov	r0, r4
   389e8:	f7ef ff38 	bl	2885c <smp_pairing_complete>
	buf = smp_create_pdu(smp, BT_SMP_CMD_PAIRING_FAIL, sizeof(*rsp));
   389ec:	2201      	movs	r2, #1
   389ee:	2105      	movs	r1, #5
   389f0:	4620      	mov	r0, r4
   389f2:	f7ff fc75 	bl	382e0 <smp_create_pdu>
	if (!buf) {
   389f6:	4606      	mov	r6, r0
   389f8:	b1e8      	cbz	r0, 38a36 <smp_error+0x7a>
   389fa:	2101      	movs	r1, #1
   389fc:	3008      	adds	r0, #8
   389fe:	f7f0 ffc7 	bl	29990 <net_buf_simple_add>
	rsp->reason = reason;
   38a02:	7005      	strb	r5, [r0, #0]
   38a04:	2300      	movs	r3, #0
   38a06:	9300      	str	r3, [sp, #0]
   38a08:	4632      	mov	r2, r6
   38a0a:	2106      	movs	r1, #6
   38a0c:	f8d4 00f0 	ldr.w	r0, [r4, #240]	; 0xf0
   38a10:	f7fe f8a8 	bl	36b64 <bt_l2cap_send_cb>
	if (bt_l2cap_send(smp->chan.chan.conn, BT_L2CAP_CID_SMP, buf)) {
   38a14:	b950      	cbnz	r0, 38a2c <smp_error+0x70>
}
   38a16:	b002      	add	sp, #8
   38a18:	bd70      	pop	{r4, r5, r6, pc}
   38a1a:	f3bf 8f5b 	dmb	ish
   38a1e:	6843      	ldr	r3, [r0, #4]
   38a20:	f3bf 8f5b 	dmb	ish
	    atomic_test_bit(smp->flags, SMP_FLAG_ENC_PENDING) ||
   38a24:	f413 4f00 	tst.w	r3, #32768	; 0x8000
   38a28:	d0e0      	beq.n	389ec <smp_error+0x30>
   38a2a:	e7db      	b.n	389e4 <smp_error+0x28>
		net_buf_unref(buf);
   38a2c:	4630      	mov	r0, r6
   38a2e:	f7f0 fe97 	bl	29760 <net_buf_unref>
	return 0;
   38a32:	2000      	movs	r0, #0
   38a34:	e7ef      	b.n	38a16 <smp_error+0x5a>
		return -ENOBUFS;
   38a36:	f06f 0068 	mvn.w	r0, #104	; 0x68
   38a3a:	e7ec      	b.n	38a16 <smp_error+0x5a>

00038a3c <bt_smp_dhkey_ready>:
{
   38a3c:	b538      	push	{r3, r4, r5, lr}
   38a3e:	4604      	mov	r4, r0
	struct bt_smp *smp = smp_find(SMP_FLAG_DHKEY_GEN);
   38a40:	2008      	movs	r0, #8
   38a42:	f7ee fb5d 	bl	27100 <smp_find>
	if (smp) {
   38a46:	b198      	cbz	r0, 38a70 <bt_smp_dhkey_ready+0x34>
   38a48:	4605      	mov	r5, r0
		atomic_clear_bit(smp->flags, SMP_FLAG_DHKEY_GEN);
   38a4a:	1d03      	adds	r3, r0, #4
	return __atomic_fetch_and(target, value, __ATOMIC_SEQ_CST);
   38a4c:	f3bf 8f5b 	dmb	ish
   38a50:	e853 2f00 	ldrex	r2, [r3]
   38a54:	f422 7280 	bic.w	r2, r2, #256	; 0x100
   38a58:	e843 2100 	strex	r1, r2, [r3]
   38a5c:	2900      	cmp	r1, #0
   38a5e:	d1f7      	bne.n	38a50 <bt_smp_dhkey_ready+0x14>
   38a60:	f3bf 8f5b 	dmb	ish
		err = smp_dhkey_ready(smp, dhkey);
   38a64:	4621      	mov	r1, r4
   38a66:	4628      	mov	r0, r5
   38a68:	f7ff fe6f 	bl	3874a <smp_dhkey_ready>
		if (err) {
   38a6c:	4601      	mov	r1, r0
   38a6e:	b908      	cbnz	r0, 38a74 <bt_smp_dhkey_ready+0x38>
{
   38a70:	2500      	movs	r5, #0
   38a72:	e009      	b.n	38a88 <bt_smp_dhkey_ready+0x4c>
			smp_error(smp, err);
   38a74:	4628      	mov	r0, r5
   38a76:	f7ff ffa1 	bl	389bc <smp_error>
   38a7a:	e7f9      	b.n	38a70 <bt_smp_dhkey_ready+0x34>
				smp_error(smp, err);
   38a7c:	4601      	mov	r1, r0
   38a7e:	4620      	mov	r0, r4
   38a80:	f7ff ff9c 	bl	389bc <smp_error>
	} while (smp && err);
   38a84:	b164      	cbz	r4, 38aa0 <bt_smp_dhkey_ready+0x64>
   38a86:	b15d      	cbz	r5, 38aa0 <bt_smp_dhkey_ready+0x64>
		smp = smp_find(SMP_FLAG_DHKEY_PENDING);
   38a88:	2007      	movs	r0, #7
   38a8a:	f7ee fb39 	bl	27100 <smp_find>
		if (smp) {
   38a8e:	4604      	mov	r4, r0
   38a90:	2800      	cmp	r0, #0
   38a92:	d0f7      	beq.n	38a84 <bt_smp_dhkey_ready+0x48>
			err = smp_dhkey_generate(smp);
   38a94:	f7ee fd00 	bl	27498 <smp_dhkey_generate>
   38a98:	4605      	mov	r5, r0
			if (err) {
   38a9a:	2800      	cmp	r0, #0
   38a9c:	d0f2      	beq.n	38a84 <bt_smp_dhkey_ready+0x48>
   38a9e:	e7ed      	b.n	38a7c <bt_smp_dhkey_ready+0x40>
}
   38aa0:	bd38      	pop	{r3, r4, r5, pc}

00038aa2 <bt_smp_encrypt_change>:
{
   38aa2:	b570      	push	{r4, r5, r6, lr}
   38aa4:	4605      	mov	r5, r0
	struct bt_smp *smp = CONTAINER_OF(chan, struct bt_smp, chan);
   38aa6:	f1a0 06f0 	sub.w	r6, r0, #240	; 0xf0
	struct bt_conn *conn = chan->conn;
   38aaa:	4604      	mov	r4, r0
   38aac:	f854 29ec 	ldr.w	r2, [r4], #-236
   38ab0:	f3bf 8f5b 	dmb	ish
   38ab4:	e854 3f00 	ldrex	r3, [r4]
   38ab8:	f023 0002 	bic.w	r0, r3, #2
   38abc:	e844 0c00 	strex	ip, r0, [r4]
   38ac0:	f1bc 0f00 	cmp.w	ip, #0
   38ac4:	d1f6      	bne.n	38ab4 <bt_smp_encrypt_change+0x12>
   38ac6:	f3bf 8f5b 	dmb	ish
	if (!atomic_test_and_clear_bit(smp->flags, SMP_FLAG_ENC_PENDING)) {
   38aca:	f013 0f02 	tst.w	r3, #2
   38ace:	d002      	beq.n	38ad6 <bt_smp_encrypt_change+0x34>
	if (hci_status) {
   38ad0:	b911      	cbnz	r1, 38ad8 <bt_smp_encrypt_change+0x36>
	if (!conn->encrypt) {
   38ad2:	7ad3      	ldrb	r3, [r2, #11]
   38ad4:	b9fb      	cbnz	r3, 38b16 <bt_smp_encrypt_change+0x74>
}
   38ad6:	bd70      	pop	{r4, r5, r6, pc}
	return __atomic_load_n(target, __ATOMIC_SEQ_CST);
   38ad8:	f3bf 8f5b 	dmb	ish
   38adc:	f855 3cec 	ldr.w	r3, [r5, #-236]
   38ae0:	f3bf 8f5b 	dmb	ish
		if (atomic_test_bit(smp->flags, SMP_FLAG_PAIRING)) {
   38ae4:	f013 0f08 	tst.w	r3, #8
   38ae8:	d0f5      	beq.n	38ad6 <bt_smp_encrypt_change+0x34>
			uint8_t smp_err = smp_err_get(
   38aea:	4608      	mov	r0, r1
   38aec:	f7fd fa0a 	bl	35f04 <bt_security_err_get>
   38af0:	f7ff fa59 	bl	37fa6 <smp_err_get>
   38af4:	4601      	mov	r1, r0
	return __atomic_fetch_or(target, value, __ATOMIC_SEQ_CST);
   38af6:	f3bf 8f5b 	dmb	ish
   38afa:	e854 3f00 	ldrex	r3, [r4]
   38afe:	f043 0304 	orr.w	r3, r3, #4
   38b02:	e844 3200 	strex	r2, r3, [r4]
   38b06:	2a00      	cmp	r2, #0
   38b08:	d1f7      	bne.n	38afa <bt_smp_encrypt_change+0x58>
   38b0a:	f3bf 8f5b 	dmb	ish
			smp_pairing_complete(smp, smp_err);
   38b0e:	4630      	mov	r0, r6
   38b10:	f7ef fea4 	bl	2885c <smp_pairing_complete>
		return;
   38b14:	e7df      	b.n	38ad6 <bt_smp_encrypt_change+0x34>
	return __atomic_load_n(target, __ATOMIC_SEQ_CST);
   38b16:	f3bf 8f5b 	dmb	ish
   38b1a:	f855 3cec 	ldr.w	r3, [r5, #-236]
   38b1e:	f3bf 8f5b 	dmb	ish
	if (!atomic_test_bit(smp->flags, SMP_FLAG_PAIRING)) {
   38b22:	f013 0f08 	tst.w	r3, #8
   38b26:	d044      	beq.n	38bb2 <bt_smp_encrypt_change+0x110>
   38b28:	f3bf 8f5b 	dmb	ish
   38b2c:	f855 3cec 	ldr.w	r3, [r5, #-236]
   38b30:	f3bf 8f5b 	dmb	ish
	if (atomic_test_bit(smp->flags, SMP_FLAG_SC)) {
   38b34:	f013 0f20 	tst.w	r3, #32
   38b38:	d021      	beq.n	38b7e <bt_smp_encrypt_change+0xdc>
		if ((smp->local_dist & BT_SMP_DIST_LINK_KEY) &&
   38b3a:	f815 3c08 	ldrb.w	r3, [r5, #-8]
   38b3e:	f013 0f08 	tst.w	r3, #8
   38b42:	d010      	beq.n	38b66 <bt_smp_encrypt_change+0xc4>
		    (smp->remote_dist & BT_SMP_DIST_LINK_KEY)) {
   38b44:	f815 3c07 	ldrb.w	r3, [r5, #-7]
		if ((smp->local_dist & BT_SMP_DIST_LINK_KEY) &&
   38b48:	f013 0f08 	tst.w	r3, #8
   38b4c:	d00b      	beq.n	38b66 <bt_smp_encrypt_change+0xc4>
	return __atomic_fetch_or(target, value, __ATOMIC_SEQ_CST);
   38b4e:	f3bf 8f5b 	dmb	ish
   38b52:	e854 3f00 	ldrex	r3, [r4]
   38b56:	f443 3300 	orr.w	r3, r3, #131072	; 0x20000
   38b5a:	e844 3200 	strex	r2, r3, [r4]
   38b5e:	2a00      	cmp	r2, #0
   38b60:	d1f7      	bne.n	38b52 <bt_smp_encrypt_change+0xb0>
   38b62:	f3bf 8f5b 	dmb	ish
		smp->local_dist &= ~BT_SMP_DIST_LINK_KEY;
   38b66:	f815 3c08 	ldrb.w	r3, [r5, #-8]
   38b6a:	f023 0308 	bic.w	r3, r3, #8
   38b6e:	f805 3c08 	strb.w	r3, [r5, #-8]
		smp->remote_dist &= ~BT_SMP_DIST_LINK_KEY;
   38b72:	f815 3c07 	ldrb.w	r3, [r5, #-7]
   38b76:	f023 0308 	bic.w	r3, r3, #8
   38b7a:	f805 3c07 	strb.w	r3, [r5, #-7]
	if (smp->remote_dist & BT_SMP_DIST_ENC_KEY) {
   38b7e:	f815 3c07 	ldrb.w	r3, [r5, #-7]
   38b82:	f013 0f01 	tst.w	r3, #1
   38b86:	d118      	bne.n	38bba <bt_smp_encrypt_change+0x118>
	} else if (smp->remote_dist & BT_SMP_DIST_ID_KEY) {
   38b88:	f013 0f02 	tst.w	r3, #2
   38b8c:	d13f      	bne.n	38c0e <bt_smp_encrypt_change+0x16c>
	} else if (smp->remote_dist & BT_SMP_DIST_SIGN) {
   38b8e:	f013 0f04 	tst.w	r3, #4
   38b92:	d020      	beq.n	38bd6 <bt_smp_encrypt_change+0x134>
		atomic_set_bit(smp->allowed_cmds, BT_SMP_CMD_SIGNING_INFO);
   38b94:	f1a5 03f0 	sub.w	r3, r5, #240	; 0xf0
   38b98:	f3bf 8f5b 	dmb	ish
   38b9c:	e853 2f00 	ldrex	r2, [r3]
   38ba0:	f442 6280 	orr.w	r2, r2, #1024	; 0x400
   38ba4:	e843 2100 	strex	r1, r2, [r3]
   38ba8:	2900      	cmp	r1, #0
   38baa:	d1f7      	bne.n	38b9c <bt_smp_encrypt_change+0xfa>
   38bac:	f3bf 8f5b 	dmb	ish
}
   38bb0:	e011      	b.n	38bd6 <bt_smp_encrypt_change+0x134>
		smp_reset(smp);
   38bb2:	4630      	mov	r0, r6
   38bb4:	f7ff fb0c 	bl	381d0 <smp_reset>
		return;
   38bb8:	e78d      	b.n	38ad6 <bt_smp_encrypt_change+0x34>
		atomic_set_bit(smp->allowed_cmds, BT_SMP_CMD_ENCRYPT_INFO);
   38bba:	f1a5 03f0 	sub.w	r3, r5, #240	; 0xf0
   38bbe:	f3bf 8f5b 	dmb	ish
   38bc2:	e853 2f00 	ldrex	r2, [r3]
   38bc6:	f042 0240 	orr.w	r2, r2, #64	; 0x40
   38bca:	e843 2100 	strex	r1, r2, [r3]
   38bce:	2900      	cmp	r1, #0
   38bd0:	d1f7      	bne.n	38bc2 <bt_smp_encrypt_change+0x120>
   38bd2:	f3bf 8f5b 	dmb	ish
   38bd6:	f3bf 8f5b 	dmb	ish
   38bda:	e854 3f00 	ldrex	r3, [r4]
   38bde:	f043 0304 	orr.w	r3, r3, #4
   38be2:	e844 3200 	strex	r2, r3, [r4]
   38be6:	2a00      	cmp	r2, #0
   38be8:	d1f7      	bne.n	38bda <bt_smp_encrypt_change+0x138>
   38bea:	f3bf 8f5b 	dmb	ish
	if (bt_smp_distribute_keys(smp)) {
   38bee:	4630      	mov	r0, r6
   38bf0:	f7ee fc30 	bl	27454 <bt_smp_distribute_keys>
   38bf4:	2800      	cmp	r0, #0
   38bf6:	f47f af6e 	bne.w	38ad6 <bt_smp_encrypt_change+0x34>
	if (!smp->local_dist && !smp->remote_dist) {
   38bfa:	f835 3c08 	ldrh.w	r3, [r5, #-8]
   38bfe:	2b00      	cmp	r3, #0
   38c00:	f47f af69 	bne.w	38ad6 <bt_smp_encrypt_change+0x34>
		smp_pairing_complete(smp, 0);
   38c04:	2100      	movs	r1, #0
   38c06:	4630      	mov	r0, r6
   38c08:	f7ef fe28 	bl	2885c <smp_pairing_complete>
   38c0c:	e763      	b.n	38ad6 <bt_smp_encrypt_change+0x34>
		atomic_set_bit(smp->allowed_cmds, BT_SMP_CMD_IDENT_INFO);
   38c0e:	f1a5 03f0 	sub.w	r3, r5, #240	; 0xf0
   38c12:	f3bf 8f5b 	dmb	ish
   38c16:	e853 2f00 	ldrex	r2, [r3]
   38c1a:	f442 7280 	orr.w	r2, r2, #256	; 0x100
   38c1e:	e843 2100 	strex	r1, r2, [r3]
   38c22:	2900      	cmp	r1, #0
   38c24:	d1f7      	bne.n	38c16 <bt_smp_encrypt_change+0x174>
   38c26:	f3bf 8f5b 	dmb	ish
   38c2a:	e7d4      	b.n	38bd6 <bt_smp_encrypt_change+0x134>

00038c2c <smp_ident_sent>:
{
   38c2c:	b508      	push	{r3, lr}
	smp_check_complete(conn, BT_SMP_DIST_ENC_KEY);
   38c2e:	2101      	movs	r1, #1
   38c30:	f7f0 f87e 	bl	28d30 <smp_check_complete>
}
   38c34:	bd08      	pop	{r3, pc}

00038c36 <bt_smp_disconnected>:
{
   38c36:	b570      	push	{r4, r5, r6, lr}
   38c38:	4604      	mov	r4, r0
	struct bt_smp *smp = CONTAINER_OF(chan, struct bt_smp, chan);
   38c3a:	f1a0 06f0 	sub.w	r6, r0, #240	; 0xf0
	struct bt_keys *keys = chan->conn->le.keys;
   38c3e:	f850 3bf0 	ldr.w	r3, [r0], #240
   38c42:	f8d3 50bc 	ldr.w	r5, [r3, #188]	; 0xbc
	(void)k_work_cancel_delayable(&smp->work);
   38c46:	f7f7 fe95 	bl	30974 <k_work_cancel_delayable>
	return __atomic_load_n(target, __ATOMIC_SEQ_CST);
   38c4a:	f3bf 8f5b 	dmb	ish
   38c4e:	f854 3cec 	ldr.w	r3, [r4, #-236]
   38c52:	f3bf 8f5b 	dmb	ish
	if (atomic_test_bit(smp->flags, SMP_FLAG_PAIRING) ||
   38c56:	f013 0f08 	tst.w	r3, #8
   38c5a:	d108      	bne.n	38c6e <bt_smp_disconnected+0x38>
   38c5c:	f3bf 8f5b 	dmb	ish
   38c60:	f854 3cec 	ldr.w	r3, [r4, #-236]
   38c64:	f3bf 8f5b 	dmb	ish
   38c68:	f013 0f02 	tst.w	r3, #2
   38c6c:	d014      	beq.n	38c98 <bt_smp_disconnected+0x62>
		smp_pairing_complete(smp, BT_SMP_ERR_UNSPECIFIED);
   38c6e:	2108      	movs	r1, #8
   38c70:	4630      	mov	r0, r6
   38c72:	f7ef fdf3 	bl	2885c <smp_pairing_complete>
	if (keys) {
   38c76:	b145      	cbz	r5, 38c8a <bt_smp_disconnected+0x54>
		if (!keys->keys || (!IS_ENABLED(CONFIG_BT_STORE_DEBUG_KEYS) &&
   38c78:	89eb      	ldrh	r3, [r5, #14]
   38c7a:	b11b      	cbz	r3, 38c84 <bt_smp_disconnected+0x4e>
		    (keys->flags & BT_KEYS_DEBUG))) {
   38c7c:	7b6b      	ldrb	r3, [r5, #13]
		if (!keys->keys || (!IS_ENABLED(CONFIG_BT_STORE_DEBUG_KEYS) &&
   38c7e:	f013 0f02 	tst.w	r3, #2
   38c82:	d002      	beq.n	38c8a <bt_smp_disconnected+0x54>
			bt_keys_clear(keys);
   38c84:	4628      	mov	r0, r5
   38c86:	f7f0 fa5b 	bl	29140 <bt_keys_clear>
	(void)memset(smp, 0, sizeof(*smp));
   38c8a:	f44f 7204 	mov.w	r2, #528	; 0x210
   38c8e:	2100      	movs	r1, #0
   38c90:	4630      	mov	r0, r6
   38c92:	f7fc ff57 	bl	35b44 <memset>
}
   38c96:	bd70      	pop	{r4, r5, r6, pc}
   38c98:	f3bf 8f5b 	dmb	ish
   38c9c:	f854 3cec 	ldr.w	r3, [r4, #-236]
   38ca0:	f3bf 8f5b 	dmb	ish
	    atomic_test_bit(smp->flags, SMP_FLAG_ENC_PENDING) ||
   38ca4:	f413 4f00 	tst.w	r3, #32768	; 0x8000
   38ca8:	d0e5      	beq.n	38c76 <bt_smp_disconnected+0x40>
   38caa:	e7e0      	b.n	38c6e <bt_smp_disconnected+0x38>

00038cac <id_add>:
{
   38cac:	b508      	push	{r3, lr}
	bt_id_add(keys);
   38cae:	f7e9 fbc7 	bl	22440 <bt_id_add>
}
   38cb2:	bd08      	pop	{r3, pc}

00038cb4 <bt_keys_add_type>:
	keys->keys |= type;
   38cb4:	89c3      	ldrh	r3, [r0, #14]
   38cb6:	4319      	orrs	r1, r3
   38cb8:	81c1      	strh	r1, [r0, #14]
}
   38cba:	4770      	bx	lr

00038cbc <bt_keys_get_type>:
{
   38cbc:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
   38cbe:	4606      	mov	r6, r0
   38cc0:	460c      	mov	r4, r1
   38cc2:	4615      	mov	r5, r2
	keys = bt_keys_find(type, id, addr);
   38cc4:	f7f0 f988 	bl	28fd8 <bt_keys_find>
	if (keys) {
   38cc8:	4607      	mov	r7, r0
   38cca:	b108      	cbz	r0, 38cd0 <bt_keys_get_type+0x14>
}
   38ccc:	4638      	mov	r0, r7
   38cce:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
	keys = bt_keys_get_addr(id, addr);
   38cd0:	4629      	mov	r1, r5
   38cd2:	4620      	mov	r0, r4
   38cd4:	f7f0 f914 	bl	28f00 <bt_keys_get_addr>
	if (!keys) {
   38cd8:	4607      	mov	r7, r0
   38cda:	2800      	cmp	r0, #0
   38cdc:	d0f6      	beq.n	38ccc <bt_keys_get_type+0x10>
	bt_keys_add_type(keys, type);
   38cde:	4631      	mov	r1, r6
   38ce0:	f7ff ffe8 	bl	38cb4 <bt_keys_add_type>
	return keys;
   38ce4:	e7f2      	b.n	38ccc <bt_keys_get_type+0x10>

00038ce6 <cbor_nb_reader_get8>:
	if (offset < 0 || offset >= cnr->nb->len) {
   38ce6:	2900      	cmp	r1, #0
   38ce8:	db06      	blt.n	38cf8 <cbor_nb_reader_get8+0x12>
   38cea:	69c3      	ldr	r3, [r0, #28]
   38cec:	899a      	ldrh	r2, [r3, #12]
   38cee:	428a      	cmp	r2, r1
   38cf0:	dd04      	ble.n	38cfc <cbor_nb_reader_get8+0x16>
	return cnr->nb->data[offset];
   38cf2:	689b      	ldr	r3, [r3, #8]
   38cf4:	5c58      	ldrb	r0, [r3, r1]
   38cf6:	4770      	bx	lr
		return UINT8_MAX;
   38cf8:	20ff      	movs	r0, #255	; 0xff
   38cfa:	4770      	bx	lr
   38cfc:	20ff      	movs	r0, #255	; 0xff
}
   38cfe:	4770      	bx	lr

00038d00 <cbor_nb_reader_cpy>:
{
   38d00:	b538      	push	{r3, r4, r5, lr}
	if (offset < 0 || offset > cnr->nb->len - (int)len) {
   38d02:	1e14      	subs	r4, r2, #0
   38d04:	db0c      	blt.n	38d20 <cbor_nb_reader_cpy+0x20>
   38d06:	4605      	mov	r5, r0
   38d08:	4608      	mov	r0, r1
   38d0a:	69e9      	ldr	r1, [r5, #28]
   38d0c:	898a      	ldrh	r2, [r1, #12]
   38d0e:	1ad2      	subs	r2, r2, r3
   38d10:	42a2      	cmp	r2, r4
   38d12:	db08      	blt.n	38d26 <cbor_nb_reader_cpy+0x26>
	return (uintptr_t)memcpy(dst, cnr->nb->data + offset, len);
   38d14:	6889      	ldr	r1, [r1, #8]
   38d16:	461a      	mov	r2, r3
   38d18:	4421      	add	r1, r4
   38d1a:	f7fc feef 	bl	35afc <memcpy>
}
   38d1e:	bd38      	pop	{r3, r4, r5, pc}
		return -1;
   38d20:	f04f 30ff 	mov.w	r0, #4294967295
   38d24:	e7fb      	b.n	38d1e <cbor_nb_reader_cpy+0x1e>
   38d26:	f04f 30ff 	mov.w	r0, #4294967295
   38d2a:	e7f8      	b.n	38d1e <cbor_nb_reader_cpy+0x1e>

00038d2c <cbor_nb_reader_cmp>:
{
   38d2c:	b510      	push	{r4, lr}
	if (offset < 0 || offset > cnr->nb->len - (int)len) {
   38d2e:	1e14      	subs	r4, r2, #0
   38d30:	db0a      	blt.n	38d48 <cbor_nb_reader_cmp+0x1c>
   38d32:	69c0      	ldr	r0, [r0, #28]
   38d34:	8982      	ldrh	r2, [r0, #12]
   38d36:	1ad2      	subs	r2, r2, r3
   38d38:	42a2      	cmp	r2, r4
   38d3a:	db08      	blt.n	38d4e <cbor_nb_reader_cmp+0x22>
	return memcmp(cnr->nb->data + offset, buf, len);
   38d3c:	6880      	ldr	r0, [r0, #8]
   38d3e:	461a      	mov	r2, r3
   38d40:	4420      	add	r0, r4
   38d42:	f7fc fec4 	bl	35ace <memcmp>
}
   38d46:	bd10      	pop	{r4, pc}
		return -1;
   38d48:	f04f 30ff 	mov.w	r0, #4294967295
   38d4c:	e7fb      	b.n	38d46 <cbor_nb_reader_cmp+0x1a>
   38d4e:	f04f 30ff 	mov.w	r0, #4294967295
   38d52:	e7f8      	b.n	38d46 <cbor_nb_reader_cmp+0x1a>

00038d54 <cbor_nb_reader_get64>:
	if (offset < 0 || offset > cnr->nb->len - (int)sizeof(val)) {
   38d54:	2900      	cmp	r1, #0
   38d56:	db13      	blt.n	38d80 <cbor_nb_reader_get64+0x2c>
   38d58:	69c2      	ldr	r2, [r0, #28]
   38d5a:	8993      	ldrh	r3, [r2, #12]
   38d5c:	3b08      	subs	r3, #8
   38d5e:	428b      	cmp	r3, r1
   38d60:	db12      	blt.n	38d88 <cbor_nb_reader_get64+0x34>
{
   38d62:	b500      	push	{lr}
   38d64:	b083      	sub	sp, #12
	memcpy(&val, cnr->nb->data + offset, sizeof(val));
   38d66:	6893      	ldr	r3, [r2, #8]
   38d68:	2208      	movs	r2, #8
   38d6a:	4419      	add	r1, r3
   38d6c:	4668      	mov	r0, sp
   38d6e:	f7fc fec5 	bl	35afc <memcpy>
	return cbor_ntohll(val);
   38d72:	9801      	ldr	r0, [sp, #4]
   38d74:	ba00      	rev	r0, r0
   38d76:	9900      	ldr	r1, [sp, #0]
   38d78:	ba09      	rev	r1, r1
}
   38d7a:	b003      	add	sp, #12
   38d7c:	f85d fb04 	ldr.w	pc, [sp], #4
		return UINT64_MAX;
   38d80:	f04f 30ff 	mov.w	r0, #4294967295
   38d84:	4601      	mov	r1, r0
   38d86:	4770      	bx	lr
   38d88:	f04f 30ff 	mov.w	r0, #4294967295
   38d8c:	4601      	mov	r1, r0
}
   38d8e:	4770      	bx	lr

00038d90 <cbor_nb_reader_get32>:
	if (offset < 0 || offset > cnr->nb->len - (int)sizeof(val)) {
   38d90:	2900      	cmp	r1, #0
   38d92:	db12      	blt.n	38dba <cbor_nb_reader_get32+0x2a>
   38d94:	69c2      	ldr	r2, [r0, #28]
   38d96:	8993      	ldrh	r3, [r2, #12]
   38d98:	3b04      	subs	r3, #4
   38d9a:	428b      	cmp	r3, r1
   38d9c:	db10      	blt.n	38dc0 <cbor_nb_reader_get32+0x30>
{
   38d9e:	b500      	push	{lr}
   38da0:	b083      	sub	sp, #12
	memcpy(&val, cnr->nb->data + offset, sizeof(val));
   38da2:	6893      	ldr	r3, [r2, #8]
   38da4:	2204      	movs	r2, #4
   38da6:	4419      	add	r1, r3
   38da8:	eb0d 0002 	add.w	r0, sp, r2
   38dac:	f7fc fea6 	bl	35afc <memcpy>
	return cbor_ntohl(val);
   38db0:	9801      	ldr	r0, [sp, #4]
   38db2:	ba00      	rev	r0, r0
}
   38db4:	b003      	add	sp, #12
   38db6:	f85d fb04 	ldr.w	pc, [sp], #4
		return UINT32_MAX;
   38dba:	f04f 30ff 	mov.w	r0, #4294967295
   38dbe:	4770      	bx	lr
   38dc0:	f04f 30ff 	mov.w	r0, #4294967295
}
   38dc4:	4770      	bx	lr

00038dc6 <cbor_nb_reader_get16>:
	if (offset < 0 || offset > cnr->nb->len - (int)sizeof(val)) {
   38dc6:	2900      	cmp	r1, #0
   38dc8:	db14      	blt.n	38df4 <cbor_nb_reader_get16+0x2e>
   38dca:	69c2      	ldr	r2, [r0, #28]
   38dcc:	8993      	ldrh	r3, [r2, #12]
   38dce:	3b02      	subs	r3, #2
   38dd0:	428b      	cmp	r3, r1
   38dd2:	db12      	blt.n	38dfa <cbor_nb_reader_get16+0x34>
{
   38dd4:	b500      	push	{lr}
   38dd6:	b083      	sub	sp, #12
	memcpy(&val, cnr->nb->data + offset, sizeof(val));
   38dd8:	6893      	ldr	r3, [r2, #8]
   38dda:	2202      	movs	r2, #2
   38ddc:	4419      	add	r1, r3
   38dde:	f10d 0006 	add.w	r0, sp, #6
   38de2:	f7fc fe8b 	bl	35afc <memcpy>
	return cbor_ntohs(val);
   38de6:	f8bd 0006 	ldrh.w	r0, [sp, #6]
   38dea:	ba40      	rev16	r0, r0
   38dec:	b280      	uxth	r0, r0
}
   38dee:	b003      	add	sp, #12
   38df0:	f85d fb04 	ldr.w	pc, [sp], #4
		return UINT16_MAX;
   38df4:	f64f 70ff 	movw	r0, #65535	; 0xffff
   38df8:	4770      	bx	lr
   38dfa:	f64f 70ff 	movw	r0, #65535	; 0xffff
}
   38dfe:	4770      	bx	lr

00038e00 <cbor_nb_write>:
{
   38e00:	b570      	push	{r4, r5, r6, lr}
   38e02:	4604      	mov	r4, r0
   38e04:	460e      	mov	r6, r1
   38e06:	4615      	mov	r5, r2
	if (len > net_buf_tailroom(cnw->nb)) {
   38e08:	6880      	ldr	r0, [r0, #8]
	return net_buf_simple_tailroom(&buf->b);
   38e0a:	3008      	adds	r0, #8
   38e0c:	f000 f991 	bl	39132 <net_buf_simple_tailroom>
   38e10:	4285      	cmp	r5, r0
   38e12:	d80a      	bhi.n	38e2a <cbor_nb_write+0x2a>
	net_buf_add_mem(cnw->nb, data, len);
   38e14:	68a0      	ldr	r0, [r4, #8]
	return net_buf_simple_add_mem(&buf->b, mem, len);
   38e16:	462a      	mov	r2, r5
   38e18:	4631      	mov	r1, r6
   38e1a:	3008      	adds	r0, #8
   38e1c:	f000 f992 	bl	39144 <net_buf_simple_add_mem>
	cnw->enc.bytes_written += len;
   38e20:	6862      	ldr	r2, [r4, #4]
   38e22:	442a      	add	r2, r5
   38e24:	6062      	str	r2, [r4, #4]
	return CborNoError;
   38e26:	2000      	movs	r0, #0
}
   38e28:	bd70      	pop	{r4, r5, r6, pc}
		return CborErrorOutOfMemory;
   38e2a:	f04f 4000 	mov.w	r0, #2147483648	; 0x80000000
   38e2e:	e7fb      	b.n	38e28 <cbor_nb_write+0x28>

00038e30 <mcumgr_buf_free>:
{
   38e30:	b508      	push	{r3, lr}
	net_buf_unref(nb);
   38e32:	f7f0 fc95 	bl	29760 <net_buf_unref>
}
   38e36:	bd08      	pop	{r3, pc}

00038e38 <zephyr_smp_handle_reqs>:
{
   38e38:	b510      	push	{r4, lr}
   38e3a:	4604      	mov	r4, r0
	while ((nb = net_buf_get(&zst->zst_fifo, K_NO_WAIT)) != NULL) {
   38e3c:	2200      	movs	r2, #0
   38e3e:	2300      	movs	r3, #0
   38e40:	f104 0010 	add.w	r0, r4, #16
   38e44:	f7f0 fc04 	bl	29650 <net_buf_get>
   38e48:	4601      	mov	r1, r0
   38e4a:	b118      	cbz	r0, 38e54 <zephyr_smp_handle_reqs+0x1c>
		zephyr_smp_process_packet(zst, nb);
   38e4c:	4620      	mov	r0, r4
   38e4e:	f7f0 fa8d 	bl	2936c <zephyr_smp_process_packet>
   38e52:	e7f3      	b.n	38e3c <zephyr_smp_handle_reqs+0x4>
}
   38e54:	bd10      	pop	{r4, pc}

00038e56 <zephyr_smp_alloc_rsp>:
{
   38e56:	b570      	push	{r4, r5, r6, lr}
   38e58:	4604      	mov	r4, r0
   38e5a:	460d      	mov	r5, r1
	rsp_nb = mcumgr_buf_alloc();
   38e5c:	f7f0 fa58 	bl	29310 <mcumgr_buf_alloc>
	if (rsp_nb == NULL) {
   38e60:	4606      	mov	r6, r0
   38e62:	b118      	cbz	r0, 38e6c <zephyr_smp_alloc_rsp+0x16>
	if (zst->zst_ud_copy) {
   38e64:	6b6b      	ldr	r3, [r5, #52]	; 0x34
   38e66:	b11b      	cbz	r3, 38e70 <zephyr_smp_alloc_rsp+0x1a>
		zst->zst_ud_copy(rsp_nb, req_nb);
   38e68:	4621      	mov	r1, r4
   38e6a:	4798      	blx	r3
}
   38e6c:	4630      	mov	r0, r6
   38e6e:	bd70      	pop	{r4, r5, r6, pc}
		pool = net_buf_pool_get(req_nb->pool_id);
   38e70:	79a0      	ldrb	r0, [r4, #6]
   38e72:	f7f0 fb0b 	bl	2948c <net_buf_pool_get>
		memcpy(net_buf_user_data(rsp_nb),
   38e76:	2204      	movs	r2, #4
   38e78:	f104 0114 	add.w	r1, r4, #20
   38e7c:	f106 0014 	add.w	r0, r6, #20
   38e80:	f7fc fe3c 	bl	35afc <memcpy>
   38e84:	e7f2      	b.n	38e6c <zephyr_smp_alloc_rsp+0x16>

00038e86 <zephyr_smp_trim_front>:
{
   38e86:	b508      	push	{r3, lr}
   38e88:	460b      	mov	r3, r1
	if (len > nb->len) {
   38e8a:	8981      	ldrh	r1, [r0, #12]
   38e8c:	4299      	cmp	r1, r3
   38e8e:	d300      	bcc.n	38e92 <zephyr_smp_trim_front+0xc>
   38e90:	4619      	mov	r1, r3
	return net_buf_simple_pull(&buf->b, len);
   38e92:	3008      	adds	r0, #8
   38e94:	f7f0 fd1e 	bl	298d4 <net_buf_simple_pull>
}
   38e98:	bd08      	pop	{r3, pc}

00038e9a <zephyr_smp_split_frag>:
{
   38e9a:	b570      	push	{r4, r5, r6, lr}
	src = *nb;
   38e9c:	6805      	ldr	r5, [r0, #0]
	if (src->len <= mtu) {
   38e9e:	89ab      	ldrh	r3, [r5, #12]
   38ea0:	4293      	cmp	r3, r2
   38ea2:	d803      	bhi.n	38eac <zephyr_smp_split_frag+0x12>
		*nb = NULL;
   38ea4:	2300      	movs	r3, #0
   38ea6:	6003      	str	r3, [r0, #0]
}
   38ea8:	4628      	mov	r0, r5
   38eaa:	bd70      	pop	{r4, r5, r6, pc}
   38eac:	4614      	mov	r4, r2
		frag = zephyr_smp_alloc_rsp(src, arg);
   38eae:	4628      	mov	r0, r5
   38eb0:	f7ff ffd1 	bl	38e56 <zephyr_smp_alloc_rsp>
		if (!frag) {
   38eb4:	4606      	mov	r6, r0
   38eb6:	b158      	cbz	r0, 38ed0 <zephyr_smp_split_frag+0x36>
	return net_buf_simple_add_mem(&buf->b, mem, len);
   38eb8:	4622      	mov	r2, r4
   38eba:	68a9      	ldr	r1, [r5, #8]
   38ebc:	3008      	adds	r0, #8
   38ebe:	f000 f941 	bl	39144 <net_buf_simple_add_mem>
		zephyr_smp_trim_front(src, mtu, NULL);
   38ec2:	2200      	movs	r2, #0
   38ec4:	4621      	mov	r1, r4
   38ec6:	4628      	mov	r0, r5
   38ec8:	f7ff ffdd 	bl	38e86 <zephyr_smp_trim_front>
		frag = zephyr_smp_alloc_rsp(src, arg);
   38ecc:	4635      	mov	r5, r6
   38ece:	e7eb      	b.n	38ea8 <zephyr_smp_split_frag+0xe>
			return NULL;
   38ed0:	4605      	mov	r5, r0
   38ed2:	e7e9      	b.n	38ea8 <zephyr_smp_split_frag+0xe>

00038ed4 <zephyr_smp_free_buf>:
	if (!buf) {
   38ed4:	b148      	cbz	r0, 38eea <zephyr_smp_free_buf+0x16>
{
   38ed6:	b510      	push	{r4, lr}
   38ed8:	4604      	mov	r4, r0
	if (zst->zst_ud_free) {
   38eda:	6b8b      	ldr	r3, [r1, #56]	; 0x38
   38edc:	b10b      	cbz	r3, 38ee2 <zephyr_smp_free_buf+0xe>
		zst->zst_ud_free(net_buf_user_data((struct net_buf *)buf));
   38ede:	3014      	adds	r0, #20
   38ee0:	4798      	blx	r3
	mcumgr_buf_free(buf);
   38ee2:	4620      	mov	r0, r4
   38ee4:	f7ff ffa4 	bl	38e30 <mcumgr_buf_free>
}
   38ee8:	bd10      	pop	{r4, pc}
   38eea:	4770      	bx	lr

00038eec <zephyr_smp_tx_rsp>:
{
   38eec:	b530      	push	{r4, r5, lr}
   38eee:	b083      	sub	sp, #12
   38ef0:	4608      	mov	r0, r1
   38ef2:	4614      	mov	r4, r2
	nb = rsp;
   38ef4:	9101      	str	r1, [sp, #4]
	mtu = zst->zst_get_mtu(rsp);
   38ef6:	6b13      	ldr	r3, [r2, #48]	; 0x30
   38ef8:	4798      	blx	r3
	if (mtu == 0U) {
   38efa:	4605      	mov	r5, r0
   38efc:	b1b8      	cbz	r0, 38f2e <zephyr_smp_tx_rsp+0x42>
	while (nb != NULL) {
   38efe:	9b01      	ldr	r3, [sp, #4]
   38f00:	b19b      	cbz	r3, 38f2a <zephyr_smp_tx_rsp+0x3e>
		frag = zephyr_smp_split_frag(&nb, zst, mtu);
   38f02:	462a      	mov	r2, r5
   38f04:	4621      	mov	r1, r4
   38f06:	a801      	add	r0, sp, #4
   38f08:	f7ff ffc7 	bl	38e9a <zephyr_smp_split_frag>
		if (frag == NULL) {
   38f0c:	4601      	mov	r1, r0
   38f0e:	b130      	cbz	r0, 38f1e <zephyr_smp_tx_rsp+0x32>
		rc = zst->zst_output(zst, frag);
   38f10:	6ae3      	ldr	r3, [r4, #44]	; 0x2c
   38f12:	4620      	mov	r0, r4
   38f14:	4798      	blx	r3
		if (rc != 0) {
   38f16:	2800      	cmp	r0, #0
   38f18:	d0f1      	beq.n	38efe <zephyr_smp_tx_rsp+0x12>
			return MGMT_ERR_EUNKNOWN;
   38f1a:	2001      	movs	r0, #1
   38f1c:	e008      	b.n	38f30 <zephyr_smp_tx_rsp+0x44>
			zephyr_smp_free_buf(nb, zst);
   38f1e:	4621      	mov	r1, r4
   38f20:	9801      	ldr	r0, [sp, #4]
   38f22:	f7ff ffd7 	bl	38ed4 <zephyr_smp_free_buf>
			return MGMT_ERR_ENOMEM;
   38f26:	2002      	movs	r0, #2
   38f28:	e002      	b.n	38f30 <zephyr_smp_tx_rsp+0x44>
	return 0;
   38f2a:	2000      	movs	r0, #0
   38f2c:	e000      	b.n	38f30 <zephyr_smp_tx_rsp+0x44>
		return MGMT_ERR_EUNKNOWN;
   38f2e:	2001      	movs	r0, #1
}
   38f30:	b003      	add	sp, #12
   38f32:	bd30      	pop	{r4, r5, pc}

00038f34 <zephyr_smp_init_writer>:
{
   38f34:	b508      	push	{r3, lr}
	cbor_nb_writer_init(czw, buf);
   38f36:	f7f0 fa11 	bl	2935c <cbor_nb_writer_init>
}
   38f3a:	2000      	movs	r0, #0
   38f3c:	bd08      	pop	{r3, pc}

00038f3e <zephyr_smp_init_reader>:
{
   38f3e:	b508      	push	{r3, lr}
	cbor_nb_reader_init(czr, buf);
   38f40:	f7f0 f9f0 	bl	29324 <cbor_nb_reader_init>
}
   38f44:	2000      	movs	r0, #0
   38f46:	bd08      	pop	{r3, pc}

00038f48 <zephyr_smp_write_at>:
{
   38f48:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
   38f4c:	461e      	mov	r6, r3
	nb = czw->nb;
   38f4e:	6885      	ldr	r5, [r0, #8]
	if (offset > nb->len) {
   38f50:	89ab      	ldrh	r3, [r5, #12]
   38f52:	428b      	cmp	r3, r1
   38f54:	d31d      	bcc.n	38f92 <zephyr_smp_write_at+0x4a>
   38f56:	4607      	mov	r7, r0
   38f58:	460c      	mov	r4, r1
   38f5a:	4690      	mov	r8, r2
	if ((offset + len) > (nb->size - net_buf_headroom(nb))) {
   38f5c:	eb01 0a06 	add.w	sl, r1, r6
   38f60:	f8b5 900e 	ldrh.w	r9, [r5, #14]
	return net_buf_simple_headroom(&buf->b);
   38f64:	f105 0008 	add.w	r0, r5, #8
   38f68:	f000 f8df 	bl	3912a <net_buf_simple_headroom>
   38f6c:	eba9 0900 	sub.w	r9, r9, r0
   38f70:	45ca      	cmp	sl, r9
   38f72:	d811      	bhi.n	38f98 <zephyr_smp_write_at+0x50>
	memcpy(nb->data + offset, data, len);
   38f74:	68a8      	ldr	r0, [r5, #8]
   38f76:	4632      	mov	r2, r6
   38f78:	4641      	mov	r1, r8
   38f7a:	4420      	add	r0, r4
   38f7c:	f7fc fdbe 	bl	35afc <memcpy>
	if (nb->len < offset + len) {
   38f80:	89ab      	ldrh	r3, [r5, #12]
   38f82:	459a      	cmp	sl, r3
   38f84:	d90a      	bls.n	38f9c <zephyr_smp_write_at+0x54>
		nb->len = offset + len;
   38f86:	fa1f f38a 	uxth.w	r3, sl
   38f8a:	81ab      	strh	r3, [r5, #12]
		writer->bytes_written = nb->len;
   38f8c:	607b      	str	r3, [r7, #4]
	return 0;
   38f8e:	2000      	movs	r0, #0
   38f90:	e000      	b.n	38f94 <zephyr_smp_write_at+0x4c>
		return MGMT_ERR_EINVAL;
   38f92:	2003      	movs	r0, #3
}
   38f94:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
		return MGMT_ERR_EINVAL;
   38f98:	2003      	movs	r0, #3
   38f9a:	e7fb      	b.n	38f94 <zephyr_smp_write_at+0x4c>
	return 0;
   38f9c:	2000      	movs	r0, #0
   38f9e:	e7f9      	b.n	38f94 <zephyr_smp_write_at+0x4c>

00038fa0 <zephyr_smp_reset_buf>:
{
   38fa0:	b508      	push	{r3, lr}
	net_buf_reset(buf);
   38fa2:	f7f0 fa89 	bl	294b8 <net_buf_reset>
}
   38fa6:	bd08      	pop	{r3, pc}

00038fa8 <zephyr_smp_rx_req>:

void
zephyr_smp_rx_req(struct zephyr_smp_transport *zst, struct net_buf *nb)
{
   38fa8:	b510      	push	{r4, lr}
   38faa:	4604      	mov	r4, r0
	net_buf_put(&zst->zst_fifo, nb);
   38fac:	3010      	adds	r0, #16
   38fae:	f7f0 fba5 	bl	296fc <net_buf_put>
	k_work_submit(&zst->zst_work);
   38fb2:	4620      	mov	r0, r4
   38fb4:	f7f7 fb5c 	bl	30670 <k_work_submit>
}
   38fb8:	bd10      	pop	{r4, pc}

00038fba <smp_bt_ccc_changed>:
}
   38fba:	4770      	bx	lr

00038fbc <smp_bt_ud_copy>:
{
   38fbc:	b510      	push	{r4, lr}
   38fbe:	4604      	mov	r4, r0
	if (src_ud->conn) {
   38fc0:	6948      	ldr	r0, [r1, #20]
   38fc2:	b110      	cbz	r0, 38fca <smp_bt_ud_copy+0xe>
		dst_ud->conn = bt_conn_ref(src_ud->conn);
   38fc4:	f7fd fc02 	bl	367cc <bt_conn_ref>
   38fc8:	6160      	str	r0, [r4, #20]
}
   38fca:	2000      	movs	r0, #0
   38fcc:	bd10      	pop	{r4, pc}

00038fce <smp_bt_conn_from_pkt>:
	if (!ud->conn) {
   38fce:	6940      	ldr	r0, [r0, #20]
   38fd0:	b118      	cbz	r0, 38fda <smp_bt_conn_from_pkt+0xc>
{
   38fd2:	b508      	push	{r3, lr}
	return bt_conn_ref(ud->conn);
   38fd4:	f7fd fbfa 	bl	367cc <bt_conn_ref>
}
   38fd8:	bd08      	pop	{r3, pc}
   38fda:	4770      	bx	lr

00038fdc <smp_bt_ud_free>:
{
   38fdc:	b510      	push	{r4, lr}
   38fde:	4604      	mov	r4, r0
	if (user_data->conn) {
   38fe0:	6800      	ldr	r0, [r0, #0]
   38fe2:	b118      	cbz	r0, 38fec <smp_bt_ud_free+0x10>
		bt_conn_unref(user_data->conn);
   38fe4:	f7ea fbea 	bl	237bc <bt_conn_unref>
		user_data->conn = NULL;
   38fe8:	2300      	movs	r3, #0
   38fea:	6023      	str	r3, [r4, #0]
}
   38fec:	bd10      	pop	{r4, pc}

00038fee <smp_bt_get_mtu>:
{
   38fee:	b538      	push	{r3, r4, r5, lr}
	conn = smp_bt_conn_from_pkt(nb);
   38ff0:	f7ff ffed 	bl	38fce <smp_bt_conn_from_pkt>
	if (conn == NULL) {
   38ff4:	b148      	cbz	r0, 3900a <smp_bt_get_mtu+0x1c>
   38ff6:	4605      	mov	r5, r0
	mtu = bt_gatt_get_mtu(conn);
   38ff8:	f7fe ff36 	bl	37e68 <bt_gatt_get_mtu>
   38ffc:	4604      	mov	r4, r0
	bt_conn_unref(conn);
   38ffe:	4628      	mov	r0, r5
   39000:	f7ea fbdc 	bl	237bc <bt_conn_unref>
	return mtu - 3;
   39004:	1ee0      	subs	r0, r4, #3
   39006:	b280      	uxth	r0, r0
}
   39008:	bd38      	pop	{r3, r4, r5, pc}
		return 0;
   3900a:	2000      	movs	r0, #0
   3900c:	e7fc      	b.n	39008 <smp_bt_get_mtu+0x1a>

0003900e <smp_bt_tx_pkt>:
{
   3900e:	b570      	push	{r4, r5, r6, lr}
   39010:	460c      	mov	r4, r1
	conn = smp_bt_conn_from_pkt(nb);
   39012:	4608      	mov	r0, r1
   39014:	f7ff ffdb 	bl	38fce <smp_bt_conn_from_pkt>
	if (conn == NULL) {
   39018:	b188      	cbz	r0, 3903e <smp_bt_tx_pkt+0x30>
   3901a:	4606      	mov	r6, r0
		rc = smp_bt_tx_rsp(conn, nb->data, nb->len);
   3901c:	89a2      	ldrh	r2, [r4, #12]
   3901e:	68a1      	ldr	r1, [r4, #8]
   39020:	f7f0 fa08 	bl	29434 <smp_bt_tx_rsp>
   39024:	4605      	mov	r5, r0
		bt_conn_unref(conn);
   39026:	4630      	mov	r0, r6
   39028:	f7ea fbc8 	bl	237bc <bt_conn_unref>
	smp_bt_ud_free(net_buf_user_data(nb));
   3902c:	f104 0014 	add.w	r0, r4, #20
   39030:	f7ff ffd4 	bl	38fdc <smp_bt_ud_free>
	mcumgr_buf_free(nb);
   39034:	4620      	mov	r0, r4
   39036:	f7ff fefb 	bl	38e30 <mcumgr_buf_free>
}
   3903a:	4628      	mov	r0, r5
   3903c:	bd70      	pop	{r4, r5, r6, pc}
		rc = -1;
   3903e:	f04f 35ff 	mov.w	r5, #4294967295
   39042:	e7f3      	b.n	3902c <smp_bt_tx_pkt+0x1e>

00039044 <mcuboot_swap_type_multi>:
	sem_ver->build_num = v1_raw.version.build_num;
	return 0;
}

int mcuboot_swap_type_multi(int image_index)
{
   39044:	b508      	push	{r3, lr}
	return boot_swap_type_multi(image_index);
   39046:	f7f3 fd7b 	bl	2cb40 <boot_swap_type_multi>
}
   3904a:	bd08      	pop	{r3, pc}

0003904c <boot_request_upgrade_multi>:
#endif /* FLASH_AREA_IMAGE_SECONDARY */
	return 0;
}

int boot_request_upgrade_multi(int image_index, int permanent)
{
   3904c:	b508      	push	{r3, lr}
	int rc;

	rc = boot_set_pending_multi(image_index, permanent);
   3904e:	f7f3 fdff 	bl	2cc50 <boot_set_pending_multi>
	if (rc) {
   39052:	b900      	cbnz	r0, 39056 <boot_request_upgrade_multi+0xa>
		return -EFAULT;
	}
	return 0;
}
   39054:	bd08      	pop	{r3, pc}
		return -EFAULT;
   39056:	f06f 000d 	mvn.w	r0, #13
   3905a:	e7fb      	b.n	39054 <boot_request_upgrade_multi+0x8>

0003905c <boot_write_img_confirmed>:

	return flag_val == BOOT_FLAG_SET;
}

int boot_write_img_confirmed(void)
{
   3905c:	b508      	push	{r3, lr}
	int rc;

	rc = boot_set_confirmed();
   3905e:	f001 f90b 	bl	3a278 <boot_set_confirmed>
	if (rc) {
   39062:	b900      	cbnz	r0, 39066 <boot_write_img_confirmed+0xa>
		return -EIO;
	}

	return 0;
}
   39064:	bd08      	pop	{r3, pc}
		return -EIO;
   39066:	f06f 0004 	mvn.w	r0, #4
   3906a:	e7fb      	b.n	39064 <boot_write_img_confirmed+0x8>

0003906c <boot_erase_img_bank>:

	return 0;
}

int boot_erase_img_bank(uint8_t area_id)
{
   3906c:	b510      	push	{r4, lr}
   3906e:	b082      	sub	sp, #8
	const struct flash_area *fa;
	int rc;

	rc = flash_area_open(area_id, &fa);
   39070:	a901      	add	r1, sp, #4
   39072:	f7e4 ff5b 	bl	1df2c <flash_area_open>
	if (rc) {
   39076:	4604      	mov	r4, r0
   39078:	b110      	cbz	r0, 39080 <boot_erase_img_bank+0x14>
	rc = flash_area_erase(fa, 0, fa->fa_size);

	flash_area_close(fa);

	return rc;
}
   3907a:	4620      	mov	r0, r4
   3907c:	b002      	add	sp, #8
   3907e:	bd10      	pop	{r4, pc}
	rc = flash_area_erase(fa, 0, fa->fa_size);
   39080:	9801      	ldr	r0, [sp, #4]
   39082:	6882      	ldr	r2, [r0, #8]
   39084:	2100      	movs	r1, #0
   39086:	f7fb f98b 	bl	343a0 <flash_area_erase>
   3908a:	4604      	mov	r4, r0
	flash_area_close(fa);
   3908c:	9801      	ldr	r0, [sp, #4]
   3908e:	f7fb f933 	bl	342f8 <flash_area_close>
	return rc;
   39092:	e7f2      	b.n	3907a <boot_erase_img_bank+0xe>

00039094 <fixed_data_unref>:
}
   39094:	4770      	bx	lr

00039096 <data_alloc>:
{
   39096:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   3909a:	4604      	mov	r4, r0
   3909c:	460d      	mov	r5, r1
   3909e:	4617      	mov	r7, r2
   390a0:	461e      	mov	r6, r3
	struct net_buf_pool *pool = net_buf_pool_get(buf->pool_id);
   390a2:	7980      	ldrb	r0, [r0, #6]
   390a4:	f7f0 f9f2 	bl	2948c <net_buf_pool_get>
	return pool->alloc->cb->alloc(buf, size, timeout);
   390a8:	6a43      	ldr	r3, [r0, #36]	; 0x24
   390aa:	681b      	ldr	r3, [r3, #0]
   390ac:	f8d3 8000 	ldr.w	r8, [r3]
   390b0:	463a      	mov	r2, r7
   390b2:	4633      	mov	r3, r6
   390b4:	4629      	mov	r1, r5
   390b6:	4620      	mov	r0, r4
   390b8:	47c0      	blx	r8
}
   390ba:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}

000390be <data_unref>:
{
   390be:	b538      	push	{r3, r4, r5, lr}
   390c0:	4604      	mov	r4, r0
   390c2:	460d      	mov	r5, r1
	struct net_buf_pool *pool = net_buf_pool_get(buf->pool_id);
   390c4:	7980      	ldrb	r0, [r0, #6]
   390c6:	f7f0 f9e1 	bl	2948c <net_buf_pool_get>
	if (buf->flags & NET_BUF_EXTERNAL_DATA) {
   390ca:	7963      	ldrb	r3, [r4, #5]
   390cc:	f013 0f02 	tst.w	r3, #2
   390d0:	d105      	bne.n	390de <data_unref+0x20>
	pool->alloc->cb->unref(buf, data);
   390d2:	6a43      	ldr	r3, [r0, #36]	; 0x24
   390d4:	681b      	ldr	r3, [r3, #0]
   390d6:	689b      	ldr	r3, [r3, #8]
   390d8:	4629      	mov	r1, r5
   390da:	4620      	mov	r0, r4
   390dc:	4798      	blx	r3
}
   390de:	bd38      	pop	{r3, r4, r5, pc}

000390e0 <fixed_data_alloc>:
{
   390e0:	b570      	push	{r4, r5, r6, lr}
   390e2:	4604      	mov	r4, r0
   390e4:	460d      	mov	r5, r1
	struct net_buf_pool *pool = net_buf_pool_get(buf->pool_id);
   390e6:	7980      	ldrb	r0, [r0, #6]
   390e8:	f7f0 f9d0 	bl	2948c <net_buf_pool_get>
	const struct net_buf_pool_fixed *fixed = pool->alloc->alloc_data;
   390ec:	6a43      	ldr	r3, [r0, #36]	; 0x24
   390ee:	685b      	ldr	r3, [r3, #4]
	*size = MIN(fixed->data_size, *size);
   390f0:	682a      	ldr	r2, [r5, #0]
   390f2:	6819      	ldr	r1, [r3, #0]
   390f4:	428a      	cmp	r2, r1
   390f6:	bf28      	it	cs
   390f8:	460a      	movcs	r2, r1
   390fa:	602a      	str	r2, [r5, #0]
	return fixed->data_pool + fixed->data_size * net_buf_id(buf);
   390fc:	685d      	ldr	r5, [r3, #4]
   390fe:	681e      	ldr	r6, [r3, #0]
   39100:	4620      	mov	r0, r4
   39102:	f7f0 f9cb 	bl	2949c <net_buf_id>
}
   39106:	fb00 5006 	mla	r0, r0, r6, r5
   3910a:	bd70      	pop	{r4, r5, r6, pc}

0003910c <net_buf_alloc_fixed>:
{
   3910c:	b508      	push	{r3, lr}
	const struct net_buf_pool_fixed *fixed = pool->alloc->alloc_data;
   3910e:	6a41      	ldr	r1, [r0, #36]	; 0x24
   39110:	6849      	ldr	r1, [r1, #4]
	return net_buf_alloc_len(pool, fixed->data_size, timeout);
   39112:	6809      	ldr	r1, [r1, #0]
   39114:	f7f0 f9f4 	bl	29500 <net_buf_alloc_len>
}
   39118:	bd08      	pop	{r3, pc}

0003911a <net_buf_simple_pull_le16>:

	return val;
}

uint16_t net_buf_simple_pull_le16(struct net_buf_simple *buf)
{
   3911a:	b510      	push	{r4, lr}
	uint16_t val;

	val = UNALIGNED_GET((uint16_t *)buf->data);
   3911c:	6803      	ldr	r3, [r0, #0]
   3911e:	881c      	ldrh	r4, [r3, #0]
	net_buf_simple_pull(buf, sizeof(val));
   39120:	2102      	movs	r1, #2
   39122:	f7f0 fbd7 	bl	298d4 <net_buf_simple_pull>

	return sys_le16_to_cpu(val);
}
   39126:	4620      	mov	r0, r4
   39128:	bd10      	pop	{r4, pc}

0003912a <net_buf_simple_headroom>:
	return sys_be64_to_cpu(val);
}

size_t net_buf_simple_headroom(struct net_buf_simple *buf)
{
	return buf->data - buf->__buf;
   3912a:	6802      	ldr	r2, [r0, #0]
   3912c:	6880      	ldr	r0, [r0, #8]
}
   3912e:	1a10      	subs	r0, r2, r0
   39130:	4770      	bx	lr

00039132 <net_buf_simple_tailroom>:

size_t net_buf_simple_tailroom(struct net_buf_simple *buf)
{
   39132:	b538      	push	{r3, r4, r5, lr}
   39134:	4604      	mov	r4, r0
	return buf->size - net_buf_simple_headroom(buf) - buf->len;
   39136:	88c5      	ldrh	r5, [r0, #6]
   39138:	f7ff fff7 	bl	3912a <net_buf_simple_headroom>
   3913c:	1a2d      	subs	r5, r5, r0
   3913e:	88a0      	ldrh	r0, [r4, #4]
}
   39140:	1a28      	subs	r0, r5, r0
   39142:	bd38      	pop	{r3, r4, r5, pc}

00039144 <net_buf_simple_add_mem>:
{
   39144:	b538      	push	{r3, r4, r5, lr}
   39146:	460d      	mov	r5, r1
   39148:	4614      	mov	r4, r2
	return memcpy(net_buf_simple_add(buf, len), mem, len);
   3914a:	4611      	mov	r1, r2
   3914c:	f7f0 fc20 	bl	29990 <net_buf_simple_add>
   39150:	4622      	mov	r2, r4
   39152:	4629      	mov	r1, r5
   39154:	f7fc fcd2 	bl	35afc <memcpy>
}
   39158:	bd38      	pop	{r3, r4, r5, pc}

0003915a <net_buf_simple_add_u8>:
{
   3915a:	b510      	push	{r4, lr}
   3915c:	460c      	mov	r4, r1
	u8 = net_buf_simple_add(buf, 1);
   3915e:	2101      	movs	r1, #1
   39160:	f7f0 fc16 	bl	29990 <net_buf_simple_add>
	*u8 = val;
   39164:	7004      	strb	r4, [r0, #0]
}
   39166:	bd10      	pop	{r4, pc}

00039168 <get_sub_data>:
	struct nrf_clock_control_data *data = dev->data;
   39168:	6900      	ldr	r0, [r0, #16]
	return &data->subsys[type];
   3916a:	eb01 0141 	add.w	r1, r1, r1, lsl #1
   3916e:	0089      	lsls	r1, r1, #2
   39170:	3140      	adds	r1, #64	; 0x40
}
   39172:	4408      	add	r0, r1
   39174:	4770      	bx	lr

00039176 <get_sub_config>:
	const struct nrf_clock_control_config *config =
   39176:	6840      	ldr	r0, [r0, #4]
	return &config->subsys[type];
   39178:	eb01 0141 	add.w	r1, r1, r1, lsl #1
}
   3917c:	eb00 0081 	add.w	r0, r0, r1, lsl #2
   39180:	4770      	bx	lr

00039182 <get_onoff_manager>:
	struct nrf_clock_control_data *data = dev->data;
   39182:	6900      	ldr	r0, [r0, #16]
}
   39184:	eb00 1041 	add.w	r0, r0, r1, lsl #5
   39188:	4770      	bx	lr

0003918a <set_off_state>:
   3918a:	f04f 0340 	mov.w	r3, #64	; 0x40
   3918e:	f3ef 8211 	mrs	r2, BASEPRI
   39192:	f383 8812 	msr	BASEPRI_MAX, r3
   39196:	f3bf 8f6f 	isb	sy
	uint32_t current_ctx = GET_CTX(*flags);
   3919a:	6803      	ldr	r3, [r0, #0]
	if ((current_ctx != 0) && (current_ctx != ctx)) {
   3919c:	f013 03c0 	ands.w	r3, r3, #192	; 0xc0
   391a0:	d001      	beq.n	391a6 <set_off_state+0x1c>
   391a2:	428b      	cmp	r3, r1
   391a4:	d107      	bne.n	391b6 <set_off_state+0x2c>
		*flags = CLOCK_CONTROL_STATUS_OFF;
   391a6:	2301      	movs	r3, #1
   391a8:	6003      	str	r3, [r0, #0]
	int err = 0;
   391aa:	2000      	movs	r0, #0
	__asm__ volatile(
   391ac:	f382 8811 	msr	BASEPRI, r2
   391b0:	f3bf 8f6f 	isb	sy
}
   391b4:	4770      	bx	lr
		err = -EPERM;
   391b6:	f04f 30ff 	mov.w	r0, #4294967295
   391ba:	e7f7      	b.n	391ac <set_off_state+0x22>

000391bc <set_starting_state>:
{
   391bc:	b410      	push	{r4}
	__asm__ volatile(
   391be:	f04f 0340 	mov.w	r3, #64	; 0x40
   391c2:	f3ef 8211 	mrs	r2, BASEPRI
   391c6:	f383 8812 	msr	BASEPRI_MAX, r3
   391ca:	f3bf 8f6f 	isb	sy
	uint32_t current_ctx = GET_CTX(*flags);
   391ce:	6803      	ldr	r3, [r0, #0]
   391d0:	f003 04c0 	and.w	r4, r3, #192	; 0xc0
	if ((*flags & (STATUS_MASK)) == CLOCK_CONTROL_STATUS_OFF) {
   391d4:	f003 0307 	and.w	r3, r3, #7
   391d8:	2b01      	cmp	r3, #1
   391da:	d009      	beq.n	391f0 <set_starting_state+0x34>
	} else if (current_ctx != ctx) {
   391dc:	428c      	cmp	r4, r1
   391de:	d00a      	beq.n	391f6 <set_starting_state+0x3a>
		err = -EPERM;
   391e0:	f04f 30ff 	mov.w	r0, #4294967295
	__asm__ volatile(
   391e4:	f382 8811 	msr	BASEPRI, r2
   391e8:	f3bf 8f6f 	isb	sy
}
   391ec:	bc10      	pop	{r4}
   391ee:	4770      	bx	lr
		*flags = CLOCK_CONTROL_STATUS_STARTING | ctx;
   391f0:	6001      	str	r1, [r0, #0]
	int err = 0;
   391f2:	2000      	movs	r0, #0
   391f4:	e7f6      	b.n	391e4 <set_starting_state+0x28>
		err = -EALREADY;
   391f6:	f06f 0077 	mvn.w	r0, #119	; 0x77
   391fa:	e7f3      	b.n	391e4 <set_starting_state+0x28>

000391fc <set_on_state>:
	__asm__ volatile(
   391fc:	f04f 0340 	mov.w	r3, #64	; 0x40
   39200:	f3ef 8211 	mrs	r2, BASEPRI
   39204:	f383 8812 	msr	BASEPRI_MAX, r3
   39208:	f3bf 8f6f 	isb	sy
	*flags = CLOCK_CONTROL_STATUS_ON | GET_CTX(*flags);
   3920c:	6803      	ldr	r3, [r0, #0]
   3920e:	f003 03c0 	and.w	r3, r3, #192	; 0xc0
   39212:	f043 0302 	orr.w	r3, r3, #2
   39216:	6003      	str	r3, [r0, #0]
	__asm__ volatile(
   39218:	f382 8811 	msr	BASEPRI, r2
   3921c:	f3bf 8f6f 	isb	sy
}
   39220:	4770      	bx	lr

00039222 <clkstarted_handle>:
{
   39222:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
   39224:	4606      	mov	r6, r0
   39226:	460c      	mov	r4, r1
	struct nrf_clock_control_sub_data *sub_data = get_sub_data(dev, type);
   39228:	f7ff ff9e 	bl	39168 <get_sub_data>
	clock_control_cb_t callback = sub_data->cb;
   3922c:	6805      	ldr	r5, [r0, #0]
	void *user_data = sub_data->user_data;
   3922e:	6847      	ldr	r7, [r0, #4]
	sub_data->cb = NULL;
   39230:	2300      	movs	r3, #0
   39232:	f840 3b08 	str.w	r3, [r0], #8
	set_on_state(&sub_data->flags);
   39236:	f7ff ffe1 	bl	391fc <set_on_state>
	if (callback) {
   3923a:	b11d      	cbz	r5, 39244 <clkstarted_handle+0x22>
		callback(dev, (clock_control_subsys_t)type, user_data);
   3923c:	463a      	mov	r2, r7
   3923e:	4621      	mov	r1, r4
   39240:	4630      	mov	r0, r6
   39242:	47a8      	blx	r5
}
   39244:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}

00039246 <async_start>:
{
   39246:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   3924a:	4606      	mov	r6, r0
   3924c:	4690      	mov	r8, r2
   3924e:	461f      	mov	r7, r3
	enum clock_control_nrf_type type = (enum clock_control_nrf_type)subsys;
   39250:	b2cd      	uxtb	r5, r1
	struct nrf_clock_control_sub_data *subdata = get_sub_data(dev, type);
   39252:	4629      	mov	r1, r5
   39254:	f7ff ff88 	bl	39168 <get_sub_data>
   39258:	4604      	mov	r4, r0
	err = set_starting_state(&subdata->flags, ctx);
   3925a:	9906      	ldr	r1, [sp, #24]
   3925c:	3008      	adds	r0, #8
   3925e:	f7ff ffad 	bl	391bc <set_starting_state>
	if (err < 0) {
   39262:	2800      	cmp	r0, #0
   39264:	db09      	blt.n	3927a <async_start+0x34>
	subdata->cb = cb;
   39266:	f8c4 8000 	str.w	r8, [r4]
	subdata->user_data = user_data;
   3926a:	6067      	str	r7, [r4, #4]
	 get_sub_config(dev, type)->start();
   3926c:	4629      	mov	r1, r5
   3926e:	4630      	mov	r0, r6
   39270:	f7ff ff81 	bl	39176 <get_sub_config>
   39274:	6803      	ldr	r3, [r0, #0]
   39276:	4798      	blx	r3
	return 0;
   39278:	2000      	movs	r0, #0
}
   3927a:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}

0003927e <api_start>:
{
   3927e:	b510      	push	{r4, lr}
   39280:	b082      	sub	sp, #8
	return async_start(dev, subsys, cb, user_data, CTX_API);
   39282:	2480      	movs	r4, #128	; 0x80
   39284:	9400      	str	r4, [sp, #0]
   39286:	f7ff ffde 	bl	39246 <async_start>
}
   3928a:	b002      	add	sp, #8
   3928c:	bd10      	pop	{r4, pc}

0003928e <onoff_started_callback>:
{
   3928e:	b510      	push	{r4, lr}
   39290:	4614      	mov	r4, r2
	struct onoff_manager *mgr = get_onoff_manager(dev, type);
   39292:	b2c9      	uxtb	r1, r1
   39294:	f7ff ff75 	bl	39182 <get_onoff_manager>
	notify(mgr, 0);
   39298:	2100      	movs	r1, #0
   3929a:	47a0      	blx	r4
}
   3929c:	bd10      	pop	{r4, pc}

0003929e <hfclk_start>:
{
   3929e:	b508      	push	{r3, lr}
    nrfx_clock_stop(NRF_CLOCK_DOMAIN_LFCLK);
}

NRFX_STATIC_INLINE void nrfx_clock_hfclk_start(void)
{
    nrfx_clock_start(NRF_CLOCK_DOMAIN_HFCLK);
   392a0:	2001      	movs	r0, #1
   392a2:	f7f3 fa4b 	bl	2c73c <nrfx_clock_start>
}
   392a6:	bd08      	pop	{r3, pc}

000392a8 <lfclk_start>:
{
   392a8:	b508      	push	{r3, lr}
    nrfx_clock_start(NRF_CLOCK_DOMAIN_LFCLK);
   392aa:	2000      	movs	r0, #0
   392ac:	f7f3 fa46 	bl	2c73c <nrfx_clock_start>
}
   392b0:	bd08      	pop	{r3, pc}

000392b2 <hfclk_stop>:
{
   392b2:	b508      	push	{r3, lr}
}

NRFX_STATIC_INLINE void nrfx_clock_hfclk_stop(void)
{
    nrfx_clock_stop(NRF_CLOCK_DOMAIN_HFCLK);
   392b4:	2001      	movs	r0, #1
   392b6:	f7f3 fa61 	bl	2c77c <nrfx_clock_stop>
}
   392ba:	bd08      	pop	{r3, pc}

000392bc <lfclk_stop>:
{
   392bc:	b508      	push	{r3, lr}
    nrfx_clock_stop(NRF_CLOCK_DOMAIN_LFCLK);
   392be:	2000      	movs	r0, #0
   392c0:	f7f3 fa5c 	bl	2c77c <nrfx_clock_stop>
}
   392c4:	bd08      	pop	{r3, pc}

000392c6 <api_stop>:
{
   392c6:	b508      	push	{r3, lr}
	return stop(dev, subsys, CTX_API);
   392c8:	2280      	movs	r2, #128	; 0x80
   392ca:	f7f0 fc0d 	bl	29ae8 <stop>
}
   392ce:	bd08      	pop	{r3, pc}

000392d0 <blocking_start_callback>:
{
   392d0:	b508      	push	{r3, lr}
   392d2:	4610      	mov	r0, r2
	z_impl_k_sem_give(sem);
   392d4:	f7f6 fe26 	bl	2ff24 <z_impl_k_sem_give>
}
   392d8:	bd08      	pop	{r3, pc}

000392da <gpio_nrfx_port_get_raw>:
	return port->config;
   392da:	6843      	ldr	r3, [r0, #4]
	NRF_GPIO_Type *reg = get_port_cfg(port)->port;
   392dc:	685b      	ldr	r3, [r3, #4]
    return p_reg->IN;
   392de:	f8d3 3510 	ldr.w	r3, [r3, #1296]	; 0x510
	*value = nrf_gpio_port_in_read(reg);
   392e2:	600b      	str	r3, [r1, #0]
}
   392e4:	2000      	movs	r0, #0
   392e6:	4770      	bx	lr

000392e8 <gpio_nrfx_port_set_masked_raw>:
	return port->config;
   392e8:	6843      	ldr	r3, [r0, #4]
	NRF_GPIO_Type *reg = get_port_cfg(port)->port;
   392ea:	685b      	ldr	r3, [r3, #4]
    return p_reg->OUT;
   392ec:	f8d3 0504 	ldr.w	r0, [r3, #1284]	; 0x504
	nrf_gpio_port_out_write(reg, value_tmp | (mask & value));
   392f0:	4042      	eors	r2, r0
   392f2:	400a      	ands	r2, r1
   392f4:	4042      	eors	r2, r0
    p_reg->OUT = value;
   392f6:	f8c3 2504 	str.w	r2, [r3, #1284]	; 0x504
}
   392fa:	2000      	movs	r0, #0
   392fc:	4770      	bx	lr

000392fe <gpio_nrfx_port_set_bits_raw>:
	return port->config;
   392fe:	6843      	ldr	r3, [r0, #4]
	NRF_GPIO_Type *reg = get_port_cfg(port)->port;
   39300:	685b      	ldr	r3, [r3, #4]
    p_reg->OUTSET = set_mask;
   39302:	f8c3 1508 	str.w	r1, [r3, #1288]	; 0x508
}
   39306:	2000      	movs	r0, #0
   39308:	4770      	bx	lr

0003930a <gpio_nrfx_port_clear_bits_raw>:
	return port->config;
   3930a:	6843      	ldr	r3, [r0, #4]
	NRF_GPIO_Type *reg = get_port_cfg(port)->port;
   3930c:	685b      	ldr	r3, [r3, #4]
    p_reg->OUTCLR = clr_mask;
   3930e:	f8c3 150c 	str.w	r1, [r3, #1292]	; 0x50c
}
   39312:	2000      	movs	r0, #0
   39314:	4770      	bx	lr

00039316 <gpio_nrfx_port_toggle_bits>:
	return port->config;
   39316:	6843      	ldr	r3, [r0, #4]
	NRF_GPIO_Type *reg = get_port_cfg(port)->port;
   39318:	685a      	ldr	r2, [r3, #4]
    return p_reg->OUT;
   3931a:	f8d2 3504 	ldr.w	r3, [r2, #1284]	; 0x504
	nrf_gpio_port_out_write(reg, value ^ mask);
   3931e:	404b      	eors	r3, r1
    p_reg->OUT = value;
   39320:	f8c2 3504 	str.w	r3, [r2, #1284]	; 0x504
}
   39324:	2000      	movs	r0, #0
   39326:	4770      	bx	lr

00039328 <shift_write_context>:
	return (e_ctx->len > 0) ? FLASH_OP_ONGOING : FLASH_OP_DONE;
}

static void shift_write_context(uint32_t shift, struct flash_context *w_ctx)
{
	w_ctx->flash_addr += shift;
   39328:	684b      	ldr	r3, [r1, #4]
   3932a:	4403      	add	r3, r0
   3932c:	604b      	str	r3, [r1, #4]
	w_ctx->data_addr += shift;
   3932e:	680b      	ldr	r3, [r1, #0]
   39330:	4403      	add	r3, r0
   39332:	600b      	str	r3, [r1, #0]
	w_ctx->len -= shift;
   39334:	688b      	ldr	r3, [r1, #8]
   39336:	1a18      	subs	r0, r3, r0
   39338:	6088      	str	r0, [r1, #8]
}
   3933a:	4770      	bx	lr

0003933c <erase_op>:
{
   3933c:	b570      	push	{r4, r5, r6, lr}
   3933e:	4604      	mov	r4, r0
	uint32_t pg_size = nrfx_nvmc_flash_page_size_get();
   39340:	f000 ffcf 	bl	3a2e2 <nrfx_nvmc_flash_page_size_get>
   39344:	4606      	mov	r6, r0
	if (e_ctx->enable_time_limit) {
   39346:	7b23      	ldrb	r3, [r4, #12]
   39348:	b90b      	cbnz	r3, 3934e <erase_op+0x12>
{
   3934a:	2500      	movs	r5, #0
   3934c:	e004      	b.n	39358 <erase_op+0x1c>
		nrf_flash_sync_get_timestamp_begin();
   3934e:	f000 fe77 	bl	3a040 <nrf_flash_sync_get_timestamp_begin>
   39352:	e7fa      	b.n	3934a <erase_op+0xe>
	} while (e_ctx->len > 0);
   39354:	68a3      	ldr	r3, [r4, #8]
   39356:	b18b      	cbz	r3, 3937c <erase_op+0x40>
		(void)nrfx_nvmc_page_erase(e_ctx->flash_addr);
   39358:	6860      	ldr	r0, [r4, #4]
   3935a:	f7f3 fe4f 	bl	2cffc <nrfx_nvmc_page_erase>
		e_ctx->len -= pg_size;
   3935e:	68a3      	ldr	r3, [r4, #8]
   39360:	1b9b      	subs	r3, r3, r6
   39362:	60a3      	str	r3, [r4, #8]
		e_ctx->flash_addr += pg_size;
   39364:	6863      	ldr	r3, [r4, #4]
   39366:	4433      	add	r3, r6
   39368:	6063      	str	r3, [r4, #4]
		i++;
   3936a:	3501      	adds	r5, #1
		if (e_ctx->enable_time_limit) {
   3936c:	7b23      	ldrb	r3, [r4, #12]
   3936e:	2b00      	cmp	r3, #0
   39370:	d0f0      	beq.n	39354 <erase_op+0x18>
			if (nrf_flash_sync_check_time_limit(i)) {
   39372:	4628      	mov	r0, r5
   39374:	f7f3 fb82 	bl	2ca7c <nrf_flash_sync_check_time_limit>
   39378:	2800      	cmp	r0, #0
   3937a:	d0eb      	beq.n	39354 <erase_op+0x18>
	return (e_ctx->len > 0) ? FLASH_OP_ONGOING : FLASH_OP_DONE;
   3937c:	68a0      	ldr	r0, [r4, #8]
}
   3937e:	3800      	subs	r0, #0
   39380:	bf18      	it	ne
   39382:	2001      	movne	r0, #1
   39384:	bd70      	pop	{r4, r5, r6, pc}

00039386 <erase>:

	return FLASH_OP_DONE;
}

static int erase(uint32_t addr, uint32_t size)
{
   39386:	b500      	push	{lr}
   39388:	b085      	sub	sp, #20
	struct flash_context context = {
   3938a:	2300      	movs	r3, #0
   3938c:	9300      	str	r3, [sp, #0]
   3938e:	9303      	str	r3, [sp, #12]
   39390:	9001      	str	r0, [sp, #4]
   39392:	9102      	str	r1, [sp, #8]
#if defined(CONFIG_SOC_FLASH_NRF_PARTIAL_ERASE)
		.flash_addr_next = addr
#endif
	};

	return	erase_op(&context);
   39394:	4668      	mov	r0, sp
   39396:	f7ff ffd1 	bl	3933c <erase_op>
}
   3939a:	b005      	add	sp, #20
   3939c:	f85d fb04 	ldr.w	pc, [sp], #4

000393a0 <write_op>:
{
   393a0:	b538      	push	{r3, r4, r5, lr}
   393a2:	4604      	mov	r4, r0
	if (w_ctx->enable_time_limit) {
   393a4:	7b03      	ldrb	r3, [r0, #12]
   393a6:	b9cb      	cbnz	r3, 393dc <write_op+0x3c>
{
   393a8:	2501      	movs	r5, #1
	while (w_ctx->len >= sizeof(uint32_t)) {
   393aa:	68a3      	ldr	r3, [r4, #8]
   393ac:	2b03      	cmp	r3, #3
   393ae:	d918      	bls.n	393e2 <write_op+0x42>
				     UNALIGNED_GET((uint32_t *)w_ctx->data_addr));
   393b0:	6823      	ldr	r3, [r4, #0]
		nrfx_nvmc_word_write(w_ctx->flash_addr,
   393b2:	6819      	ldr	r1, [r3, #0]
   393b4:	6860      	ldr	r0, [r4, #4]
   393b6:	f7f3 fe53 	bl	2d060 <nrfx_nvmc_word_write>
		shift_write_context(sizeof(uint32_t), w_ctx);
   393ba:	4621      	mov	r1, r4
   393bc:	2004      	movs	r0, #4
   393be:	f7ff ffb3 	bl	39328 <shift_write_context>
		i++;
   393c2:	3501      	adds	r5, #1
		if (w_ctx->enable_time_limit) {
   393c4:	7b23      	ldrb	r3, [r4, #12]
   393c6:	2b00      	cmp	r3, #0
   393c8:	d0ef      	beq.n	393aa <write_op+0xa>
			if (nrf_flash_sync_check_time_limit(i)) {
   393ca:	4628      	mov	r0, r5
   393cc:	f7f3 fb56 	bl	2ca7c <nrf_flash_sync_check_time_limit>
   393d0:	2800      	cmp	r0, #0
   393d2:	d0ea      	beq.n	393aa <write_op+0xa>
				nvmc_wait_ready();
   393d4:	f7f1 fa24 	bl	2a820 <nvmc_wait_ready>
				return FLASH_OP_ONGOING;
   393d8:	2001      	movs	r0, #1
   393da:	e005      	b.n	393e8 <write_op+0x48>
		nrf_flash_sync_get_timestamp_begin();
   393dc:	f000 fe30 	bl	3a040 <nrf_flash_sync_get_timestamp_begin>
   393e0:	e7e2      	b.n	393a8 <write_op+0x8>
	nvmc_wait_ready();
   393e2:	f7f1 fa1d 	bl	2a820 <nvmc_wait_ready>
	return FLASH_OP_DONE;
   393e6:	2000      	movs	r0, #0
}
   393e8:	bd38      	pop	{r3, r4, r5, pc}

000393ea <write>:

static int write(off_t addr, const void *data, size_t len)
{
   393ea:	b500      	push	{lr}
   393ec:	b085      	sub	sp, #20
	struct flash_context context = {
   393ee:	9100      	str	r1, [sp, #0]
   393f0:	9001      	str	r0, [sp, #4]
   393f2:	9202      	str	r2, [sp, #8]
   393f4:	2300      	movs	r3, #0
   393f6:	f88d 300c 	strb.w	r3, [sp, #12]
#ifndef CONFIG_SOC_FLASH_NRF_RADIO_SYNC_NONE
		.enable_time_limit = 0 /* disable time limit */
#endif /* !CONFIG_SOC_FLASH_NRF_RADIO_SYNC_NONE */
	};

	return write_op(&context);
   393fa:	4668      	mov	r0, sp
   393fc:	f7ff ffd0 	bl	393a0 <write_op>
}
   39400:	b005      	add	sp, #20
   39402:	f85d fb04 	ldr.w	pc, [sp], #4

00039406 <flash_get_page_info>:

#include <drivers/flash.h>

static int flash_get_page_info(const struct device *dev, off_t offs,
			       uint32_t index, struct flash_pages_info *info)
{
   39406:	b5f0      	push	{r4, r5, r6, r7, lr}
   39408:	b083      	sub	sp, #12
   3940a:	460e      	mov	r6, r1
   3940c:	4617      	mov	r7, r2
   3940e:	461c      	mov	r4, r3
	const struct flash_driver_api *api = dev->api;
   39410:	6882      	ldr	r2, [r0, #8]
	const struct flash_pages_layout *layout;
	size_t layout_size;
	uint32_t index_jmp;

	info->start_offset = 0;
   39412:	2300      	movs	r3, #0
   39414:	6023      	str	r3, [r4, #0]
	info->index = 0U;
   39416:	60a3      	str	r3, [r4, #8]

	api->page_layout(dev, &layout, &layout_size);
   39418:	6953      	ldr	r3, [r2, #20]
   3941a:	466a      	mov	r2, sp
   3941c:	a901      	add	r1, sp, #4
   3941e:	4798      	blx	r3

	while (layout_size--) {
   39420:	e014      	b.n	3944c <flash_get_page_info+0x46>
		info->size = layout->pages_size;
		if (offs == 0) {
			index_jmp = index - info->index;
		} else {
			index_jmp = (offs - info->start_offset) / info->size;
   39422:	6823      	ldr	r3, [r4, #0]
   39424:	1af3      	subs	r3, r6, r3
   39426:	fbb3 f5f0 	udiv	r5, r3, r0
		}

		index_jmp = MIN(index_jmp, layout->pages_count);
   3942a:	6813      	ldr	r3, [r2, #0]
   3942c:	42ab      	cmp	r3, r5
   3942e:	bf28      	it	cs
   39430:	462b      	movcs	r3, r5
		info->start_offset += (index_jmp * info->size);
   39432:	6822      	ldr	r2, [r4, #0]
   39434:	fb03 2000 	mla	r0, r3, r0, r2
   39438:	6020      	str	r0, [r4, #0]
		info->index += index_jmp;
   3943a:	68a2      	ldr	r2, [r4, #8]
   3943c:	441a      	add	r2, r3
   3943e:	60a2      	str	r2, [r4, #8]
		if (index_jmp < layout->pages_count) {
   39440:	9a01      	ldr	r2, [sp, #4]
   39442:	6811      	ldr	r1, [r2, #0]
   39444:	4299      	cmp	r1, r3
   39446:	d811      	bhi.n	3946c <flash_get_page_info+0x66>
			return 0;
		}

		layout++;
   39448:	3208      	adds	r2, #8
   3944a:	9201      	str	r2, [sp, #4]
	while (layout_size--) {
   3944c:	9b00      	ldr	r3, [sp, #0]
   3944e:	1e5a      	subs	r2, r3, #1
   39450:	9200      	str	r2, [sp, #0]
   39452:	b13b      	cbz	r3, 39464 <flash_get_page_info+0x5e>
		info->size = layout->pages_size;
   39454:	9a01      	ldr	r2, [sp, #4]
   39456:	6850      	ldr	r0, [r2, #4]
   39458:	6060      	str	r0, [r4, #4]
		if (offs == 0) {
   3945a:	2e00      	cmp	r6, #0
   3945c:	d1e1      	bne.n	39422 <flash_get_page_info+0x1c>
			index_jmp = index - info->index;
   3945e:	68a3      	ldr	r3, [r4, #8]
   39460:	1afd      	subs	r5, r7, r3
   39462:	e7e2      	b.n	3942a <flash_get_page_info+0x24>
	}

	return -EINVAL; /* page at offs or idx doesn't exist */
   39464:	f06f 0015 	mvn.w	r0, #21
}
   39468:	b003      	add	sp, #12
   3946a:	bdf0      	pop	{r4, r5, r6, r7, pc}
			return 0;
   3946c:	2000      	movs	r0, #0
   3946e:	e7fb      	b.n	39468 <flash_get_page_info+0x62>

00039470 <z_impl_flash_get_page_info_by_offs>:

int z_impl_flash_get_page_info_by_offs(const struct device *dev, off_t offs,
				       struct flash_pages_info *info)
{
   39470:	b508      	push	{r3, lr}
   39472:	4613      	mov	r3, r2
	return flash_get_page_info(dev, offs, 0U, info);
   39474:	2200      	movs	r2, #0
   39476:	f7ff ffc6 	bl	39406 <flash_get_page_info>
}
   3947a:	bd08      	pop	{r3, pc}

0003947c <flash_page_foreach>:
	return count;
}

void flash_page_foreach(const struct device *dev, flash_page_cb cb,
			void *data)
{
   3947c:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
   39480:	b086      	sub	sp, #24
   39482:	4689      	mov	r9, r1
   39484:	4690      	mov	r8, r2
	const struct flash_driver_api *api = dev->api;
   39486:	6883      	ldr	r3, [r0, #8]
	const struct flash_pages_layout *layout;
	struct flash_pages_info page_info;
	size_t block, num_blocks, page = 0, i;
	off_t off = 0;

	api->page_layout(dev, &layout, &num_blocks);
   39488:	695b      	ldr	r3, [r3, #20]
   3948a:	aa01      	add	r2, sp, #4
   3948c:	a905      	add	r1, sp, #20
   3948e:	4798      	blx	r3
	off_t off = 0;
   39490:	2400      	movs	r4, #0
	size_t block, num_blocks, page = 0, i;
   39492:	4626      	mov	r6, r4

	for (block = 0; block < num_blocks; block++) {
   39494:	46a2      	mov	sl, r4
   39496:	9b01      	ldr	r3, [sp, #4]
   39498:	4553      	cmp	r3, sl
   3949a:	d916      	bls.n	394ca <flash_page_foreach+0x4e>
		const struct flash_pages_layout *l = &layout[block];
   3949c:	9f05      	ldr	r7, [sp, #20]
   3949e:	eb07 07ca 	add.w	r7, r7, sl, lsl #3
		page_info.size = l->pages_size;
   394a2:	687b      	ldr	r3, [r7, #4]
   394a4:	9303      	str	r3, [sp, #12]

		for (i = 0; i < l->pages_count; i++) {
   394a6:	2500      	movs	r5, #0
   394a8:	683b      	ldr	r3, [r7, #0]
   394aa:	42ab      	cmp	r3, r5
   394ac:	d90a      	bls.n	394c4 <flash_page_foreach+0x48>
			page_info.start_offset = off;
   394ae:	9402      	str	r4, [sp, #8]
			page_info.index = page;
   394b0:	9604      	str	r6, [sp, #16]

			if (!cb(&page_info, data)) {
   394b2:	4641      	mov	r1, r8
   394b4:	a802      	add	r0, sp, #8
   394b6:	47c8      	blx	r9
   394b8:	b138      	cbz	r0, 394ca <flash_page_foreach+0x4e>
				return;
			}

			off += page_info.size;
   394ba:	9b03      	ldr	r3, [sp, #12]
   394bc:	441c      	add	r4, r3
			page++;
   394be:	3601      	adds	r6, #1
		for (i = 0; i < l->pages_count; i++) {
   394c0:	3501      	adds	r5, #1
   394c2:	e7f1      	b.n	394a8 <flash_page_foreach+0x2c>
	for (block = 0; block < num_blocks; block++) {
   394c4:	f10a 0a01 	add.w	sl, sl, #1
   394c8:	e7e5      	b.n	39496 <flash_page_foreach+0x1a>
		}
	}
}
   394ca:	b006      	add	sp, #24
   394cc:	e8bd 87f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, sl, pc}

000394d0 <endtx_isr>:
	return dev->config;
   394d0:	6843      	ldr	r3, [r0, #4]
	return config->uarte_regs;
   394d2:	681b      	ldr	r3, [r3, #0]
	__asm__ volatile(
   394d4:	f04f 0140 	mov.w	r1, #64	; 0x40
   394d8:	f3ef 8211 	mrs	r2, BASEPRI
   394dc:	f381 8812 	msr	BASEPRI_MAX, r1
   394e0:	f3bf 8f6f 	isb	sy
    return (bool)*(volatile uint32_t *)((uint8_t *)p_reg + (uint32_t)event);
   394e4:	f8d3 1120 	ldr.w	r1, [r3, #288]	; 0x120
	if (nrf_uarte_event_check(uarte, NRF_UARTE_EVENT_ENDTX)) {
   394e8:	b131      	cbz	r1, 394f8 <endtx_isr+0x28>
    *((volatile uint32_t *)((uint8_t *)p_reg + (uint32_t)event)) = 0x0UL;
   394ea:	2100      	movs	r1, #0
   394ec:	f8c3 1120 	str.w	r1, [r3, #288]	; 0x120
   394f0:	f8d3 1120 	ldr.w	r1, [r3, #288]	; 0x120
    *((volatile uint32_t *)((uint8_t *)p_reg + (uint32_t)task)) = 0x1UL;
   394f4:	2101      	movs	r1, #1
   394f6:	60d9      	str	r1, [r3, #12]
	__asm__ volatile(
   394f8:	f382 8811 	msr	BASEPRI, r2
   394fc:	f3bf 8f6f 	isb	sy
}
   39500:	4770      	bx	lr

00039502 <uarte_nrfx_isr_int>:
{
   39502:	b538      	push	{r3, r4, r5, lr}
   39504:	4604      	mov	r4, r0
	return dev->config;
   39506:	6843      	ldr	r3, [r0, #4]
	return config->uarte_regs;
   39508:	681d      	ldr	r5, [r3, #0]
    return p_reg->INTENSET & mask;
   3950a:	f8d5 3304 	ldr.w	r3, [r5, #772]	; 0x304
	if (nrf_uarte_int_enable_check(uarte, NRF_UARTE_INT_ENDTX_MASK) &&
   3950e:	f413 7f80 	tst.w	r3, #256	; 0x100
   39512:	d002      	beq.n	3951a <uarte_nrfx_isr_int+0x18>
    return (bool)*(volatile uint32_t *)((uint8_t *)p_reg + (uint32_t)event);
   39514:	f8d5 3120 	ldr.w	r3, [r5, #288]	; 0x120
   39518:	b9db      	cbnz	r3, 39552 <uarte_nrfx_isr_int+0x50>
	return dev->config;
   3951a:	6863      	ldr	r3, [r4, #4]
	if (get_dev_config(dev)->flags & UARTE_CFG_FLAG_LOW_POWER) {
   3951c:	685b      	ldr	r3, [r3, #4]
   3951e:	f013 0f10 	tst.w	r3, #16
   39522:	d015      	beq.n	39550 <uarte_nrfx_isr_int+0x4e>
	__asm__ volatile(
   39524:	f04f 0240 	mov.w	r2, #64	; 0x40
   39528:	f3ef 8311 	mrs	r3, BASEPRI
   3952c:	f382 8812 	msr	BASEPRI_MAX, r2
   39530:	f3bf 8f6f 	isb	sy
   39534:	f8d5 2158 	ldr.w	r2, [r5, #344]	; 0x158
		if (nrf_uarte_event_check(uarte, NRF_UARTE_EVENT_TXSTOPPED)) {
   39538:	b112      	cbz	r2, 39540 <uarte_nrfx_isr_int+0x3e>
    p_reg->ENABLE = UARTE_ENABLE_ENABLE_Disabled;
   3953a:	2200      	movs	r2, #0
   3953c:	f8c5 2500 	str.w	r2, [r5, #1280]	; 0x500
    p_reg->INTENCLR = mask;
   39540:	f44f 0280 	mov.w	r2, #4194304	; 0x400000
   39544:	f8c5 2308 	str.w	r2, [r5, #776]	; 0x308
	__asm__ volatile(
   39548:	f383 8811 	msr	BASEPRI, r3
   3954c:	f3bf 8f6f 	isb	sy
}
   39550:	bd38      	pop	{r3, r4, r5, pc}
		endtx_isr(dev);
   39552:	f7ff ffbd 	bl	394d0 <endtx_isr>
   39556:	e7e0      	b.n	3951a <uarte_nrfx_isr_int+0x18>

00039558 <uarte_nrfx_configure>:
{
   39558:	b530      	push	{r4, r5, lr}
   3955a:	b083      	sub	sp, #12
   3955c:	4605      	mov	r5, r0
   3955e:	460c      	mov	r4, r1
	switch (cfg->stop_bits) {
   39560:	794b      	ldrb	r3, [r1, #5]
   39562:	2b01      	cmp	r3, #1
   39564:	d006      	beq.n	39574 <uarte_nrfx_configure+0x1c>
   39566:	2b03      	cmp	r3, #3
   39568:	d011      	beq.n	3958e <uarte_nrfx_configure+0x36>
   3956a:	f06f 0285 	mvn.w	r2, #133	; 0x85
}
   3956e:	4610      	mov	r0, r2
   39570:	b003      	add	sp, #12
   39572:	bd30      	pop	{r4, r5, pc}
		uarte_cfg.stop = NRF_UARTE_STOP_ONE;
   39574:	2300      	movs	r3, #0
   39576:	f88d 3002 	strb.w	r3, [sp, #2]
	if (cfg->data_bits != UART_CFG_DATA_BITS_8) {
   3957a:	79a3      	ldrb	r3, [r4, #6]
   3957c:	2b03      	cmp	r3, #3
   3957e:	d14f      	bne.n	39620 <uarte_nrfx_configure+0xc8>
	switch (cfg->flow_ctrl) {
   39580:	79e3      	ldrb	r3, [r4, #7]
   39582:	b143      	cbz	r3, 39596 <uarte_nrfx_configure+0x3e>
   39584:	2b01      	cmp	r3, #1
   39586:	d015      	beq.n	395b4 <uarte_nrfx_configure+0x5c>
   39588:	f06f 0285 	mvn.w	r2, #133	; 0x85
   3958c:	e7ef      	b.n	3956e <uarte_nrfx_configure+0x16>
		uarte_cfg.stop = NRF_UARTE_STOP_TWO;
   3958e:	2310      	movs	r3, #16
   39590:	f88d 3002 	strb.w	r3, [sp, #2]
		break;
   39594:	e7f1      	b.n	3957a <uarte_nrfx_configure+0x22>
		uarte_cfg.hwfc = NRF_UARTE_HWFC_DISABLED;
   39596:	2300      	movs	r3, #0
   39598:	f88d 3000 	strb.w	r3, [sp]
	uarte_cfg.paritytype = NRF_UARTE_PARITYTYPE_EVEN;
   3959c:	2300      	movs	r3, #0
   3959e:	f8ad 3004 	strh.w	r3, [sp, #4]
	switch (cfg->parity) {
   395a2:	7923      	ldrb	r3, [r4, #4]
   395a4:	2b01      	cmp	r3, #1
   395a6:	d033      	beq.n	39610 <uarte_nrfx_configure+0xb8>
   395a8:	2b02      	cmp	r3, #2
   395aa:	d02d      	beq.n	39608 <uarte_nrfx_configure+0xb0>
   395ac:	b173      	cbz	r3, 395cc <uarte_nrfx_configure+0x74>
   395ae:	f06f 0285 	mvn.w	r2, #133	; 0x85
   395b2:	e7dc      	b.n	3956e <uarte_nrfx_configure+0x16>
	return dev->config;
   395b4:	686b      	ldr	r3, [r5, #4]
		if (IS_HWFC_PINS_USED(get_dev_config(dev)->flags)) {
   395b6:	685b      	ldr	r3, [r3, #4]
   395b8:	f003 0201 	and.w	r2, r3, #1
   395bc:	f003 0302 	and.w	r3, r3, #2
   395c0:	4313      	orrs	r3, r2
   395c2:	d030      	beq.n	39626 <uarte_nrfx_configure+0xce>
			uarte_cfg.hwfc = NRF_UARTE_HWFC_ENABLED;
   395c4:	2301      	movs	r3, #1
   395c6:	f88d 3000 	strb.w	r3, [sp]
		break;
   395ca:	e7e7      	b.n	3959c <uarte_nrfx_configure+0x44>
		uarte_cfg.parity = NRF_UARTE_PARITY_EXCLUDED;
   395cc:	f88d 3001 	strb.w	r3, [sp, #1]
	if (baudrate_set(dev, cfg->baudrate) != 0) {
   395d0:	6821      	ldr	r1, [r4, #0]
   395d2:	4628      	mov	r0, r5
   395d4:	f7f1 fa46 	bl	2aa64 <baudrate_set>
   395d8:	4602      	mov	r2, r0
   395da:	bb38      	cbnz	r0, 3962c <uarte_nrfx_configure+0xd4>
	return dev->config;
   395dc:	686b      	ldr	r3, [r5, #4]
	return config->uarte_regs;
   395de:	6819      	ldr	r1, [r3, #0]
    p_reg->CONFIG = (uint32_t)p_cfg->parity
   395e0:	f89d 3001 	ldrb.w	r3, [sp, #1]
                    | (uint32_t)p_cfg->stop
   395e4:	f89d 0002 	ldrb.w	r0, [sp, #2]
   395e8:	4303      	orrs	r3, r0
                    | (uint32_t)p_cfg->paritytype
   395ea:	f8bd 0004 	ldrh.w	r0, [sp, #4]
   395ee:	4303      	orrs	r3, r0
                    | (uint32_t)p_cfg->hwfc;
   395f0:	f89d 0000 	ldrb.w	r0, [sp]
   395f4:	4303      	orrs	r3, r0
    p_reg->CONFIG = (uint32_t)p_cfg->parity
   395f6:	f8c1 356c 	str.w	r3, [r1, #1388]	; 0x56c
	return dev->data;
   395fa:	692b      	ldr	r3, [r5, #16]
	get_dev_data(dev)->uart_config = *cfg;
   395fc:	3304      	adds	r3, #4
   395fe:	e894 0003 	ldmia.w	r4, {r0, r1}
   39602:	e883 0003 	stmia.w	r3, {r0, r1}
	return 0;
   39606:	e7b2      	b.n	3956e <uarte_nrfx_configure+0x16>
		uarte_cfg.parity = NRF_UARTE_PARITY_INCLUDED;
   39608:	230e      	movs	r3, #14
   3960a:	f88d 3001 	strb.w	r3, [sp, #1]
		break;
   3960e:	e7df      	b.n	395d0 <uarte_nrfx_configure+0x78>
		uarte_cfg.parity = NRF_UARTE_PARITY_INCLUDED;
   39610:	230e      	movs	r3, #14
   39612:	f88d 3001 	strb.w	r3, [sp, #1]
		uarte_cfg.paritytype = NRF_UARTE_PARITYTYPE_ODD;
   39616:	f44f 7380 	mov.w	r3, #256	; 0x100
   3961a:	f8ad 3004 	strh.w	r3, [sp, #4]
		break;
   3961e:	e7d7      	b.n	395d0 <uarte_nrfx_configure+0x78>
		return -ENOTSUP;
   39620:	f06f 0285 	mvn.w	r2, #133	; 0x85
   39624:	e7a3      	b.n	3956e <uarte_nrfx_configure+0x16>
			return -ENOTSUP;
   39626:	f06f 0285 	mvn.w	r2, #133	; 0x85
   3962a:	e7a0      	b.n	3956e <uarte_nrfx_configure+0x16>
		return -ENOTSUP;
   3962c:	f06f 0285 	mvn.w	r2, #133	; 0x85
   39630:	e79d      	b.n	3956e <uarte_nrfx_configure+0x16>

00039632 <uarte_nrfx_config_get>:
{
   39632:	460b      	mov	r3, r1
	return dev->data;
   39634:	6902      	ldr	r2, [r0, #16]
	*cfg = get_dev_data(dev)->uart_config;
   39636:	6891      	ldr	r1, [r2, #8]
   39638:	6850      	ldr	r0, [r2, #4]
   3963a:	e883 0003 	stmia.w	r3, {r0, r1}
}
   3963e:	2000      	movs	r0, #0
   39640:	4770      	bx	lr

00039642 <uarte_nrfx_err_check>:
	return dev->config;
   39642:	6843      	ldr	r3, [r0, #4]
	return config->uarte_regs;
   39644:	681b      	ldr	r3, [r3, #0]
    uint32_t errsrc_mask = p_reg->ERRORSRC;
   39646:	f8d3 0480 	ldr.w	r0, [r3, #1152]	; 0x480
    p_reg->ERRORSRC = errsrc_mask;
   3964a:	f8c3 0480 	str.w	r0, [r3, #1152]	; 0x480
}
   3964e:	4770      	bx	lr

00039650 <is_tx_ready>:
	return dev->config;
   39650:	6843      	ldr	r3, [r0, #4]
	return config->uarte_regs;
   39652:	681a      	ldr	r2, [r3, #0]
	bool ppi_endtx = get_dev_config(dev)->flags & UARTE_CFG_FLAG_PPI_ENDTX;
   39654:	685b      	ldr	r3, [r3, #4]
   39656:	f003 0308 	and.w	r3, r3, #8
    return (bool)*(volatile uint32_t *)((uint8_t *)p_reg + (uint32_t)event);
   3965a:	f8d2 1158 	ldr.w	r1, [r2, #344]	; 0x158
	return nrf_uarte_event_check(uarte, NRF_UARTE_EVENT_TXSTOPPED) ||
   3965e:	b929      	cbnz	r1, 3966c <is_tx_ready+0x1c>
   39660:	b933      	cbnz	r3, 39670 <is_tx_ready+0x20>
   39662:	f8d2 3120 	ldr.w	r3, [r2, #288]	; 0x120
   39666:	b92b      	cbnz	r3, 39674 <is_tx_ready+0x24>
   39668:	2000      	movs	r0, #0
   3966a:	4770      	bx	lr
   3966c:	2001      	movs	r0, #1
   3966e:	4770      	bx	lr
   39670:	2000      	movs	r0, #0
   39672:	4770      	bx	lr
   39674:	2001      	movs	r0, #1
}
   39676:	4770      	bx	lr

00039678 <uarte_enable>:
	return dev->config;
   39678:	6843      	ldr	r3, [r0, #4]
	return config->uarte_regs;
   3967a:	681b      	ldr	r3, [r3, #0]
    p_reg->ENABLE = UARTE_ENABLE_ENABLE_Enabled;
   3967c:	2208      	movs	r2, #8
   3967e:	f8c3 2500 	str.w	r2, [r3, #1280]	; 0x500
}
   39682:	4770      	bx	lr

00039684 <tx_start>:
{
   39684:	b510      	push	{r4, lr}
	return dev->config;
   39686:	6843      	ldr	r3, [r0, #4]
	return config->uarte_regs;
   39688:	681c      	ldr	r4, [r3, #0]
    p_reg->TXD.PTR    = (uint32_t)p_buffer;
   3968a:	f8c4 1544 	str.w	r1, [r4, #1348]	; 0x544
    p_reg->TXD.MAXCNT = length;
   3968e:	f8c4 2548 	str.w	r2, [r4, #1352]	; 0x548
    *((volatile uint32_t *)((uint8_t *)p_reg + (uint32_t)event)) = 0x0UL;
   39692:	2300      	movs	r3, #0
   39694:	f8c4 3120 	str.w	r3, [r4, #288]	; 0x120
   39698:	f8d4 2120 	ldr.w	r2, [r4, #288]	; 0x120
   3969c:	f8c4 3158 	str.w	r3, [r4, #344]	; 0x158
   396a0:	f8d4 3158 	ldr.w	r3, [r4, #344]	; 0x158
	return dev->config;
   396a4:	6843      	ldr	r3, [r0, #4]
	if (get_dev_config(dev)->flags & UARTE_CFG_FLAG_LOW_POWER) {
   396a6:	685b      	ldr	r3, [r3, #4]
   396a8:	f013 0f10 	tst.w	r3, #16
   396ac:	d102      	bne.n	396b4 <tx_start+0x30>
    *((volatile uint32_t *)((uint8_t *)p_reg + (uint32_t)task)) = 0x1UL;
   396ae:	2301      	movs	r3, #1
   396b0:	60a3      	str	r3, [r4, #8]
}
   396b2:	bd10      	pop	{r4, pc}
		uarte_enable(dev, UARTE_LOW_POWER_TX);
   396b4:	2101      	movs	r1, #1
   396b6:	f7ff ffdf 	bl	39678 <uarte_enable>
    p_reg->INTENSET = mask;
   396ba:	f44f 0380 	mov.w	r3, #4194304	; 0x400000
   396be:	f8c4 3304 	str.w	r3, [r4, #772]	; 0x304
}
   396c2:	e7f4      	b.n	396ae <tx_start+0x2a>

000396c4 <uarte_nrfx_poll_in>:
{
   396c4:	b410      	push	{r4}
	return dev->data;
   396c6:	6904      	ldr	r4, [r0, #16]
	return dev->config;
   396c8:	6843      	ldr	r3, [r0, #4]
	return config->uarte_regs;
   396ca:	681b      	ldr	r3, [r3, #0]
    return (bool)*(volatile uint32_t *)((uint8_t *)p_reg + (uint32_t)event);
   396cc:	f8d3 2110 	ldr.w	r2, [r3, #272]	; 0x110
	if (!nrf_uarte_event_check(uarte, NRF_UARTE_EVENT_ENDRX)) {
   396d0:	b152      	cbz	r2, 396e8 <uarte_nrfx_poll_in+0x24>
	*c = data->rx_data;
   396d2:	7c62      	ldrb	r2, [r4, #17]
   396d4:	700a      	strb	r2, [r1, #0]
    *((volatile uint32_t *)((uint8_t *)p_reg + (uint32_t)event)) = 0x0UL;
   396d6:	2000      	movs	r0, #0
   396d8:	f8c3 0110 	str.w	r0, [r3, #272]	; 0x110
   396dc:	f8d3 2110 	ldr.w	r2, [r3, #272]	; 0x110
    *((volatile uint32_t *)((uint8_t *)p_reg + (uint32_t)task)) = 0x1UL;
   396e0:	2201      	movs	r2, #1
   396e2:	601a      	str	r2, [r3, #0]
}
   396e4:	bc10      	pop	{r4}
   396e6:	4770      	bx	lr
		return -1;
   396e8:	f04f 30ff 	mov.w	r0, #4294967295
   396ec:	e7fa      	b.n	396e4 <uarte_nrfx_poll_in+0x20>

000396ee <wait_tx_ready>:
{
   396ee:	b570      	push	{r4, r5, r6, lr}
   396f0:	4606      	mov	r6, r0
   396f2:	e014      	b.n	3971e <wait_tx_ready+0x30>
		if (res) {
   396f4:	b17d      	cbz	r5, 39716 <wait_tx_ready+0x28>
	__asm__ volatile(
   396f6:	f04f 0340 	mov.w	r3, #64	; 0x40
   396fa:	f3ef 8411 	mrs	r4, BASEPRI
   396fe:	f383 8812 	msr	BASEPRI_MAX, r3
   39702:	f3bf 8f6f 	isb	sy
			if (is_tx_ready(dev)) {
   39706:	4630      	mov	r0, r6
   39708:	f7ff ffa2 	bl	39650 <is_tx_ready>
   3970c:	b9a0      	cbnz	r0, 39738 <wait_tx_ready+0x4a>
	__asm__ volatile(
   3970e:	f384 8811 	msr	BASEPRI, r4
   39712:	f3bf 8f6f 	isb	sy
	return z_impl_k_sleep(timeout);
   39716:	2021      	movs	r0, #33	; 0x21
   39718:	2100      	movs	r1, #0
   3971a:	f7f8 fa6d 	bl	31bf8 <z_impl_k_sleep>
		NRFX_WAIT_FOR(is_tx_ready(dev), 100, 1, res);
   3971e:	2464      	movs	r4, #100	; 0x64
   39720:	4630      	mov	r0, r6
   39722:	f7ff ff95 	bl	39650 <is_tx_ready>
   39726:	4605      	mov	r5, r0
   39728:	2800      	cmp	r0, #0
   3972a:	d1e3      	bne.n	396f4 <wait_tx_ready+0x6>
   3972c:	2001      	movs	r0, #1
   3972e:	f000 fdab 	bl	3a288 <nrfx_busy_wait>
   39732:	3c01      	subs	r4, #1
   39734:	d1f4      	bne.n	39720 <wait_tx_ready+0x32>
   39736:	e7dd      	b.n	396f4 <wait_tx_ready+0x6>
}
   39738:	4620      	mov	r0, r4
   3973a:	bd70      	pop	{r4, r5, r6, pc}

0003973c <uarte_0_init>:
				.tx_buffer = uarte##idx##_tx_buffer,	       \
				.tx_buff_size = sizeof(uarte##idx##_tx_buffer),\
			};))

#ifdef CONFIG_UART_0_NRF_UARTE
UART_NRF_UARTE_DEVICE(0);
   3973c:	b510      	push	{r4, lr}
   3973e:	4604      	mov	r4, r0
   39740:	2200      	movs	r2, #0
   39742:	2101      	movs	r1, #1
   39744:	2002      	movs	r0, #2
   39746:	f7e5 fe4f 	bl	1f3e8 <z_arm_irq_priority_set>
   3974a:	2002      	movs	r0, #2
   3974c:	f7e5 fe1a 	bl	1f384 <arch_irq_enable>
   39750:	2100      	movs	r1, #0
   39752:	4620      	mov	r0, r4
   39754:	f7f1 fa90 	bl	2ac78 <uarte_instance_init>
   39758:	bd10      	pop	{r4, pc}

0003975a <uarte_1_init>:
#endif

#ifdef CONFIG_UART_1_NRF_UARTE
UART_NRF_UARTE_DEVICE(1);
   3975a:	b510      	push	{r4, lr}
   3975c:	4604      	mov	r4, r0
   3975e:	2200      	movs	r2, #0
   39760:	2101      	movs	r1, #1
   39762:	2028      	movs	r0, #40	; 0x28
   39764:	f7e5 fe40 	bl	1f3e8 <z_arm_irq_priority_set>
   39768:	2028      	movs	r0, #40	; 0x28
   3976a:	f7e5 fe0b 	bl	1f384 <arch_irq_enable>
   3976e:	2100      	movs	r1, #0
   39770:	4620      	mov	r0, r4
   39772:	f7f1 fa81 	bl	2ac78 <uarte_instance_init>
   39776:	bd10      	pop	{r4, pc}

00039778 <rng_pool_put>:
{
   39778:	b410      	push	{r4}
	uint8_t first = rngp->first_read;
   3977a:	7842      	ldrb	r2, [r0, #1]
	uint8_t last  = rngp->last;
   3977c:	7883      	ldrb	r3, [r0, #2]
	uint8_t mask  = rngp->mask;
   3977e:	78c4      	ldrb	r4, [r0, #3]
	if (((last - first) & mask) == mask) {
   39780:	1a9a      	subs	r2, r3, r2
   39782:	ea34 0202 	bics.w	r2, r4, r2
   39786:	d008      	beq.n	3979a <rng_pool_put+0x22>
	rngp->buffer[last] = byte;
   39788:	18c2      	adds	r2, r0, r3
   3978a:	7151      	strb	r1, [r2, #5]
	rngp->last = (last + 1) & mask;
   3978c:	3301      	adds	r3, #1
   3978e:	b25b      	sxtb	r3, r3
   39790:	4023      	ands	r3, r4
   39792:	7083      	strb	r3, [r0, #2]
	return 0;
   39794:	2000      	movs	r0, #0
}
   39796:	bc10      	pop	{r4}
   39798:	4770      	bx	lr
		return -ENOBUFS;
   3979a:	f06f 0068 	mvn.w	r0, #104	; 0x68
   3979e:	e7fa      	b.n	39796 <rng_pool_put+0x1e>

000397a0 <rng_pool_init>:
	rngp->first_alloc = 0U;
   397a0:	2300      	movs	r3, #0
   397a2:	7003      	strb	r3, [r0, #0]
	rngp->first_read  = 0U;
   397a4:	7043      	strb	r3, [r0, #1]
	rngp->last	  = 0U;
   397a6:	7083      	strb	r3, [r0, #2]
	rngp->mask	  = size - 1;
   397a8:	3901      	subs	r1, #1
   397aa:	70c1      	strb	r1, [r0, #3]
	rngp->threshold	  = threshold;
   397ac:	7102      	strb	r2, [r0, #4]
}
   397ae:	4770      	bx	lr

000397b0 <sys_clock_idle_exit>:
{
}

void __weak sys_clock_idle_exit(void)
{
}
   397b0:	4770      	bx	lr

000397b2 <sys_clock_disable>:

void __weak sys_clock_disable(void)
{
}
   397b2:	4770      	bx	lr

000397b4 <counter_sub>:
	return (a - b) & COUNTER_MAX;
   397b4:	1a40      	subs	r0, r0, r1
}
   397b6:	f020 407f 	bic.w	r0, r0, #4278190080	; 0xff000000
   397ba:	4770      	bx	lr

000397bc <event_clear>:
	nrf_rtc_event_clear(RTC, RTC_CHANNEL_EVENT_ADDR(chan));
   397bc:	f100 0350 	add.w	r3, r0, #80	; 0x50
   397c0:	009b      	lsls	r3, r3, #2
   397c2:	b29b      	uxth	r3, r3
    *((volatile uint32_t *)((uint8_t *)p_reg + (uint32_t)event)) = 0;
   397c4:	f103 4380 	add.w	r3, r3, #1073741824	; 0x40000000
   397c8:	f503 3388 	add.w	r3, r3, #69632	; 0x11000
   397cc:	2200      	movs	r2, #0
   397ce:	601a      	str	r2, [r3, #0]
   397d0:	681b      	ldr	r3, [r3, #0]
}
   397d2:	4770      	bx	lr

000397d4 <absolute_time_to_cc>:
}
   397d4:	f020 407f 	bic.w	r0, r0, #4278190080	; 0xff000000
   397d8:	4770      	bx	lr

000397da <full_int_lock>:
  __ASM volatile ("MRS %0, primask" : "=r" (result) );
   397da:	f3ef 8010 	mrs	r0, PRIMASK
  __ASM volatile ("cpsid i" : : : "memory");
   397de:	b672      	cpsid	i
}
   397e0:	4770      	bx	lr

000397e2 <full_int_unlock>:
  __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory");
   397e2:	f380 8810 	msr	PRIMASK, r0
}
   397e6:	4770      	bx	lr

000397e8 <set_absolute_alarm>:
{
   397e8:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
   397ea:	4606      	mov	r6, r0
	uint32_t cc_val = abs_val & COUNTER_MAX;
   397ec:	f021 457f 	bic.w	r5, r1, #4278190080	; 0xff000000
	uint32_t prev_cc = get_comparator(chan);
   397f0:	f7f1 fdd4 	bl	2b39c <get_comparator>
   397f4:	4607      	mov	r7, r0
   397f6:	e019      	b.n	3982c <set_absolute_alarm+0x44>
	z_impl_k_busy_wait(usec_to_wait);
   397f8:	2013      	movs	r0, #19
   397fa:	f001 fdc9 	bl	3b390 <z_impl_k_busy_wait>
}
   397fe:	e022      	b.n	39846 <set_absolute_alarm+0x5e>
		event_clear(chan);
   39800:	4630      	mov	r0, r6
   39802:	f7ff ffdb 	bl	397bc <event_clear>
		event_enable(chan);
   39806:	4630      	mov	r0, r6
   39808:	f7f1 fdd0 	bl	2b3ac <event_enable>
		set_comparator(chan, cc_val);
   3980c:	4629      	mov	r1, r5
   3980e:	4630      	mov	r0, r6
   39810:	f7f1 fdba 	bl	2b388 <set_comparator>
		now2 = counter();
   39814:	f7f1 fdde 	bl	2b3d4 <counter>
		 (counter_sub(cc_val, now2 + 2) > COUNTER_HALF_SPAN));
   39818:	4284      	cmp	r4, r0
   3981a:	d01e      	beq.n	3985a <set_absolute_alarm+0x72>
   3981c:	1c81      	adds	r1, r0, #2
   3981e:	4628      	mov	r0, r5
   39820:	f7ff ffc8 	bl	397b4 <counter_sub>
	} while ((now2 != now) &&
   39824:	f5b0 0f00 	cmp.w	r0, #8388608	; 0x800000
   39828:	d917      	bls.n	3985a <set_absolute_alarm+0x72>
		prev_cc = cc_val;
   3982a:	462f      	mov	r7, r5
		now = counter();
   3982c:	f7f1 fdd2 	bl	2b3d4 <counter>
   39830:	4604      	mov	r4, r0
		set_comparator(chan, now);
   39832:	4601      	mov	r1, r0
   39834:	4630      	mov	r0, r6
   39836:	f7f1 fda7 	bl	2b388 <set_comparator>
		if (counter_sub(prev_cc, now) == 1) {
   3983a:	4621      	mov	r1, r4
   3983c:	4638      	mov	r0, r7
   3983e:	f7ff ffb9 	bl	397b4 <counter_sub>
   39842:	2801      	cmp	r0, #1
   39844:	d0d8      	beq.n	397f8 <set_absolute_alarm+0x10>
		if (counter_sub(cc_val, now + 2) > COUNTER_HALF_SPAN) {
   39846:	1ca7      	adds	r7, r4, #2
   39848:	4639      	mov	r1, r7
   3984a:	4628      	mov	r0, r5
   3984c:	f7ff ffb2 	bl	397b4 <counter_sub>
   39850:	f5b0 0f00 	cmp.w	r0, #8388608	; 0x800000
   39854:	d9d4      	bls.n	39800 <set_absolute_alarm+0x18>
			cc_val = now + 2;
   39856:	463d      	mov	r5, r7
   39858:	e7d2      	b.n	39800 <set_absolute_alarm+0x18>
}
   3985a:	4628      	mov	r0, r5
   3985c:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}

0003985e <compare_set>:
{
   3985e:	b5f0      	push	{r4, r5, r6, r7, lr}
   39860:	b083      	sub	sp, #12
   39862:	4604      	mov	r4, r0
   39864:	4617      	mov	r7, r2
   39866:	461d      	mov	r5, r3
	key = compare_int_lock(chan);
   39868:	f7f1 fdba 	bl	2b3e0 <compare_int_lock>
   3986c:	4606      	mov	r6, r0
	int ret = compare_set_nolocks(chan, target_time, handler, user_data);
   3986e:	9b09      	ldr	r3, [sp, #36]	; 0x24
   39870:	9301      	str	r3, [sp, #4]
   39872:	9b08      	ldr	r3, [sp, #32]
   39874:	9300      	str	r3, [sp, #0]
   39876:	463a      	mov	r2, r7
   39878:	462b      	mov	r3, r5
   3987a:	4620      	mov	r0, r4
   3987c:	f7f1 fe9e 	bl	2b5bc <compare_set_nolocks>
   39880:	4605      	mov	r5, r0
	compare_int_unlock(chan, key);
   39882:	4631      	mov	r1, r6
   39884:	4620      	mov	r0, r4
   39886:	f7f1 fe0f 	bl	2b4a8 <compare_int_unlock>
}
   3988a:	4628      	mov	r0, r5
   3988c:	b003      	add	sp, #12
   3988e:	bdf0      	pop	{r4, r5, r6, r7, pc}

00039890 <dk_set_led_on>:

int dk_set_led_on(uint8_t led_idx)
{
   39890:	b508      	push	{r3, lr}
	return dk_set_led(led_idx, 1);
   39892:	2101      	movs	r1, #1
   39894:	f7f2 fb44 	bl	2bf20 <dk_set_led>
}
   39898:	bd08      	pop	{r3, pc}

0003989a <dk_set_led_off>:

int dk_set_led_off(uint8_t led_idx)
{
   3989a:	b508      	push	{r3, lr}
	return dk_set_led(led_idx, 0);
   3989c:	2100      	movs	r1, #0
   3989e:	f7f2 fb3f 	bl	2bf20 <dk_set_led>
}
   398a2:	bd08      	pop	{r3, pc}

000398a4 <event_packet_is_discardable>:
	switch (hdr->evt) {
   398a4:	7803      	ldrb	r3, [r0, #0]
   398a6:	2b3e      	cmp	r3, #62	; 0x3e
   398a8:	d003      	beq.n	398b2 <event_packet_is_discardable+0xe>
   398aa:	2bff      	cmp	r3, #255	; 0xff
   398ac:	d00a      	beq.n	398c4 <event_packet_is_discardable+0x20>
   398ae:	2000      	movs	r0, #0
   398b0:	4770      	bx	lr
		switch (me->subevent) {
   398b2:	7883      	ldrb	r3, [r0, #2]
   398b4:	2b02      	cmp	r3, #2
   398b6:	d00c      	beq.n	398d2 <event_packet_is_discardable+0x2e>
   398b8:	2b0d      	cmp	r3, #13
   398ba:	d001      	beq.n	398c0 <event_packet_is_discardable+0x1c>
			return false;
   398bc:	2000      	movs	r0, #0
   398be:	4770      	bx	lr
		switch (me->subevent) {
   398c0:	2001      	movs	r0, #1
   398c2:	4770      	bx	lr
		uint8_t subevent = hci_buf[2];
   398c4:	7883      	ldrb	r3, [r0, #2]
		switch (subevent) {
   398c6:	2b80      	cmp	r3, #128	; 0x80
   398c8:	d001      	beq.n	398ce <event_packet_is_discardable+0x2a>
			return false;
   398ca:	2000      	movs	r0, #0
}
   398cc:	4770      	bx	lr
			return true;
   398ce:	2001      	movs	r0, #1
   398d0:	4770      	bx	lr
		switch (me->subevent) {
   398d2:	2001      	movs	r0, #1
   398d4:	4770      	bx	lr

000398d6 <hci_driver_send>:
{
   398d6:	b538      	push	{r3, r4, r5, lr}
	if (!buf->len) {
   398d8:	8983      	ldrh	r3, [r0, #12]
   398da:	b183      	cbz	r3, 398fe <hci_driver_send+0x28>
   398dc:	4604      	mov	r4, r0
	return (enum bt_buf_type)((struct bt_buf_data *)net_buf_user_data(buf))
   398de:	7d03      	ldrb	r3, [r0, #20]
	switch (type) {
   398e0:	b14b      	cbz	r3, 398f6 <hci_driver_send+0x20>
   398e2:	2b02      	cmp	r3, #2
   398e4:	d10e      	bne.n	39904 <hci_driver_send+0x2e>
		err = acl_handle(buf);
   398e6:	f7f2 fba5 	bl	2c034 <acl_handle>
   398ea:	4605      	mov	r5, r0
	if (!err) {
   398ec:	b965      	cbnz	r5, 39908 <hci_driver_send+0x32>
		net_buf_unref(buf);
   398ee:	4620      	mov	r0, r4
   398f0:	f7ef ff36 	bl	29760 <net_buf_unref>
   398f4:	e008      	b.n	39908 <hci_driver_send+0x32>
		err = cmd_handle(buf);
   398f6:	f7f2 fbb7 	bl	2c068 <cmd_handle>
   398fa:	4605      	mov	r5, r0
		break;
   398fc:	e7f6      	b.n	398ec <hci_driver_send+0x16>
		return -EINVAL;
   398fe:	f06f 0515 	mvn.w	r5, #21
   39902:	e001      	b.n	39908 <hci_driver_send+0x32>
	switch (type) {
   39904:	f06f 0515 	mvn.w	r5, #21
}
   39908:	4628      	mov	r0, r5
   3990a:	bd38      	pop	{r3, r4, r5, pc}

0003990c <fetch_and_process_hci_evt>:
{
   3990c:	b538      	push	{r3, r4, r5, lr}
   3990e:	4604      	mov	r4, r0
	errcode = MULTITHREADING_LOCK_ACQUIRE();
   39910:	f04f 30ff 	mov.w	r0, #4294967295
   39914:	f04f 31ff 	mov.w	r1, #4294967295
   39918:	f7f2 fb4c 	bl	2bfb4 <multithreading_lock_acquire>
	if (!errcode) {
   3991c:	4605      	mov	r5, r0
   3991e:	b110      	cbz	r0, 39926 <fetch_and_process_hci_evt+0x1a>
	if (errcode) {
   39920:	b145      	cbz	r5, 39934 <fetch_and_process_hci_evt+0x28>
		return false;
   39922:	2000      	movs	r0, #0
}
   39924:	bd38      	pop	{r3, r4, r5, pc}
		errcode = hci_internal_evt_get(p_hci_buffer);
   39926:	4620      	mov	r0, r4
   39928:	f7f2 fd92 	bl	2c450 <hci_internal_evt_get>
   3992c:	4605      	mov	r5, r0
		MULTITHREADING_LOCK_RELEASE();
   3992e:	f7f2 fb4b 	bl	2bfc8 <multithreading_lock_release>
   39932:	e7f5      	b.n	39920 <fetch_and_process_hci_evt+0x14>
	event_packet_process(p_hci_buffer);
   39934:	4620      	mov	r0, r4
   39936:	f7f2 fc2f 	bl	2c198 <event_packet_process>
	return true;
   3993a:	2001      	movs	r0, #1
   3993c:	e7f2      	b.n	39924 <fetch_and_process_hci_evt+0x18>

0003993e <fetch_and_process_acl_data>:
{
   3993e:	b538      	push	{r3, r4, r5, lr}
   39940:	4604      	mov	r4, r0
	errcode = MULTITHREADING_LOCK_ACQUIRE();
   39942:	f04f 30ff 	mov.w	r0, #4294967295
   39946:	f04f 31ff 	mov.w	r1, #4294967295
   3994a:	f7f2 fb33 	bl	2bfb4 <multithreading_lock_acquire>
	if (!errcode) {
   3994e:	4605      	mov	r5, r0
   39950:	b110      	cbz	r0, 39958 <fetch_and_process_acl_data+0x1a>
	if (errcode) {
   39952:	b145      	cbz	r5, 39966 <fetch_and_process_acl_data+0x28>
		return false;
   39954:	2000      	movs	r0, #0
}
   39956:	bd38      	pop	{r3, r4, r5, pc}
		errcode = sdc_hci_data_get(p_hci_buffer);
   39958:	4620      	mov	r0, r4
   3995a:	f7de ff82 	bl	18862 <sdc_hci_data_get>
   3995e:	4605      	mov	r5, r0
		MULTITHREADING_LOCK_RELEASE();
   39960:	f7f2 fb32 	bl	2bfc8 <multithreading_lock_release>
   39964:	e7f5      	b.n	39952 <fetch_and_process_acl_data+0x14>
	data_packet_process(p_hci_buffer);
   39966:	4620      	mov	r0, r4
   39968:	f7f2 fc3e 	bl	2c1e8 <data_packet_process>
	return true;
   3996c:	2001      	movs	r0, #1
   3996e:	e7f2      	b.n	39956 <fetch_and_process_acl_data+0x18>

00039970 <configure_supported_features>:
{
   39970:	b508      	push	{r3, lr}
			err = sdc_support_adv();
   39972:	f7d6 fb6b 	bl	1004c <sdc_support_adv>
			if (err) {
   39976:	b948      	cbnz	r0, 3998c <configure_supported_features+0x1c>
		err = sdc_support_slave();
   39978:	f7d6 fb98 	bl	100ac <sdc_support_slave>
		if (err) {
   3997c:	b948      	cbnz	r0, 39992 <configure_supported_features+0x22>
		err = sdc_support_dle();
   3997e:	f7d6 fb75 	bl	1006c <sdc_support_dle>
		if (err) {
   39982:	b948      	cbnz	r0, 39998 <configure_supported_features+0x28>
		err = sdc_support_le_2m_phy();
   39984:	f7d6 fb82 	bl	1008c <sdc_support_le_2m_phy>
		if (err) {
   39988:	b948      	cbnz	r0, 3999e <configure_supported_features+0x2e>
}
   3998a:	bd08      	pop	{r3, pc}
				return -ENOTSUP;
   3998c:	f06f 0085 	mvn.w	r0, #133	; 0x85
   39990:	e7fb      	b.n	3998a <configure_supported_features+0x1a>
			return -ENOTSUP;
   39992:	f06f 0085 	mvn.w	r0, #133	; 0x85
   39996:	e7f8      	b.n	3998a <configure_supported_features+0x1a>
			return -ENOTSUP;
   39998:	f06f 0085 	mvn.w	r0, #133	; 0x85
   3999c:	e7f5      	b.n	3998a <configure_supported_features+0x1a>
			return -ENOTSUP;
   3999e:	f06f 0085 	mvn.w	r0, #133	; 0x85
   399a2:	e7f2      	b.n	3998a <configure_supported_features+0x1a>

000399a4 <command_generates_command_complete_event>:
	switch (hci_opcode) {
   399a4:	f242 0344 	movw	r3, #8260	; 0x2044
   399a8:	4298      	cmp	r0, r3
   399aa:	d834      	bhi.n	39a16 <command_generates_command_complete_event+0x72>
   399ac:	f242 030d 	movw	r3, #8205	; 0x200d
   399b0:	4298      	cmp	r0, r3
   399b2:	d20b      	bcs.n	399cc <command_generates_command_complete_event+0x28>
   399b4:	f240 4306 	movw	r3, #1030	; 0x406
   399b8:	4298      	cmp	r0, r3
   399ba:	d02e      	beq.n	39a1a <command_generates_command_complete_event+0x76>
   399bc:	f240 431d 	movw	r3, #1053	; 0x41d
   399c0:	4298      	cmp	r0, r3
   399c2:	d001      	beq.n	399c8 <command_generates_command_complete_event+0x24>
		return true;
   399c4:	2001      	movs	r0, #1
   399c6:	4770      	bx	lr
	switch (hci_opcode) {
   399c8:	2000      	movs	r0, #0
   399ca:	4770      	bx	lr
   399cc:	f5a0 5000 	sub.w	r0, r0, #8192	; 0x2000
   399d0:	380d      	subs	r0, #13
   399d2:	2837      	cmp	r0, #55	; 0x37
   399d4:	d823      	bhi.n	39a1e <command_generates_command_complete_event+0x7a>
   399d6:	e8df f000 	tbb	[pc, r0]
   399da:	221c      	.short	0x221c
   399dc:	22222222 	.word	0x22222222
   399e0:	1c22221c 	.word	0x1c22221c
   399e4:	221c2222 	.word	0x221c2222
   399e8:	22222222 	.word	0x22222222
   399ec:	22222222 	.word	0x22222222
   399f0:	22222222 	.word	0x22222222
   399f4:	22222222 	.word	0x22222222
   399f8:	22222222 	.word	0x22222222
   399fc:	1c222222 	.word	0x1c222222
   39a00:	22222222 	.word	0x22222222
   39a04:	22222222 	.word	0x22222222
   39a08:	22222222 	.word	0x22222222
   39a0c:	22222222 	.word	0x22222222
   39a10:	1c1c      	.short	0x1c1c
   39a12:	2000      	movs	r0, #0
   39a14:	4770      	bx	lr
		return true;
   39a16:	2001      	movs	r0, #1
   39a18:	4770      	bx	lr
	switch (hci_opcode) {
   39a1a:	2000      	movs	r0, #0
   39a1c:	4770      	bx	lr
		return true;
   39a1e:	2001      	movs	r0, #1
}
   39a20:	4770      	bx	lr

00039a22 <encode_command_status>:
	evt_hdr->evt = BT_HCI_EVT_CMD_STATUS;
   39a22:	230f      	movs	r3, #15
   39a24:	7003      	strb	r3, [r0, #0]
	evt_hdr->len = sizeof(struct bt_hci_evt_cmd_status);
   39a26:	2304      	movs	r3, #4
   39a28:	7043      	strb	r3, [r0, #1]
	evt_data->status = status_code;
   39a2a:	7082      	strb	r2, [r0, #2]
	evt_data->ncmd = 1;
   39a2c:	2301      	movs	r3, #1
   39a2e:	70c3      	strb	r3, [r0, #3]
	evt_data->opcode = hci_opcode;
   39a30:	8081      	strh	r1, [r0, #4]
}
   39a32:	4770      	bx	lr

00039a34 <encode_command_complete_header>:
{
   39a34:	b410      	push	{r4}
	evt_hdr->evt = BT_HCI_EVT_CMD_COMPLETE;
   39a36:	240e      	movs	r4, #14
   39a38:	7004      	strb	r4, [r0, #0]
	evt_hdr->len = param_length;
   39a3a:	7042      	strb	r2, [r0, #1]
	evt_data->ncmd = 1;
   39a3c:	2201      	movs	r2, #1
   39a3e:	7082      	strb	r2, [r0, #2]
	evt_data->opcode = hci_opcode;
   39a40:	f8a0 1003 	strh.w	r1, [r0, #3]
	event[BT_HCI_EVT_HDR_SIZE + sizeof(struct bt_hci_evt_cmd_complete)] = status;
   39a44:	7143      	strb	r3, [r0, #5]
}
   39a46:	bc10      	pop	{r4}
   39a48:	4770      	bx	lr

00039a4a <le_read_supported_states>:
	*buf = states1;
   39a4a:	238f      	movs	r3, #143	; 0x8f
   39a4c:	7003      	strb	r3, [r0, #0]
	*(buf + 4) = states2;
   39a4e:	23c0      	movs	r3, #192	; 0xc0
   39a50:	7103      	strb	r3, [r0, #4]
}
   39a52:	4770      	bx	lr

00039a54 <status_param_cmd_put>:
}
   39a54:	2001      	movs	r0, #1
   39a56:	4770      	bx	lr

00039a58 <link_control_cmd_put>:
{
   39a58:	b508      	push	{r3, lr}
	return ((uint16_t)src[1] << 8) | src[0];
   39a5a:	7842      	ldrb	r2, [r0, #1]
   39a5c:	f810 3b03 	ldrb.w	r3, [r0], #3
   39a60:	ea43 2302 	orr.w	r3, r3, r2, lsl #8
   39a64:	b21b      	sxth	r3, r3
	switch (opcode)	{
   39a66:	f240 4206 	movw	r2, #1030	; 0x406
   39a6a:	4293      	cmp	r3, r2
   39a6c:	d005      	beq.n	39a7a <link_control_cmd_put+0x22>
   39a6e:	f240 421d 	movw	r2, #1053	; 0x41d
   39a72:	4293      	cmp	r3, r2
   39a74:	d004      	beq.n	39a80 <link_control_cmd_put+0x28>
   39a76:	2001      	movs	r0, #1
}
   39a78:	bd08      	pop	{r3, pc}
		return sdc_hci_cmd_lc_disconnect((void *)cmd_params);
   39a7a:	f7df f821 	bl	18ac0 <sdc_hci_cmd_lc_disconnect>
   39a7e:	e7fb      	b.n	39a78 <link_control_cmd_put+0x20>
		return sdc_hci_cmd_lc_read_remote_version_information((void *)cmd_params);
   39a80:	f7df f820 	bl	18ac4 <sdc_hci_cmd_lc_read_remote_version_information>
   39a84:	e7f8      	b.n	39a78 <link_control_cmd_put+0x20>

00039a86 <controller_and_baseband_cmd_put>:
{
   39a86:	b538      	push	{r3, r4, r5, lr}
   39a88:	4604      	mov	r4, r0
	uint8_t const *cmd_params = &cmd[BT_HCI_CMD_HDR_SIZE];
   39a8a:	3003      	adds	r0, #3
   39a8c:	7865      	ldrb	r5, [r4, #1]
   39a8e:	7823      	ldrb	r3, [r4, #0]
   39a90:	ea43 2305 	orr.w	r3, r3, r5, lsl #8
   39a94:	b21b      	sxth	r3, r3
	switch (opcode)	{
   39a96:	f640 4463 	movw	r4, #3171	; 0xc63
   39a9a:	42a3      	cmp	r3, r4
   39a9c:	d02c      	beq.n	39af8 <controller_and_baseband_cmd_put+0x72>
   39a9e:	f101 0106 	add.w	r1, r1, #6
   39aa2:	dc16      	bgt.n	39ad2 <controller_and_baseband_cmd_put+0x4c>
   39aa4:	f640 4403 	movw	r4, #3075	; 0xc03
   39aa8:	42a3      	cmp	r3, r4
   39aaa:	d022      	beq.n	39af2 <controller_and_baseband_cmd_put+0x6c>
   39aac:	f640 442d 	movw	r4, #3117	; 0xc2d
   39ab0:	42a3      	cmp	r3, r4
   39ab2:	d105      	bne.n	39ac0 <controller_and_baseband_cmd_put+0x3a>
		*param_length_out += sizeof(sdc_hci_cmd_cb_read_transmit_power_level_return_t);
   39ab4:	7813      	ldrb	r3, [r2, #0]
   39ab6:	3303      	adds	r3, #3
   39ab8:	7013      	strb	r3, [r2, #0]
		return sdc_hci_cmd_cb_read_transmit_power_level((void *)cmd_params,
   39aba:	f7de fef9 	bl	188b0 <sdc_hci_cmd_cb_read_transmit_power_level>
   39abe:	e007      	b.n	39ad0 <controller_and_baseband_cmd_put+0x4a>
	switch (opcode)	{
   39ac0:	f640 4201 	movw	r2, #3073	; 0xc01
   39ac4:	4293      	cmp	r3, r2
   39ac6:	d102      	bne.n	39ace <controller_and_baseband_cmd_put+0x48>
		return sdc_hci_cmd_cb_set_event_mask((void *)cmd_params);
   39ac8:	f7de fef4 	bl	188b4 <sdc_hci_cmd_cb_set_event_mask>
   39acc:	e000      	b.n	39ad0 <controller_and_baseband_cmd_put+0x4a>
	switch (opcode)	{
   39ace:	2001      	movs	r0, #1
}
   39ad0:	bd38      	pop	{r3, r4, r5, pc}
	switch (opcode)	{
   39ad2:	f640 447b 	movw	r4, #3195	; 0xc7b
   39ad6:	42a3      	cmp	r3, r4
   39ad8:	d011      	beq.n	39afe <controller_and_baseband_cmd_put+0x78>
   39ada:	f640 447c 	movw	r4, #3196	; 0xc7c
   39ade:	42a3      	cmp	r3, r4
   39ae0:	d105      	bne.n	39aee <controller_and_baseband_cmd_put+0x68>
		*param_length_out +=
   39ae2:	7813      	ldrb	r3, [r2, #0]
   39ae4:	3302      	adds	r3, #2
   39ae6:	7013      	strb	r3, [r2, #0]
		return sdc_hci_cmd_cb_write_authenticated_payload_timeout((void *)cmd_params,
   39ae8:	f7de feee 	bl	188c8 <sdc_hci_cmd_cb_write_authenticated_payload_timeout>
   39aec:	e7f0      	b.n	39ad0 <controller_and_baseband_cmd_put+0x4a>
	switch (opcode)	{
   39aee:	2001      	movs	r0, #1
   39af0:	e7ee      	b.n	39ad0 <controller_and_baseband_cmd_put+0x4a>
		return sdc_hci_cmd_cb_reset();
   39af2:	f7d6 fc2f 	bl	10354 <sdc_hci_cmd_cb_reset>
   39af6:	e7eb      	b.n	39ad0 <controller_and_baseband_cmd_put+0x4a>
		return sdc_hci_cmd_cb_set_event_mask_page_2((void *)cmd_params);
   39af8:	f7de fee1 	bl	188be <sdc_hci_cmd_cb_set_event_mask_page_2>
   39afc:	e7e8      	b.n	39ad0 <controller_and_baseband_cmd_put+0x4a>
		*param_length_out +=
   39afe:	7813      	ldrb	r3, [r2, #0]
   39b00:	3304      	adds	r3, #4
   39b02:	7013      	strb	r3, [r2, #0]
		return sdc_hci_cmd_cb_read_authenticated_payload_timeout((void *)cmd_params,
   39b04:	f7de fed2 	bl	188ac <sdc_hci_cmd_cb_read_authenticated_payload_timeout>
   39b08:	e7e2      	b.n	39ad0 <controller_and_baseband_cmd_put+0x4a>

00039b0a <supported_commands>:
{
   39b0a:	b510      	push	{r4, lr}
   39b0c:	4604      	mov	r4, r0
	memset(cmds, 0, sizeof(*cmds));
   39b0e:	222e      	movs	r2, #46	; 0x2e
   39b10:	2100      	movs	r1, #0
   39b12:	f7fc f817 	bl	35b44 <memset>
	cmds->hci_disconnect = 1;
   39b16:	7823      	ldrb	r3, [r4, #0]
   39b18:	f043 0320 	orr.w	r3, r3, #32
   39b1c:	7023      	strb	r3, [r4, #0]
	cmds->hci_read_remote_version_information = 1;
   39b1e:	78a3      	ldrb	r3, [r4, #2]
   39b20:	f043 0380 	orr.w	r3, r3, #128	; 0x80
   39b24:	70a3      	strb	r3, [r4, #2]
	cmds->hci_set_event_mask = 1;
   39b26:	7963      	ldrb	r3, [r4, #5]
	cmds->hci_reset = 1;
   39b28:	f043 03c0 	orr.w	r3, r3, #192	; 0xc0
   39b2c:	7163      	strb	r3, [r4, #5]
	cmds->hci_read_transmit_power_level = 1;
   39b2e:	7aa3      	ldrb	r3, [r4, #10]
   39b30:	f043 0304 	orr.w	r3, r3, #4
   39b34:	72a3      	strb	r3, [r4, #10]
	cmds->hci_read_local_version_information = 1;
   39b36:	7ba3      	ldrb	r3, [r4, #14]
	cmds->hci_read_local_supported_features = 1;
   39b38:	f043 0328 	orr.w	r3, r3, #40	; 0x28
   39b3c:	73a3      	strb	r3, [r4, #14]
	cmds->hci_read_bd_addr = 1;
   39b3e:	7be3      	ldrb	r3, [r4, #15]
   39b40:	f043 0302 	orr.w	r3, r3, #2
   39b44:	73e3      	strb	r3, [r4, #15]
	cmds->hci_set_event_mask_page_2 = 1;
   39b46:	7da3      	ldrb	r3, [r4, #22]
   39b48:	f043 0304 	orr.w	r3, r3, #4
   39b4c:	75a3      	strb	r3, [r4, #22]
	cmds->hci_le_set_event_mask = 1;
   39b4e:	7e63      	ldrb	r3, [r4, #25]
	cmds->hci_le_set_advertising_data = 1;
   39b50:	f043 03f7 	orr.w	r3, r3, #247	; 0xf7
   39b54:	7663      	strb	r3, [r4, #25]
	cmds->hci_le_set_scan_response_data = 1;
   39b56:	7ea3      	ldrb	r3, [r4, #26]
	cmds->hci_le_clear_white_list = 1;
   39b58:	f043 03c3 	orr.w	r3, r3, #195	; 0xc3
   39b5c:	76a3      	strb	r3, [r4, #26]
	cmds->hci_le_add_device_to_white_list = 1;
   39b5e:	7ee3      	ldrb	r3, [r4, #27]
	cmds->hci_le_rand = 1;
   39b60:	f043 03f3 	orr.w	r3, r3, #243	; 0xf3
   39b64:	76e3      	strb	r3, [r4, #27]
	cmds->hci_le_long_term_key_request_reply = 1;
   39b66:	7f23      	ldrb	r3, [r4, #28]
	cmds->hci_le_test_end = 1;
   39b68:	f043 037e 	orr.w	r3, r3, #126	; 0x7e
   39b6c:	7723      	strb	r3, [r4, #28]
	cmds->hci_read_authenticated_payload_timeout = 1;
   39b6e:	f894 3020 	ldrb.w	r3, [r4, #32]
	cmds->hci_write_authenticated_payload_timeout = 1;
   39b72:	f043 0330 	orr.w	r3, r3, #48	; 0x30
   39b76:	f884 3020 	strb.w	r3, [r4, #32]
	cmds->hci_le_set_data_length = 1;
   39b7a:	f894 3021 	ldrb.w	r3, [r4, #33]	; 0x21
	cmds->hci_le_read_suggested_default_data_length = 1;
   39b7e:	f043 03c0 	orr.w	r3, r3, #192	; 0xc0
   39b82:	f884 3021 	strb.w	r3, [r4, #33]	; 0x21
	cmds->hci_le_write_suggested_default_data_length = 1;
   39b86:	f894 3022 	ldrb.w	r3, [r4, #34]	; 0x22
	cmds->hci_le_read_resolving_list_size = 1;
   39b8a:	f043 0379 	orr.w	r3, r3, #121	; 0x79
   39b8e:	f884 3022 	strb.w	r3, [r4, #34]	; 0x22
	cmds->hci_le_set_address_resolution_enable = 1;
   39b92:	f894 3023 	ldrb.w	r3, [r4, #35]	; 0x23
	cmds->hci_le_receiver_test_v2 = 1;
   39b96:	f043 03fe 	orr.w	r3, r3, #254	; 0xfe
   39b9a:	f884 3023 	strb.w	r3, [r4, #35]	; 0x23
	cmds->hci_le_transmitter_test_v2 = 1;
   39b9e:	f894 3024 	ldrb.w	r3, [r4, #36]	; 0x24
   39ba2:	f043 0301 	orr.w	r3, r3, #1
   39ba6:	f884 3024 	strb.w	r3, [r4, #36]	; 0x24
	cmds->hci_le_read_transmit_power = 1;
   39baa:	f894 3026 	ldrb.w	r3, [r4, #38]	; 0x26
   39bae:	f043 0380 	orr.w	r3, r3, #128	; 0x80
   39bb2:	f884 3026 	strb.w	r3, [r4, #38]	; 0x26
	cmds->hci_le_set_privacy_mode = 1;
   39bb6:	f894 3027 	ldrb.w	r3, [r4, #39]	; 0x27
   39bba:	f043 0304 	orr.w	r3, r3, #4
   39bbe:	f884 3027 	strb.w	r3, [r4, #39]	; 0x27
}
   39bc2:	bd10      	pop	{r4, pc}

00039bc4 <supported_features>:
{
   39bc4:	b510      	push	{r4, lr}
   39bc6:	4604      	mov	r4, r0
	memset(features, 0, sizeof(*features));
   39bc8:	2208      	movs	r2, #8
   39bca:	2100      	movs	r1, #0
   39bcc:	f7fb ffba 	bl	35b44 <memset>
	features->bdedr_not_supported = 1;
   39bd0:	7923      	ldrb	r3, [r4, #4]
	features->le_supported = 1;
   39bd2:	f043 0360 	orr.w	r3, r3, #96	; 0x60
   39bd6:	7123      	strb	r3, [r4, #4]
}
   39bd8:	bd10      	pop	{r4, pc}

00039bda <info_param_cmd_put>:
{
   39bda:	b538      	push	{r3, r4, r5, lr}
   39bdc:	4604      	mov	r4, r0
	uint8_t * const event_out_params = &raw_event_out[CMD_COMPLETE_MIN_SIZE];
   39bde:	1d88      	adds	r0, r1, #6
   39be0:	7865      	ldrb	r5, [r4, #1]
   39be2:	7823      	ldrb	r3, [r4, #0]
   39be4:	ea43 2305 	orr.w	r3, r3, r5, lsl #8
   39be8:	b21b      	sxth	r3, r3
	switch (opcode)	{
   39bea:	f5a3 5380 	sub.w	r3, r3, #4096	; 0x1000
   39bee:	3b01      	subs	r3, #1
   39bf0:	2b08      	cmp	r3, #8
   39bf2:	d820      	bhi.n	39c36 <info_param_cmd_put+0x5c>
   39bf4:	e8df f003 	tbb	[pc, r3]
   39bf8:	1f120b05 	.word	0x1f120b05
   39bfc:	1f1f1f1f 	.word	0x1f1f1f1f
   39c00:	19          	.byte	0x19
   39c01:	00          	.byte	0x00
		*param_length_out += sizeof(sdc_hci_cmd_ip_read_local_version_information_return_t);
   39c02:	7813      	ldrb	r3, [r2, #0]
   39c04:	3308      	adds	r3, #8
   39c06:	7013      	strb	r3, [r2, #0]
		return sdc_hci_cmd_ip_read_local_version_information((void *)event_out_params);
   39c08:	f7de ff0f 	bl	18a2a <sdc_hci_cmd_ip_read_local_version_information>
   39c0c:	e014      	b.n	39c38 <info_param_cmd_put+0x5e>
		*param_length_out += sizeof(sdc_hci_cmd_ip_read_local_supported_commands_return_t);
   39c0e:	7813      	ldrb	r3, [r2, #0]
   39c10:	3340      	adds	r3, #64	; 0x40
   39c12:	7013      	strb	r3, [r2, #0]
		supported_commands((void *)event_out_params);
   39c14:	f7ff ff79 	bl	39b0a <supported_commands>
		return 0;
   39c18:	2000      	movs	r0, #0
   39c1a:	e00d      	b.n	39c38 <info_param_cmd_put+0x5e>
		*param_length_out += sizeof(sdc_hci_cmd_ip_read_local_supported_features_return_t);
   39c1c:	7813      	ldrb	r3, [r2, #0]
   39c1e:	3308      	adds	r3, #8
   39c20:	7013      	strb	r3, [r2, #0]
		supported_features((void *)event_out_params);
   39c22:	f7ff ffcf 	bl	39bc4 <supported_features>
		return 0;
   39c26:	2000      	movs	r0, #0
   39c28:	e006      	b.n	39c38 <info_param_cmd_put+0x5e>
		*param_length_out += sizeof(sdc_hci_cmd_ip_read_bd_addr_return_t);
   39c2a:	7813      	ldrb	r3, [r2, #0]
   39c2c:	3306      	adds	r3, #6
   39c2e:	7013      	strb	r3, [r2, #0]
		return sdc_hci_cmd_ip_read_bd_addr((void *)event_out_params);
   39c30:	f7de fef9 	bl	18a26 <sdc_hci_cmd_ip_read_bd_addr>
   39c34:	e000      	b.n	39c38 <info_param_cmd_put+0x5e>
   39c36:	2001      	movs	r0, #1
}
   39c38:	bd38      	pop	{r3, r4, r5, pc}

00039c3a <le_supported_features>:
{
   39c3a:	b510      	push	{r4, lr}
   39c3c:	4604      	mov	r4, r0
	memset(features, 0, sizeof(*features));
   39c3e:	2205      	movs	r2, #5
   39c40:	2100      	movs	r1, #0
   39c42:	f7fb ff7f 	bl	35b44 <memset>
	features->le_encryption = 1;
   39c46:	7823      	ldrb	r3, [r4, #0]
	features->ll_privacy = 1;
   39c48:	f043 0375 	orr.w	r3, r3, #117	; 0x75
   39c4c:	7023      	strb	r3, [r4, #0]
	features->le_2m_phy = 1;
   39c4e:	7863      	ldrb	r3, [r4, #1]
	features->channel_selection_algorithm_2 = 1;
   39c50:	f043 0341 	orr.w	r3, r3, #65	; 0x41
   39c54:	7063      	strb	r3, [r4, #1]
}
   39c56:	bd10      	pop	{r4, pc}

00039c58 <vs_zephyr_supported_commands>:
{
   39c58:	b510      	push	{r4, lr}
   39c5a:	4604      	mov	r4, r0
	memset(cmds, 0, sizeof(*cmds));
   39c5c:	2202      	movs	r2, #2
   39c5e:	2100      	movs	r1, #0
   39c60:	f7fb ff70 	bl	35b44 <memset>
	cmds->read_version_info = 1;
   39c64:	7823      	ldrb	r3, [r4, #0]
	cmds->write_bd_addr = 1;
   39c66:	f043 0323 	orr.w	r3, r3, #35	; 0x23
   39c6a:	7023      	strb	r3, [r4, #0]
	cmds->read_static_addresses = 1;
   39c6c:	7863      	ldrb	r3, [r4, #1]
	cmds->read_chip_temperature = 1;
   39c6e:	f043 0307 	orr.w	r3, r3, #7
   39c72:	7063      	strb	r3, [r4, #1]
}
   39c74:	bd10      	pop	{r4, pc}

00039c76 <vs_supported_commands>:
{
   39c76:	b510      	push	{r4, lr}
   39c78:	4604      	mov	r4, r0
	memset(cmds, 0, sizeof(*cmds));
   39c7a:	2201      	movs	r2, #1
   39c7c:	2100      	movs	r1, #0
   39c7e:	f7fb ff61 	bl	35b44 <memset>
	cmds->read_supported_vs_commands = 1;
   39c82:	7823      	ldrb	r3, [r4, #0]
	cmds->event_length_set = 1;
   39c84:	f043 033f 	orr.w	r3, r3, #63	; 0x3f
   39c88:	7023      	strb	r3, [r4, #0]
}
   39c8a:	bd10      	pop	{r4, pc}

00039c8c <le_controller_cmd_put>:
{
   39c8c:	b538      	push	{r3, r4, r5, lr}
   39c8e:	4604      	mov	r4, r0
	uint8_t const *cmd_params = &cmd[BT_HCI_CMD_HDR_SIZE];
   39c90:	3003      	adds	r0, #3
	uint8_t * const event_out_params = &raw_event_out[CMD_COMPLETE_MIN_SIZE];
   39c92:	3106      	adds	r1, #6
   39c94:	7865      	ldrb	r5, [r4, #1]
   39c96:	7823      	ldrb	r3, [r4, #0]
   39c98:	ea43 2305 	orr.w	r3, r3, r5, lsl #8
   39c9c:	b21b      	sxth	r3, r3
	switch (opcode)	{
   39c9e:	f5a3 5300 	sub.w	r3, r3, #8192	; 0x2000
   39ca2:	3b01      	subs	r3, #1
   39ca4:	2b4d      	cmp	r3, #77	; 0x4d
   39ca6:	f200 80ce 	bhi.w	39e46 <le_controller_cmd_put+0x1ba>
   39caa:	e8df f003 	tbb	[pc, r3]
   39cae:	2a27      	.short	0x2a27
   39cb0:	3c39cc31 	.word	0x3c39cc31
   39cb4:	4c49463f 	.word	0x4c49463f
   39cb8:	cccccccc 	.word	0xcccccccc
   39cbc:	5c59564f 	.word	0x5c59564f
   39cc0:	655fcccc 	.word	0x655fcccc
   39cc4:	75cc6e68 	.word	0x75cc6e68
   39cc8:	cccc817b 	.word	0xcccc817b
   39ccc:	89cccccc 	.word	0x89cccccc
   39cd0:	cccc968f 	.word	0xcccc968f
   39cd4:	a29f9c99 	.word	0xa29f9c99
   39cd8:	aca9cccc 	.word	0xaca9cccc
   39cdc:	bfbcb6af 	.word	0xbfbcb6af
   39ce0:	cccccccc 	.word	0xcccccccc
   39ce4:	cccccccc 	.word	0xcccccccc
   39ce8:	cccccccc 	.word	0xcccccccc
   39cec:	cccccccc 	.word	0xcccccccc
   39cf0:	cccccccc 	.word	0xcccccccc
   39cf4:	cccccccc 	.word	0xcccccccc
   39cf8:	c9ccccc2 	.word	0xc9ccccc2
		return sdc_hci_cmd_le_set_event_mask((void *)cmd_params);
   39cfc:	f7de fecf 	bl	18a9e <sdc_hci_cmd_le_set_event_mask>
   39d00:	e0a2      	b.n	39e48 <le_controller_cmd_put+0x1bc>
		*param_length_out += sizeof(sdc_hci_cmd_le_read_buffer_size_return_t);
   39d02:	7813      	ldrb	r3, [r2, #0]
   39d04:	3303      	adds	r3, #3
   39d06:	7013      	strb	r3, [r2, #0]
		return sdc_hci_cmd_le_read_buffer_size((void *)event_out_params);
   39d08:	4608      	mov	r0, r1
   39d0a:	f7de fea6 	bl	18a5a <sdc_hci_cmd_le_read_buffer_size>
   39d0e:	e09b      	b.n	39e48 <le_controller_cmd_put+0x1bc>
		*param_length_out += sizeof(sdc_hci_cmd_le_read_local_supported_features_return_t);
   39d10:	7813      	ldrb	r3, [r2, #0]
   39d12:	3308      	adds	r3, #8
   39d14:	7013      	strb	r3, [r2, #0]
		le_supported_features((void *)event_out_params);
   39d16:	4608      	mov	r0, r1
   39d18:	f7ff ff8f 	bl	39c3a <le_supported_features>
		return 0;
   39d1c:	2000      	movs	r0, #0
   39d1e:	e093      	b.n	39e48 <le_controller_cmd_put+0x1bc>
		return sdc_hci_cmd_le_set_random_address((void *)cmd_params);
   39d20:	f7de fec6 	bl	18ab0 <sdc_hci_cmd_le_set_random_address>
   39d24:	e090      	b.n	39e48 <le_controller_cmd_put+0x1bc>
		return sdc_hci_cmd_le_set_adv_params((void *)cmd_params);
   39d26:	f7de feb4 	bl	18a92 <sdc_hci_cmd_le_set_adv_params>
   39d2a:	e08d      	b.n	39e48 <le_controller_cmd_put+0x1bc>
		*param_length_out +=
   39d2c:	7813      	ldrb	r3, [r2, #0]
   39d2e:	3301      	adds	r3, #1
   39d30:	7013      	strb	r3, [r2, #0]
		return sdc_hci_cmd_le_read_adv_physical_channel_tx_power((void *)event_out_params);
   39d32:	4608      	mov	r0, r1
   39d34:	f7de fe8f 	bl	18a56 <sdc_hci_cmd_le_read_adv_physical_channel_tx_power>
   39d38:	e086      	b.n	39e48 <le_controller_cmd_put+0x1bc>
		return sdc_hci_cmd_le_set_adv_data((void *)cmd_params);
   39d3a:	f7de fea6 	bl	18a8a <sdc_hci_cmd_le_set_adv_data>
   39d3e:	e083      	b.n	39e48 <le_controller_cmd_put+0x1bc>
		return sdc_hci_cmd_le_set_scan_response_data((void *)cmd_params);
   39d40:	f7de feba 	bl	18ab8 <sdc_hci_cmd_le_set_scan_response_data>
   39d44:	e080      	b.n	39e48 <le_controller_cmd_put+0x1bc>
		return sdc_hci_cmd_le_set_adv_enable((void *)cmd_params);
   39d46:	f7de fea2 	bl	18a8e <sdc_hci_cmd_le_set_adv_enable>
   39d4a:	e07d      	b.n	39e48 <le_controller_cmd_put+0x1bc>
		*param_length_out += sizeof(sdc_hci_cmd_le_read_white_list_size_return_t);
   39d4c:	7813      	ldrb	r3, [r2, #0]
   39d4e:	3301      	adds	r3, #1
   39d50:	7013      	strb	r3, [r2, #0]
		return sdc_hci_cmd_le_read_white_list_size((void *)event_out_params);
   39d52:	4608      	mov	r0, r1
   39d54:	f7de fe91 	bl	18a7a <sdc_hci_cmd_le_read_white_list_size>
   39d58:	e076      	b.n	39e48 <le_controller_cmd_put+0x1bc>
		return sdc_hci_cmd_le_clear_white_list();
   39d5a:	f7de fe6e 	bl	18a3a <sdc_hci_cmd_le_clear_white_list>
   39d5e:	e073      	b.n	39e48 <le_controller_cmd_put+0x1bc>
		return sdc_hci_cmd_le_add_device_to_white_list((void *)cmd_params);
   39d60:	f7de fe67 	bl	18a32 <sdc_hci_cmd_le_add_device_to_white_list>
   39d64:	e070      	b.n	39e48 <le_controller_cmd_put+0x1bc>
		return sdc_hci_cmd_le_remove_device_from_white_list((void *)cmd_params);
   39d66:	f7de fe8c 	bl	18a82 <sdc_hci_cmd_le_remove_device_from_white_list>
   39d6a:	e06d      	b.n	39e48 <le_controller_cmd_put+0x1bc>
		*param_length_out += sizeof(sdc_hci_cmd_le_read_channel_map_return_t);
   39d6c:	7813      	ldrb	r3, [r2, #0]
   39d6e:	3307      	adds	r3, #7
   39d70:	7013      	strb	r3, [r2, #0]
		return sdc_hci_cmd_le_read_channel_map((void *)cmd_params,
   39d72:	f7de fe74 	bl	18a5e <sdc_hci_cmd_le_read_channel_map>
   39d76:	e067      	b.n	39e48 <le_controller_cmd_put+0x1bc>
		return sdc_hci_cmd_le_read_remote_features((void *)cmd_params);
   39d78:	f7de fe77 	bl	18a6a <sdc_hci_cmd_le_read_remote_features>
   39d7c:	e064      	b.n	39e48 <le_controller_cmd_put+0x1bc>
		*param_length_out += sizeof(sdc_hci_cmd_le_encrypt_return_t);
   39d7e:	7813      	ldrb	r3, [r2, #0]
   39d80:	3310      	adds	r3, #16
   39d82:	7013      	strb	r3, [r2, #0]
		return sdc_hci_cmd_le_encrypt((void *)cmd_params, (void *)event_out_params);
   39d84:	f7de fe5b 	bl	18a3e <sdc_hci_cmd_le_encrypt>
   39d88:	e05e      	b.n	39e48 <le_controller_cmd_put+0x1bc>
		*param_length_out += sizeof(sdc_hci_cmd_le_rand_return_t);
   39d8a:	7813      	ldrb	r3, [r2, #0]
   39d8c:	3308      	adds	r3, #8
   39d8e:	7013      	strb	r3, [r2, #0]
		return sdc_hci_cmd_le_rand((void *)event_out_params);
   39d90:	4608      	mov	r0, r1
   39d92:	f7de fe5e 	bl	18a52 <sdc_hci_cmd_le_rand>
   39d96:	e057      	b.n	39e48 <le_controller_cmd_put+0x1bc>
		*param_length_out += sizeof(sdc_hci_cmd_le_long_term_key_request_reply_return_t);
   39d98:	7813      	ldrb	r3, [r2, #0]
   39d9a:	3302      	adds	r3, #2
   39d9c:	7013      	strb	r3, [r2, #0]
		return sdc_hci_cmd_le_long_term_key_request_reply((void *)cmd_params,
   39d9e:	f7de fe54 	bl	18a4a <sdc_hci_cmd_le_long_term_key_request_reply>
   39da2:	e051      	b.n	39e48 <le_controller_cmd_put+0x1bc>
		*param_length_out +=
   39da4:	7813      	ldrb	r3, [r2, #0]
   39da6:	3302      	adds	r3, #2
   39da8:	7013      	strb	r3, [r2, #0]
		return sdc_hci_cmd_le_long_term_key_request_negative_reply(
   39daa:	f7de fe4a 	bl	18a42 <sdc_hci_cmd_le_long_term_key_request_negative_reply>
   39dae:	e04b      	b.n	39e48 <le_controller_cmd_put+0x1bc>
		*param_length_out += sizeof(sdc_hci_cmd_le_read_supported_states_return_t);
   39db0:	7813      	ldrb	r3, [r2, #0]
   39db2:	3308      	adds	r3, #8
   39db4:	7013      	strb	r3, [r2, #0]
		le_read_supported_states((void *)event_out_params);
   39db6:	4608      	mov	r0, r1
   39db8:	f7ff fe47 	bl	39a4a <le_read_supported_states>
		return 0;
   39dbc:	2000      	movs	r0, #0
   39dbe:	e043      	b.n	39e48 <le_controller_cmd_put+0x1bc>
		*param_length_out += sizeof(sdc_hci_cmd_le_set_data_length_return_t);
   39dc0:	7813      	ldrb	r3, [r2, #0]
   39dc2:	3302      	adds	r3, #2
   39dc4:	7013      	strb	r3, [r2, #0]
		return sdc_hci_cmd_le_set_data_length((void *)cmd_params, (void *)event_out_params);
   39dc6:	f7de fe66 	bl	18a96 <sdc_hci_cmd_le_set_data_length>
   39dca:	e03d      	b.n	39e48 <le_controller_cmd_put+0x1bc>
		*param_length_out +=
   39dcc:	7813      	ldrb	r3, [r2, #0]
   39dce:	3304      	adds	r3, #4
   39dd0:	7013      	strb	r3, [r2, #0]
		return sdc_hci_cmd_le_read_suggested_default_data_length((void *)event_out_params);
   39dd2:	4608      	mov	r0, r1
   39dd4:	f7de fe4d 	bl	18a72 <sdc_hci_cmd_le_read_suggested_default_data_length>
   39dd8:	e036      	b.n	39e48 <le_controller_cmd_put+0x1bc>
		return sdc_hci_cmd_le_write_suggested_default_data_length((void *)cmd_params);
   39dda:	f7de fe6f 	bl	18abc <sdc_hci_cmd_le_write_suggested_default_data_length>
   39dde:	e033      	b.n	39e48 <le_controller_cmd_put+0x1bc>
		return sdc_hci_cmd_le_add_device_to_resolving_list((void *)cmd_params);
   39de0:	f7de fe25 	bl	18a2e <sdc_hci_cmd_le_add_device_to_resolving_list>
   39de4:	e030      	b.n	39e48 <le_controller_cmd_put+0x1bc>
		return sdc_hci_cmd_le_remove_device_from_resolving_list((void *)cmd_params);
   39de6:	f7de fe4a 	bl	18a7e <sdc_hci_cmd_le_remove_device_from_resolving_list>
   39dea:	e02d      	b.n	39e48 <le_controller_cmd_put+0x1bc>
		return sdc_hci_cmd_le_clear_resolving_list();
   39dec:	f7de fe23 	bl	18a36 <sdc_hci_cmd_le_clear_resolving_list>
   39df0:	e02a      	b.n	39e48 <le_controller_cmd_put+0x1bc>
		*param_length_out += sizeof(sdc_hci_cmd_le_read_resolving_list_size_return_t);
   39df2:	7813      	ldrb	r3, [r2, #0]
   39df4:	3301      	adds	r3, #1
   39df6:	7013      	strb	r3, [r2, #0]
		return sdc_hci_cmd_le_read_resolving_list_size((void *)event_out_params);
   39df8:	4608      	mov	r0, r1
   39dfa:	f7de fe38 	bl	18a6e <sdc_hci_cmd_le_read_resolving_list_size>
   39dfe:	e023      	b.n	39e48 <le_controller_cmd_put+0x1bc>
		return sdc_hci_cmd_le_set_address_resolution_enable((void *)cmd_params);
   39e00:	f7de fe41 	bl	18a86 <sdc_hci_cmd_le_set_address_resolution_enable>
   39e04:	e020      	b.n	39e48 <le_controller_cmd_put+0x1bc>
		return sdc_hci_cmd_le_set_resolvable_private_address_timeout((void *)cmd_params);
   39e06:	f7de fe55 	bl	18ab4 <sdc_hci_cmd_le_set_resolvable_private_address_timeout>
   39e0a:	e01d      	b.n	39e48 <le_controller_cmd_put+0x1bc>
		*param_length_out += sizeof(sdc_hci_cmd_le_read_max_data_length_return_t);
   39e0c:	7813      	ldrb	r3, [r2, #0]
   39e0e:	3308      	adds	r3, #8
   39e10:	7013      	strb	r3, [r2, #0]
		return sdc_hci_cmd_le_read_max_data_length((void *)event_out_params);
   39e12:	4608      	mov	r0, r1
   39e14:	f7de fe25 	bl	18a62 <sdc_hci_cmd_le_read_max_data_length>
   39e18:	e016      	b.n	39e48 <le_controller_cmd_put+0x1bc>
		*param_length_out += sizeof(sdc_hci_cmd_le_read_phy_return_t);
   39e1a:	7813      	ldrb	r3, [r2, #0]
   39e1c:	3304      	adds	r3, #4
   39e1e:	7013      	strb	r3, [r2, #0]
		return sdc_hci_cmd_le_read_phy((void *)cmd_params, (void *)event_out_params);
   39e20:	f7de fe21 	bl	18a66 <sdc_hci_cmd_le_read_phy>
   39e24:	e010      	b.n	39e48 <le_controller_cmd_put+0x1bc>
		return sdc_hci_cmd_le_set_default_phy((void *)cmd_params);
   39e26:	f7de fe38 	bl	18a9a <sdc_hci_cmd_le_set_default_phy>
   39e2a:	e00d      	b.n	39e48 <le_controller_cmd_put+0x1bc>
		return sdc_hci_cmd_le_set_phy((void *)cmd_params);
   39e2c:	f7de fe3c 	bl	18aa8 <sdc_hci_cmd_le_set_phy>
   39e30:	e00a      	b.n	39e48 <le_controller_cmd_put+0x1bc>
		*param_length_out += sizeof(sdc_hci_cmd_le_read_transmit_power_return_t);
   39e32:	7813      	ldrb	r3, [r2, #0]
   39e34:	3302      	adds	r3, #2
   39e36:	7013      	strb	r3, [r2, #0]
		return sdc_hci_cmd_le_read_transmit_power((void *)event_out_params);
   39e38:	4608      	mov	r0, r1
   39e3a:	f7de fe1c 	bl	18a76 <sdc_hci_cmd_le_read_transmit_power>
   39e3e:	e003      	b.n	39e48 <le_controller_cmd_put+0x1bc>
		return sdc_hci_cmd_le_set_privacy_mode((void *)cmd_params);
   39e40:	f7de fe34 	bl	18aac <sdc_hci_cmd_le_set_privacy_mode>
   39e44:	e000      	b.n	39e48 <le_controller_cmd_put+0x1bc>
   39e46:	2001      	movs	r0, #1
}
   39e48:	bd38      	pop	{r3, r4, r5, pc}

00039e4a <vs_cmd_put>:
{
   39e4a:	b538      	push	{r3, r4, r5, lr}
   39e4c:	4604      	mov	r4, r0
	uint8_t const *cmd_params = &cmd[BT_HCI_CMD_HDR_SIZE];
   39e4e:	3003      	adds	r0, #3
	uint8_t * const event_out_params = &raw_event_out[CMD_COMPLETE_MIN_SIZE];
   39e50:	3106      	adds	r1, #6
   39e52:	7865      	ldrb	r5, [r4, #1]
   39e54:	7823      	ldrb	r3, [r4, #0]
   39e56:	ea43 2305 	orr.w	r3, r3, r5, lsl #8
	switch (opcode)	{
   39e5a:	f64f 440a 	movw	r4, #64522	; 0xfc0a
   39e5e:	42a3      	cmp	r3, r4
   39e60:	d90f      	bls.n	39e82 <vs_cmd_put+0x38>
   39e62:	f64f 5405 	movw	r4, #64773	; 0xfd05
   39e66:	42a3      	cmp	r3, r4
   39e68:	d85b      	bhi.n	39f22 <vs_cmd_put+0xd8>
   39e6a:	f5b3 4f7d 	cmp.w	r3, #64768	; 0xfd00
   39e6e:	d319      	bcc.n	39ea4 <vs_cmd_put+0x5a>
   39e70:	f5a3 437d 	sub.w	r3, r3, #64768	; 0xfd00
   39e74:	2b05      	cmp	r3, #5
   39e76:	d850      	bhi.n	39f1a <vs_cmd_put+0xd0>
   39e78:	e8df f003 	tbb	[pc, r3]
   39e7c:	46434038 	.word	0x46434038
   39e80:	4c49      	.short	0x4c49
   39e82:	f5b3 4f7c 	cmp.w	r3, #64512	; 0xfc00
   39e86:	d801      	bhi.n	39e8c <vs_cmd_put+0x42>
   39e88:	2001      	movs	r0, #1
}
   39e8a:	bd38      	pop	{r3, r4, r5, pc}
   39e8c:	f5a3 437c 	sub.w	r3, r3, #64512	; 0xfc00
   39e90:	3b01      	subs	r3, #1
   39e92:	2b09      	cmp	r3, #9
   39e94:	d843      	bhi.n	39f1e <vs_cmd_put+0xd4>
   39e96:	e8df f003 	tbb	[pc, r3]
   39e9a:	0e07      	.short	0x0e07
   39e9c:	26424242 	.word	0x26424242
   39ea0:	1f164242 	.word	0x1f164242
	switch (opcode)	{
   39ea4:	2001      	movs	r0, #1
   39ea6:	e7f0      	b.n	39e8a <vs_cmd_put+0x40>
		*param_length_out += sizeof(sdc_hci_cmd_vs_zephyr_read_version_info_return_t);
   39ea8:	7813      	ldrb	r3, [r2, #0]
   39eaa:	330c      	adds	r3, #12
   39eac:	7013      	strb	r3, [r2, #0]
		return sdc_hci_cmd_vs_zephyr_read_version_info((void *)event_out_params);
   39eae:	4608      	mov	r0, r1
   39eb0:	f7d6 fa64 	bl	1037c <sdc_hci_cmd_vs_zephyr_read_version_info>
   39eb4:	e7e9      	b.n	39e8a <vs_cmd_put+0x40>
		*param_length_out += sizeof(sdc_hci_cmd_vs_zephyr_read_supported_commands_return_t);
   39eb6:	7813      	ldrb	r3, [r2, #0]
   39eb8:	3340      	adds	r3, #64	; 0x40
   39eba:	7013      	strb	r3, [r2, #0]
		vs_zephyr_supported_commands((void *)event_out_params);
   39ebc:	4608      	mov	r0, r1
   39ebe:	f7ff fecb 	bl	39c58 <vs_zephyr_supported_commands>
		return 0;
   39ec2:	2000      	movs	r0, #0
   39ec4:	e7e1      	b.n	39e8a <vs_cmd_put+0x40>
		*param_length_out += sizeof(sdc_hci_cmd_vs_zephyr_read_static_addresses_return_t);
   39ec6:	7813      	ldrb	r3, [r2, #0]
   39ec8:	3301      	adds	r3, #1
   39eca:	b2db      	uxtb	r3, r3
		*param_length_out += sizeof(sdc_hci_vs_zephyr_static_address_t);
   39ecc:	3316      	adds	r3, #22
   39ece:	7013      	strb	r3, [r2, #0]
		return sdc_hci_cmd_vs_zephyr_read_static_addresses((void *)event_out_params);
   39ed0:	4608      	mov	r0, r1
   39ed2:	f7de fd5b 	bl	1898c <sdc_hci_cmd_vs_zephyr_read_static_addresses>
   39ed6:	e7d8      	b.n	39e8a <vs_cmd_put+0x40>
		*param_length_out +=
   39ed8:	7813      	ldrb	r3, [r2, #0]
   39eda:	3320      	adds	r3, #32
   39edc:	7013      	strb	r3, [r2, #0]
		return sdc_hci_cmd_vs_zephyr_read_key_hierarchy_roots((void *)event_out_params);
   39ede:	4608      	mov	r0, r1
   39ee0:	f7de fd07 	bl	188f2 <sdc_hci_cmd_vs_zephyr_read_key_hierarchy_roots>
   39ee4:	e7d1      	b.n	39e8a <vs_cmd_put+0x40>
		return sdc_hci_cmd_vs_zephyr_write_bd_addr((void *)cmd_params);
   39ee6:	f7de fd9c 	bl	18a22 <sdc_hci_cmd_vs_zephyr_write_bd_addr>
   39eea:	e7ce      	b.n	39e8a <vs_cmd_put+0x40>
		*param_length_out += sizeof(sdc_hci_cmd_vs_read_supported_vs_commands_return_t);
   39eec:	7813      	ldrb	r3, [r2, #0]
   39eee:	3340      	adds	r3, #64	; 0x40
   39ef0:	7013      	strb	r3, [r2, #0]
		vs_supported_commands((void *)event_out_params);
   39ef2:	4608      	mov	r0, r1
   39ef4:	f7ff febf 	bl	39c76 <vs_supported_commands>
		return 0;
   39ef8:	2000      	movs	r0, #0
   39efa:	e7c6      	b.n	39e8a <vs_cmd_put+0x40>
		return sdc_hci_cmd_vs_llpm_mode_set((void *)cmd_params);
   39efc:	f7de fcf2 	bl	188e4 <sdc_hci_cmd_vs_llpm_mode_set>
   39f00:	e7c3      	b.n	39e8a <vs_cmd_put+0x40>
		return sdc_hci_cmd_vs_conn_update((void *)cmd_params);
   39f02:	f7de fceb 	bl	188dc <sdc_hci_cmd_vs_conn_update>
   39f06:	e7c0      	b.n	39e8a <vs_cmd_put+0x40>
		return sdc_hci_cmd_vs_conn_event_extend((void *)cmd_params);
   39f08:	f7de fce0 	bl	188cc <sdc_hci_cmd_vs_conn_event_extend>
   39f0c:	e7bd      	b.n	39e8a <vs_cmd_put+0x40>
		return sdc_hci_cmd_vs_qos_conn_event_report_enable((void *)cmd_params);
   39f0e:	f7de fceb 	bl	188e8 <sdc_hci_cmd_vs_qos_conn_event_report_enable>
   39f12:	e7ba      	b.n	39e8a <vs_cmd_put+0x40>
		return sdc_hci_cmd_vs_event_length_set((void *)cmd_params);
   39f14:	f7de fce4 	bl	188e0 <sdc_hci_cmd_vs_event_length_set>
   39f18:	e7b7      	b.n	39e8a <vs_cmd_put+0x40>
	switch (opcode)	{
   39f1a:	2001      	movs	r0, #1
   39f1c:	e7b5      	b.n	39e8a <vs_cmd_put+0x40>
   39f1e:	2001      	movs	r0, #1
   39f20:	e7b3      	b.n	39e8a <vs_cmd_put+0x40>
   39f22:	2001      	movs	r0, #1
   39f24:	e7b1      	b.n	39e8a <vs_cmd_put+0x40>

00039f26 <cmd_put>:
{
   39f26:	b570      	push	{r4, r5, r6, lr}
   39f28:	b082      	sub	sp, #8
   39f2a:	460e      	mov	r6, r1
   39f2c:	7842      	ldrb	r2, [r0, #1]
   39f2e:	7805      	ldrb	r5, [r0, #0]
   39f30:	ea45 2502 	orr.w	r5, r5, r2, lsl #8
	uint8_t return_param_length = sizeof(struct bt_hci_evt_cmd_complete)
   39f34:	2304      	movs	r3, #4
   39f36:	f88d 3007 	strb.w	r3, [sp, #7]
	switch (BT_OGF(opcode)) {
   39f3a:	0893      	lsrs	r3, r2, #2
   39f3c:	2a23      	cmp	r2, #35	; 0x23
   39f3e:	d80b      	bhi.n	39f58 <cmd_put+0x32>
   39f40:	b21a      	sxth	r2, r3
   39f42:	2a00      	cmp	r2, #0
   39f44:	d03a      	beq.n	39fbc <cmd_put+0x96>
   39f46:	3b01      	subs	r3, #1
   39f48:	2b07      	cmp	r3, #7
   39f4a:	d839      	bhi.n	39fc0 <cmd_put+0x9a>
   39f4c:	e8df f003 	tbb	[pc, r3]
   39f50:	241e381a 	.word	0x241e381a
   39f54:	3038382a 	.word	0x3038382a
   39f58:	2b3f      	cmp	r3, #63	; 0x3f
   39f5a:	d105      	bne.n	39f68 <cmd_put+0x42>
		status = vs_cmd_put(cmd_in,
   39f5c:	f10d 0207 	add.w	r2, sp, #7
   39f60:	f7ff ff73 	bl	39e4a <vs_cmd_put>
   39f64:	4604      	mov	r4, r0
		break;
   39f66:	e000      	b.n	39f6a <cmd_put+0x44>
	switch (BT_OGF(opcode)) {
   39f68:	2401      	movs	r4, #1
	if (!command_generates_command_complete_event(opcode) ||
   39f6a:	4628      	mov	r0, r5
   39f6c:	f7ff fd1a 	bl	399a4 <command_generates_command_complete_event>
   39f70:	b108      	cbz	r0, 39f76 <cmd_put+0x50>
   39f72:	2c01      	cmp	r4, #1
   39f74:	d126      	bne.n	39fc4 <cmd_put+0x9e>
		encode_command_status(raw_event_out, opcode, status);
   39f76:	4622      	mov	r2, r4
   39f78:	4629      	mov	r1, r5
   39f7a:	4630      	mov	r0, r6
   39f7c:	f7ff fd51 	bl	39a22 <encode_command_status>
}
   39f80:	b002      	add	sp, #8
   39f82:	bd70      	pop	{r4, r5, r6, pc}
		status = link_control_cmd_put(cmd_in);
   39f84:	f7ff fd68 	bl	39a58 <link_control_cmd_put>
   39f88:	4604      	mov	r4, r0
		break;
   39f8a:	e7ee      	b.n	39f6a <cmd_put+0x44>
		status = controller_and_baseband_cmd_put(cmd_in,
   39f8c:	f10d 0207 	add.w	r2, sp, #7
   39f90:	f7ff fd79 	bl	39a86 <controller_and_baseband_cmd_put>
   39f94:	4604      	mov	r4, r0
		break;
   39f96:	e7e8      	b.n	39f6a <cmd_put+0x44>
		status = info_param_cmd_put(cmd_in,
   39f98:	f10d 0207 	add.w	r2, sp, #7
   39f9c:	f7ff fe1d 	bl	39bda <info_param_cmd_put>
   39fa0:	4604      	mov	r4, r0
		break;
   39fa2:	e7e2      	b.n	39f6a <cmd_put+0x44>
		status = status_param_cmd_put(cmd_in,
   39fa4:	f10d 0207 	add.w	r2, sp, #7
   39fa8:	f7ff fd54 	bl	39a54 <status_param_cmd_put>
   39fac:	4604      	mov	r4, r0
		break;
   39fae:	e7dc      	b.n	39f6a <cmd_put+0x44>
		status = le_controller_cmd_put(cmd_in,
   39fb0:	f10d 0207 	add.w	r2, sp, #7
   39fb4:	f7ff fe6a 	bl	39c8c <le_controller_cmd_put>
   39fb8:	4604      	mov	r4, r0
		break;
   39fba:	e7d6      	b.n	39f6a <cmd_put+0x44>
	switch (BT_OGF(opcode)) {
   39fbc:	2401      	movs	r4, #1
   39fbe:	e7d4      	b.n	39f6a <cmd_put+0x44>
   39fc0:	2401      	movs	r4, #1
   39fc2:	e7d2      	b.n	39f6a <cmd_put+0x44>
		encode_command_complete_header(raw_event_out, opcode, return_param_length, status);
   39fc4:	4623      	mov	r3, r4
   39fc6:	f89d 2007 	ldrb.w	r2, [sp, #7]
   39fca:	4629      	mov	r1, r5
   39fcc:	4630      	mov	r0, r6
   39fce:	f7ff fd31 	bl	39a34 <encode_command_complete_header>
}
   39fd2:	e7d5      	b.n	39f80 <cmd_put+0x5a>

00039fd4 <m_config_clock_source_get>:
}
   39fd4:	2001      	movs	r0, #1
   39fd6:	4770      	bx	lr

00039fd8 <mpsl_timer0_isr_wrapper>:
ISR_DIRECT_DECLARE(mpsl_timer0_isr_wrapper)
   39fd8:	4668      	mov	r0, sp
   39fda:	f020 0107 	bic.w	r1, r0, #7
   39fde:	468d      	mov	sp, r1
   39fe0:	b501      	push	{r0, lr}
	MPSL_IRQ_TIMER0_Handler();
   39fe2:	f7d4 fdbd 	bl	eb60 <MPSL_IRQ_TIMER0_Handler>
	ISR_DIRECT_PM();
   39fe6:	f7e5 fa2d 	bl	1f444 <_arch_isr_direct_pm>
{
#ifdef CONFIG_TRACING_ISR
	sys_trace_isr_exit();
#endif
	if (maybe_swap != 0) {
		z_arm_int_exit();
   39fea:	f7e5 fb37 	bl	1f65c <z_arm_exc_exit>
ISR_DIRECT_DECLARE(mpsl_timer0_isr_wrapper)
   39fee:	e8bd 4001 	ldmia.w	sp!, {r0, lr}
   39ff2:	4685      	mov	sp, r0
   39ff4:	4770      	bx	lr

00039ff6 <mpsl_rtc0_isr_wrapper>:
ISR_DIRECT_DECLARE(mpsl_rtc0_isr_wrapper)
   39ff6:	4668      	mov	r0, sp
   39ff8:	f020 0107 	bic.w	r1, r0, #7
   39ffc:	468d      	mov	sp, r1
   39ffe:	b501      	push	{r0, lr}
	MPSL_IRQ_RTC0_Handler();
   3a000:	f7d4 fd30 	bl	ea64 <MPSL_IRQ_RTC0_Handler>
	ISR_DIRECT_PM();
   3a004:	f7e5 fa1e 	bl	1f444 <_arch_isr_direct_pm>
ISR_DIRECT_DECLARE(mpsl_rtc0_isr_wrapper)
   3a008:	e8bd 4001 	ldmia.w	sp!, {r0, lr}
   3a00c:	4685      	mov	sp, r0
   3a00e:	4770      	bx	lr

0003a010 <mpsl_radio_isr_wrapper>:
ISR_DIRECT_DECLARE(mpsl_radio_isr_wrapper)
   3a010:	4668      	mov	r0, sp
   3a012:	f020 0107 	bic.w	r1, r0, #7
   3a016:	468d      	mov	sp, r1
   3a018:	b501      	push	{r0, lr}
	MPSL_IRQ_RADIO_Handler();
   3a01a:	f7dd fef1 	bl	17e00 <MPSL_IRQ_RADIO_Handler>
	ISR_DIRECT_PM();
   3a01e:	f7e5 fa11 	bl	1f444 <_arch_isr_direct_pm>
   3a022:	f7e5 fb1b 	bl	1f65c <z_arm_exc_exit>
ISR_DIRECT_DECLARE(mpsl_radio_isr_wrapper)
   3a026:	e8bd 4001 	ldmia.w	sp!, {r0, lr}
   3a02a:	4685      	mov	sp, r0
   3a02c:	4770      	bx	lr

0003a02e <nrfx_clock_enable>:
}
   3a02e:	4770      	bx	lr

0003a030 <nrfx_power_clock_irq_handler>:


void nrfx_clock_irq_handler(void)
{
   3a030:	b508      	push	{r3, lr}
	MPSL_IRQ_CLOCK_Handler();
   3a032:	f7d5 f9c3 	bl	f3bc <MPSL_IRQ_CLOCK_Handler>
}
   3a036:	bd08      	pop	{r3, pc}

0003a038 <nrf_flash_sync_is_required>:
{
   3a038:	b508      	push	{r3, lr}
	return mpsl_is_initialized();
   3a03a:	f7d5 fd83 	bl	fb44 <mpsl_is_initialized>
}
   3a03e:	bd08      	pop	{r3, pc}

0003a040 <nrf_flash_sync_get_timestamp_begin>:
}
   3a040:	4770      	bx	lr

0003a042 <boot_flag_decode>:
    if (flag != BOOT_FLAG_SET) {
   3a042:	2801      	cmp	r0, #1
   3a044:	d100      	bne.n	3a048 <boot_flag_decode+0x6>
}
   3a046:	4770      	bx	lr
        return BOOT_FLAG_BAD;
   3a048:	2002      	movs	r0, #2
   3a04a:	e7fc      	b.n	3a046 <boot_flag_decode+0x4>

0003a04c <boot_swap_info_off>:
    return fap->fa_size - BOOT_MAGIC_SZ;
   3a04c:	6880      	ldr	r0, [r0, #8]
}
   3a04e:	3828      	subs	r0, #40	; 0x28
   3a050:	4770      	bx	lr

0003a052 <boot_magic_compatible_check>:
    switch (tbl_val) {
   3a052:	2804      	cmp	r0, #4
   3a054:	d00a      	beq.n	3a06c <boot_magic_compatible_check+0x1a>
   3a056:	2805      	cmp	r0, #5
   3a058:	d103      	bne.n	3a062 <boot_magic_compatible_check+0x10>
        return val != BOOT_MAGIC_GOOD;
   3a05a:	1e48      	subs	r0, r1, #1
   3a05c:	bf18      	it	ne
   3a05e:	2001      	movne	r0, #1
   3a060:	4770      	bx	lr
        return tbl_val == val;
   3a062:	4288      	cmp	r0, r1
   3a064:	bf14      	ite	ne
   3a066:	2000      	movne	r0, #0
   3a068:	2001      	moveq	r0, #1
   3a06a:	4770      	bx	lr
    switch (tbl_val) {
   3a06c:	2001      	movs	r0, #1
}
   3a06e:	4770      	bx	lr

0003a070 <bootutil_buffer_is_erased>:
    if (buffer == NULL || len == 0) {
   3a070:	b189      	cbz	r1, 3a096 <bootutil_buffer_is_erased+0x26>
{
   3a072:	b538      	push	{r3, r4, r5, lr}
   3a074:	4614      	mov	r4, r2
   3a076:	460d      	mov	r5, r1
    if (buffer == NULL || len == 0) {
   3a078:	b90a      	cbnz	r2, 3a07e <bootutil_buffer_is_erased+0xe>
        return false;
   3a07a:	2000      	movs	r0, #0
}
   3a07c:	bd38      	pop	{r3, r4, r5, pc}
    erased_val = flash_area_erased_val(area);
   3a07e:	f7fa f9cb 	bl	34418 <flash_area_erased_val>
    for (i = 0, u8b = (uint8_t *)buffer; i < len; i++) {
   3a082:	2300      	movs	r3, #0
   3a084:	42a3      	cmp	r3, r4
   3a086:	d204      	bcs.n	3a092 <bootutil_buffer_is_erased+0x22>
        if (u8b[i] != erased_val) {
   3a088:	5cea      	ldrb	r2, [r5, r3]
   3a08a:	4282      	cmp	r2, r0
   3a08c:	d105      	bne.n	3a09a <bootutil_buffer_is_erased+0x2a>
    for (i = 0, u8b = (uint8_t *)buffer; i < len; i++) {
   3a08e:	3301      	adds	r3, #1
   3a090:	e7f8      	b.n	3a084 <bootutil_buffer_is_erased+0x14>
    return true;
   3a092:	2001      	movs	r0, #1
   3a094:	e7f2      	b.n	3a07c <bootutil_buffer_is_erased+0xc>
        return false;
   3a096:	2000      	movs	r0, #0
}
   3a098:	4770      	bx	lr
            return false;
   3a09a:	2000      	movs	r0, #0
   3a09c:	e7ee      	b.n	3a07c <bootutil_buffer_is_erased+0xc>

0003a09e <boot_read_flag>:
{
   3a09e:	b538      	push	{r3, r4, r5, lr}
   3a0a0:	4605      	mov	r5, r0
   3a0a2:	460c      	mov	r4, r1
   3a0a4:	4611      	mov	r1, r2
    rc = flash_area_read(fap, off, flag, sizeof *flag);
   3a0a6:	2301      	movs	r3, #1
   3a0a8:	4622      	mov	r2, r4
   3a0aa:	f7fa f926 	bl	342fa <flash_area_read>
    if (rc < 0) {
   3a0ae:	2800      	cmp	r0, #0
   3a0b0:	db0f      	blt.n	3a0d2 <boot_read_flag+0x34>
    if (bootutil_buffer_is_erased(fap, flag, sizeof *flag)) {
   3a0b2:	2201      	movs	r2, #1
   3a0b4:	4621      	mov	r1, r4
   3a0b6:	4628      	mov	r0, r5
   3a0b8:	f7ff ffda 	bl	3a070 <bootutil_buffer_is_erased>
   3a0bc:	b118      	cbz	r0, 3a0c6 <boot_read_flag+0x28>
        *flag = BOOT_FLAG_UNSET;
   3a0be:	2303      	movs	r3, #3
   3a0c0:	7023      	strb	r3, [r4, #0]
    return 0;
   3a0c2:	2000      	movs	r0, #0
   3a0c4:	e006      	b.n	3a0d4 <boot_read_flag+0x36>
        *flag = boot_flag_decode(*flag);
   3a0c6:	7820      	ldrb	r0, [r4, #0]
   3a0c8:	f7ff ffbb 	bl	3a042 <boot_flag_decode>
   3a0cc:	7020      	strb	r0, [r4, #0]
    return 0;
   3a0ce:	2000      	movs	r0, #0
   3a0d0:	e000      	b.n	3a0d4 <boot_read_flag+0x36>
        return BOOT_EFLASH;
   3a0d2:	2001      	movs	r0, #1
}
   3a0d4:	bd38      	pop	{r3, r4, r5, pc}

0003a0d6 <boot_write_trailer>:
{
   3a0d6:	e92d 43f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, lr}
   3a0da:	b083      	sub	sp, #12
   3a0dc:	4606      	mov	r6, r0
   3a0de:	460f      	mov	r7, r1
   3a0e0:	4690      	mov	r8, r2
   3a0e2:	461d      	mov	r5, r3
    align = flash_area_align(fap);
   3a0e4:	f7fa f98a 	bl	343fc <flash_area_align>
    align = (inlen + align - 1) & ~(align - 1);
   3a0e8:	1944      	adds	r4, r0, r5
   3a0ea:	b264      	sxtb	r4, r4
   3a0ec:	3c01      	subs	r4, #1
   3a0ee:	b264      	sxtb	r4, r4
   3a0f0:	4240      	negs	r0, r0
   3a0f2:	4004      	ands	r4, r0
   3a0f4:	b2e4      	uxtb	r4, r4
    if (align > BOOT_MAX_ALIGN) {
   3a0f6:	2c08      	cmp	r4, #8
   3a0f8:	d904      	bls.n	3a104 <boot_write_trailer+0x2e>
        return -1;
   3a0fa:	f04f 30ff 	mov.w	r0, #4294967295
}
   3a0fe:	b003      	add	sp, #12
   3a100:	e8bd 83f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, pc}
    erased_val = flash_area_erased_val(fap);
   3a104:	4630      	mov	r0, r6
   3a106:	f7fa f987 	bl	34418 <flash_area_erased_val>
   3a10a:	4681      	mov	r9, r0
    memcpy(buf, inbuf, inlen);
   3a10c:	462a      	mov	r2, r5
   3a10e:	4641      	mov	r1, r8
   3a110:	4668      	mov	r0, sp
   3a112:	f7fb fcf3 	bl	35afc <memcpy>
    memset(&buf[inlen], erased_val, align - inlen);
   3a116:	1b62      	subs	r2, r4, r5
   3a118:	4649      	mov	r1, r9
   3a11a:	eb0d 0005 	add.w	r0, sp, r5
   3a11e:	f7fb fd11 	bl	35b44 <memset>
    rc = flash_area_write(fap, off, buf, align);
   3a122:	4623      	mov	r3, r4
   3a124:	466a      	mov	r2, sp
   3a126:	4639      	mov	r1, r7
   3a128:	4630      	mov	r0, r6
   3a12a:	f7fa f908 	bl	3433e <flash_area_write>
    if (rc != 0) {
   3a12e:	2800      	cmp	r0, #0
   3a130:	d0e5      	beq.n	3a0fe <boot_write_trailer+0x28>
        return BOOT_EFLASH;
   3a132:	2001      	movs	r0, #1
   3a134:	e7e3      	b.n	3a0fe <boot_write_trailer+0x28>

0003a136 <boot_write_trailer_flag>:
{
   3a136:	b500      	push	{lr}
   3a138:	b083      	sub	sp, #12
    const uint8_t buf[1] = { flag_val };
   3a13a:	f88d 2004 	strb.w	r2, [sp, #4]
    return boot_write_trailer(fap, off, buf, 1);
   3a13e:	2301      	movs	r3, #1
   3a140:	aa01      	add	r2, sp, #4
   3a142:	f7ff ffc8 	bl	3a0d6 <boot_write_trailer>
}
   3a146:	b003      	add	sp, #12
   3a148:	f85d fb04 	ldr.w	pc, [sp], #4

0003a14c <boot_write_image_ok>:
{
   3a14c:	b508      	push	{r3, lr}
    return fap->fa_size - BOOT_MAGIC_SZ;
   3a14e:	6881      	ldr	r1, [r0, #8]
    return boot_write_trailer_flag(fap, off, BOOT_FLAG_SET);
   3a150:	2201      	movs	r2, #1
   3a152:	3918      	subs	r1, #24
   3a154:	f7ff ffef 	bl	3a136 <boot_write_trailer_flag>
}
   3a158:	bd08      	pop	{r3, pc}

0003a15a <boot_read_image_ok>:
{
   3a15a:	b508      	push	{r3, lr}
    return fap->fa_size - BOOT_MAGIC_SZ;
   3a15c:	6882      	ldr	r2, [r0, #8]
    return boot_read_flag(fap, image_ok, boot_image_ok_off(fap));
   3a15e:	3a18      	subs	r2, #24
   3a160:	f7ff ff9d 	bl	3a09e <boot_read_flag>
}
   3a164:	bd08      	pop	{r3, pc}

0003a166 <boot_read_swap_state>:
{
   3a166:	b530      	push	{r4, r5, lr}
   3a168:	b087      	sub	sp, #28
   3a16a:	4604      	mov	r4, r0
   3a16c:	460d      	mov	r5, r1
    return fap->fa_size - BOOT_MAGIC_SZ;
   3a16e:	6881      	ldr	r1, [r0, #8]
    rc = flash_area_read(fap, off, magic, BOOT_MAGIC_SZ);
   3a170:	2310      	movs	r3, #16
   3a172:	aa02      	add	r2, sp, #8
   3a174:	3910      	subs	r1, #16
   3a176:	f7fa f8c0 	bl	342fa <flash_area_read>
    if (rc < 0) {
   3a17a:	2800      	cmp	r0, #0
   3a17c:	db3b      	blt.n	3a1f6 <boot_read_swap_state+0x90>
    if (bootutil_buffer_is_erased(fap, magic, BOOT_MAGIC_SZ)) {
   3a17e:	2210      	movs	r2, #16
   3a180:	a902      	add	r1, sp, #8
   3a182:	4620      	mov	r0, r4
   3a184:	f7ff ff74 	bl	3a070 <bootutil_buffer_is_erased>
   3a188:	b358      	cbz	r0, 3a1e2 <boot_read_swap_state+0x7c>
        state->magic = BOOT_MAGIC_UNSET;
   3a18a:	2303      	movs	r3, #3
   3a18c:	702b      	strb	r3, [r5, #0]
    off = boot_swap_info_off(fap);
   3a18e:	4620      	mov	r0, r4
   3a190:	f7ff ff5c 	bl	3a04c <boot_swap_info_off>
   3a194:	4601      	mov	r1, r0
    rc = flash_area_read(fap, off, &swap_info, sizeof swap_info);
   3a196:	2301      	movs	r3, #1
   3a198:	f10d 0207 	add.w	r2, sp, #7
   3a19c:	4620      	mov	r0, r4
   3a19e:	f7fa f8ac 	bl	342fa <flash_area_read>
    if (rc < 0) {
   3a1a2:	2800      	cmp	r0, #0
   3a1a4:	db2a      	blt.n	3a1fc <boot_read_swap_state+0x96>
    state->swap_type = BOOT_GET_SWAP_TYPE(swap_info);
   3a1a6:	f89d 3007 	ldrb.w	r3, [sp, #7]
   3a1aa:	f003 020f 	and.w	r2, r3, #15
   3a1ae:	706a      	strb	r2, [r5, #1]
    state->image_num = BOOT_GET_IMAGE_NUM(swap_info);
   3a1b0:	091b      	lsrs	r3, r3, #4
   3a1b2:	712b      	strb	r3, [r5, #4]
    if (bootutil_buffer_is_erased(fap, &swap_info, sizeof swap_info) ||
   3a1b4:	2201      	movs	r2, #1
   3a1b6:	f10d 0107 	add.w	r1, sp, #7
   3a1ba:	4620      	mov	r0, r4
   3a1bc:	f7ff ff58 	bl	3a070 <bootutil_buffer_is_erased>
   3a1c0:	b910      	cbnz	r0, 3a1c8 <boot_read_swap_state+0x62>
            state->swap_type > BOOT_SWAP_TYPE_REVERT) {
   3a1c2:	786b      	ldrb	r3, [r5, #1]
    if (bootutil_buffer_is_erased(fap, &swap_info, sizeof swap_info) ||
   3a1c4:	2b04      	cmp	r3, #4
   3a1c6:	d903      	bls.n	3a1d0 <boot_read_swap_state+0x6a>
        state->swap_type = BOOT_SWAP_TYPE_NONE;
   3a1c8:	2301      	movs	r3, #1
   3a1ca:	706b      	strb	r3, [r5, #1]
        state->image_num = 0;
   3a1cc:	2300      	movs	r3, #0
   3a1ce:	712b      	strb	r3, [r5, #4]
    return fap->fa_size - BOOT_MAGIC_SZ;
   3a1d0:	68a2      	ldr	r2, [r4, #8]
    return boot_read_flag(fap, copy_done, boot_copy_done_off(fap));
   3a1d2:	3a20      	subs	r2, #32
   3a1d4:	1ca9      	adds	r1, r5, #2
   3a1d6:	4620      	mov	r0, r4
   3a1d8:	f7ff ff61 	bl	3a09e <boot_read_flag>
    if (rc) {
   3a1dc:	b130      	cbz	r0, 3a1ec <boot_read_swap_state+0x86>
        return BOOT_EFLASH;
   3a1de:	2001      	movs	r0, #1
   3a1e0:	e00a      	b.n	3a1f8 <boot_read_swap_state+0x92>
        state->magic = boot_magic_decode(magic);
   3a1e2:	a802      	add	r0, sp, #8
   3a1e4:	f7f2 fc5a 	bl	2ca9c <boot_magic_decode>
   3a1e8:	7028      	strb	r0, [r5, #0]
   3a1ea:	e7d0      	b.n	3a18e <boot_read_swap_state+0x28>
    return boot_read_image_ok(fap, &state->image_ok);
   3a1ec:	1ce9      	adds	r1, r5, #3
   3a1ee:	4620      	mov	r0, r4
   3a1f0:	f7ff ffb3 	bl	3a15a <boot_read_image_ok>
   3a1f4:	e000      	b.n	3a1f8 <boot_read_swap_state+0x92>
        return BOOT_EFLASH;
   3a1f6:	2001      	movs	r0, #1
}
   3a1f8:	b007      	add	sp, #28
   3a1fa:	bd30      	pop	{r4, r5, pc}
        return BOOT_EFLASH;
   3a1fc:	2001      	movs	r0, #1
   3a1fe:	e7fb      	b.n	3a1f8 <boot_read_swap_state+0x92>

0003a200 <boot_read_swap_state_by_id>:
{
   3a200:	b510      	push	{r4, lr}
   3a202:	b082      	sub	sp, #8
   3a204:	460c      	mov	r4, r1
    rc = flash_area_open(flash_area_id, &fap);
   3a206:	a901      	add	r1, sp, #4
   3a208:	b2c0      	uxtb	r0, r0
   3a20a:	f7e3 fe8f 	bl	1df2c <flash_area_open>
    if (rc != 0) {
   3a20e:	b118      	cbz	r0, 3a218 <boot_read_swap_state_by_id+0x18>
        return BOOT_EFLASH;
   3a210:	2401      	movs	r4, #1
}
   3a212:	4620      	mov	r0, r4
   3a214:	b002      	add	sp, #8
   3a216:	bd10      	pop	{r4, pc}
    rc = boot_read_swap_state(fap, state);
   3a218:	4621      	mov	r1, r4
   3a21a:	9801      	ldr	r0, [sp, #4]
   3a21c:	f7ff ffa3 	bl	3a166 <boot_read_swap_state>
   3a220:	4604      	mov	r4, r0
    flash_area_close(fap);
   3a222:	9801      	ldr	r0, [sp, #4]
   3a224:	f7fa f868 	bl	342f8 <flash_area_close>
    return rc;
   3a228:	e7f3      	b.n	3a212 <boot_read_swap_state_by_id+0x12>

0003a22a <boot_set_confirmed_multi>:
 *
 * @return                  0 on success; nonzero on failure.
 */
int
boot_set_confirmed_multi(int image_index)
{
   3a22a:	b510      	push	{r4, lr}
   3a22c:	b084      	sub	sp, #16
    const struct flash_area *fap = NULL;
   3a22e:	2300      	movs	r3, #0
   3a230:	9303      	str	r3, [sp, #12]
    struct boot_swap_state state_primary_slot;
    int rc;

    rc = flash_area_open(FLASH_AREA_IMAGE_PRIMARY(image_index), &fap);
   3a232:	a903      	add	r1, sp, #12
   3a234:	2002      	movs	r0, #2
   3a236:	f7e3 fe79 	bl	1df2c <flash_area_open>
    if (rc != 0) {
   3a23a:	b118      	cbz	r0, 3a244 <boot_set_confirmed_multi+0x1a>
        return BOOT_EFLASH;
   3a23c:	2401      	movs	r4, #1
    rc = boot_write_image_ok(fap);

done:
    flash_area_close(fap);
    return rc;
}
   3a23e:	4620      	mov	r0, r4
   3a240:	b004      	add	sp, #16
   3a242:	bd10      	pop	{r4, pc}
    rc = boot_read_swap_state(fap, &state_primary_slot);
   3a244:	a901      	add	r1, sp, #4
   3a246:	9803      	ldr	r0, [sp, #12]
   3a248:	f7ff ff8d 	bl	3a166 <boot_read_swap_state>
    if (rc != 0) {
   3a24c:	4604      	mov	r4, r0
   3a24e:	b978      	cbnz	r0, 3a270 <boot_set_confirmed_multi+0x46>
    switch (state_primary_slot.magic) {
   3a250:	f89d 3004 	ldrb.w	r3, [sp, #4]
   3a254:	2b02      	cmp	r3, #2
   3a256:	d00a      	beq.n	3a26e <boot_set_confirmed_multi+0x44>
   3a258:	2b03      	cmp	r3, #3
   3a25a:	d009      	beq.n	3a270 <boot_set_confirmed_multi+0x46>
    if (state_primary_slot.image_ok != BOOT_FLAG_UNSET) {
   3a25c:	f89d 3007 	ldrb.w	r3, [sp, #7]
   3a260:	2b03      	cmp	r3, #3
   3a262:	d105      	bne.n	3a270 <boot_set_confirmed_multi+0x46>
    rc = boot_write_image_ok(fap);
   3a264:	9803      	ldr	r0, [sp, #12]
   3a266:	f7ff ff71 	bl	3a14c <boot_write_image_ok>
   3a26a:	4604      	mov	r4, r0
   3a26c:	e000      	b.n	3a270 <boot_set_confirmed_multi+0x46>
        rc = BOOT_EBADVECT;
   3a26e:	2404      	movs	r4, #4
    flash_area_close(fap);
   3a270:	9803      	ldr	r0, [sp, #12]
   3a272:	f7fa f841 	bl	342f8 <flash_area_close>
    return rc;
   3a276:	e7e2      	b.n	3a23e <boot_set_confirmed_multi+0x14>

0003a278 <boot_set_confirmed>:
 *
 * @return                  0 on success; nonzero on failure.
 */
int
boot_set_confirmed(void)
{
   3a278:	b508      	push	{r3, lr}
    return boot_set_confirmed_multi(0);
   3a27a:	2000      	movs	r0, #0
   3a27c:	f7ff ffd5 	bl	3a22a <boot_set_confirmed_multi>
}
   3a280:	bd08      	pop	{r3, pc}

0003a282 <nrfx_isr>:

#include <nrfx.h>
#include <kernel.h>

void nrfx_isr(const void *irq_handler)
{
   3a282:	b508      	push	{r3, lr}
	((nrfx_irq_handler_t)irq_handler)();
   3a284:	4780      	blx	r0
}
   3a286:	bd08      	pop	{r3, pc}

0003a288 <nrfx_busy_wait>:

void nrfx_busy_wait(uint32_t usec_to_wait)
{
   3a288:	b508      	push	{r3, lr}
	z_impl_k_busy_wait(usec_to_wait);
   3a28a:	f001 f881 	bl	3b390 <z_impl_k_busy_wait>
	k_busy_wait(usec_to_wait);
}
   3a28e:	bd08      	pop	{r3, pc}

0003a290 <is_app_channel>:
    return NRFX_GPIOTE_APP_CHANNELS_MASK & (1UL << index);
   3a290:	2301      	movs	r3, #1
   3a292:	4083      	lsls	r3, r0
   3a294:	f013 0fff 	tst.w	r3, #255	; 0xff
}
   3a298:	bf14      	ite	ne
   3a29a:	2001      	movne	r0, #1
   3a29c:	2000      	moveq	r0, #0
   3a29e:	4770      	bx	lr

0003a2a0 <flash_page_size_get>:
NRF_STATIC_INLINE uint32_t nrf_ficr_codepagesize_get(NRF_FICR_Type const * p_reg)
{
#if defined(FICR_INFO_CODEPAGESIZE_CODEPAGESIZE_Msk)
    return p_reg->INFO.CODEPAGESIZE;
#else
    return p_reg->CODEPAGESIZE;
   3a2a0:	f04f 5380 	mov.w	r3, #268435456	; 0x10000000
   3a2a4:	6918      	ldr	r0, [r3, #16]
}
   3a2a6:	4770      	bx	lr

0003a2a8 <flash_page_count_get>:
NRF_STATIC_INLINE uint32_t nrf_ficr_codesize_get(NRF_FICR_Type const * p_reg)
{
#if defined(FICR_INFO_CODESIZE_CODESIZE_Msk)
    return p_reg->INFO.CODESIZE;
#else
    return p_reg->CODESIZE;
   3a2a8:	f04f 5380 	mov.w	r3, #268435456	; 0x10000000
   3a2ac:	6958      	ldr	r0, [r3, #20]
}
   3a2ae:	4770      	bx	lr

0003a2b0 <flash_total_size_get>:
{
   3a2b0:	b510      	push	{r4, lr}
    return flash_page_size_get() * flash_page_count_get();
   3a2b2:	f7ff fff5 	bl	3a2a0 <flash_page_size_get>
   3a2b6:	4604      	mov	r4, r0
   3a2b8:	f7ff fff6 	bl	3a2a8 <flash_page_count_get>
}
   3a2bc:	fb00 f004 	mul.w	r0, r0, r4
   3a2c0:	bd10      	pop	{r4, pc}

0003a2c2 <is_page_aligned_check>:
{
   3a2c2:	b510      	push	{r4, lr}
   3a2c4:	4604      	mov	r4, r0
    return !(addr % flash_page_size_get());
   3a2c6:	f7ff ffeb 	bl	3a2a0 <flash_page_size_get>
   3a2ca:	fbb4 f3f0 	udiv	r3, r4, r0
   3a2ce:	fb00 4013 	mls	r0, r0, r3, r4
}
   3a2d2:	fab0 f080 	clz	r0, r0
   3a2d6:	0940      	lsrs	r0, r0, #5
   3a2d8:	bd10      	pop	{r4, pc}

0003a2da <nrfx_nvmc_flash_size_get>:
    return (nrfx_is_word_aligned((void const *)addr) ? (uint16_t)(val32)
                                                     : (uint16_t)(val32 >> 16));
}

uint32_t nrfx_nvmc_flash_size_get(void)
{
   3a2da:	b508      	push	{r3, lr}
    return flash_total_size_get();
   3a2dc:	f7ff ffe8 	bl	3a2b0 <flash_total_size_get>
}
   3a2e0:	bd08      	pop	{r3, pc}

0003a2e2 <nrfx_nvmc_flash_page_size_get>:

uint32_t nrfx_nvmc_flash_page_size_get(void)
{
   3a2e2:	b508      	push	{r3, lr}
    return flash_page_size_get();
   3a2e4:	f7ff ffdc 	bl	3a2a0 <flash_page_size_get>
}
   3a2e8:	bd08      	pop	{r3, pc}

0003a2ea <nrfx_nvmc_flash_page_count_get>:

uint32_t nrfx_nvmc_flash_page_count_get(void)
{
   3a2ea:	b508      	push	{r3, lr}
    return flash_page_count_get();
   3a2ec:	f7ff ffdc 	bl	3a2a8 <flash_page_count_get>
}
   3a2f0:	bd08      	pop	{r3, pc}

0003a2f2 <valid_attr_type>:
    switch (at) {
   3a2f2:	3901      	subs	r1, #1
   3a2f4:	290b      	cmp	r1, #11
   3a2f6:	d822      	bhi.n	3a33e <valid_attr_type+0x4c>
   3a2f8:	e8df f001 	tbb	[pc, r1]
   3a2fc:	0d090606 	.word	0x0d090606
   3a300:	21212111 	.word	0x21212111
   3a304:	1d211915 	.word	0x1d211915
        if (ct == CborIntegerType) {
   3a308:	b1d8      	cbz	r0, 3a342 <valid_attr_type+0x50>
    return 0;
   3a30a:	2000      	movs	r0, #0
   3a30c:	4770      	bx	lr
        if (ct == CborByteStringType) {
   3a30e:	2840      	cmp	r0, #64	; 0x40
   3a310:	d019      	beq.n	3a346 <valid_attr_type+0x54>
    return 0;
   3a312:	2000      	movs	r0, #0
   3a314:	4770      	bx	lr
        if (ct == CborTextStringType) {
   3a316:	2860      	cmp	r0, #96	; 0x60
   3a318:	d017      	beq.n	3a34a <valid_attr_type+0x58>
    return 0;
   3a31a:	2000      	movs	r0, #0
   3a31c:	4770      	bx	lr
        if (ct == CborBooleanType) {
   3a31e:	28f5      	cmp	r0, #245	; 0xf5
   3a320:	d015      	beq.n	3a34e <valid_attr_type+0x5c>
    return 0;
   3a322:	2000      	movs	r0, #0
   3a324:	4770      	bx	lr
        if (ct == CborArrayType) {
   3a326:	2880      	cmp	r0, #128	; 0x80
   3a328:	d013      	beq.n	3a352 <valid_attr_type+0x60>
    return 0;
   3a32a:	2000      	movs	r0, #0
   3a32c:	4770      	bx	lr
        if (ct == CborMapType) {
   3a32e:	28a0      	cmp	r0, #160	; 0xa0
   3a330:	d011      	beq.n	3a356 <valid_attr_type+0x64>
    return 0;
   3a332:	2000      	movs	r0, #0
   3a334:	4770      	bx	lr
        if (ct == CborNullType) {
   3a336:	28f6      	cmp	r0, #246	; 0xf6
   3a338:	d00f      	beq.n	3a35a <valid_attr_type+0x68>
    return 0;
   3a33a:	2000      	movs	r0, #0
   3a33c:	4770      	bx	lr
   3a33e:	2000      	movs	r0, #0
   3a340:	4770      	bx	lr
            return 1;
   3a342:	2001      	movs	r0, #1
   3a344:	4770      	bx	lr
            return 1;
   3a346:	2001      	movs	r0, #1
   3a348:	4770      	bx	lr
            return 1;
   3a34a:	2001      	movs	r0, #1
   3a34c:	4770      	bx	lr
            return 1;
   3a34e:	2001      	movs	r0, #1
   3a350:	4770      	bx	lr
            return 1;
   3a352:	2001      	movs	r0, #1
   3a354:	4770      	bx	lr
            return 1;
   3a356:	2001      	movs	r0, #1
   3a358:	4770      	bx	lr
            return 1;
   3a35a:	2001      	movs	r0, #1
}
   3a35c:	4770      	bx	lr

0003a35e <cbor_target_address>:
    if (parent == NULL || parent->element_type != CborAttrStructObjectType) {
   3a35e:	460b      	mov	r3, r1
   3a360:	b111      	cbz	r1, 3a368 <cbor_target_address+0xa>
   3a362:	7809      	ldrb	r1, [r1, #0]
   3a364:	290b      	cmp	r1, #11
   3a366:	d017      	beq.n	3a398 <cbor_target_address+0x3a>
        switch (cursor->type) {
   3a368:	7903      	ldrb	r3, [r0, #4]
   3a36a:	3b01      	subs	r3, #1
   3a36c:	2b04      	cmp	r3, #4
   3a36e:	d81a      	bhi.n	3a3a6 <cbor_target_address+0x48>
   3a370:	e8df f003 	tbb	[pc, r3]
   3a374:	0d0b0703 	.word	0x0d0b0703
   3a378:	0f          	.byte	0x0f
   3a379:	00          	.byte	0x00
            targetaddr = (char *)&cursor->addr.integer[offset];
   3a37a:	6880      	ldr	r0, [r0, #8]
   3a37c:	eb00 00c2 	add.w	r0, r0, r2, lsl #3
            break;
   3a380:	4770      	bx	lr
            targetaddr = (char *)&cursor->addr.uinteger[offset];
   3a382:	6880      	ldr	r0, [r0, #8]
   3a384:	eb00 00c2 	add.w	r0, r0, r2, lsl #3
            break;
   3a388:	4770      	bx	lr
            targetaddr = (char *) cursor->addr.bytestring.data;
   3a38a:	6880      	ldr	r0, [r0, #8]
            break;
   3a38c:	4770      	bx	lr
            targetaddr = cursor->addr.string;
   3a38e:	6880      	ldr	r0, [r0, #8]
            break;
   3a390:	4770      	bx	lr
            targetaddr = (char *)&cursor->addr.boolean[offset];
   3a392:	6880      	ldr	r0, [r0, #8]
   3a394:	4410      	add	r0, r2
            break;
   3a396:	4770      	bx	lr
            parent->arr.objects.base + (offset * parent->arr.objects.stride) +
   3a398:	6899      	ldr	r1, [r3, #8]
   3a39a:	68db      	ldr	r3, [r3, #12]
            cursor->addr.offset;
   3a39c:	6880      	ldr	r0, [r0, #8]
            parent->arr.objects.base + (offset * parent->arr.objects.stride) +
   3a39e:	fb03 0202 	mla	r2, r3, r2, r0
        targetaddr =
   3a3a2:	1888      	adds	r0, r1, r2
   3a3a4:	4770      	bx	lr
        switch (cursor->type) {
   3a3a6:	2000      	movs	r0, #0
}
   3a3a8:	4770      	bx	lr

0003a3aa <cbor_read_object>:

int
cbor_read_object(struct CborValue *value, const struct cbor_attr_t *attrs)
{
   3a3aa:	b508      	push	{r3, lr}
    int st;

    st = cbor_internal_read_object(value, attrs, NULL, 0);
   3a3ac:	2300      	movs	r3, #0
   3a3ae:	461a      	mov	r2, r3
   3a3b0:	f7f2 fff4 	bl	2d39c <cbor_internal_read_object>
    return st;
}
   3a3b4:	bd08      	pop	{r3, pc}

0003a3b6 <zephyr_img_mgmt_flash_area_id>:
    switch (slot) {
   3a3b6:	b118      	cbz	r0, 3a3c0 <zephyr_img_mgmt_flash_area_id+0xa>
   3a3b8:	2801      	cmp	r0, #1
   3a3ba:	d103      	bne.n	3a3c4 <zephyr_img_mgmt_flash_area_id+0xe>
        fa_id = FLASH_AREA_ID(image_1);
   3a3bc:	2005      	movs	r0, #5
   3a3be:	4770      	bx	lr
    switch (slot) {
   3a3c0:	2002      	movs	r0, #2
   3a3c2:	4770      	bx	lr
        fa_id = -1;
   3a3c4:	20ff      	movs	r0, #255	; 0xff
}
   3a3c6:	4770      	bx	lr

0003a3c8 <img_mgmt_vercmp>:
    if (a->iv_major < b->iv_major) {
   3a3c8:	7802      	ldrb	r2, [r0, #0]
   3a3ca:	780b      	ldrb	r3, [r1, #0]
   3a3cc:	429a      	cmp	r2, r3
   3a3ce:	d30c      	bcc.n	3a3ea <img_mgmt_vercmp+0x22>
    } else if (a->iv_major > b->iv_major) {
   3a3d0:	d80e      	bhi.n	3a3f0 <img_mgmt_vercmp+0x28>
    if (a->iv_minor < b->iv_minor) {
   3a3d2:	7842      	ldrb	r2, [r0, #1]
   3a3d4:	784b      	ldrb	r3, [r1, #1]
   3a3d6:	429a      	cmp	r2, r3
   3a3d8:	d30c      	bcc.n	3a3f4 <img_mgmt_vercmp+0x2c>
    } else if (a->iv_minor > b->iv_minor) {
   3a3da:	d80e      	bhi.n	3a3fa <img_mgmt_vercmp+0x32>
    if (a->iv_revision < b->iv_revision) {
   3a3dc:	8842      	ldrh	r2, [r0, #2]
   3a3de:	884b      	ldrh	r3, [r1, #2]
   3a3e0:	429a      	cmp	r2, r3
   3a3e2:	d30c      	bcc.n	3a3fe <img_mgmt_vercmp+0x36>
    } else if (a->iv_revision > b->iv_revision) {
   3a3e4:	d80e      	bhi.n	3a404 <img_mgmt_vercmp+0x3c>
    return 0;
   3a3e6:	2000      	movs	r0, #0
   3a3e8:	4770      	bx	lr
        return -1;
   3a3ea:	f04f 30ff 	mov.w	r0, #4294967295
   3a3ee:	4770      	bx	lr
        return 1;
   3a3f0:	2001      	movs	r0, #1
   3a3f2:	4770      	bx	lr
        return -1;
   3a3f4:	f04f 30ff 	mov.w	r0, #4294967295
   3a3f8:	4770      	bx	lr
        return 1;
   3a3fa:	2001      	movs	r0, #1
   3a3fc:	4770      	bx	lr
        return -1;
   3a3fe:	f04f 30ff 	mov.w	r0, #4294967295
   3a402:	4770      	bx	lr
        return 1;
   3a404:	2001      	movs	r0, #1
}
   3a406:	4770      	bx	lr

0003a408 <img_mgmt_get_unused_slot_area_id>:
{
   3a408:	b510      	push	{r4, lr}
        for (slot = 0; slot < 2; slot++) {
   3a40a:	2400      	movs	r4, #0
   3a40c:	e000      	b.n	3a410 <img_mgmt_get_unused_slot_area_id+0x8>
   3a40e:	3401      	adds	r4, #1
   3a410:	2c01      	cmp	r4, #1
   3a412:	dc0b      	bgt.n	3a42c <img_mgmt_get_unused_slot_area_id+0x24>
            if (img_mgmt_slot_in_use(slot) == 0) {
   3a414:	4620      	mov	r0, r4
   3a416:	f000 f911 	bl	3a63c <img_mgmt_slot_in_use>
   3a41a:	2800      	cmp	r0, #0
   3a41c:	d1f7      	bne.n	3a40e <img_mgmt_get_unused_slot_area_id+0x6>
                int area_id = zephyr_img_mgmt_flash_area_id(slot);
   3a41e:	4620      	mov	r0, r4
   3a420:	f7ff ffc9 	bl	3a3b6 <zephyr_img_mgmt_flash_area_id>
                if (area_id != -1) {
   3a424:	f1b0 3fff 	cmp.w	r0, #4294967295
   3a428:	d0f1      	beq.n	3a40e <img_mgmt_get_unused_slot_area_id+0x6>
   3a42a:	e001      	b.n	3a430 <img_mgmt_get_unused_slot_area_id+0x28>
        return -1;
   3a42c:	f04f 30ff 	mov.w	r0, #4294967295
}
   3a430:	bd10      	pop	{r4, pc}

0003a432 <img_mgmt_impl_erase_slot>:
{
   3a432:	b510      	push	{r4, lr}
   3a434:	b082      	sub	sp, #8
    best_id = img_mgmt_get_unused_slot_area_id(-1);
   3a436:	f04f 30ff 	mov.w	r0, #4294967295
   3a43a:	f7ff ffe5 	bl	3a408 <img_mgmt_get_unused_slot_area_id>
    if (best_id < 0) {
   3a43e:	2800      	cmp	r0, #0
   3a440:	db0f      	blt.n	3a462 <img_mgmt_impl_erase_slot+0x30>
    rc = zephyr_img_mgmt_flash_check_empty(best_id, &empty);
   3a442:	b2c4      	uxtb	r4, r0
   3a444:	f10d 0107 	add.w	r1, sp, #7
   3a448:	4620      	mov	r0, r4
   3a44a:	f7f3 f959 	bl	2d700 <zephyr_img_mgmt_flash_check_empty>
    if (rc != 0) {
   3a44e:	b958      	cbnz	r0, 3a468 <img_mgmt_impl_erase_slot+0x36>
    if (!empty) {
   3a450:	f89d 3007 	ldrb.w	r3, [sp, #7]
   3a454:	b933      	cbnz	r3, 3a464 <img_mgmt_impl_erase_slot+0x32>
        rc = boot_erase_img_bank(best_id);
   3a456:	4620      	mov	r0, r4
   3a458:	f7fe fe08 	bl	3906c <boot_erase_img_bank>
        if (rc != 0) {
   3a45c:	b110      	cbz	r0, 3a464 <img_mgmt_impl_erase_slot+0x32>
            return MGMT_ERR_EUNKNOWN;
   3a45e:	2001      	movs	r0, #1
   3a460:	e000      	b.n	3a464 <img_mgmt_impl_erase_slot+0x32>
        return MGMT_ERR_EUNKNOWN;
   3a462:	2001      	movs	r0, #1
}
   3a464:	b002      	add	sp, #8
   3a466:	bd10      	pop	{r4, pc}
        return MGMT_ERR_EUNKNOWN;
   3a468:	2001      	movs	r0, #1
   3a46a:	e7fb      	b.n	3a464 <img_mgmt_impl_erase_slot+0x32>

0003a46c <img_mgmt_impl_write_pending>:
    if (slot != 1 &&
   3a46c:	2801      	cmp	r0, #1
   3a46e:	d001      	beq.n	3a474 <img_mgmt_impl_write_pending+0x8>
        return MGMT_ERR_EINVAL;
   3a470:	2003      	movs	r0, #3
}
   3a472:	4770      	bx	lr
{
   3a474:	b538      	push	{r3, r4, r5, lr}
   3a476:	4604      	mov	r4, r0
   3a478:	460d      	mov	r5, r1
    rc = boot_request_upgrade_multi(zephyr_img_mgmt_slot_to_image(slot),
   3a47a:	f7f3 f92b 	bl	2d6d4 <zephyr_img_mgmt_slot_to_image>
   3a47e:	4629      	mov	r1, r5
   3a480:	f7fe fde4 	bl	3904c <boot_request_upgrade_multi>
    if (rc != 0) {
   3a484:	b900      	cbnz	r0, 3a488 <img_mgmt_impl_write_pending+0x1c>
}
   3a486:	bd38      	pop	{r3, r4, r5, pc}
        return MGMT_ERR_EUNKNOWN;
   3a488:	4620      	mov	r0, r4
   3a48a:	e7fc      	b.n	3a486 <img_mgmt_impl_write_pending+0x1a>

0003a48c <img_mgmt_impl_write_confirmed>:
{
   3a48c:	b508      	push	{r3, lr}
    rc = boot_write_img_confirmed();
   3a48e:	f7fe fde5 	bl	3905c <boot_write_img_confirmed>
    if (rc != 0) {
   3a492:	b900      	cbnz	r0, 3a496 <img_mgmt_impl_write_confirmed+0xa>
}
   3a494:	bd08      	pop	{r3, pc}
        return MGMT_ERR_EUNKNOWN;
   3a496:	2001      	movs	r0, #1
   3a498:	e7fc      	b.n	3a494 <img_mgmt_impl_write_confirmed+0x8>

0003a49a <img_mgmt_impl_read>:
{
   3a49a:	b570      	push	{r4, r5, r6, lr}
   3a49c:	b082      	sub	sp, #8
   3a49e:	460c      	mov	r4, r1
   3a4a0:	4615      	mov	r5, r2
   3a4a2:	461e      	mov	r6, r3
    rc = flash_area_open(zephyr_img_mgmt_flash_area_id(slot), &fa);
   3a4a4:	f7ff ff87 	bl	3a3b6 <zephyr_img_mgmt_flash_area_id>
   3a4a8:	a901      	add	r1, sp, #4
   3a4aa:	b2c0      	uxtb	r0, r0
   3a4ac:	f7e3 fd3e 	bl	1df2c <flash_area_open>
    if (rc != 0) {
   3a4b0:	b118      	cbz	r0, 3a4ba <img_mgmt_impl_read+0x20>
      return MGMT_ERR_EUNKNOWN;
   3a4b2:	2401      	movs	r4, #1
}
   3a4b4:	4620      	mov	r0, r4
   3a4b6:	b002      	add	sp, #8
   3a4b8:	bd70      	pop	{r4, r5, r6, pc}
    rc = flash_area_read(fa, offset, dst, num_bytes);
   3a4ba:	4633      	mov	r3, r6
   3a4bc:	462a      	mov	r2, r5
   3a4be:	4621      	mov	r1, r4
   3a4c0:	9801      	ldr	r0, [sp, #4]
   3a4c2:	f7f9 ff1a 	bl	342fa <flash_area_read>
   3a4c6:	4604      	mov	r4, r0
    flash_area_close(fa);
   3a4c8:	9801      	ldr	r0, [sp, #4]
   3a4ca:	f7f9 ff15 	bl	342f8 <flash_area_close>
    if (rc != 0) {
   3a4ce:	2c00      	cmp	r4, #0
   3a4d0:	d0f0      	beq.n	3a4b4 <img_mgmt_impl_read+0x1a>
      return MGMT_ERR_EUNKNOWN;
   3a4d2:	2401      	movs	r4, #1
   3a4d4:	e7ee      	b.n	3a4b4 <img_mgmt_impl_read+0x1a>

0003a4d6 <img_mgmt_impl_erased_val>:

int
img_mgmt_impl_erased_val(int slot, uint8_t *erased_val)
{
   3a4d6:	b530      	push	{r4, r5, lr}
   3a4d8:	b083      	sub	sp, #12
   3a4da:	460c      	mov	r4, r1
    const struct flash_area *fa;
    int rc;

    rc = flash_area_open(zephyr_img_mgmt_flash_area_id(slot), &fa);
   3a4dc:	f7ff ff6b 	bl	3a3b6 <zephyr_img_mgmt_flash_area_id>
   3a4e0:	a901      	add	r1, sp, #4
   3a4e2:	b2c0      	uxtb	r0, r0
   3a4e4:	f7e3 fd22 	bl	1df2c <flash_area_open>
    if (rc != 0) {
   3a4e8:	b118      	cbz	r0, 3a4f2 <img_mgmt_impl_erased_val+0x1c>
      return MGMT_ERR_EUNKNOWN;
   3a4ea:	2501      	movs	r5, #1

    *erased_val = flash_area_erased_val(fa);
    flash_area_close(fa);

    return 0;
}
   3a4ec:	4628      	mov	r0, r5
   3a4ee:	b003      	add	sp, #12
   3a4f0:	bd30      	pop	{r4, r5, pc}
   3a4f2:	4605      	mov	r5, r0
    *erased_val = flash_area_erased_val(fa);
   3a4f4:	9801      	ldr	r0, [sp, #4]
   3a4f6:	f7f9 ff8f 	bl	34418 <flash_area_erased_val>
   3a4fa:	7020      	strb	r0, [r4, #0]
    flash_area_close(fa);
   3a4fc:	9801      	ldr	r0, [sp, #4]
   3a4fe:	f7f9 fefb 	bl	342f8 <flash_area_close>
    return 0;
   3a502:	e7f3      	b.n	3a4ec <img_mgmt_impl_erased_val+0x16>

0003a504 <img_mgmt_impl_log_upload_start>:

int
img_mgmt_impl_log_upload_start(int status)
{
    return 0;
}
   3a504:	2000      	movs	r0, #0
   3a506:	4770      	bx	lr

0003a508 <img_mgmt_impl_log_upload_done>:

int
img_mgmt_impl_log_upload_done(int status, const uint8_t *hash)
{
    return 0;
}
   3a508:	2000      	movs	r0, #0
   3a50a:	4770      	bx	lr

0003a50c <img_mgmt_impl_log_pending>:

int
img_mgmt_impl_log_pending(int status, const uint8_t *hash)
{
    return 0;
}
   3a50c:	2000      	movs	r0, #0
   3a50e:	4770      	bx	lr

0003a510 <img_mgmt_impl_log_confirm>:

int
img_mgmt_impl_log_confirm(int status, const uint8_t *hash)
{
    return 0;
}
   3a510:	2000      	movs	r0, #0
   3a512:	4770      	bx	lr

0003a514 <img_mgmt_find_tlvs>:
{
   3a514:	b570      	push	{r4, r5, r6, lr}
   3a516:	b082      	sub	sp, #8
   3a518:	460c      	mov	r4, r1
   3a51a:	4616      	mov	r6, r2
   3a51c:	461d      	mov	r5, r3
    rc = img_mgmt_impl_read(slot, *start_off, &tlv_info, sizeof tlv_info);
   3a51e:	2304      	movs	r3, #4
   3a520:	eb0d 0203 	add.w	r2, sp, r3
   3a524:	6809      	ldr	r1, [r1, #0]
   3a526:	f7ff ffb8 	bl	3a49a <img_mgmt_impl_read>
    if (rc != 0) {
   3a52a:	b960      	cbnz	r0, 3a546 <img_mgmt_find_tlvs+0x32>
    if (tlv_info.it_magic != magic) {
   3a52c:	f8bd 3004 	ldrh.w	r3, [sp, #4]
   3a530:	42ab      	cmp	r3, r5
   3a532:	d10a      	bne.n	3a54a <img_mgmt_find_tlvs+0x36>
    *start_off += sizeof tlv_info;
   3a534:	6823      	ldr	r3, [r4, #0]
   3a536:	3304      	adds	r3, #4
   3a538:	6023      	str	r3, [r4, #0]
    *end_off = *start_off + tlv_info.it_tlv_tot;
   3a53a:	f8bd 2006 	ldrh.w	r2, [sp, #6]
   3a53e:	4413      	add	r3, r2
   3a540:	6033      	str	r3, [r6, #0]
}
   3a542:	b002      	add	sp, #8
   3a544:	bd70      	pop	{r4, r5, r6, pc}
        return MGMT_ERR_EUNKNOWN;
   3a546:	2001      	movs	r0, #1
   3a548:	e7fb      	b.n	3a542 <img_mgmt_find_tlvs+0x2e>
        return MGMT_ERR_ENOENT;
   3a54a:	2005      	movs	r0, #5
   3a54c:	e7f9      	b.n	3a542 <img_mgmt_find_tlvs+0x2e>

0003a54e <img_mgmt_upload_log>:
{
   3a54e:	b510      	push	{r4, lr}
   3a550:	b088      	sub	sp, #32
   3a552:	4614      	mov	r4, r2
    if (is_first) {
   3a554:	b920      	cbnz	r0, 3a560 <img_mgmt_upload_log+0x12>
    if (is_last || status != 0) {
   3a556:	b939      	cbnz	r1, 3a568 <img_mgmt_upload_log+0x1a>
   3a558:	b932      	cbnz	r2, 3a568 <img_mgmt_upload_log+0x1a>
    return 0;
   3a55a:	4610      	mov	r0, r2
}
   3a55c:	b008      	add	sp, #32
   3a55e:	bd10      	pop	{r4, pc}
        return img_mgmt_impl_log_upload_start(status);
   3a560:	4610      	mov	r0, r2
   3a562:	f7ff ffcf 	bl	3a504 <img_mgmt_impl_log_upload_start>
   3a566:	e7f9      	b.n	3a55c <img_mgmt_upload_log+0xe>
        rc = img_mgmt_read_info(1, NULL, hash, NULL);
   3a568:	2300      	movs	r3, #0
   3a56a:	466a      	mov	r2, sp
   3a56c:	4619      	mov	r1, r3
   3a56e:	2001      	movs	r0, #1
   3a570:	f7f3 fae8 	bl	2db44 <img_mgmt_read_info>
        if (rc != 0) {
   3a574:	b120      	cbz	r0, 3a580 <img_mgmt_upload_log+0x32>
            hashp = NULL;
   3a576:	2100      	movs	r1, #0
        return img_mgmt_impl_log_upload_done(status, hashp);
   3a578:	4620      	mov	r0, r4
   3a57a:	f7ff ffc5 	bl	3a508 <img_mgmt_impl_log_upload_done>
   3a57e:	e7ed      	b.n	3a55c <img_mgmt_upload_log+0xe>
            hashp = hash;
   3a580:	4669      	mov	r1, sp
   3a582:	e7f9      	b.n	3a578 <img_mgmt_upload_log+0x2a>

0003a584 <img_mgmt_find_by_hash>:
{
   3a584:	b570      	push	{r4, r5, r6, lr}
   3a586:	b088      	sub	sp, #32
   3a588:	4606      	mov	r6, r0
   3a58a:	460d      	mov	r5, r1
    for (i = 0; i < 2 * IMG_MGMT_UPDATABLE_IMAGE_NUMBER; i++) {
   3a58c:	2400      	movs	r4, #0
   3a58e:	e000      	b.n	3a592 <img_mgmt_find_by_hash+0xe>
   3a590:	3401      	adds	r4, #1
   3a592:	2c01      	cmp	r4, #1
   3a594:	dc0f      	bgt.n	3a5b6 <img_mgmt_find_by_hash+0x32>
        if (img_mgmt_read_info(i, ver, hash, NULL) != 0) {
   3a596:	2300      	movs	r3, #0
   3a598:	466a      	mov	r2, sp
   3a59a:	4629      	mov	r1, r5
   3a59c:	4620      	mov	r0, r4
   3a59e:	f7f3 fad1 	bl	2db44 <img_mgmt_read_info>
   3a5a2:	2800      	cmp	r0, #0
   3a5a4:	d1f4      	bne.n	3a590 <img_mgmt_find_by_hash+0xc>
        if (!memcmp(hash, find, IMAGE_HASH_LEN)) {
   3a5a6:	2220      	movs	r2, #32
   3a5a8:	4631      	mov	r1, r6
   3a5aa:	4668      	mov	r0, sp
   3a5ac:	f7fb fa8f 	bl	35ace <memcmp>
   3a5b0:	2800      	cmp	r0, #0
   3a5b2:	d1ed      	bne.n	3a590 <img_mgmt_find_by_hash+0xc>
   3a5b4:	e001      	b.n	3a5ba <img_mgmt_find_by_hash+0x36>
    return -1;
   3a5b6:	f04f 34ff 	mov.w	r4, #4294967295
}
   3a5ba:	4620      	mov	r0, r4
   3a5bc:	b008      	add	sp, #32
   3a5be:	bd70      	pop	{r4, r5, r6, pc}

0003a5c0 <img_mgmt_my_version>:
{
   3a5c0:	b508      	push	{r3, lr}
   3a5c2:	4601      	mov	r1, r0
    return img_mgmt_read_info(IMG_MGMT_BOOT_CURR_SLOT, ver, NULL, NULL);
   3a5c4:	2300      	movs	r3, #0
   3a5c6:	461a      	mov	r2, r3
   3a5c8:	4618      	mov	r0, r3
   3a5ca:	f7f3 fabb 	bl	2db44 <img_mgmt_read_info>
}
   3a5ce:	bd08      	pop	{r3, pc}

0003a5d0 <img_mgmt_state_flags>:
{
   3a5d0:	b510      	push	{r4, lr}
   3a5d2:	4604      	mov	r4, r0
    swap_type = img_mgmt_impl_swap_type(query_slot);
   3a5d4:	f7f3 f99e 	bl	2d914 <img_mgmt_impl_swap_type>
    switch (swap_type) {
   3a5d8:	2803      	cmp	r0, #3
   3a5da:	d812      	bhi.n	3a602 <img_mgmt_state_flags+0x32>
   3a5dc:	e8df f000 	tbb	[pc, r0]
   3a5e0:	0e0b0802 	.word	0x0e0b0802
        if (query_slot == IMG_MGMT_BOOT_CURR_SLOT) {
   3a5e4:	b17c      	cbz	r4, 3a606 <img_mgmt_state_flags+0x36>
    flags = 0;
   3a5e6:	2000      	movs	r0, #0
    if (query_slot == IMG_MGMT_BOOT_CURR_SLOT) {
   3a5e8:	b90c      	cbnz	r4, 3a5ee <img_mgmt_state_flags+0x1e>
        flags |= IMG_MGMT_STATE_F_ACTIVE;
   3a5ea:	f040 0004 	orr.w	r0, r0, #4
}
   3a5ee:	bd10      	pop	{r4, pc}
        if (query_slot == IMG_MGMT_BOOT_CURR_SLOT) {
   3a5f0:	b95c      	cbnz	r4, 3a60a <img_mgmt_state_flags+0x3a>
            flags |= IMG_MGMT_STATE_F_CONFIRMED;
   3a5f2:	2002      	movs	r0, #2
   3a5f4:	e7f8      	b.n	3a5e8 <img_mgmt_state_flags+0x18>
        if (query_slot == IMG_MGMT_BOOT_CURR_SLOT) {
   3a5f6:	b954      	cbnz	r4, 3a60e <img_mgmt_state_flags+0x3e>
            flags |= IMG_MGMT_STATE_F_CONFIRMED;
   3a5f8:	2002      	movs	r0, #2
   3a5fa:	e7f5      	b.n	3a5e8 <img_mgmt_state_flags+0x18>
        if (query_slot == IMG_MGMT_BOOT_CURR_SLOT) {
   3a5fc:	b94c      	cbnz	r4, 3a612 <img_mgmt_state_flags+0x42>
            flags |= IMG_MGMT_STATE_F_ACTIVE;
   3a5fe:	2004      	movs	r0, #4
   3a600:	e7f2      	b.n	3a5e8 <img_mgmt_state_flags+0x18>
    swap_type = img_mgmt_impl_swap_type(query_slot);
   3a602:	2000      	movs	r0, #0
   3a604:	e7f0      	b.n	3a5e8 <img_mgmt_state_flags+0x18>
            flags |= IMG_MGMT_STATE_F_ACTIVE;
   3a606:	2006      	movs	r0, #6
   3a608:	e7ee      	b.n	3a5e8 <img_mgmt_state_flags+0x18>
            flags |= IMG_MGMT_STATE_F_PENDING;
   3a60a:	2001      	movs	r0, #1
   3a60c:	e7ec      	b.n	3a5e8 <img_mgmt_state_flags+0x18>
            flags |= IMG_MGMT_STATE_F_PENDING | IMG_MGMT_STATE_F_PERMANENT;
   3a60e:	2009      	movs	r0, #9
   3a610:	e7ea      	b.n	3a5e8 <img_mgmt_state_flags+0x18>
            flags |= IMG_MGMT_STATE_F_CONFIRMED;
   3a612:	2002      	movs	r0, #2
   3a614:	e7e8      	b.n	3a5e8 <img_mgmt_state_flags+0x18>

0003a616 <img_mgmt_state_any_pending>:
{
   3a616:	b508      	push	{r3, lr}
    return img_mgmt_state_flags(0) & IMG_MGMT_STATE_F_PENDING ||
   3a618:	2000      	movs	r0, #0
   3a61a:	f7ff ffd9 	bl	3a5d0 <img_mgmt_state_flags>
   3a61e:	f010 0f01 	tst.w	r0, #1
   3a622:	d001      	beq.n	3a628 <img_mgmt_state_any_pending+0x12>
   3a624:	2001      	movs	r0, #1
}
   3a626:	bd08      	pop	{r3, pc}
           img_mgmt_state_flags(1) & IMG_MGMT_STATE_F_PENDING;
   3a628:	2001      	movs	r0, #1
   3a62a:	f7ff ffd1 	bl	3a5d0 <img_mgmt_state_flags>
    return img_mgmt_state_flags(0) & IMG_MGMT_STATE_F_PENDING ||
   3a62e:	f010 0f01 	tst.w	r0, #1
   3a632:	d101      	bne.n	3a638 <img_mgmt_state_any_pending+0x22>
   3a634:	2000      	movs	r0, #0
   3a636:	e7f6      	b.n	3a626 <img_mgmt_state_any_pending+0x10>
   3a638:	2001      	movs	r0, #1
   3a63a:	e7f4      	b.n	3a626 <img_mgmt_state_any_pending+0x10>

0003a63c <img_mgmt_slot_in_use>:
{
   3a63c:	b508      	push	{r3, lr}
    state_flags = img_mgmt_state_flags(slot);
   3a63e:	f7ff ffc7 	bl	3a5d0 <img_mgmt_state_flags>
           state_flags & IMG_MGMT_STATE_F_CONFIRMED    ||
   3a642:	f010 0f06 	tst.w	r0, #6
   3a646:	d104      	bne.n	3a652 <img_mgmt_slot_in_use+0x16>
   3a648:	f010 0f01 	tst.w	r0, #1
   3a64c:	d003      	beq.n	3a656 <img_mgmt_slot_in_use+0x1a>
   3a64e:	2001      	movs	r0, #1
   3a650:	e000      	b.n	3a654 <img_mgmt_slot_in_use+0x18>
   3a652:	2001      	movs	r0, #1
}
   3a654:	bd08      	pop	{r3, pc}
           state_flags & IMG_MGMT_STATE_F_CONFIRMED    ||
   3a656:	2000      	movs	r0, #0
   3a658:	e7fc      	b.n	3a654 <img_mgmt_slot_in_use+0x18>

0003a65a <img_mgmt_state_set_pending>:
{
   3a65a:	b570      	push	{r4, r5, r6, lr}
   3a65c:	b088      	sub	sp, #32
   3a65e:	4604      	mov	r4, r0
   3a660:	460d      	mov	r5, r1
    state_flags = img_mgmt_state_flags(slot);
   3a662:	f7ff ffb5 	bl	3a5d0 <img_mgmt_state_flags>
    if (state_flags & IMG_MGMT_STATE_F_CONFIRMED && slot != 0) {
   3a666:	f010 0f02 	tst.w	r0, #2
   3a66a:	d000      	beq.n	3a66e <img_mgmt_state_set_pending+0x14>
   3a66c:	b9b4      	cbnz	r4, 3a69c <img_mgmt_state_set_pending+0x42>
    rc = img_mgmt_impl_write_pending(slot, permanent);
   3a66e:	1e29      	subs	r1, r5, #0
   3a670:	bf18      	it	ne
   3a672:	2101      	movne	r1, #1
   3a674:	4620      	mov	r0, r4
   3a676:	f7ff fef9 	bl	3a46c <img_mgmt_impl_write_pending>
    if (rc != 0) {
   3a67a:	4606      	mov	r6, r0
   3a67c:	b980      	cbnz	r0, 3a6a0 <img_mgmt_state_set_pending+0x46>
    if (img_mgmt_read_info(slot, NULL, hash, NULL)) {
   3a67e:	2300      	movs	r3, #0
   3a680:	466a      	mov	r2, sp
   3a682:	4619      	mov	r1, r3
   3a684:	4620      	mov	r0, r4
   3a686:	f7f3 fa5d 	bl	2db44 <img_mgmt_read_info>
   3a68a:	b158      	cbz	r0, 3a6a4 <img_mgmt_state_set_pending+0x4a>
        hashp = NULL;
   3a68c:	2100      	movs	r1, #0
    if (permanent) {
   3a68e:	b15d      	cbz	r5, 3a6a8 <img_mgmt_state_set_pending+0x4e>
        (void) img_mgmt_impl_log_confirm(rc, hashp);
   3a690:	4630      	mov	r0, r6
   3a692:	f7ff ff3d 	bl	3a510 <img_mgmt_impl_log_confirm>
}
   3a696:	4630      	mov	r0, r6
   3a698:	b008      	add	sp, #32
   3a69a:	bd70      	pop	{r4, r5, r6, pc}
        rc = MGMT_ERR_EBADSTATE;
   3a69c:	2606      	movs	r6, #6
   3a69e:	e7ee      	b.n	3a67e <img_mgmt_state_set_pending+0x24>
        rc = MGMT_ERR_EUNKNOWN;
   3a6a0:	2601      	movs	r6, #1
   3a6a2:	e7ec      	b.n	3a67e <img_mgmt_state_set_pending+0x24>
        hashp = hash;
   3a6a4:	4669      	mov	r1, sp
   3a6a6:	e7f2      	b.n	3a68e <img_mgmt_state_set_pending+0x34>
        (void) img_mgmt_impl_log_pending(rc, hashp);
   3a6a8:	4630      	mov	r0, r6
   3a6aa:	f7ff ff2f 	bl	3a50c <img_mgmt_impl_log_pending>
    return rc;
   3a6ae:	e7f2      	b.n	3a696 <img_mgmt_state_set_pending+0x3c>

0003a6b0 <img_mgmt_state_confirm>:
{
   3a6b0:	b510      	push	{r4, lr}
    if (img_mgmt_state_any_pending()) {
   3a6b2:	f7ff ffb0 	bl	3a616 <img_mgmt_state_any_pending>
   3a6b6:	b128      	cbz	r0, 3a6c4 <img_mgmt_state_confirm+0x14>
        rc = MGMT_ERR_EBADSTATE;
   3a6b8:	2406      	movs	r4, #6
    return img_mgmt_impl_log_confirm(rc, NULL);
   3a6ba:	2100      	movs	r1, #0
   3a6bc:	4620      	mov	r0, r4
   3a6be:	f7ff ff27 	bl	3a510 <img_mgmt_impl_log_confirm>
}
   3a6c2:	bd10      	pop	{r4, pc}
    rc = img_mgmt_impl_write_confirmed();
   3a6c4:	f7ff fee2 	bl	3a48c <img_mgmt_impl_write_confirmed>
    if (rc != 0) {
   3a6c8:	4604      	mov	r4, r0
   3a6ca:	b100      	cbz	r0, 3a6ce <img_mgmt_state_confirm+0x1e>
        rc = MGMT_ERR_EUNKNOWN;
   3a6cc:	2401      	movs	r4, #1
     img_mgmt_dfu_confirmed();
   3a6ce:	f7f3 fc33 	bl	2df38 <img_mgmt_dfu_confirmed>
   3a6d2:	e7f2      	b.n	3a6ba <img_mgmt_state_confirm+0xa>

0003a6d4 <img_mgmt_ver_str>:
#include "img_mgmt/image.h"
#include "img_mgmt/img_mgmt.h"

int
img_mgmt_ver_str(const struct image_version *ver, char *dst)
{
   3a6d4:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   3a6d8:	4605      	mov	r5, r0
   3a6da:	460c      	mov	r4, r1
    int off;

    off = 0;

    off += ull_to_s(ver->iv_major, INT_MAX, dst + off);
   3a6dc:	460b      	mov	r3, r1
   3a6de:	f06f 4200 	mvn.w	r2, #2147483648	; 0x80000000
   3a6e2:	7828      	ldrb	r0, [r5, #0]
   3a6e4:	2100      	movs	r1, #0
   3a6e6:	f7f3 ff5b 	bl	2e5a0 <ull_to_s>

    dst[off++] = '.';
   3a6ea:	1c46      	adds	r6, r0, #1
   3a6ec:	f04f 082e 	mov.w	r8, #46	; 0x2e
   3a6f0:	f804 8000 	strb.w	r8, [r4, r0]
    off += ull_to_s(ver->iv_minor, INT_MAX, dst + off);
   3a6f4:	19a3      	adds	r3, r4, r6
   3a6f6:	f06f 4200 	mvn.w	r2, #2147483648	; 0x80000000
   3a6fa:	7868      	ldrb	r0, [r5, #1]
   3a6fc:	2100      	movs	r1, #0
   3a6fe:	f7f3 ff4f 	bl	2e5a0 <ull_to_s>
   3a702:	4406      	add	r6, r0

    dst[off++] = '.';
   3a704:	1c77      	adds	r7, r6, #1
   3a706:	f804 8006 	strb.w	r8, [r4, r6]
    off += ull_to_s(ver->iv_revision, INT_MAX, dst + off);
   3a70a:	19e3      	adds	r3, r4, r7
   3a70c:	f06f 4200 	mvn.w	r2, #2147483648	; 0x80000000
   3a710:	8868      	ldrh	r0, [r5, #2]
   3a712:	2100      	movs	r1, #0
   3a714:	f7f3 ff44 	bl	2e5a0 <ull_to_s>
   3a718:	4407      	add	r7, r0

    if (ver->iv_build_num != 0) {
   3a71a:	686b      	ldr	r3, [r5, #4]
   3a71c:	b913      	cbnz	r3, 3a724 <img_mgmt_ver_str+0x50>
        dst[off++] = '.';
        off += ull_to_s(ver->iv_build_num, INT_MAX, dst + off);
    }

    return 0;
}
   3a71e:	2000      	movs	r0, #0
   3a720:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
        dst[off++] = '.';
   3a724:	1c7b      	adds	r3, r7, #1
   3a726:	f804 8007 	strb.w	r8, [r4, r7]
        off += ull_to_s(ver->iv_build_num, INT_MAX, dst + off);
   3a72a:	4423      	add	r3, r4
   3a72c:	f06f 4200 	mvn.w	r2, #2147483648	; 0x80000000
   3a730:	6868      	ldr	r0, [r5, #4]
   3a732:	2100      	movs	r1, #0
   3a734:	f7f3 ff34 	bl	2e5a0 <ull_to_s>
   3a738:	e7f1      	b.n	3a71e <img_mgmt_ver_str+0x4a>

0003a73a <zephyr_os_mgmt_reset_work_handler>:
{
   3a73a:	b508      	push	{r3, lr}
    sys_reboot(SYS_REBOOT_WARM);
   3a73c:	2000      	movs	r0, #0
   3a73e:	f7e3 f873 	bl	1d828 <sys_reboot>

0003a742 <os_mgmt_impl_task_info>:
{
   3a742:	b570      	push	{r4, r5, r6, lr}
   3a744:	4606      	mov	r6, r0
   3a746:	460c      	mov	r4, r1
    thread = zephyr_os_mgmt_task_at(idx);
   3a748:	f7f3 fd56 	bl	2e1f8 <zephyr_os_mgmt_task_at>
    if (thread == NULL) {
   3a74c:	b1c8      	cbz	r0, 3a782 <os_mgmt_impl_task_info+0x40>
   3a74e:	4605      	mov	r5, r0
    *out_info = (struct os_mgmt_task_info){ 0 };
   3a750:	2238      	movs	r2, #56	; 0x38
   3a752:	2100      	movs	r1, #0
   3a754:	4620      	mov	r0, r4
   3a756:	f7fb f9f5 	bl	35b44 <memset>
    strncpy(out_info->oti_name, thread->name, OS_MGMT_TASK_NAME_LEN-1);
   3a75a:	221f      	movs	r2, #31
   3a75c:	f105 0178 	add.w	r1, r5, #120	; 0x78
   3a760:	f104 0018 	add.w	r0, r4, #24
   3a764:	f7fb f962 	bl	35a2c <strncpy>
    out_info->oti_name[OS_MGMT_TASK_NAME_LEN - 1] = '\0';
   3a768:	2000      	movs	r0, #0
   3a76a:	f884 0037 	strb.w	r0, [r4, #55]	; 0x37
    out_info->oti_prio = thread->base.prio;
   3a76e:	7bab      	ldrb	r3, [r5, #14]
   3a770:	7023      	strb	r3, [r4, #0]
    out_info->oti_taskid = idx;
   3a772:	7066      	strb	r6, [r4, #1]
    out_info->oti_state = thread->base.thread_state;
   3a774:	7b6b      	ldrb	r3, [r5, #13]
   3a776:	70a3      	strb	r3, [r4, #2]
    out_info->oti_stksize = thread->stack_info.size / 4;
   3a778:	f8d5 30a0 	ldr.w	r3, [r5, #160]	; 0xa0
   3a77c:	089b      	lsrs	r3, r3, #2
   3a77e:	80e3      	strh	r3, [r4, #6]
}
   3a780:	bd70      	pop	{r4, r5, r6, pc}
        return MGMT_ERR_ENOENT;
   3a782:	2005      	movs	r0, #5
   3a784:	e7fc      	b.n	3a780 <os_mgmt_impl_task_info+0x3e>

0003a786 <os_mgmt_reset>:
{
   3a786:	b508      	push	{r3, lr}
    return os_mgmt_impl_reset(OS_MGMT_RESET_MS);
   3a788:	20fa      	movs	r0, #250	; 0xfa
   3a78a:	f7f3 fd4b 	bl	2e224 <os_mgmt_impl_reset>
}
   3a78e:	bd08      	pop	{r3, pc}

0003a790 <mgmt_streamer_alloc_rsp>:
{
   3a790:	b508      	push	{r3, lr}
   3a792:	4603      	mov	r3, r0
   3a794:	4608      	mov	r0, r1
    return streamer->cfg->alloc_rsp(req, streamer->cb_arg);
   3a796:	681a      	ldr	r2, [r3, #0]
   3a798:	6812      	ldr	r2, [r2, #0]
   3a79a:	6859      	ldr	r1, [r3, #4]
   3a79c:	4790      	blx	r2
}
   3a79e:	bd08      	pop	{r3, pc}

0003a7a0 <mgmt_streamer_trim_front>:
{
   3a7a0:	b510      	push	{r4, lr}
   3a7a2:	4603      	mov	r3, r0
   3a7a4:	4608      	mov	r0, r1
   3a7a6:	4611      	mov	r1, r2
    streamer->cfg->trim_front(buf, len, streamer->cb_arg);
   3a7a8:	681a      	ldr	r2, [r3, #0]
   3a7aa:	6854      	ldr	r4, [r2, #4]
   3a7ac:	685a      	ldr	r2, [r3, #4]
   3a7ae:	47a0      	blx	r4
}
   3a7b0:	bd10      	pop	{r4, pc}

0003a7b2 <mgmt_streamer_reset_buf>:
{
   3a7b2:	b508      	push	{r3, lr}
   3a7b4:	4603      	mov	r3, r0
   3a7b6:	4608      	mov	r0, r1
    streamer->cfg->reset_buf(buf, streamer->cb_arg);
   3a7b8:	681a      	ldr	r2, [r3, #0]
   3a7ba:	6892      	ldr	r2, [r2, #8]
   3a7bc:	6859      	ldr	r1, [r3, #4]
   3a7be:	4790      	blx	r2
}
   3a7c0:	bd08      	pop	{r3, pc}

0003a7c2 <mgmt_streamer_write_at>:
{
   3a7c2:	b530      	push	{r4, r5, lr}
   3a7c4:	b083      	sub	sp, #12
    return streamer->cfg->write_at(streamer->writer, offset, data, len,
   3a7c6:	6804      	ldr	r4, [r0, #0]
   3a7c8:	68e4      	ldr	r4, [r4, #12]
   3a7ca:	6845      	ldr	r5, [r0, #4]
   3a7cc:	9500      	str	r5, [sp, #0]
   3a7ce:	68c0      	ldr	r0, [r0, #12]
   3a7d0:	47a0      	blx	r4
}
   3a7d2:	b003      	add	sp, #12
   3a7d4:	bd30      	pop	{r4, r5, pc}

0003a7d6 <mgmt_streamer_init_reader>:
{
   3a7d6:	b508      	push	{r3, lr}
    return streamer->cfg->init_reader(streamer->reader, buf, streamer->cb_arg);
   3a7d8:	6803      	ldr	r3, [r0, #0]
   3a7da:	691b      	ldr	r3, [r3, #16]
   3a7dc:	6842      	ldr	r2, [r0, #4]
   3a7de:	6880      	ldr	r0, [r0, #8]
   3a7e0:	4798      	blx	r3
}
   3a7e2:	bd08      	pop	{r3, pc}

0003a7e4 <mgmt_streamer_init_writer>:
{
   3a7e4:	b508      	push	{r3, lr}
    return streamer->cfg->init_writer(streamer->writer, buf, streamer->cb_arg);
   3a7e6:	6803      	ldr	r3, [r0, #0]
   3a7e8:	695b      	ldr	r3, [r3, #20]
   3a7ea:	6842      	ldr	r2, [r0, #4]
   3a7ec:	68c0      	ldr	r0, [r0, #12]
   3a7ee:	4798      	blx	r3
}
   3a7f0:	bd08      	pop	{r3, pc}

0003a7f2 <mgmt_streamer_free_buf>:
{
   3a7f2:	b508      	push	{r3, lr}
   3a7f4:	4603      	mov	r3, r0
   3a7f6:	4608      	mov	r0, r1
    streamer->cfg->free_buf(buf, streamer->cb_arg);
   3a7f8:	681a      	ldr	r2, [r3, #0]
   3a7fa:	6992      	ldr	r2, [r2, #24]
   3a7fc:	6859      	ldr	r1, [r3, #4]
   3a7fe:	4790      	blx	r2
}
   3a800:	bd08      	pop	{r3, pc}

0003a802 <mgmt_find_handler>:
{
   3a802:	b510      	push	{r4, lr}
   3a804:	460c      	mov	r4, r1
    group = mgmt_find_group(group_id, command_id);
   3a806:	f7f3 fe77 	bl	2e4f8 <mgmt_find_group>
    if (!group) {
   3a80a:	4603      	mov	r3, r0
   3a80c:	b110      	cbz	r0, 3a814 <mgmt_find_handler+0x12>
    return &group->mg_handlers[command_id];
   3a80e:	6843      	ldr	r3, [r0, #4]
   3a810:	eb03 03c4 	add.w	r3, r3, r4, lsl #3
}
   3a814:	4618      	mov	r0, r3
   3a816:	bd10      	pop	{r4, pc}

0003a818 <mgmt_err_from_cbor>:
    switch (cbor_status) {
   3a818:	f1b0 4f00 	cmp.w	r0, #2147483648	; 0x80000000
   3a81c:	d001      	beq.n	3a822 <mgmt_err_from_cbor+0xa>
   3a81e:	b910      	cbnz	r0, 3a826 <mgmt_err_from_cbor+0xe>
   3a820:	4770      	bx	lr
        case CborErrorOutOfMemory:  return MGMT_ERR_ENOMEM;
   3a822:	2002      	movs	r0, #2
   3a824:	4770      	bx	lr
        default:                    return MGMT_ERR_EUNKNOWN;
   3a826:	2001      	movs	r0, #1
}
   3a828:	4770      	bx	lr

0003a82a <mgmt_ctxt_init>:
{
   3a82a:	b570      	push	{r4, r5, r6, lr}
   3a82c:	4604      	mov	r4, r0
   3a82e:	460d      	mov	r5, r1
    rc = cbor_parser_init(streamer->reader, 0, &ctxt->parser, &ctxt->it);
   3a830:	f100 031c 	add.w	r3, r0, #28
   3a834:	f100 0210 	add.w	r2, r0, #16
   3a838:	2100      	movs	r1, #0
   3a83a:	68a8      	ldr	r0, [r5, #8]
   3a83c:	f000 fbd9 	bl	3aff2 <cbor_parser_init>
    if (rc != CborNoError) {
   3a840:	4606      	mov	r6, r0
   3a842:	b120      	cbz	r0, 3a84e <mgmt_ctxt_init+0x24>
        return mgmt_err_from_cbor(rc);
   3a844:	f7ff ffe8 	bl	3a818 <mgmt_err_from_cbor>
   3a848:	4606      	mov	r6, r0
}
   3a84a:	4630      	mov	r0, r6
   3a84c:	bd70      	pop	{r4, r5, r6, pc}
    cbor_encoder_init(&ctxt->encoder, streamer->writer, 0);
   3a84e:	2200      	movs	r2, #0
   3a850:	68e9      	ldr	r1, [r5, #12]
   3a852:	4620      	mov	r0, r4
   3a854:	f000 fa42 	bl	3acdc <cbor_encoder_init>
    return 0;
   3a858:	e7f7      	b.n	3a84a <mgmt_ctxt_init+0x20>

0003a85a <mgmt_ntoh_hdr>:
    hdr->nh_len = ntohs(hdr->nh_len);
   3a85a:	8842      	ldrh	r2, [r0, #2]
   3a85c:	0213      	lsls	r3, r2, #8
   3a85e:	ea43 2312 	orr.w	r3, r3, r2, lsr #8
   3a862:	8043      	strh	r3, [r0, #2]
    hdr->nh_group = ntohs(hdr->nh_group);
   3a864:	8882      	ldrh	r2, [r0, #4]
   3a866:	0213      	lsls	r3, r2, #8
   3a868:	ea43 2312 	orr.w	r3, r3, r2, lsr #8
   3a86c:	8083      	strh	r3, [r0, #4]
}
   3a86e:	4770      	bx	lr

0003a870 <mgmt_hton_hdr>:
    hdr->nh_len = htons(hdr->nh_len);
   3a870:	8842      	ldrh	r2, [r0, #2]
   3a872:	0213      	lsls	r3, r2, #8
   3a874:	ea43 2312 	orr.w	r3, r3, r2, lsr #8
   3a878:	8043      	strh	r3, [r0, #2]
    hdr->nh_group = htons(hdr->nh_group);
   3a87a:	8882      	ldrh	r2, [r0, #4]
   3a87c:	0213      	lsls	r3, r2, #8
   3a87e:	ea43 2312 	orr.w	r3, r3, r2, lsr #8
   3a882:	8083      	strh	r3, [r0, #4]
}
   3a884:	4770      	bx	lr

0003a886 <smp_align4>:
static int
smp_align4(int x)
{
    int rem;

    rem = x % 4;
   3a886:	4243      	negs	r3, r0
   3a888:	f000 0203 	and.w	r2, r0, #3
   3a88c:	f003 0303 	and.w	r3, r3, #3
   3a890:	bf58      	it	pl
   3a892:	425a      	negpl	r2, r3
    if (rem == 0) {
   3a894:	f010 0f03 	tst.w	r0, #3
   3a898:	d001      	beq.n	3a89e <smp_align4+0x18>
        return x;
    } else {
        return x - rem + 4;
   3a89a:	1a80      	subs	r0, r0, r2
   3a89c:	3004      	adds	r0, #4
    }
}
   3a89e:	4770      	bx	lr

0003a8a0 <smp_rsp_op>:
 * Converts a request opcode to its corresponding response opcode.
 */
static uint8_t
smp_rsp_op(uint8_t req_op)
{
    if (req_op == MGMT_OP_READ) {
   3a8a0:	b908      	cbnz	r0, 3a8a6 <smp_rsp_op+0x6>
        return MGMT_OP_READ_RSP;
   3a8a2:	2001      	movs	r0, #1
   3a8a4:	4770      	bx	lr
    } else {
        return MGMT_OP_WRITE_RSP;
   3a8a6:	2003      	movs	r0, #3
    }
}
   3a8a8:	4770      	bx	lr

0003a8aa <smp_init_rsp_hdr>:

static void
smp_init_rsp_hdr(const struct mgmt_hdr *req_hdr, struct mgmt_hdr *rsp_hdr)
{
   3a8aa:	b570      	push	{r4, r5, r6, lr}
   3a8ac:	4605      	mov	r5, r0
   3a8ae:	460c      	mov	r4, r1
    *rsp_hdr = (struct mgmt_hdr) {
        .nh_len = 0,
        .nh_flags = 0,
        .nh_op = smp_rsp_op(req_hdr->nh_op),
   3a8b0:	7800      	ldrb	r0, [r0, #0]
   3a8b2:	f000 0007 	and.w	r0, r0, #7
   3a8b6:	f7ff fff3 	bl	3a8a0 <smp_rsp_op>
        .nh_group = req_hdr->nh_group,
   3a8ba:	88ae      	ldrh	r6, [r5, #4]
        .nh_seq = req_hdr->nh_seq,
   3a8bc:	79a9      	ldrb	r1, [r5, #6]
        .nh_id = req_hdr->nh_id,
   3a8be:	79ea      	ldrb	r2, [r5, #7]
    *rsp_hdr = (struct mgmt_hdr) {
   3a8c0:	2300      	movs	r3, #0
   3a8c2:	6023      	str	r3, [r4, #0]
   3a8c4:	7823      	ldrb	r3, [r4, #0]
   3a8c6:	f360 0302 	bfi	r3, r0, #0, #3
   3a8ca:	7023      	strb	r3, [r4, #0]
   3a8cc:	80a6      	strh	r6, [r4, #4]
   3a8ce:	71a1      	strb	r1, [r4, #6]
   3a8d0:	71e2      	strb	r2, [r4, #7]
    };
}
   3a8d2:	bd70      	pop	{r4, r5, r6, pc}

0003a8d4 <smp_read_hdr>:
static int
smp_read_hdr(struct smp_streamer *streamer, struct mgmt_hdr *dst_hdr)
{
    struct cbor_decoder_reader *reader;

    reader = streamer->mgmt_stmr.reader;
   3a8d4:	6880      	ldr	r0, [r0, #8]

    if (reader->message_size < sizeof *dst_hdr) {
   3a8d6:	6983      	ldr	r3, [r0, #24]
   3a8d8:	2b07      	cmp	r3, #7
   3a8da:	d906      	bls.n	3a8ea <smp_read_hdr+0x16>
{
   3a8dc:	b510      	push	{r4, lr}
        return MGMT_ERR_EINVAL;
    }

    reader->cpy(reader, (char *)dst_hdr, 0, sizeof *dst_hdr);
   3a8de:	6944      	ldr	r4, [r0, #20]
   3a8e0:	2308      	movs	r3, #8
   3a8e2:	2200      	movs	r2, #0
   3a8e4:	47a0      	blx	r4
    return 0;
   3a8e6:	2000      	movs	r0, #0
}
   3a8e8:	bd10      	pop	{r4, pc}
        return MGMT_ERR_EINVAL;
   3a8ea:	2003      	movs	r0, #3
}
   3a8ec:	4770      	bx	lr

0003a8ee <smp_handle_single_payload>:
 * @return                      A MGMT_ERR_[...] error code.
 */
static int
smp_handle_single_payload(struct mgmt_ctxt *cbuf,
                          const struct mgmt_hdr *req_hdr, bool *handler_found)
{
   3a8ee:	b5f0      	push	{r4, r5, r6, r7, lr}
   3a8f0:	b085      	sub	sp, #20
   3a8f2:	4605      	mov	r5, r0
   3a8f4:	460c      	mov	r4, r1
   3a8f6:	4616      	mov	r6, r2
    const struct mgmt_handler *handler;
    mgmt_handler_fn *handler_fn;
    struct CborEncoder payload_encoder;
    int rc;

    handler = mgmt_find_handler(req_hdr->nh_group, req_hdr->nh_id);
   3a8f8:	79c9      	ldrb	r1, [r1, #7]
   3a8fa:	88a0      	ldrh	r0, [r4, #4]
   3a8fc:	f7ff ff81 	bl	3a802 <mgmt_find_handler>
    if (handler == NULL) {
   3a900:	b370      	cbz	r0, 3a960 <smp_handle_single_payload+0x72>
   3a902:	4607      	mov	r7, r0
    }

    /* Begin response payload.  Response fields are inserted into the root
     * map as key value pairs.
     */
    rc = cbor_encoder_create_map(&cbuf->encoder, &payload_encoder,
   3a904:	f04f 32ff 	mov.w	r2, #4294967295
   3a908:	4669      	mov	r1, sp
   3a90a:	4628      	mov	r0, r5
   3a90c:	f000 fab7 	bl	3ae7e <cbor_encoder_create_map>
                                 CborIndefiniteLength);
    rc = mgmt_err_from_cbor(rc);
   3a910:	f7ff ff82 	bl	3a818 <mgmt_err_from_cbor>
    if (rc != 0) {
   3a914:	4603      	mov	r3, r0
   3a916:	b930      	cbnz	r0, 3a926 <smp_handle_single_payload+0x38>
        return rc;
    }

    switch (req_hdr->nh_op) {
   3a918:	7823      	ldrb	r3, [r4, #0]
   3a91a:	f013 0307 	ands.w	r3, r3, #7
   3a91e:	d005      	beq.n	3a92c <smp_handle_single_payload+0x3e>
   3a920:	2b02      	cmp	r3, #2
   3a922:	d019      	beq.n	3a958 <smp_handle_single_payload+0x6a>
   3a924:	2303      	movs	r3, #3
    }

    /* End response payload. */
    rc = cbor_encoder_close_container(&cbuf->encoder, &payload_encoder);
    return mgmt_err_from_cbor(rc);
}
   3a926:	4618      	mov	r0, r3
   3a928:	b005      	add	sp, #20
   3a92a:	bdf0      	pop	{r4, r5, r6, r7, pc}
        handler_fn = handler->mh_read;
   3a92c:	683f      	ldr	r7, [r7, #0]
    if (handler_fn) {
   3a92e:	b1af      	cbz	r7, 3a95c <smp_handle_single_payload+0x6e>
        *handler_found = true;
   3a930:	2001      	movs	r0, #1
   3a932:	7030      	strb	r0, [r6, #0]
        mgmt_evt(MGMT_EVT_OP_CMD_RECV, req_hdr->nh_group, req_hdr->nh_id, NULL);
   3a934:	2300      	movs	r3, #0
   3a936:	79e2      	ldrb	r2, [r4, #7]
   3a938:	88a1      	ldrh	r1, [r4, #4]
   3a93a:	f7f3 fe29 	bl	2e590 <mgmt_evt>
        rc = handler_fn(cbuf);
   3a93e:	4628      	mov	r0, r5
   3a940:	47b8      	blx	r7
    if (rc != 0) {
   3a942:	4603      	mov	r3, r0
   3a944:	2800      	cmp	r0, #0
   3a946:	d1ee      	bne.n	3a926 <smp_handle_single_payload+0x38>
    rc = cbor_encoder_close_container(&cbuf->encoder, &payload_encoder);
   3a948:	4669      	mov	r1, sp
   3a94a:	4628      	mov	r0, r5
   3a94c:	f000 faa5 	bl	3ae9a <cbor_encoder_close_container>
    return mgmt_err_from_cbor(rc);
   3a950:	f7ff ff62 	bl	3a818 <mgmt_err_from_cbor>
   3a954:	4603      	mov	r3, r0
   3a956:	e7e6      	b.n	3a926 <smp_handle_single_payload+0x38>
        handler_fn = handler->mh_write;
   3a958:	687f      	ldr	r7, [r7, #4]
        break;
   3a95a:	e7e8      	b.n	3a92e <smp_handle_single_payload+0x40>
        rc = MGMT_ERR_ENOTSUP;
   3a95c:	2308      	movs	r3, #8
        return rc;
   3a95e:	e7e2      	b.n	3a926 <smp_handle_single_payload+0x38>
        return MGMT_ERR_ENOTSUP;
   3a960:	2308      	movs	r3, #8
   3a962:	e7e0      	b.n	3a926 <smp_handle_single_payload+0x38>

0003a964 <smp_write_hdr>:
{
   3a964:	b508      	push	{r3, lr}
   3a966:	460a      	mov	r2, r1
    rc = mgmt_streamer_write_at(&streamer->mgmt_stmr, 0, src_hdr,
   3a968:	2308      	movs	r3, #8
   3a96a:	2100      	movs	r1, #0
   3a96c:	f7ff ff29 	bl	3a7c2 <mgmt_streamer_write_at>
    return mgmt_err_from_cbor(rc);
   3a970:	f7ff ff52 	bl	3a818 <mgmt_err_from_cbor>
}
   3a974:	bd08      	pop	{r3, pc}

0003a976 <smp_handle_single_req>:
 * @return                      A MGMT_ERR_[...] error code.
 */
static int
smp_handle_single_req(struct smp_streamer *streamer,
                      const struct mgmt_hdr *req_hdr, bool *handler_found)
{
   3a976:	b570      	push	{r4, r5, r6, lr}
   3a978:	b08e      	sub	sp, #56	; 0x38
   3a97a:	4604      	mov	r4, r0
   3a97c:	460d      	mov	r5, r1
   3a97e:	4616      	mov	r6, r2
    struct mgmt_ctxt cbuf;
    struct mgmt_hdr rsp_hdr;
    int rc;

    rc = mgmt_ctxt_init(&cbuf, &streamer->mgmt_stmr);
   3a980:	4601      	mov	r1, r0
   3a982:	a803      	add	r0, sp, #12
   3a984:	f7ff ff51 	bl	3a82a <mgmt_ctxt_init>
    if (rc != 0) {
   3a988:	4603      	mov	r3, r0
   3a98a:	b110      	cbz	r0, 3a992 <smp_handle_single_req+0x1c>
    if (rc != 0) {
        return rc;
    }

    return 0;
}
   3a98c:	4618      	mov	r0, r3
   3a98e:	b00e      	add	sp, #56	; 0x38
   3a990:	bd70      	pop	{r4, r5, r6, pc}
    smp_init_rsp_hdr(req_hdr, &rsp_hdr);
   3a992:	a901      	add	r1, sp, #4
   3a994:	4628      	mov	r0, r5
   3a996:	f7ff ff88 	bl	3a8aa <smp_init_rsp_hdr>
    rc = smp_write_hdr(streamer, &rsp_hdr);
   3a99a:	a901      	add	r1, sp, #4
   3a99c:	4620      	mov	r0, r4
   3a99e:	f7ff ffe1 	bl	3a964 <smp_write_hdr>
    if (rc != 0) {
   3a9a2:	4603      	mov	r3, r0
   3a9a4:	2800      	cmp	r0, #0
   3a9a6:	d1f1      	bne.n	3a98c <smp_handle_single_req+0x16>
    rc = smp_handle_single_payload(&cbuf, req_hdr, handler_found);
   3a9a8:	4632      	mov	r2, r6
   3a9aa:	4629      	mov	r1, r5
   3a9ac:	a803      	add	r0, sp, #12
   3a9ae:	f7ff ff9e 	bl	3a8ee <smp_handle_single_payload>
    if (rc != 0) {
   3a9b2:	4603      	mov	r3, r0
   3a9b4:	2800      	cmp	r0, #0
   3a9b6:	d1e9      	bne.n	3a98c <smp_handle_single_req+0x16>
{   return encoder->writer->bytes_written; }
   3a9b8:	9b03      	ldr	r3, [sp, #12]
   3a9ba:	685b      	ldr	r3, [r3, #4]
    rsp_hdr.nh_len = cbor_encode_bytes_written(&cbuf.encoder) - MGMT_HDR_SIZE;
   3a9bc:	3b08      	subs	r3, #8
   3a9be:	f8ad 3006 	strh.w	r3, [sp, #6]
    mgmt_hton_hdr(&rsp_hdr);
   3a9c2:	a801      	add	r0, sp, #4
   3a9c4:	f7ff ff54 	bl	3a870 <mgmt_hton_hdr>
    rc = smp_write_hdr(streamer, &rsp_hdr);
   3a9c8:	a901      	add	r1, sp, #4
   3a9ca:	4620      	mov	r0, r4
   3a9cc:	f7ff ffca 	bl	3a964 <smp_write_hdr>
   3a9d0:	4603      	mov	r3, r0
    if (rc != 0) {
   3a9d2:	e7db      	b.n	3a98c <smp_handle_single_req+0x16>

0003a9d4 <smp_build_err_rsp>:
{
   3a9d4:	b570      	push	{r4, r5, r6, lr}
   3a9d6:	b092      	sub	sp, #72	; 0x48
   3a9d8:	4604      	mov	r4, r0
   3a9da:	460d      	mov	r5, r1
   3a9dc:	4616      	mov	r6, r2
    rc = mgmt_ctxt_init(&cbuf, &streamer->mgmt_stmr);
   3a9de:	4601      	mov	r1, r0
   3a9e0:	a803      	add	r0, sp, #12
   3a9e2:	f7ff ff22 	bl	3a82a <mgmt_ctxt_init>
    if (rc != 0) {
   3a9e6:	b108      	cbz	r0, 3a9ec <smp_build_err_rsp+0x18>
}
   3a9e8:	b012      	add	sp, #72	; 0x48
   3a9ea:	bd70      	pop	{r4, r5, r6, pc}
    smp_init_rsp_hdr(req_hdr, &rsp_hdr);
   3a9ec:	a901      	add	r1, sp, #4
   3a9ee:	4628      	mov	r0, r5
   3a9f0:	f7ff ff5b 	bl	3a8aa <smp_init_rsp_hdr>
    rc = smp_write_hdr(streamer, &rsp_hdr);
   3a9f4:	a901      	add	r1, sp, #4
   3a9f6:	4620      	mov	r0, r4
   3a9f8:	f7ff ffb4 	bl	3a964 <smp_write_hdr>
    if (rc != 0) {
   3a9fc:	2800      	cmp	r0, #0
   3a9fe:	d1f3      	bne.n	3a9e8 <smp_build_err_rsp+0x14>
    rc = cbor_encoder_create_map(&cbuf.encoder, &map, CborIndefiniteLength);
   3aa00:	f04f 32ff 	mov.w	r2, #4294967295
   3aa04:	a90e      	add	r1, sp, #56	; 0x38
   3aa06:	a803      	add	r0, sp, #12
   3aa08:	f000 fa39 	bl	3ae7e <cbor_encoder_create_map>
    if (rc != 0) {
   3aa0c:	2800      	cmp	r0, #0
   3aa0e:	d1eb      	bne.n	3a9e8 <smp_build_err_rsp+0x14>
    rc = mgmt_write_rsp_status(&cbuf, status);
   3aa10:	4631      	mov	r1, r6
   3aa12:	a803      	add	r0, sp, #12
   3aa14:	f7f3 fda6 	bl	2e564 <mgmt_write_rsp_status>
    if (rc != 0) {
   3aa18:	2800      	cmp	r0, #0
   3aa1a:	d1e5      	bne.n	3a9e8 <smp_build_err_rsp+0x14>
    rc = cbor_encoder_close_container(&cbuf.encoder, &map);
   3aa1c:	a90e      	add	r1, sp, #56	; 0x38
   3aa1e:	a803      	add	r0, sp, #12
   3aa20:	f000 fa3b 	bl	3ae9a <cbor_encoder_close_container>
    if (rc != 0) {
   3aa24:	2800      	cmp	r0, #0
   3aa26:	d1df      	bne.n	3a9e8 <smp_build_err_rsp+0x14>
   3aa28:	9b03      	ldr	r3, [sp, #12]
   3aa2a:	685b      	ldr	r3, [r3, #4]
    rsp_hdr.nh_len = cbor_encode_bytes_written(&cbuf.encoder) - MGMT_HDR_SIZE;
   3aa2c:	3b08      	subs	r3, #8
   3aa2e:	f8ad 3006 	strh.w	r3, [sp, #6]
    mgmt_hton_hdr(&rsp_hdr);
   3aa32:	a801      	add	r0, sp, #4
   3aa34:	f7ff ff1c 	bl	3a870 <mgmt_hton_hdr>
    rc = smp_write_hdr(streamer, &rsp_hdr);
   3aa38:	a901      	add	r1, sp, #4
   3aa3a:	4620      	mov	r0, r4
   3aa3c:	f7ff ff92 	bl	3a964 <smp_write_hdr>
    if (rc != 0) {
   3aa40:	e7d2      	b.n	3a9e8 <smp_build_err_rsp+0x14>

0003aa42 <smp_on_err>:
 * @param status                The status to indicate in the error response.
 */
static void
smp_on_err(struct smp_streamer *streamer, const struct mgmt_hdr *req_hdr,
           void *req, void *rsp, int status)
{
   3aa42:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
   3aa44:	4604      	mov	r4, r0
   3aa46:	460f      	mov	r7, r1
   3aa48:	4616      	mov	r6, r2
    int rc;

    /* Prefer the response buffer for holding the error response.  If no
     * response buffer was allocated, use the request buffer instead.
     */
    if (rsp == NULL) {
   3aa4a:	461d      	mov	r5, r3
   3aa4c:	b1e3      	cbz	r3, 3aa88 <smp_on_err+0x46>
        rsp = req;
        req = NULL;
    }

    /* Clear the partial response from the buffer, if any. */
    mgmt_streamer_reset_buf(&streamer->mgmt_stmr, rsp);
   3aa4e:	4629      	mov	r1, r5
   3aa50:	4620      	mov	r0, r4
   3aa52:	f7ff feae 	bl	3a7b2 <mgmt_streamer_reset_buf>
    mgmt_streamer_init_writer(&streamer->mgmt_stmr, rsp);
   3aa56:	4629      	mov	r1, r5
   3aa58:	4620      	mov	r0, r4
   3aa5a:	f7ff fec3 	bl	3a7e4 <mgmt_streamer_init_writer>

    /* Build and transmit the error response. */
    rc = smp_build_err_rsp(streamer, req_hdr, status);
   3aa5e:	9a06      	ldr	r2, [sp, #24]
   3aa60:	4639      	mov	r1, r7
   3aa62:	4620      	mov	r0, r4
   3aa64:	f7ff ffb6 	bl	3a9d4 <smp_build_err_rsp>
    if (rc == 0) {
   3aa68:	b928      	cbnz	r0, 3aa76 <smp_on_err+0x34>
        streamer->tx_rsp_cb(streamer, rsp, streamer->mgmt_stmr.cb_arg);
   3aa6a:	6923      	ldr	r3, [r4, #16]
   3aa6c:	6862      	ldr	r2, [r4, #4]
   3aa6e:	4629      	mov	r1, r5
   3aa70:	4620      	mov	r0, r4
   3aa72:	4798      	blx	r3
        rsp = NULL;
   3aa74:	2500      	movs	r5, #0
    }

    /* Free any extra buffers. */
    mgmt_streamer_free_buf(&streamer->mgmt_stmr, req);
   3aa76:	4631      	mov	r1, r6
   3aa78:	4620      	mov	r0, r4
   3aa7a:	f7ff feba 	bl	3a7f2 <mgmt_streamer_free_buf>
    mgmt_streamer_free_buf(&streamer->mgmt_stmr, rsp);
   3aa7e:	4629      	mov	r1, r5
   3aa80:	4620      	mov	r0, r4
   3aa82:	f7ff feb6 	bl	3a7f2 <mgmt_streamer_free_buf>
}
   3aa86:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}
        req = NULL;
   3aa88:	462e      	mov	r6, r5
        rsp = req;
   3aa8a:	4615      	mov	r5, r2
   3aa8c:	e7df      	b.n	3aa4e <smp_on_err+0xc>

0003aa8e <smp_process_request_packet>:
 *
 * @return                      0 on success, MGMT_ERR_[...] code on failure.
 */
int
smp_process_request_packet(struct smp_streamer *streamer, void *req)
{
   3aa8e:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   3aa92:	b086      	sub	sp, #24
   3aa94:	4604      	mov	r4, r0
   3aa96:	460e      	mov	r6, r1
    void *rsp;
    bool valid_hdr, handler_found;
    int rc;

    rsp = NULL;
    valid_hdr = true;
   3aa98:	e012      	b.n	3aac0 <smp_process_request_packet+0x32>
            break;
        }

        /* Trim processed request to free up space for subsequent responses. */
        mgmt_streamer_trim_front(&streamer->mgmt_stmr, req,
                                 smp_align4(req_hdr.nh_len));
   3aa9a:	f8bd 0012 	ldrh.w	r0, [sp, #18]
   3aa9e:	f7ff fef2 	bl	3a886 <smp_align4>
   3aaa2:	4602      	mov	r2, r0
        mgmt_streamer_trim_front(&streamer->mgmt_stmr, req,
   3aaa4:	4631      	mov	r1, r6
   3aaa6:	4620      	mov	r0, r4
   3aaa8:	f7ff fe7a 	bl	3a7a0 <mgmt_streamer_trim_front>

        cmd_done_arg.err = MGMT_ERR_EOK;
   3aaac:	2300      	movs	r3, #0
   3aaae:	9303      	str	r3, [sp, #12]
        mgmt_evt(MGMT_EVT_OP_CMD_DONE, req_hdr.nh_group, req_hdr.nh_id,
   3aab0:	ab03      	add	r3, sp, #12
   3aab2:	f89d 2017 	ldrb.w	r2, [sp, #23]
   3aab6:	f8bd 1014 	ldrh.w	r1, [sp, #20]
   3aaba:	2003      	movs	r0, #3
   3aabc:	f7f3 fd68 	bl	2e590 <mgmt_evt>
        handler_found = false;
   3aac0:	2300      	movs	r3, #0
   3aac2:	f88d 300b 	strb.w	r3, [sp, #11]
        rc = mgmt_streamer_init_reader(&streamer->mgmt_stmr, req);
   3aac6:	46a0      	mov	r8, r4
   3aac8:	4631      	mov	r1, r6
   3aaca:	4620      	mov	r0, r4
   3aacc:	f7ff fe83 	bl	3a7d6 <mgmt_streamer_init_reader>
        if (rc != 0) {
   3aad0:	4605      	mov	r5, r0
   3aad2:	bb60      	cbnz	r0, 3ab2e <smp_process_request_packet+0xa0>
        rc = smp_read_hdr(streamer, &req_hdr);
   3aad4:	a904      	add	r1, sp, #16
   3aad6:	4620      	mov	r0, r4
   3aad8:	f7ff fefc 	bl	3a8d4 <smp_read_hdr>
        if (rc != 0) {
   3aadc:	4605      	mov	r5, r0
   3aade:	bbb8      	cbnz	r0, 3ab50 <smp_process_request_packet+0xc2>
        mgmt_ntoh_hdr(&req_hdr);
   3aae0:	a804      	add	r0, sp, #16
   3aae2:	f7ff feba 	bl	3a85a <mgmt_ntoh_hdr>
        mgmt_streamer_trim_front(&streamer->mgmt_stmr, req, MGMT_HDR_SIZE);
   3aae6:	2208      	movs	r2, #8
   3aae8:	4631      	mov	r1, r6
   3aaea:	4620      	mov	r0, r4
   3aaec:	f7ff fe58 	bl	3a7a0 <mgmt_streamer_trim_front>
        rsp = mgmt_streamer_alloc_rsp(&streamer->mgmt_stmr, req);
   3aaf0:	4631      	mov	r1, r6
   3aaf2:	4620      	mov	r0, r4
   3aaf4:	f7ff fe4c 	bl	3a790 <mgmt_streamer_alloc_rsp>
        if (rsp == NULL) {
   3aaf8:	4607      	mov	r7, r0
   3aafa:	b360      	cbz	r0, 3ab56 <smp_process_request_packet+0xc8>
        rc = mgmt_streamer_init_writer(&streamer->mgmt_stmr, rsp);
   3aafc:	4601      	mov	r1, r0
   3aafe:	4620      	mov	r0, r4
   3ab00:	f7ff fe70 	bl	3a7e4 <mgmt_streamer_init_writer>
        if (rc != 0) {
   3ab04:	4605      	mov	r5, r0
   3ab06:	bb48      	cbnz	r0, 3ab5c <smp_process_request_packet+0xce>
        rc = smp_handle_single_req(streamer, &req_hdr, &handler_found);
   3ab08:	f10d 020b 	add.w	r2, sp, #11
   3ab0c:	a904      	add	r1, sp, #16
   3ab0e:	4620      	mov	r0, r4
   3ab10:	f7ff ff31 	bl	3a976 <smp_handle_single_req>
        if (rc != 0) {
   3ab14:	4605      	mov	r5, r0
   3ab16:	bb18      	cbnz	r0, 3ab60 <smp_process_request_packet+0xd2>
        rc = streamer->tx_rsp_cb(streamer, rsp, streamer->mgmt_stmr.cb_arg);
   3ab18:	6923      	ldr	r3, [r4, #16]
   3ab1a:	6862      	ldr	r2, [r4, #4]
   3ab1c:	4639      	mov	r1, r7
   3ab1e:	4620      	mov	r0, r4
   3ab20:	4798      	blx	r3
        if (rc != 0) {
   3ab22:	4605      	mov	r5, r0
   3ab24:	2800      	cmp	r0, #0
   3ab26:	d0b8      	beq.n	3aa9a <smp_process_request_packet+0xc>
    valid_hdr = true;
   3ab28:	2301      	movs	r3, #1
        rsp = NULL;
   3ab2a:	2700      	movs	r7, #0
   3ab2c:	e001      	b.n	3ab32 <smp_process_request_packet+0xa4>
            valid_hdr = false;
   3ab2e:	2300      	movs	r3, #0
   3ab30:	461f      	mov	r7, r3
                 &cmd_done_arg);
    }

    if (rc != 0 && valid_hdr) {
   3ab32:	b105      	cbz	r5, 3ab36 <smp_process_request_packet+0xa8>
   3ab34:	b9b3      	cbnz	r3, 3ab64 <smp_process_request_packet+0xd6>
        }

        return rc;
    }

    mgmt_streamer_free_buf(&streamer->mgmt_stmr, req);
   3ab36:	4631      	mov	r1, r6
   3ab38:	4640      	mov	r0, r8
   3ab3a:	f7ff fe5a 	bl	3a7f2 <mgmt_streamer_free_buf>
    mgmt_streamer_free_buf(&streamer->mgmt_stmr, rsp);
   3ab3e:	4639      	mov	r1, r7
   3ab40:	4640      	mov	r0, r8
   3ab42:	f7ff fe56 	bl	3a7f2 <mgmt_streamer_free_buf>
    return 0;
   3ab46:	2500      	movs	r5, #0
}
   3ab48:	4628      	mov	r0, r5
   3ab4a:	b006      	add	sp, #24
   3ab4c:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
            valid_hdr = false;
   3ab50:	2300      	movs	r3, #0
   3ab52:	461f      	mov	r7, r3
   3ab54:	e7ed      	b.n	3ab32 <smp_process_request_packet+0xa4>
            rc = MGMT_ERR_ENOMEM;
   3ab56:	2502      	movs	r5, #2
    valid_hdr = true;
   3ab58:	2301      	movs	r3, #1
   3ab5a:	e7ea      	b.n	3ab32 <smp_process_request_packet+0xa4>
   3ab5c:	2301      	movs	r3, #1
   3ab5e:	e7e8      	b.n	3ab32 <smp_process_request_packet+0xa4>
   3ab60:	2301      	movs	r3, #1
   3ab62:	e7e6      	b.n	3ab32 <smp_process_request_packet+0xa4>
        smp_on_err(streamer, &req_hdr, req, rsp, rc);
   3ab64:	9500      	str	r5, [sp, #0]
   3ab66:	463b      	mov	r3, r7
   3ab68:	4632      	mov	r2, r6
   3ab6a:	a904      	add	r1, sp, #16
   3ab6c:	4620      	mov	r0, r4
   3ab6e:	f7ff ff68 	bl	3aa42 <smp_on_err>
        if (handler_found) {
   3ab72:	f89d 300b 	ldrb.w	r3, [sp, #11]
   3ab76:	2b00      	cmp	r3, #0
   3ab78:	d0e6      	beq.n	3ab48 <smp_process_request_packet+0xba>
            cmd_done_arg.err = rc;
   3ab7a:	9503      	str	r5, [sp, #12]
            mgmt_evt(MGMT_EVT_OP_CMD_DONE, req_hdr.nh_group, req_hdr.nh_id,
   3ab7c:	ab03      	add	r3, sp, #12
   3ab7e:	f89d 2017 	ldrb.w	r2, [sp, #23]
   3ab82:	f8bd 1014 	ldrh.w	r1, [sp, #20]
   3ab86:	2003      	movs	r0, #3
   3ab88:	f7f3 fd02 	bl	2e590 <mgmt_evt>
        return rc;
   3ab8c:	e7dc      	b.n	3ab48 <smp_process_request_packet+0xba>

0003ab8e <SEGGER_RTT_Init>:
*  Function description
*    Initializes the RTT Control Block.
*    Should be used in RAM targets, at start of the application.
*
*/
void SEGGER_RTT_Init (void) {
   3ab8e:	b508      	push	{r3, lr}
  _DoInit();
   3ab90:	f7f3 fd44 	bl	2e61c <_DoInit>
}
   3ab94:	bd08      	pop	{r3, pc}

0003ab96 <rtt_init>:
 */

K_MUTEX_DEFINE(rtt_term_mutex);

static int rtt_init(const struct device *unused)
{
   3ab96:	b508      	push	{r3, lr}
	ARG_UNUSED(unused);

	SEGGER_RTT_Init();
   3ab98:	f7ff fff9 	bl	3ab8e <SEGGER_RTT_Init>

	return 0;
}
   3ab9c:	2000      	movs	r0, #0
   3ab9e:	bd08      	pop	{r3, pc}

0003aba0 <create_container>:

#ifdef __GNUC__
__attribute__((noinline))
#endif
static CborError create_container(CborEncoder *encoder, CborEncoder *container, size_t length, uint8_t shiftedMajorType)
{
   3aba0:	b5f0      	push	{r4, r5, r6, r7, lr}
   3aba2:	b087      	sub	sp, #28
   3aba4:	460c      	mov	r4, r1
   3aba6:	461d      	mov	r5, r3
    CborError err;
    container->writer = encoder->writer;
   3aba8:	6803      	ldr	r3, [r0, #0]
   3abaa:	600b      	str	r3, [r1, #0]
    ++encoder->added;
   3abac:	6883      	ldr	r3, [r0, #8]
   3abae:	3301      	adds	r3, #1
   3abb0:	6083      	str	r3, [r0, #8]
    container->added = 0;
   3abb2:	2300      	movs	r3, #0
   3abb4:	608b      	str	r3, [r1, #8]

    cbor_static_assert(((MapType << MajorTypeShift) & CborIteratorFlag_ContainerIsMap) == CborIteratorFlag_ContainerIsMap);
    cbor_static_assert(((ArrayType << MajorTypeShift) & CborIteratorFlag_ContainerIsMap) == 0);
    container->flags = shiftedMajorType & CborIteratorFlag_ContainerIsMap;
   3abb6:	f005 0320 	and.w	r3, r5, #32
   3abba:	60cb      	str	r3, [r1, #12]

    if (length == CborIndefiniteLength) {
   3abbc:	f1b2 3fff 	cmp.w	r2, #4294967295
   3abc0:	d10d      	bne.n	3abde <create_container+0x3e>
        container->flags |= CborIteratorFlag_UnknownLength;
   3abc2:	f043 0304 	orr.w	r3, r3, #4
   3abc6:	60cb      	str	r3, [r1, #12]
        err = append_byte_to_buffer(container, shiftedMajorType + IndefiniteLength);
   3abc8:	351f      	adds	r5, #31
   3abca:	f88d 5008 	strb.w	r5, [sp, #8]
    return encoder->writer->write(encoder->writer, data, len);
   3abce:	6808      	ldr	r0, [r1, #0]
   3abd0:	6803      	ldr	r3, [r0, #0]
   3abd2:	2201      	movs	r2, #1
   3abd4:	a902      	add	r1, sp, #8
   3abd6:	4798      	blx	r3
    }
    if (err && !isOomError(err))
        return err;

    return CborNoError;
}
   3abd8:	2000      	movs	r0, #0
   3abda:	b007      	add	sp, #28
   3abdc:	bdf0      	pop	{r4, r5, r6, r7, pc}
        err = encode_number_no_update(container, length, shiftedMajorType);
   3abde:	4616      	mov	r6, r2
   3abe0:	2700      	movs	r7, #0
    v = cbor_htonll(v);
   3abe2:	ba12      	rev	r2, r2
   3abe4:	2300      	movs	r3, #0
   3abe6:	9300      	str	r3, [sp, #0]
   3abe8:	9201      	str	r2, [sp, #4]
    memcpy(where, &v, sizeof(v));
   3abea:	2208      	movs	r2, #8
   3abec:	4669      	mov	r1, sp
   3abee:	a804      	add	r0, sp, #16
   3abf0:	f7fa ff84 	bl	35afc <memcpy>
    if (ui < Value8Bit) {
   3abf4:	2f00      	cmp	r7, #0
   3abf6:	bf08      	it	eq
   3abf8:	2e18      	cmpeq	r6, #24
   3abfa:	d20c      	bcs.n	3ac16 <create_container+0x76>
        *bufstart += shiftedMajorType;
   3abfc:	f89d 3017 	ldrb.w	r3, [sp, #23]
   3ac00:	441d      	add	r5, r3
   3ac02:	f88d 5017 	strb.w	r5, [sp, #23]
    uint8_t *bufstart = bufend - 1;
   3ac06:	f10d 0117 	add.w	r1, sp, #23
    return encoder->writer->write(encoder->writer, data, len);
   3ac0a:	6820      	ldr	r0, [r4, #0]
   3ac0c:	6803      	ldr	r3, [r0, #0]
   3ac0e:	aa06      	add	r2, sp, #24
   3ac10:	1a52      	subs	r2, r2, r1
   3ac12:	4798      	blx	r3
    return append_to_buffer(encoder, bufstart, bufend - bufstart);
   3ac14:	e7e0      	b.n	3abd8 <create_container+0x38>
        if (ui > 0xffU)
   3ac16:	2f00      	cmp	r7, #0
   3ac18:	bf08      	it	eq
   3ac1a:	f5b6 7f80 	cmpeq.w	r6, #256	; 0x100
   3ac1e:	d211      	bcs.n	3ac44 <create_container+0xa4>
        uint8_t more = 0;
   3ac20:	2300      	movs	r3, #0
        if (ui > 0xffffU)
   3ac22:	2f00      	cmp	r7, #0
   3ac24:	bf08      	it	eq
   3ac26:	f5b6 3f80 	cmpeq.w	r6, #65536	; 0x10000
   3ac2a:	d301      	bcc.n	3ac30 <create_container+0x90>
            ++more;
   3ac2c:	3301      	adds	r3, #1
   3ac2e:	b2db      	uxtb	r3, r3
        bufstart -= (size_t)1 << more;
   3ac30:	2101      	movs	r1, #1
   3ac32:	fa01 f203 	lsl.w	r2, r1, r3
   3ac36:	f10d 0117 	add.w	r1, sp, #23
   3ac3a:	1a89      	subs	r1, r1, r2
        *bufstart = shiftedMajorType + Value8Bit + more;
   3ac3c:	441d      	add	r5, r3
   3ac3e:	3518      	adds	r5, #24
   3ac40:	700d      	strb	r5, [r1, #0]
   3ac42:	e7e2      	b.n	3ac0a <create_container+0x6a>
            ++more;
   3ac44:	2301      	movs	r3, #1
   3ac46:	e7ec      	b.n	3ac22 <create_container+0x82>

0003ac48 <encode_string>:
{
   3ac48:	e92d 43f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, lr}
   3ac4c:	b087      	sub	sp, #28
   3ac4e:	4604      	mov	r4, r0
   3ac50:	460d      	mov	r5, r1
   3ac52:	4616      	mov	r6, r2
   3ac54:	461f      	mov	r7, r3
    CborError err = encode_number(encoder, length, shiftedMajorType);
   3ac56:	4688      	mov	r8, r1
   3ac58:	f04f 0900 	mov.w	r9, #0
    ++encoder->added;
   3ac5c:	6883      	ldr	r3, [r0, #8]
   3ac5e:	3301      	adds	r3, #1
   3ac60:	6083      	str	r3, [r0, #8]
    v = cbor_htonll(v);
   3ac62:	ba0b      	rev	r3, r1
   3ac64:	2200      	movs	r2, #0
   3ac66:	9200      	str	r2, [sp, #0]
   3ac68:	9301      	str	r3, [sp, #4]
    memcpy(where, &v, sizeof(v));
   3ac6a:	2208      	movs	r2, #8
   3ac6c:	4669      	mov	r1, sp
   3ac6e:	a804      	add	r0, sp, #16
   3ac70:	f7fa ff44 	bl	35afc <memcpy>
    if (ui < Value8Bit) {
   3ac74:	f1b9 0f00 	cmp.w	r9, #0
   3ac78:	bf08      	it	eq
   3ac7a:	2d18      	cmpeq	r5, #24
   3ac7c:	d213      	bcs.n	3aca6 <encode_string+0x5e>
        *bufstart += shiftedMajorType;
   3ac7e:	f89d 2017 	ldrb.w	r2, [sp, #23]
   3ac82:	4416      	add	r6, r2
   3ac84:	f88d 6017 	strb.w	r6, [sp, #23]
    uint8_t *bufstart = bufend - 1;
   3ac88:	f10d 0117 	add.w	r1, sp, #23
    return encoder->writer->write(encoder->writer, data, len);
   3ac8c:	6820      	ldr	r0, [r4, #0]
   3ac8e:	6803      	ldr	r3, [r0, #0]
   3ac90:	aa06      	add	r2, sp, #24
   3ac92:	1a52      	subs	r2, r2, r1
   3ac94:	4798      	blx	r3
   3ac96:	6820      	ldr	r0, [r4, #0]
   3ac98:	6803      	ldr	r3, [r0, #0]
   3ac9a:	462a      	mov	r2, r5
   3ac9c:	4639      	mov	r1, r7
   3ac9e:	4798      	blx	r3
}
   3aca0:	b007      	add	sp, #28
   3aca2:	e8bd 83f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, r9, pc}
        if (ui > 0xffU)
   3aca6:	f1b9 0f00 	cmp.w	r9, #0
   3acaa:	bf08      	it	eq
   3acac:	f5b5 7f80 	cmpeq.w	r5, #256	; 0x100
   3acb0:	d212      	bcs.n	3acd8 <encode_string+0x90>
        uint8_t more = 0;
   3acb2:	2200      	movs	r2, #0
        if (ui > 0xffffU)
   3acb4:	f1b9 0f00 	cmp.w	r9, #0
   3acb8:	bf08      	it	eq
   3acba:	f5b8 3f80 	cmpeq.w	r8, #65536	; 0x10000
   3acbe:	d301      	bcc.n	3acc4 <encode_string+0x7c>
            ++more;
   3acc0:	3201      	adds	r2, #1
   3acc2:	b2d2      	uxtb	r2, r2
        bufstart -= (size_t)1 << more;
   3acc4:	2101      	movs	r1, #1
   3acc6:	fa01 f302 	lsl.w	r3, r1, r2
   3acca:	f10d 0117 	add.w	r1, sp, #23
   3acce:	1ac9      	subs	r1, r1, r3
        *bufstart = shiftedMajorType + Value8Bit + more;
   3acd0:	4416      	add	r6, r2
   3acd2:	3618      	adds	r6, #24
   3acd4:	700e      	strb	r6, [r1, #0]
   3acd6:	e7d9      	b.n	3ac8c <encode_string+0x44>
            ++more;
   3acd8:	2201      	movs	r2, #1
   3acda:	e7eb      	b.n	3acb4 <encode_string+0x6c>

0003acdc <cbor_encoder_init>:
    encoder->writer = writer;
   3acdc:	6001      	str	r1, [r0, #0]
    encoder->added = 0;
   3acde:	2300      	movs	r3, #0
   3ace0:	6083      	str	r3, [r0, #8]
    encoder->flags = flags;
   3ace2:	60c2      	str	r2, [r0, #12]
}
   3ace4:	4770      	bx	lr

0003ace6 <cbor_encode_uint>:
{
   3ace6:	b570      	push	{r4, r5, r6, lr}
   3ace8:	b086      	sub	sp, #24
   3acea:	4606      	mov	r6, r0
   3acec:	4614      	mov	r4, r2
   3acee:	461d      	mov	r5, r3
    ++encoder->added;
   3acf0:	6883      	ldr	r3, [r0, #8]
   3acf2:	3301      	adds	r3, #1
   3acf4:	6083      	str	r3, [r0, #8]
    v = cbor_htonll(v);
   3acf6:	ba13      	rev	r3, r2
   3acf8:	ba2a      	rev	r2, r5
   3acfa:	9200      	str	r2, [sp, #0]
   3acfc:	9301      	str	r3, [sp, #4]
    memcpy(where, &v, sizeof(v));
   3acfe:	2208      	movs	r2, #8
   3ad00:	4669      	mov	r1, sp
   3ad02:	a804      	add	r0, sp, #16
   3ad04:	f7fa fefa 	bl	35afc <memcpy>
    if (ui < Value8Bit) {
   3ad08:	2d00      	cmp	r5, #0
   3ad0a:	bf08      	it	eq
   3ad0c:	2c18      	cmpeq	r4, #24
   3ad0e:	d208      	bcs.n	3ad22 <cbor_encode_uint+0x3c>
    uint8_t *bufstart = bufend - 1;
   3ad10:	f10d 0117 	add.w	r1, sp, #23
    return encoder->writer->write(encoder->writer, data, len);
   3ad14:	6830      	ldr	r0, [r6, #0]
   3ad16:	6803      	ldr	r3, [r0, #0]
   3ad18:	aa06      	add	r2, sp, #24
   3ad1a:	1a52      	subs	r2, r2, r1
   3ad1c:	4798      	blx	r3
}
   3ad1e:	b006      	add	sp, #24
   3ad20:	bd70      	pop	{r4, r5, r6, pc}
        if (ui > 0xffU)
   3ad22:	2d00      	cmp	r5, #0
   3ad24:	bf08      	it	eq
   3ad26:	f5b4 7f80 	cmpeq.w	r4, #256	; 0x100
   3ad2a:	d216      	bcs.n	3ad5a <cbor_encode_uint+0x74>
        uint8_t more = 0;
   3ad2c:	2300      	movs	r3, #0
        if (ui > 0xffffU)
   3ad2e:	2d00      	cmp	r5, #0
   3ad30:	bf08      	it	eq
   3ad32:	f5b4 3f80 	cmpeq.w	r4, #65536	; 0x10000
   3ad36:	d301      	bcc.n	3ad3c <cbor_encode_uint+0x56>
            ++more;
   3ad38:	3301      	adds	r3, #1
   3ad3a:	b2db      	uxtb	r3, r3
        if (ui > 0xffffffffU)
   3ad3c:	2d01      	cmp	r5, #1
   3ad3e:	bf08      	it	eq
   3ad40:	2c00      	cmpeq	r4, #0
   3ad42:	d301      	bcc.n	3ad48 <cbor_encode_uint+0x62>
            ++more;
   3ad44:	3301      	adds	r3, #1
   3ad46:	b2db      	uxtb	r3, r3
        bufstart -= (size_t)1 << more;
   3ad48:	2101      	movs	r1, #1
   3ad4a:	fa01 f203 	lsl.w	r2, r1, r3
   3ad4e:	f10d 0117 	add.w	r1, sp, #23
   3ad52:	1a89      	subs	r1, r1, r2
        *bufstart = shiftedMajorType + Value8Bit + more;
   3ad54:	3318      	adds	r3, #24
   3ad56:	700b      	strb	r3, [r1, #0]
   3ad58:	e7dc      	b.n	3ad14 <cbor_encode_uint+0x2e>
            ++more;
   3ad5a:	2301      	movs	r3, #1
   3ad5c:	e7e7      	b.n	3ad2e <cbor_encode_uint+0x48>

0003ad5e <cbor_encode_int>:
{
   3ad5e:	b5f0      	push	{r4, r5, r6, r7, lr}
   3ad60:	b087      	sub	sp, #28
   3ad62:	4606      	mov	r6, r0
    uint64_t ui = value >> 63;              /* extend sign to whole length */
   3ad64:	17d9      	asrs	r1, r3, #31
    uint8_t majorType = ui & 0x20;          /* extract major type */
   3ad66:	b2cf      	uxtb	r7, r1
   3ad68:	f007 0720 	and.w	r7, r7, #32
    ui ^= value;                            /* complement negatives */
   3ad6c:	ea82 0401 	eor.w	r4, r2, r1
   3ad70:	ea83 0501 	eor.w	r5, r3, r1
    ++encoder->added;
   3ad74:	6883      	ldr	r3, [r0, #8]
   3ad76:	3301      	adds	r3, #1
   3ad78:	6083      	str	r3, [r0, #8]
    v = cbor_htonll(v);
   3ad7a:	ba23      	rev	r3, r4
   3ad7c:	ba2a      	rev	r2, r5
   3ad7e:	9200      	str	r2, [sp, #0]
   3ad80:	9301      	str	r3, [sp, #4]
    memcpy(where, &v, sizeof(v));
   3ad82:	2208      	movs	r2, #8
   3ad84:	4669      	mov	r1, sp
   3ad86:	a804      	add	r0, sp, #16
   3ad88:	f7fa feb8 	bl	35afc <memcpy>
    if (ui < Value8Bit) {
   3ad8c:	2d00      	cmp	r5, #0
   3ad8e:	bf08      	it	eq
   3ad90:	2c18      	cmpeq	r4, #24
   3ad92:	d20d      	bcs.n	3adb0 <cbor_encode_int+0x52>
        *bufstart += shiftedMajorType;
   3ad94:	f89d 3017 	ldrb.w	r3, [sp, #23]
   3ad98:	441f      	add	r7, r3
   3ad9a:	f88d 7017 	strb.w	r7, [sp, #23]
    uint8_t *bufstart = bufend - 1;
   3ad9e:	f10d 0117 	add.w	r1, sp, #23
    return encoder->writer->write(encoder->writer, data, len);
   3ada2:	6830      	ldr	r0, [r6, #0]
   3ada4:	6803      	ldr	r3, [r0, #0]
   3ada6:	aa06      	add	r2, sp, #24
   3ada8:	1a52      	subs	r2, r2, r1
   3adaa:	4798      	blx	r3
}
   3adac:	b007      	add	sp, #28
   3adae:	bdf0      	pop	{r4, r5, r6, r7, pc}
        if (ui > 0xffU)
   3adb0:	2d00      	cmp	r5, #0
   3adb2:	bf08      	it	eq
   3adb4:	f5b4 7f80 	cmpeq.w	r4, #256	; 0x100
   3adb8:	d217      	bcs.n	3adea <cbor_encode_int+0x8c>
        uint8_t more = 0;
   3adba:	2300      	movs	r3, #0
        if (ui > 0xffffU)
   3adbc:	2d00      	cmp	r5, #0
   3adbe:	bf08      	it	eq
   3adc0:	f5b4 3f80 	cmpeq.w	r4, #65536	; 0x10000
   3adc4:	d301      	bcc.n	3adca <cbor_encode_int+0x6c>
            ++more;
   3adc6:	3301      	adds	r3, #1
   3adc8:	b2db      	uxtb	r3, r3
        if (ui > 0xffffffffU)
   3adca:	2d01      	cmp	r5, #1
   3adcc:	bf08      	it	eq
   3adce:	2c00      	cmpeq	r4, #0
   3add0:	d301      	bcc.n	3add6 <cbor_encode_int+0x78>
            ++more;
   3add2:	3301      	adds	r3, #1
   3add4:	b2db      	uxtb	r3, r3
        bufstart -= (size_t)1 << more;
   3add6:	2101      	movs	r1, #1
   3add8:	fa01 f203 	lsl.w	r2, r1, r3
   3addc:	f10d 0117 	add.w	r1, sp, #23
   3ade0:	1a89      	subs	r1, r1, r2
        *bufstart = shiftedMajorType + Value8Bit + more;
   3ade2:	441f      	add	r7, r3
   3ade4:	3718      	adds	r7, #24
   3ade6:	700f      	strb	r7, [r1, #0]
   3ade8:	e7db      	b.n	3ada2 <cbor_encode_int+0x44>
            ++more;
   3adea:	2301      	movs	r3, #1
   3adec:	e7e6      	b.n	3adbc <cbor_encode_int+0x5e>

0003adee <cbor_encode_simple_value>:
    if (value >= HalfPrecisionFloat && value <= Break)
   3adee:	f1a1 0319 	sub.w	r3, r1, #25
   3adf2:	b2db      	uxtb	r3, r3
   3adf4:	2b06      	cmp	r3, #6
   3adf6:	d92c      	bls.n	3ae52 <cbor_encode_simple_value+0x64>
{
   3adf8:	b5d0      	push	{r4, r6, r7, lr}
   3adfa:	b086      	sub	sp, #24
   3adfc:	4604      	mov	r4, r0
    return encode_number(encoder, value, SimpleTypesType << MajorTypeShift);
   3adfe:	b2ce      	uxtb	r6, r1
   3ae00:	2700      	movs	r7, #0
    ++encoder->added;
   3ae02:	6883      	ldr	r3, [r0, #8]
   3ae04:	3301      	adds	r3, #1
   3ae06:	6083      	str	r3, [r0, #8]
    v = cbor_htonll(v);
   3ae08:	ba09      	rev	r1, r1
   3ae0a:	2300      	movs	r3, #0
   3ae0c:	9300      	str	r3, [sp, #0]
   3ae0e:	9101      	str	r1, [sp, #4]
    memcpy(where, &v, sizeof(v));
   3ae10:	2208      	movs	r2, #8
   3ae12:	4669      	mov	r1, sp
   3ae14:	a804      	add	r0, sp, #16
   3ae16:	f7fa fe71 	bl	35afc <memcpy>
    if (ui < Value8Bit) {
   3ae1a:	2f00      	cmp	r7, #0
   3ae1c:	bf08      	it	eq
   3ae1e:	2e18      	cmpeq	r6, #24
   3ae20:	d20d      	bcs.n	3ae3e <cbor_encode_simple_value+0x50>
        *bufstart += shiftedMajorType;
   3ae22:	f89d 3017 	ldrb.w	r3, [sp, #23]
   3ae26:	3b20      	subs	r3, #32
   3ae28:	f88d 3017 	strb.w	r3, [sp, #23]
    uint8_t *bufstart = bufend - 1;
   3ae2c:	f10d 0117 	add.w	r1, sp, #23
    return encoder->writer->write(encoder->writer, data, len);
   3ae30:	6820      	ldr	r0, [r4, #0]
   3ae32:	6803      	ldr	r3, [r0, #0]
   3ae34:	aa06      	add	r2, sp, #24
   3ae36:	1a52      	subs	r2, r2, r1
   3ae38:	4798      	blx	r3
}
   3ae3a:	b006      	add	sp, #24
   3ae3c:	bdd0      	pop	{r4, r6, r7, pc}
        uint8_t more = 0;
   3ae3e:	2300      	movs	r3, #0
        bufstart -= (size_t)1 << more;
   3ae40:	2101      	movs	r1, #1
   3ae42:	fa01 f203 	lsl.w	r2, r1, r3
   3ae46:	f10d 0117 	add.w	r1, sp, #23
   3ae4a:	1a89      	subs	r1, r1, r2
        *bufstart = shiftedMajorType + Value8Bit + more;
   3ae4c:	3b08      	subs	r3, #8
   3ae4e:	700b      	strb	r3, [r1, #0]
   3ae50:	e7ee      	b.n	3ae30 <cbor_encode_simple_value+0x42>
        return CborErrorIllegalSimpleType;
   3ae52:	f44f 7083 	mov.w	r0, #262	; 0x106
}
   3ae56:	4770      	bx	lr

0003ae58 <cbor_encode_byte_string>:
{
   3ae58:	b508      	push	{r3, lr}
   3ae5a:	460b      	mov	r3, r1
   3ae5c:	4611      	mov	r1, r2
    return encode_string(encoder, length, ByteStringType << MajorTypeShift, string);
   3ae5e:	2240      	movs	r2, #64	; 0x40
   3ae60:	f7ff fef2 	bl	3ac48 <encode_string>
}
   3ae64:	bd08      	pop	{r3, pc}

0003ae66 <cbor_encode_text_string>:
{
   3ae66:	b508      	push	{r3, lr}
   3ae68:	460b      	mov	r3, r1
   3ae6a:	4611      	mov	r1, r2
    return encode_string(encoder, length, TextStringType << MajorTypeShift, string);
   3ae6c:	2260      	movs	r2, #96	; 0x60
   3ae6e:	f7ff feeb 	bl	3ac48 <encode_string>
}
   3ae72:	bd08      	pop	{r3, pc}

0003ae74 <cbor_encoder_create_array>:
 * length instead.
 *
 * \sa cbor_encoder_create_map
 */
CborError cbor_encoder_create_array(CborEncoder *encoder, CborEncoder *arrayEncoder, size_t length)
{
   3ae74:	b508      	push	{r3, lr}
    return create_container(encoder, arrayEncoder, length, ArrayType << MajorTypeShift);
   3ae76:	2380      	movs	r3, #128	; 0x80
   3ae78:	f7ff fe92 	bl	3aba0 <create_container>
}
   3ae7c:	bd08      	pop	{r3, pc}

0003ae7e <cbor_encoder_create_map>:
 * value, this function returns error CborErrorDataTooLarge.
 *
 * \sa cbor_encoder_create_array
 */
CborError cbor_encoder_create_map(CborEncoder *encoder, CborEncoder *mapEncoder, size_t length)
{
   3ae7e:	b510      	push	{r4, lr}
    if (length != CborIndefiniteLength && length > SIZE_MAX / 2)
   3ae80:	f102 4400 	add.w	r4, r2, #2147483648	; 0x80000000
   3ae84:	f06f 4300 	mvn.w	r3, #2147483648	; 0x80000000
   3ae88:	429c      	cmp	r4, r3
   3ae8a:	d303      	bcc.n	3ae94 <cbor_encoder_create_map+0x16>
        return CborErrorDataTooLarge;
    return create_container(encoder, mapEncoder, length, MapType << MajorTypeShift);
   3ae8c:	23a0      	movs	r3, #160	; 0xa0
   3ae8e:	f7ff fe87 	bl	3aba0 <create_container>
}
   3ae92:	bd10      	pop	{r4, pc}
        return CborErrorDataTooLarge;
   3ae94:	f44f 6080 	mov.w	r0, #1024	; 0x400
   3ae98:	e7fb      	b.n	3ae92 <cbor_encoder_create_map+0x14>

0003ae9a <cbor_encoder_close_container>:
 *
 * \sa cbor_encoder_create_array(), cbor_encoder_create_map()
 */
CborError cbor_encoder_close_container(CborEncoder *encoder, const CborEncoder *containerEncoder)
{
    encoder->writer = containerEncoder->writer;
   3ae9a:	680b      	ldr	r3, [r1, #0]
   3ae9c:	6003      	str	r3, [r0, #0]

    if (containerEncoder->flags & CborIteratorFlag_UnknownLength)
   3ae9e:	68cb      	ldr	r3, [r1, #12]
   3aea0:	f013 0f04 	tst.w	r3, #4
   3aea4:	d101      	bne.n	3aeaa <cbor_encoder_close_container+0x10>
        return append_byte_to_buffer(encoder, BreakByte);
    return CborNoError;
   3aea6:	2000      	movs	r0, #0
}
   3aea8:	4770      	bx	lr
{
   3aeaa:	b500      	push	{lr}
   3aeac:	b083      	sub	sp, #12
        return append_byte_to_buffer(encoder, BreakByte);
   3aeae:	23ff      	movs	r3, #255	; 0xff
   3aeb0:	f88d 3007 	strb.w	r3, [sp, #7]
    return encoder->writer->write(encoder->writer, data, len);
   3aeb4:	6800      	ldr	r0, [r0, #0]
   3aeb6:	6803      	ldr	r3, [r0, #0]
   3aeb8:	2201      	movs	r2, #1
   3aeba:	f10d 0107 	add.w	r1, sp, #7
   3aebe:	4798      	blx	r3
}
   3aec0:	b003      	add	sp, #12
   3aec2:	f85d fb04 	ldr.w	pc, [sp], #4

0003aec6 <is_fixed_type>:
    return type != CborTextStringType && type != CborByteStringType && type != CborArrayType &&
   3aec6:	2860      	cmp	r0, #96	; 0x60
   3aec8:	d009      	beq.n	3aede <is_fixed_type+0x18>
   3aeca:	2840      	cmp	r0, #64	; 0x40
   3aecc:	d009      	beq.n	3aee2 <is_fixed_type+0x1c>
   3aece:	2880      	cmp	r0, #128	; 0x80
   3aed0:	d009      	beq.n	3aee6 <is_fixed_type+0x20>
   3aed2:	28a0      	cmp	r0, #160	; 0xa0
   3aed4:	d001      	beq.n	3aeda <is_fixed_type+0x14>
   3aed6:	2001      	movs	r0, #1
}
   3aed8:	4770      	bx	lr
    return type != CborTextStringType && type != CborByteStringType && type != CborArrayType &&
   3aeda:	2000      	movs	r0, #0
   3aedc:	4770      	bx	lr
   3aede:	2000      	movs	r0, #0
   3aee0:	4770      	bx	lr
   3aee2:	2000      	movs	r0, #0
   3aee4:	4770      	bx	lr
   3aee6:	2000      	movs	r0, #0
   3aee8:	4770      	bx	lr

0003aeea <iterate_noop>:
}
   3aeea:	2001      	movs	r0, #1
   3aeec:	4770      	bx	lr

0003aeee <preparse_next_value>:
{
   3aeee:	b510      	push	{r4, lr}
   3aef0:	4604      	mov	r4, r0
    if (it->remaining != UINT32_MAX) {
   3aef2:	6880      	ldr	r0, [r0, #8]
   3aef4:	f1b0 3fff 	cmp.w	r0, #4294967295
   3aef8:	d00c      	beq.n	3af14 <preparse_next_value+0x26>
        if (it->type != CborTagType && !--it->remaining) {
   3aefa:	7ba2      	ldrb	r2, [r4, #14]
   3aefc:	2ac0      	cmp	r2, #192	; 0xc0
   3aefe:	d002      	beq.n	3af06 <preparse_next_value+0x18>
   3af00:	3801      	subs	r0, #1
   3af02:	60a0      	str	r0, [r4, #8]
   3af04:	b118      	cbz	r0, 3af0e <preparse_next_value+0x20>
    return preparse_value(it);
   3af06:	4620      	mov	r0, r4
   3af08:	f7f3 fbbe 	bl	2e688 <preparse_value>
}
   3af0c:	bd10      	pop	{r4, pc}
            it->type = CborInvalidType;
   3af0e:	23ff      	movs	r3, #255	; 0xff
   3af10:	73a3      	strb	r3, [r4, #14]
            return CborNoError;
   3af12:	e7fb      	b.n	3af0c <preparse_next_value+0x1e>
    } else if (it->remaining == UINT32_MAX && it->offset != it->parser->end &&
   3af14:	6861      	ldr	r1, [r4, #4]
   3af16:	6823      	ldr	r3, [r4, #0]
   3af18:	685a      	ldr	r2, [r3, #4]
   3af1a:	4291      	cmp	r1, r2
   3af1c:	d0f3      	beq.n	3af06 <preparse_next_value+0x18>
        it->parser->d->get8(it->parser->d, it->offset) == (uint8_t)BreakByte) {
   3af1e:	6818      	ldr	r0, [r3, #0]
   3af20:	6803      	ldr	r3, [r0, #0]
   3af22:	4798      	blx	r3
    } else if (it->remaining == UINT32_MAX && it->offset != it->parser->end &&
   3af24:	28ff      	cmp	r0, #255	; 0xff
   3af26:	d1ee      	bne.n	3af06 <preparse_next_value+0x18>
        ++it->offset;
   3af28:	6863      	ldr	r3, [r4, #4]
   3af2a:	3301      	adds	r3, #1
   3af2c:	6063      	str	r3, [r4, #4]
        it->type = CborInvalidType;
   3af2e:	23ff      	movs	r3, #255	; 0xff
   3af30:	73a3      	strb	r3, [r4, #14]
        it->remaining = 0;
   3af32:	2000      	movs	r0, #0
   3af34:	60a0      	str	r0, [r4, #8]
        return CborNoError;
   3af36:	e7e9      	b.n	3af0c <preparse_next_value+0x1e>

0003af38 <extract_length>:
{
   3af38:	e92d 41f0 	stmdb	sp!, {r4, r5, r6, r7, r8, lr}
   3af3c:	4605      	mov	r5, r0
   3af3e:	460e      	mov	r6, r1
   3af40:	4617      	mov	r7, r2
    uint8_t additional_information = p->d->get8(p->d, *offset) & SmallValueMask;
   3af42:	6800      	ldr	r0, [r0, #0]
   3af44:	6803      	ldr	r3, [r0, #0]
   3af46:	6809      	ldr	r1, [r1, #0]
   3af48:	4798      	blx	r3
   3af4a:	f000 041f 	and.w	r4, r0, #31
    ++*offset;
   3af4e:	6833      	ldr	r3, [r6, #0]
   3af50:	3301      	adds	r3, #1
   3af52:	6033      	str	r3, [r6, #0]
    if (additional_information < Value8Bit) {
   3af54:	2c17      	cmp	r4, #23
   3af56:	d91a      	bls.n	3af8e <extract_length+0x56>
    if (unlikely(additional_information > Value64Bit))
   3af58:	2c1b      	cmp	r4, #27
   3af5a:	d83a      	bhi.n	3afd2 <extract_length+0x9a>
    size_t bytesNeeded = (size_t)(1 << (additional_information - Value8Bit));
   3af5c:	3c18      	subs	r4, #24
   3af5e:	f04f 0801 	mov.w	r8, #1
   3af62:	fa08 f804 	lsl.w	r8, r8, r4
    if (unlikely(bytesNeeded > (size_t)(p->end - *offset))) {
   3af66:	686b      	ldr	r3, [r5, #4]
   3af68:	6831      	ldr	r1, [r6, #0]
   3af6a:	1a5b      	subs	r3, r3, r1
   3af6c:	4598      	cmp	r8, r3
   3af6e:	d835      	bhi.n	3afdc <extract_length+0xa4>
    } else if (bytesNeeded == 1) {
   3af70:	f1b8 0f01 	cmp.w	r8, #1
   3af74:	d00f      	beq.n	3af96 <extract_length+0x5e>
    } else if (bytesNeeded == 2) {
   3af76:	f1b8 0f02 	cmp.w	r8, #2
   3af7a:	d01e      	beq.n	3afba <extract_length+0x82>
    } else if (bytesNeeded == 4) {
   3af7c:	f1b8 0f04 	cmp.w	r8, #4
   3af80:	d021      	beq.n	3afc6 <extract_length+0x8e>
        *len =  p->d->get64(p->d, *offset);
   3af82:	6828      	ldr	r0, [r5, #0]
   3af84:	68c3      	ldr	r3, [r0, #12]
   3af86:	4798      	blx	r3
   3af88:	4604      	mov	r4, r0
   3af8a:	460d      	mov	r5, r1
   3af8c:	e008      	b.n	3afa0 <extract_length+0x68>
        *len = additional_information;
   3af8e:	b2e4      	uxtb	r4, r4
   3af90:	2500      	movs	r5, #0
        return CborNoError;
   3af92:	2000      	movs	r0, #0
   3af94:	e008      	b.n	3afa8 <extract_length+0x70>
        *len = p->d->get8(p->d, *offset);
   3af96:	6828      	ldr	r0, [r5, #0]
   3af98:	6803      	ldr	r3, [r0, #0]
   3af9a:	4798      	blx	r3
   3af9c:	4604      	mov	r4, r0
   3af9e:	2500      	movs	r5, #0
    *offset += bytesNeeded;
   3afa0:	6833      	ldr	r3, [r6, #0]
   3afa2:	4443      	add	r3, r8
   3afa4:	6033      	str	r3, [r6, #0]
    return CborNoError;
   3afa6:	2000      	movs	r0, #0
    if (err) {
   3afa8:	b9e8      	cbnz	r0, 3afe6 <extract_length+0xae>
    *len = v;
   3afaa:	603c      	str	r4, [r7, #0]
    if (v != *len)
   3afac:	2300      	movs	r3, #0
   3afae:	42ab      	cmp	r3, r5
   3afb0:	bf08      	it	eq
   3afb2:	42a4      	cmpeq	r4, r4
   3afb4:	d11a      	bne.n	3afec <extract_length+0xb4>
}
   3afb6:	e8bd 81f0 	ldmia.w	sp!, {r4, r5, r6, r7, r8, pc}
        *len =  p->d->get16(p->d, *offset);
   3afba:	6828      	ldr	r0, [r5, #0]
   3afbc:	6843      	ldr	r3, [r0, #4]
   3afbe:	4798      	blx	r3
   3afc0:	4604      	mov	r4, r0
   3afc2:	2500      	movs	r5, #0
   3afc4:	e7ec      	b.n	3afa0 <extract_length+0x68>
        *len =  p->d->get32(p->d, *offset);
   3afc6:	6828      	ldr	r0, [r5, #0]
   3afc8:	6883      	ldr	r3, [r0, #8]
   3afca:	4798      	blx	r3
   3afcc:	4604      	mov	r4, r0
   3afce:	2500      	movs	r5, #0
   3afd0:	e7e6      	b.n	3afa0 <extract_length+0x68>
    *len = 1;
   3afd2:	2401      	movs	r4, #1
   3afd4:	2500      	movs	r5, #0
        return CborErrorIllegalNumber;
   3afd6:	f240 1005 	movw	r0, #261	; 0x105
   3afda:	e7e5      	b.n	3afa8 <extract_length+0x70>
    *len = 1;
   3afdc:	2401      	movs	r4, #1
   3afde:	2500      	movs	r5, #0
        return CborErrorUnexpectedEOF;
   3afe0:	f240 1001 	movw	r0, #257	; 0x101
   3afe4:	e7e0      	b.n	3afa8 <extract_length+0x70>
        *len = 0;
   3afe6:	2300      	movs	r3, #0
   3afe8:	603b      	str	r3, [r7, #0]
        return err;
   3afea:	e7e4      	b.n	3afb6 <extract_length+0x7e>
        return CborErrorDataTooLarge;
   3afec:	f44f 6080 	mov.w	r0, #1024	; 0x400
   3aff0:	e7e1      	b.n	3afb6 <extract_length+0x7e>

0003aff2 <cbor_parser_init>:
{
   3aff2:	b5f8      	push	{r3, r4, r5, r6, r7, lr}
   3aff4:	4606      	mov	r6, r0
   3aff6:	460f      	mov	r7, r1
   3aff8:	4614      	mov	r4, r2
   3affa:	461d      	mov	r5, r3
    memset(parser, 0, sizeof(*parser));
   3affc:	220c      	movs	r2, #12
   3affe:	2100      	movs	r1, #0
   3b000:	4620      	mov	r0, r4
   3b002:	f7fa fd9f 	bl	35b44 <memset>
    parser->d = d;
   3b006:	6026      	str	r6, [r4, #0]
    parser->end = d->message_size;
   3b008:	69b3      	ldr	r3, [r6, #24]
   3b00a:	6063      	str	r3, [r4, #4]
    parser->flags = flags;
   3b00c:	60a7      	str	r7, [r4, #8]
    it->parser = parser;
   3b00e:	602c      	str	r4, [r5, #0]
    it->offset = 0;
   3b010:	2300      	movs	r3, #0
   3b012:	606b      	str	r3, [r5, #4]
    it->remaining = 1;/* there's one type altogether, usually an array or map */
   3b014:	2301      	movs	r3, #1
   3b016:	60ab      	str	r3, [r5, #8]
    return preparse_value(it);
   3b018:	4628      	mov	r0, r5
   3b01a:	f7f3 fb35 	bl	2e688 <preparse_value>
}
   3b01e:	bdf8      	pop	{r3, r4, r5, r6, r7, pc}

0003b020 <advance_recursive>:
{
   3b020:	b570      	push	{r4, r5, r6, lr}
   3b022:	b086      	sub	sp, #24
   3b024:	4604      	mov	r4, r0
   3b026:	460d      	mov	r5, r1
    if (is_fixed_type(it->type))
   3b028:	7b86      	ldrb	r6, [r0, #14]
   3b02a:	4630      	mov	r0, r6
   3b02c:	f7ff ff4b 	bl	3aec6 <is_fixed_type>
   3b030:	b9c0      	cbnz	r0, 3b064 <advance_recursive+0x44>
{ return it->type == CborArrayType || it->type == CborMapType; }
   3b032:	2e80      	cmp	r6, #128	; 0x80
   3b034:	d01f      	beq.n	3b076 <advance_recursive+0x56>
   3b036:	2ea0      	cmp	r6, #160	; 0xa0
   3b038:	d01b      	beq.n	3b072 <advance_recursive+0x52>
   3b03a:	2300      	movs	r3, #0
    if (!cbor_value_is_container(it)) {
   3b03c:	b1eb      	cbz	r3, 3b07a <advance_recursive+0x5a>
    if (nestingLevel == CBOR_PARSER_MAX_RECURSIONS)
   3b03e:	f5b5 6f80 	cmp.w	r5, #1024	; 0x400
   3b042:	d02b      	beq.n	3b09c <advance_recursive+0x7c>
    err = cbor_value_enter_container(it, &recursed);
   3b044:	a902      	add	r1, sp, #8
   3b046:	4620      	mov	r0, r4
   3b048:	f7f3 fd58 	bl	2eafc <cbor_value_enter_container>
    if (err)
   3b04c:	4603      	mov	r3, r0
   3b04e:	b968      	cbnz	r0, 3b06c <advance_recursive+0x4c>
{ return it->remaining == 0; }
   3b050:	9b04      	ldr	r3, [sp, #16]
    while (!cbor_value_at_end(&recursed)) {
   3b052:	b1eb      	cbz	r3, 3b090 <advance_recursive+0x70>
        err = advance_recursive(&recursed, nestingLevel + 1);
   3b054:	1c69      	adds	r1, r5, #1
   3b056:	a802      	add	r0, sp, #8
   3b058:	f7ff ffe2 	bl	3b020 <advance_recursive>
        if (err)
   3b05c:	4603      	mov	r3, r0
   3b05e:	2800      	cmp	r0, #0
   3b060:	d0f6      	beq.n	3b050 <advance_recursive+0x30>
   3b062:	e003      	b.n	3b06c <advance_recursive+0x4c>
        return advance_internal(it);
   3b064:	4620      	mov	r0, r4
   3b066:	f7f3 fc77 	bl	2e958 <advance_internal>
   3b06a:	4603      	mov	r3, r0
}
   3b06c:	4618      	mov	r0, r3
   3b06e:	b006      	add	sp, #24
   3b070:	bd70      	pop	{r4, r5, r6, pc}
{ return it->type == CborArrayType || it->type == CborMapType; }
   3b072:	2301      	movs	r3, #1
   3b074:	e7e2      	b.n	3b03c <advance_recursive+0x1c>
   3b076:	2301      	movs	r3, #1
   3b078:	e7e0      	b.n	3b03c <advance_recursive+0x1c>
        size_t len = SIZE_MAX;
   3b07a:	f04f 33ff 	mov.w	r3, #4294967295
   3b07e:	9301      	str	r3, [sp, #4]
        return _cbor_value_copy_string(it, NULL, &len, it);
   3b080:	4623      	mov	r3, r4
   3b082:	aa01      	add	r2, sp, #4
   3b084:	2100      	movs	r1, #0
   3b086:	4620      	mov	r0, r4
   3b088:	f7f3 fe28 	bl	2ecdc <_cbor_value_copy_string>
   3b08c:	4603      	mov	r3, r0
   3b08e:	e7ed      	b.n	3b06c <advance_recursive+0x4c>
    return cbor_value_leave_container(it, &recursed);
   3b090:	a902      	add	r1, sp, #8
   3b092:	4620      	mov	r0, r4
   3b094:	f7f3 fdec 	bl	2ec70 <cbor_value_leave_container>
   3b098:	4603      	mov	r3, r0
   3b09a:	e7e7      	b.n	3b06c <advance_recursive+0x4c>
        return CborErrorNestingTooDeep;
   3b09c:	f240 4301 	movw	r3, #1025	; 0x401
   3b0a0:	e7e4      	b.n	3b06c <advance_recursive+0x4c>

0003b0a2 <cbor_value_calculate_string_length>:
{
   3b0a2:	b508      	push	{r3, lr}
   3b0a4:	460a      	mov	r2, r1
    *len = SIZE_MAX;
   3b0a6:	f04f 33ff 	mov.w	r3, #4294967295
   3b0aa:	600b      	str	r3, [r1, #0]
    return _cbor_value_copy_string(value, NULL, len, NULL);
   3b0ac:	2300      	movs	r3, #0
   3b0ae:	4619      	mov	r1, r3
   3b0b0:	f7f3 fe14 	bl	2ecdc <_cbor_value_copy_string>
}
   3b0b4:	bd08      	pop	{r3, pc}

0003b0b6 <z_device_ready>:
{
	/*
	 * if an invalid device pointer is passed as argument, this call
	 * reports the `device` as not ready for usage.
	 */
	if (dev == NULL) {
   3b0b6:	b148      	cbz	r0, 3b0cc <z_device_ready+0x16>
		return false;
	}

	return dev->state->initialized && (dev->state->init_res == 0U);
   3b0b8:	68c3      	ldr	r3, [r0, #12]
   3b0ba:	8818      	ldrh	r0, [r3, #0]
   3b0bc:	f3c0 0008 	ubfx	r0, r0, #0, #9
   3b0c0:	f5b0 7f80 	cmp.w	r0, #256	; 0x100
   3b0c4:	bf14      	ite	ne
   3b0c6:	2000      	movne	r0, #0
   3b0c8:	2001      	moveq	r0, #1
   3b0ca:	4770      	bx	lr
		return false;
   3b0cc:	2000      	movs	r0, #0
}
   3b0ce:	4770      	bx	lr

0003b0d0 <k_heap_init>:
{
   3b0d0:	b510      	push	{r4, lr}
	sys_dlist_init(&w->waitq);
   3b0d2:	f100 040c 	add.w	r4, r0, #12
	list->head = (sys_dnode_t *)list;
   3b0d6:	60c4      	str	r4, [r0, #12]
	list->tail = (sys_dnode_t *)list;
   3b0d8:	6104      	str	r4, [r0, #16]
	sys_heap_init(&h->heap, mem, bytes);
   3b0da:	f7e1 fdf5 	bl	1ccc8 <sys_heap_init>
}
   3b0de:	bd10      	pop	{r4, pc}

0003b0e0 <create_free_list>:
	CHECKIF(((slab->block_size | (uintptr_t)slab->buffer) &
   3b0e0:	6902      	ldr	r2, [r0, #16]
   3b0e2:	6943      	ldr	r3, [r0, #20]
   3b0e4:	431a      	orrs	r2, r3
   3b0e6:	f012 0203 	ands.w	r2, r2, #3
   3b0ea:	d10d      	bne.n	3b108 <create_free_list+0x28>
	slab->free_list = NULL;
   3b0ec:	2100      	movs	r1, #0
   3b0ee:	6181      	str	r1, [r0, #24]
	for (j = 0U; j < slab->num_blocks; j++) {
   3b0f0:	e005      	b.n	3b0fe <create_free_list+0x1e>
		*(char **)p = slab->free_list;
   3b0f2:	6981      	ldr	r1, [r0, #24]
   3b0f4:	6019      	str	r1, [r3, #0]
		slab->free_list = p;
   3b0f6:	6183      	str	r3, [r0, #24]
		p += slab->block_size;
   3b0f8:	6901      	ldr	r1, [r0, #16]
   3b0fa:	440b      	add	r3, r1
	for (j = 0U; j < slab->num_blocks; j++) {
   3b0fc:	3201      	adds	r2, #1
   3b0fe:	68c1      	ldr	r1, [r0, #12]
   3b100:	4291      	cmp	r1, r2
   3b102:	d8f6      	bhi.n	3b0f2 <create_free_list+0x12>
	return 0;
   3b104:	2000      	movs	r0, #0
   3b106:	4770      	bx	lr
		return -EINVAL;
   3b108:	f06f 0015 	mvn.w	r0, #21
}
   3b10c:	4770      	bx	lr

0003b10e <setup_thread_stack>:
{
   3b10e:	b410      	push	{r4}
		stack_obj_size = Z_KERNEL_STACK_SIZE_ADJUST(stack_size);
   3b110:	3207      	adds	r2, #7
   3b112:	f022 0207 	bic.w	r2, r2, #7
   3b116:	f102 0320 	add.w	r3, r2, #32

/** @} */

static inline char *Z_KERNEL_STACK_BUFFER(k_thread_stack_t *sym)
{
	return (char *)sym + K_KERNEL_STACK_RESERVED;
   3b11a:	f101 0420 	add.w	r4, r1, #32
	new_thread->stack_info.start = (uintptr_t)stack_buf_start;
   3b11e:	f8c0 409c 	str.w	r4, [r0, #156]	; 0x9c
	new_thread->stack_info.size = stack_buf_size;
   3b122:	f8c0 20a0 	str.w	r2, [r0, #160]	; 0xa0
	new_thread->stack_info.delta = delta;
   3b126:	2200      	movs	r2, #0
   3b128:	f8c0 20a4 	str.w	r2, [r0, #164]	; 0xa4
}
   3b12c:	18c8      	adds	r0, r1, r3
   3b12e:	bc10      	pop	{r4}
   3b130:	4770      	bx	lr

0003b132 <k_is_in_isr>:
  __ASM volatile ("MRS %0, ipsr" : "=r" (result) );
   3b132:	f3ef 8005 	mrs	r0, IPSR
}
   3b136:	3800      	subs	r0, #0
   3b138:	bf18      	it	ne
   3b13a:	2001      	movne	r0, #1
   3b13c:	4770      	bx	lr

0003b13e <k_thread_name_get>:
}
   3b13e:	3078      	adds	r0, #120	; 0x78
   3b140:	4770      	bx	lr

0003b142 <z_impl_k_thread_start>:
{
   3b142:	b508      	push	{r3, lr}
	z_sched_start(thread);
   3b144:	f7f6 f890 	bl	31268 <z_sched_start>
}
   3b148:	bd08      	pop	{r3, pc}

0003b14a <z_init_thread_base>:
{
   3b14a:	b410      	push	{r4}
	thread_base->pended_on = NULL;
   3b14c:	2400      	movs	r4, #0
   3b14e:	6084      	str	r4, [r0, #8]
	thread_base->user_options = (uint8_t)options;
   3b150:	7303      	strb	r3, [r0, #12]
	thread_base->thread_state = (uint8_t)initial_state;
   3b152:	7342      	strb	r2, [r0, #13]
	thread_base->prio = priority;
   3b154:	7381      	strb	r1, [r0, #14]
	thread_base->sched_locked = 0U;
   3b156:	73c4      	strb	r4, [r0, #15]
	node->next = NULL;
   3b158:	6184      	str	r4, [r0, #24]
	node->prev = NULL;
   3b15a:	61c4      	str	r4, [r0, #28]
}
   3b15c:	bc10      	pop	{r4}
   3b15e:	4770      	bx	lr

0003b160 <z_pm_save_idle_exit>:
{
   3b160:	b508      	push	{r3, lr}
	pm_system_resume();
   3b162:	f7e3 fa6b 	bl	1e63c <pm_system_resume>
	sys_clock_idle_exit();
   3b166:	f7fe fb23 	bl	397b0 <sys_clock_idle_exit>
}
   3b16a:	bd08      	pop	{r3, pc}

0003b16c <new_prio_for_inheritance>:
	int new_prio = z_is_prio_higher(target, limit) ? target : limit;
   3b16c:	4288      	cmp	r0, r1
   3b16e:	da00      	bge.n	3b172 <new_prio_for_inheritance+0x6>
   3b170:	4601      	mov	r1, r0
	return z_is_under_prio_ceiling(prio) ? prio : CONFIG_PRIORITY_CEILING;
   3b172:	f111 0f7f 	cmn.w	r1, #127	; 0x7f
   3b176:	db01      	blt.n	3b17c <new_prio_for_inheritance+0x10>
   3b178:	4608      	mov	r0, r1
   3b17a:	4770      	bx	lr
   3b17c:	f06f 007e 	mvn.w	r0, #126	; 0x7e
}
   3b180:	4770      	bx	lr

0003b182 <adjust_owner_prio>:
{
   3b182:	b508      	push	{r3, lr}
	if (mutex->owner->base.prio != new_prio) {
   3b184:	6880      	ldr	r0, [r0, #8]
   3b186:	f990 300e 	ldrsb.w	r3, [r0, #14]
   3b18a:	428b      	cmp	r3, r1
   3b18c:	d101      	bne.n	3b192 <adjust_owner_prio+0x10>
	return false;
   3b18e:	2000      	movs	r0, #0
}
   3b190:	bd08      	pop	{r3, pc}
		return z_set_prio(mutex->owner, new_prio);
   3b192:	f7f6 f9d9 	bl	31548 <z_set_prio>
   3b196:	e7fb      	b.n	3b190 <adjust_owner_prio+0xe>

0003b198 <z_impl_k_mutex_init>:
{
   3b198:	4603      	mov	r3, r0
	mutex->owner = NULL;
   3b19a:	2000      	movs	r0, #0
   3b19c:	6098      	str	r0, [r3, #8]
	mutex->lock_count = 0U;
   3b19e:	60d8      	str	r0, [r3, #12]
	list->head = (sys_dnode_t *)list;
   3b1a0:	601b      	str	r3, [r3, #0]
	list->tail = (sys_dnode_t *)list;
   3b1a2:	605b      	str	r3, [r3, #4]
}
   3b1a4:	4770      	bx	lr

0003b1a6 <prepare_thread_to_run>:
{
   3b1a6:	b508      	push	{r3, lr}
   3b1a8:	2200      	movs	r2, #0
   3b1aa:	f8c0 20b0 	str.w	r2, [r0, #176]	; 0xb0
   3b1ae:	6141      	str	r1, [r0, #20]
	z_ready_thread(thread);
   3b1b0:	f7f6 f816 	bl	311e0 <z_ready_thread>
}
   3b1b4:	bd08      	pop	{r3, pc}

0003b1b6 <z_queue_node_peek>:
	if ((node != NULL) && (sys_sfnode_flags_get(node) != (uint8_t)0)) {
   3b1b6:	b160      	cbz	r0, 3b1d2 <z_queue_node_peek+0x1c>
	return node->next_and_flags & SYS_SFLIST_FLAGS_MASK;
   3b1b8:	6803      	ldr	r3, [r0, #0]
   3b1ba:	f013 0f03 	tst.w	r3, #3
   3b1be:	d008      	beq.n	3b1d2 <z_queue_node_peek+0x1c>
{
   3b1c0:	b510      	push	{r4, lr}
		ret = anode->data;
   3b1c2:	6844      	ldr	r4, [r0, #4]
		if (needs_free) {
   3b1c4:	b909      	cbnz	r1, 3b1ca <z_queue_node_peek+0x14>
		ret = anode->data;
   3b1c6:	4620      	mov	r0, r4
}
   3b1c8:	bd10      	pop	{r4, pc}
			k_free(anode);
   3b1ca:	f000 f962 	bl	3b492 <k_free>
		ret = anode->data;
   3b1ce:	4620      	mov	r0, r4
   3b1d0:	e7fa      	b.n	3b1c8 <z_queue_node_peek+0x12>
}
   3b1d2:	4770      	bx	lr

0003b1d4 <z_impl_k_queue_init>:
	list->head = NULL;
   3b1d4:	2300      	movs	r3, #0
   3b1d6:	6003      	str	r3, [r0, #0]
	list->tail = NULL;
   3b1d8:	6043      	str	r3, [r0, #4]
	queue->lock = (struct k_spinlock) {};
   3b1da:	6083      	str	r3, [r0, #8]
   3b1dc:	f100 030c 	add.w	r3, r0, #12
	list->head = (sys_dnode_t *)list;
   3b1e0:	60c3      	str	r3, [r0, #12]
	list->tail = (sys_dnode_t *)list;
   3b1e2:	6103      	str	r3, [r0, #16]
	sys_dlist_init(&queue->poll_events);
   3b1e4:	f100 0314 	add.w	r3, r0, #20
	list->head = (sys_dnode_t *)list;
   3b1e8:	6143      	str	r3, [r0, #20]
	list->tail = (sys_dnode_t *)list;
   3b1ea:	6183      	str	r3, [r0, #24]
}
   3b1ec:	4770      	bx	lr

0003b1ee <k_queue_append>:
{
   3b1ee:	b500      	push	{lr}
   3b1f0:	b083      	sub	sp, #12
   3b1f2:	460a      	mov	r2, r1
	(void)queue_insert(queue, NULL, data, false, true);
   3b1f4:	2301      	movs	r3, #1
   3b1f6:	9300      	str	r3, [sp, #0]
   3b1f8:	2300      	movs	r3, #0
   3b1fa:	4619      	mov	r1, r3
   3b1fc:	f7f4 fd30 	bl	2fc60 <queue_insert>
}
   3b200:	b003      	add	sp, #12
   3b202:	f85d fb04 	ldr.w	pc, [sp], #4

0003b206 <k_queue_prepend>:
{
   3b206:	b500      	push	{lr}
   3b208:	b083      	sub	sp, #12
   3b20a:	460a      	mov	r2, r1
	(void)queue_insert(queue, NULL, data, false, false);
   3b20c:	2100      	movs	r1, #0
   3b20e:	9100      	str	r1, [sp, #0]
   3b210:	460b      	mov	r3, r1
   3b212:	f7f4 fd25 	bl	2fc60 <queue_insert>
}
   3b216:	b003      	add	sp, #12
   3b218:	f85d fb04 	ldr.w	pc, [sp], #4

0003b21c <z_impl_k_sem_init>:
	CHECKIF(limit == 0U || limit > K_SEM_MAX_LIMIT || initial_count > limit) {
   3b21c:	b15a      	cbz	r2, 3b236 <z_impl_k_sem_init+0x1a>
   3b21e:	428a      	cmp	r2, r1
   3b220:	d30c      	bcc.n	3b23c <z_impl_k_sem_init+0x20>
	sem->count = initial_count;
   3b222:	6081      	str	r1, [r0, #8]
	sem->limit = limit;
   3b224:	60c2      	str	r2, [r0, #12]
	list->head = (sys_dnode_t *)list;
   3b226:	6000      	str	r0, [r0, #0]
	list->tail = (sys_dnode_t *)list;
   3b228:	6040      	str	r0, [r0, #4]
	sys_dlist_init(&sem->poll_events);
   3b22a:	f100 0310 	add.w	r3, r0, #16
	list->head = (sys_dnode_t *)list;
   3b22e:	6103      	str	r3, [r0, #16]
	list->tail = (sys_dnode_t *)list;
   3b230:	6143      	str	r3, [r0, #20]
	return 0;
   3b232:	2000      	movs	r0, #0
   3b234:	4770      	bx	lr
		return -EINVAL;
   3b236:	f06f 0015 	mvn.w	r0, #21
   3b23a:	4770      	bx	lr
   3b23c:	f06f 0015 	mvn.w	r0, #21
}
   3b240:	4770      	bx	lr

0003b242 <cancel_async_locked>:
{
   3b242:	4603      	mov	r3, r0
	return (*flagp & BIT(bit)) != 0U;
   3b244:	68c2      	ldr	r2, [r0, #12]
	if (!flag_test(&work->flags, K_WORK_CANCELING_BIT)) {
   3b246:	f012 0f02 	tst.w	r2, #2
   3b24a:	d009      	beq.n	3b260 <cancel_async_locked+0x1e>
	return *flagp;
   3b24c:	68c2      	ldr	r2, [r0, #12]
	if (ret != 0) {
   3b24e:	f012 000f 	ands.w	r0, r2, #15
   3b252:	d037      	beq.n	3b2c4 <cancel_async_locked+0x82>
	*flagp |= BIT(bit);
   3b254:	f042 0202 	orr.w	r2, r2, #2
   3b258:	60da      	str	r2, [r3, #12]
	return flags_get(&work->flags) & K_WORK_MASK;
   3b25a:	f002 000f 	and.w	r0, r2, #15
	return ret;
   3b25e:	4770      	bx	lr
{
   3b260:	b410      	push	{r4}
		queue_remove_locked(work->queue, work);
   3b262:	6884      	ldr	r4, [r0, #8]
	*flagp &= ~BIT(bit);
   3b264:	f022 0104 	bic.w	r1, r2, #4
   3b268:	60c1      	str	r1, [r0, #12]
	if (flag_test_and_clear(&work->flags, K_WORK_QUEUED_BIT)) {
   3b26a:	f012 0f04 	tst.w	r2, #4
   3b26e:	d011      	beq.n	3b294 <cancel_async_locked+0x52>
   3b270:	f8d4 20b8 	ldr.w	r2, [r4, #184]	; 0xb8
Z_GENLIST_FIND_AND_REMOVE(slist, snode)
   3b274:	2100      	movs	r1, #0
   3b276:	b16a      	cbz	r2, 3b294 <cancel_async_locked+0x52>
   3b278:	4290      	cmp	r0, r2
   3b27a:	d002      	beq.n	3b282 <cancel_async_locked+0x40>
   3b27c:	4611      	mov	r1, r2
   3b27e:	6812      	ldr	r2, [r2, #0]
   3b280:	e7f9      	b.n	3b276 <cancel_async_locked+0x34>
Z_GENLIST_REMOVE(slist, snode)
   3b282:	b191      	cbz	r1, 3b2aa <cancel_async_locked+0x68>
	return node->next;
   3b284:	681a      	ldr	r2, [r3, #0]
	parent->next = child;
   3b286:	600a      	str	r2, [r1, #0]
	return list->tail;
   3b288:	f8d4 20bc 	ldr.w	r2, [r4, #188]	; 0xbc
Z_GENLIST_REMOVE(slist, snode)
   3b28c:	4293      	cmp	r3, r2
   3b28e:	d016      	beq.n	3b2be <cancel_async_locked+0x7c>
	parent->next = child;
   3b290:	2200      	movs	r2, #0
   3b292:	601a      	str	r2, [r3, #0]
	return *flagp;
   3b294:	68da      	ldr	r2, [r3, #12]
	if (ret != 0) {
   3b296:	f012 000f 	ands.w	r0, r2, #15
   3b29a:	d004      	beq.n	3b2a6 <cancel_async_locked+0x64>
	*flagp |= BIT(bit);
   3b29c:	f042 0202 	orr.w	r2, r2, #2
   3b2a0:	60da      	str	r2, [r3, #12]
	return flags_get(&work->flags) & K_WORK_MASK;
   3b2a2:	f002 000f 	and.w	r0, r2, #15
}
   3b2a6:	bc10      	pop	{r4}
   3b2a8:	4770      	bx	lr
	return node->next;
   3b2aa:	681a      	ldr	r2, [r3, #0]
	list->head = node;
   3b2ac:	f8c4 20b8 	str.w	r2, [r4, #184]	; 0xb8
	return list->tail;
   3b2b0:	f8d4 10bc 	ldr.w	r1, [r4, #188]	; 0xbc
Z_GENLIST_REMOVE(slist, snode)
   3b2b4:	428b      	cmp	r3, r1
   3b2b6:	d1eb      	bne.n	3b290 <cancel_async_locked+0x4e>
	list->tail = node;
   3b2b8:	f8c4 20bc 	str.w	r2, [r4, #188]	; 0xbc
}
   3b2bc:	e7e8      	b.n	3b290 <cancel_async_locked+0x4e>
	list->tail = node;
   3b2be:	f8c4 10bc 	str.w	r1, [r4, #188]	; 0xbc
}
   3b2c2:	e7e5      	b.n	3b290 <cancel_async_locked+0x4e>
   3b2c4:	4770      	bx	lr

0003b2c6 <cancel_delayable_async_locked>:
{
   3b2c6:	b510      	push	{r4, lr}
   3b2c8:	4604      	mov	r4, r0
	return (*flagp & BIT(bit)) != 0U;
   3b2ca:	68c3      	ldr	r3, [r0, #12]
	*flagp &= ~BIT(bit);
   3b2cc:	f023 0208 	bic.w	r2, r3, #8
   3b2d0:	60c2      	str	r2, [r0, #12]
	if (flag_test_and_clear(&work->flags, K_WORK_DELAYED_BIT)) {
   3b2d2:	f013 0f08 	tst.w	r3, #8
   3b2d6:	d103      	bne.n	3b2e0 <cancel_delayable_async_locked+0x1a>
	return cancel_async_locked(&dwork->work);
   3b2d8:	4620      	mov	r0, r4
   3b2da:	f7ff ffb2 	bl	3b242 <cancel_async_locked>
}
   3b2de:	bd10      	pop	{r4, pc}
		z_abort_timeout(&dwork->timeout);
   3b2e0:	3010      	adds	r0, #16
   3b2e2:	f7f6 ff1b 	bl	3211c <z_abort_timeout>
		ret = true;
   3b2e6:	e7f7      	b.n	3b2d8 <cancel_delayable_async_locked+0x12>

0003b2e8 <thread_active_elsewhere>:
}
   3b2e8:	2000      	movs	r0, #0
   3b2ea:	4770      	bx	lr

0003b2ec <z_sched_prio_cmp>:
	int32_t b1 = thread_1->base.prio;
   3b2ec:	f990 300e 	ldrsb.w	r3, [r0, #14]
	int32_t b2 = thread_2->base.prio;
   3b2f0:	f991 000e 	ldrsb.w	r0, [r1, #14]
	if (b1 != b2) {
   3b2f4:	4283      	cmp	r3, r0
   3b2f6:	d001      	beq.n	3b2fc <z_sched_prio_cmp+0x10>
		return b2 - b1;
   3b2f8:	1ac0      	subs	r0, r0, r3
   3b2fa:	4770      	bx	lr
	return 0;
   3b2fc:	2000      	movs	r0, #0
}
   3b2fe:	4770      	bx	lr

0003b300 <z_reschedule_irqlock>:
{
   3b300:	b508      	push	{r3, lr}
	return arch_irq_unlocked(key) && !arch_is_in_isr();
   3b302:	4603      	mov	r3, r0
   3b304:	b920      	cbnz	r0, 3b310 <z_reschedule_irqlock+0x10>
   3b306:	f3ef 8205 	mrs	r2, IPSR
   3b30a:	b942      	cbnz	r2, 3b31e <z_reschedule_irqlock+0x1e>
   3b30c:	2201      	movs	r2, #1
   3b30e:	e000      	b.n	3b312 <z_reschedule_irqlock+0x12>
   3b310:	2200      	movs	r2, #0
	if (resched(key)) {
   3b312:	b932      	cbnz	r2, 3b322 <z_reschedule_irqlock+0x22>
   3b314:	f383 8811 	msr	BASEPRI, r3
   3b318:	f3bf 8f6f 	isb	sy
}
   3b31c:	bd08      	pop	{r3, pc}
	return arch_irq_unlocked(key) && !arch_is_in_isr();
   3b31e:	2200      	movs	r2, #0
   3b320:	e7f7      	b.n	3b312 <z_reschedule_irqlock+0x12>
   3b322:	4618      	mov	r0, r3
   3b324:	f7e4 f8bc 	bl	1f4a0 <arch_swap>
	return ret;
   3b328:	e7f8      	b.n	3b31c <z_reschedule_irqlock+0x1c>

0003b32a <z_priq_dumb_best>:
{
   3b32a:	4603      	mov	r3, r0
	return list->head == list;
   3b32c:	6800      	ldr	r0, [r0, #0]
	return sys_dlist_is_empty(list) ? NULL : list->head;
   3b32e:	4283      	cmp	r3, r0
   3b330:	d000      	beq.n	3b334 <z_priq_dumb_best+0xa>
}
   3b332:	4770      	bx	lr
	struct k_thread *thread = NULL;
   3b334:	2000      	movs	r0, #0
	return thread;
   3b336:	e7fc      	b.n	3b332 <z_priq_dumb_best+0x8>

0003b338 <z_unpend_all>:
{
   3b338:	b538      	push	{r3, r4, r5, lr}
   3b33a:	4605      	mov	r5, r0
	int need_sched = 0;
   3b33c:	2000      	movs	r0, #0
	while ((thread = z_waitq_head(wait_q)) != NULL) {
   3b33e:	e006      	b.n	3b34e <z_unpend_all+0x16>
		z_unpend_thread(thread);
   3b340:	4620      	mov	r0, r4
   3b342:	f7f5 fd99 	bl	30e78 <z_unpend_thread>
		z_ready_thread(thread);
   3b346:	4620      	mov	r0, r4
   3b348:	f7f5 ff4a 	bl	311e0 <z_ready_thread>
		need_sched = 1;
   3b34c:	2001      	movs	r0, #1
	return list->head == list;
   3b34e:	682c      	ldr	r4, [r5, #0]
	return sys_dlist_is_empty(list) ? NULL : list->head;
   3b350:	42a5      	cmp	r5, r4
   3b352:	d001      	beq.n	3b358 <z_unpend_all+0x20>
	while ((thread = z_waitq_head(wait_q)) != NULL) {
   3b354:	2c00      	cmp	r4, #0
   3b356:	d1f3      	bne.n	3b340 <z_unpend_all+0x8>
}
   3b358:	bd38      	pop	{r3, r4, r5, pc}

0003b35a <remove_timeout>:
{
   3b35a:	b538      	push	{r3, r4, r5, lr}
   3b35c:	4604      	mov	r4, r0
	if (next(t) != NULL) {
   3b35e:	f7f6 fdbb 	bl	31ed8 <next>
   3b362:	b148      	cbz	r0, 3b378 <remove_timeout+0x1e>
   3b364:	4602      	mov	r2, r0
		next(t)->dticks += t->dticks;
   3b366:	6920      	ldr	r0, [r4, #16]
   3b368:	6965      	ldr	r5, [r4, #20]
   3b36a:	6913      	ldr	r3, [r2, #16]
   3b36c:	6951      	ldr	r1, [r2, #20]
   3b36e:	181b      	adds	r3, r3, r0
   3b370:	eb45 0101 	adc.w	r1, r5, r1
   3b374:	6113      	str	r3, [r2, #16]
   3b376:	6151      	str	r1, [r2, #20]
	sys_dnode_t *const prev = node->prev;
   3b378:	6862      	ldr	r2, [r4, #4]
	sys_dnode_t *const next = node->next;
   3b37a:	6823      	ldr	r3, [r4, #0]
	prev->next = next;
   3b37c:	6013      	str	r3, [r2, #0]
	next->prev = prev;
   3b37e:	605a      	str	r2, [r3, #4]
	node->next = NULL;
   3b380:	2300      	movs	r3, #0
   3b382:	6023      	str	r3, [r4, #0]
	node->prev = NULL;
   3b384:	6063      	str	r3, [r4, #4]
}
   3b386:	bd38      	pop	{r3, r4, r5, pc}

0003b388 <sys_clock_tick_get_32>:

uint32_t sys_clock_tick_get_32(void)
{
   3b388:	b508      	push	{r3, lr}
#ifdef CONFIG_TICKLESS_KERNEL
	return (uint32_t)sys_clock_tick_get();
   3b38a:	f7f7 f84f 	bl	3242c <sys_clock_tick_get>
#else
	return (uint32_t)curr_tick;
#endif
}
   3b38e:	bd08      	pop	{r3, pc}

0003b390 <z_impl_k_busy_wait>:
#endif

void z_impl_k_busy_wait(uint32_t usec_to_wait)
{
	SYS_PORT_TRACING_FUNC_ENTER(k_thread, busy_wait, usec_to_wait);
	if (usec_to_wait == 0U) {
   3b390:	b900      	cbnz	r0, 3b394 <z_impl_k_busy_wait+0x4>
   3b392:	4770      	bx	lr
{
   3b394:	b508      	push	{r3, lr}
		if ((current_cycles - start_cycles) >= cycles_to_wait) {
			break;
		}
	}
#else
	arch_busy_wait(usec_to_wait);
   3b396:	f7e4 fdd9 	bl	1ff4c <arch_busy_wait>
#endif /* CONFIG_ARCH_HAS_CUSTOM_BUSY_WAIT */
	SYS_PORT_TRACING_FUNC_EXIT(k_thread, busy_wait, usec_to_wait);
}
   3b39a:	bd08      	pop	{r3, pc}

0003b39c <sys_clock_timeout_end_calc>:
 * timeout object.  When used correctly, this should be called once,
 * synchronously with the user passing a new timeout value.  It should
 * not be used iteratively to adjust a timeout.
 */
uint64_t sys_clock_timeout_end_calc(k_timeout_t timeout)
{
   3b39c:	b538      	push	{r3, r4, r5, lr}
	k_ticks_t dt;

	if (K_TIMEOUT_EQ(timeout, K_FOREVER)) {
   3b39e:	f1b1 3fff 	cmp.w	r1, #4294967295
   3b3a2:	bf08      	it	eq
   3b3a4:	f1b0 3fff 	cmpeq.w	r0, #4294967295
   3b3a8:	d024      	beq.n	3b3f4 <sys_clock_timeout_end_calc+0x58>
   3b3aa:	4604      	mov	r4, r0
   3b3ac:	460d      	mov	r5, r1
		return UINT64_MAX;
	} else if (K_TIMEOUT_EQ(timeout, K_NO_WAIT)) {
   3b3ae:	ea54 0105 	orrs.w	r1, r4, r5
   3b3b2:	d00d      	beq.n	3b3d0 <sys_clock_timeout_end_calc+0x34>
		return sys_clock_tick_get();
	} else {

		dt = timeout.ticks;

		if (IS_ENABLED(CONFIG_TIMEOUT_64BIT) && Z_TICK_ABS(dt) >= 0) {
   3b3b4:	f06f 0101 	mvn.w	r1, #1
   3b3b8:	1a0a      	subs	r2, r1, r0
   3b3ba:	f04f 31ff 	mov.w	r1, #4294967295
   3b3be:	eb61 0305 	sbc.w	r3, r1, r5
   3b3c2:	2a00      	cmp	r2, #0
   3b3c4:	f173 0100 	sbcs.w	r1, r3, #0
   3b3c8:	db05      	blt.n	3b3d6 <sys_clock_timeout_end_calc+0x3a>
			return Z_TICK_ABS(dt);
   3b3ca:	4610      	mov	r0, r2
   3b3cc:	4619      	mov	r1, r3
		}
		return sys_clock_tick_get() + MAX(1, dt);
	}
}
   3b3ce:	bd38      	pop	{r3, r4, r5, pc}
		return sys_clock_tick_get();
   3b3d0:	f7f7 f82c 	bl	3242c <sys_clock_tick_get>
   3b3d4:	e7fb      	b.n	3b3ce <sys_clock_timeout_end_calc+0x32>
		return sys_clock_tick_get() + MAX(1, dt);
   3b3d6:	f7f7 f829 	bl	3242c <sys_clock_tick_get>
   3b3da:	4623      	mov	r3, r4
   3b3dc:	462a      	mov	r2, r5
   3b3de:	2c01      	cmp	r4, #1
   3b3e0:	f175 0400 	sbcs.w	r4, r5, #0
   3b3e4:	db03      	blt.n	3b3ee <sys_clock_timeout_end_calc+0x52>
   3b3e6:	18c0      	adds	r0, r0, r3
   3b3e8:	eb42 0101 	adc.w	r1, r2, r1
   3b3ec:	e7ef      	b.n	3b3ce <sys_clock_timeout_end_calc+0x32>
   3b3ee:	2301      	movs	r3, #1
   3b3f0:	2200      	movs	r2, #0
   3b3f2:	e7f8      	b.n	3b3e6 <sys_clock_timeout_end_calc+0x4a>
		return UINT64_MAX;
   3b3f4:	f04f 30ff 	mov.w	r0, #4294967295
   3b3f8:	4601      	mov	r1, r0
   3b3fa:	e7e8      	b.n	3b3ce <sys_clock_timeout_end_calc+0x32>

0003b3fc <poller_thread>:
	return p ? CONTAINER_OF(p, struct k_thread, poller) : NULL;
   3b3fc:	b108      	cbz	r0, 3b402 <poller_thread+0x6>
   3b3fe:	3860      	subs	r0, #96	; 0x60
   3b400:	4770      	bx	lr
}
   3b402:	4770      	bx	lr

0003b404 <signal_triggered_work>:
	twork->poll_result = -EAGAIN;
	k_work_submit_to_queue(twork->workq, &twork->work);
}

static int signal_triggered_work(struct k_poll_event *event, uint32_t status)
{
   3b404:	b570      	push	{r4, r5, r6, lr}
	struct z_poller *poller = event->poller;
   3b406:	6884      	ldr	r4, [r0, #8]
	struct k_work_poll *twork =
		CONTAINER_OF(poller, struct k_work_poll, poller);

	if (poller->is_polling && twork->workq != NULL) {
   3b408:	7823      	ldrb	r3, [r4, #0]
   3b40a:	b173      	cbz	r3, 3b42a <signal_triggered_work+0x26>
   3b40c:	f854 5c04 	ldr.w	r5, [r4, #-4]
   3b410:	b15d      	cbz	r5, 3b42a <signal_triggered_work+0x26>
		struct k_work_q *work_q = twork->workq;

		z_abort_timeout(&twork->timeout);
   3b412:	f1a4 0614 	sub.w	r6, r4, #20
   3b416:	f104 0014 	add.w	r0, r4, #20
   3b41a:	f7f6 fe7f 	bl	3211c <z_abort_timeout>
		twork->poll_result = 0;
   3b41e:	2300      	movs	r3, #0
   3b420:	62e3      	str	r3, [r4, #44]	; 0x2c
		k_work_submit_to_queue(work_q, &twork->work);
   3b422:	4631      	mov	r1, r6
   3b424:	4628      	mov	r0, r5
   3b426:	f7f5 f8c9 	bl	305bc <k_work_submit_to_queue>
	}

	return 0;
}
   3b42a:	2000      	movs	r0, #0
   3b42c:	bd70      	pop	{r4, r5, r6, pc}

0003b42e <signal_poll_event>:
{
   3b42e:	b570      	push	{r4, r5, r6, lr}
   3b430:	4604      	mov	r4, r0
   3b432:	460d      	mov	r5, r1
	struct z_poller *poller = event->poller;
   3b434:	6886      	ldr	r6, [r0, #8]
	if (poller != NULL) {
   3b436:	b1d6      	cbz	r6, 3b46e <signal_poll_event+0x40>
		if (poller->mode == MODE_POLL) {
   3b438:	7873      	ldrb	r3, [r6, #1]
   3b43a:	2b01      	cmp	r3, #1
   3b43c:	d00d      	beq.n	3b45a <signal_poll_event+0x2c>
		} else if (poller->mode == MODE_TRIGGERED) {
   3b43e:	2b02      	cmp	r3, #2
   3b440:	d012      	beq.n	3b468 <signal_poll_event+0x3a>
		poller->is_polling = false;
   3b442:	2000      	movs	r0, #0
   3b444:	7030      	strb	r0, [r6, #0]
	event->poller = NULL;
   3b446:	2300      	movs	r3, #0
   3b448:	60a3      	str	r3, [r4, #8]
	event->state |= state;
   3b44a:	68e3      	ldr	r3, [r4, #12]
   3b44c:	f3c3 3145 	ubfx	r1, r3, #13, #6
   3b450:	430d      	orrs	r5, r1
   3b452:	f365 3352 	bfi	r3, r5, #13, #6
   3b456:	60e3      	str	r3, [r4, #12]
}
   3b458:	bd70      	pop	{r4, r5, r6, pc}
			retcode = signal_poller(event, state);
   3b45a:	f7f7 f911 	bl	32680 <signal_poller>
		poller->is_polling = false;
   3b45e:	2300      	movs	r3, #0
   3b460:	7033      	strb	r3, [r6, #0]
		if (retcode < 0) {
   3b462:	4298      	cmp	r0, r3
   3b464:	daef      	bge.n	3b446 <signal_poll_event+0x18>
   3b466:	e7f7      	b.n	3b458 <signal_poll_event+0x2a>
			retcode = signal_triggered_work(event, state);
   3b468:	f7ff ffcc 	bl	3b404 <signal_triggered_work>
   3b46c:	e7f7      	b.n	3b45e <signal_poll_event+0x30>
	int retcode = 0;
   3b46e:	2000      	movs	r0, #0
   3b470:	e7e9      	b.n	3b446 <signal_poll_event+0x18>

0003b472 <z_handle_obj_poll_events>:
{
   3b472:	b508      	push	{r3, lr}
   3b474:	4603      	mov	r3, r0
	return list->head == list;
   3b476:	6800      	ldr	r0, [r0, #0]
	if (!sys_dlist_is_empty(list)) {
   3b478:	4283      	cmp	r3, r0
   3b47a:	d009      	beq.n	3b490 <z_handle_obj_poll_events+0x1e>
	sys_dnode_t *const prev = node->prev;
   3b47c:	6842      	ldr	r2, [r0, #4]
	sys_dnode_t *const next = node->next;
   3b47e:	6803      	ldr	r3, [r0, #0]
	prev->next = next;
   3b480:	6013      	str	r3, [r2, #0]
	next->prev = prev;
   3b482:	605a      	str	r2, [r3, #4]
	node->next = NULL;
   3b484:	2300      	movs	r3, #0
   3b486:	6003      	str	r3, [r0, #0]
	node->prev = NULL;
   3b488:	6043      	str	r3, [r0, #4]
	if (poll_event != NULL) {
   3b48a:	b108      	cbz	r0, 3b490 <z_handle_obj_poll_events+0x1e>
		(void) signal_poll_event(poll_event, state);
   3b48c:	f7ff ffcf 	bl	3b42e <signal_poll_event>
}
   3b490:	bd08      	pop	{r3, pc}

0003b492 <k_free>:
	if (ptr != NULL) {
   3b492:	b130      	cbz	r0, 3b4a2 <k_free+0x10>
{
   3b494:	b508      	push	{r3, lr}
		k_heap_free(*heap_ref, ptr);
   3b496:	1f01      	subs	r1, r0, #4
   3b498:	f850 0c04 	ldr.w	r0, [r0, #-4]
   3b49c:	f7f3 fef8 	bl	2f290 <k_heap_free>
}
   3b4a0:	bd08      	pop	{r3, pc}
   3b4a2:	4770      	bx	lr

0003b4a4 <_OffsetAbsSyms>:

#include <gen_offset.h>

#include "offsets_aarch32.c"

GEN_ABS_SYM_END
   3b4a4:	4770      	bx	lr
	...

0003b4a8 <z_arm_platform_init>:
	 */
#if defined(CONFIG_ARMV6_M_ARMV8_M_BASELINE)
	ldr r0, =SystemInit
	bx r0
#elif defined(CONFIG_ARMV7_M_ARMV8_M_MAINLINE)
	b SystemInit
   3b4a8:	f7f1 bc68 	b.w	2cd7c <SystemInit>
